From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3C70F158094 for ; Fri, 29 Jul 2022 01:44:57 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 2D677E0D6D; Fri, 29 Jul 2022 01:44:56 +0000 (UTC) Received: from smtp.gentoo.org (dev.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 057C6E0D6D for ; Fri, 29 Jul 2022 01:44:55 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 21625341194 for ; Fri, 29 Jul 2022 01:44:55 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id AD9E4544 for ; Fri, 29 Jul 2022 01:44:53 +0000 (UTC) From: "Sam James" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Sam James" Message-ID: <1659059087.1d217ffd5deca9d20b61acd2a7832272d036a0e0.sam@gentoo> Subject: [gentoo-commits] data/gentoo-news:master commit in: 2022-07-29-pipewire-sound-server/ X-VCS-Repository: data/gentoo-news X-VCS-Files: 2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt X-VCS-Directories: 2022-07-29-pipewire-sound-server/ X-VCS-Committer: sam X-VCS-Committer-Name: Sam James X-VCS-Revision: 1d217ffd5deca9d20b61acd2a7832272d036a0e0 X-VCS-Branch: master Date: Fri, 29 Jul 2022 01:44:53 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: e6dfe610-185c-4139-bfb8-95596f47c3d8 X-Archives-Hash: 10b275a5189a64411eb428768f5e9bc4 commit: 1d217ffd5deca9d20b61acd2a7832272d036a0e0 Author: Sam James gentoo org> AuthorDate: Fri Jul 29 01:44:47 2022 +0000 Commit: Sam James gentoo org> CommitDate: Fri Jul 29 01:44:47 2022 +0000 URL: https://gitweb.gentoo.org/data/gentoo-news.git/commit/?id=1d217ffd 2022-07-29-pipewire-sound-server: add item Bug: https://bugs.gentoo.org/744622 Bug: https://bugs.gentoo.org/859280 Signed-off-by: Sam James gentoo.org> .../2022-07-29-pipewire-sound-server.en.txt | 130 +++++++++++++++++++++ 1 file changed, 130 insertions(+) diff --git a/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt b/2022-07-29-pipewire-sound-server/2022-07-29-pipewire-sound-server.en.txt new file mode 100644 index 0000000..0cb4a2d --- /dev/null +++ b/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 +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