diff options
Diffstat (limited to 'media-libs/sdl-mixer')
8 files changed, 301 insertions, 0 deletions
diff --git a/media-libs/sdl-mixer/Manifest b/media-libs/sdl-mixer/Manifest new file mode 100644 index 000000000000..a044bd3e8b6c --- /dev/null +++ b/media-libs/sdl-mixer/Manifest @@ -0,0 +1,10 @@ +AUX sdl-mixer-1.2.12-Fix-compiling-against-libmodplug-0.8.8.5.patch 553 SHA256 5e334c06188ae1d5b2e734d6b69a0be8c6d0f76993e3e6250dbd48eb3c2c8507 SHA512 c411f372a817696838ef590db21579da96ca4f7f3170fdd6497ab204c3058138023d89ef379c810b8675091ae9e8c15bc3681085ca56a026cc1d3d22fdbef687 WHIRLPOOL 31e9757610b3296e0fda9a7a8f4309ef7b85a3669861e057974edb773bb9de86df19c217b74bb40bf754183aad4333ce00ee2093a4b4e45d6337f499e9810841 +AUX sdl-mixer-1.2.12-clang.patch 276 SHA256 4d34bb8ac7f7e33b6f9fb9280d187d6b47c8ccd414489eefb68e5ce7c287c2d8 SHA512 2f318a73991783c75b32d05c9f81a42a7fd145a9d78e1cef00d1f2184f7c498e4c0a5a578bd2866315a940af76d4296de660ee94488530815694b7524d1d452e WHIRLPOOL db4b23b541cf0850eb5fda27698cc87b25659e2366445dabf428720d04ba69b68d964cc91682fcbe8ed947e6011bc6d5f984f286552837f8aaff4bb01c382414 +AUX sdl-mixer-1.2.12-mikmod-r587.patch 1416 SHA256 f61866f35dbd5e7dc9927df64db2c72cefa32a1093008bf0fe1c7cbc0501def0 SHA512 64ad577331eceea0eb060d0c2b333b664d4edb62cb3336f97b53e5c88f6b4ecdc4004136fef0461cdf999b282064b5809e79308591239bfafbdc3df8360bf123 WHIRLPOOL cf0e6aebfe512b30d5889d98272b0df91f531e8b881adb242ea3c3533d42bc675aea61ad9169783c1c9bebee0991eff57ff1c5dd5ec72d20a8392a7df2473086 +AUX sdl-mixer-1.2.12-mikmod-r588.patch 1128 SHA256 3b9d959dc6660b3b765d8b4a53bc1b56858ba7023a76fb95798391b6a7c43522 SHA512 36bbc5d10a63a73b7860a6f381a88849cc465dcabbfe3db21d6bd156110eb01e03e8369f0ed234f72f0227566919f5f823d0350d431575f0ae0f2a4b244cf704 WHIRLPOOL b07f267348d6cd202f35ae59b79c41ee1dd38799bb561cc5179812b63baba9d580234b2a0ef97dc614324d68a546fe16d9c35e21b10931f939d7b60e3c13d711 +AUX sdl-mixer-1.2.12-wav.patch 796 SHA256 7d455c08d79c4a957a8ae25e83f7253c5ff307a7fdc2c4d433b482dc3b7d70b9 SHA512 9fed330d6bcae546752434a0ea29168e2a8fa432c8670d7290e70905f3431746b15126e5ce05820e4dd4dd09c982c880a6ce901ab9b3cff298e7f2c8d6a8b491 WHIRLPOOL 8b26551b494cdb6658538a4220c01d48f3996c2eb74f4a4e97b7b4f1aa4945d951e26d885911ef0cd2d7183befd5cace209e3f88469ab21d4981864c6ee2063c +DIST SDL_mixer-1.2.12.tar.gz 3707781 SHA256 1644308279a975799049e4826af2cfc787cad2abb11aa14562e402521f86992a SHA512 230f6c5a73f4bea364f8aa3d75f76694305571dea45f357def742b2b50849b2d896af71e08689981207edc99a9836088bee2d0bd98d92c7f4ca52b12b3d8cf96 WHIRLPOOL 046b7a160cfe214cdac8c1a5ea424024a8850d3737908e5630b504f1f12817bfd2f391909f37be3d6994cab7f71ab24ecab92e99f5429dd8405f0e4046bc00a7 +EBUILD sdl-mixer-1.2.12-r4.ebuild 3376 SHA256 1f56df2b62071731b6be278b44ecf4d20c175ec68a19a0eab165839b04ec6a54 SHA512 ab1d30553805a5f4bbfebba9aaf4cc50c425e55f204d1e3508ca7b0661cba3e6dd2a81a3291d4be696a9479e282069c4ba6463a70f28267df5a82e6becf74c10 WHIRLPOOL f8e40571c331640a12d683e0d1365b12f17e64aed9aa6f5ccaeb257fd35ef9a060efee39d2c68b135acfb61fed2dabc58d38f5bce494f0f27250a2158c025bea +MISC ChangeLog 3274 SHA256 860124aca778333a8c472a3139ca938f7556d391c9600c08537c80f7734b7f01 SHA512 3a3d8ae35d8bfa43421f021ca780cfb7e72efafa9c20b5f685ddc9b7b061d30d55d0a58b29186e98c2eafd9a6578ac64271b1692bab6e41b433eea2a1322922c WHIRLPOOL c5d09da04cb054eb5df3df75b20229954ef34ebf83e6628a63f4f6cce1cd4f50e0b02d51a85ba58d233b5819eb9bee7e659548e7322edbc3603613ead735a664 +MISC ChangeLog-2015 18471 SHA256 46be08720de956935a682b2d117fee40a6466730b66bcad1dca5bfad3ec530b7 SHA512 bad3d63d91ce0bc45854e944fdb09fd6f4e884e5418a7db629486dfa00c5019dbd4858cf165699306fe0948420249056ba06a7b6bd79847311bc86f7f0ad5a8b WHIRLPOOL 1677588d89f7f5f8e8488ee5d9f61e21af43de1b5069ef31b8e4279d703d8f3bd9391ab4696672c43a9dbfaeb24e17130e5938126c661cf1deeddb9e8141b2a4 +MISC metadata.xml 663 SHA256 9e65ba16f9a815abd8adbdd84e6cbc2f3d0e753058e1b908985c14b29a493f1a SHA512 16a16403ac93fe964330da05038a0e904d0c6e895413994db9ef587170eaf7161f3cc2ce7fb0fe13ded675306b489837d96e837c1002f216b8ffe72d6fd49591 WHIRLPOOL e6ec324598906ea4844a3a39ed66d83995f34fd87256e7d763ef792f96785dc5844a79d44b01fc45fd98e24a2e8aadc8e6b80a7417346e3e1662adaf49e20f8e diff --git a/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-Fix-compiling-against-libmodplug-0.8.8.5.patch b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-Fix-compiling-against-libmodplug-0.8.8.5.patch new file mode 100644 index 000000000000..369fe49558f0 --- /dev/null +++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-Fix-compiling-against-libmodplug-0.8.8.5.patch @@ -0,0 +1,24 @@ +From: hasufell <hasufell@gentoo.org> +Date: Fri, 8 Aug 2014 13:49:49 +0200 +Subject: [PATCH] Fix compiling against libmodplug-0.8.8.5 + +pkg-config --cflags libmodplug no longer +reports a subdir and thus we need to use +#include "libmodplug/modplug.h" syntax. +--- + music_modplug.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/music_modplug.h ++++ b/music_modplug.h +@@ -1,6 +1,6 @@ + #ifdef MODPLUG_MUSIC + +-#include "modplug.h" ++#include "libmodplug/modplug.h" + #include "SDL_rwops.h" + #include "SDL_audio.h" + #include "SDL_mixer.h" +-- +2.0.4 + diff --git a/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-clang.patch b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-clang.patch new file mode 100644 index 000000000000..3c462bd97088 --- /dev/null +++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-clang.patch @@ -0,0 +1,11 @@ +--- SDL_mixer-1.2.12.orig/music_mad.c ++++ SDL_mixer-1.2.12/music_mad.c +@@ -224,7 +224,7 @@ + if ((mp3_mad->status & MS_playing) == 0) { + /* We're not supposed to be playing, so send silence instead. */ + memset(stream, 0, len); +- return; ++ return 0; + } + + out = stream; 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..d99609f8ab25 --- /dev/null +++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch @@ -0,0 +1,55 @@ +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 + +--- a/dynamic_mod.c ++++ b/dynamic_mod.c +@@ -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"); +--- a/dynamic_mod.h ++++ b/dynamic_mod.h +@@ -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); +--- a/music_mod.c ++++ b/music_mod.c +@@ -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..d47a8d4534c8 --- /dev/null +++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch @@ -0,0 +1,36 @@ +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. + +--- a/dynamic_mod.c ++++ b/dynamic_mod.c +@@ -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/files/sdl-mixer-1.2.12-wav.patch b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-wav.patch new file mode 100644 index 000000000000..38914fd77f15 --- /dev/null +++ b/media-libs/sdl-mixer/files/sdl-mixer-1.2.12-wav.patch @@ -0,0 +1,35 @@ +https://bugs.gentoo.org/show_bug.cgi?id=406739 +Nikos Chantziaras 2012-03-03 03:13:39 EST + +There's a bug in the current version of SDL_mixer where failing to load a WAV sample will result in freeing a resource twice, resulting in an application crash. There is an upstream fix for this: + +http://hg.libsdl.org/SDL_mixer/rev/ea53a85853dd + +Upstream bug: http://bugzilla.libsdl.org/show_bug.cgi?id=1418 + +--- a/mixer.c ++++ b/mixer.c +@@ -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); + } + + + + + diff --git a/media-libs/sdl-mixer/metadata.xml b/media-libs/sdl-mixer/metadata.xml new file mode 100644 index 000000000000..47b746e61895 --- /dev/null +++ b/media-libs/sdl-mixer/metadata.xml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>games@gentoo.org</email> + <name>Gentoo Games Project</name> +</maintainer> +<use> + <flag name="fluidsynth">Use <pkg>media-sound/fluidsynth</pkg> for MIDI support</flag> + <flag name="midi">basic support for MIDI files</flag> + <flag name="mod">basic support for MOD files</flag> + <flag name="playtools">Install playwave and playmus tools (useful for testing)</flag> + <flag name="smpeg">Use <pkg>media-libs/smpeg</pkg> for MP3 support</flag> + <flag name="wav">support WAVE files</flag> +</use> +</pkgmetadata> diff --git a/media-libs/sdl-mixer/sdl-mixer-1.2.12-r4.ebuild b/media-libs/sdl-mixer/sdl-mixer-1.2.12-r4.ebuild new file mode 100644 index 000000000000..b92e2977d366 --- /dev/null +++ b/media-libs/sdl-mixer/sdl-mixer-1.2.12-r4.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 +inherit eutils multilib-minimal + +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 ~arm64 hppa ia64 ~mips ppc ppc64 sh sparc x86 ~x86-fbsd ~amd64-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 ) + " + +RDEPEND=">=media-libs/libsdl-1.2.15-r4[${MULTILIB_USEDEP}] + flac? ( >=media-libs/flac-1.2.1-r5[${MULTILIB_USEDEP}] ) + midi? ( + fluidsynth? ( >=media-sound/fluidsynth-1.1.6-r1[${MULTILIB_USEDEP}] ) + timidity? ( media-sound/timidity++ ) + ) + mp3? ( + mad? ( >=media-libs/libmad-0.15.1b-r8[${MULTILIB_USEDEP}] ) + smpeg? ( >=media-libs/smpeg-0.4.4-r10[${MULTILIB_USEDEP}] ) + ) + mod? ( + modplug? ( >=media-libs/libmodplug-0.8.8.4-r1[${MULTILIB_USEDEP}] ) + mikmod? ( >=media-libs/libmikmod-3.3.6-r1[${MULTILIB_USEDEP}] ) + ) + vorbis? ( + >=media-libs/libvorbis-1.3.3-r1[${MULTILIB_USEDEP}] + >=media-libs/libogg-1.3.0[${MULTILIB_USEDEP}] ) + abi_x86_32? ( + !<=app-emulation/emul-linux-x86-sdl-20140406-r1 + !app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)] + )" +DEPEND=${RDEPEND} + +S=${WORKDIR}/${MY_P} + +src_prepare() { + epatch \ + "${FILESDIR}"/${P}-wav.patch \ + "${FILESDIR}"/${P}-clang.patch \ + "${FILESDIR}"/${P}-Fix-compiling-against-libmodplug-0.8.8.5.patch \ + "${FILESDIR}"/${P}-mikmod-r58{7,8}.patch #445980 + sed -i \ + -e '/link.*play/s/-o/$(LDFLAGS) -o/' \ + Makefile.in || die +} + +multilib_src_configure() { + ECONF_SOURCE=${S} \ + 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) \ + LIBMIKMOD_CONFIG=${EPREFIX}/usr/bin/${CHOST}-libmikmod-config +} + +multilib_src_install() { + emake DESTDIR="${D}" install + if multilib_is_native_abi && use playtools; then + emake DESTDIR="${D}" install-bin + fi +} + +multilib_src_install_all() { + dodoc CHANGES README + prune_libtool_files +} + +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 +} |