On Tue, 2022-07-26 at 21:08 +0100, Sam James wrote: > Bug: https://bugs.gentoo.org/744622 > Bug: https://bugs.gentoo.org/859280 > Signed-off-by: Sam James <s...@gentoo.org> > --- > .../2022-07-28-pipewire-sound-server.en.txt | 130 > ++++++++++++++++++ > 1 file changed, 130 insertions(+) > create mode 100644 2022-07-28-pipewire-sound-server/2022-07-28- > pipewire-sound-server.en.txt > > diff --git a/2022-07-28-pipewire-sound-server/2022-07-28-pipewire- > sound-server.en.txt b/2022-07-28-pipewire-sound-server/2022-07-28- > pipewire-sound-server.en.txt > new file mode 100644 > index 0000000..6ebe676 > --- /dev/null > +++ b/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound- > server.en.txt > @@ -0,0 +1,130 @@ > +Title: Pipewire sound server migration > +Author: Sam James <s...@gentoo.org> > +Posted: 2022-07-28 > +Revision: 1 > +News-Item-Format: 2.0 > +Display-If-Installed: media-video/pipewire > +Display-If-Installed: media-sound/pulseaudio > +Display-If-Installed: media-sound/pulseaudio-daemon > +Display-If-Installed: media-libs/libpulse > + > +PipeWire has gained a new USE flag "sound-server" for > enabling/disabling its > +sound server capabilities. > + > +This change is needed to avoid PipeWire and PulseAudio conflicting > over control > +of audio devices. Before this change, OpenRC users were in some cases > accidentally > +migrated to PipeWire which was difficult to override without manually > editing > +launcher files. > + > +For non-audio purposes, PipeWire is installed in many configurations > as more > +and more software depends on it for e.g. screensharing, sandboxing, > +and window previews, so users will need to act based on their > preferred > +setup rather than simply avoiding installing PipeWire, as it is > +increasingly required as a dependency. > + > +Packages needing PulseAudio's APIs will be migrated from the now-meta > package > +media-sound/pulseaudio to depending on media-libs/libpulse. The > runtime > +PulseAudio server can be provided by either PipeWire (media- > video/piepwire) > +or the original PulseAudio (media-sound/pulseaudio-daemon). > + > +The new sound-server USE flag for PipeWire allows easily controlling > +this behavior. > + > +There are several options available: > + > +1. To use PipeWire for sound, users should enable USE=sound-server > for PipeWire: > + > + Place the following entries in /etc/portage/package.use: > + ``` > + media-video/pipewire sound-server > + media-sound/pulseaudio -daemon > + ``` > + > + First, sync: > + $ emerge --sync > + > + Deselect media-sound/pulseaudio-daemon: > + $ emerge --deselect media-sound/pulseaudio-daemon > + > + Then perform a world upgrade: > + $ emerge --ask --update --changed-use --deep @world > + > + Then depclean: > + $ emerge --ask --depclean > + > + OpenRC users on an XDG-compliant desktop which respects autostart > files > + will not need to take any further action. > + > + OpenRC users using a minimal desktop which does not respect > autostart > + files will need to run `gentoo-pipewire-launcher &` in e.g. > + `~/.xprofile`. > + > + systemd users will also need to run the following commands: > + $ systemctl --user --now disable pulseaudio.service > pulseaudio.socket > + $ systemctl --user --now enable pipewire.socket pipewire- > pulse.socket > + $ systemctl --user --now disable pipewire-media-session.service > + $ systemctl --user --force enable wireplumber.service > + > +2. To use PulseAudio's daemon for sound, users should disable > USE=sound-server for PipeWire, > + enable USE=daemon on media-sound/pulseaudio, and add media- > sound/pulseaudio-daemon to > + their world file: > + > + Place the following entries in /etc/portage/package.use: > + ``` > + media-video/pipewire -sound-server > + media-sound/pulseaudio daemon > + ``` > + > + Add media-sound/pulseaudio-daemon to @world: > + $ emerge --noreplace media-sound/pulseaudio-daemon > + > + Then perform a world upgrade: > + $ emerge --ask --update --changed-use --deep @world > + > + Then depclean: > + $ emerge --ask --depclean > + > + OpenRC users on an XDG-compliant desktop which respects autostart > files > + will not need to take any further action. > + > + OpenRC users using a minimal desktop which does not respect > autostart > + files should consider adding `gentoo-pipewire-launcher &` in e.g. > + `~/.xprofile` but it's not strictly required in terms of audio > + handling. It may be required in future for the non-audio usecases > + described above. > + > + systemd users will also need to run the following commands: > + $ systemctl --user --now enable pulseaudio.service > pulseaudio.socket > + $ systemctl --user --now disable pipewire.socket pipewire- > pulse.socket > + > +3. For users without sound on their system, those using JACK without > + PipeWire, or those using pure ALSA without PipeWire, the following > steps > + are recommended: > + > + Place the following entries in /etc/portage/package.use: > + ``` > + media-video/pipewire -sound-server > + media-sound/pulseaudio -daemon > + ``` > + > + Then perform a world upgrade: > + $ emerge --ask --update --changed-use --deep @world > + > + Then depclean: > + $ emerge --ask --depclean > + > + OpenRC users on an XDG-compliant desktop which respects autostart > files > + will not need to take any further action. > + > + OpenRC users using a minimal desktop which does not respect > autostart > + files will need to run `gentoo-pipewire-launcher &` in e.g. > + `~/.xprofile`. > + > + systemd users will also likely want to run the following commands, > again > + for the purposes of non-audio PipeWire use: > + $ systemctl --user --now enable pipewire.socket > + $ systemctl --user --now --force enable wireplumber.service > + > + > +Further resources: > +* https://wiki.gentoo.org/wiki/PipeWire
LGTM