diff options
-rw-r--r-- | libraries/Kivy/Kivy.SlackBuild | 3 | ||||
-rw-r--r-- | libraries/Kivy/SDL2.patch | 109 |
2 files changed, 111 insertions, 1 deletions
diff --git a/libraries/Kivy/Kivy.SlackBuild b/libraries/Kivy/Kivy.SlackBuild index 6b171418a3..34a01e4311 100644 --- a/libraries/Kivy/Kivy.SlackBuild +++ b/libraries/Kivy/Kivy.SlackBuild @@ -24,7 +24,7 @@ PRGNAM=Kivy VERSION=${VERSION:-1.10.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} TAG=${TAG:-_SBo} if [ -z "$ARCH" ]; then @@ -69,6 +69,7 @@ find -L . \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; +patch -p1 < $CWD/SDL2.patch python setup.py install --root=$PKG find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ diff --git a/libraries/Kivy/SDL2.patch b/libraries/Kivy/SDL2.patch new file mode 100644 index 0000000000..18abe6e8f8 --- /dev/null +++ b/libraries/Kivy/SDL2.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 + |