wireplumber: remove virtual RPROVIDES
[AGL/meta-agl.git] / meta-pipewire / recipes-multimedia / wireplumber / wireplumber_git.bb
index 0e810b3..a04f115 100644 (file)
@@ -7,40 +7,79 @@ SECTION     = "multimedia"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;beginline=3;md5=e8ad01a5182f2c1b3a2640e9ea268264"
 
-inherit meson pkgconfig gobject-introspection
+inherit meson pkgconfig systemd
 
-DEPENDS = "glib-2.0 glib-2.0-native pipewire"
+DEPENDS = "glib-2.0 glib-2.0-native pipewire lua"
 
 SRC_URI = "\
     git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \
-    https://raw.githubusercontent.com/skystrife/cpptoml/fededad7169e538ca47e11a9ee9251bc361a9a65/include/cpptoml.h \
-    file://0001-Build-cpptoml-without-a-cmake-subproject.patch \
 "
-SRCREV = "0e98e4150b73d0bed9b72bf8d3eba49671962991"
-SRC_URI[sha256sum] = "3e4e1d315fa1229921c7a4297ead08775b5bb1220c18a7eac62db9ca7e79df0d"
+# v0.4.17
+SRCREV = "d3eb77b292655cef333a8f4cab4e861415bc37c2"
 
-PV = "0.1.90+git${SRCPV}"
+# patches to be able to compile with lower version of meson that is available in AGL.
+SRC_URI += "\
+"
+
+PV = "0.4.17"
 S  = "${WORKDIR}/git"
 
-do_configure_prepend() {
-    mkdir -p ${WORKDIR}/git/subprojects/cpptoml/include
-    cp -f ${WORKDIR}/cpptoml.h ${WORKDIR}/git/subprojects/cpptoml/include/
-}
+WPAPI="0.4"
+
+# use shared lua from the system instead of the static bundled one
+EXTRA_OEMESON += "-Dsystem-lua=true"
 
-PACKAGES =+ "${PN}-config"
+# introspection in practice is only used for generating API docs
+# API docs are available on the website and we don't need to build them
+# (plus they depend on hotdoc which is not available here)
+EXTRA_OEMESON += "-Dintrospection=disabled -Ddoc=disabled"
 
-FILES_${PN} += "\
-    ${libdir}/wireplumber-*/* \
+PACKAGECONFIG = "\
+    ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
 "
-RPROVIDES_${PN} += "virtual/pipewire-sessionmanager"
-RDEPENDS_${PN} += "virtual/wireplumber-config"
 
+PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=true -Dsystemd-user-service=false,-Dsystemd=disabled -Dsystemd-system-service=false -Dsystemd-user-service=false,systemd"
 
-FILES_${PN}-config += "\
-    ${sysconfdir}/wireplumber/* \
+do_configure:prepend() {
+    # relax meson version requirement
+    # we only need 0.54 when building with -Dsystem-lua=false
+    sed "s/meson_version : '>= 0.56.0'/meson_version : '>= 0.53.2'/" ${S}/meson.build > ${S}/tmp.build
+    mv -f ${S}/tmp.build ${S}/meson.build
+}
+
+PACKAGES =+ "\
+    lib${PN}-${WPAPI} \
+    ${PN}-config \
 "
-CONFFILES_${PN}-config += "\
-    ${sysconfdir}/wireplumber/* \
+
+SYSTEMD_SERVICE:${PN} = "wireplumber.service"
+FILES:${PN} = "\
+    ${bindir}/wireplumber \
+    ${bindir}/wpctl \
+    ${bindir}/wpexec \
+    ${libdir}/wireplumber-${WPAPI}/* \
+    ${datadir}/wireplumber/scripts/* \
+    ${datadir}/zsh/* \
+    ${systemd_system_unitdir}/* \
+"
+
+FILES:lib${PN}-${WPAPI} = "\
+    ${libdir}/libwireplumber-${WPAPI}.so.* \
 "
 
-RPROVIDES_${PN}-config += "virtual/wireplumber-config"
+FILES:${PN}-config += "\
+    ${sysconfdir}/wireplumber/* \
+    ${datadir}/wireplumber/*conf \
+    ${datadir}/wireplumber/common/* \
+    ${datadir}/wireplumber/main.lua.d/* \
+    ${datadir}/wireplumber/bluetooth.lua.d/* \
+    ${datadir}/wireplumber/policy.lua.d/* \
+"
+do_install:append() {
+    rm -rf ${D}${sysconfdir}/wireplumber/
+    rm -f ${D}${datadir}/wireplumber/*conf
+    rm -rf ${D}${datadir}/wireplumber/common
+    rm -rf ${D}${datadir}/wireplumber/main.lua.d
+    rm -rf ${D}${datadir}/wireplumber/bluetooth.lua.d
+    rm -rf ${D}${datadir}/wireplumber/policy.lua.d
+}