Hi! A few minutes ago I edited "comps-f8.xml" and kicked out esound and enabled PulseAudio instead for default installs, as suggested here: http://fedoraproject.org/wiki/Releases/FeaturePulseaudio If PulseAudio is installed a lot of audio applications *will* break. PA provides compatibility with a couple of audio APIs, and it is my declared intention to provide compatibility with existing APIs as good as possible. However some APIs are notoriously difficult to virtualize (OSS), others don't really fit on top of something that is not a hardware device (ALSA, OSS), even others are often violated brutally by many applications (ALSA), and others are just too broken to be properly emulated in PA. Due to all that our compatibility APIs are far from perfect. They're quite good (and probably hugely better than any previous effort) but there are still a lot of applications where they are not good enough, especially those which play some dirty, non-standard games with audio devices. (i.e. require DMA/mmap working, use exotic fragment settings and suchlike). If your application doesn't work with any of our compatibility APIs, please file a bug to us and we'll try to fix this in our compat layers. Please do *not* file any bugs regarding adobe flash. We know it doesn't work on PA. Flash is completely broken when it comes to audio it we can neither support it through our ESD compat nor through our ALSA compat. Due to the closed source nature of Flash we cannot go and fix their code. I will eventually add some workarounds for this. But it's low priority on my list, given the closed source nature of Flash. Oh, and Flash is evil anyway. ;-) If you're packaging an audio application in Fedora, please go through the following list and check what is necessary to get your package working flawlessly with PA. And test your application with PA! Unfortunately, due to the heavy balkanization of Linux audio it is necessary to go through this list for each app seperately, and if necessary do some manual modifications to each seperately. 1. For GStreamer applications no changes are necessary. 2. For ESD clients no changes are necessary. 3. Read http://pulseaudio.org/wiki/PerfectSetup, you might find some valuable information for your package there. 4. If you maintain a "pro audio" application or a full-screen game: pro audio apps usually have very strict requirements on the sound system they use. We cannot provide all of them (yet) in Pulseaudio. Thus I recommend using a tool "pasuspender" that is shipped in pulseaudio-utils. This tool will suspend a running (local) PA server (if one is running), so that the audio devices are closed and start a child process that may be passed on the command line. After the child died the audio devices are resumed again. The execution environment (or open FDs) is not touched by pasuspender. Say you have a program, let's call it "jack". Then, rename /usr/bin/jack to /usr/bin/jack.real and make /usr/bin/jack a shell script with contents like this: #!/bin/sh if test -x /usr/bin/pasuspender ; then exec /usr/bin/pasuspender /usr/bin/jack.real "$@" else exec /usr/bin/jack.real "$@" fi Please use pasuspender only in few cases, because PA is network transparent and by using pasuspender you loose that (among other things). Don't forget to depend on pulseaudio-utils in your spec file if you use this! 5. If you have an application that uses OSS, check whether it works with padsp, our LD_PRELOAD OSS wrapper. If so, replace its binary by something like this: #!/bin/sh if test -x /usr/bin/padsp ; then exec /usr/bin/padsp /usr/bin/the-real-binary "$@" else exec /usr/bin/the-real-binary "$@" Don't forget to depend on pulseaudio-utils in your spec file if you use this! 6. If you have an application that uses ALSA, please make sure that it doesn't hardcode ALSA driver names (i.e. something like "hw:0"), it should use "default" instead, which is now being redirected to "pulse", our plugin for libasound. Hardcoding ALSA device names (besides "default") is a bug in your application anyway, so here you have yet another reason to fix that! Please note, that the PA version in Rawhide is based on an SVN snapshot that has not been released officially yet. Not all functionality has been restored that had been available in previous PA versions, due to major changes in the core since PA 0.9.6. Small FAQ: 1. What is this PulseAudio thing anyway? Come out under your rock, and read this: http://pulseaudio.org browse through this: http://0pointer.de/public/pulseaudio-presentation-ols2007.pdf watch this: http://mirror.linux.org.au/pub/linux.conf.au/2007/video/talks/211.ogg or have a peek on this: http://fedoraproject.org/wiki/Releases/FeaturePulseaudio 2. I hate sound servers, and all this Pulse crap! Please go back and hide under your rock again! Thank you! 3. I don't want to reinstall my system just to get PA installed. What can I do to install PA on my Rawhide system? Run "sudo yum install pulseaudio pulseaudio-esound-compat pulseaudio-module-gconf pulseaudio-module-x11 gstreamer-plugins-pulse pulseaudio-utils alsa-plugins-pulseaudio pavucontrol" You might also want to install a couple of optional packages: "sudo yum install pulseaudio-module-zeroconf pulseaudio-module-lirc pavumeter paman paprefs padevchooser" You also have to make sure that some GConf keys are set up properly: /system/gstreamer/0.10/default/audiosrc -> pulsesrc /system/gstreamer/0.10/default/audiosink -> pulsesink (or autoaudiosink) /system/gstreamer/0.10/default/chataudiosink -> pulsesink (or autoaudiosink) /system/gstreamer/0.10/default/musicaudiosink -> pulsesink (or autoaudiosink) /desktop/gnome/sound/enable_esd -> True 4. What about KDE? Yes, what about it? TBH I don't know. All I know is that KDE still ships aRts, but I have no idea what steps would be necessary to get properly supported in KDE. If you're into KDE and interested to get PA working properly with KDE, ping me! 5. I have a question! Just ping me (mezcalero) on #pulseaudio on freenode! I am happy to answer any question you might have. But before doing so, please have a look on this: http://pulseaudio.org/wiki/FAQ Thank you very much for your time, Lennart -- Lennart Poettering Red Hat, Inc. lennart [at] poettering [dot] net ICQ# 11060553 http://0pointer.net/lennart/ GnuPG 0x1A015CC4 -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list