Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 10 Nov 2012 12:08:01 +0000 (UTC)
From:      Alexey Dokuchaev <danfe@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r307272 - in head/misc/xosd: . files
Message-ID:  <201211101208.qAAC81xp003033@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: danfe
Date: Sat Nov 10 12:08:00 2012
New Revision: 307272
URL: http://svnweb.freebsd.org/changeset/ports/307272

Log:
  - Provide a custom patch which changes timeout units from seconds to
    milliseconds (obviously, since it breaks API compatibility, it must
    be disabled by default)
  - Specify correct delay units in osd_cat program (including usage
    information), its manual page, and XMMS plugin code
  - Drop explicit shlib version numbers from LIB_DEPENDS (but not for
    libgdk-pixbuf, to avoid a clash with `graphics/gdk-pixbuf2')
  - Explicitly disable Beep Media Player plugin (just in case)
  - Cleanup Makefile, define LICENSE (GPLv2), sort the knobs
  - Install a few documentation files while I am here
  - Improve COMMENT and port description, update WWW line
  
  Feature safe:	yes

Added:
  head/misc/xosd/files/
  head/misc/xosd/files/extra-patch-msec-timeout   (contents, props changed)
Modified:
  head/misc/xosd/Makefile
  head/misc/xosd/pkg-descr
  head/misc/xosd/pkg-plist

Modified: head/misc/xosd/Makefile
==============================================================================
--- head/misc/xosd/Makefile	Sat Nov 10 11:57:18 2012	(r307271)
+++ head/misc/xosd/Makefile	Sat Nov 10 12:08:00 2012	(r307272)
@@ -1,30 +1,27 @@
-# New ports collection makefile for:	xosd
-# Date created:			2 May 2001
-# Whom:				Hye-Shik Chang <perky@python.or.kr>
-#
+# Created by: Hye-Shik Chang <perky@python.or.kr>
 # $FreeBSD$
-#
 
 PORTNAME=	xosd
 PORTVERSION=	2.2.14
 PORTREVISION=	1
 CATEGORIES=	misc
-MASTER_SITES=	SF
-MASTER_SITE_SUBDIR=	libxosd/libxosd/${PORTNAME}-${PORTVERSION}
+MASTER_SITES=	SF/libxosd/libxosd/${PORTNAME}-${PORTVERSION}
 
 MAINTAINER=	ports@FreeBSD.org
-COMMENT=	X On-Screen-Display Library and XMMS plug-in
+COMMENT=	X11 on-screen-display program and library
 
-XMMS_CONFIG?=	${LOCALBASE}/bin/xmms-config
+LICENSE=	GPLv2
+
+USE_AUTOTOOLS=	libtool
+USE_CSTD=	gnu89
 USE_GMAKE=	yes
 USE_XORG=	x11 xext xt sm ice
-USE_AUTOTOOLS=	libtool
 USE_LDCONFIG=	yes
-USE_CSTD=	gnu89
 CONFIGURE_ENV=	LIBS=${PTHREAD_LIBS}' -L${LOCALBASE}/lib' \
 		LOCALBASE='${LOCALBASE}' \
 		GTK_CONFIG='${GTK_CONFIG}' GLIB_CONFIG='${GLIB_CONFIG}' \
 		XMMS_PLUGINDIR=${LOCALBASE}/lib/xmms
+CONFIGURE_ARGS=	--disable-beep_media_player_plugin
 
 MAN1=		osd_cat.1 xosd-config.1
 MAN3=		xosd.3 xosd_create.3 xosd_destroy.3 xosd_display.3 \
@@ -33,27 +30,48 @@ MAN3=		xosd.3 xosd_create.3 xosd_destroy
 		xosd_set_horizontal_offset.3 xosd_set_pos.3 \
 		xosd_set_shadow_offset.3 xosd_set_vertical_offset.3 \
 		xosd_show.3 xosd_uninit.3
+PORTDOCS=	AUTHORS ChangeLog TODO
 
-OPTIONS_DEFINE=	XMMS
+OPTIONS_DEFINE=	XMMS MSEC
 OPTIONS_DEFAULT=	XMMS
-XMMS_DESC=	Install XMMS-OSD plugin
+XMMS_DESC=	Build and install XMMS-OSD plugin
+MSEC_DESC=	Use milliseconds timeout (breaks compatibility!)
 
 .include <bsd.port.options.mk>
 
 .if ${PORT_OPTIONS:MXMMS}
-LIB_DEPENDS+=	xmms.4:${PORTSDIR}/multimedia/xmms \
+COMMENT+=	(with XMMS plugin)
+LIB_DEPENDS=	xmms:${PORTSDIR}/multimedia/xmms \
 		gdk_pixbuf.2:${PORTSDIR}/graphics/gdk-pixbuf
-PLIST_SUB=	WITH_XMMS=""
+# shlib version is needed for libgdk_pixbuf, otherwise it could be bogusly
+# satisfied by installed `graphics/gdk-pixbuf2'
+PLIST_SUB=	XMMS=""
 .else
-CONFIGURE_ARGS=	--disable-new-plugin
-PLIST_SUB=	WITH_XMMS="@comment "
+CONFIGURE_ARGS+=	--disable-new-plugin
+PLIST_SUB=	XMMS="@comment "
 .endif
 
-pre-patch:
-	@${REINPLACE_CMD} -e 's,-lc_r,-lblahblah,g' ${WRKSRC}/ltmain.sh
-	@${REINPLACE_CMD} -e 's,-lpthread,${PTHREAD_LIBS},g ; s,echo aout,echo elf,' ${WRKSRC}/configure
-.for f in src/libxosd/Makefile.in src/xmms_plugin/Makefile.in
-	@${REINPLACE_CMD} -e 's,^\(CFLAGS =\)\(.*\)$$,\1 -I.. \2,g' ${WRKSRC}/$f
-.endfor
+.if ${PORT_OPTIONS:MMSEC}
+DELAY_UNITS=	milliseconds
+EXTRA_PATCHES=	${FILESDIR}/extra-patch-msec-timeout
+.else
+DELAY_UNITS=	seconds
+.endif
+
+post-patch:
+	@${REINPLACE_CMD} -e 's,-lc_r,-lblahblah,' ${WRKSRC}/ltmain.sh
+	@${REINPLACE_CMD} -e 's,-lpthread,${PTHREAD_LIBS}, ; \
+		s,echo aout,echo elf,' ${WRKSRC}/configure
+	@${REINPLACE_CMD} -e 's,^\(CFLAGS =\)\(.*\)$$,\1 -I..\2,' \
+		${WRKSRC}/src/libxosd/Makefile.in \
+		${WRKSRC}/src/xmms_plugin/Makefile.in
+	@${REINPLACE_CMD} -e 's,specified time,& (${DELAY_UNITS}),' \
+		${WRKSRC}/src/osd_cat.c
+
+post-install:
+.if ${PORT_OPTIONS:MDOCS}
+	@${MKDIR} ${DOCSDIR}
+	${INSTALL_DATA} ${PORTDOCS:S|^|${WRKSRC}/|} ${DOCSDIR}
+.endif
 
 .include <bsd.port.mk>

Added: head/misc/xosd/files/extra-patch-msec-timeout
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/misc/xosd/files/extra-patch-msec-timeout	Sat Nov 10 12:08:00 2012	(r307272)
@@ -0,0 +1,76 @@
+--- src/xosd.h.orig
++++ src/xosd.h
+@@ -64,7 +64,7 @@ extern "C"
+  *     font           X Logical Font Descriptor, see "xfontsel".
+  *     colour         X colour, see "rgb.txt" that comes with your X11
+  *                    distribution.
+- *     timeout        Seconds before the display is hidden (-1 for
++ *     timeout        Milliseconds before the display is hidden (-1 for
+  *                    never).
+  *     pos            Position to write text (top or bottom).
+  *     offset         Number of pixels between the "pos" and the
+@@ -286,7 +286,7 @@ extern "C"
+  *
+  * ARGUMENTS
+  *     osd      The xosd "object".
+- *     timeout  The number of seconds before the display is hidden.
++ *     timeout  The number of milliseconds before the display is hidden.
+  *
+  * RETURNS
+  *   0 on success
+--- src/libxosd/xosd.c.orig
++++ src/libxosd/xosd.c
+@@ -402,15 +402,13 @@ event_loop(void *osdv)
+     }
+     /* Calculate timeout delta or hide display. */
+     if (timerisset(&osd->timeout_start)) {
++      struct timeval timo;
++      timo.tv_sec = osd->timeout / 1000,
++      timo.tv_usec = (osd->timeout % 1000) * 1000,
+       gettimeofday(&tv, NULL);
+-      tv.tv_sec -= osd->timeout;
++      timersub(&tv, &timo, &tv);
+       if (timercmp(&tv, &osd->timeout_start, <)) {
+-        tv.tv_sec = osd->timeout_start.tv_sec - tv.tv_sec;
+-        tv.tv_usec = osd->timeout_start.tv_usec - tv.tv_usec;
+-        if (tv.tv_usec < 0) {
+-          tv.tv_usec += 1000000;
+-          tv.tv_sec -= 1;
+-        }
++        timersub(&osd->timeout_start, &tv, &tv);
+         tvp = &tv;
+       } else {
+         timerclear(&osd->timeout_start);
+--- src/osd_cat.c.orig
++++ src/osd_cat.c
+@@ -53,7 +53,7 @@ int percentage = 50;
+ int outline_offset = 0;
+ char *outline_colour = NULL;
+ char *shadow_colour = NULL;
+-int delay = 5;
++int delay = 5000;
+ int forcewait = 0;
+ xosd_pos pos = XOSD_top;
+ int voffset = 0;
+--- man/osd_cat.1.orig
++++ man/osd_cat.1
+@@ -37,7 +37,7 @@ This option specifies the \fIFONT\fP to 
+ This option specifies the \fICOLOR\fP to be used for displaying the text. The default is \fBred\fP. 
+ .TP
+ \fB\-d\fP, \fB\-\-delay\fP=\fITIME\fP
+-This option specifies the number of seconds the text is displayed. The default is \fB5\fP seconds.
++This option specifies the number of milliseconds the text is displayed. The default is \fB5000\fP.
+ .TP
+ \fB\-l\fP, \fB\-\-lines\fP=\fILINES\fP
+ This option specifies the number of \fILINES\fP to scroll the display over. The default is \fB5\fP.
+--- src/xmms_plugin/xmms_osd.c.orig
++++ src/xmms_plugin/xmms_osd.c
+@@ -260,7 +260,7 @@ apply_config(void)
+       DEBUG("invalid font %s", font);
+ 
+     xosd_set_colour(osd, colour);
+-    xosd_set_timeout(osd, timeout);
++    xosd_set_timeout(osd, timeout * 1000);
+     xosd_set_shadow_offset(osd, shadow_offset);
+     xosd_set_outline_offset(osd, outline_offset);
+     xosd_set_pos(osd, pos);

Modified: head/misc/xosd/pkg-descr
==============================================================================
--- head/misc/xosd/pkg-descr	Sat Nov 10 11:57:18 2012	(r307271)
+++ head/misc/xosd/pkg-descr	Sat Nov 10 12:08:00 2012	(r307272)
@@ -1,8 +1,8 @@
-XOSD displays text on your screen, sounds simple right?
-The difference is it is unmanaged and shaped, so it appears
-transparent. This gives the effect of an On Screen Display,
-like your TV/VCR etc.. The package also includes an xmms
-plugin, which automatically displays various interesting
-things as they change (song name, volume etc...) 
+XOSD displays text on your screen; sounds simple, right?  The difference is
+that it is unmanaged and shaped, so it appears transparent.  This gives the
+effect of an on-screen-display, just like on your TV/VCR, etc.
 
-WWW: http://www.ignavus.net/software.html
+The port also includes XMMS plugin, which can automatically display various
+interesting things as they change (like song name and volume).
+
+WWW: http://sourceforge.net/projects/libxosd/

Modified: head/misc/xosd/pkg-plist
==============================================================================
--- head/misc/xosd/pkg-plist	Sat Nov 10 11:57:18 2012	(r307271)
+++ head/misc/xosd/pkg-plist	Sat Nov 10 12:08:00 2012	(r307272)
@@ -16,5 +16,5 @@ share/aclocal/libxosd.m4
 %%DATADIR%%/top-right.png
 %%DATADIR%%/top.png
 @dirrm %%DATADIR%%
-%%WITH_XMMS%%lib/xmms/General/libxmms_osd.la
-%%WITH_XMMS%%lib/xmms/General/libxmms_osd.so
+%%XMMS%%lib/xmms/General/libxmms_osd.la
+%%XMMS%%lib/xmms/General/libxmms_osd.so



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