[slackware-current regression] SDL2_mixer and SDL_mixer need rebuilding: fluidsynth broken
by teeemcee from LinuxQuestions.org on (#5P7YB)
Hi all,
SDL_mixer (v1.2 and 2.0) are configured by default to runtime loading of libraries including fluidsynth, but they load a specific .so version:
Code:> strings /usr/lib64/libSDL2_mixer-2.0.so.0 | grep '\.so'
libSDL2-2.0.so.0
libm.so.6
libc.so.6
libSDL2_mixer-2.0.so.0
libFLAC.so.8
libfluidsynth.so.1
libmodplug.so.1
libmpg123.so.0
libvorbisfile.so.3
libopusfile.so.0From "libFLAC.so.8" on down these are strings passed to dlopen(). SDL_mixer 1.2 has similar dependencies.
fluidsynth is now at libfluidsynth.so.3, so MIDI playback with it doesn't work (silently fails at runtime, may or may not successfully fallback to its builtin Timidity fork).
Also, the SDL2_mixer-compat32-2.0.4-x86_64-4compat32 package (provided by Eric) can't be linked to because it's been linked to libmad, but no libmad-compat32 is provided:
Code:/usr/bin/ld: warning: libmad.so.0, needed by /usr/lib64/gcc/x86_64-slackware-linux/10.3.0/../../../../lib/libSDL2_mixer.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/10.3.0/../../../../lib/libSDL2_mixer.so: undefined reference to `mad_stream_finish'
...etc.This is strange, because SDL2_mixer defaults to using libmpg123 rather than libmad. (No libmpg123-compat32 either.) Note that SDL_mixer doesn't have an option to dlopen libmad.
SDL_mixer (v1.2 and 2.0) are configured by default to runtime loading of libraries including fluidsynth, but they load a specific .so version:
Code:> strings /usr/lib64/libSDL2_mixer-2.0.so.0 | grep '\.so'
libSDL2-2.0.so.0
libm.so.6
libc.so.6
libSDL2_mixer-2.0.so.0
libFLAC.so.8
libfluidsynth.so.1
libmodplug.so.1
libmpg123.so.0
libvorbisfile.so.3
libopusfile.so.0From "libFLAC.so.8" on down these are strings passed to dlopen(). SDL_mixer 1.2 has similar dependencies.
fluidsynth is now at libfluidsynth.so.3, so MIDI playback with it doesn't work (silently fails at runtime, may or may not successfully fallback to its builtin Timidity fork).
Also, the SDL2_mixer-compat32-2.0.4-x86_64-4compat32 package (provided by Eric) can't be linked to because it's been linked to libmad, but no libmad-compat32 is provided:
Code:/usr/bin/ld: warning: libmad.so.0, needed by /usr/lib64/gcc/x86_64-slackware-linux/10.3.0/../../../../lib/libSDL2_mixer.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /usr/lib64/gcc/x86_64-slackware-linux/10.3.0/../../../../lib/libSDL2_mixer.so: undefined reference to `mad_stream_finish'
...etc.This is strange, because SDL2_mixer defaults to using libmpg123 rather than libmad. (No libmpg123-compat32 either.) Note that SDL_mixer doesn't have an option to dlopen libmad.