LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 09-07-2021, 12:38 AM   #1
teeemcee
LQ Newbie
 
Registered: Jan 2013
Posts: 7

Rep: Reputation: Disabled
[slackware-current regression] SDL2_mixer and SDL_mixer need rebuilding: fluidsynth broken


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.0
From "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.

Last edited by teeemcee; 09-07-2021 at 12:43 AM.
 
Old 09-07-2021, 02:23 AM   #2
lovemeslk
Member
 
Registered: Feb 2020
Location: Rantoul IL
Distribution: Slackware
Posts: 350

Rep: Reputation: 72
Quote:
slackware-current regression] SDL2_mixer and SDL_mixer need rebuilding: fluidsynth broken
MMMM
Code:
ldd  /usr/lib64/libSDL2_mixer-2.0.so.0
        linux-vdso.so.1 (0x00007fffb4b6c000)
        libSDL2-2.0.so.0 => /usr/lib64/libSDL2-2.0.so.0 (0x00007f97a2f70000)
        libmad.so.0 => /usr/lib64/libmad.so.0 (0x00007f97a2f48000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f97a2dc8000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f97a2be8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f97a2be0000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f97a2bb8000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f97a2ba8000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f97a3128000)
seems you have a problem but slackware current is fine. take it up with Alien bob or rebuild the packages that link to them.
as far as stuff missing in multi-library whats new just look at ffmpeg-compat32.
Code:
ldd /usr/bin/fluidsynth  | grep missing
And nothing is missing.
Code:
ldd /usr/bin/fluidsynth 
        linux-vdso.so.1 (0x00007fff01ec4000)
        libfluidsynth.so.3 => /usr/lib64/libfluidsynth.so.3 (0x00007f2845ca8000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f2845b70000)
        libSDL2-2.0.so.0 => /usr/lib64/libSDL2-2.0.so.0 (0x00007f28459e0000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2845800000)
        libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f28457f8000)
        libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007f28456f0000)
        libpulse-simple.so.0 => /usr/lib64/libpulse-simple.so.0 (0x00007f28456e8000)
        libpulse.so.0 => /usr/lib64/libpulse.so.0 (0x00007f2845690000)
        libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x00007f2845610000)
        libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007f28455b8000)
        libreadline.so.8 => /usr/lib64/libreadline.so.8 (0x00007f2845560000)
        libgomp.so.1 => /usr/lib64/libgomp.so.1 (0x00007f2845518000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f28454f0000)
        libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f28452d8000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f2845190000)
        libgcc_s.so.1 => /usr/lib64/libgcc_s.so.1 (0x00007f2845170000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f28450f8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f28450f0000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f28450e0000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2845db0000)
        libpulsecommon-15.0.so => /usr/lib64/pulseaudio/libpulsecommon-15.0.so (0x00007f2845050000)
        libFLAC.so.8 => /usr/lib64/libFLAC.so.8 (0x00007f2845010000)
        libvorbis.so.0 => /usr/lib64/libvorbis.so.0 (0x00007f2844fe0000)
        libvorbisenc.so.2 => /usr/lib64/libvorbisenc.so.2 (0x00007f2844f30000)
        libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007f2844ed0000)
        libogg.so.0 => /usr/lib64/libogg.so.0 (0x00007f2844ec0000)
        libelogind.so.0 => /lib64/libelogind.so.0 (0x00007f2844e10000)
        libtinfo.so.6 => /usr/lib64/libtinfo.so.6 (0x00007f2844de0000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f2844db0000)
        libasyncns.so.0 => /usr/lib64/libasyncns.so.0 (0x00007f2844da8000)
        libcap.so.2 => /lib64/libcap.so.2 (0x00007f2844d98000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f2844d90000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f2844d88000)
        libnsl.so.2 => /lib64/libnsl.so.2 (0x00007f2844d68000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2844d48000)
        libtirpc.so.3 => /lib64/libtirpc.so.3 (0x00007f2844d18000)
        libgssapi_krb5.so.2 => /usr/lib64/libgssapi_krb5.so.2 (0x00007f2844cc0000)
        libkrb5.so.3 => /usr/lib64/libkrb5.so.3 (0x00007f2844be8000)
        libk5crypto.so.3 => /usr/lib64/libk5crypto.so.3 (0x00007f2844bb8000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f2844bb0000)
        libkrb5support.so.0 => /usr/lib64/libkrb5support.so.0 (0x00007f2844ba0000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f2844b98000)
