Okay, so today I was able to complete setting up PulseAudio on my box with the help of Lennart Poettering (PulseAudio’s author, nonetheless), so I was able to prepare a working pre-made setup for my users. By default media-sound/pulseaudio will provide you a setup ready for a system-wide pulseaudio server, which is something 0.9.2 without special configuration does not really allow (although Lennart said he’d be looking into polishing that support). For this reason, let me explain this setup a bit.
First of all, the only code changes in Gentoo’s version are due to FreeBSD compatibility, and are now merged upstream so we’re pretty much vanilla from this point of view, which is good, as I have experiences not that good with overpatched packages (Avidemux, anyone?). The changes I’ve done are all in the setup part.
First of all, the daemon runs as pulse:pulse at global level, when you start /etc/init.d/pulseaudio; the socket to connect to this server is saved in /var/run/pulse/native (name suggested by Lennart as that’s what he’s going to use when pa will support native system-wide), and it’s accessible to users in ‘audio’ group. This makes the usual setup (being in group audio to access audio devices) working with pulseaudio with no more changes. As the auth-group checking in polypaudio does only check the main group an user is in, it uses anonymous authentication on the socket itself, so if you can access the socket you don’t really need for instance X support (I’m debating with myself if it’s useful to leave it there or not).
This should make pretty easy to use pulseaudio to everyone, but to improve the situation, I’ve added the pulseaudio useflag to alsa-plugins (currently masked 1.0.12_rc1-r1), so that it builds the ‘polyp’ output plugin; the reason it’s still called polyp is that 1.0.12_rc2 hasn’t been released yet, and I wasn’t ready to sed everything out to replace polyp with pulse 🙂 1.0.12_rc2 will have the properly named pulse plugin.
I also added paman, pavucontrol, padevchooser to Portage, although the latter is untested as it’s GNOME-based and you all know how I feel toward GNOME 😉 I have yet to test them out on FreeBSD, I’ll do that tomorrow most likely, if the weather allows me (with the exception of padevchooser as that’s GNOME-bound and GNOME does not work on FreeBSD).
To complete the puzzle, I’ve added libao-pulse, that’s a libao driver for PulseAudio, that allows using packages like ogg123 with native PulseAudio output; this is likely to be of help.
xine-lib’s PulseAudio plugin is not complete yet, although it plays, it’s not playing correctly from within Amarok, although it plays fine with standard ‘xine’ command. I’ll be looking into it in the next days to finish it before 1.1.3 release, and see if I will backport it to 1.1.2 for Gentoo or not.
I hope to be able to unmask PulseAudio 0.9.2 or .3 in the next days, after some people can help testing it and hashing out eventual problems. I will also probably wait for Zaheerm to take care of the GStreamer plugin, as I won’t touch GStreamer.
And for the news about me, I’ve started a new contract today, something short this time (so not much money after all, but well enough for me and the work I need to do), so I might not be that available as usual for the next week or so.