pipewire config: enable bluez modules in pipewire and wireplumber
[AGL/meta-agl-devel.git] / meta-pipewire / recipes-multimedia / pipewire / pipewire_git.bbappend
index 06b969a..8a0b074 100644 (file)
@@ -1,11 +1,30 @@
+SRC_URI += "\
+    file://pipewire@.service \
+    file://pipewire@.socket \
+    file://smack-pipewire \
+    "
+
 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
+        # remove 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
+
+        # install smack rules
+        mkdir -p ${D}${sysconfdir}/smack/accesses.d
+        install -m 0644 ${WORKDIR}/smack-pipewire ${D}${sysconfdir}/smack/accesses.d/pipewire
     fi
 }
 
-FILES_${PN} += "${sysconfdir}/systemd/user/"
-
+FILES_${PN} += "\
+    ${systemd_system_unitdir}/* \
+    ${sysconfdir}/smack/accesses.d/* \
+"