summaryrefslogtreecommitdiff
path: root/media-libs/sdl-mixer
diff options
context:
space:
mode:
Diffstat (limited to 'media-libs/sdl-mixer')
-rw-r--r--media-libs/sdl-mixer/Manifest10
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-Fix-compiling-against-libmodplug-0.8.8.5.patch24
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-clang.patch11
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r587.patch55
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-mikmod-r588.patch36
-rw-r--r--media-libs/sdl-mixer/files/sdl-mixer-1.2.12-wav.patch35
-rw-r--r--media-libs/sdl-mixer/metadata.xml16
-rw-r--r--media-libs/sdl-mixer/sdl-mixer-1.2.12-r4.ebuild114
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
+}