aboutsummaryrefslogtreecommitdiffstats
path: root/misc/xosd
diff options
context:
space:
mode:
authordanfe <danfe@FreeBSD.org>2012-11-10 20:08:00 +0800
committerdanfe <danfe@FreeBSD.org>2012-11-10 20:08:00 +0800
commit4392c5876c6a07913688a8ba002f64e689bb4231 (patch)
tree3aaa85ec2f6552fd6c35721fec2f44e1dbcee3f4 /misc/xosd
parent9e15ec53f27e0b59e17dc6e3528cd5c8164ffec5 (diff)
downloadfreebsd-ports-gnome-4392c5876c6a07913688a8ba002f64e689bb4231.tar.gz
freebsd-ports-gnome-4392c5876c6a07913688a8ba002f64e689bb4231.tar.zst
freebsd-ports-gnome-4392c5876c6a07913688a8ba002f64e689bb4231.zip
- 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
Diffstat (limited to 'misc/xosd')
-rw-r--r--misc/xosd/Makefile64
-rw-r--r--misc/xosd/files/extra-patch-msec-timeout76
-rw-r--r--misc/xosd/pkg-descr14
-rw-r--r--misc/xosd/pkg-plist4
4 files changed, 126 insertions, 32 deletions
diff --git a/misc/xosd/Makefile b/misc/xosd/Makefile
index 05d14dcb6825..53a7d6e3788c 100644
--- a/misc/xosd/Makefile
+++ b/misc/xosd/Makefile
@@ -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.3 xosd_display.3 \
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>
diff --git a/misc/xosd/files/extra-patch-msec-timeout b/misc/xosd/files/extra-patch-msec-timeout
new file mode 100644
index 000000000000..234f9af90f5d
--- /dev/null
+++ b/misc/xosd/files/extra-patch-msec-timeout
@@ -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);
diff --git a/misc/xosd/pkg-descr b/misc/xosd/pkg-descr
index 5987a6cdfef4..00e3101c28c2 100644
--- a/misc/xosd/pkg-descr
+++ b/misc/xosd/pkg-descr
@@ -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/
diff --git a/misc/xosd/pkg-plist b/misc/xosd/pkg-plist
index f0c868fed306..c07456571f8d 100644
--- a/misc/xosd/pkg-plist
+++ b/misc/xosd/pkg-plist
@@ -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