Date: Friday, February 26, 2021 @ 23:04:47
  Author: heftig
Revision: 874476

archrelease: copy trunk to community-x86_64

Added:
  sdl_mixer/repos/community-x86_64/
  sdl_mixer/repos/community-x86_64/PKGBUILD
    (from rev 874475, sdl_mixer/trunk/PKGBUILD)
  sdl_mixer/repos/community-x86_64/double-free-crash.patch
    (from rev 874475, sdl_mixer/trunk/double-free-crash.patch)
  sdl_mixer/repos/community-x86_64/fluidsynth-volume.patch
    (from rev 874475, sdl_mixer/trunk/fluidsynth-volume.patch)
  sdl_mixer/repos/community-x86_64/mikmod1.patch
    (from rev 874475, sdl_mixer/trunk/mikmod1.patch)
  sdl_mixer/repos/community-x86_64/mikmod2.patch
    (from rev 874475, 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(+)

Copied: sdl_mixer/repos/community-x86_64/PKGBUILD (from rev 874475, 
sdl_mixer/trunk/PKGBUILD)
===================================================================
--- community-x86_64/PKGBUILD                           (rev 0)
+++ community-x86_64/PKGBUILD   2021-02-26 23:04:47 UTC (rev 874476)
@@ -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"
+}

Copied: sdl_mixer/repos/community-x86_64/double-free-crash.patch (from rev 
874475, sdl_mixer/trunk/double-free-crash.patch)
===================================================================
--- community-x86_64/double-free-crash.patch                            (rev 0)
+++ community-x86_64/double-free-crash.patch    2021-02-26 23:04:47 UTC (rev 
874476)
@@ -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);
+       }
+ 
+

Copied: sdl_mixer/repos/community-x86_64/fluidsynth-volume.patch (from rev 
874475, sdl_mixer/trunk/fluidsynth-volume.patch)
===================================================================
--- community-x86_64/fluidsynth-volume.patch                            (rev 0)
+++ community-x86_64/fluidsynth-volume.patch    2021-02-26 23:04:47 UTC (rev 
874476)
@@ -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)
+

Copied: sdl_mixer/repos/community-x86_64/mikmod1.patch (from rev 874475, 
sdl_mixer/trunk/mikmod1.patch)
===================================================================
--- community-x86_64/mikmod1.patch                              (rev 0)
+++ community-x86_64/mikmod1.patch      2021-02-26 23:04:47 UTC (rev 874476)
@@ -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();
+ 
+

Copied: sdl_mixer/repos/community-x86_64/mikmod2.patch (from rev 874475, 
sdl_mixer/trunk/mikmod2.patch)
===================================================================
--- community-x86_64/mikmod2.patch                              (rev 0)
+++ community-x86_64/mikmod2.patch      2021-02-26 23:04:47 UTC (rev 874476)
@@ -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;
+

Reply via email to