Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 3 Nov 2016 06:00:54 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r425189 - in head/x11/xsel-conrad: . files
Message-ID:  <201611030600.uA360sJt003800@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Thu Nov  3 06:00:53 2016
New Revision: 425189
URL: https://svnweb.freebsd.org/changeset/ports/425189

Log:
  x11/xsel-conrad: minor fixes
  
  - Plug memory leak [1]
  - Convert to USES=localbase
  - Drop unused X11 dependencies
  - Unsilence install commands
  - Convert DOCS to target helpers
  - Reorder some lines
  
  PR:		212261
  Submitted by:	Tobias Kortkamp <t@tobik.me>
  Obtained from:	OpenBSD Ports [1]
  Approved by:	maintainer timeout (2 months)
  MFH:		2016Q4

Added:
  head/x11/xsel-conrad/files/
  head/x11/xsel-conrad/files/patch-xsel.c   (contents, props changed)
Modified:
  head/x11/xsel-conrad/Makefile   (contents, props changed)

Modified: head/x11/xsel-conrad/Makefile
==============================================================================
--- head/x11/xsel-conrad/Makefile	Thu Nov  3 04:07:44 2016	(r425188)
+++ head/x11/xsel-conrad/Makefile	Thu Nov  3 06:00:53 2016	(r425189)
@@ -3,6 +3,7 @@
 
 PORTNAME=	xsel
 PORTVERSION=	1.2.0
+PORTREVISION=	1
 CATEGORIES=	x11
 MASTER_SITES=	http://www.vergenet.net/~conrad/software/xsel/download/
 PKGNAMESUFFIX=	-conrad
@@ -17,24 +18,21 @@ LICENSE_FILE=	${WRKSRC}/COPYING
 LICENSE_PERMS=	dist-mirror dist-sell pkg-mirror pkg-sell auto-accept
 
 CONFLICTS_INSTALL=	xsel-[0-9]*
-USE_XORG=	x11 xext xt xproto ice sm
-CFLAGS+=	-I${LOCALBASE}/include
-LDFLAGS+=	-L${LOCALBASE}/lib -lXext -lX11
+
+USES=		autoreconf localbase
+USE_XORG=	x11 xt
+GNU_CONFIGURE=	yes
 PLIST_FILES=	bin/${PORTNAME} man/man1/${PORTNAME}.1.gz
 PORTDOCS=	ChangeLog README
-GNU_CONFIGURE=	yes
 
 OPTIONS_DEFINE=	DOCS
 
-post-patch:
-	@${REINPLACE_CMD} -e 's|jmp_buf|sigjmp_buf|g' ${WRKSRC}/xsel.c
-	@${REINPLACE_CMD} -e 's|@X_CFLAGS@|${CFLAGS}|;\
-		s|@X_LIBS@|${LDFLAGS}|' ${WRKSRC}/Makefile.in
-
 do-install:
-	@${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
-	@${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1x ${STAGEDIR}${MAN1PREFIX}/man/man1/${PORTNAME}.1
-	@${INSTALL} -d ${STAGEDIR}${DOCSDIR}/
-	@cd ${WRKSRC}/&&${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}/
+	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/
+	${INSTALL_MAN} ${WRKSRC}/${PORTNAME}.1x ${STAGEDIR}${MAN1PREFIX}/man/man1/${PORTNAME}.1
+
+do-install-DOCS-on:
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} \
+		"${PORTDOCS}" ${STAGEDIR}${DOCSDIR})
 
 .include <bsd.port.mk>

Added: head/x11/xsel-conrad/files/patch-xsel.c
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xsel-conrad/files/patch-xsel.c	Thu Nov  3 06:00:53 2016	(r425189)
@@ -0,0 +1,62 @@
+$OpenBSD: patch-xsel_c,v 1.2 2014/07/07 08:25:16 sthen Exp $
+
+- Format "32" properties use "long", not "int", even on LP64 platforms.
+- ensure NUM_TARGETS does not exceed MAX_NUM_TARGETS.
+- plug a memory leak in handle_targets()
+- sigsetjmp expects a sigjmp_buf type arg, not a jmp_buf type arg
+
+--- xsel.c.orig	2008-02-12 04:50:18 UTC
++++ xsel.c
+@@ -15,6 +15,7 @@
+ #include "config.h"
+ #endif
+ 
++#include <assert.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+@@ -465,7 +466,7 @@ get_timestamp (void)
+  */
+ 
+ /* The jmp_buf to longjmp out of the signal handler */
+-static jmp_buf env_alrm;
++static sigjmp_buf env_alrm;
+ 
+ /*
+  * alarm_handler (sig)
+@@ -1300,14 +1301,16 @@ handle_targets (Display * display, Windo
+                 Atom selection, Time time, MultTrack * mparent)
+ {
+   Atom * targets_cpy;
++  HandleResult r;
+ 
+   targets_cpy = malloc (sizeof (supported_targets));
+   memcpy (targets_cpy, supported_targets, sizeof (supported_targets));
+ 
+-  return
+-    change_property (display, requestor, property, XA_ATOM, 32,
++  r = change_property (display, requestor, property, XA_ATOM, 32,
+                      PropModeReplace, (unsigned char *)targets_cpy,
+                      NUM_TARGETS, selection, time, mparent);
++  free(targets_cpy);
++  return r;
+ }
+ 
+ /*
+@@ -2078,7 +2081,6 @@ main(int argc, char *argv[])
+ 
+   /* Get the NULL atom */
+   null_atom = XInternAtom (display, "NULL", False);
+-  NUM_TARGETS++;
+ 
+   /* Get the TEXT atom */
+   text_atom = XInternAtom (display, "TEXT", False);
+@@ -2097,6 +2099,8 @@ main(int argc, char *argv[])
+   supported_targets[s++] = XA_STRING;
+   NUM_TARGETS++;
+ 
++  assert(NUM_TARGETS <= MAX_NUM_TARGETS);
++
+   /* Get the COMPOUND_TEXT atom.
+    * NB. We do not currently serve COMPOUND_TEXT; we can retrieve it but
+    * do not perform charset conversion.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611030600.uA360sJt003800>