Description of problem: During PA testing, I figured out that SDL does not want to work with PA in the default config. Default SDL_AUDIODRIVER is set to alsa, which basically causes every single SDL application not to output sound at all, and then lock up (generally on exit). I tried tremulous, sdlmame and mplayer (the last two can be found in thirdparty repos). Version-Release number of selected component (if applicable): 1.0.14-5.fc8 How reproducible: always Steps to Reproduce: 1. yum install tremulous 2. start the game 3. exit Actual results: program plays no sound and locks up on exit Expected results: sound and no lockup Additional info: SDL_AUDIODRIVER=esd helps, so either SDL needs to be patched to default to that, or the alsa plugin needs to be fixed
I'm getting this problem too rebuilt the rpms using upstream 1.0.15 tarball doesnt give any hope either
Confirming the problem still exists as of 10/24/07 rawhide
We added a workaround to SDL_mixer. [root@newcaprica ~]# cat /etc/profile.d/SDL_pulseaudio_hack.sh # Temporary hack until SDL directly supports pulseaudio export SDL_AUDIODRIVER=esd lennart will eventually implement direct pulseaudio for SDL so we can remove this hack. For now, this will make SDL apps work out of the box. Keeping bug open, and reassigning to lennart.
As this bug affects all SDL applications (and as I also had a hard time finding this out): What is the current state of this? IMHO at least the workaround should be pushed out into the stable tree until a working solution is available.
This shipped in F8 as SDL_mixer-1.2.8-4.fc8. Unfortunately, it has the side-effect of breaking SDL sound if you kill pulseaudio. We opted for this because it at least made sound work by default. Lennart assured us that he would write a proper fix (SDL direct to pulseaudio support) before F9. When it happens, we can issue that as a F8 update and remove this hack.
May I ask why the fix is in SDL_mixer, which is not required by many apps, and not in SDL package itself?
At the time we checks dependencies of a number of SDL using games and found that SDL_mixer was the most common dependency. Was this incorrect? Sigh...
I'm not saying it's incorrect. But, SDL is required by every single SDL application, including the minority of those not requiring the mixer.
Seeing that you brought that up on f-d-l, I am asking once again: why SDL_mixer? If there is at least one app not requiring it, it will stay broken. SDL would be a much better choice IMO.
Julian, are you going ahead with the updated hack in SDL and removal from SDL_mixer in F-8?
Is the ACL open? I can do that if you wish.
News flash, SDL actually supports native Pulseaudio but we're not building it: --- SDL.spec 2007-11-06 10:18:15.000000000 -0600 +++ SDL.spec 2007-12-13 17:25:16.000000000 -0600 @@ -19,6 +19,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-root BuildRequires: arts-devel audiofile-devel BuildRequires: esound-devel alsa-lib-devel +BuildRequires: pulseaudio-libs-devel BuildRequires: libXext-devel libX11-devel BuildRequires: libGL-devel libGLU-devel BuildRequires: libXrender-devel libXrandr-devel gettext-devel @@ -73,6 +74,7 @@ --enable-dlopen \ --enable-arts-shared \ --enable-esd-shared \ + --enable-pulseaudio-shared \ --enable-alsa \ --disable-rpath make %{?_smp_mflags} We really ought to at least build it in, even if its not default, so it can get some testing. It seems to work fine with OpenAL, but there's a problem with quake3, it runs its audio engine at 22050khz which doesn't seem to be working right, it stutters constantly.
> + --enable-pulseaudio-shared \ If we build it this way, it wont be possible to uninstall pulseaudio anymore?
Uhhh. -shared means its supposed to dlopen() it: --enable-pulseaudio use PulseAudio [default=yes] --enable-pulseaudio-shared dynamically load PulseAudio support [default=yes] But it doesn't seem to work: $ ldd /usr/lib/libSDL-1.2.so.0 [...] libpulse-simple.so.0 => /usr/lib/libpulse-simple.so.0 (0x00501000) libpulse.so.0 => /usr/lib/libpulse.so.0 (0x006bf000) [...] Still, this should only pull in pulseaudio-libs, and not the entirety of Pulseaudio, which is not something Fedora has been shy of doing elsewhere.
https://admin.fedoraproject.org/updates/F8/pending/SDL_mixer-1.2.8-6.fc8,SDL-1.2.12-4.fc8 Please test this and report there.
SDL_mixer-1.2.8-6.fc8, SDL-1.2.12-4.fc8 has been pushed to the Fedora 8 stable repository. If problems still persist, please make note of it in this bug report.
SDL_pulseaudio_hack.sh incorrectly assumes that PulseAudio is installed. Every time I open a shell I get the following error: /etc/profile.d/SDL_pulseaudio_hack.sh:3: no matches found: /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so yum provides libasound_module_pcm_pulse.so reports that: alsa-plugins-pulseaudio.ppc : Alsa to PulseAudio backend I have SDL-1.2.12-5.fc8 installed but not alsa-plugins-pulseaudio. As a result, I get the error message every time a shell starts.
I'm not seeing that error message when testing this. What is your shell?
(In reply to comment #17) > SDL_pulseaudio_hack.sh incorrectly assumes that PulseAudio is installed. Every > time I open a shell I get the following error: > > /etc/profile.d/SDL_pulseaudio_hack.sh:3: no matches found: > /usr/lib*/alsa-lib/libasound_module_pcm_pulse.so > Known problem when using zsh, see bug 426579, which is already fixed btw, a simple yum update should fix your problem.
My patch for this in #439847
The patch in 439847 has been pushed into rawhide now.