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

Reply via email to