Bug: https://bugs.gentoo.org/744622
Bug: https://bugs.gentoo.org/859280
Signed-off-by: Sam James <sam@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 <sam@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
Bug: https://bugs.gentoo.org/744622
Bug: https://bugs.gentoo.org/859280
Signed-off-by: Sam James <sam@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 <sam@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
On Tue, 26 Jul 2022, Sam James wrote:
+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:
On Tue, 26 Jul 2022, Sam James wrote:
+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:
"The text body should be wrapped at 72 characters." https://www.gentoo.org/glep/glep-0042.html#news-item-body
On 27 Jul 2022, at 07:18, Madhu <enometh@meer.net> wrote:
On Tue, 26 Jul 2022, Sam James wrote:
+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:
"The text body should be wrapped at 72 characters."
https://www.gentoo.org/glep/glep-0042.html#news-item-body
This is unecessarily restrictive to force the user to choose between
pipewire and pulseaudio for the sound server. It is possible (I am
running it now), and should be possible for gentoo to have both
installed simultaneously and run one or the other at any given time,
through configuration files.
[I think the only patch that is required is for alsa-plugins/pulse/conf_pulse.c: (conf_pulse_hook_load_if_running)
which can be taught to check if the pipewire daemon is running and
quit that particular module. but it is not pipewire aware yet]
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (2 / 14) |
Uptime: | 15:30:10 |
Calls: | 10,389 |
Files: | 14,061 |
Messages: | 6,416,911 |