diff options
Diffstat (limited to 'meta-pipewire')
26 files changed, 1932 insertions, 313 deletions
diff --git a/meta-pipewire/conf/include/agl-pipewire.inc b/meta-pipewire/conf/include/agl-pipewire.inc index 7234633ff..0c585adb0 100644 --- a/meta-pipewire/conf/include/agl-pipewire.inc +++ b/meta-pipewire/conf/include/agl-pipewire.inc @@ -1,2 +1,2 @@ -DISTRO_FEATURES_append = " pipewire" +DISTRO_FEATURES:append = " pipewire" PREFERRED_RPROVIDER_virtual/wireplumber-config = "wireplumber-config-agl" diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb index 2a8261195..f7235c177 100644 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-apis/agl-service-audiomixer/agl-service-audiomixer_git.bb @@ -14,4 +14,4 @@ S = "${WORKDIR}/git" inherit cmake aglwgt pkgconfig DEPENDS += "pipewire wireplumber json-c" -RDEPENDS_${PN} = "agl-service-signal-composer" +RDEPENDS:${PN} = "agl-service-signal-composer" diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend index 92ebf837f..691236d41 100644 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-core/packagegroups/packagegroup-pipewire.bbappend @@ -1,3 +1,3 @@ -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ agl-service-audiomixer \ " 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 new file mode 100644 index 000000000..74e5ba33b --- /dev/null +++ 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 @@ -0,0 +1,26 @@ +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/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.30.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend index c895efc8b..b6086ea1c 100644 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.30.bbappend +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend @@ -1,14 +1,15 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/pipewire:" +FILESEXTRAPATHS:prepend := "${THISDIR}/pipewire:" -SRC_URI_append= "\ +SRC_URI:append= "\ file://0001-modules-add-new-access-seclabel-module.patch \ + file://0002-meson-remove-pipewire_module_c_args-as-it-is-no-long.patch \ file://pipewire.conf \ file://pipewire.service \ file://pipewire.socket \ file://smack-pipewire \ " -do_install_append() { +do_install:append() { # replace the original config with our smack-aware config mkdir -p ${D}${sysconfdir}/pipewire/ install -m 0644 ${WORKDIR}/pipewire.conf ${D}${sysconfdir}/pipewire/pipewire.conf @@ -28,7 +29,7 @@ do_install_append() { fi } -FILES_${PN}_append = "\ +FILES:${PN}:append = "\ ${sysconfdir}/smack/accesses.d/* \ ${sysconfdir}/pipewire/pipewire.conf \ " diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bbappend index e94f67eff..106de4f6a 100644 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bbappend +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bbappend @@ -1,11 +1,11 @@ -FILESEXTRAPATHS_prepend := "${THISDIR}/wireplumber-config-agl:" +FILESEXTRAPATHS:prepend := "${THISDIR}/wireplumber-config-agl:" SRC_URI += "\ file://50-access-agl.lua \ file://access-smack.lua \ " -do_install_append() { +do_install:append() { # install smack-specific config config_dir="${D}${sysconfdir}/wireplumber/config.lua.d/" access_dir="${D}${sysconfdir}/wireplumber/scripts/access/" diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend index ccb6c4137..9dbf47afc 100644 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/cynagora/cynagora_%.bbappend @@ -1,4 +1,4 @@ -do_install_append() { +do_install:append() { echo "System::Pipewire * * http://tizen.org/privilege/internal/dbus yes forever" >> ${D}${sysconfdir}/security/cynagora.initial } diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend index 47c9b9149..6ab9d07ef 100644 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-security/security-manager/security-manager_%.bbappend @@ -1,3 +1,3 @@ -do_install_append() { +do_install:append() { echo "~APP~ System::Pipewire rw" >> ${D}${datadir}/security-manager/policy/app-rules-template.smack } diff --git a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb index f883dfa2c..b56723b2b 100644 --- a/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb +++ b/meta-pipewire/recipes-core/packagegroups/packagegroup-pipewire.bb @@ -8,7 +8,7 @@ PACKAGES = "\ packagegroup-pipewire \ " -RDEPENDS_${PN} += "\ +RDEPENDS:${PN} += "\ pipewire \ pipewire-modules-meta \ pipewire-spa-plugins-meta \ diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-treewide-meson.build-use-project_-build-sourc.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-treewide-meson.build-use-project_-build-sourc.patch new file mode 100644 index 000000000..42f01086a --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-treewide-meson.build-use-project_-build-sourc.patch @@ -0,0 +1,241 @@ +From e850a4c080c80fc218224521727996062ebb9487 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Fri, 14 Jan 2022 16:12:55 +0530 +Subject: [PATCH 1/4] Revert "treewide: meson.build: use + project_{build,source}_root()" + +This reverts commit 8ed46a283fa1f8623b940eaeb9f7cbcc52eebf0e. +Upstream-Status: Inappropriate[meson version dependent] +--- + doc/meson.build | 34 ++++++++++++++-------------- + meson.build | 8 +++---- + spa/plugins/audioconvert/meson.build | 4 ++-- + spa/tests/meson.build | 4 ++-- + src/daemon/meson.build | 6 ++--- + src/modules/meson.build | 6 ++--- + src/tests/meson.build | 6 ++--- + test/meson.build | 4 ++-- + 8 files changed, 36 insertions(+), 36 deletions(-) + +diff --git a/doc/meson.build b/doc/meson.build +index 0e6d7f8e3..082780145 100644 +--- a/doc/meson.build ++++ b/doc/meson.build +@@ -1,8 +1,8 @@ + doxyfile_conf = configuration_data() + doxyfile_conf.set('PACKAGE_NAME', meson.project_name()) + doxyfile_conf.set('PACKAGE_VERSION', meson.project_version()) +-doxyfile_conf.set('top_srcdir', meson.project_source_root()) +-doxyfile_conf.set('top_builddir', meson.project_build_root()) ++doxyfile_conf.set('top_srcdir', meson.source_root()) ++doxyfile_conf.set('top_builddir', meson.build_root()) + + dot_found = find_program('dot', required: false).found() + summary({'dot (used with doxygen)': dot_found}, bool_yn: true, section: 'Optional programs') +@@ -49,35 +49,35 @@ extra_docs = [ + + inputs = [] + foreach extra : extra_docs +- inputs += meson.project_source_root() / 'doc' / extra ++ inputs += meson.source_root() / 'doc' / extra + endforeach + foreach h : pipewire_headers +- inputs += meson.project_source_root() / 'src' / 'pipewire' / h ++ inputs += meson.source_root() / 'src' / 'pipewire' / h + endforeach + foreach h : pipewire_ext_headers +- inputs += meson.project_source_root() / 'src' / 'pipewire' / 'extensions' / h ++ inputs += meson.source_root() / 'src' / 'pipewire' / 'extensions' / h + endforeach + foreach h : pipewire_ext_sm_headers +- inputs += meson.project_source_root() / 'src' / 'pipewire' / 'extensions' / h ++ inputs += meson.source_root() / 'src' / 'pipewire' / 'extensions' / h + endforeach + foreach h : pipewire_sources +- inputs += meson.project_source_root() / 'src' / 'pipewire' / h ++ inputs += meson.source_root() / 'src' / 'pipewire' / h + endforeach + foreach h : module_sources +- inputs += meson.project_source_root() / 'src' / 'modules' / h ++ inputs += meson.source_root() / 'src' / 'modules' / h + endforeach +-inputs += meson.project_source_root() / 'test' / 'pwtest.h' +-input_dirs = [ meson.project_source_root() / 'spa' / 'include' / 'spa' ] ++inputs += meson.source_root() / 'test' / 'pwtest.h' ++input_dirs = [ meson.source_root() / 'spa' / 'include' / 'spa' ] + + path_prefixes = [ +- meson.project_source_root() / 'src', +- meson.project_source_root() / 'spa' / 'include', +- meson.project_source_root(), ++ meson.source_root() / 'src', ++ meson.source_root() / 'spa' / 'include', ++ meson.source_root(), + ] + + cssfiles = [ +- meson.project_source_root() / 'doc' / 'doxygen-awesome.css', +- meson.project_source_root() / 'doc' / 'custom.css' ++ meson.source_root() / 'doc' / 'doxygen-awesome.css', ++ meson.source_root() / 'doc' / 'custom.css' + ] + + # Example files (in order from simple to esoteric) +@@ -118,8 +118,8 @@ input_dirs += [ 'doc/examples.dox' ] + doxyfile_conf.set('inputs', ' '.join(inputs + input_dirs)) + doxyfile_conf.set('cssfiles', ' '.join(cssfiles)) + doxyfile_conf.set('path_prefixes', ' '.join(path_prefixes)) +-doxyfile_conf.set('c_input_filter', meson.project_source_root() / 'doc' / 'input-filter.sh') +-doxyfile_conf.set('h_input_filter', meson.project_source_root() / 'doc' / 'input-filter-h.sh') ++doxyfile_conf.set('c_input_filter', meson.source_root() / 'doc' / 'input-filter.sh') ++doxyfile_conf.set('h_input_filter', meson.source_root() / 'doc' / 'input-filter-h.sh') + + doxyfile = configure_file(input: 'Doxyfile.in', + output: 'Doxyfile', +diff --git a/meson.build b/meson.build +index b1ea32f7a..67e697c15 100644 +--- a/meson.build ++++ b/meson.build +@@ -304,9 +304,9 @@ includes_inc = include_directories('include') + pipewire_inc = include_directories('src') + + makedata = configuration_data() +-makedata.set('BUILD_ROOT', meson.project_build_root()) +-makedata.set('SOURCE_ROOT', meson.project_source_root()) +-makedata.set('VERSION', pipewire_version) ++ makedata.set('BUILD_ROOT', meson.build_root()) ++ makedata.set('SOURCE_ROOT', meson.source_root()) ++ makedata.set('VERSION', pipewire_version) + if version_arr.length() == 4 + makedata.set('TAG', 'HEAD') + else +@@ -498,7 +498,7 @@ endif + setenv = find_program('pw-uninstalled.sh') + run_target('pw-uninstalled', + command : [setenv, +- '-b@0@'.format(meson.project_build_root()), ++ '-b@0@'.format(meson.build_root()), + '-v@0@'.format(pipewire_version)] + ) + +diff --git a/spa/plugins/audioconvert/meson.build b/spa/plugins/audioconvert/meson.build +index de9f491af..4d15271f5 100644 +--- a/spa/plugins/audioconvert/meson.build ++++ b/spa/plugins/audioconvert/meson.build +@@ -140,7 +140,7 @@ foreach a : test_apps + install : installed_tests_enabled, + install_dir : installed_tests_execdir / 'audioconvert'), + env : [ +- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')), ++ 'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()), + ]) + + if installed_tests_enabled +@@ -170,7 +170,7 @@ foreach a : benchmark_apps + install : installed_tests_enabled, + install_dir : installed_tests_execdir / 'audioconvert'), + env : [ +- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')), ++ 'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()), + ]) + + if installed_tests_enabled +diff --git a/spa/tests/meson.build b/spa/tests/meson.build +index 990df87bd..9e2a211e2 100644 +--- a/spa/tests/meson.build ++++ b/spa/tests/meson.build +@@ -5,7 +5,7 @@ find = find_program('find', required: false) + summary({'find (for header testing)': find.found()}, bool_yn: true, section: 'Optional programs') + if find.found() + spa_headers = run_command(find, +- meson.project_source_root() / 'spa' / 'include', ++ meson.source_root() / 'spa' / 'include', + '-name', '*.h', + '-not', '-name', 'type-info.h', + '-type', 'f', +@@ -40,7 +40,7 @@ foreach a : benchmark_apps + install_dir : installed_tests_execdir, + ), + env : [ +- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')), ++ 'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()), + ] + ) + +diff --git a/src/daemon/meson.build b/src/daemon/meson.build +index 44a574337..5e64287a1 100644 +--- a/src/daemon/meson.build ++++ b/src/daemon/meson.build +@@ -18,9 +18,9 @@ conf_config.set('pulse_comment', '#') + + conf_config_uninstalled = conf_config + conf_config_uninstalled.set('pipewire_path', +- meson.project_build_root() / 'src' / 'daemon' / 'pipewire') ++ meson.build_root() / 'src' / 'daemon' / 'pipewire') + conf_config_uninstalled.set('pipewire_pulse_path', +- meson.project_build_root() / 'src' / 'daemon' / 'pipewire-pulse') ++ meson.build_root() / 'src' / 'daemon' / 'pipewire-pulse') + conf_config_uninstalled.set('pulse_comment', '') + + build_ms = 'media-session' in get_option('session-managers') +@@ -105,7 +105,7 @@ custom_target('pipewire-uninstalled', + install: false, + input: pipewire_exec, + output: 'pipewire-uninstalled', +- command: [ln, '-fs', meson.project_build_root() + '/@INPUT@', '@OUTPUT@'], ++ command: [ln, '-fs', meson.build_root() + '/@INPUT@', '@OUTPUT@'], + ) + + #desktop_file = i18n.merge_file( +diff --git a/src/modules/meson.build b/src/modules/meson.build +index 93dc70173..45852f3b9 100644 +--- a/src/modules/meson.build ++++ b/src/modules/meson.build +@@ -370,9 +370,9 @@ test('pw-test-protocol-native', + install_dir : installed_tests_execdir, + ), + env : [ +- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')), +- 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'confdatadir')), +- 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'moduledir')), ++ 'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()), ++ 'PIPEWIRE_CONFIG_DIR=@0@/src/daemon/'.format(meson.build_root()), ++ 'PIPEWIRE_MODULE_DIR=@0@/src/modules/'.format(meson.build_root()) + ] + ) + +diff --git a/src/tests/meson.build b/src/tests/meson.build +index 3e8d05012..1b03967fb 100644 +--- a/src/tests/meson.build ++++ b/src/tests/meson.build +@@ -13,9 +13,9 @@ foreach a : test_apps + install : installed_tests_enabled, + install_dir : installed_tests_execdir), + env : [ +- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')), +- 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'confdatadir')), +- 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable(internal: 'moduledir')), ++ 'SPA_PLUGIN_DIR=@0@/spa/plugins/'.format(meson.build_root()), ++ 'PIPEWIRE_CONFIG_DIR=@0@/src/daemon/'.format(meson.build_root()), ++ 'PIPEWIRE_MODULE_DIR=@0@/src/modules/'.format(meson.build_root()) + ]) + + if installed_tests_enabled +diff --git a/test/meson.build b/test/meson.build +index 20bdcb210..89f2bc2ec 100644 +--- a/test/meson.build ++++ b/test/meson.build +@@ -14,8 +14,8 @@ pwtest_deps = [ + ] + + pwtest_c_args = [ +- '-DBUILD_ROOT="@0@"'.format(meson.project_build_root()), +- '-DSOURCE_ROOT="@0@"'.format(meson.project_source_root()), ++ '-DBUILD_ROOT="@0@"'.format(meson.build_root()), ++ '-DSOURCE_ROOT="@0@"'.format(meson.source_root()), + ] + + pwtest_inc = [ +-- +2.34.1 + diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-alsa-plugin-allow-specifying-a-media.role-on-the-vir.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-alsa-plugin-allow-specifying-a-media.role-on-the-vir.patch deleted file mode 100644 index c6cf373c2..000000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-alsa-plugin-allow-specifying-a-media.role-on-the-vir.patch +++ /dev/null @@ -1,124 +0,0 @@ -From ff019936a70262c176a4bd950bc80ab84d2a71b0 Mon Sep 17 00:00:00 2001 -From: George Kiagiadakis <george.kiagiadakis@collabora.com> -Date: Tue, 22 Jun 2021 13:23:22 +0300 -Subject: [PATCH] alsa plugin: allow specifying a media.role on the virtual - device name - -So that we can do: - aplay -D pipewire:ROLE=Music music.wav - aplay -D pipewire:ROLE=Notification notice.wav - -Upstream-Status: Backport [from master/0.3.31] ---- - pipewire-alsa/alsa-plugins/pcm_pipewire.c | 14 +++++++++++++- - pipewire-alsa/conf/50-pipewire.conf | 11 ++++++++++- - 2 files changed, 23 insertions(+), 2 deletions(-) - -diff --git a/pipewire-alsa/alsa-plugins/pcm_pipewire.c b/pipewire-alsa/alsa-plugins/pcm_pipewire.c -index 86792d2c7..6ace1b689 100644 ---- a/pipewire-alsa/alsa-plugins/pcm_pipewire.c -+++ b/pipewire-alsa/alsa-plugins/pcm_pipewire.c -@@ -59,6 +59,7 @@ typedef struct { - - char *node_name; - char *target; -+ char *role; - - int fd; - int error; -@@ -509,6 +510,9 @@ static int snd_pcm_pipewire_prepare(snd_pcm_ioplug_t *io) - pw_properties_set(props, PW_KEY_MEDIA_CATEGORY, - io->stream == SND_PCM_STREAM_PLAYBACK ? - "Playback" : "Capture"); -+ if (pw->role != NULL && -+ pw_properties_get(props, PW_KEY_MEDIA_ROLE) == NULL) -+ pw_properties_setf(props, PW_KEY_MEDIA_ROLE, "%s", pw->role); - - pw->stream = pw_stream_new(pw->core, pw->node_name, props); - if (pw->stream == NULL) -@@ -958,6 +962,7 @@ static int snd_pcm_pipewire_open(snd_pcm_t **pcmp, const char *name, - const char *server_name, - const char *playback_node, - const char *capture_node, -+ const char *role, - snd_pcm_stream_t stream, - int mode, - uint32_t flags, -@@ -1013,6 +1018,8 @@ static int snd_pcm_pipewire_open(snd_pcm_t **pcmp, const char *name, - pw->target = capture_node ? strdup(capture_node) : NULL; - } - -+ pw->role = (role && *role) ? strdup(role) : NULL; -+ - pw->main_loop = pw_thread_loop_new("alsa-pipewire", NULL); - if (pw->main_loop == NULL) { - err = -errno; -@@ -1091,6 +1098,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(pipewire) - const char *server_name = NULL; - const char *playback_node = NULL; - const char *capture_node = NULL; -+ const char *role = NULL; - snd_pcm_format_t format = SND_PCM_FORMAT_UNKNOWN; - int rate = 0; - int channels = 0; -@@ -1125,6 +1133,10 @@ SND_PCM_PLUGIN_DEFINE_FUNC(pipewire) - snd_config_get_string(n, &capture_node); - continue; - } -+ if (spa_streq(id, "role")) { -+ snd_config_get_string(n, &role); -+ continue; -+ } - if (spa_streq(id, "exclusive")) { - if (snd_config_get_bool(n)) - flags |= PW_STREAM_FLAG_EXCLUSIVE; -@@ -1174,7 +1186,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(pipewire) - } - - err = snd_pcm_pipewire_open(pcmp, name, node_name, server_name, playback_node, -- capture_node, stream, mode, flags, rate, format, -+ capture_node, role, stream, mode, flags, rate, format, - channels, period_bytes); - - return err; -diff --git a/pipewire-alsa/conf/50-pipewire.conf b/pipewire-alsa/conf/50-pipewire.conf -index 2c6f2d259..f7e58472b 100644 ---- a/pipewire-alsa/conf/50-pipewire.conf -+++ b/pipewire-alsa/conf/50-pipewire.conf -@@ -3,9 +3,10 @@ - defaults.pipewire.server "pipewire-0" - defaults.pipewire.node "-1" - defaults.pipewire.exclusive false -+defaults.pipewire.role "" - - pcm.pipewire { -- @args [ SERVER NODE EXCLUSIVE ] -+ @args [ SERVER NODE EXCLUSIVE ROLE ] - @args.SERVER { - type string - default { -@@ -27,6 +28,13 @@ pcm.pipewire { - name defaults.pipewire.exclusive - } - } -+ @args.ROLE { -+ type string -+ default { -+ @func refer -+ name defaults.pipewire.role -+ } -+ } - - - type pipewire -@@ -34,6 +42,7 @@ pcm.pipewire { - playback_node $NODE - capture_node $NODE - exclusive $EXCLUSIVE -+ role $ROLE - hint { - show on - description "PipeWire Sound Server" --- -2.30.2 - diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-null-sink-make-the-timerfd-non-blocking.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-null-sink-make-the-timerfd-non-blocking.patch deleted file mode 100644 index 71e526f86..000000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-null-sink-make-the-timerfd-non-blocking.patch +++ /dev/null @@ -1,43 +0,0 @@ -From c633004bf310998580ff8944c59d94689d6fca87 Mon Sep 17 00:00:00 2001 -From: George Kiagiadakis <george.kiagiadakis@collabora.com> -Date: Thu, 1 Jul 2021 11:37:01 +0300 -Subject: [PATCH] null-sink: make the timerfd non-blocking - -Fixes #1377 - -Upstream-Status: Backport [from master/0.3.32] -Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> ---- - spa/plugins/support/null-audio-sink.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/spa/plugins/support/null-audio-sink.c b/spa/plugins/support/null-audio-sink.c -index e9588f1e2..12e671db8 100644 ---- a/spa/plugins/support/null-audio-sink.c -+++ b/spa/plugins/support/null-audio-sink.c -@@ -221,8 +221,11 @@ static void on_timeout(struct spa_source *source) - spa_log_trace(this->log, "timeout"); - - if (spa_system_timerfd_read(this->data_system, -- this->timer_source.fd, &expirations) < 0) -+ this->timer_source.fd, &expirations) < 0) { -+ if (errno == EAGAIN) -+ return; - perror("read timerfd"); -+ } - - nsec = this->next_time; - -@@ -818,7 +821,8 @@ impl_init(const struct spa_handle_factory *factory, - - this->timer_source.func = on_timeout; - this->timer_source.data = this; -- this->timer_source.fd = spa_system_timerfd_create(this->data_system, CLOCK_MONOTONIC, SPA_FD_CLOEXEC); -+ this->timer_source.fd = spa_system_timerfd_create(this->data_system, CLOCK_MONOTONIC, -+ SPA_FD_CLOEXEC | SPA_FD_NONBLOCK); - this->timer_source.mask = SPA_IO_IN; - this->timer_source.rmask = 0; - this->timerspec.it_value.tv_sec = 0; --- -2.30.2 - diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-treewide-meson.build-use-dependency-variable-.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-treewide-meson.build-use-dependency-variable-.patch new file mode 100644 index 000000000..4131e6c27 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-treewide-meson.build-use-dependency-variable-.patch @@ -0,0 +1,1129 @@ +From cbe87dc5390c91523a9f0bc3eb126fa500c351e2 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Fri, 14 Jan 2022 18:23:54 +0530 +Subject: [PATCH 2/4] Revert "treewide: meson.build: use dependency variable + for SPA" + +This reverts commit 2b110af36683f13f2b55064dec4ae02c1b407561. + +Upstream-Status: Inappropriate[meson version dependent] +--- + spa/examples/meson.build | 4 +- + spa/meson.build | 41 +++++++------- + spa/plugins/alsa/acp/meson.build | 4 +- + spa/plugins/alsa/meson.build | 7 +-- + spa/plugins/audioconvert/meson.build | 33 ++++++------ + spa/plugins/audiomixer/meson.build | 11 ++-- + spa/plugins/audiotestsrc/meson.build | 3 +- + spa/plugins/bluez5/meson.build | 24 ++++----- + spa/plugins/control/meson.build | 3 +- + spa/plugins/ffmpeg/meson.build | 3 +- + spa/plugins/jack/meson.build | 3 +- + spa/plugins/libcamera/meson.build | 3 +- + spa/plugins/support/meson.build | 14 +++-- + spa/plugins/test/meson.build | 3 +- + spa/plugins/v4l2/meson.build | 3 +- + spa/plugins/videoconvert/meson.build | 3 +- + spa/plugins/videotestsrc/meson.build | 3 +- + spa/plugins/volume/meson.build | 2 +- + spa/plugins/vulkan/meson.build | 3 +- + spa/tests/meson.build | 5 +- + spa/tools/meson.build | 9 ++-- + src/daemon/meson.build | 8 +-- + src/gst/meson.build | 4 +- + src/modules/meson.build | 80 ++++++++++++++-------------- + src/modules/spa/meson.build | 16 +++--- + src/pipewire/meson.build | 4 +- + test/meson.build | 11 ++-- + 27 files changed, 160 insertions(+), 147 deletions(-) + +diff --git a/spa/examples/meson.build b/spa/examples/meson.build +index 7064a0643..bc04b723c 100644 +--- a/spa/examples/meson.build ++++ b/spa/examples/meson.build +@@ -23,8 +23,8 @@ foreach c : spa_examples + executable( + c, + c + '.c', +- include_directories : [configinc], +- dependencies : [spa_dep, dl_lib, pthread_lib, mathlib] + deps, ++ include_directories : [configinc, spa_inc], ++ dependencies : [dl_lib, pthread_lib, mathlib] + deps, + install : installed_tests_enabled, + install_dir : installed_tests_execdir / 'examples' / 'spa' + ) +diff --git a/spa/meson.build b/spa/meson.build +index 4ad37cdb4..2717b86d6 100644 +--- a/spa/meson.build ++++ b/spa/meson.build +@@ -5,28 +5,7 @@ + #pthread_lib = dependencies('threads') + #mathlib = cc.find_library('m', required : false) + +-spa_dep = declare_dependency( +- include_directories : [ +- include_directories('include'), +- ], +- version : spaversion, +- variables : { +- 'plugindir' : meson.current_build_dir() / 'plugins', +- 'datadir' : meson.current_source_dir() / 'plugins', +- }, +-) +- +-meson.override_dependency('lib@0@'.format(spa_name), spa_dep) +- +-pkgconfig.generate(filebase : 'lib@0@'.format(spa_name), +- name : 'libspa', +- subdirs : spa_name, +- description : 'Simple Plugin API', +- version : spaversion, +- extra_cflags : '-D_REENTRANT', +- variables : ['plugindir=${libdir}/@0@'.format(spa_name)], +- uninstalled_variables : ['plugindir=${prefix}/spa/plugins'], +-) ++spa_inc = include_directories('include') + + subdir('include') + +@@ -76,3 +55,21 @@ subdir('tests') + 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, ++ description : 'Simple Plugin API', ++ version : spaversion, ++ extra_cflags : '-D_REENTRANT', ++ variables : ['plugindir=${libdir}/@0@'.format(spa_name)], ++ uninstalled_variables : ['plugindir=${prefix}/spa/plugins'], ++) ++ ++meson.override_dependency('lib@0@'.format(spa_name), spa_dep) +diff --git a/spa/plugins/alsa/acp/meson.build b/spa/plugins/alsa/acp/meson.build +index 0ec97e2b4..3686aec82 100644 +--- a/spa/plugins/alsa/acp/meson.build ++++ b/spa/plugins/alsa/acp/meson.build +@@ -16,7 +16,7 @@ acp_lib = static_library( + 'acp', + acp_sources, + c_args : acp_c_args, +- include_directories : [configinc, includes_inc ], +- dependencies : [ spa_dep, alsa_dep, mathlib, ] ++ include_directories : [configinc, spa_inc, includes_inc ], ++ dependencies : [ alsa_dep, mathlib, ] + ) + acp_dep = declare_dependency(link_with: acp_lib) +diff --git a/spa/plugins/alsa/meson.build b/spa/plugins/alsa/meson.build +index e3fa6f0d7..402d93486 100644 +--- a/spa/plugins/alsa/meson.build ++++ b/spa/plugins/alsa/meson.build +@@ -16,8 +16,8 @@ spa_alsa = shared_library( + 'spa-alsa', + [ spa_alsa_sources ], + c_args : acp_c_args, +- include_directories : [configinc], +- dependencies : [ spa_dep, alsa_dep, libudev_dep, mathlib, epoll_shim_dep, libinotify_dep ], ++ include_directories : [spa_inc, configinc], ++ dependencies : [ alsa_dep, libudev_dep, mathlib, epoll_shim_dep, libinotify_dep ], + link_with : [ acp_lib ], + install : true, + install_dir : spa_plugindir / 'alsa' +@@ -30,7 +30,8 @@ alsa_udevrules = [ + executable('spa-acp-tool', + [ 'acp-tool.c' ], + c_args : acp_c_args, +- dependencies : [ spa_dep, alsa_dep, mathlib, acp_dep ], ++ include_directories : [spa_inc ], ++ dependencies : [ alsa_dep, mathlib, acp_dep ], + install : true, + ) + +diff --git a/spa/plugins/audioconvert/meson.build b/spa/plugins/audioconvert/meson.build +index 4d15271f5..6f4fd968b 100644 +--- a/spa/plugins/audioconvert/meson.build ++++ b/spa/plugins/audioconvert/meson.build +@@ -17,7 +17,7 @@ if have_sse + 'volume-ops-sse.c', + 'channelmix-ops-sse.c' ], + c_args : [sse_args, '-O3', '-DHAVE_SSE'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSE'] +@@ -27,7 +27,7 @@ if have_sse2 + audioconvert_sse2 = static_library('audioconvert_sse2', + ['fmt-ops-sse2.c' ], + c_args : [sse2_args, '-O3', '-DHAVE_SSE2'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSE2'] +@@ -38,7 +38,7 @@ if have_ssse3 + ['fmt-ops-ssse3.c', + 'resample-native-ssse3.c' ], + c_args : [ssse3_args, '-O3', '-DHAVE_SSSE3'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSSE3'] +@@ -48,7 +48,7 @@ if have_sse41 + audioconvert_sse41 = static_library('audioconvert_sse41', + ['fmt-ops-sse41.c'], + c_args : [sse41_args, '-O3', '-DHAVE_SSE41'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSE41'] +@@ -58,7 +58,7 @@ if have_avx and have_fma + audioconvert_avx = static_library('audioconvert_avx', + ['resample-native-avx.c'], + c_args : [avx_args, fma_args, '-O3', '-DHAVE_AVX', '-DHAVE_FMA'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_AVX', '-DHAVE_FMA'] +@@ -68,7 +68,7 @@ if have_avx2 + audioconvert_avx2 = static_library('audioconvert_avx2', + ['fmt-ops-avx2.c'], + c_args : [avx2_args, '-O3', '-DHAVE_AVX2'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_AVX2'] +@@ -80,7 +80,7 @@ if have_neon + ['resample-native-neon.c', + 'fmt-ops-neon.c' ], + c_args : [neon_args, '-O3', '-DHAVE_NEON'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_NEON'] +@@ -100,8 +100,7 @@ audioconvert_lib = static_library('audioconvert', + 'volume-ops-c.c' ], + c_args : [ simd_cargs, '-O3'], + link_with : simd_dependencies, +- include_directories : [configinc], +- dependencies : [ spa_dep ], ++ include_directories : [configinc, spa_inc], + install : false + ) + audioconvert_dep = declare_dependency(link_with: audioconvert_lib) +@@ -109,7 +108,8 @@ audioconvert_dep = declare_dependency(link_with: audioconvert_lib) + spa_audioconvert_lib = shared_library('spa-audioconvert', + audioconvert_sources, + c_args : simd_cargs, +- dependencies : [ spa_dep, mathlib, audioconvert_dep ], ++ include_directories : [spa_inc], ++ dependencies : [ mathlib, audioconvert_dep ], + install : true, + install_dir : spa_plugindir / 'audioconvert') + spa_audioconvert_dep = declare_dependency(link_with: spa_audioconvert_lib) +@@ -117,7 +117,7 @@ spa_audioconvert_dep = declare_dependency(link_with: spa_audioconvert_lib) + test_lib = static_library('test_lib', + ['test-source.c' ], + c_args : ['-O3'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + +@@ -132,8 +132,8 @@ test_apps = [ + foreach a : test_apps + test(a, + executable(a, a + '.c', +- dependencies : [ spa_dep, dl_lib, pthread_lib, mathlib, audioconvert_dep, spa_audioconvert_dep ], +- include_directories : [ configinc ], ++ dependencies : [ dl_lib, pthread_lib, mathlib, audioconvert_dep, spa_audioconvert_dep ], ++ include_directories : [ configinc, spa_inc ], + link_with : [ test_lib ], + install_rpath : spa_plugindir / 'audioconvert', + c_args : [ simd_cargs ], +@@ -163,8 +163,8 @@ benchmark_apps = [ + foreach a : benchmark_apps + benchmark(a, + executable(a, a + '.c', +- dependencies : [ spa_dep, dl_lib, pthread_lib, mathlib, audioconvert_dep, spa_audioconvert_dep ], +- include_directories : [ configinc ], ++ dependencies : [ dl_lib, pthread_lib, mathlib, audioconvert_dep, spa_audioconvert_dep ], ++ include_directories : [ configinc, spa_inc ], + c_args : [ simd_cargs ], + install_rpath : spa_plugindir / 'audioconvert', + install : installed_tests_enabled, +@@ -192,8 +192,9 @@ if sndfile_dep.found() + executable('spa-resample', + sparesample_sources, + c_args : [ simd_cargs ], ++ include_directories : [spa_inc ], + link_with : [ test_lib ], +- dependencies : [ spa_dep, sndfile_dep, mathlib, audioconvert_dep ], ++ dependencies : [sndfile_dep, mathlib, audioconvert_dep], + install : true, + ) + endif +diff --git a/spa/plugins/audiomixer/meson.build b/spa/plugins/audiomixer/meson.build +index 9e1d12d59..214c2a887 100644 +--- a/spa/plugins/audiomixer/meson.build ++++ b/spa/plugins/audiomixer/meson.build +@@ -11,7 +11,7 @@ simd_dependencies = [] + audiomixer_c = static_library('audiomixer_c', + ['mix-ops-c.c' ], + c_args : ['-O3'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_dependencies += audiomixer_c +@@ -20,7 +20,7 @@ if have_sse + audiomixer_sse = static_library('audiomixer_sse', + ['mix-ops-sse.c' ], + c_args : [sse_args, '-O3', '-DHAVE_SSE'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSE'] +@@ -30,7 +30,7 @@ if have_sse2 + audiomixer_sse2 = static_library('audiomixer_sse2', + ['mix-ops-sse2.c' ], + c_args : [sse2_args, '-O3', '-DHAVE_SSE2'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSE2'] +@@ -40,7 +40,7 @@ if have_avx and have_fma + audiomixer_avx = static_library('audiomixer_avx', + ['mix-ops-avx.c'], + c_args : [avx_args, fma_args, '-O3', '-DHAVE_AVX', '-DHAVE_FMA'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_AVX', '-DHAVE_FMA'] +@@ -51,7 +51,8 @@ audiomixerlib = shared_library('spa-audiomixer', + audiomixer_sources, + c_args : simd_cargs, + link_with : simd_dependencies, +- dependencies : [ spa_dep, mathlib ], ++ include_directories : [spa_inc], ++ dependencies : [ mathlib ], + install : true, + install_dir : spa_plugindir / 'audiomixer' + ) +diff --git a/spa/plugins/audiotestsrc/meson.build b/spa/plugins/audiotestsrc/meson.build +index d1b22428d..8011ee883 100644 +--- a/spa/plugins/audiotestsrc/meson.build ++++ b/spa/plugins/audiotestsrc/meson.build +@@ -2,6 +2,7 @@ audiotestsrc_sources = ['audiotestsrc.c', 'plugin.c'] + + audiotestsrclib = shared_library('spa-audiotestsrc', + audiotestsrc_sources, +- dependencies : [ spa_dep, mathlib ], ++ include_directories : [spa_inc], ++ dependencies : [mathlib, ], + install : true, + install_dir : spa_plugindir / 'audiotestsrc') +diff --git a/spa/plugins/bluez5/meson.build b/spa/plugins/bluez5/meson.build +index b13e23cf4..eca9c9eb5 100644 +--- a/spa/plugins/bluez5/meson.build ++++ b/spa/plugins/bluez5/meson.build +@@ -56,8 +56,8 @@ endif + + bluez5lib = shared_library('spa-bluez5', + bluez5_sources, +- include_directories : [ configinc ], +- dependencies : [ spa_dep, bluez5_deps ], ++ include_directories : [ spa_inc, configinc ], ++ dependencies : bluez5_deps, + install : true, + install_dir : spa_plugindir / 'bluez5') + +@@ -65,26 +65,26 @@ codec_args = [ '-DCODEC_PLUGIN' ] + + bluez_codec_sbc = shared_library('spa-codec-bluez5-sbc', + [ 'a2dp-codec-sbc.c', 'a2dp-codecs.c' ], +- include_directories : [ configinc ], ++ include_directories : [ spa_inc, configinc ], + c_args : codec_args, +- dependencies : [ spa_dep, sbc_dep ], ++ dependencies : sbc_dep, + install : true, + install_dir : spa_plugindir / 'bluez5') + + bluez_codec_faststream = shared_library('spa-codec-bluez5-faststream', + [ 'a2dp-codec-faststream.c', 'a2dp-codecs.c' ], +- include_directories : [ configinc ], ++ include_directories : [ spa_inc, configinc ], + c_args : codec_args, +- dependencies : [ spa_dep, sbc_dep ], ++ dependencies : sbc_dep, + install : true, + install_dir : spa_plugindir / 'bluez5') + + if fdk_aac_dep.found() + bluez_codec_aac = shared_library('spa-codec-bluez5-aac', + [ 'a2dp-codec-aac.c', 'a2dp-codecs.c' ], +- include_directories : [ configinc ], ++ include_directories : [ spa_inc, configinc ], + c_args : codec_args, +- dependencies : [ spa_dep, fdk_aac_dep ], ++ dependencies : fdk_aac_dep, + install : true, + install_dir : spa_plugindir / 'bluez5') + endif +@@ -92,9 +92,9 @@ endif + if aptx_dep.found() + bluez_codec_aptx = shared_library('spa-codec-bluez5-aptx', + [ 'a2dp-codec-aptx.c', 'a2dp-codecs.c' ], +- include_directories : [ configinc ], ++ include_directories : [ spa_inc, configinc ], + c_args : codec_args, +- dependencies : [ spa_dep, aptx_dep, sbc_dep ], ++ dependencies : [ aptx_dep, sbc_dep ], + install : true, + install_dir : spa_plugindir / 'bluez5') + endif +@@ -108,9 +108,9 @@ if ldac_dep.found() + endif + bluez_codec_ldac = shared_library('spa-codec-bluez5-ldac', + [ 'a2dp-codec-ldac.c', 'a2dp-codecs.c' ], +- include_directories : [ configinc ], ++ include_directories : [ spa_inc, configinc ], + c_args : ldac_args, +- dependencies : [ spa_dep, ldac_dep ], ++ dependencies : ldac_dep, + install : true, + install_dir : spa_plugindir / 'bluez5') + endif +diff --git a/spa/plugins/control/meson.build b/spa/plugins/control/meson.build +index adabdfab3..10f9cfeda 100644 +--- a/spa/plugins/control/meson.build ++++ b/spa/plugins/control/meson.build +@@ -5,6 +5,7 @@ control_sources = [ + + controllib = shared_library('spa-control', + control_sources, +- dependencies : [ spa_dep, mathlib ], ++ include_directories : [spa_inc], ++ dependencies : [ mathlib ], + install : true, + install_dir : spa_plugindir / 'control') +diff --git a/spa/plugins/ffmpeg/meson.build b/spa/plugins/ffmpeg/meson.build +index 0e41ecb6e..2aec258da 100644 +--- a/spa/plugins/ffmpeg/meson.build ++++ b/spa/plugins/ffmpeg/meson.build +@@ -4,6 +4,7 @@ ffmpeg_sources = ['ffmpeg.c', + + ffmpeglib = shared_library('spa-ffmpeg', + ffmpeg_sources, +- dependencies : [ spa_dep, avcodec_dep ], ++ include_directories : [spa_inc], ++ dependencies : [avcodec_dep], + install : true, + install_dir : spa_plugindir / 'ffmpeg') +diff --git a/spa/plugins/jack/meson.build b/spa/plugins/jack/meson.build +index 312a54061..b1732acd6 100644 +--- a/spa/plugins/jack/meson.build ++++ b/spa/plugins/jack/meson.build +@@ -7,6 +7,7 @@ spa_jack_sources = [ + + spa_jack = shared_library('spa-jack', + spa_jack_sources, +- dependencies : [ spa_dep, jack_dep, mathlib ], ++ include_directories : [spa_inc], ++ dependencies : [ jack_dep, mathlib ], + install : true, + install_dir : spa_plugindir / 'jack') +diff --git a/spa/plugins/libcamera/meson.build b/spa/plugins/libcamera/meson.build +index abb1a42cf..02ac2d9c2 100644 +--- a/spa/plugins/libcamera/meson.build ++++ b/spa/plugins/libcamera/meson.build +@@ -11,7 +11,8 @@ summary({'libdrm': libdrm_dep.found()}, bool_yn: true, section: 'Backend') + if libdrm_dep.found() + libcameralib = shared_library('spa-libcamera', + libcamera_sources, +- dependencies : [ spa_dep, libudev_dep, libcamera_dep, pthread_lib, libdrm_dep ], ++ include_directories : [ spa_inc ], ++ dependencies : [ libudev_dep, libcamera_dep, pthread_lib, libdrm_dep ], + install : true, + install_dir : spa_plugindir / 'libcamera') + endif +diff --git a/spa/plugins/support/meson.build b/spa/plugins/support/meson.build +index b810b283c..15010a51e 100644 +--- a/spa/plugins/support/meson.build ++++ b/spa/plugins/support/meson.build +@@ -17,12 +17,14 @@ endif + + spa_support_lib = shared_library('spa-support', + spa_support_sources, ++ include_directories : [ spa_inc ], + c_args : [ simd_cargs ], +- dependencies : [ spa_dep, pthread_lib, epoll_shim_dep ], ++ dependencies : [ pthread_lib, epoll_shim_dep ], + install : true, + install_dir : spa_plugindir / 'support') + spa_support_dep = declare_dependency(link_with: spa_support_lib) + ++ + if not get_option('evl').disabled() + evl_inc = include_directories('/usr/evl/include') + evl_lib = cc.find_library('evl', +@@ -33,8 +35,8 @@ if not get_option('evl').disabled() + + spa_evl_lib = shared_library('spa-evl', + spa_evl_sources, +- include_directories : [ evl_inc], +- dependencies : [ spa_dep, pthread_lib, evl_lib ], ++ include_directories : [ spa_inc, evl_inc], ++ dependencies : [ pthread_lib, evl_lib], + install : true, + install_dir : spa_plugindir / 'support') + endif +@@ -44,7 +46,8 @@ if dbus_dep.found() + + spa_dbus_lib = shared_library('spa-dbus', + spa_dbus_sources, +- dependencies : [ spa_dep, dbus_dep ], ++ include_directories : [ spa_inc], ++ dependencies : [dbus_dep, ], + install : true, + install_dir : spa_plugindir / 'support') + spa_dbus_dep = declare_dependency(link_with: spa_dbus_lib) +@@ -61,7 +64,8 @@ if systemd_dep.found() + + spa_journal_lib = shared_library('spa-journal', + spa_journal_sources, +- dependencies : [ spa_dep, systemd_dep ], ++ include_directories : spa_inc, ++ dependencies : systemd_dep, + install : true, + install_dir : spa_plugindir / 'support') + spa_journal_dep = declare_dependency(link_with: spa_journal_lib) +diff --git a/spa/plugins/test/meson.build b/spa/plugins/test/meson.build +index 950ee7c38..e824450f6 100644 +--- a/spa/plugins/test/meson.build ++++ b/spa/plugins/test/meson.build +@@ -2,6 +2,7 @@ test_sources = ['fakesrc.c', 'fakesink.c', 'plugin.c'] + + testlib = shared_library('spa-test', + test_sources, +- dependencies : [ spa_dep, pthread_lib ], ++ include_directories : [ spa_inc], ++ dependencies : [pthread_lib, ], + install : true, + install_dir : spa_plugindir / 'test') +diff --git a/spa/plugins/v4l2/meson.build b/spa/plugins/v4l2/meson.build +index 648583f32..297a62b16 100644 +--- a/spa/plugins/v4l2/meson.build ++++ b/spa/plugins/v4l2/meson.build +@@ -5,6 +5,7 @@ v4l2_sources = ['v4l2.c', + + v4l2lib = shared_library('spa-v4l2', + v4l2_sources, +- dependencies : [ spa_dep, libudev_dep, libinotify_dep ], ++ include_directories : [ spa_inc ], ++ dependencies : [ libudev_dep, libinotify_dep ], + install : true, + install_dir : spa_plugindir / 'v4l2') +diff --git a/spa/plugins/videoconvert/meson.build b/spa/plugins/videoconvert/meson.build +index 24673a541..17d860d5a 100644 +--- a/spa/plugins/videoconvert/meson.build ++++ b/spa/plugins/videoconvert/meson.build +@@ -9,7 +9,8 @@ simd_dependencies = [] + videoconvertlib = shared_library('spa-videoconvert', + videoconvert_sources, + c_args : simd_cargs, +- dependencies : [ spa_dep, mathlib ], ++ include_directories : [spa_inc], ++ dependencies : [ mathlib ], + link_with : simd_dependencies, + install : true, + install_dir : spa_plugindir / 'videoconvert') +diff --git a/spa/plugins/videotestsrc/meson.build b/spa/plugins/videotestsrc/meson.build +index 01a33ee29..f6f3dca56 100644 +--- a/spa/plugins/videotestsrc/meson.build ++++ b/spa/plugins/videotestsrc/meson.build +@@ -2,6 +2,7 @@ videotestsrc_sources = ['videotestsrc.c', 'plugin.c'] + + videotestsrclib = shared_library('spa-videotestsrc', + videotestsrc_sources, +- dependencies : [ spa_dep, pthread_lib ], ++ include_directories : [ spa_inc], ++ dependencies : [pthread_lib, ], + install : true, + install_dir : spa_plugindir / 'videotestsrc') +diff --git a/spa/plugins/volume/meson.build b/spa/plugins/volume/meson.build +index 2445e2bbd..e10f89563 100644 +--- a/spa/plugins/volume/meson.build ++++ b/spa/plugins/volume/meson.build +@@ -2,6 +2,6 @@ volume_sources = ['volume.c', 'plugin.c'] + + volumelib = shared_library('spa-volume', + volume_sources, +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : true, + install_dir : spa_plugindir / 'volume') +diff --git a/spa/plugins/vulkan/meson.build b/spa/plugins/vulkan/meson.build +index b79bca2cf..9683b41ea 100644 +--- a/spa/plugins/vulkan/meson.build ++++ b/spa/plugins/vulkan/meson.build +@@ -6,6 +6,7 @@ spa_vulkan_sources = [ + + spa_vulkan = shared_library('spa-vulkan', + spa_vulkan_sources, +- dependencies : [ spa_dep, vulkan_dep, mathlib ], ++ include_directories : [spa_inc], ++ dependencies : [ vulkan_dep, mathlib ], + install : true, + install_dir : spa_plugindir / 'vulkan') +diff --git a/spa/tests/meson.build b/spa/tests/meson.build +index 9e2a211e2..146cfe08a 100644 +--- a/spa/tests/meson.build ++++ b/spa/tests/meson.build +@@ -20,7 +20,7 @@ if find.found() + configuration: c) + executable('spa-include-test-@0@'.format(spa_header.underscorify()), + src, +- dependencies: [ spa_dep ], ++ include_directories: [spa_inc], + install: false) + endif + endforeach +@@ -35,7 +35,8 @@ benchmark_apps = [ + foreach a : benchmark_apps + benchmark('spa-' + a, + executable('spa-' + a, a + '.c', +- dependencies : [ spa_dep, dl_lib, pthread_lib, mathlib ], ++ dependencies : [dl_lib, pthread_lib, mathlib ], ++ include_directories : [spa_inc ], + install : installed_tests_enabled, + install_dir : installed_tests_execdir, + ), +diff --git a/spa/tools/meson.build b/spa/tools/meson.build +index 6f12e9c8f..e4df6c3ac 100644 +--- a/spa/tools/meson.build ++++ b/spa/tools/meson.build +@@ -1,11 +1,14 @@ + executable('spa-inspect', 'spa-inspect.c', +- dependencies : [ spa_dep, dl_lib ], ++ include_directories : [spa_inc], ++ dependencies : [dl_lib, ], + install : true) + + executable('spa-monitor', 'spa-monitor.c', +- dependencies : [ spa_dep, dl_lib ], ++ include_directories : [spa_inc], ++ dependencies : [dl_lib, ], + install : true) + + executable('spa-json-dump', 'spa-json-dump.c', +- dependencies : [ spa_dep, dl_lib, ], ++ include_directories : [spa_inc], ++ dependencies : [dl_lib, ], + install : true) +diff --git a/src/daemon/meson.build b/src/daemon/meson.build +index 5e64287a1..104a6dbf3 100644 +--- a/src/daemon/meson.build ++++ b/src/daemon/meson.build +@@ -86,16 +86,16 @@ pipewire_exec = executable('pipewire', + pipewire_daemon_sources, + install: true, + c_args : pipewire_c_args, +- include_directories : [ configinc ], +- dependencies : [ spa_dep, pipewire_dep, ], ++ include_directories : [configinc, spa_inc], ++ dependencies : [pipewire_dep, ], + ) + + executable('pipewire-pulse', + pipewire_daemon_sources, + install: true, + c_args : pipewire_c_args, +- include_directories : [ configinc ], +- dependencies : [ spa_dep, pipewire_dep, ], ++ include_directories : [configinc, spa_inc], ++ dependencies : [pipewire_dep, ], + ) + + ln = find_program('ln') +diff --git a/src/gst/meson.build b/src/gst/meson.build +index 709dc0f1c..b91b33dc9 100644 +--- a/src/gst/meson.build ++++ b/src/gst/meson.build +@@ -24,8 +24,8 @@ pipewire_gst_headers = [ + + pipewire_gst = shared_library('gstpipewire', + pipewire_gst_sources, +- include_directories : [ configinc ], +- dependencies : [ spa_dep, gst_dep, pipewire_dep ], ++ include_directories : [configinc, spa_inc], ++ dependencies : [gst_dep, pipewire_dep], + install : true, + install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')), + ) +diff --git a/src/modules/meson.build b/src/modules/meson.build +index 45852f3b9..61a53bd6f 100644 +--- a/src/modules/meson.build ++++ b/src/modules/meson.build +@@ -30,20 +30,20 @@ module_sources = [ + ] + + pipewire_module_access = shared_library('pipewire-module-access', [ 'module-access.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_loopback = shared_library('pipewire-module-loopback', + [ 'module-loopback.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + simd_cargs = [] +@@ -53,7 +53,7 @@ if have_sse + pffft_sse = static_library('pffft_sse', + ['module-filter-chain/pffft.c' ], + c_args : [sse_args, '-O3', '-DHAVE_SSE'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_SSE'] +@@ -63,7 +63,7 @@ if have_neon + pffft_neon = static_library('pffft_neon', + ['module-filter-chain/pffft.c' ], + c_args : [neon_args, '-O3', '-DHAVE_NEON'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_cargs += ['-DHAVE_NEON'] +@@ -73,7 +73,7 @@ endif + pffft_c = static_library('pffft_c', + ['module-filter-chain/pffft.c' ], + c_args : [simd_cargs, '-O3', '-DPFFFT_SIMD_DISABLE'], +- dependencies : [ spa_dep ], ++ include_directories : [spa_inc], + install : false + ) + simd_dependencies += pffft_c +@@ -99,7 +99,7 @@ endif + + pipewire_module_filter_chain = shared_library('pipewire-module-filter-chain', + filter_chain_sources, +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -120,7 +120,7 @@ endif + + pipewire_module_echo_cancel = shared_library('pipewire-module-echo-cancel', + pipewire_module_echo_cancel_sources, +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -130,17 +130,17 @@ pipewire_module_echo_cancel = shared_library('pipewire-module-echo-cancel', + pipewire_module_profiler = shared_library('pipewire-module-profiler', + [ 'module-profiler.c', + 'module-profiler/protocol-native.c', ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + build_module_rt = build_machine.system() == 'linux' + if build_module_rt + pipewire_module_rt = shared_library('pipewire-module-rt', [ 'module-rt.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -152,7 +152,7 @@ summary({'rt': build_module_rt}, bool_yn: true, section: 'Optional Modules') + build_module_rtkit = dbus_dep.found() + if build_module_rtkit + pipewire_module_rtkit = shared_library('pipewire-module-rtkit', [ 'module-rtkit.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -164,7 +164,7 @@ summary({'rtkit': build_module_rtkit}, bool_yn: true, section: 'Optional Modules + build_module_portal = dbus_dep.found() + if build_module_portal + pipewire_module_portal = shared_library('pipewire-module-portal', [ 'module-portal.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -178,20 +178,20 @@ pipewire_module_client_device = shared_library('pipewire-module-client-device', + 'module-client-device/resource-device.c', + 'module-client-device/proxy-device.c', + 'module-client-device/protocol-native.c', ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_link_factory = shared_library('pipewire-module-link-factory', + [ 'module-link-factory.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_protocol_deps = [mathlib, dl_lib, pipewire_dep] +@@ -207,7 +207,7 @@ pipewire_module_protocol_native = shared_library('pipewire-module-protocol-nativ + 'module-protocol-native/protocol-native.c', + 'module-protocol-native/v0/protocol-native.c', + 'module-protocol-native/connection.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -281,7 +281,7 @@ endif + + pipewire_module_protocol_pulse = shared_library('pipewire-module-protocol-pulse', + pipewire_module_protocol_pulse_sources, +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -293,7 +293,7 @@ if build_module_pulse_tunnel + pipewire_module_pulse_tunnel = shared_library('pipewire-module-pulse-tunnel', + [ 'module-pulse-tunnel.c', + 'module-protocol-pulse/format.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -304,7 +304,7 @@ summary({'pulse-tunnel': build_module_pulse_tunnel}, bool_yn: true, section: 'Op + + pipewire_module_protocol_simple = shared_library('pipewire-module-protocol-simple', + [ 'module-protocol-simple.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -313,20 +313,20 @@ pipewire_module_protocol_simple = shared_library('pipewire-module-protocol-simpl + + pipewire_module_example_sink = shared_library('pipewire-module-example-sink', + [ 'module-example-sink.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : false, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_example_sink = shared_library('pipewire-module-example-source', + [ 'module-example-source.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : false, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_client_node = shared_library('pipewire-module-client-node', +@@ -338,12 +338,12 @@ pipewire_module_client_node = shared_library('pipewire-module-client-node', + 'module-client-node/v0/transport.c', + 'module-client-node/v0/protocol-native.c', + 'spa/spa-node.c', ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + link_with : pipewire_module_protocol_native, + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_metadata = shared_library('pipewire-module-metadata', +@@ -351,12 +351,12 @@ pipewire_module_metadata = shared_library('pipewire-module-metadata', + 'module-metadata/proxy-metadata.c', + 'module-metadata/metadata.c', + 'module-metadata/protocol-native.c'], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + link_with : pipewire_module_protocol_native, + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + test('pw-test-protocol-native', +@@ -364,8 +364,8 @@ test('pw-test-protocol-native', + [ 'module-protocol-native/test-connection.c', + 'module-protocol-native/connection.c' ], + c_args : libpipewire_c_args, +- include_directories : [configinc ], +- dependencies : [spa_dep, pipewire_dep], ++ include_directories : [configinc, spa_inc ], ++ dependencies : [pipewire_dep], + install : installed_tests_enabled, + install_dir : installed_tests_execdir, + ), +@@ -391,7 +391,7 @@ pipewire_module_adapter = shared_library('pipewire-module-adapter', + [ 'module-adapter.c', + 'module-adapter/adapter.c', + 'spa/spa-node.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -413,11 +413,11 @@ pipewire_module_session_manager = shared_library('pipewire-module-session-manage + 'module-session-manager/proxy-session-manager.c', + 'module-session-manager/session.c', + ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + build_module_zeroconf_discover = avahi_dep.found() +@@ -426,7 +426,7 @@ pipewire_module_zeroconf_discover = shared_library('pipewire-module-zeroconf-dis + [ 'module-zeroconf-discover.c', + 'module-protocol-pulse/format.c', + 'module-zeroconf-discover/avahi-poll.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -440,7 +440,7 @@ if build_module_raop_discover + pipewire_module_raop_discover = shared_library('pipewire-module-raop-discover', + [ 'module-raop-discover.c', + 'module-zeroconf-discover/avahi-poll.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -454,7 +454,7 @@ if build_module_raop + pipewire_module_raop_sink = shared_library('pipewire-module-raop-sink', + [ 'module-raop-sink.c', + 'module-raop/rtsp-client.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -470,7 +470,7 @@ build_module_roc = roc_lib.found() + if build_module_roc + pipewire_module_roc_sink = shared_library('pipewire-module-roc-sink', + [ 'module-roc-sink.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +@@ -479,7 +479,7 @@ pipewire_module_roc_sink = shared_library('pipewire-module-roc-sink', + + pipewire_module_roc_source = shared_library('pipewire-module-roc-source', + [ 'module-roc-source.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, + install_rpath: modules_install_dir, +diff --git a/src/modules/spa/meson.build b/src/modules/spa/meson.build +index 8332910b5..ab4fac18d 100644 +--- a/src/modules/spa/meson.build ++++ b/src/modules/spa/meson.build +@@ -1,31 +1,31 @@ + pipewire_module_spa_node = shared_library('pipewire-module-spa-node', + [ 'module-node.c', 'spa-node.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_spa_device = shared_library('pipewire-module-spa-device', + [ 'module-device.c', 'spa-device.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_spa_node_factory = shared_library('pipewire-module-spa-node-factory', + [ 'module-node-factory.c', 'spa-node.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) + + pipewire_module_spa_device_factory = shared_library('pipewire-module-spa-device-factory', + [ 'module-device-factory.c', 'spa-device.c' ], +- include_directories : [configinc], ++ include_directories : [configinc, spa_inc], + install : true, + install_dir : modules_install_dir, +- dependencies : [spa_dep, mathlib, dl_lib, pipewire_dep], ++ dependencies : [mathlib, dl_lib, pipewire_dep], + ) +diff --git a/src/pipewire/meson.build b/src/pipewire/meson.build +index 969f50b22..f66ce8746 100644 +--- a/src/pipewire/meson.build ++++ b/src/pipewire/meson.build +@@ -103,9 +103,9 @@ libpipewire = shared_library(pipewire_name, pipewire_sources, + version : libversion, + soversion : soversion, + c_args : libpipewire_c_args, +- include_directories : [pipewire_inc, configinc, includes_inc], ++ include_directories : [pipewire_inc, configinc, spa_inc, includes_inc], + install : true, +- dependencies : [spa_dep, dl_lib, mathlib, pthread_lib, libintl_dep, atomic_dep, ], ++ dependencies : [dl_lib, mathlib, pthread_lib, libintl_dep, atomic_dep, ], + ) + + pipewire_dep = declare_dependency(link_with : libpipewire, +diff --git a/test/meson.build b/test/meson.build +index 89f2bc2ec..87e211431 100644 +--- a/test/meson.build ++++ b/test/meson.build +@@ -19,6 +19,7 @@ pwtest_c_args = [ + ] + + pwtest_inc = [ ++ spa_inc, + pipewire_inc, + configinc, + includes_inc, +@@ -36,7 +37,6 @@ test('test-pwtest', + executable('test-pwtest', + 'test-pwtest.c', + include_directories: pwtest_inc, +- dependencies: [ spa_dep ], + link_with: pwtest_lib) + ) + +@@ -45,7 +45,6 @@ test('test-pwtest', + executable('test-example', + 'test-example.c', + include_directories: pwtest_inc, +- dependencies: [ spa_dep ], + link_with: pwtest_lib) + + test('test-pw-utils', +@@ -55,7 +54,6 @@ test('test-pw-utils', + 'test-map.c', + 'test-utils.c', + include_directories: pwtest_inc, +- dependencies: [ spa_dep ], + link_with: pwtest_lib) + ) + +@@ -63,7 +61,6 @@ test('test-lib', + executable('test-lib', + 'test-lib.c', + include_directories: pwtest_inc, +- dependencies: [ spa_dep ], + link_with: pwtest_lib) + ) + +@@ -71,7 +68,6 @@ test('test-client', + executable('test-client', + 'test-client.c', + include_directories: pwtest_inc, +- dependencies: [ spa_dep ], + link_with: pwtest_lib) + ) + +@@ -80,7 +76,7 @@ test('test-context', + 'test-context.c', + 'test-config.c', + include_directories: pwtest_inc, +- dependencies: [spa_dep, spa_support_dep, spa_dbus_dep], ++ dependencies: [spa_support_dep, spa_dbus_dep], + link_with: [pwtest_lib, + pipewire_module_protocol_native, + pipewire_module_client_node, +@@ -95,7 +91,7 @@ test('test-support', + 'test-support.c', + 'test-logger.c', + include_directories: pwtest_inc, +- dependencies: [spa_dep, systemd_dep, spa_support_dep, spa_journal_dep], ++ dependencies: [systemd_dep, spa_support_dep, spa_journal_dep], + link_with: [pwtest_lib]) + ) + test('test-spa', +@@ -107,7 +103,6 @@ test('test-spa', + 'test-spa-node.c', + 'test-spa-pod.c', + include_directories: pwtest_inc, +- dependencies: [ spa_dep ], + link_with: pwtest_lib) + ) + +-- +2.34.1 + diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-node-driver-make-the-timerfd-non-blocking.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-node-driver-make-the-timerfd-non-blocking.patch deleted file mode 100644 index 5a59d8676..000000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-node-driver-make-the-timerfd-non-blocking.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5aa9c953909b936ba215ebca77461a17160f59fb Mon Sep 17 00:00:00 2001 -From: George Kiagiadakis <george.kiagiadakis@collabora.com> -Date: Thu, 1 Jul 2021 11:50:40 +0300 -Subject: [PATCH] node-driver: make the timerfd non-blocking - -Relates to #1377 - -Upstream-Status: Backport [from master/0.3.32] -Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com> ---- - spa/plugins/support/node-driver.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/spa/plugins/support/node-driver.c b/spa/plugins/support/node-driver.c -index 34533d0d9..32964110d 100644 ---- a/spa/plugins/support/node-driver.c -+++ b/spa/plugins/support/node-driver.c -@@ -119,8 +119,11 @@ static void on_timeout(struct spa_source *source) - spa_log_trace(this->log, "timeout"); - - if (spa_system_timerfd_read(this->data_system, -- this->timer_source.fd, &expirations) < 0) -+ this->timer_source.fd, &expirations) < 0) { -+ if (errno == EAGAIN) -+ return; - perror("read timerfd"); -+ } - - nsec = this->next_time; - -@@ -349,7 +352,8 @@ impl_init(const struct spa_handle_factory *factory, - - this->timer_source.func = on_timeout; - this->timer_source.data = this; -- this->timer_source.fd = spa_system_timerfd_create(this->data_system, CLOCK_MONOTONIC, SPA_FD_CLOEXEC); -+ this->timer_source.fd = spa_system_timerfd_create(this->data_system, CLOCK_MONOTONIC, -+ SPA_FD_CLOEXEC | SPA_FD_NONBLOCK); - this->timer_source.mask = SPA_IO_IN; - this->timer_source.rmask = 0; - this->timerspec.it_value.tv_sec = 0; --- -2.30.2 - diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-Revert-meson-declare-spa_dep-and-override_dependency.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-Revert-meson-declare-spa_dep-and-override_dependency.patch new file mode 100644 index 000000000..47e4f3cc2 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-Revert-meson-declare-spa_dep-and-override_dependency.patch @@ -0,0 +1,83 @@ +From 83b7f6457e5dca3ee2145e35f361f1520d24be42 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Fri, 14 Jan 2022 18:30:44 +0530 +Subject: [PATCH 3/4] 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 | 13 +------------ + src/pipewire/meson.build | 10 ++-------- + 3 files changed, 4 insertions(+), 21 deletions(-) + +diff --git a/meson.build b/meson.build +index 67e697c15..476f722b7 100644 +--- a/meson.build ++++ b/meson.build +@@ -1,7 +1,7 @@ + project('pipewire', ['c' ], + version : '0.3.43', + license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ], +- meson_version : '>= 0.56.0', ++ meson_version : '>= 0.49.0', + default_options : [ 'warning_level=3', + 'c_std=gnu99', + 'cpp_std=c++17', +diff --git a/spa/meson.build b/spa/meson.build +index 2717b86d6..4e0f96727 100644 +--- a/spa/meson.build ++++ b/spa/meson.build +@@ -56,20 +56,9 @@ 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, + description : 'Simple Plugin API', + version : spaversion, +- extra_cflags : '-D_REENTRANT', +- variables : ['plugindir=${libdir}/@0@'.format(spa_name)], +- uninstalled_variables : ['plugindir=${prefix}/spa/plugins'], +-) +- +-meson.override_dependency('lib@0@'.format(spa_name), spa_dep) ++ extra_cflags : '-D_REENTRANT') +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.34.1 + diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-Revert-systemd-correctly-prefix-systemd-system-units.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-Revert-systemd-correctly-prefix-systemd-system-units.patch new file mode 100644 index 000000000..8b975d07f --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-Revert-systemd-correctly-prefix-systemd-system-units.patch @@ -0,0 +1,25 @@ +From 85d47ff146f1bda2f94d32b5b392024089c6f564 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Fri, 14 Jan 2022 20:51:09 +0530 +Subject: [PATCH 4/4] Revert "systemd: correctly prefix systemd system units" + +This reverts commit 5054b48c9de655b4b48f7c801cb305d9eb122520. + +Upstream-Status: Inappropriate[this systemd configuration is in not relvent to AGL] +--- + 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 7e1c223f8..4d942c1ab 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(pkgconfig: 'systemdsystemunitdir', pkgconfig_define : [ 'rootprefix', prefix]) ++systemd_system_services_dir = systemd.get_variable(pkgconfig: 'systemdsystemunitdir', pkgconfig_define : [ 'prefix', prefix]) + + install_data(sources : 'pipewire.socket', + install_dir : systemd_system_services_dir) +-- +2.34.1 + diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0005-pipewiresink-set-a-default-channel-map-if-the-number.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0005-pipewiresink-set-a-default-channel-map-if-the-number.patch new file mode 100644 index 000000000..3b1b2a490 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0005-pipewiresink-set-a-default-channel-map-if-the-number.patch @@ -0,0 +1,77 @@ +From ee2e6412d37d012fbf8d25bd37271a5ee92b3ad4 Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis <george.kiagiadakis@collabora.com> +Date: Thu, 3 Feb 2022 15:08:57 +0200 +Subject: [PATCH] pipewiresink: set a default channel map if the number of + channels is fixed + +This allows remaping streams using pipewiresink to match the channel layout +of the target device +Upstream-Status: Backport [from master/0.3.46] +--- + src/gst/gstpipewireformat.c | 42 ++++++++++++++++++++++++++++++++++++- + 1 file changed, 41 insertions(+), 1 deletion(-) + +diff --git a/src/gst/gstpipewireformat.c b/src/gst/gstpipewireformat.c +index dca90267c..c8ce7ba62 100644 +--- a/src/gst/gstpipewireformat.c ++++ b/src/gst/gstpipewireformat.c +@@ -445,6 +445,44 @@ handle_video_fields (ConvertData *d) + return TRUE; + } + ++static void ++set_default_channels (struct spa_pod_builder *b, uint32_t channels) ++{ ++ uint32_t position[SPA_AUDIO_MAX_CHANNELS] = {0}; ++ gboolean ok = TRUE; ++ ++ switch (channels) { ++ case 8: ++ position[6] = SPA_AUDIO_CHANNEL_SL; ++ position[7] = SPA_AUDIO_CHANNEL_SR; ++ SPA_FALLTHROUGH ++ case 6: ++ position[5] = SPA_AUDIO_CHANNEL_LFE; ++ SPA_FALLTHROUGH ++ case 5: ++ position[4] = SPA_AUDIO_CHANNEL_FC; ++ SPA_FALLTHROUGH ++ case 4: ++ position[2] = SPA_AUDIO_CHANNEL_RL; ++ position[3] = SPA_AUDIO_CHANNEL_RR; ++ SPA_FALLTHROUGH ++ case 2: ++ position[0] = SPA_AUDIO_CHANNEL_FL; ++ position[1] = SPA_AUDIO_CHANNEL_FR; ++ break; ++ case 1: ++ position[0] = SPA_AUDIO_CHANNEL_MONO; ++ break; ++ default: ++ ok = FALSE; ++ break; ++ } ++ ++ if (ok) ++ spa_pod_builder_add (b, SPA_FORMAT_AUDIO_position, ++ SPA_POD_Array(sizeof(uint32_t), SPA_TYPE_Id, channels, position), 0); ++} ++ + static gboolean + handle_audio_fields (ConvertData *d) + { +@@ -538,8 +576,10 @@ handle_audio_fields (ConvertData *d) + } + if (i > 0) { + choice = spa_pod_builder_pop(&d->b, &f); +- if (i == 1) ++ if (i == 1) { + choice->body.type = SPA_CHOICE_None; ++ set_default_channels (&d->b, v); ++ } + } + } + return TRUE; +-- +2.34.1 + diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.30.bb b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bb index b1a1aebc0..f1d4b3863 100644 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.30.bb +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bb @@ -20,7 +20,8 @@ SECTION = "multimedia" DEPENDS = "dbus" -SRCREV = "e857856be7b64d562cdcc01c43933218a68b225e" +# v0.3.43 +SRCREV = "07724b7aefa8a23a016727b53f4e426ecd63d248" SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" S = "${WORKDIR}/git" @@ -29,9 +30,9 @@ inherit meson pkgconfig systemd manpages gettext useradd USERADD_PACKAGES = "${PN}" -GROUPADD_PARAM_${PN} = "--system pipewire" +GROUPADD_PARAM:${PN} = "--system pipewire" -USERADD_PARAM_${PN} = "--system --home / --no-create-home \ +USERADD_PARAM:${PN} = "--system --home / --no-create-home \ --comment 'PipeWire multimedia daemon' \ --gid pipewire --groups audio,video \ pipewire" @@ -52,6 +53,11 @@ USERADD_PARAM_${PN} = "--system --home / --no-create-home \ # instance does. # # manpage generation requires xmltoman, which is not available. +# +# Dont build any session managers along with pipewire +# wireplumber is the session manger used in AGL and it will +# be build in a different recipe +# EXTRA_OEMESON += " \ -Daudiotestsrc=enabled \ -Devl=disabled \ @@ -63,6 +69,7 @@ EXTRA_OEMESON += " \ -Dvulkan=disabled \ -Dlibcamera=disabled \ -Dman=disabled \ + -Dsession-managers=[] \ " PACKAGECONFIG ??= "\ @@ -88,10 +95,11 @@ PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled ,-D PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" +PACKAGECONFIG[pipewire-v4l2] = "-Dpipewire-v4l2=enabled -Dpipewire-v4l2=${libdir}/${PW_MODULE_SUBDIR}/v4l2,-Dpipewire-v4l2=disabled,v4l2" -PACKAGESPLITFUNCS_prepend = " split_dynamic_packages " -PACKAGESPLITFUNCS_append = " set_dynamic_metapkg_rdepends " -PACKAGESPLITFUNCS_append = " fixup_dynamic_pkg_licenses " +PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " +PACKAGESPLITFUNCS:append = " fixup_dynamic_pkg_licenses " SPA_SUBDIR = "spa-0.2" PW_MODULE_SUBDIR = "pipewire-0.3" @@ -113,18 +121,18 @@ python fixup_dynamic_pkg_licenses () { for pkg in packages: # we manually assign the LICENSES here to cover all packages (even dynamically created ones) - d.setVar("LICENSE_" + pkg ,"MIT") + d.setVar("LICENSE:" + pkg ,"MIT") # next handle special cases - # ==> LICENSE_${PN}-spa-plugins-alsa = "LGPL-2.1-or-later" + # ==> LICENSE:${PN}-spa-plugins-alsa = "LGPL-2.1-or-later" if "pipewire-spa-plugins-alsa" in pkg: - d.setVar("LICENSE_pipewire-spa-plugins-alsa", "LGPL-2.1-or-later") - # ==> LICENSE_${PN}-alsa-card-profile = "LGPL-2.1-or-later" + d.setVar("LICENSE:pipewire-spa-plugins-alsa", "LGPL-2.1-or-later") + # ==> LICENSE:${PN}-alsa-card-profile = "LGPL-2.1-or-later" if "pipewire-alsa-card-profile" in pkg: - d.setVar("LICENSE_pipewire-alsa-card-profile", "LGPL-2.1-or-later") - # ==> LICENSE_${PN}-jack = "GPL-2.0-only" + d.setVar("LICENSE:pipewire-alsa-card-profile", "LGPL-2.1-or-later") + # ==> LICENSE:${PN}-jack = "GPL-2.0-only" if "pipewire-jack" in pkg: - d.setVar("LICENSE_pipewire-jack", "GPL-2.0-only") + d.setVar("LICENSE:pipewire-jack", "GPL-2.0-only") } python split_dynamic_packages () { @@ -154,11 +162,11 @@ python set_dynamic_metapkg_rdepends () { pw_module_pn = base_pn + '-modules' pw_module_metapkg = pw_module_pn + '-meta' - d.setVar('ALLOW_EMPTY_' + spa_metapkg, "1") - d.setVar('FILES_' + spa_metapkg, "") + d.setVar('ALLOW_EMPTY:' + spa_metapkg, "1") + d.setVar('FILES:' + spa_metapkg, "") - d.setVar('ALLOW_EMPTY_' + pw_module_metapkg, "1") - d.setVar('FILES_' + pw_module_metapkg, "") + d.setVar('ALLOW_EMPTY:' + pw_module_metapkg, "1") + d.setVar('FILES:' + pw_module_metapkg, "") blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] spa_metapkg_rdepends = [] @@ -193,11 +201,11 @@ python set_dynamic_metapkg_rdepends () { if is_pw_module_pkg: pw_module_metapkg_rdepends.append(pkg) - d.setVar('RDEPENDS_' + spa_metapkg, ' '.join(spa_metapkg_rdepends)) - d.setVar('DESCRIPTION_' + spa_metapkg, spa_pn + ' meta package') + d.setVar('RDEPENDS:' + spa_metapkg, ' '.join(spa_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + spa_metapkg, spa_pn + ' meta package') - d.setVar('RDEPENDS_' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) - d.setVar('DESCRIPTION_' + pw_module_metapkg, pw_module_pn + ' meta package') + d.setVar('RDEPENDS:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package') } PACKAGES =+ "\ @@ -206,7 +214,7 @@ PACKAGES =+ "\ ${PN}-pulse \ ${PN}-alsa \ ${PN}-jack \ - ${PN}-media-session \ + ${PN}-v4l2 \ ${PN}-spa-plugins \ ${PN}-spa-plugins-meta \ ${PN}-spa-tools \ @@ -218,95 +226,91 @@ PACKAGES =+ "\ PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" -SYSTEMD_SERVICE_${PN} = "pipewire.service" -CONFFILES_${PN} += "${datadir}/pipewire/pipewire.conf" -FILES_${PN} = " \ +SYSTEMD_SERVICE:${PN} = "pipewire.service" +CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" +FILES:${PN} = " \ ${datadir}/pipewire/pipewire.conf \ ${datadir}/pipewire/filter-chain \ ${systemd_user_unitdir}/pipewire.* \ ${bindir}/pipewire \ " -FILES_${PN}-dev += " \ +FILES:${PN}-dev += " \ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ " -CONFFILES_libpipewire += "${datadir}/pipewire/client.conf" -FILES_libpipewire = " \ +CONFFILES:libpipewire += "${datadir}/pipewire/client.conf" +FILES:libpipewire = " \ ${datadir}/pipewire/client.conf \ ${libdir}/libpipewire-*.so.* \ " # Add the bare minimum modules and plugins required to be able # to use libpipewire. Without these, it is essentially unusable. -RDEPENDS_libpipewire += " \ +RDEPENDS:libpipewire += " \ ${PN}-modules-client-node \ ${PN}-modules-protocol-native \ ${PN}-spa-plugins-support \ " -FILES_${PN}-tools = " \ +FILES:${PN}-tools = " \ ${bindir}/pw-* \ " # This is a shim daemon that is intended to be used as a # drop-in PulseAudio replacement, providing a pulseaudio-compatible # socket that can be used by applications that use libpulse. -CONFFILES_${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf" +CONFFILES:${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf" -FILES_${PN}-pulse = " \ +FILES:${PN}-pulse = " \ ${datadir}/pipewire/pipewire-pulse.conf \ ${systemd_user_unitdir}/pipewire-pulse.* \ ${bindir}/pipewire-pulse \ " -RDEPENDS_${PN}-pulse += " \ +RDEPENDS:${PN}-pulse += " \ ${PN}-modules-protocol-pulse \ " # alsa plugin to redirect audio to pipewire -FILES_${PN}-alsa = "\ +FILES:${PN}-alsa = "\ ${libdir}/alsa-lib/* \ ${datadir}/alsa/alsa.conf.d/* \ " +#lib to emulate v4l2 system calls on top of PipeWire +FILES:${PN}-v4l2 = "\ + ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \ +" + # jack drop-in libraries to redirect audio to pipewire -CONFFILES_${PN}-jack = "${datadir}/pipewire/jack.conf" -FILES_${PN}-jack = "\ +CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf" +FILES:${PN}-jack = "\ ${datadir}/pipewire/jack.conf \ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ " - -# Example session manager. Not intended for use in production. -CONFFILES_${PN}-media-session = "${datadir}/pipewire/media-session.d/*" -SYSTEMD_SERVICE_${PN}-media-session = "pipewire-media-session.service" -FILES_${PN}-media-session = " \ - ${bindir}/pipewire-media-session \ - ${datadir}/pipewire/media-session.d/* \ - ${systemd_system_unitdir}/pipewire-media-session.service \ -" -RPROVIDES_${PN}-media-session = "virtual/pipewire-sessionmanager" - # Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES_${PN}-spa-plugins = "" -RRECOMMENDS_${PN}-spa-plugins += "${PN}-spa-plugins-meta" +FILES:${PN}-spa-plugins-bluez5 += " \ + ${datadir}/${SPA_SUBDIR}/bluez5/bluez-hardware.conf \ +" +RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta" -FILES_${PN}-spa-tools = " \ +FILES:${PN}-spa-tools = " \ ${bindir}/spa-* \ " # Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES_${PN}-modules = "" -RRECOMMENDS_${PN}-modules += "${PN}-modules-meta" +FILES:${PN}-modules = "" +RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" -CONFFILES_${PN}-modules-rtkit = "${datadir}/pipewire/client-rt.conf" -FILES_${PN}-modules-rtkit += " \ +CONFFILES:${PN}-modules-rtkit = "${datadir}/pipewire/client-rt.conf" +FILES:${PN}-modules-rtkit += " \ ${datadir}/pipewire/client-rt.conf \ " -FILES_${PN}-alsa-card-profile = " \ +FILES:${PN}-alsa-card-profile = " \ ${datadir}/alsa-card-profile/* \ ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ " -FILES_gstreamer1.0-pipewire = " \ +FILES:gstreamer1.0-pipewire = " \ ${libdir}/gstreamer-1.0/* \ " diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.30.bbappend b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend index 85c9edab3..8d3df64cb 100644 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.30.bbappend +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend @@ -7,12 +7,14 @@ PACKAGECONFIG = "\ " SRC_URI += "\ - file://0001-alsa-plugin-allow-specifying-a-media.role-on-the-vir.patch \ - file://0001-null-sink-make-the-timerfd-non-blocking.patch \ - file://0002-node-driver-make-the-timerfd-non-blocking.patch \ + file://0001-Revert-treewide-meson.build-use-project_-build-sourc.patch \ + file://0002-Revert-treewide-meson.build-use-dependency-variable-.patch \ + file://0003-Revert-meson-declare-spa_dep-and-override_dependency.patch \ + file://0004-Revert-systemd-correctly-prefix-systemd-system-units.patch \ + file://0005-pipewiresink-set-a-default-channel-map-if-the-number.patch \ " -do_install_append() { +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 @@ -22,6 +24,6 @@ do_install_append() { done } -FILES_${PN}-alsa_append = "\ +FILES:${PN}-alsa:append = "\ ${sysconfdir}/alsa/conf.d/* \ " diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/10-default-policy.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/10-default-policy.lua index f71b31316..333f520fc 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/10-default-policy.lua +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/10-default-policy.lua @@ -4,7 +4,10 @@ default_policy = {} default_policy.endpoints = { -- [endpoint name] = { endpoint properties } - + ["endpoint.capture"] = { + ["media.class"] = "Audio/Source", + ["role"] = "Capture", + }, ["endpoint.multimedia"] = { ["media.class"] = "Audio/Sink", ["role"] = "Multimedia", @@ -43,11 +46,23 @@ default_policy.policy = { ["move"] = false, -- moves session items when metadata target.node changes ["follow"] = true, -- moves session items to the default device when it has changed + -- Set to 'true' to disable channel splitting & merging on nodes and enable + -- passthrough of audio in the same format as the format of the device. + -- Note that this breaks JACK support; it is generally not recommended + ["audio.no-dsp"] = false, + -- how much to lower the volume of lower priority streams when ducking -- note that this is a linear volume modifier (not cubic as in the mixer) ["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, @@ -110,7 +125,7 @@ function default_policy.enable() load_script("static-endpoints.lua", default_policy.endpoints) -- Create session items for nodes that appear in the graph - load_script("create-item.lua") + load_script("create-item.lua", default_policy.policy) -- Link nodes to each other to make media flow in the graph load_script("policy-node.lua", default_policy.policy) diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-bluez-monitor.lua b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-bluez-monitor.lua index fab9ac0e4..c3bc587aa 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-bluez-monitor.lua +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl/30-bluez-monitor.lua @@ -3,13 +3,15 @@ bluez_monitor = {} bluez_monitor.properties = { - -- Enable mSBC support, disabled by default. Be aware that - -- mSBC is not expected to work on all headset + adapter combinations. - -- This can be overloaded for a specific device and native backend - -- in rules section. - --["bluez5.msbc-support"] = false, + -- These features do not work on all headsets, so they are enabled + -- by default based on the hardware database. They can also be + -- forced on/off for all devices by the following options: - --["bluez5.sbc-xq-support"] = true, + --["bluez5.enable-sbc-xq"] = true, + --["bluez5.enable-msbc"] = true, + --["bluez5.enable-hw-volume"] = true, + + -- See bluez-hardware.conf for the hardware database. -- Enabled headset roles (default: [ hsp_hs hfp_ag ]), this -- property only applies to native backend. Currently some headsets @@ -23,7 +25,11 @@ bluez_monitor.properties = { ["bluez5.headset-roles"] = "[ hsp_hs hsp_ag hfp_hf hfp_ag ]", -- Enabled A2DP codecs (default: all). - --["bluez5.codecs"] = "[ sbc aac ldac aptx aptx_hd ]", + --["bluez5.codecs"] = "[ sbc sbc_xq aac ldac aptx aptx_hd aptx_ll aptx_ll_duplex faststream faststream_duplex ]", + + -- HFP/HSP backend (default: native). + -- Available values: any, none, hsphfpd, ofono, native + ["bluez5.hfphsp-backend"] = "ofono", -- Properties for the A2DP codec configuration --["bluez5.default.rate"] = 48000, @@ -50,9 +56,6 @@ bluez_monitor.rules = { --["bluez5.auto-connect"] = "[ hfp_hf hsp_hs a2dp_sink hfp_ag hsp_ag a2dp_source ]", ["bluez5.auto-connect"] = "[ hfp_hf hsp_hs a2dp_sink ]", - -- Overload mSBC support for native backend and a specific device. - --["bluez5.msbc-support"] = false, - -- Hardware volume control (default: [ hfp_ag hsp_ag a2dp_source ]) --["bluez5.hw-volume"] = "[ hfp_hf hsp_hs a2dp_sink hfp_ag hsp_ag a2dp_source ]", 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 2d70fc5e1..2b77df7f2 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber-config-agl_git.bb @@ -18,7 +18,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}" do_configure[noexec] = "1" do_compile[noexec] = "1" -do_install_append() { +do_install:append() { config_dir="${D}${sysconfdir}/wireplumber/config.lua.d/" dbus_config_dir="${D}${sysconfdir}/dbus-1/system.d/" @@ -35,10 +35,10 @@ do_install_append() { install -m 0644 ${WORKDIR}/wireplumber-bluetooth.conf ${dbus_config_dir} } -FILES_${PN} += "\ +FILES:${PN} += "\ ${sysconfdir}/wireplumber/* \ " -CONFFILES_${PN} += "\ +CONFFILES:${PN} += "\ ${sysconfdir}/wireplumber/* \ " -RPROVIDES_${PN} += "virtual/wireplumber-config" +RPROVIDES:${PN} += "virtual/wireplumber-config" 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 new file mode 100644 index 000000000..658b89946 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0001-Revert-wp-uninstalled-build-this-script-with-the-mes.patch @@ -0,0 +1,78 @@ +From 78cde5e91ba5d9aa7bfe918ce6bad3b4af30c796 Mon Sep 17 00:00:00 2001 +From: Ashok Sidipotu <ashok.sidipotu@collabora.com> +Date: Fri, 14 Jan 2022 20:14:56 +0530 +Subject: [PATCH] Revert "wp-uninstalled: build this script with the meson dirs + filled in" + +This reverts commit 52aaf96179584292f493c4b329bc2c409e6d3dee. + +Upstream-Status: Inappropriate[meson version dependent] +--- + meson.build | 31 ------------------------------- + wp-uninstalled.sh | 11 ++--------- + 2 files changed, 2 insertions(+), 40 deletions(-) + +diff --git a/meson.build b/meson.build +index 1f9c9d8..7e02b29 100644 +--- a/meson.build ++++ b/meson.build +@@ -120,34 +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@'], +-) +- +-if meson.version().version_compare('>= 0.58') +- builddir = meson.project_build_root() +- srcdir = meson.project_source_root() +- +- devenv = environment({ +- 'WIREPLUMBER_MODULE_DIR': builddir / 'modules', +- 'WIREPLUMBER_CONFIG_DIR': srcdir / 'src' / 'config', +- 'WIREPLUMBER_DATA_DIR': srcdir / 'src', +- }) +- +- meson.add_devenv(devenv) +-endif +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 new file mode 100644 index 000000000..7a24d1554 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber/0002-Revert-tests-add-pipewire-env-variables-when-running.patch @@ -0,0 +1,138 @@ +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. + +Upstream-Status: Inappropriate[meson version dependent] +--- + 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 8daff3042..bb2380de1 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb @@ -14,9 +14,16 @@ DEPENDS = "glib-2.0 glib-2.0-native pipewire lua" SRC_URI = "\ git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \ " -SRCREV = "4af7e2bd68c4862bb707b62edf7557df56dad10f" +# v0.4.7 +SRCREV = "afb177b5e0840d54dc41d02920702c3c9580ce02" -PV = "0.4.0" +# 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" S = "${WORKDIR}/git" WPAPI="0.4" @@ -35,10 +42,10 @@ PACKAGECONFIG = "\ PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=true -Dsystemd-user-service=false,-Dsystemd=disabled -Dsystemd-system-service=false -Dsystemd-user-service=false,systemd" -do_configure_prepend() { +do_configure:prepend() { # relax meson version requirement # we only need 0.54 when building with -Dsystem-lua=false - sed "s/meson_version : '>= 0.54.0'/meson_version : '>= 0.51.0'/" ${S}/meson.build > ${S}/tmp.build + 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 } @@ -47,8 +54,8 @@ PACKAGES =+ "\ ${PN}-config \ " -SYSTEMD_SERVICE_${PN} = "wireplumber.service" -FILES_${PN} = "\ +SYSTEMD_SERVICE:${PN} = "wireplumber.service" +FILES:${PN} = "\ ${bindir}/wireplumber \ ${bindir}/wpctl \ ${bindir}/wpexec \ @@ -56,17 +63,17 @@ FILES_${PN} = "\ ${datadir}/wireplumber/* \ ${systemd_system_unitdir}/* \ " -RPROVIDES_${PN} += "virtual/pipewire-sessionmanager" -RDEPENDS_${PN} += "virtual/wireplumber-config" +RPROVIDES:${PN} += "virtual/pipewire-sessionmanager" +RDEPENDS:${PN} += "virtual/wireplumber-config" -FILES_lib${PN}-${WPAPI} = "\ +FILES:lib${PN}-${WPAPI} = "\ ${libdir}/libwireplumber-${WPAPI}.so.* \ " -FILES_${PN}-config += "\ +FILES:${PN}-config += "\ ${sysconfdir}/wireplumber/* \ " -CONFFILES_${PN}-config += "\ +CONFFILES:${PN}-config += "\ ${sysconfdir}/wireplumber/* \ " -RPROVIDES_${PN}-config += "virtual/wireplumber-config" +RPROVIDES:${PN}-config += "virtual/wireplumber-config" diff --git a/meta-pipewire/scripts/run-yocto-check-layer.sh b/meta-pipewire/scripts/run-yocto-check-layer.sh index 15b4de0e1..894153917 100755 --- a/meta-pipewire/scripts/run-yocto-check-layer.sh +++ b/meta-pipewire/scripts/run-yocto-check-layer.sh @@ -20,8 +20,8 @@ AGL_EXTRA_IMAGE_FSTYPES ?= "" # important settings imported from poky-agl.conf # we do not import -DISTRO_FEATURES_append = " systemd smack" -DISTRO_FEATURES_BACKFILL_CONSIDERED_append = " sysvinit" +DISTRO_FEATURES:append = " systemd smack" +DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit" VIRTUAL-RUNTIME_init_manager = "systemd" EOF |