From 2d86b15e8313b61bc9c74b8eaa1a4684403374d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= Date: Thu, 4 Apr 2019 02:40:42 +0200 Subject: [PATCH] pulse: add qrexec services to control audio-input in another VM Audio VM may not be dom0, so lets allow control it through qrexec QubesOS/qubes-issues#1590 --- Makefile | 2 ++ debian/control | 1 + debian/qubes-gui-daemon-pulseaudio.install | 2 ++ pulse/qubes.AudioInputDisable | 4 ++++ pulse/qubes.AudioInputEnable | 4 ++++ rpm_spec/gui-daemon.spec.in | 5 +++-- 6 files changed, 16 insertions(+), 2 deletions(-) create mode 100755 pulse/qubes.AudioInputDisable create mode 100755 pulse/qubes.AudioInputEnable diff --git a/Makefile b/Makefile index f453f4df..dd314c07 100644 --- a/Makefile +++ b/Makefile @@ -52,6 +52,8 @@ install: install -D gui-daemon/qubes-guid $(DESTDIR)/usr/bin/qubes-guid install -m 0644 -D gui-daemon/qubes-guid.1 $(DESTDIR)$(MANDIR)/man1/qubes-guid.1 install -D pulse/pacat-simple-vchan $(DESTDIR)/usr/bin/pacat-simple-vchan + install -D pulse/qubes.AudioInputEnable $(DESTDIR)/etc/qubes-rpc/qubes.AudioInputEnable + install -D pulse/qubes.AudioInputDisable $(DESTDIR)/etc/qubes-rpc/qubes.AudioInputDisable install -D shmoverride/X-wrapper-qubes $(DESTDIR)/usr/bin/X-wrapper-qubes install -D shmoverride/shmoverride.so $(DESTDIR)$(LIBDIR)/qubes-gui-daemon/shmoverride.so install -D -m 0644 gui-daemon/guid.conf $(DESTDIR)/etc/qubes/guid.conf diff --git a/debian/control b/debian/control index 7fb4b4cd..5b10c160 100644 --- a/debian/control +++ b/debian/control @@ -32,6 +32,7 @@ Depends: python3, qubes-core-qrexec (>= 4.1.5), qubes-utils (>= 4.1.4), + socat, ${shlibs:Depends}, ${misc:Depends} Recommends: diff --git a/debian/qubes-gui-daemon-pulseaudio.install b/debian/qubes-gui-daemon-pulseaudio.install index 5064a855..0b57c584 100644 --- a/debian/qubes-gui-daemon-pulseaudio.install +++ b/debian/qubes-gui-daemon-pulseaudio.install @@ -1 +1,3 @@ usr/bin/pacat-simple-vchan +etc/qubes-rpc/qubes.AudioInputEnable +etc/qubes-rpc/qubes.AudioInputDisable diff --git a/pulse/qubes.AudioInputDisable b/pulse/qubes.AudioInputDisable new file mode 100755 index 00000000..7c82eb5f --- /dev/null +++ b/pulse/qubes.AudioInputDisable @@ -0,0 +1,4 @@ +#!/bin/sh +[ -n "$1" ] || exit 1 +control_socket="/var/run/qubes/audio-control.$1" +echo "audio-input 0" | socat -u - "UNIX-CONNECT:$control_socket" diff --git a/pulse/qubes.AudioInputEnable b/pulse/qubes.AudioInputEnable new file mode 100755 index 00000000..150f5af9 --- /dev/null +++ b/pulse/qubes.AudioInputEnable @@ -0,0 +1,4 @@ +#!/bin/sh +[ -n "$1" ] || exit 1 +control_socket="/var/run/qubes/audio-control.$1" +echo "audio-input 1" | socat -u - "UNIX-CONNECT:$control_socket" diff --git a/rpm_spec/gui-daemon.spec.in b/rpm_spec/gui-daemon.spec.in index 5ea11f21..d8b91331 100644 --- a/rpm_spec/gui-daemon.spec.in +++ b/rpm_spec/gui-daemon.spec.in @@ -41,6 +41,7 @@ Requires: qubes-utils >= 3.1.0 Requires: python%{python3_pkgversion}-pydbus Requires: qubes-core-qrexec >= 4.1.5 Requires: qubes-utils >= 4.1.4 +Requires: socat BuildRequires: python%{python3_pkgversion}-devel BuildRequires: pulseaudio-libs-devel @@ -146,8 +147,8 @@ rm -f %{name}-%{version} %files -n qubes-audio-daemon /usr/bin/pacat-simple-vchan -/usr/share/dbus-1/interfaces/org.qubesos.Audio.xml -%config(noreplace) /etc/dbus-1/system.d/org.qubesos.Audio.conf +/etc/qubes-rpc/qubes.AudioInputEnable +/etc/qubes-rpc/qubes.AudioInputDisable %files -n qubes-gui-dom0 %config(noreplace) %{_sysconfdir}/qubes-rpc/policy/qubes.ClipboardPaste