pipewire: switch system-wide template systemd service & socket files
[AGL/meta-agl-devel.git] / meta-pipewire / recipes-multimedia / pipewire / pipewire_git.bbappend
index 06b969a..31253d0 100644 (file)
@@ -1,11 +1,22 @@
+SRC_URI += "\
+    file://pipewire@.service \
+    file://pipewire@.socket \
+    "
+
 do_install_append() {
     if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
-        # Execute these manually on behalf of systemctl script (from systemd-systemctl-native.bb)
-        # because it does not support systemd's user mode.
-        mkdir -p ${D}${sysconfdir}/systemd/user/sockets.target.wants/
-        ln -sf ${systemd_user_unitdir}/pipewire.socket ${D}${sysconfdir}/systemd/user/sockets.target.wants/pipewire.socket
+        # remote the original user unit files shipped by pipewire
+        rm -rf ${D}${systemd_unitdir}
+
+        # install our own system-level templates
+        mkdir -p ${D}${systemd_system_unitdir}/
+        install -m 0644 ${WORKDIR}/pipewire@.service ${D}${systemd_system_unitdir}/pipewire@.service
+        install -m 0644 ${WORKDIR}/pipewire@.socket ${D}${systemd_system_unitdir}/pipewire@.socket
+
+        # enable the socket to start together with afm-user-session
+        mkdir -p ${D}${systemd_system_unitdir}/afm-user-session@.target.wants
+        ln -sf ../pipewire@.socket ${D}${systemd_system_unitdir}/afm-user-session@.target.wants/pipewire@.socket
     fi
 }
 
-FILES_${PN} += "${sysconfdir}/systemd/user/"
-
+FILES_${PN} += "${systemd_system_unitdir}/*"