Gentoo Archives: gentoo-dev

From: Sam James <sam@g.o>
To: gentoo-dev@l.g.o
Cc: gnome@g.o, leio@g.o, igor.v.kovalenko@×××××.com, kde@g.o, Sam James <sam@g.o>
Subject: [gentoo-dev] [PATCH] 2022-07-28-pipewire-sound-server: add item
Date: Tue, 26 Jul 2022 20:08:55
Message-Id: 20220726200839.302642-1-sam@gentoo.org
1 Bug: https://bugs.gentoo.org/744622
2 Bug: https://bugs.gentoo.org/859280
3 Signed-off-by: Sam James <sam@g.o>
4 ---
5 .../2022-07-28-pipewire-sound-server.en.txt | 130 ++++++++++++++++++
6 1 file changed, 130 insertions(+)
7 create mode 100644 2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-server.en.txt
8
9 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
10 new file mode 100644
11 index 0000000..6ebe676
12 --- /dev/null
13 +++ b/2022-07-28-pipewire-sound-server/2022-07-28-pipewire-sound-server.en.txt
14 @@ -0,0 +1,130 @@
15 +Title: Pipewire sound server migration
16 +Author: Sam James <sam@g.o>
17 +Posted: 2022-07-28
18 +Revision: 1
19 +News-Item-Format: 2.0
20 +Display-If-Installed: media-video/pipewire
21 +Display-If-Installed: media-sound/pulseaudio
22 +Display-If-Installed: media-sound/pulseaudio-daemon
23 +Display-If-Installed: media-libs/libpulse
24 +
25 +PipeWire has gained a new USE flag "sound-server" for enabling/disabling its
26 +sound server capabilities.
27 +
28 +This change is needed to avoid PipeWire and PulseAudio conflicting over control
29 +of audio devices. Before this change, OpenRC users were in some cases accidentally
30 +migrated to PipeWire which was difficult to override without manually editing
31 +launcher files.
32 +
33 +For non-audio purposes, PipeWire is installed in many configurations as more
34 +and more software depends on it for e.g. screensharing, sandboxing,
35 +and window previews, so users will need to act based on their preferred
36 +setup rather than simply avoiding installing PipeWire, as it is
37 +increasingly required as a dependency.
38 +
39 +Packages needing PulseAudio's APIs will be migrated from the now-meta package
40 +media-sound/pulseaudio to depending on media-libs/libpulse. The runtime
41 +PulseAudio server can be provided by either PipeWire (media-video/piepwire)
42 +or the original PulseAudio (media-sound/pulseaudio-daemon).
43 +
44 +The new sound-server USE flag for PipeWire allows easily controlling
45 +this behavior.
46 +
47 +There are several options available:
48 +
49 +1. To use PipeWire for sound, users should enable USE=sound-server for PipeWire:
50 +
51 + Place the following entries in /etc/portage/package.use:
52 + ```
53 + media-video/pipewire sound-server
54 + media-sound/pulseaudio -daemon
55 + ```
56 +
57 + First, sync:
58 + $ emerge --sync
59 +
60 + Deselect media-sound/pulseaudio-daemon:
61 + $ emerge --deselect media-sound/pulseaudio-daemon
62 +
63 + Then perform a world upgrade:
64 + $ emerge --ask --update --changed-use --deep @world
65 +
66 + Then depclean:
67 + $ emerge --ask --depclean
68 +
69 + OpenRC users on an XDG-compliant desktop which respects autostart files
70 + will not need to take any further action.
71 +
72 + OpenRC users using a minimal desktop which does not respect autostart
73 + files will need to run `gentoo-pipewire-launcher &` in e.g.
74 + `~/.xprofile`.
75 +
76 + systemd users will also need to run the following commands:
77 + $ systemctl --user --now disable pulseaudio.service pulseaudio.socket
78 + $ systemctl --user --now enable pipewire.socket pipewire-pulse.socket
79 + $ systemctl --user --now disable pipewire-media-session.service
80 + $ systemctl --user --force enable wireplumber.service
81 +
82 +2. To use PulseAudio's daemon for sound, users should disable USE=sound-server for PipeWire,
83 + enable USE=daemon on media-sound/pulseaudio, and add media-sound/pulseaudio-daemon to
84 + their world file:
85 +
86 + Place the following entries in /etc/portage/package.use:
87 + ```
88 + media-video/pipewire -sound-server
89 + media-sound/pulseaudio daemon
90 + ```
91 +
92 + Add media-sound/pulseaudio-daemon to @world:
93 + $ emerge --noreplace media-sound/pulseaudio-daemon
94 +
95 + Then perform a world upgrade:
96 + $ emerge --ask --update --changed-use --deep @world
97 +
98 + Then depclean:
99 + $ emerge --ask --depclean
100 +
101 + OpenRC users on an XDG-compliant desktop which respects autostart files
102 + will not need to take any further action.
103 +
104 + OpenRC users using a minimal desktop which does not respect autostart
105 + files should consider adding `gentoo-pipewire-launcher &` in e.g.
106 + `~/.xprofile` but it's not strictly required in terms of audio
107 + handling. It may be required in future for the non-audio usecases
108 + described above.
109 +
110 + systemd users will also need to run the following commands:
111 + $ systemctl --user --now enable pulseaudio.service pulseaudio.socket
112 + $ systemctl --user --now disable pipewire.socket pipewire-pulse.socket
113 +
114 +3. For users without sound on their system, those using JACK without
115 + PipeWire, or those using pure ALSA without PipeWire, the following steps
116 + are recommended:
117 +
118 + Place the following entries in /etc/portage/package.use:
119 + ```
120 + media-video/pipewire -sound-server
121 + media-sound/pulseaudio -daemon
122 + ```
123 +
124 + Then perform a world upgrade:
125 + $ emerge --ask --update --changed-use --deep @world
126 +
127 + Then depclean:
128 + $ emerge --ask --depclean
129 +
130 + OpenRC users on an XDG-compliant desktop which respects autostart files
131 + will not need to take any further action.
132 +
133 + OpenRC users using a minimal desktop which does not respect autostart
134 + files will need to run `gentoo-pipewire-launcher &` in e.g.
135 + `~/.xprofile`.
136 +
137 + systemd users will also likely want to run the following commands, again
138 + for the purposes of non-audio PipeWire use:
139 + $ systemctl --user --now enable pipewire.socket
140 + $ systemctl --user --now --force enable wireplumber.service
141 +
142 +
143 +Further resources:
144 +* https://wiki.gentoo.org/wiki/PipeWire
145 --
146 2.37.1

Replies