ports/153649: [maintainer update] audio/libmikmod

Gleb Sushko neuroworker at gmail.com
Mon Jan 3 15:00:21 UTC 2011


>Number:         153649
>Category:       ports
>Synopsis:       [maintainer update] audio/libmikmod
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jan 03 15:00:20 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Gleb Sushko
>Release:        
>Organization:
>Environment:
>Description:
[maintainer update]

New version and patches.
>How-To-Repeat:

>Fix:
diff -ruN old/Makefile mikmod/Makefile
--- old/Makefile	2010-12-23 01:23:36.000000000 +0700
+++ mikmod/Makefile	2011-01-03 21:43:38.000000000 +0700
@@ -6,16 +6,12 @@
 #
 
 PORTNAME=	libmikmod
-PORTVERSION=	3.1.11
-PORTREVISION=	2
+PORTVERSION=	3.1.12
+PORTREVISION=	3
 CATEGORIES=	audio
-MASTER_SITES=	http://mikmod.raphnet.net/files/
+MASTER_SITES=	SF/mikmod/libmikmod%20%28source%29/${PORTVERSION}/
 
-PATCH_SITES=	http://mikmod.raphnet.net/files/
-PATCHFILES=	libmikmod-3.1.11-a.diff
-PATCH_DIST_STRIP=	-p1
-
-MAINTAINER=	ports at FreeBSD.org
+MAINTAINER=	neuroworker at gmail.com
 COMMENT=	MikMod Sound Library
 
 USE_AUTOTOOLS=	libtool
@@ -41,8 +37,6 @@
 
 post-extract:
 	@${RM} -f ${WRKSRC}/docs/mikmod.info-*
-
-post-patch:
 	@${REINPLACE_CMD} \
 		-e 's|\$$CFLAGS -pthread|\$$CFLAGS ${PTHREAD_CFLAGS}|g' \
 		-e 's|-pthread \$$REENTRANT|\$$REENTRANT ${PTHREAD_CFLAGS}|g' \
