Bug 137148

Summary: [patch] audio/xmp: update to 2.7.1
Product: Ports & Packages Reporter: swell.k <swell.k>
Component: Individual Port(s)Assignee: Anders Nordby <anders>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
xmp-2.7.1.diff none

Description swell.k 2009-07-26 09:20:05 UTC

    
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2009-07-26 09:20:21 UTC
Responsible Changed
From-To: freebsd-ports-bugs->anders

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 swell.k 2009-07-27 04:53:45 UTC
- I think it's time to reconsider using -fPIC.
  It was added on -r1.21 to Makefile with comment "Fix build on AMD64".
  However, it builds/works fine here without -fPIC on -CURRENT. So, some
  check on OSVERSION is needed.
- esd driver does't work unless I use --enable-esd.
- fix --disable-xmms-plugin and hide xmp-xmms.so plist entry under XMMS
- Hmm, does oss_seq driver ever work? Perhaps, better drop it, so it no
  longer confuses users being listed in `xmp -h' output among available
  drivers when it's actually broken.
- add a few options (arts, audacious, pulseaudio, nas) including one
  from ports/132435 and sort them. I've tested each of them separately.
  beep-media-player plugin doesn't compile, dunno why. Perhaps, it's
  broken. So, there is no option for it.
- install docs and hide them under !NOPORTDOCS
- *use* install target in ${WRKSRC}/etc/Makefile, don't manually install
  .conf-files.
- mark as MAKE_JOBS_UNSAFE

Well, most of this is irrelevant to update from 2.5.1 to 2.7.1.

--- xmp.diff begins here ---
Index: audio/xmp/Makefile
===================================================================
RCS file: /home/csup/ports/audio/xmp/Makefile,v
retrieving revision 1.38
diff -u -p -r1.38 Makefile
--- audio/xmp/Makefile	18 May 2008 12:16:40 -0000	1.38
+++ audio/xmp/Makefile	27 Jul 2009 03:47:04 -0000
@@ -6,7 +6,7 @@
 #
 
 PORTNAME=	xmp
-PORTVERSION=	2.5.1
+PORTVERSION=	2.7.1
 CATEGORIES=	audio
 MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
 MASTER_SITE_SUBDIR=	${PORTNAME}
@@ -16,44 +16,105 @@ COMMENT=	A player for many different Ami
 
 USE_GMAKE=	yes
 WANT_GNOME=	yes
-GNU_CONFIGURE=	yes
+USE_AUTOTOOLS=	autoconf:262
 CONFIGURE_ENV=	CPPFLAGS="-I${LOCALBASE}/include" \
-		LIBS="-L${LOCALBASE}/lib"
+		LIBS="-L${LOCALBASE}/lib ${LDFLAGS}"
 CONFIGURE_ARGS=	--disable-alsa --enable-oss \
 		--sysconfdir=${PREFIX}/etc
 
 MAN1=		xmp.1
 MLINKS=		xmp.1 xxmp.1
 
-OPTIONS=	XMMS	"Build XMMS plugin" off \
-		ESOUND	"EsounD support" off
+OPTIONS=	ARTS	"aRts support" off \
+		AUDACIOUS	"Build Audacious plugin" off \
+		ESOUND	"EsounD support" off \
+		NAS	"Network Audio System support" off \
+		PULSEAUDIO	"PulseAudio support" off \
+		UNZIP	"Use unzip(1) for .zip-compressed files" on \
+		XMMS	"Build XMMS plugin" off
 
-CFLAGS+=	-fPIC
+MAKE_JOBS_UNSAFE=	yes
 
 .include <bsd.port.pre.mk>
 
+.if ${OSVERSION} < 800106
+CFLAGS+=	-fPIC
+.endif
+
+.if !defined(NOPORTDOCS)
+PORTDOCS=	*
+.endif
+
+.if defined(WITH_ARTS)
+LIB_DEPENDS+=	artsc.0:${PORTSDIR}/audio/arts
+CONFIGURE_ARGS+=	--enable-arts
+.else
+CONFIGURE_ARGS+=	--disable-arts
+.endif
+
+.if defined(WITH_AUDACIOUS)
+LIB_DEPENDS+=	audclient.2:${PORTSDIR}/multimedia/audacious
+CONFIGURE_ARGS+=	--enable-audacious-plugin
+PLIST_SUB+=	AUDACIOUS=""
+.else
+CONFIGURE_ARGS+=	--disable-audacious-plugin
+PLIST_SUB+=	AUDACIOUS="@comment "
+.endif
+
 .if defined(WITH_ESOUND)
 USE_GNOME+=	esound
+CONFIGURE_ARGS+=	--enable-esd
 .else
 CONFIGURE_ARGS+=	--disable-esd
 .endif
 
+.if defined(WITH_NAS)
+LIB_DEPENDS+=	audio.2:${PORTSDIR}/audio/nas
+CONFIGURE_ARGS+=	--enable-nas
+.else
+CONFIGURE_ARGS+=	--disable-nas
+.endif
+
+.if defined(WITH_PULSEAUDIO)
+CONFIGURE_ARGS+=	--enable-pulseaudio
+LIB_DEPENDS+=	pulse-simple.0:${PORTSDIR}/audio/pulseaudio
+LDFLAGS+=	${PTHREAD_LIBS}
+.else
+CONFIGURE_ARGS+=	--disable-pulseaudio
+.endif
+
+# use unzip(1) or fall back to libarchive(3) reader
+.if defined(WITH_UNZIP)
+RUN_DEPENDS+=	${LOCALBASE}/bin/unzip:${PORTSDIR}/archivers/unzip
+.else
+EXTRA_PATCHES+=	${PATCHDIR}/extra-patch-src-misc-load.c
+.endif
+
 .if defined(WITH_XMMS)
 LIB_DEPENDS+=	xmms.4:${PORTSDIR}/multimedia/xmms
 CONFIGURE_ARGS+=	--enable-xmms-plugin
+PLIST_SUB+=	XMMS=""
 .else
-CONFIGURE_ARGS+=	--disable-xmms
+CONFIGURE_ARGS+=	--disable-xmms-plugin
+PLIST_SUB+=	XMMS="@comment "
 .endif
 
 post-patch:
-.for f in docs/xmp.1 etc/xmp.conf etc/xmp-modules.conf
+.for f in docs/xmp.1 etc/xmp.conf etc/modules.conf
 	@${REINPLACE_CMD} -e "s|/etc/xmp|${PREFIX}/etc/xmp|g" ${WRKSRC}/${f}
 .endfor
-	@${REINPLACE_CMD} -E -e 's|(^DDIRS.*)etc|\1|' ${WRKSRC}/Makefile
+	@${REINPLACE_CMD} -e \
+		'/$$(INSTALL)/s|\([[:alnum:]]*\.conf\).*$$|&\1.default|' \
+		${WRKSRC}/etc/Makefile
+	@${REINPLACE_CMD} -e \
+		's|[[:alnum:]]*\.conf|&.default|g' \
+		${WRKSRC}/Makefile
 
+.if !defined(NOPORTDOCS)
 post-install:
-	@${MKDIR} ${PREFIX}/etc/xmp
-	@${INSTALL_DATA} ${WRKSRC}/etc/xmp.conf ${PREFIX}/etc/xmp/xmp.conf.default
-	@${INSTALL_DATA} ${WRKSRC}/etc/xmp-modules.conf ${PREFIX}/etc/xmp/xmp-modules.conf.default
+	( cd ${WRKSRC}/docs; ${COPYTREE_SHARE} \* \
+		${DOCSDIR} "! ( -name Makefile -or -name xmp.1 \
+		-or -name xmp.1.bak )" )
+.endif
 
 .include <bsd.port.post.mk>
Index: audio/xmp/distinfo
===================================================================
RCS file: /home/csup/ports/audio/xmp/distinfo,v
retrieving revision 1.9
diff -u -p -r1.9 distinfo
--- audio/xmp/distinfo	16 Apr 2008 21:21:25 -0000	1.9
+++ audio/xmp/distinfo	26 Jul 2009 15:55:01 -0000
@@ -1,3 +1,3 @@
-MD5 (xmp-2.5.1.tar.gz) = 79040d5ae0efaf7ea116c5fe05d99b75
-SHA256 (xmp-2.5.1.tar.gz) = af9dedfc6f312c1f68fb73f286be26b67755877c6b53803b9dea9f3d189b992f
-SIZE (xmp-2.5.1.tar.gz) = 772595
+MD5 (xmp-2.7.1.tar.gz) = bbed5ba3dc9bd8ff38133b31fd5b8846
+SHA256 (xmp-2.7.1.tar.gz) = 84b1bfc00e254fe1eb1e6a2932c27b2695f6d401fbe4e244b740289e9101c805
+SIZE (xmp-2.7.1.tar.gz) = 794986
Index: audio/xmp/pkg-plist
===================================================================
RCS file: /home/csup/ports/audio/xmp/pkg-plist,v
retrieving revision 1.4
diff -u -p -r1.4 pkg-plist
--- audio/xmp/pkg-plist	19 Apr 2008 00:03:30 -0000	1.4
+++ audio/xmp/pkg-plist	27 Jul 2009 02:04:02 -0000
@@ -1,5 +1,6 @@
 bin/xmp
 etc/xmp/xmp.conf.default
-etc/xmp/xmp-modules.conf.default
+etc/xmp/modules.conf.default
+%%AUDACIOUS%%lib/audacious/Input/xmp-audacious.so
+%%XMMS%%lib/xmms/Input/xmp-xmms.so
 @dirrmtry etc/xmp
-@rmtry lib/xmms/Input/xmp-xmms.so
Index: audio/xmp/files/extra-patch-src-misc-load.c
===================================================================
RCS file: audio/xmp/files/extra-patch-src-misc-load.c
diff -N audio/xmp/files/extra-patch-src-misc-load.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ audio/xmp/files/extra-patch-src-misc-load.c	26 Jul 2009 15:55:01 -0000
@@ -0,0 +1,16 @@
+--- src/misc/load.c~
++++ src/misc/load.c
+@@ -99,8 +99,11 @@ static int decrunch(struct xmp_context *
+ 	cmd = "unzip -pqqC \"%s\" -x readme *.diz *.nfo *.txt *.exe *.com "
+ 		"README *.DIZ *.NFO *.TXT *.EXE *.COM " REDIR_STDERR;
+ #else
+-	cmd = "unzip -pqqC \"%s\" -x readme '*.diz' '*.nfo' '*.txt' '*.exe' "
+-		"'*.com' README '*.DIZ' '*.NFO' '*.TXT' '*.EXE' '*.COM' "
++	cmd = "tar xOf \"%s\" --exclude readme --exclude '*.diz' "
++		"--exclude '*.nfo' --exclude '*.txt' --exclude '*.exe' "
++		"--exclude '*.com' --exclude  README --exclude '*.DIZ' "
++		"--exclude '*.NFO' --exclude '*.TXT' --exclude '*.EXE' "
++		"--exclude '*.COM' "
+ 		REDIR_STDERR;
+ #endif
+     } else if (b[2] == '-' && b[3] == 'l' && b[4] == 'h') {
Index: audio/xmp/files/patch-configure.in
===================================================================
RCS file: audio/xmp/files/patch-configure.in
diff -N audio/xmp/files/patch-configure.in
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ audio/xmp/files/patch-configure.in	26 Jul 2009 17:17:59 -0000
@@ -0,0 +1,12 @@
+--- configure.in.orig	2009-07-18 02:43:39.000000000 +0400
++++ configure.in	2009-07-26 21:17:32.589075279 +0400
+@@ -324,8 +324,7 @@ esac
+ if test "${ac_cv_header_sys_soundcard_h}" = "yes" || \
+     test "${ac_cv_header_machine_soundcard_h}" = "yes"; then
+     if test "${enable_oss}" != "no" && test -z "$is_win32"; then
+-	DRIVERS="${DRIVERS} oss_seq.o oss.o"
+-	AC_DEFINE(DRIVER_OSS_SEQ)
++	DRIVERS="${DRIVERS} oss.o"
+ 	AC_DEFINE(DRIVER_OSS)
+     fi
+ fi 
Index: audio/xmp/files/patch-src-drivers-oss_seq.c
===================================================================
RCS file: audio/xmp/files/patch-src-drivers-oss_seq.c
diff -N audio/xmp/files/patch-src-drivers-oss_seq.c
--- audio/xmp/files/patch-src-drivers-oss_seq.c	16 Apr 2008 21:21:25 -0000	1.1
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
---- src/drivers/oss_seq.c.orig	2008-04-16 20:48:53.000000000 +0200
-+++ src/drivers/oss_seq.c	2008-04-16 20:49:05.000000000 +0200
-@@ -141,7 +141,6 @@
- #endif
- 	if (num > SEQ_NUM_VOICES)
- 	    return SEQ_NUM_VOICES;
--	GUS_NUMVOICES (dev, num);
- 	break;
-     }
- 
-@@ -151,7 +150,6 @@
- 
- static void voicepos(int ch, int pos)
- {
--    GUS_VOICE_POS (dev, ch, pos);
- }
- 
- 
-@@ -204,7 +202,6 @@
- 
- static void setpan(struct xmp_context *ctx, int ch, int pan)
- {
--    GUS_VOICEBALA(dev, ch, (pan + 0x80) >> 4)
- }
- 
- 
--- xmp.diff ends here ---
Comment 3 swell.k 2009-08-01 20:34:47 UTC
Perhaps, better to wait for 3.0.0 release. It will have fixed BMP plugin
as well as --disable-oss-sequencer configure switch.

For the impatient I keep git-master snapshot under

ftp://ftp.lissyara.su/users/Guest/xmp.diff
Comment 4 Martin Wilke freebsd_committer freebsd_triage 2009-09-19 21:29:25 UTC
State Changed
From-To: open->closed

submitter advice to wait of 3.0 release. I close this here, please 
submit a new diff after the 3.0 release.