diff options
Diffstat (limited to 'metadata/news/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt')
-rw-r--r-- | metadata/news/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/metadata/news/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt b/metadata/news/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt new file mode 100644 index 000000000000..0cb4a2d73ddf --- /dev/null +++ b/metadata/news/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt @@ -0,0 +1,130 @@ +Title: PipeWire sound server migration +Author: Sam James <sam@gentoo.org> +Posted: 2022-07-29 +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/pipewire) +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 |