diff -ruN old/distinfo mikmod/distinfo
--- old/distinfo	2006-10-12 16:43:00.000000000 +0800
+++ mikmod/distinfo	2011-01-03 21:38:17.000000000 +0700
@@ -1,6 +1,2 @@
-MD5 (libmikmod-3.1.11.tar.gz) = 705106da305e8de191549f1e7393185c
-SHA256 (libmikmod-3.1.11.tar.gz) = 2d7598cd2a8c61c023f27c9c7c1aca8bbfd92aadbee2f98b7a6d421eae35c929
-SIZE (libmikmod-3.1.11.tar.gz) = 611590
-MD5 (libmikmod-3.1.11-a.diff) = 5e56be5a32eecf3cfa195379a5ecb0ef
-SHA256 (libmikmod-3.1.11-a.diff) = 4d546e905fd9f93da02701fc813f557f79b17084dc1f9ba5626475f4577eedbc
-SIZE (libmikmod-3.1.11-a.diff) = 67970
+SHA256 (libmikmod-3.1.12.tar.gz) = 891a2b780306e6ef86e381f459e71a085d4e7f56c970a879d3bf341c01bdfc32
+SIZE (libmikmod-3.1.12.tar.gz) = 618011
diff -ruN old/files/patch-64bit-fix mikmod/files/patch-64bit-fix
--- old/files/patch-64bit-fix	1970-01-01 07:00:00.000000000 +0700
+++ mikmod/files/patch-64bit-fix	2011-01-03 21:44:04.000000000 +0700
@@ -0,0 +1,24 @@
+diff -ru include/mikmod.h.in libmikmod-3.1.12/include/mikmod.h.in
+--- include/mikmod.h.in	2007-12-15 01:24:19.000000000 -0800
++++ include/mikmod.h.in	2009-10-05 00:18:56.000000000 -0700
+@@ -85,7 +85,7 @@
+ 
+ @DOES_NOT_HAVE_SIGNED@
+ 
+-#if defined(__arch64__) || defined(__alpha) || defined(__x86_64)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ /* 64 bit architectures */
+ 
+ typedef signed char     SBYTE;      /* 1 byte, signed */
+diff -ru include/mikmod_internals.h libmikmod-3.1.12/include/mikmod_internals.h
+--- include/mikmod_internals.h	2007-12-15 04:24:51.000000000 -0800
++++ include/mikmod_internals.h	2009-10-05 00:19:15.000000000 -0700
+@@ -50,7 +50,7 @@
+ /*========== More type definitions */
+ 
+ /* SLONGLONG: 64bit, signed */
+-#if defined (__arch64__) || defined(__alpha)
++#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(_LP64)
+ typedef long		SLONGLONG;
+ #define NATIVE_64BIT_INT
+ #elif defined(__WATCOMC__)
diff -ruN old/files/patch-CVE mikmod/files/patch-CVE
--- old/files/patch-CVE	1970-01-01 07:00:00.000000000 +0700
+++ mikmod/files/patch-CVE	2011-01-03 21:41:32.000000000 +0700
@@ -0,0 +1,33 @@
+diff -ur loaders/load_xm.c libmikmod-3.1.11/loaders/load_xm.c
+--- loaders/load_xm.c	2004-01-21 18:43:53.000000000 +0100
++++ loaders/load_xm.c	2008-04-16 04:30:45.000000000 +0200
+@@ -622,7 +622,8 @@
+ 				/* read the remainder of the header */
+ 				for(u=headend-_mm_ftell(modreader);u;u--) _mm_read_UBYTE(modreader);
+ 
+-				if(_mm_eof(modreader)) {
++				/* last instrument is at the end of file in version 0x0104 */
++				if(_mm_eof(modreader) && (mh->version<0x0104 || t<of.numins-1)) {
+ 					free(nextwav);free(wh);
+ 					nextwav=NULL;wh=NULL;
+ 					_mm_errno = MMERR_LOADING_SAMPLEINFO;
+diff -ur playercode/mloader.c libmikmod-3.1.11/playercode/mloader.c
+--- playercode/mloader.c	2004-01-21 18:43:53.000000000 +0100
++++ playercode/mloader.c	2008-04-16 04:30:45.000000000 +0200
+@@ -450,10 +450,12 @@
+ 	if (!l->Init || l->Init()) {
+ 		_mm_rewind(modreader);
+ 		ok = l->Load(curious);
+-		/* propagate inflags=flags for in-module samples */
+-		for (t = 0; t < of.numsmp; t++)
+-			if (of.samples[t].inflags == 0)
+-				of.samples[t].inflags = of.samples[t].flags;
++		if (ok) {
++			/* propagate inflags=flags for in-module samples */
++			for (t = 0; t < of.numsmp; t++)
++				if (of.samples[t].inflags == 0)
++					of.samples[t].inflags = of.samples[t].flags;
++		}
+ 	} else
+ 		ok = 0;
+ 
diff -ruN old/files/patch-ad mikmod/files/patch-ad
--- old/files/patch-ad	2000-05-29 14:34:02.000000000 +0800
+++ mikmod/files/patch-ad	1970-01-01 07:00:00.000000000 +0700
@@ -1,32 +0,0 @@
---- drivers/drv_raw.c	2000/05/26 10:10:11	1.1
-+++ drivers/drv_raw.c	2000/05/26 10:11:48
-@@ -58,6 +58,7 @@
- static	int rawout=-1;
- static	SBYTE *audiobuffer=NULL;
- static	CHAR *filename=NULL;
-+static  unsigned long counter=0;
- 
- static void RAW_CommandLine(CHAR *cmdline)
- {
-@@ -113,13 +114,20 @@
- 	if (rawout!=-1) {
- 		close(rawout);
- 		rawout=-1;
-+		if (counter==0)
-+			unlink(filename?filename:FILENAME);
-+		else
-+			counter=0;
- 	}
- 	_mm_free(audiobuffer);
- }
- 
- static void RAW_Update(void)
- {
--	write(rawout,audiobuffer,VC_WriteBytes(audiobuffer,BUFFERSIZE));
-+	int num;
-+	num=write(rawout,audiobuffer,VC_WriteBytes(audiobuffer,BUFFERSIZE));
-+	if (num>0)
-+		counter+=num;
- }
- 
- static BOOL RAW_Reset(void)
diff -ruN old/files/patch-exitcrash mikmod/files/patch-exitcrash
--- old/files/patch-exitcrash	1970-01-01 07:00:00.000000000 +0700
+++ mikmod/files/patch-exitcrash	2011-01-03 21:44:14.000000000 +0700
@@ -0,0 +1,12 @@
+diff -ru playercode/virtch_common.c libmikmod-3.1.12/playercode/virtch_common.c
+--- playercode/virtch_common.c	2007-12-15 01:26:53.000000000 -0800
++++ playercode/virtch_common.c	2009-10-05 00:37:12.000000000 -0700
+@@ -347,7 +347,7 @@
+ 
+ void VC1_SampleUnload(SWORD handle)
+ {
+-	if (handle<MAXSAMPLEHANDLES) {
++	if (Samples && handle<MAXSAMPLEHANDLES) {
+ 		if (Samples[handle])
+ 			free(Samples[handle]);
+ 		Samples[handle]=NULL;
diff -ruN old/files/patch-md_sngchn mikmod/files/patch-md_sngchn
--- old/files/patch-md_sngchn	1970-01-01 07:00:00.000000000 +0700
+++ mikmod/files/patch-md_sngchn	2011-01-03 21:48:41.000000000 +0700
@@ -0,0 +1,110 @@
+diff -ru playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- playercode/mplayer.c	2007-12-15 01:26:28.000000000 -0800
++++ playercode/mplayer.c	2009-10-04 23:48:36.000000000 -0700
+@@ -52,6 +52,8 @@
+    will wait */
+ /*static*/ MODULE *pf = NULL;
+ 
++#define NUMVOICES(mod)	(md_sngchn < (mod)->numvoices ? md_sngchn : (mod)->numvoices)
++
+ #define	HIGH_OCTAVE		2	/* number of above-range octaves */
+ 
+ static	UWORD oldperiods[OCTAVE*2]={
+@@ -248,14 +250,14 @@
+ 	MP_VOICE *a;
+ 	ULONG t,k,tvol,pp;
+ 
+-	for (t=0;t<md_sngchn;t++)
++	for (t=0;t<NUMVOICES(mod);t++)
+ 		if (((mod->voice[t].main.kick==KICK_ABSENT)||
+ 			 (mod->voice[t].main.kick==KICK_ENV))&&
+ 		   Voice_Stopped_internal(t))
+ 			return t;
+ 
+ 	tvol=0xffffffUL;t=-1;a=mod->voice;
+-	for (k=0;k<md_sngchn;k++,a++) {
++	for (k=0;k<NUMVOICES(mod);k++,a++) {
+ 		/* allow us to take over a nonexisting sample */
+ 		if (!a->main.s)
+ 			return k;
+@@ -2249,12 +2251,12 @@
+ 
+ 	switch (dat) {
+ 	case 0x0: /* past note cut */
+-		for (t=0;t<md_sngchn;t++)
++		for (t=0;t<NUMVOICES(mod);t++)
+ 			if (mod->voice[t].master==a)
+ 				mod->voice[t].main.fadevol=0;
+ 		break;
+ 	case 0x1: /* past note off */
+-		for (t=0;t<md_sngchn;t++)
++		for (t=0;t<NUMVOICES(mod);t++)
+ 			if (mod->voice[t].master==a) {
+ 				mod->voice[t].main.keyoff|=KEY_OFF;
+ 				if ((!(mod->voice[t].venv.flg & EF_ON))||
+@@ -2263,7 +2265,7 @@
+ 			}
+ 		break;
+ 	case 0x2: /* past note fade */
+-		for (t=0;t<md_sngchn;t++)
++		for (t=0;t<NUMVOICES(mod);t++)
+ 			if (mod->voice[t].master==a)
+ 				mod->voice[t].main.keyoff|=KEY_FADE;
+ 		break;
+@@ -2318,7 +2320,7 @@
+ 	SAMPLE *s;
+ 
+ 	mod->totalchn=mod->realchn=0;
+-	for (channel=0;channel<md_sngchn;channel++) {
++	for (channel=0;channel<NUMVOICES(mod);channel++) {
+ 		aout=&mod->voice[channel];
+ 		i=aout->main.i;
+ 		s=aout->main.s;
+@@ -2736,7 +2738,7 @@
+ 			if (a->dct!=DCT_OFF) {
+ 				int t;
+ 
+-				for (t=0;t<md_sngchn;t++)
++				for (t=0;t<NUMVOICES(mod);t++)
+ 					if ((!Voice_Stopped_internal(t))&&
+ 					   (mod->voice[t].masterchn==channel)&&
+ 					   (a->main.sample==mod->voice[t].main.sample)) {
+@@ -2978,6 +2980,11 @@
+ 	if (!(mod->voice=(MP_VOICE*)_mm_calloc(md_sngchn,sizeof(MP_VOICE))))
+ 		return 1;
+ 
++	/* mod->numvoices was used during loading to clamp md_sngchn.
++	   After loading it's used to remember how big mod->voice is.
++	*/
++	mod->numvoices = md_sngchn;
++
+ 	Player_Init_internal(mod);
+ 	return 0;
+ }
+@@ -3086,7 +3093,7 @@
+ 		pf->patbrk=0;
+ 		pf->vbtick=pf->sngspd;
+ 
+-		for (t=0;t<md_sngchn;t++) {
++		for (t=0;t<NUMVOICES(pf);t++) {
+ 			Voice_Stop_internal(t);
+ 			pf->voice[t].main.i=NULL;
+ 			pf->voice[t].main.s=NULL;
+@@ -3111,7 +3118,7 @@
+ 		pf->patbrk=0;
+ 		pf->vbtick=pf->sngspd;
+ 
+-		for (t=0;t<md_sngchn;t++) {
++		for (t=0;t<NUMVOICES(pf);t++) {
+ 			Voice_Stop_internal(t);
+ 			pf->voice[t].main.i=NULL;
+ 			pf->voice[t].main.s=NULL;
+@@ -3138,7 +3145,7 @@
+ 		pf->sngpos=pos;
+ 		pf->vbtick=pf->sngspd;
+ 
+-		for (t=0;t<md_sngchn;t++) {
++		for (t=0;t<NUMVOICES(pf);t++) {
+ 			Voice_Stop_internal(t);
+ 			pf->voice[t].main.i=NULL;
+ 			pf->voice[t].main.s=NULL;
diff -ruN old/files/patch-ngvolume mikmod/files/patch-ngvolume
--- old/files/patch-ngvolume	1970-01-01 07:00:00.000000000 +0700
+++ mikmod/files/patch-ngvolume	2011-01-03 21:48:38.000000000 +0700
@@ -0,0 +1,12 @@
+diff -ru playercode/mplayer.c libmikmod-3.1.12/playercode/mplayer.c
+--- playercode/mplayer.c	2009-10-05 00:19:59.000000000 -0700
++++ playercode/mplayer.c	2009-10-05 00:44:35.000000000 -0700
+@@ -3019,7 +3019,7 @@
+ {
+ 	MUTEX_LOCK(vars);
+ 	if (pf)
+-		pf->volume=(volume<0)?0:(volume>128)?128:volume;
++		pf->volume=pf->initvolume=(volume<0)?0:(volume>128)?128:volume;
+ 	MUTEX_UNLOCK(vars);
+ }
+ 
diff -ruN old/pkg-descr mikmod/pkg-descr
--- old/pkg-descr	2010-06-18 17:19:54.000000000 +0800
+++ mikmod/pkg-descr	2011-01-03 20:41:22.000000000 +0700
@@ -1,4 +1,4 @@
-libmikmod is a portable sound library for Unix.
+Patched version of the libmikmod. Is a portable sound library for Unix.
 
 It is able to play the IT, XM, S3M, MTM, 669, STM, ULT, FAR, MED, AMF, DSM,
 IMF, GDM, STX, OKT and of course MOD module formats.



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list