-
Notifications
You must be signed in to change notification settings - Fork 226
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Keep building linux AppImage with libmad, resolves issue #756 #757
Conversation
@vsonnier thoughts? |
If we want to keep 123 I think the correct fix is to include the old |
@j4reporting Could you put up an alternative PR with libpulse and dependencies in the AppImage? I don't really think we care about 2MB extra if it solves the issue and we don't have divergence in what we ship. |
Taking into account the .so Hell seen in #756 and this present PR I would simply put back Now If we put back So there is no ideal solution, so I'll let you choose, either this PR or reverting to |
for what's it worth, quakespasm still has mad as default option |
I'm not attached to I don't see the supposed faster decoding for |
|
libmad is 'maintained' (ahem) at a different place for However, libmad has been rock solid and doesn't need much
Yup
I'm really not fond of providing the appimage, but this? ughh. why not package the kernel, glibc and x11 along with others! ugh... |
Only stable interface on Linux is the kernel. No one else gives a f***. That's why AppImages are needed. There is no other way until everyone keeps things compatible. Which is going to be never. |
the compatibility is not that bad, the problem is really that mpg123 is requested by all kind of audio related stuff by the system, and the runtime can´t open two different libraries with the same name. little experiment on Fedora41: extracted the binary and libFLAC.so.8 from the 1.31.3 appimage (fedora41 has libFLAC.so.10 ) to /tmp here is the ldd output with LD_LIBRARY_PATH to find libFLAC.so.8
so it loads the newer libmpg123 with the mpg123_info2 symbol
start with
strace for the AppImage shows that SDL indeed tries to open pulse first but fails.
Unfortunately on Ubuntu22/Mint22 ALSA opens libsndfile.so too. Fedora 40+ and probably Ubuntu24 use pipewire and the alsa libraries are not tied to libsndfile.so any more. |
I still don't understand why libmpg123 loads pulse? |
No: libpulse loads libsndfile, libsndfile loads libmpg123 |
I see. Okay, let's use mad for AppImages for now until we can get to a newer Ubuntu. You're right. |
actually, it's libpulse -> libpulsecommon -> libsndfile -> /various codecs/ and here is the kicker: libsndfile does NOT load libmpg123 on Ubuntu 22.04! So, I expect the 1.31.3 AppImage to work on Ubuntu 22 (pulse) and 24 (ALSA)
ALSA:
and again down the line libsndfile is loaded via libpulse I guess the difference between Ubuntu22 and Mint 22 is the aditional dependency of libsndfile -> libmpg123 Ubuntu 24 and current Fedora fail with pulse but succeed with ALSA
ALSA via pipewire audio server does not have the alsa-plugin libs => libsndfile is not loaded and SDL2 can open the audio device successfully. let's keep using libmad for the linux AppImages 🙄 |
introduced with commit 8b42de7 and commit 7068875
this breaks audio for newer linux systems If pulseaudio ( libpulse0 ) is used by the system.
This can probably be reverted when we update the docker image to Ubuntu 22.04 at some point.