Date: Friday, February 26, 2021 @ 23:04:44 Author: heftig Revision: 874475
extra2community: Moving sdl_mixer from extra to community Added: sdl_mixer/ sdl_mixer/repos/ sdl_mixer/trunk/ sdl_mixer/trunk/PKGBUILD sdl_mixer/trunk/double-free-crash.patch sdl_mixer/trunk/fluidsynth-volume.patch sdl_mixer/trunk/mikmod1.patch sdl_mixer/trunk/mikmod2.patch -------------------------+ PKGBUILD | 48 ++++++++++++++++++++++++++++++++ double-free-crash.patch | 32 +++++++++++++++++++++ fluidsynth-volume.patch | 23 +++++++++++++++ mikmod1.patch | 67 ++++++++++++++++++++++++++++++++++++++++++++++ mikmod2.patch | 35 ++++++++++++++++++++++++ 5 files changed, 205 insertions(+) Added: sdl_mixer/trunk/PKGBUILD =================================================================== --- sdl_mixer/trunk/PKGBUILD (rev 0) +++ sdl_mixer/trunk/PKGBUILD 2021-02-26 23:04:44 UTC (rev 874475) @@ -0,0 +1,48 @@ +# Maintainer: Jan Alexander Steffens (heftig) <[email protected]> +# Contributor: Allan McRae <[email protected]> +# Contributor: Tom Newsom <[email protected]> +# Contributor: Lukas Sabota <[email protected]> (Timidity Patch) + +pkgname=sdl_mixer +pkgver=1.2.12 +pkgrel=8 +pkgdesc="A simple multi-channel audio mixer" +url="https://www.libsdl.org/projects/SDL_mixer/" +arch=(x86_64) +license=(custom) +depends=('sdl>=1.2.12' libvorbis libmikmod smpeg) +makedepends=(fluidsynth) +optdepends=('fluidsynth: MIDI software synth, replaces built-in timidity') +source=(https://www.libsdl.org/projects/SDL_mixer/release/SDL_mixer-$pkgver.tar.gz + mikmod1.patch mikmod2.patch fluidsynth-volume.patch double-free-crash.patch) +sha256sums=('1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a' + 'e0d36cd81083a0b033436b8f300cc4f4513a6043e57fea139afbade02dbe0de8' + 'a0c5326b4363464159a38dc51badad984b65ce0fa4c3b1dd1ad5f73bc7b6c55e' + '4b6c567debf18c88398d4045a6e4ed0954f0e04cc61162ca907a83ddec17cd70' + 'b707f5c8d1229d1612cc8a9f4e976f0a3b19ea40d7bd1d5bc1cbd5c9f8bca56d') + +prepare() { + cd SDL_mixer-$pkgver + + patch -Np1 -i ../mikmod1.patch + patch -Np1 -i ../mikmod2.patch + patch -Np1 -i ../fluidsynth-volume.patch + patch -Np1 -i ../double-free-crash.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 "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} Added: sdl_mixer/trunk/double-free-crash.patch =================================================================== --- sdl_mixer/trunk/double-free-crash.patch (rev 0) +++ sdl_mixer/trunk/double-free-crash.patch 2021-02-26 23:04:44 UTC (rev 874475) @@ -0,0 +1,32 @@ + +# HG changeset patch +# User Sam Lantinga <[email protected]> +# 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); + } + + Added: sdl_mixer/trunk/fluidsynth-volume.patch =================================================================== --- sdl_mixer/trunk/fluidsynth-volume.patch (rev 0) +++ sdl_mixer/trunk/fluidsynth-volume.patch 2021-02-26 23:04:44 UTC (rev 874475) @@ -0,0 +1,23 @@ + +# HG changeset patch +# User James Le Cuirot <[email protected]> +# 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) + Added: sdl_mixer/trunk/mikmod1.patch =================================================================== --- sdl_mixer/trunk/mikmod1.patch (rev 0) +++ sdl_mixer/trunk/mikmod1.patch 2021-02-26 23:04:44 UTC (rev 874475) @@ -0,0 +1,67 @@ + +# HG changeset patch +# User Sam Lantinga <[email protected]> +# 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(); + + Added: sdl_mixer/trunk/mikmod2.patch =================================================================== --- sdl_mixer/trunk/mikmod2.patch (rev 0) +++ sdl_mixer/trunk/mikmod2.patch 2021-02-26 23:04:44 UTC (rev 874475) @@ -0,0 +1,35 @@ + +# HG changeset patch +# User Sam Lantinga <[email protected]> +# 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; +
