diff options
author | Mike Frysinger <vapier@gentoo.org> | 2012-12-17 01:35:51 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-12-17 01:35:51 +0000 |
commit | 74a3d034b738c53e5893781468a27acbde0d5ac0 (patch) | |
tree | 0e05cfa2467f2bc0813b9e261b518258eea50827 /media-libs | |
parent | Version bump: adds improved tests, fixes flag setting, bug #446518 (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch | 58 | ||||
-rw-r--r-- | media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch | 37 | ||||
-rw-r--r-- | media-libs/sdl-mixer/sdl-mixer-1.2.12-r2.ebuild | 103 |
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 +} |