On July 26, 2022 10:08:39 PM GMT+02:00, Sam James <s...@gentoo.org> 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).
Small typo here: piepwire --> pipewire
>+
>+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