diff options
8 files changed, 127 insertions, 15 deletions
diff --git a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire-base.bb b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire-base.bb new file mode 100644 index 000000000..1d20b4705 --- /dev/null +++ b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire-base.bb @@ -0,0 +1,16 @@ +SUMMARY = "PipeWire Media Server Base" +DESCRIPTION = "The set of packages required to use PipeWire API in AGL" +LICENSE = "MIT" + +inherit packagegroup + +PACKAGES = "\ + packagegroup-pipewire-base \ + " + +RDEPENDS:${PN} += "\ + pipewire-spa-plugins-meta \ + pipewire-modules-meta \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'pipewire-tools pipewire-spa-tools alsa-utils', '', d)} \ + pipewire-alsa \ +" diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb index 839a15fda..22ffe5bf3 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb @@ -8,11 +8,9 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda SRC_URI = "\ file://bluetooth.lua.d/ \ file://host.lua.d/ \ - file://policy.lua.d \ file://00-functions.lua \ file://alsa-suspend.lua \ file://bluetooth.conf \ - file://policy.conf \ file://wireplumber.conf \ file://wireplumber-bluetooth.conf \ " @@ -35,12 +33,6 @@ do_install:append() { install -m 0644 ${WORKDIR}/host.lua.d/*.lua ${config_dir}/host.lua.d/ install -m 0644 ${WORKDIR}/wireplumber.conf ${config_dir} - # config of the policy instance - install -d ${config_dir}/policy.lua.d/ - ln -s ../00-functions.lua ${config_dir}/policy.lua.d/00-functions.lua - install -m 0644 ${WORKDIR}/policy.lua.d/*.lua ${config_dir}/policy.lua.d/ - install -m 0644 ${WORKDIR}/policy.conf ${config_dir} - # config of the bluetooth instance install -d ${config_dir}/bluetooth.lua.d/ ln -s ../00-functions.lua ${config_dir}/bluetooth.lua.d/00-functions.lua @@ -57,7 +49,6 @@ do_install:append() { # enable additional systemd services install -d ${systemd_dir} - ln -s ${systemd_system_unitdir}/wireplumber@.service ${systemd_dir}/wireplumber@policy.service ln -s ${systemd_system_unitdir}/wireplumber@.service ${systemd_dir}/wireplumber@bluetooth.service } @@ -68,4 +59,3 @@ FILES:${PN} += "\ CONFFILES:${PN} += "\ ${sysconfdir}/* \ " -RPROVIDES:${PN} += "virtual/wireplumber-config" diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/00-functions.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/00-functions.lua new file mode 100644 index 000000000..7e1794df0 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/00-functions.lua @@ -0,0 +1,27 @@ +components = {} + +function load_module(m) + if not components[m] then + components[m] = { "libwireplumber-module-" .. m, type = "module" } + end +end + +function load_pw_module(m) + if not components[m] then + components[m] = { "libpipewire-module-" .. m, type = "pw_module" } + end +end + +function load_script(s, a) + if not components[s] then + components[s] = { s, type = "script/lua", args = a } + end +end + +function load_monitor(s, a) + load_script("monitors/" .. s .. ".lua", a) +end + +function load_access(s, a) + load_script("access/access-" .. s .. ".lua", a) +end diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/policy.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/policy.conf index 42f714849..42f714849 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/policy.conf +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/policy.conf diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/policy.lua.d/10-default-policy.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/policy.lua.d/10-default-policy.lua index e6170dd1c..e6170dd1c 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/policy.lua.d/10-default-policy.lua +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/policy.lua.d/10-default-policy.lua diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bb new file mode 100644 index 000000000..1a031160e --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bb @@ -0,0 +1,41 @@ +SUMMARY = "AGL configuration file for wireplumber policy" +HOMEPAGE = "https://gitlab.freedesktop.org/gkiagia/wireplumber" +BUGTRACKER = "https://jira.automotivelinux.org" +AUTHOR = "Ashok Sidipotu <ashok.sidipotu@collabora.com>" +SECTION = "multimedia" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" +SRC_URI = "\ + file://policy.lua.d \ + file://00-functions.lua \ + file://policy.conf \ +" +PACKAGE_ARCH = "${MACHINE_ARCH}" + +do_configure[noexec] = "1" +do_compile[noexec] = "1" +do_install:append() { + config_dir="${D}${sysconfdir}/wireplumber/" + systemd_dir="${D}${sysconfdir}/systemd/system/pipewire.service.wants" + + install -d ${config_dir} + install -m 0644 ${WORKDIR}/00-functions.lua ${config_dir} + + # config of the policy instance + install -d ${config_dir}/policy.lua.d/ + ln -s ../00-functions.lua ${config_dir}/policy.lua.d/00-functions.lua + install -m 0644 ${WORKDIR}/policy.lua.d/*.lua ${config_dir}/policy.lua.d/ + install -m 0644 ${WORKDIR}/policy.conf ${config_dir} + + # enable additional systemd services + install -d ${systemd_dir} + ln -s ${systemd_system_unitdir}/wireplumber@.service ${systemd_dir}/wireplumber@policy.service +} + +FILES:${PN} += "\ + ${sysconfdir}/* \ + ${datadir}/wireplumber/* \ +" +CONFFILES:${PN} += "\ + ${sysconfdir}/* \ +" diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0004-policy-endpoint-device-Fix-endpoints-not-connected-w.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0004-policy-endpoint-device-Fix-endpoints-not-connected-w.patch new file mode 100644 index 000000000..be1e0a527 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0004-policy-endpoint-device-Fix-endpoints-not-connected-w.patch @@ -0,0 +1,34 @@ +From 61dcf8b203f26a7c25ffaccdfdd94c233c0440e9 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Wed, 2 Mar 2022 06:55:37 +0530 +Subject: [PATCH] policy-endpoint-device: Fix endpoints not connected with + devices + +-if device linkables are created ahead of the endpoints, + endpoints are not connected with the devices. + +-rescan the endpoints on an endpoint creation. +--- + src/scripts/policy-endpoint-device.lua | 4 ++++ + 1 file changed, 4 insertions(+) + + Upstream-Status: Submitted [https://gitlab.freedesktop.org/pipewire/wireplumber/-/merge_requests/337] + +diff --git a/src/scripts/policy-endpoint-device.lua b/src/scripts/policy-endpoint-device.lua +index c9c6ceb..0ba39b0 100644 +--- a/src/scripts/policy-endpoint-device.lua ++++ b/src/scripts/policy-endpoint-device.lua +@@ -221,6 +221,10 @@ linkables_om:connect("objects-changed", function (om) + scheduleRescan () + end) + ++endpoints_om:connect("object-added", function (om) ++ scheduleRescan () ++end) ++ + linkables_om:connect("object-removed", function (om, si) + unhandleLinkable (si) + end) +-- +2.35.1 + diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb index f42b12770..9504a5671 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb @@ -22,6 +22,7 @@ SRC_URI += "\ file://0001-Revert-tests-add-pipewire-env-variables-when-running.patch \ file://0002-Revert-wp-uninstalled-build-this-script-with-the-mes.patch \ file://0003-spa-json-fix-va_list-APIs-for-different-architecture.patch \ + file://0004-policy-endpoint-device-Fix-endpoints-not-connected-w.patch \ " PV = "0.4.8" @@ -65,7 +66,6 @@ FILES:${PN} = "\ ${systemd_system_unitdir}/* \ " RPROVIDES:${PN} += "virtual/pipewire-sessionmanager" -RDEPENDS:${PN} += "virtual/wireplumber-config" FILES:lib${PN}-${WPAPI} = "\ ${libdir}/libwireplumber-${WPAPI}.so.* \ @@ -79,7 +79,11 @@ FILES:${PN}-config += "\ ${datadir}/wireplumber/bluetooth.lua.d/* \ ${datadir}/wireplumber/policy.lua.d/* \ " -CONFFILES:${PN}-config += "\ - ${sysconfdir}/wireplumber/* \ -" -RPROVIDES:${PN}-config += "virtual/wireplumber-config" +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 +} |