Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/pipewire/
Date: Mon, 04 Jul 2022 21:40:55
Message-Id: 1656970533.21f12bb743b94242f73cef85ef24fdf6ff703eed.sam@gentoo
1 commit: 21f12bb743b94242f73cef85ef24fdf6ff703eed
2 Author: Igor V. Kovalenko <igor.v.kovalenko <AT> gmail <DOT> com>
3 AuthorDate: Sat Jul 2 06:13:11 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Mon Jul 4 21:35:33 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21f12bb7
7
8 media-video/pipewire: Add USE sound-server
9
10 Add USE sound-server to enable sound server with alsa and bluetooth devices.
11 Conditionally enable required wireplumber monitor parts and pipewire-pulse.
12
13 Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko <AT> gmail.com>
14 Signed-off-by: Sam James <sam <AT> gentoo.org>
15
16 media-video/pipewire/metadata.xml | 1 +
17 media-video/pipewire/pipewire-0.3.53.ebuild | 21 +++++++++++++++++++--
18 2 files changed, 20 insertions(+), 2 deletions(-)
19
20 diff --git a/media-video/pipewire/metadata.xml b/media-video/pipewire/metadata.xml
21 index b7e4f57f5480..08adc4c25b4f 100644
22 --- a/media-video/pipewire/metadata.xml
23 +++ b/media-video/pipewire/metadata.xml
24 @@ -28,5 +28,6 @@
25 <flag name="ssl">Enable raop-sink support (needs <pkg>dev-libs/openssl</pkg>)</flag>
26 <flag name="system-service">Install systemd unit files for running as a system service. Not recommended.</flag>
27 <flag name="X">Enable audible bell for X11</flag>
28 + <flag name="sound-server">Provide sound server using ALSA and bluetooth devices</flag>
29 </use>
30 </pkgmetadata>
31
32 diff --git a/media-video/pipewire/pipewire-0.3.53.ebuild b/media-video/pipewire/pipewire-0.3.53.ebuild
33 index 9ab78449ccc3..a2f1daf3b80c 100644
34 --- a/media-video/pipewire/pipewire-0.3.53.ebuild
35 +++ b/media-video/pipewire/pipewire-0.3.53.ebuild
36 @@ -28,7 +28,8 @@ HOMEPAGE="https://pipewire.org/"
37 LICENSE="MIT LGPL-2.1+ GPL-2"
38 # ABI was broken in 0.3.42 for https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
39 SLOT="0/0.4"
40 -IUSE="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk lv2 pipewire-alsa ssl system-service systemd test udev v4l X zeroconf"
41 +IUSE="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk lv2 pipewire-alsa
42 +sound-server ssl system-service systemd test udev v4l X zeroconf"
43
44 # Once replacing system JACK libraries is possible, it's likely that
45 # jack-client IUSE will need blocking to avoid users accidentally
46 @@ -36,6 +37,7 @@ IUSE="bluetooth doc echo-cancel extra gstreamer jack-client jack-sdk lv2 pipewir
47 # JACK's sink - doing so is likely to yield no audio, cause a CPU
48 # cycles consuming loop (and may even cause GUI crashes)!
49
50 +# TODO: There should be "sound-server? ( || ( alsa bluetooth ) )" here, but ALSA is always enabled
51 REQUIRED_USE="
52 jack-sdk? ( !jack-client )
53 system-service? ( systemd )
54 @@ -250,12 +252,26 @@ multilib_src_install_all() {
55 dosym ../../../usr/share/alsa/alsa.conf.d/99-pipewire-default-hook.conf /etc/alsa/conf.d/99-pipewire-default-hook.conf
56 fi
57
58 + # Enable required wireplumber alsa and bluez monitors
59 + if use sound-server; then
60 + dodir /etc/wireplumber/main.lua.d
61 + echo "alsa_monitor.enabled = true" > ${D}/etc/wireplumber/main.lua.d/89-gentoo-sound-server-enable-alsa-monitor.lua
62 + dodir /etc/wireplumber/bluetooth.lua.d
63 + echo "bluez_monitor.enabled = true" > ${D}/etc/wireplumber/bluetooth.lua.d/89-gentoo-sound-server-enable-bluez-monitor.lua
64 + fi
65 +
66 if ! use systemd; then
67 insinto /etc/xdg/autostart
68 newins "${FILESDIR}"/pipewire.desktop-r1 pipewire.desktop
69
70 exeinto /usr/bin
71 newexe "${FILESDIR}"/gentoo-pipewire-launcher.in gentoo-pipewire-launcher
72 +
73 + # Disable pipewire-pulse if sound-server is disabled.
74 + if ! use sound-server ; then
75 + sed -i -s '/pipewire -c pipewire-pulse.conf/s/^/#/' "${ED}"/usr/bin/gentoo-pipewire-launcher || die
76 + fi
77 +
78 eprefixify "${ED}"/usr/bin/gentoo-pipewire-launcher
79 fi
80 }
81 @@ -310,7 +326,8 @@ pkg_postinst() {
82 ewarn "now on start ${EROOT}/usr/bin/gentoo-pipewire-launcher instead! It is highly"
83 ewarn "advised that a D-Bus user session is set up before starting the script."
84 ewarn
85 - if has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon'; then
86 +
87 + if use sound-server && ( has_version 'media-sound/pulseaudio[daemon]' || has_version 'media-sound/pulseaudio-daemon' ) ; then
88 elog "This ebuild auto-enables PulseAudio replacement. Because of that, users"
89 elog "are recommended to edit pulseaudio client configuration files:"
90 elog "${EROOT}/etc/pulse/client.conf and ${EROOT}/etc/pulse/client.conf.d/enable-autospawn.conf"