libmikmod: update to 3.2.0; major SONAME bump.

This commit is contained in:
Juan RP 2012-12-07 09:02:40 +01:00
parent 3a686e95cd
commit d019b3ba67
8 changed files with 26 additions and 224 deletions

View File

@ -1124,3 +1124,4 @@ libxkbcommon.so.0 libxkbcommon-0.2.0_1
libgee-0.8.so.2 libgee08-0.8.2_1
libnettle.so.4 nettle-2.5_1
libhogweed.so.2 nettle-2.5_1
libmikmod.so.3 libmikmod-3.2.0_1

View File

@ -1,18 +1,14 @@
# Template file for 'libmikmod-devel'.
#
depends="glibc-devel libmikmod"
noarch=yes
depends="libmikmod>=${version}"
short_desc="${short_desc} (development files)"
long_desc="${long_desc}
This package contains files for development, headers, static libs, etc."
do_install()
{
mkdir -p ${DESTDIR}/usr/lib
mv ${SRCPKGDESTDIR}/usr/bin ${DESTDIR}/usr
mv ${SRCPKGDESTDIR}/usr/include ${DESTDIR}/usr
mv ${SRCPKGDESTDIR}/usr/lib/*.*a ${DESTDIR}/usr/lib
mv ${SRCPKGDESTDIR}/usr/share ${DESTDIR}/usr
do_install() {
vmove usr/bin usr
vmove usr/include usr
vmove usr/share usr
}

View File

@ -1,45 +0,0 @@
Date: Sun, 04 Jul 2004 11:53:23 +0200
From: Josselin Mouette
Subject: Re: sdl 64bit problem [PATCH]
Le sam, 03/07/2004 <20> 18:20 +0200, Hans-Frieder Vogt a <20>crit :
> Hi list,
>
> I found the problem that lead to the distorted sound in tuxracer on AMD64. It
> may have also been the cause for the other reported sound problems with SDL.
> The problem is not in SDL, but in SDL-mixer.
> There, music files (*.it, and probably others as well) are incorrectly read on
> all 64 bit architectures but Alpha, due to an incorrect data type definition.
> The attached patch should solve the problem for all 64 bit architectures on
> Linux, since at least cpp defines _LP64 and __LP64__ for them.
> _LP64 indicates that long ints and pointers are 64 bits, but integers are 32
> bits.
> I am not sure whether the usage of _LP64 is also standard for the commercial
> compilers, and for other Unixes, but at least Solaris 9 defines _LP64 in the
> 64 bit environment as well.
>
> Josselin,
> could you include this patch into your next debian packages?
--- 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 */
--- 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__)

View File

@ -1,20 +0,0 @@
Date: 15 Apr 2002 11:01:19 +0200
From: Guillaume Cottenceau <gc@mandrakesoft.com>
Unfortunately, I should have double checked that the following
fix (authored by Dave Goehrig <dave@cthulhu-burger.org>, not me),
was really in the CVS... it's not, as of stable 1.2.3 at least.
Please include it, it fixes a segfault on exiting a program which
disabled MOD music during its execution.
--- 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;

View File

@ -1,111 +0,0 @@
This patch fixes "buffer overflow due to md_numchn - ID: 1630158"
--- 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;

View File

@ -0,0 +1,11 @@
--- include/mikmod.h 2012-06-01 15:15:42.000000000 +0200
+++ include/mikmod.h 2012-10-03 20:03:48.173576199 +0200
@@ -85,7 +85,7 @@
-#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(__powerpc64__)
+#if defined(__arch64__) || defined(__alpha) || defined(__x86_64) || defined(__powerpc64__) || defined(_LP64)
/* 64 bit architectures */
typedef signed char SBYTE; /* 1 byte, signed */

View File

@ -1,31 +0,0 @@
--- 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;
--- 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;

View File

@ -1,13 +1,16 @@
# Template file for 'libmikmod'
pkgname=libmikmod
version=3.1.12
revision=5
distfiles="${SOURCEFORGE_SITE}/mikmod/$pkgname-$version.tar.gz"
version=3.2.0
revision=1
subpackages="${pkgname}-devel"
build_style=gnu-configure
configure_args="--disable-esd"
configure_args="--disable-static"
short_desc="MikMod Sound Library"
maintainer="Juan RP <xtraeme@gmail.com>"
checksum=891a2b780306e6ef86e381f459e71a085d4e7f56c970a879d3bf341c01bdfc32
homepage="http://mikmod.shlomifish.org/"
license="GPL-2, LGPL-2.1"
distfiles="${homepage}/files/${pkgname}-${version}.tar.gz"
checksum=734c8490bbf9b0c587920b92414dcfa3c2267838a0cdf698d5f1fb6bba8f661e
long_desc="
The MikMod sound library is an excellent way for a programmer to
add music and sound effects to an application. It is a powerful
@ -24,5 +27,3 @@ long_desc="
due to its modular nature, the library can be extended to support
more sound or module formats, as well as new hardware or other
sound output capabilities, as they appear."
subpackages="$pkgname-devel"