diff options
author | Slawomir Lis <slis@gentoo.org> | 2018-01-03 09:30:38 +0100 |
---|---|---|
committer | Slawomir Lis <slis@gentoo.org> | 2018-01-03 09:30:38 +0100 |
commit | 9297efe754fb1e7e470dfe3f1081f3dacb8fee46 (patch) | |
tree | 09df04283a636a81beda24b9588a23613e97d034 | |
parent | dev-db/sqlcl-bin: remove old (diff) | |
download | gentoo-9297efe754fb1e7e470dfe3f1081f3dacb8fee46.tar.gz gentoo-9297efe754fb1e7e470dfe3f1081f3dacb8fee46.tar.bz2 gentoo-9297efe754fb1e7e470dfe3f1081f3dacb8fee46.zip |
dev-python/Kivy: Patch fixing bug with sdl-mixer
Bug id: 636012
Package-Manager: Portage-2.3.19, Repoman-2.3.6
-rw-r--r-- | dev-python/Kivy/Kivy-1.10.0.ebuild | 6 | ||||
-rw-r--r-- | dev-python/Kivy/files/modplug-fix.patch | 109 |
2 files changed, 114 insertions, 1 deletions
diff --git a/dev-python/Kivy/Kivy-1.10.0.ebuild b/dev-python/Kivy/Kivy-1.10.0.ebuild index 8e2cb32ef0b7..0a913ae26c12 100644 --- a/dev-python/Kivy/Kivy-1.10.0.ebuild +++ b/dev-python/Kivy/Kivy-1.10.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2017 Gentoo Foundation +# Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 EAPI=6 @@ -38,6 +38,10 @@ DEPEND="${RDEPEND} S="${WORKDIR}/${P,,}" +PATCHES=( + "${FILESDIR}/modplug-fix.patch" +) + python_prepare_all() { # sed -e '/data_files=/d' -i "${S}/setup.py" || die # sed -e 's/PYTHON = python/PYTHON ?= python/' -i Makefile || die diff --git a/dev-python/Kivy/files/modplug-fix.patch b/dev-python/Kivy/files/modplug-fix.patch new file mode 100644 index 000000000000..18abe6e8f807 --- /dev/null +++ b/dev-python/Kivy/files/modplug-fix.patch @@ -0,0 +1,109 @@ +From 3b85f3e1c292b3f6c3f226490f52a2ab78251730 Mon Sep 17 00:00:00 2001 +From: Terje Skjaeveland <terje.skjaeveland@gmail.com> +Date: Sun, 29 Oct 2017 12:35:46 +0100 +Subject: [PATCH] audio_sdl2: Update for mixer v2.0.2 support + +Flags MIX_INIT_MODPLUG was removed, and MIX_INIT_FLUIDSYNTH was +renamed to MIX_INIT_MID. +--- + kivy/core/audio/audio_sdl2.pyx | 45 +++++++++++++++++++++++++++++------------- + kivy/lib/sdl2.pxi | 4 ++-- + 2 files changed, 33 insertions(+), 16 deletions(-) + +diff --git a/kivy/core/audio/audio_sdl2.pyx b/kivy/core/audio/audio_sdl2.pyx +index 2ab569fe60..c6f26be5c8 100644 +--- a/kivy/core/audio/audio_sdl2.pyx ++++ b/kivy/core/audio/audio_sdl2.pyx +@@ -15,9 +15,23 @@ Depending the compilation of SDL2 mixer and/or installed libraries: + * ogg since 1.9.1 (mixer needs libvorbis/libogg) + * flac since 1.9.1 (mixer needs libflac) + * mp3 since 1.9.1 (mixer needs libsmpeg/libmad; only use mad for GPL apps) ++ * Since 1.10.1 + mixer 2.0.2, mpg123 can also be used + * sequenced formats since 1.9.1 (midi, mod, s3m, etc. Mixer needs + libmodplug or libmikmod) + ++.. Note:: ++ ++ Sequenced format support changed with mixer v2.0.2. If mixer is ++ linked with one of libmodplug or libmikmod, format support for ++ both libraries is assumed. This will work perfectly with formats ++ upported by both libraries, but if you were to try to load an ++ obscure format (like `apun` file with mikmod only), it will fail. ++ ++ * Kivy <= 1.10.0: will fail to build with mixer >= 2.0.2 ++ will report correct format support with < 2.0.2 ++ * Kivy >= 1.10.1: will build with old and new mixer, and ++ will "guesstimate" sequenced format support ++ + .. Warning:: + + Sequenced formats use the SDL2 Mixer music channel, you can only play +@@ -57,8 +71,13 @@ cdef mix_init(): + mix_is_init = -1 + return 0 + ++ # In mixer 2.0.2, MIX_INIT_MODPLUG is now implied by MIX_INIT_MOD, ++ # and MIX_INIT_FLUIDSYNTH was renamed to MIX_INIT_MID. In previous ++ # versions, we requested both _MODPLUG and _MOD + _FLUIDSYNTH. ++ # 0x20 used to be MIX_INIT_FLUIDSYNTH, now MIX_INIT_MID ++ # 0x4 used to be MIX_INIT_MODPLUG before 2.0.2 + want_flags = MIX_INIT_FLAC | MIX_INIT_OGG | MIX_INIT_MP3 +- want_flags |= MIX_INIT_MOD | MIX_INIT_MODPLUG | MIX_INIT_FLUIDSYNTH ++ want_flags |= MIX_INIT_MOD | 0x20 | 0x4 + + mix_flags = Mix_Init(want_flags) + +@@ -244,25 +263,23 @@ class MusicSDL2(Sound): + @staticmethod + def extensions(): + mix_init() ++ # FIXME: this should probably evolve to use the new has_music() ++ # interface to determine format support + + # Assume native midi support (defaults to enabled), but may use + # modplug, fluidsynth or timidity in reality. It may also be + # disabled completely, in which case loading it will fail + extensions = set(['mid', 'midi']) + +- # libmodplug, may be incomplete +- if mix_flags & MIX_INIT_MODPLUG: +- extensions.update(['669', 'abc', 'amf', 'ams', 'dbm', 'dmf', +- 'dsm', 'far', 'it', 'j2b', 'mdl', 'med', +- 'mod', 'mt2', 'mtm', 'okt', 'pat', 'psm', +- 'ptm', 's3m', 'stm', 'ult', 'umx', 'xm']) +- +- # libmikmod, may be incomplete +- if mix_flags & MIX_INIT_MOD: +- extensions.update(['669', 'amf', 'apun', 'dsm', 'far', 'gdm', +- 'gt2', 'it', 'med', 'mod', 'mtm', 'okt', +- 's3m', 'stm', 'stx', 'ult', 'umx', 'uni', +- 'xm']) ++ # libmodplug and libmikmod, may be incomplete. ++ # 0x4 is for mixer < 2.0.2, MIX_INIT_MODPLUG ++ if mix_flags & (MIX_INIT_MOD | 0x4): ++ extensions.update(['669', 'abc', 'amf', 'ams', 'apun', 'dbm', ++ 'dmf', 'dsm', 'far', 'gdm', 'it', 'j2b', ++ 'mdl', 'med', 'mod', 'mt2', 'mtm', 'okt', ++ 'pat', 'psm', 'ptm', 's3m', 'stm', 'stx', ++ 'ult', 'umx', 'uni', 'xm']) ++ + return list(extensions) + + def __init__(self, **kwargs): +diff --git a/kivy/lib/sdl2.pxi b/kivy/lib/sdl2.pxi +index 07d055c903..ad62ce8023 100644 +--- a/kivy/lib/sdl2.pxi ++++ b/kivy/lib/sdl2.pxi +@@ -881,10 +881,10 @@ cdef extern from "SDL_mixer.h": + ctypedef enum MIX_InitFlags: + MIX_INIT_FLAC = 0x00000001 + MIX_INIT_MOD = 0x00000002 +- MIX_INIT_MODPLUG = 0x00000004 ++ MIX_INIT_MODPLUG = 0x00000004 # Removed in mixer 2.0.2 + MIX_INIT_MP3 = 0x00000008 + MIX_INIT_OGG = 0x00000010 +- MIX_INIT_FLUIDSYNTH = 0x00000020 ++ MIX_INIT_MID = 0x00000020 # Previously _FLUIDSYNTH + + cdef int MIX_MAX_VOLUME + |