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" |