And most of all sometime Eric doesn't keep up I am sure you can use his build scripts.
 
Old 09-07-2021, 03:06 AM   #3
lovemeslk
Member
 
Registered: Feb 2020
Location: Rantoul IL
Distribution: Slackware
Posts: 350

Rep: Reputation: 72
You may want to do like I do Just pull the compat32 from the latest's updates.
Code:
mkdir slackware64-compat32 && cd slackware64-compat32 && su -c "massconvert32.sh -u https://mirrors.kernel.org/slackware/slackware-current/slackware/"
su -c "upgradepkg --install-new *?/*.t?z"
As for anything you install from Eric's repo you have to rebuild or wait till he has time to catch up.
https://alien.slackbook.org/blog/

Last edited by lovemeslk; 09-07-2021 at 03:10 AM.
 
Old 09-07-2021, 05:43 AM   #4
teeemcee
LQ Newbie
 
Registered: Jan 2013
Posts: 7

Original Poster
Rep: Reputation: Disabled
BTW, I got the impression that this forum is the preferred place to report issues with Slackware, considering that there's no obvious email address provided to report issues.

Quote:
Originally Posted by lovemeslk View Post
MMMM
Code:
ldd  /usr/lib64/libSDL2_mixer-2.0.so.0
I'm sorry, I don't want to be rude, but you completely misread my post. SDL_mixer uses dlopen() to dynamically link these libraries, as your ldd output proves: all the libraries it uses for decoding audio files are missing!

And yes, I know it's a bit lazy to complain about Eric not having a complete set of compat32 packages, but he usually does such an amazing job that I only wanted to help improve it! I usually compile SDL_mixer myself because I sometimes patch it, and often want to use latest dev version. For example, there hasn't been an official release of SDL 1.2 or SDL_mixer 1.2 in 8 years, but there are many fixes in git.

Last edited by teeemcee; 09-07-2021 at 05:46 AM.
 
Old 09-07-2021, 08:54 AM   #5
lovemeslk
Member
 
Registered: Feb 2020
Location: Rantoul IL
Distribution: Slackware
Posts: 350

Rep: Reputation: 72
Quote:
[slackware-current regression] SDL2_mixer and SDL_mixer need rebuilding: fluidsynth broken
so rebuild it I do not see an issue with it.
Quote:
all the libraries it uses for decoding audio files are missing!
it shows them all there !
at anytime do you see the word missing.
scratch my head say have a great day.
You want a complete slackware studio
Quote:
Also, the SDL2_mixer-compat32-2.0.4-x86_64-4compat32 package
That would be fixed in that script I added. That's all Eric does he wrote the massconvert32.sh script just for this reason.
So you the user can stay up to date with current. Other wise he would be spending way to much time converting and syncing.
He gave you the tools when you installed multi-lib
Code:
mkdir slackware64-compat32 && cd slackware64-compat32 && su -c "massconvert32.sh -u https://mirrors.kernel.org/slackware/slackware-current/slackware/"
su -c "upgradepkg --install-new *?/*.t?z"
Attached Files
File Type: txt massconvert32.sh.txt (15.0 KB, 6 views)

Last edited by lovemeslk; 09-07-2021 at 09:20 AM.
 
Old 09-07-2021, 10:26 AM   #6
allend
LQ 5k Club
 
Registered: Oct 2003
Location: Melbourne
Distribution: Slackware64-15.0
Posts: 6,378

