initial import
This commit is contained in:
61
sdl_mixer/PKGBUILD
Normal file
61
sdl_mixer/PKGBUILD
Normal file
@@ -0,0 +1,61 @@
|
||||
# Maintainer: Jesus E. <heckyel@riseup.net>
|
||||
|
||||
pkgname=sdl_mixer
|
||||
pkgver=1.2.12
|
||||
_debver=1.2.12
|
||||
_debrel=16
|
||||
pkgrel=1
|
||||
pkgdesc='A simple multi-channel audio mixer'
|
||||
url='https://www.libsdl.org/projects/SDL_mixer/'
|
||||
arch=('i686' 'x86_64')
|
||||
license=('zlib')
|
||||
depends=('libmikmod' 'libvorbis' 'sdl' 'smpeg')
|
||||
makedepends=('fluidsynth' 'quilt')
|
||||
optdepends=('fluidsynth: MIDI software synth, replaces built-in timidity')
|
||||
source=(https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz
|
||||
https://deb.debian.org/debian/pool/main/s/sdl-mixer1.2/sdl-mixer1.2_$_debver-$_debrel.debian.tar.xz
|
||||
mikmod1.patch mikmod2.patch fluidsynth-volume.patch double-free-crash.patch)
|
||||
sha512sums=('230f6c5a73f4bea364f8aa3d75f76694305571dea45f357def742b2b50849b2d896af71e08689981207edc99a9836088bee2d0bd98d92c7f4ca52b12b3d8cf96'
|
||||
'33cbfe6de66b1cd2c22114f26f8e9db945ac032bfef5039d76e8c2f4d76cad439966eaf2863a4c705dbab5fb467877080dbdeb73a44ebbbd33aee2303904991a'
|
||||
'f93704b3a0e19b12801aa8542483f88c867726ab09edd74d69df794e507c579e3aef87eb659152f526d3f57c1091db5dfd0e4d1a80165b1700c9ee58fe0430f3'
|
||||
'715242bc3d435e6960fcda2fa7f626f6e1c33a703183ca92c5d83b0b980d9cf5f76465241793742efe1b38566b4909154d0adaefb1f528cb7813300eb2de8631'
|
||||
'259e35757c136b1546c0607d1bc03781b0066fb4cdaf337c041e3363d5fca0489f8ed4e983b89e6fdfb8ae5149663dd5fe57b3d7122bbf9fb2938d485f28f9de'
|
||||
'fa49304fcb4560d54c9fc9a10f5a80d41645f2240dc85d7d85f8af3c55a10a2d79e08a46d52594dfd9f23612e709556acf48b2fade3c8b176a71887750302912')
|
||||
|
||||
prepare() {
|
||||
cd SDL_mixer-$pkgver
|
||||
|
||||
if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
|
||||
# Debian patches
|
||||
export QUILT_PATCHES=debian/patches
|
||||
export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
|
||||
export QUILT_DIFF_ARGS='--no-timestamps'
|
||||
|
||||
mv "$srcdir"/debian .
|
||||
|
||||
quilt push -av
|
||||
else
|
||||
patch -Np1 -i ../double-free-crash.patch
|
||||
fi
|
||||
|
||||
patch -Np1 -i ../mikmod1.patch
|
||||
patch -Np1 -i ../mikmod2.patch
|
||||
patch -Np1 -i ../fluidsynth-volume.patch
|
||||
|
||||
sed -e "/CONFIG_FILE_ETC/s|/etc/timidity.cfg|/etc/timidity++/timidity.cfg|" \
|
||||
-e "/DEFAULT_PATH/s|/etc/timidity|/etc/timidity++|" \
|
||||
-e "/DEFAULT_PATH2/s|/usr/local/lib/timidity|/usr/lib/timidity|" \
|
||||
-i timidity/config.h
|
||||
}
|
||||
|
||||
build() {
|
||||
cd SDL_mixer-$pkgver
|
||||
./configure --prefix=/usr --disable-static
|
||||
make
|
||||
}
|
||||
|
||||
package() {
|
||||
cd SDL_mixer-$pkgver
|
||||
make DESTDIR="$pkgdir" install
|
||||
install -Dm644 COPYING -t "$pkgdir/usr/share/licenses/$pkgname"
|
||||
}
|
||||
32
sdl_mixer/double-free-crash.patch
Normal file
32
sdl_mixer/double-free-crash.patch
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Sam Lantinga <slouken@libsdl.org>
|
||||
# Date 1329087437 18000
|
||||
# Node ID 2d713670db9b832b0c5aa700824900bc1fc3c3cd
|
||||
# Parent df72f22b4b411ad4b08f924329678aabd5ac97d6
|
||||
Fixed 1418 - crash on double free if loading WAV file failed
|
||||
|
||||
diff -r df72f22b4b41 -r 2d713670db9b mixer.c
|
||||
--- a/mixer.c Mon Jan 30 21:41:45 2012 -0500
|
||||
+++ b/mixer.c Sun Feb 12 17:57:17 2012 -0500
|
||||
@@ -610,13 +610,15 @@
|
||||
break;
|
||||
default:
|
||||
SDL_SetError("Unrecognized sound file type");
|
||||
- return(0);
|
||||
+ if ( freesrc ) {
|
||||
+ SDL_RWclose(src);
|
||||
+ }
|
||||
+ loaded = NULL;
|
||||
+ break;
|
||||
}
|
||||
if ( !loaded ) {
|
||||
+ /* The individual loaders have closed src if needed */
|
||||
SDL_free(chunk);
|
||||
- if ( freesrc ) {
|
||||
- SDL_RWclose(src);
|
||||
- }
|
||||
return(NULL);
|
||||
}
|
||||
|
||||
|
||||
23
sdl_mixer/fluidsynth-volume.patch
Normal file
23
sdl_mixer/fluidsynth-volume.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User James Le Cuirot <chewi@aura-online.co.uk>
|
||||
# Date 1330896767 0
|
||||
# Node ID c92001a2c18f628698c58aa4e05a7335d10d0e9e
|
||||
# Parent 2d713670db9b832b0c5aa700824900bc1fc3c3cd
|
||||
Raise the maximum FluidSynth gain from 0.8 to 1.2 because apparently the former is too quiet in some cases.
|
||||
|
||||
diff -r 2d713670db9b -r c92001a2c18f fluidsynth.c
|
||||
--- a/fluidsynth.c Sun Feb 12 17:57:17 2012 -0500
|
||||
+++ b/fluidsynth.c Sun Mar 04 21:32:47 2012 +0000
|
||||
@@ -176,8 +176,8 @@
|
||||
|
||||
void fluidsynth_setvolume(FluidSynthMidiSong *song, int volume)
|
||||
{
|
||||
- /* FluidSynth's default is 0.2. Make 0.8 the maximum. */
|
||||
- fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 0.00625));
|
||||
+ /* FluidSynth's default is 0.2. Make 1.2 the maximum. */
|
||||
+ fluidsynth.fluid_synth_set_gain(song->synth, (float) (volume * 1.2 / MIX_MAX_VOLUME));
|
||||
}
|
||||
|
||||
int fluidsynth_playsome(FluidSynthMidiSong *song, void *dest, int dest_len)
|
||||
|
||||
67
sdl_mixer/mikmod1.patch
Normal file
67
sdl_mixer/mikmod1.patch
Normal file
@@ -0,0 +1,67 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Sam Lantinga <slouken@libsdl.org>
|
||||
# Date 1342998807 25200
|
||||
# Node ID 56cad6484b04f83c8d42428c755a046678506436
|
||||
# Parent c92001a2c18f628698c58aa4e05a7335d10d0e9e
|
||||
Paul P Komkoff Jr fixed malloc/free mismatch in the MikMod driver
|
||||
|
||||
diff -r c92001a2c18f -r 56cad6484b04 CHANGES
|
||||
--- a/CHANGES Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/CHANGES Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -1,3 +1,7 @@
|
||||
+1.2.13:
|
||||
+Paul P Komkoff Jr - Sun Jul 22 16:12:28 PDT 2012
|
||||
+ * Fixed malloc/free mismatch in the MikMod driver
|
||||
+
|
||||
1.2.12:
|
||||
Sam Lantinga - Sat Jan 14 22:00:29 2012 -0500
|
||||
* Fixed seek offset with SMPEG (was relative, should be absolute)
|
||||
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.c
|
||||
--- a/dynamic_mod.c Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -93,6 +93,13 @@
|
||||
SDL_UnloadObject(mikmod.handle);
|
||||
return -1;
|
||||
}
|
||||
+ mikmod.MikMod_free =
|
||||
+ (void (*)(void*))
|
||||
+ SDL_LoadFunction(mikmod.handle, "MikMod_free");
|
||||
+ if ( mikmod.MikMod_free == NULL ) {
|
||||
+ SDL_UnloadObject(mikmod.handle);
|
||||
+ return -1;
|
||||
+ }
|
||||
mikmod.Player_Active =
|
||||
(BOOL (*)(void))
|
||||
SDL_LoadFunction(mikmod.handle, "Player_Active");
|
||||
diff -r c92001a2c18f -r 56cad6484b04 dynamic_mod.h
|
||||
--- a/dynamic_mod.h Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/dynamic_mod.h Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -35,6 +35,7 @@
|
||||
void (*MikMod_RegisterDriver)(struct MDRIVER*);
|
||||
int* MikMod_errno;
|
||||
char* (*MikMod_strerror)(int);
|
||||
+ void (*MikMod_free)(void*);
|
||||
BOOL (*Player_Active)(void);
|
||||
void (*Player_Free)(MODULE*);
|
||||
MODULE* (*Player_LoadGeneric)(MREADER*,int,BOOL);
|
||||
diff -r c92001a2c18f -r 56cad6484b04 music_mod.c
|
||||
--- a/music_mod.c Sun Mar 04 21:32:47 2012 +0000
|
||||
+++ b/music_mod.c Sun Jul 22 16:13:27 2012 -0700
|
||||
@@ -109,13 +109,13 @@
|
||||
|
||||
list = mikmod.MikMod_InfoDriver();
|
||||
if ( list )
|
||||
- free(list);
|
||||
+ mikmod.MikMod_free(list);
|
||||
else
|
||||
mikmod.MikMod_RegisterDriver(mikmod.drv_nos);
|
||||
|
||||
list = mikmod.MikMod_InfoLoader();
|
||||
if ( list )
|
||||
- free(list);
|
||||
+ mikmod.MikMod_free(list);
|
||||
else
|
||||
mikmod.MikMod_RegisterAllLoaders();
|
||||
|
||||
|
||||
35
sdl_mixer/mikmod2.patch
Normal file
35
sdl_mixer/mikmod2.patch
Normal file
@@ -0,0 +1,35 @@
|
||||
|
||||
# HG changeset patch
|
||||
# User Sam Lantinga <slouken@libsdl.org>
|
||||
# Date 1343000017 25200
|
||||
# Node ID 2ebb0d016f277f7f643d8a66ed0e1099e10d1fba
|
||||
# Parent 56cad6484b04f83c8d42428c755a046678506436
|
||||
Fixed normal linking with libmikmod and linking with earlier versions of libmikmod.
|
||||
|
||||
diff -r 56cad6484b04 -r 2ebb0d016f27 dynamic_mod.c
|
||||
--- a/dynamic_mod.c Sun Jul 22 16:13:27 2012 -0700
|
||||
+++ b/dynamic_mod.c Sun Jul 22 16:33:37 2012 -0700
|
||||
@@ -97,8 +97,8 @@
|
||||
(void (*)(void*))
|
||||
SDL_LoadFunction(mikmod.handle, "MikMod_free");
|
||||
if ( mikmod.MikMod_free == NULL ) {
|
||||
- SDL_UnloadObject(mikmod.handle);
|
||||
- return -1;
|
||||
+ /* libmikmod 3.1 and earlier doesn't have it */
|
||||
+ mikmod.MikMod_free = free;
|
||||
}
|
||||
mikmod.Player_Active =
|
||||
(BOOL (*)(void))
|
||||
@@ -246,6 +246,11 @@
|
||||
mikmod.MikMod_RegisterDriver = MikMod_RegisterDriver;
|
||||
mikmod.MikMod_errno = &MikMod_errno;
|
||||
mikmod.MikMod_strerror = MikMod_strerror;
|
||||
+#if LIBMIKMOD_VERSION < ((3<<16)|(2<<8))
|
||||
+ mikmod.MikMod_free = free;
|
||||
+#else
|
||||
+ mikmod.MikMod_free = MikMod_free;
|
||||
+#endif
|
||||
mikmod.Player_Active = Player_Active;
|
||||
mikmod.Player_Free = Player_Free;
|
||||
mikmod.Player_LoadGeneric = Player_LoadGeneric;
|
||||
|
||||
Reference in New Issue
Block a user