summaryrefslogtreecommitdiffstats
path: root/meta-pipewire
diff options
context:
space:
mode:
Diffstat (limited to 'meta-pipewire')
-rw-r--r--meta-pipewire/README17
-rw-r--r--meta-pipewire/conf/include/agl-pipewire.inc1
-rw-r--r--meta-pipewire/conf/layer.conf2
-rw-r--r--meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/0002-meson-remove-pipewire_module_c_args-as-it-is-no-long.patch26
-rw-r--r--meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire-base.bb17
-rw-r--r--meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb7
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch80
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-systemd-Do-not-override-rootprefix.patch35
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bb (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bb)19
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bbappend (renamed from meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend)10
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf2
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua4
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua2
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua4
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf41
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb10
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/00-functions.lua27
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/policy.conf (renamed from meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/policy.conf)0
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl/policy.lua.d/10-default-policy.lua (renamed from meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/policy.lua.d/10-default-policy.lua)18
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber-policy-config-agl_git.bb41
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch63
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch136
-rw-r--r--meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb30
-rwxr-xr-xmeta-pipewire/scripts/run-yocto-check-layer.sh15
24 files changed, 253 insertions, 354 deletions
diff --git a/meta-pipewire/README b/meta-pipewire/README
index 410262e3a..3df3a289c 100644
--- a/meta-pipewire/README
+++ b/meta-pipewire/README
@@ -1,3 +1,16 @@
-This is meta-pipewire.
+meta-pipewire
+=============
-This layer holds the sound manager 'pipewire' and 'wireplumber'.
+This layer holds the sound manager 'pipewire' and session manager 'wireplumber'.
+
+Maintenance
+-----------
+
+All patches must be submitted via the AGL Gerrit instance at
+https://gerrit.automotivelinux.org. See this wiki page for
+details:
+
+https://wiki.automotivelinux.org/agl-distro/contributing
+
+Layer maintainers:
+ Jan-Simon Möller <jsmoeller@linuxfoundation.org>
diff --git a/meta-pipewire/conf/include/agl-pipewire.inc b/meta-pipewire/conf/include/agl-pipewire.inc
index 0c585adb0..03b419c2a 100644
--- a/meta-pipewire/conf/include/agl-pipewire.inc
+++ b/meta-pipewire/conf/include/agl-pipewire.inc
@@ -1,2 +1 @@
DISTRO_FEATURES:append = " pipewire"
-PREFERRED_RPROVIDER_virtual/wireplumber-config = "wireplumber-config-agl"
diff --git a/meta-pipewire/conf/layer.conf b/meta-pipewire/conf/layer.conf
index aec34d7e4..4a28a4244 100644
--- a/meta-pipewire/conf/layer.conf
+++ b/meta-pipewire/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "meta-pipewire"
BBFILE_PATTERN_meta-pipewire = "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-pipewire = "71"
-LAYERSERIES_COMPAT_meta-pipewire = "dunfell"
+LAYERSERIES_COMPAT_meta-pipewire = "scarthgap"
LAYERDEPENDS_meta-pipewire = "openembedded-layer"
#
diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/0002-meson-remove-pipewire_module_c_args-as-it-is-no-long.patch b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/0002-meson-remove-pipewire_module_c_args-as-it-is-no-long.patch
deleted file mode 100644
index 74e5ba33b..000000000
--- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire/0002-meson-remove-pipewire_module_c_args-as-it-is-no-long.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 3b2935ed044e657b515a07e78638b902baa8157a Mon Sep 17 00:00:00 2001
-From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
-Date: Wed, 1 Dec 2021 12:17:52 +0530
-Subject: [PATCH] meson: remove pipewire_module_c_args as it is no longer used.
-
-Upstream-Status: Inappropriate [smack specific]
-
----
- src/modules/meson.build | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/modules/meson.build b/src/modules/meson.build
-index d1d90bf05..c9f629c08 100644
---- a/src/modules/meson.build
-+++ b/src/modules/meson.build
-@@ -114,7 +114,6 @@ pipewire_module_echo_cancel = shared_library('pipewire-module-echo-cancel',
-
- pipewire_module_access_seclabel = shared_library('pipewire-module-access-seclabel',
- [ 'module-access-seclabel.c' ],
-- c_args : pipewire_module_c_args,
- include_directories : [configinc, spa_inc],
- install : true,
- install_dir : modules_install_dir,
---
-2.33.1
-
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..6237dcf80
--- /dev/null
+++ b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire-base.bb
@@ -0,0 +1,17 @@
+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 \
+ pipewire-alsa-card-profile \
+"
diff --git a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
index b56723b2b..e7ad14258 100644
--- a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
+++ b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb
@@ -6,6 +6,7 @@ inherit packagegroup
PACKAGES = "\
packagegroup-pipewire \
+ packagegroup-pipewire-tools \
"
RDEPENDS:${PN} += "\
@@ -15,5 +16,9 @@ RDEPENDS:${PN} += "\
pipewire-alsa \
gstreamer1.0-pipewire \
wireplumber \
- ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'pipewire-tools pipewire-spa-tools', '', d)} \
"
+
+RDEPENDS:${PN}-tools += "\
+ pipewire-tools \
+ pipewire-spa-tools \
+" \ No newline at end of file
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch
deleted file mode 100644
index 4488acc65..000000000
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 70e750804a700b06f62f91411d487b88e7c85fe5 Mon Sep 17 00:00:00 2001
-From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
-Date: Fri, 26 Nov 2021 06:18:04 +0530
-Subject: [PATCH] Revert "meson: declare spa_dep and override_dependency() for
- spa and pipewire"
-
-This reverts commit 7ab5c35cadc075bcdf44031f1f7d95352cf9a13b.
-
-Upstream-Status: Inappropriate[meson version dependent]
-
----
- meson.build | 2 +-
- spa/meson.build | 7 -------
- src/pipewire/meson.build | 10 ++--------
- 3 files changed, 3 insertions(+), 16 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 4a572bd42..4af179c87 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1,7 +1,7 @@
- project('pipewire', ['c' ],
- version : '0.3.40',
- license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
-- meson_version : '>= 0.54.0',
-+ meson_version : '>= 0.49.0',
- default_options : [ 'warning_level=3',
- 'c_std=gnu99',
- 'b_pie=true',
-diff --git a/spa/meson.build b/spa/meson.build
-index 483536b54..74ee5a737 100644
---- a/spa/meson.build
-+++ b/spa/meson.build
-@@ -63,12 +63,6 @@ if not get_option('examples').disabled()
- subdir('examples')
- endif
-
--spa_dep = declare_dependency(
-- include_directories : [spa_inc],
-- version : spaversion,
-- variables : { 'plugindir' : meson.current_build_dir() / 'plugins' }
--)
--
- pkgconfig.generate(filebase : 'lib@0@'.format(spa_name),
- name : 'libspa',
- subdirs : spa_name,
-@@ -79,4 +73,3 @@ pkgconfig.generate(filebase : 'lib@0@'.format(spa_name),
- uninstalled_variables : ['plugindir=${prefix}/spa/plugins'],
- )
-
--meson.override_dependency('lib@0@'.format(spa_name), spa_dep)
-diff --git a/src/pipewire/meson.build b/src/pipewire/meson.build
-index f66ce8746..5cfaba3f9 100644
---- a/src/pipewire/meson.build
-+++ b/src/pipewire/meson.build
-@@ -109,12 +109,8 @@ libpipewire = shared_library(pipewire_name, pipewire_sources,
- )
-
- pipewire_dep = declare_dependency(link_with : libpipewire,
-- include_directories : [pipewire_inc, configinc],
-- dependencies : [pthread_lib, atomic_dep, spa_dep],
-- variables : {
-- 'moduledir' : meson.current_build_dir() / '..' / 'modules',
-- 'confdatadir' : meson.current_build_dir() / '..' / 'daemon',
-- }
-+ include_directories : [pipewire_inc, configinc, spa_inc],
-+ dependencies : [pthread_lib, atomic_dep, ],
- )
-
- pkgconfig.generate(libpipewire,
-@@ -132,6 +128,4 @@ pkgconfig.generate(libpipewire,
- ],
- )
-
--meson.override_dependency('lib@0@'.format(pipewire_name), pipewire_dep)
--
- subdir('extensions')
---
-2.33.1
-
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-systemd-Do-not-override-rootprefix.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-systemd-Do-not-override-rootprefix.patch
new file mode 100644
index 000000000..45d09e6b0
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-systemd-Do-not-override-rootprefix.patch
@@ -0,0 +1,35 @@
+From 2501972518a67b1710998452d164cd077a4370f1 Mon Sep 17 00:00:00 2001
+From: Scott Murray <scott.murray@konsulko.com>
+Date: Thu, 17 Mar 2022 10:44:00 -0400
+Subject: [PATCH] systemd: Do not override rootprefix
+
+Do not override rootprefix with the value of prefix when querying
+systemdsystemunitdir from the systemd pkgconfig, as doing so forces
+the assumption that the system is running with usrmerge, which may
+not be the case. Instead, rely on the systemd.pc correctly
+representing the desired install locations.
+
+Reworked version of change in:
+
+https://git.automotivelinux.org/AGL/meta-agl/tree/meta-pipewire/recipes-multimedia/pipewire/pipewire/0012-Miscellanous-changes-to-account-for-lower-version-of.patch
+
+Upstream-Status: Pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ src/daemon/systemd/system/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/daemon/systemd/system/meson.build b/src/daemon/systemd/system/meson.build
+index 84ca0b068..6956f2be3 100644
+--- a/src/daemon/systemd/system/meson.build
++++ b/src/daemon/systemd/system/meson.build
+@@ -1,4 +1,4 @@
+-systemd_system_services_dir = systemd.get_variable('systemdsystemunitdir', pkgconfig_define : [ 'rootprefix', prefix])
++systemd_system_services_dir = systemd.get_variable('systemdsystemunitdir')
+ if get_option('systemd-system-unit-dir') != ''
+ systemd_system_services_dir = get_option('systemd-system-unit-dir')
+ endif
+--
+2.35.1
+
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bb b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bb
index edab8db4c..6fa851caa 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bb
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bb
@@ -20,8 +20,8 @@ SECTION = "multimedia"
DEPENDS = "dbus"
-# v0.3.40
-SRCREV = "7afd80052b7c49754a13c9ab49c368f95b60e0a7"
+# v1.0.0(El Presidente)
+SRCREV = "4debdcd40b055b3eaa83a8f4443aa990ea566bfe"
SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -84,7 +84,7 @@ PACKAGECONFIG ??= "\
# is why these two are marked in their respective packageconfigs
# as being in conflict.
-PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev"
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa-card-profile"
PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native"
PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
@@ -230,9 +230,20 @@ SYSTEMD_SERVICE:${PN} = "pipewire.service"
CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
FILES:${PN} = " \
${datadir}/pipewire/pipewire.conf \
+ ${datadir}/pipewire/filter-chain.conf \
${datadir}/pipewire/filter-chain \
${systemd_user_unitdir}/pipewire.* \
+ ${systemd_system_unitdir}/pipewire* \
${bindir}/pipewire \
+ ${datadir}/pipewire/pipewire-avb.conf \
+ ${bindir}/pipewire-avb \
+ ${datadir}/pipewire/pipewire-aes67.conf \
+ ${bindir}/pipewire-aes67 \
+ ${datadir}/pipewire/pipewire.conf.avail \
+ ${datadir}/pipewire/pipewire-pulse.conf.avail \
+ ${datadir}/pipewire/client-rt.conf.avail \
+ ${datadir}/pipewire/client.conf.avail \
+ ${sysconfdir}/security/limits.d \
"
FILES:${PN}-dev += " \
@@ -242,6 +253,8 @@ FILES:${PN}-dev += " \
CONFFILES:libpipewire += "${datadir}/pipewire/client.conf"
FILES:libpipewire = " \
${datadir}/pipewire/client.conf \
+ ${datadir}/pipewire/client-rt.conf \
+ ${datadir}/pipewire/minimal.conf \
${libdir}/libpipewire-*.so.* \
"
# Add the bare minimum modules and plugins required to be able
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bbappend
index dfe73083b..beb7c0817 100644
--- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_1.0.0.bbappend
@@ -1,3 +1,7 @@
+SRC_URI += "\
+ file://0001-systemd-Do-not-override-rootprefix.patch \
+"
+
PACKAGECONFIG = "\
${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa pipewire-alsa', '', d)} \
@@ -6,15 +10,11 @@ PACKAGECONFIG = "\
gstreamer v4l2 \
"
-SRC_URI += "\
- file://0001-Revert-meson-declare-spa_dep-and-override_dependency.patch \
-"
-
do_install:append() {
# install symlinks to alsalib configuration files
for i in 50-pipewire.conf 99-pipewire-default.conf; do
if [ -f ${D}${datadir}/alsa/alsa.conf.d/${i} ]; then
- mkdir -p ${D}${sysconfdir}/alsa/conf.d
+ install -d ${D}${sysconfdir}/alsa/conf.d
ln -s ${datadir}/alsa/alsa.conf.d/${i} ${D}${sysconfdir}/alsa/conf.d/${i}
fi
done
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf
index ebd0b6004..9077e3f45 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/bluetooth.conf
@@ -6,7 +6,7 @@ context.properties = {
application.name = "WirePlumber Bluetooth"
log.level = 2
wireplumber.script-engine = lua-scripting
- wireplumber.export-core = false
+ wireplumber.export-core = true
#mem.mlock-all = false
#support.dbus = true
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua
index 75a169675..d07f7ab85 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/30-alsa-monitor.lua
@@ -8,7 +8,7 @@ alsa_monitor.properties = {
}
alsa_monitor.rules = {
- -- disable ACP (PulseAudio-like profiles)
+ -- enable ACP (PulseAudio-like profiles)
{
matches = {
{
@@ -16,7 +16,7 @@ alsa_monitor.rules = {
},
},
apply_properties = {
- ["api.alsa.use-acp"] = false,
+ ["api.alsa.use-acp"] = true,
},
},
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua
index 365bab59a..e0d332422 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/40-device-defaults.lua
@@ -14,7 +14,7 @@ function device_defaults.enable()
-- Selects appropriate default routes ("ports" in pulseaudio terminology)
-- and enables saving and restoring them together with
-- their properties (per-route/port volume levels, channel maps, etc)
- load_script("default-routes.lua", device_defaults.properties)
+ load_script("policy-device-routes.lua", device_defaults.properties)
if device_defaults.properties["use-persistent-storage"] then
-- Enables functionality to save and restore default device profiles
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua
index f6d73a3f1..ecb7da476 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/host.lua.d/90-enable-all.lua
@@ -4,7 +4,7 @@ load_module("metadata")
-- Load devices
alsa_monitor.enable()
---v4l2_monitor.enable()
+v4l2_monitor.enable()
-- Track/store/restore user choices about devices
device_defaults.enable()
@@ -13,7 +13,7 @@ device_defaults.enable()
load_script("suspend-node.lua")
-- Automatically sets device profiles to 'On'
-load_module("device-activation")
+load_script("policy-device-profile.lua")
-- Mute ALSA sinks when requested by pipewire-ic-ipc
load_module("mixer-api")
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf
index 680a791f3..46ad11302 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/wireplumber.conf
@@ -57,6 +57,47 @@ context.modules = [
# Provides factories to make session manager objects.
{ name = libpipewire-module-session-manager }
+
+ { name = libpipewire-module-filter-chain
+ args = {
+ node.description = "Equalizer Sink"
+ media.name = "Equalizer Sink"
+ filter.graph = {
+ nodes = [
+ {
+ type = builtin
+ name = bass
+ label = bq_lowshelf
+ # the cut off freq of the bass filter can be adjusted here.
+ control = { "Freq" = 250.0 "Q" = 1.0 "Gain" = 0.0 }
+ }
+ {
+ type = builtin
+ name = treble
+ label = bq_peaking
+ # the cut off freq of the treble filter can be adjusted here.
+ control = { "Freq" = 6000.0 "Q" = 1.0 "Gain" = 0.0 }
+ }
+ ]
+ links = [
+ { output = "bass:Out" input = "treble:In" }
+ ]
+ }
+ audio.channels = 2
+ audio.position = [ FL FR ]
+ capture.props = {
+ node.name = "eq-sink"
+ media.class = Audio/Sink
+ # select the endpoint to which the node is attached
+ target.endpoint = "endpoint.multimedia"
+ node.passive = true
+ }
+ playback.props = {
+ node.name = "eq-output-stream"
+ node.passive = true
+ }
+ }
+ }
]
wireplumber.components = [
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 82f5bb055..6814fce4d 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
@@ -4,7 +4,10 @@ policy_config = {}
policy_config.endpoints = {
-- [endpoint name] = { endpoint properties }
-
+ ["endpoint.capture"] = {
+ ["media.class"] = "Audio/Source",
+ ["role"] = "Capture",
+ },
["endpoint.multimedia"] = {
["media.class"] = "Audio/Sink",
["role"] = "Multimedia",
@@ -53,10 +56,17 @@ policy_config.policy = {
["duck.level"] = 0.2,
["roles"] = {
+ ["Capture"] = {
+ ["alias"] = { "Multimedia", "Music", "Voice", "Capture" },
+ ["priority"] = 25,
+ ["action.default"] = "cork",
+ ["action.Capture"] = "mix",
+ ["media.class"] = "Audio/Source",
+ },
["Multimedia"] = {
["alias"] = { "Movie", "Music", "Game" },
["priority"] = 25,
- ["action.default"] = "cork",
+ ["action.default"] = "mix",
},
["Speech-Low"] = {
["priority"] = 30,
@@ -113,8 +123,8 @@ load_module("mixer-api")
-- Create endpoints statically at startup
load_script("static-endpoints.lua", policy_config.endpoints)
- -- Create session items for nodes that appear in the graph
- load_script("create-item.lua", default_policy.policy)
+-- Create session items for nodes that appear in the graph
+load_script("create-item.lua", policy_config.policy)
-- Link nodes to each other to make media flow in the graph
load_script("policy-node.lua", policy_config.policy)
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/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch
deleted file mode 100644
index 37b43571d..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 1d39b68d88e967739d6beb3c9be7f4644b5d4077 Mon Sep 17 00:00:00 2001
-From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
-Date: Thu, 2 Dec 2021 16:23:09 +0530
-Subject: [PATCH] Revert "wp-uninstalled: build this script with the meson dirs
- filled in"
-
-This reverts commit 52aaf96179584292f493c4b329bc2c409e6d3dee.
----
- meson.build | 18 ------------------
- wp-uninstalled.sh | 11 ++---------
- 2 files changed, 2 insertions(+), 27 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 1affbc1..f2ca16c 100644
---- a/meson.build
-+++ b/meson.build
-@@ -120,21 +120,3 @@ subdir('src')
- if get_option('tests')
- subdir('tests')
- endif
--
--conf_uninstalled = configuration_data()
--conf_uninstalled.set('MESON', '')
--conf_uninstalled.set('MESON_SOURCE_ROOT', meson.project_source_root())
--conf_uninstalled.set('MESON_BUILD_ROOT', meson.project_build_root())
--
--wp_uninstalled = configure_file(
-- input : 'wp-uninstalled.sh',
-- output : 'wp-uninstalled.sh.in',
-- configuration : conf_uninstalled,
--)
--
--wireplumber_uninstalled = custom_target('wp-uninstalled',
-- output : 'wp-uninstalled.sh',
-- input : wp_uninstalled,
-- build_by_default : true,
-- command : ['cp', '@INPUT@', '@OUTPUT@'],
--)
-diff --git a/wp-uninstalled.sh b/wp-uninstalled.sh
-index 79e53f2..d6279ff 100755
---- a/wp-uninstalled.sh
-+++ b/wp-uninstalled.sh
-@@ -2,15 +2,8 @@
-
- set -e
-
--# This is unset by meson
--# shellcheck disable=SC2157
--if [ -z "@MESON@" ]; then
-- SOURCEDIR="@MESON_SOURCE_ROOT@"
-- BUILDDIR="@MESON_BUILD_ROOT@"
--else
-- SOURCEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-- BUILDDIR=$(find "${SOURCEDIR}" -maxdepth 2 -name build.ninja -printf "%h\n" -quit 2>/dev/null || echo "${SOURCEDIR}/build")
--fi
-+SOURCEDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-+BUILDDIR=${SOURCEDIR}/build
- CONFIGDIR=config
-
- while getopts ":b:c:" opt; do
---
-2.33.1
-
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch
deleted file mode 100644
index 07ddb746b..000000000
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 4ea8ddc256df636208479a5b64bf8bdc6e413aca Mon Sep 17 00:00:00 2001
-From: Ashok Sidipotu <ashok.sidipotu@collabora.com>
-Date: Thu, 2 Dec 2021 16:57:54 +0530
-Subject: [PATCH] Revert "tests: add pipewire env variables when running tests,
- tidy up common_env"
-
-This reverts commit c24db9f3539f9b7ebe9e74c991cc3037f28ea22c.
----
- tests/meson.build | 31 -------------------------------
- tests/modules/meson.build | 9 ++++++---
- tests/wp/meson.build | 10 +++++++---
- tests/wplua/meson.build | 15 +++++++++++----
- 4 files changed, 24 insertions(+), 41 deletions(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 0e06568..9238d5b 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -28,37 +28,6 @@ if valgrind.found()
- timeout_multiplier: 2)
- endif
-
--# The common test environment
--common_test_env = environment({
-- 'HOME': '/invalid',
-- 'XDG_RUNTIME_DIR': '/invalid',
-- 'PIPEWIRE_RUNTIME_DIR': '/tmp',
-- 'XDG_CONFIG_HOME': meson.current_build_dir() / '.config',
-- 'XDG_STATE_HOME': meson.current_build_dir() / '.local' / 'state',
-- 'FILE_MONITOR_DIR': meson.current_build_dir() / '.local' / 'file_monitor',
-- 'WIREPLUMBER_CONFIG_DIR': '/invalid',
-- 'WIREPLUMBER_DATA_DIR': '/invalid',
-- 'WIREPLUMBER_MODULE_DIR': meson.current_build_dir() / '..' / 'modules',
-- 'WIREPLUMBER_DEBUG': '7',
--})
--
--spa_plugindir = spa_dep.get_variable(
-- pkgconfig: 'plugindir', internal: 'plugindir', default_value: '')
--pipewire_moduledir = pipewire_dep.get_variable(
-- pkgconfig: 'moduledir', internal: 'moduledir', default_value: '')
--pipewire_confdatadir = pipewire_dep.get_variable(
-- pkgconfig: 'confdatadir', internal: 'confdatadir', default_value: '')
--
--if spa_plugindir != ''
-- common_test_env.set('SPA_PLUGIN_DIR', spa_plugindir)
--endif
--if pipewire_moduledir != ''
-- common_test_env.set('PIPEWIRE_MODULE_DIR', pipewire_moduledir)
--endif
--if pipewire_confdatadir != ''
-- common_test_env.set('PIPEWIRE_CONFIG_DIR', pipewire_confdatadir)
--endif
--
- subdir('wp')
- subdir('wplua')
- subdir('modules')
-diff --git a/tests/modules/meson.build b/tests/modules/meson.build
-index ffab80b..2fc46dc 100644
---- a/tests/modules/meson.build
-+++ b/tests/modules/meson.build
-@@ -1,7 +1,10 @@
- common_deps = [gobject_dep, gio_dep, wp_dep, pipewire_dep]
--common_env = common_test_env
--common_env.set('G_TEST_SRCDIR', meson.current_source_dir())
--common_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-+common_env = environment({
-+ 'G_TEST_SRCDIR': meson.current_source_dir(),
-+ 'G_TEST_BUILDDIR': meson.current_build_dir(),
-+ 'WIREPLUMBER_MODULE_DIR': meson.current_build_dir() / '..' / '..' / 'modules',
-+ 'WIREPLUMBER_DEBUG': '7',
-+})
- common_args = [
- '-DG_LOG_USE_STRUCTURED',
- ]
-diff --git a/tests/wp/meson.build b/tests/wp/meson.build
-index adc9cef..e75640c 100644
---- a/tests/wp/meson.build
-+++ b/tests/wp/meson.build
-@@ -1,7 +1,11 @@
- common_deps = [gobject_dep, gio_dep, wp_dep, pipewire_dep]
--common_env = common_test_env
--common_env.set('G_TEST_SRCDIR', meson.current_source_dir())
--common_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
-+common_env = environment({
-+ 'G_TEST_SRCDIR': meson.current_source_dir(),
-+ 'G_TEST_BUILDDIR': meson.current_build_dir(),
-+ 'XDG_CONFIG_HOME': meson.current_build_dir() / '.config',
-+ 'WIREPLUMBER_MODULE_DIR': meson.current_build_dir() / '..' / '..' / 'modules',
-+ 'WIREPLUMBER_DEBUG': '7',
-+})
- common_args = [
- '-DG_LOG_USE_STRUCTURED',
- ]
-diff --git a/tests/wplua/meson.build b/tests/wplua/meson.build
-index 128cc30..cd45c1c 100644
---- a/tests/wplua/meson.build
-+++ b/tests/wplua/meson.build
-@@ -1,13 +1,18 @@
- common_deps = [wplua_dep, pipewire_dep, wp_dep]
--common_env = common_test_env
--common_env.set('G_TEST_SRCDIR', meson.current_source_dir())
--common_env.set('G_TEST_BUILDDIR', meson.current_build_dir())
--common_env.set('WIREPLUMBER_DATA_DIR', meson.current_source_dir())
-+common_env = environment({
-+ 'G_TEST_SRCDIR': meson.current_source_dir(),
-+ 'G_TEST_BUILDDIR': meson.current_build_dir(),
-+ 'WIREPLUMBER_CONFIG_DIR': '/invalid',
-+ 'WIREPLUMBER_DATA_DIR': meson.current_source_dir(),
-+ 'WIREPLUMBER_MODULE_DIR': meson.current_build_dir() / '..' / '..' / 'modules',
-+ 'WIREPLUMBER_DEBUG': '7',
-+})
-
- test(
- 'test-wplua',
- executable('test-wplua', 'wplua.c', dependencies: common_deps),
- env: common_env,
-+ workdir : meson.current_source_dir(),
- )
-
- script_tester = executable('script-tester',
-@@ -20,10 +25,12 @@ test(
- script_tester,
- args: ['pod.lua'],
- env: common_env,
-+ workdir : meson.current_source_dir(),
- )
- test(
- 'test-lua-monitor-rules',
- script_tester,
- args: ['monitor-rules.lua'],
- env: common_env,
-+ workdir : meson.current_source_dir(),
- )
---
-2.33.1
-
diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
index 7df199e01..a04f115c3 100644
--- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
+++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb
@@ -14,16 +14,14 @@ DEPENDS = "glib-2.0 glib-2.0-native pipewire lua"
SRC_URI = "\
git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \
"
-# v0.4.5
-SRCREV = "3946457a7942a179c0f61c60de8cb8fc643391dd"
+# v0.4.17
+SRCREV = "d3eb77b292655cef333a8f4cab4e861415bc37c2"
# patches to be able to compile with lower version of meson that is available in AGL.
SRC_URI += "\
- file://0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch \
- file://0002-Revert-tests-add-pipewire-env-variables-when-running.patch \
"
-PV = "0.4.5"
+PV = "0.4.17"
S = "${WORKDIR}/git"
WPAPI="0.4"
@@ -60,11 +58,10 @@ FILES:${PN} = "\
${bindir}/wpctl \
${bindir}/wpexec \
${libdir}/wireplumber-${WPAPI}/* \
- ${datadir}/wireplumber/* \
+ ${datadir}/wireplumber/scripts/* \
+ ${datadir}/zsh/* \
${systemd_system_unitdir}/* \
"
-RPROVIDES:${PN} += "virtual/pipewire-sessionmanager"
-RDEPENDS:${PN} += "virtual/wireplumber-config"
FILES:lib${PN}-${WPAPI} = "\
${libdir}/libwireplumber-${WPAPI}.so.* \
@@ -72,8 +69,17 @@ FILES:lib${PN}-${WPAPI} = "\
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/* \
"
-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
+}
diff --git a/meta-pipewire/scripts/run-yocto-check-layer.sh b/meta-pipewire/scripts/run-yocto-check-layer.sh
index 508d8f749..0e911a145 100755
--- a/meta-pipewire/scripts/run-yocto-check-layer.sh
+++ b/meta-pipewire/scripts/run-yocto-check-layer.sh
@@ -19,17 +19,24 @@ AGL_FEATURES ?= ""
AGL_EXTRA_IMAGE_FSTYPES ?= ""
# important settings imported from poky-agl.conf
-# we do not import
-DISTRO_FEATURES:append = " systemd"
+# we cannot import the distro config right away
+# as the initial values are poky only till the layer
+# is added in
+
+AGL_DEFAULT_DISTRO_FEATURES = "usrmerge largefile opengl wayland pam bluetooth bluez5 3g polkit"
+DISTRO_FEATURES:append = " systemd wayland pam \${AGL_DEFAULT_DISTRO_FEATURES}"
DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"
VIRTUAL-RUNTIME_init_manager = "systemd"
EOF
-
-yocto-check-layer \
+yocto-check-layer --no-auto-dependency \
+ --dependency \
+ $AGLROOT/external/meta-openembedded/meta-oe \
-- \
$AGLROOT/meta-agl/meta-pipewire
[ $? = 0 ] && rm -rf ${TMPROOT}/testbuild-ycl
+
+exit 0