summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2012-12-17 01:35:51 +0000
committerMike Frysinger <vapier@gentoo.org>2012-12-17 01:35:51 +0000
commit74a3d034b738c53e5893781468a27acbde0d5ac0 (patch)
tree0e05cfa2467f2bc0813b9e261b518258eea50827 /media-libs
parentVersion bump: adds improved tests, fixes flag setting, bug #446518 (diff)
downloadgentoo-2-74a3d034b738c53e5893781468a27acbde0d5ac0.tar.gz
gentoo-2-74a3d034b738c53e5893781468a27acbde0d5ac0.tar.bz2
gentoo-2-74a3d034b738c53e5893781468a27acbde0d5ac0.zip
Add fixes from upstream for working with newer mikmod versions #445980 by Benjamin Réveillé.
(Portage version: 2.2.0_alpha144/cvs/Linux x86_64, signed Manifest commit with key FB7C4156)
Diffstat (limited to 'media-libs')
-rw-r--r--media-libs/sdl-mixer/ChangeLog10
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch58
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch37
-rw-r--r--media-libs/sdl-mixer/sdl-mixer-1.2.12-r2.ebuild103
4 files changed, 207 insertions, 1 deletions
diff --git a/media-libs/sdl-mixer/ChangeLog b/media-libs/sdl-mixer/ChangeLog
index fcbbe94bcfe2..5f85662e6ea5 100644
--- a/media-libs/sdl-mixer/ChangeLog
+++ b/media-libs/sdl-mixer/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for media-libs/sdl-mixer
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/sdl-mixer/ChangeLog,v 1.111 2012/11/17 18:04:05 mr_bones_ Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/sdl-mixer/ChangeLog,v 1.112 2012/12/17 01:35:51 vapier Exp $
+
+*sdl-mixer-1.2.12-r2 (17 Dec 2012)
+
+ 17 Dec 2012; Mike Frysinger <vapier@gentoo.org>
+ +files/sdl-mixer-1.2.12-mikmod-r587.patch,
+ +files/sdl-mixer-1.2.12-mikmod-r588.patch, +sdl-mixer-1.2.12-r2.ebuild:
+ Add fixes from upstream for working with newer mikmod versions #445980 by
+ Benjamin Réveillé.
17 Nov 2012; Michael Sterrett <mr_bones_@gentoo.org>
-files/sdl-mixer-1.2.11-midi.patch, -files/sdl-mixer-1.2.11-multilib.patch,
diff --git a/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch
new file mode 100644
index 000000000000..4763da11413f
--- /dev/null
+++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch
@@ -0,0 +1,58 @@
+http://hg.libsdl.org/SDL_mixer/rev/56cad6484b04
+https://bugs.gentoo.org/445980
+
+# 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 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();
+
+
diff --git a/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch
new file mode 100644
index 000000000000..a4469c056dd9
--- /dev/null
+++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch
@@ -0,0 +1,37 @@
+http://hg.libsdl.org/SDL_mixer/rev/2ebb0d016f27
+https://bugs.gentoo.org/445980
+
+# 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;
+
diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2.12-r2.ebuild b/media-libs/sdl-mixer/sdl-mixer-1.2.12-r2.ebuild
new file mode 100644
index 000000000000..dc9e57826160
--- /dev/null
+++ b/media-libs/sdl-mixer/sdl-mixer-1.2.12-r2.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/sdl-mixer/sdl-mixer-1.2.12-r2.ebuild,v 1.1 2012/12/17 01:35:51 vapier Exp $
+
+EAPI=4
+inherit eutils
+
+MY_P=${P/sdl-/SDL_}
+DESCRIPTION="Simple Direct Media Layer Mixer Library"
+HOMEPAGE="http://www.libsdl.org/projects/SDL_mixer/"
+SRC_URI="http://www.libsdl.org/projects/SDL_mixer/release/${MY_P}.tar.gz"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x86-macos ~x86-solaris"
+IUSE="flac fluidsynth mad midi mikmod mod modplug mp3 playtools smpeg static-libs timidity vorbis +wav"
+REQUIRED_USE="
+ midi? ( || ( timidity fluidsynth ) )
+ timidity? ( midi )
+ fluidsynth? ( midi )
+ mp3? ( || ( smpeg mad ) )
+ smpeg? ( mp3 )
+ mad? ( mp3 )
+ mod? ( || ( mikmod modplug ) )
+ mikmod? ( mod )
+ modplug? ( mod )
+ "
+
+DEPEND=">=media-libs/libsdl-1.2.10
+ flac? ( media-libs/flac )
+ midi? (
+ fluidsynth? ( media-sound/fluidsynth )
+ timidity? ( media-sound/timidity++ )
+ )
+ mp3? (
+ mad? ( media-libs/libmad )
+ smpeg? ( >=media-libs/smpeg-0.4.4-r1 )
+ )
+ mod? (
+ modplug? ( media-libs/libmodplug )
+ mikmod? ( >=media-libs/libmikmod-3.1.10 )
+ )
+ vorbis? ( >=media-libs/libvorbis-1.0_beta4 media-libs/libogg )"
+RDEPEND=${DEPEND}
+
+S=${WORKDIR}/${MY_P}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-wav.patch
+ epatch "${FILESDIR}"/${P}-mikmod-r58{7,8}.patch #445980
+ sed -i \
+ -e '/link.*play/s/-o/$(LDFLAGS) -o/' \
+ Makefile.in || die
+}
+
+src_configure() {
+ econf \
+ --disable-dependency-tracking \
+ --disable-music-flac-shared \
+ --disable-music-fluidsynth-shared \
+ --disable-music-mod-shared \
+ --disable-music-mp3-shared \
+ --disable-music-ogg-shared \
+ $(use_enable wav music-wave) \
+ $(use_enable vorbis music-ogg) \
+ $(use_enable mikmod music-mod) \
+ $(use_enable modplug music-mod-modplug) \
+ $(use_enable flac music-flac) \
+ $(use_enable static-libs static) \
+ $(use_enable smpeg music-mp3) \
+ $(use_enable mad music-mp3-mad-gpl) \
+ $(use_enable timidity music-timidity-midi) \
+ $(use_enable fluidsynth music-fluidsynth-midi)
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ if use playtools; then
+ emake DESTDIR="${D}" install-bin
+ fi
+ dodoc CHANGES README
+ if ! use static-libs ; then
+ find "${D}" -type f -name '*.la' -exec rm {} + || die
+ fi
+}
+
+pkg_postinst() {
+ # bug 412035
+ # https://bugs.gentoo.org/show_bug.cgi?id=412035
+ if use midi ; then
+ if use fluidsynth; then
+ ewarn "FluidSynth support requires you to set the SDL_SOUNDFONTS"
+ ewarn "environment variable to the location of a SoundFont file"
+ ewarn "unless the game or application happens to do this for you."
+
+ if use timidity; then
+ ewarn "Failing to do so will result in Timidity being used instead."
+ else
+ ewarn "Failing to do so will result in silence."
+ fi
+ fi
+ fi
+}