Added libmikmod-3.1.12 build template.
--HG-- extra : convert_revision : c0cdc89d245897ebfcc77d7a56f76bc1214b19e6
This commit is contained in:
parent
61cb3dadb2
commit
33965b51bc
|
@ -0,0 +1 @@
|
||||||
|
libmikmod
|
|
@ -0,0 +1,2 @@
|
||||||
|
abi_depends=">=3.1.12"
|
||||||
|
api_depends="${abi_depends}"
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Template file for 'libmikmod-devel'.
|
||||||
|
#
|
||||||
|
short_desc="${short_desc} (development files)"
|
||||||
|
long_desc="${long_desc}
|
||||||
|
|
||||||
|
This package contains files for development, headers, static libs, etc."
|
||||||
|
|
||||||
|
Add_dependency run glibc-devel
|
||||||
|
|
||||||
|
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/lib/*.so ${DESTDIR}/usr/lib
|
||||||
|
mv ${SRCPKGDESTDIR}/usr/share ${DESTDIR}/usr
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
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__)
|
|
@ -0,0 +1,20 @@
|
||||||
|
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;
|
|
@ -0,0 +1,14 @@
|
||||||
|
Yi-Huang Han - Wed Oct 24 21:55:47 PDT 2001
|
||||||
|
* Fixed MOD music volume when looping
|
||||||
|
|
||||||
|
--- 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);
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
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;
|
|
@ -0,0 +1,31 @@
|
||||||
|
--- 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;
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Template file for 'libmikmod'
|
||||||
|
pkgname=libmikmod
|
||||||
|
version=3.1.12
|
||||||
|
distfiles="${SOURCEFORGE_SITE}/mikmod/$pkgname-$version.tar.gz"
|
||||||
|
build_style=gnu_configure
|
||||||
|
configure_args="--disable-esd"
|
||||||
|
short_desc="MikMod Sound Library"
|
||||||
|
maintainer="Juan RP <xtraeme@gmail.com>"
|
||||||
|
checksum=891a2b780306e6ef86e381f459e71a085d4e7f56c970a879d3bf341c01bdfc32
|
||||||
|
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
|
||||||
|
and flexible library, with a simple and easy-to-learn API.
|
||||||
|
|
||||||
|
Besides, the library is very portable and runs under a lot of
|
||||||
|
Unices, as well as under OS/2, MacOS and Windows. Third party
|
||||||
|
individuals also maintain ports on other systems, including MS-DOS,
|
||||||
|
and BeOS.
|
||||||
|
|
||||||
|
MikMod is able to play a wide range of module formats, as well as
|
||||||
|
digital sound files. It can take advantage of particular features
|
||||||
|
of your system, such as sound redirection over the network. And
|
||||||
|
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"
|
||||||
|
Add_dependency run glibc
|
Loading…
Reference in New Issue