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