From 1d045c18facda3bd5db359b6258dce66d261b2c9 Mon Sep 17 00:00:00 2001 From: Cameron Nemo Date: Sun, 7 Aug 2022 12:26:05 -0700 Subject: [PATCH] pipewire: use a conffile to autostart p-m-s It should be possible to disable autostart of pipewire-media-session and use some other method to start it, or start wireplumber instead. Rather than patch /usr/share/pipewire/pipewire.conf, ship a drop-in config in /etc/pipewire/pipewire.conf.d and mark it as a conffile. --- .../files/10-autostart-session-manager.conf | 6 ++++++ .../patches/autostart-media-session.patch | 17 ----------------- srcpkgs/pipewire/template | 4 +++- 3 files changed, 9 insertions(+), 18 deletions(-) create mode 100644 srcpkgs/pipewire/files/10-autostart-session-manager.conf delete mode 100644 srcpkgs/pipewire/patches/autostart-media-session.patch diff --git a/srcpkgs/pipewire/files/10-autostart-session-manager.conf b/srcpkgs/pipewire/files/10-autostart-session-manager.conf new file mode 100644 index 000000000000..d4cb814bc6e7 --- /dev/null +++ b/srcpkgs/pipewire/files/10-autostart-session-manager.conf @@ -0,0 +1,6 @@ +# The session manager is an essential component. It's not easy to start it +# externally in a script since it needs the pipewire socket up, and Void +# doesn't have a mechanism to ensure it (systemd socket activation). +context.exec = [ + { path = "/usr/bin/pipewire-media-session" args = "" } +] diff --git a/srcpkgs/pipewire/patches/autostart-media-session.patch b/srcpkgs/pipewire/patches/autostart-media-session.patch deleted file mode 100644 index c5753a3719c2..000000000000 --- a/srcpkgs/pipewire/patches/autostart-media-session.patch +++ /dev/null @@ -1,17 +0,0 @@ -Upstream's config does not autostart pipewire-media-session anymore, which -is an essential component. It's not easy to start it externally in a script -since it needs the pipewire socket up, and Void doesn't have a mechanism to -ensure it (systemd socket activation). -diff --git a/src/daemon/pipewire.conf.in.orig b/src/daemon/pipewire.conf.in -index 95632c2..ab0b097 100644 ---- a/src/daemon/pipewire.conf.in.orig -+++ b/src/daemon/pipewire.conf.in -@@ -236,7 +236,7 @@ - # but it is better to start it as a systemd service. - # Run the session manager with -h for options. - # -- @sm_comment@{ path = "@session_manager_path@" args = "@session_manager_args@" } -+ { path = "@session_manager_path@" args = "@session_manager_args@" } - # - # You can optionally start the pulseaudio-server here as well - # but it is better to start it as a systemd service. diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template index 220bf2f68b6b..5835fee4d2b6 100644 --- a/srcpkgs/pipewire/template +++ b/srcpkgs/pipewire/template @@ -1,7 +1,7 @@ # Template file for 'pipewire' pkgname=pipewire version=0.3.56 -revision=1 +revision=2 _pms_version=0.4.1 build_style=meson configure_args=" @@ -37,6 +37,7 @@ distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version} checksum="e73d8897daac8f9e61a23193ed71971682715a5997cb553d809bc61a349ef03c 119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975" make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire" +conf_files="/etc/pipewire/pipewire.conf.d/*" system_accounts="_pipewire" build_options="sdl2" @@ -63,6 +64,7 @@ post_install() { vdoc "${FILESDIR}/README.voidlinux" vsv pipewire vsv pipewire-pulse + vinstall "${FILESDIR}/10-autostart-session-manager.conf" 644 etc/pipewire/pipewire.conf.d vmkdir usr/share/applications cp "${FILESDIR}/pipewire.desktop" ${DESTDIR}/usr/share/applications/pipewire.desktop cp "${FILESDIR}/pipewire-pulse.desktop" ${DESTDIR}/usr/share/applications/pipewire-pulse.desktop