diff options
author | TAKATSU Tomonari <tota@FreeBSD.org> | 2011-01-04 00:47:34 +0000 |
---|---|---|
committer | TAKATSU Tomonari <tota@FreeBSD.org> | 2011-01-04 00:47:34 +0000 |
commit | 4f3cb1084ad3ede4cdda3c0ebf789ac798200c7b (patch) | |
tree | f4cc68cb27229ae6f4822e68a43bf608c5def050 | |
parent | 018df805ac83869f5098a616e55b90e44ffff61c (diff) | |
download | ports-4f3cb1084ad3ede4cdda3c0ebf789ac798200c7b.tar.gz ports-4f3cb1084ad3ede4cdda3c0ebf789ac798200c7b.zip |
Notes
-rw-r--r-- | audio/libmikmod/Makefile | 11 | ||||
-rw-r--r-- | audio/libmikmod/distinfo | 8 | ||||
-rw-r--r-- | audio/libmikmod/files/patch-64bit-fix | 24 | ||||
-rw-r--r-- | audio/libmikmod/files/patch-CVE-2009-0179 | 33 | ||||
-rw-r--r-- | audio/libmikmod/files/patch-ad | 32 | ||||
-rw-r--r-- | audio/libmikmod/files/patch-exitcrash | 12 | ||||
-rw-r--r-- | audio/libmikmod/files/patch-md_sngchn | 110 | ||||
-rw-r--r-- | audio/libmikmod/files/patch-ngvolume | 12 |
8 files changed, 196 insertions, 46 deletions
diff --git a/audio/libmikmod/Makefile b/audio/libmikmod/Makefile index fbb5a35c0a35..b05d6cb3eebc 100644 --- a/audio/libmikmod/Makefile +++ b/audio/libmikmod/Makefile @@ -6,16 +6,11 @@ # PORTNAME= libmikmod -PORTVERSION= 3.1.11 -PORTREVISION= 2 +PORTVERSION= 3.1.12 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@FreeBSD.org +MAINTAINER= neuroworker@gmail.com COMMENT= MikMod Sound Library USE_AUTOTOOLS= libtool diff --git a/audio/libmikmod/distinfo b/audio/libmikmod/distinfo index aac4013b7d21..bf3b72d07001 100644 --- a/audio/libmikmod/distinfo +++ b/audio/libmikmod/distinfo @@ -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 --git a/audio/libmikmod/files/patch-64bit-fix b/audio/libmikmod/files/patch-64bit-fix new file mode 100644 index 000000000000..0cf716a8d983 --- /dev/null +++ b/audio/libmikmod/files/patch-64bit-fix @@ -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 --git a/audio/libmikmod/files/patch-CVE-2009-0179 b/audio/libmikmod/files/patch-CVE-2009-0179 new file mode 100644 index 000000000000..7833e3b9601a --- /dev/null +++ b/audio/libmikmod/files/patch-CVE-2009-0179 @@ -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 --git a/audio/libmikmod/files/patch-ad b/audio/libmikmod/files/patch-ad deleted file mode 100644 index aa92fd2ec7d8..000000000000 --- a/audio/libmikmod/files/patch-ad +++ /dev/null @@ -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 --git a/audio/libmikmod/files/patch-exitcrash b/audio/libmikmod/files/patch-exitcrash new file mode 100644 index 000000000000..f9a43a27ddb1 --- /dev/null +++ b/audio/libmikmod/files/patch-exitcrash @@ -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 --git a/audio/libmikmod/files/patch-md_sngchn b/audio/libmikmod/files/patch-md_sngchn new file mode 100644 index 000000000000..12e0f2893a45 --- /dev/null +++ b/audio/libmikmod/files/patch-md_sngchn @@ -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 --git a/audio/libmikmod/files/patch-ngvolume b/audio/libmikmod/files/patch-ngvolume new file mode 100644 index 000000000000..2931abfe56ef --- /dev/null +++ b/audio/libmikmod/files/patch-ngvolume @@ -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); + } + |