aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-lxc/recipes-multimedia
diff options
context:
space:
mode:
authorAshok Sidipotu <ashok.sidipotu@collabora.com>2022-02-17 19:02:03 +0530
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2022-06-10 21:18:06 +0000
commit1f9f960298a6a2e6ae0360c4ef42e88c9678069a (patch)
tree0b3539b185042e96ad10db4403823c78870aa01c /meta-agl-lxc/recipes-multimedia
parent11505a45554d8db0ca0fd6f5e77c88cbbb7cacb3 (diff)
Enable Wireplumber Policy instance in ivi guest image.
-add wireplumber-policy-config-agl recipe to guest, while wireplumber-config-agl remains in host. -add packagegroup-pipewire-base which is needed by the policy recipe. -mount host pipewire server socket in /var directory in guest image and define a PIPEWIRE_RUNTIME_DIR environment variable based on this new mount point. -make the needed service file changes to have wireplumber policy instance start on its own with out depending on pipewire service, limit this change to lxc layers. -install wireplumber@policy.service in sockets.targets.want directory, this is need for its self start, limit this change to lxc layers Bug-AGL: SPEC-4100 Signed-off-by: Ashok Sidipotu <ashok.sidipotu@collabora.com> Change-Id: Ifbd7a026c75a199bb540c1593d5a93f67a4bde02
Diffstat (limited to 'meta-agl-lxc/recipes-multimedia')
-rw-r--r--meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend8
-rw-r--r--meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch64
-rw-r--r--meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend5
3 files changed, 77 insertions, 0 deletions
diff --git a/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend
new file mode 100644
index 00000000..fe6dab86
--- /dev/null
+++ b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bbappend
@@ -0,0 +1,8 @@
+do_install:append() {
+ config_dir="${D}${sysconfdir}/wireplumber/"
+ systemd_dir="${D}${sysconfdir}/systemd/system/sockets.target.wants"
+
+ # enable additional systemd services
+ install -d ${systemd_dir}
+ ln -s ${systemd_system_unitdir}/wireplumber@.service ${systemd_dir}/wireplumber@policy.service
+}
diff --git a/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch
new file mode 100644
index 00000000..0da0bfb6
--- /dev/null
+++ b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber/0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch
@@ -0,0 +1,64 @@
+From a2d324c75057f0ddd66cbe5b5e419fddda213cc2 Mon Sep 17 00:00:00 2001
+From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
+Date: Mon, 28 Feb 2022 06:46:19 +0530
+Subject: [PATCH] systemd: changes to run wireplumber instances in containers
+
+- remove the pipewire daemon dependencies so that
+only wireplumber policy daemon can run in containers.
+- remove pipewire user
+---
+ src/systemd/system/wireplumber@.service.in | 8 +++-----
+ src/systemd/user/wireplumber@.service.in | 5 ++---
+ 2 files changed, 5 insertions(+), 8 deletions(-)
+
+ Inappropriate [configuration]
+
+diff --git a/src/systemd/system/wireplumber@.service.in b/src/systemd/system/wireplumber@.service.in
+index ba8eefe..e4b985b 100644
+--- a/src/systemd/system/wireplumber@.service.in
++++ b/src/systemd/system/wireplumber@.service.in
+@@ -5,8 +5,7 @@
+ # wireplumber@policy.service loads policy.conf, etc.
+ [Unit]
+ Description=Multimedia Service Session Manager (%i)
+-After=pipewire.service
+-BindsTo=pipewire.service
++After=sockets.target
+ Conflicts=pipewire-media-session.service
+
+ [Service]
+@@ -19,9 +18,8 @@ SystemCallFilter=@system-service
+ Type=simple
+ ExecStart=@WP_BINARY@ -c %i.conf
+ Restart=on-failure
+-User=pipewire
+-Environment=PIPEWIRE_RUNTIME_DIR=%t/pipewire
++Environment=PIPEWIRE_RUNTIME_DIR=/var
+ Environment=GIO_USE_VFS=local
+
+ [Install]
+-WantedBy=pipewire.service
++WantedBy=multi-user.target
+diff --git a/src/systemd/user/wireplumber@.service.in b/src/systemd/user/wireplumber@.service.in
+index 9dbceff..7e21194 100644
+--- a/src/systemd/user/wireplumber@.service.in
++++ b/src/systemd/user/wireplumber@.service.in
+@@ -5,8 +5,7 @@
+ # wireplumber@policy.service loads policy.conf, etc.
+ [Unit]
+ Description=Multimedia Service Session Manager (%i)
+-After=pipewire.service
+-BindsTo=pipewire.service
++After=sockets.target
+ Conflicts=pipewire-media-session.service
+
+ [Service]
+@@ -23,4 +22,4 @@ Slice=session.slice
+ Environment=GIO_USE_VFS=local
+
+ [Install]
+-WantedBy=pipewire.service
++WantedBy=multi-user.target
+--
+2.35.1
+
diff --git a/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend
new file mode 100644
index 00000000..6a73503d
--- /dev/null
+++ b/meta-agl-lxc/recipes-multimedia/wireplumber/wireplumber_git.bbappend
@@ -0,0 +1,5 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/wireplumber:"
+
+SRC_URI += "\
+ file://0001-systemd-wireplumber-to-not-depend-on-the-pipewire-de.patch \
+"