Rep: Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757Reputation: 2757
Create strings.txt from post #1 by teeemcee
Quote:
bash-5.1$ cat strings.txt
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.0
Create strings1.txt using same command
Quote:
bash-5.1$ strings /usr/lib64/libSDL2_mixer-2.0.so.0 | grep '\.so' > strings1.txt
Result
Quote:
bash-5.1$ diff -U10 strings.txt strings1.txt
--- strings.txt 2021-09-08 00:59:45.820009558 +1000
+++ strings1.txt 2021-09-08 01:00:16.220009739 +1000
@@ -1,10 +1,10 @@
libSDL2-2.0.so.0
+libmad.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.0
 
Old 09-07-2021, 10:55 AM   #7
teeemcee
LQ Newbie
 
Registered: Jan 2013
Posts: 7

Original Poster
Rep: Reputation: Disabled
Oops, you're correct. I must have pasted the wrong thing from my shell history. Nonetheless, "libfluidsynth.so.1" is still the same.
And of course, SDL2_mixer.SlackBuild does enable libmad support; I shouldn't have been surprised earlier. (It's also a pity Slackware doesn't have libmodplug; mikmod (built into SDL_mixer) is inferior.)

Quote:
so rebuild it I do not see an issue with it.
Yes, that's what I'm asking for : )
As said, because it runtime-links with dlopen() it fails at runtime; ldd can't show you anything about that.

Last edited by teeemcee; 09-07-2021 at 10:59 AM.
 
1 members found this post helpful.
Old 09-07-2021, 12:34 PM   #8
lovemeslk
Member
 
Registered: Feb 2020
Location: Rantoul IL
Distribution: Slackware
Posts: 350

Rep: Reputation: 72
allend
I have the same as you.
Code:
strings /usr/lib64/libSDL2_mixer-2.0.so.0 | grep '\.so'
libSDL2-2.0.so.0
libmad.so.0
libm.so.6
libc.so.6
libSDL2_mixer-2.0.so.0
libFLAC.so.8
libfluidsynth.so.1
libmpg123.so.0
libvorbisfile.so.3
libopusfile.so.0
 
Old 09-07-2021, 11:49 PM   #9
lovemeslk
Member
 
Registered: Feb 2020
Location: Rantoul IL
Distribution: Slackware
Posts: 350

Rep: Reputation: 72
wtg "teeemcee" seems I missed it. Thanks for being patient.
Code:
l/SDL2_mixer-2.0.4-x86_64-5.txz:  Rebuilt.
  Rebuilt to fix embedded shared library .so-versions used for dynamic loading.
 Thanks to teeemcee.
l/sdl-1.2.15-x86_64-12.txz:  Rebuilt.
  Rebuilt to fix embedded shared library .so-versions in libSDL_mixer-1.2.so.0
  used for dynamic loading. Thanks to teeemcee.

Last edited by lovemeslk; 09-07-2021 at 11:58 PM.
 
Old 09-08-2021, 11:22 AM   #10
teeemcee
LQ Newbie
 
Registered: Jan 2013
Posts: 7

Original Poster
Rep: Reputation: Disabled
And thanks for trying to be helpful.
Guess I should report issues here afterall, then.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Running fluidsynth as a daemon, and a dumb wine question. lawnm0wer Slackware 6 12-27-2020 05:59 AM
rebuilding a failed portion of a SlackBuilds build, instead of rebuilding everything Geremia Slackware 26 01-21-2015 05:56 PM
[SOLVED] Rosegarden, FluidSynth, and JACK refuse to work w1k0 Slackware 2 08-06-2012 11:11 AM
hardware midi possible with fluidsynth and/or timidity backend with GZDoom? Holering Linux - Games 0 10-02-2010 06:42 PM
Timidity++ and Fluidsynth not working with Audacious in Slackware64 Daedra Slackware 1 09-02-2009 04:43 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 09:41 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration