From b4d2fd5d4aca191c7960e099c1dcf02fdab46cec Mon Sep 17 00:00:00 2001 From: Ashok Sidipotu Date: Fri, 14 Jan 2022 21:08:56 +0530 Subject: pipewire: update to pw 0.3.43 and wp 0.4.7 Change-Id: I3e478f5e1215d128f0d76ffb2b18c278d90de266 Signed-off-by: Ashok Sidipotu Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/27090 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Reviewed-by: Georgios Kiagiadakis Reviewed-by: Jan-Simon Moeller --- .../pipewire/pipewire_0.3.40.bbappend | 35 - .../pipewire/pipewire_0.3.43.bbappend | 35 + ...n-declare-spa_dep-and-override_dependency.patch | 80 -- ...wide-meson.build-use-project_-build-sourc.patch | 241 +++++ ...wide-meson.build-use-dependency-variable-.patch | 1129 ++++++++++++++++++++ ...n-declare-spa_dep-and-override_dependency.patch | 83 ++ ...emd-correctly-prefix-systemd-system-units.patch | 25 + .../recipes-multimedia/pipewire/pipewire_0.3.40.bb | 316 ------ .../pipewire/pipewire_0.3.40.bbappend | 25 - .../recipes-multimedia/pipewire/pipewire_0.3.43.bb | 316 ++++++ .../pipewire/pipewire_0.3.43.bbappend | 28 + ...ninstalled-build-this-script-with-the-mes.patch | 27 +- ...s-add-pipewire-env-variables-when-running.patch | 2 + .../wireplumber/wireplumber_git.bb | 4 +- 14 files changed, 1882 insertions(+), 464 deletions(-) delete mode 100644 meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend create mode 100644 meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend delete mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch create mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-treewide-meson.build-use-project_-build-sourc.patch create mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire/0002-Revert-treewide-meson.build-use-dependency-variable-.patch create mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire/0003-Revert-meson-declare-spa_dep-and-override_dependency.patch create mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire/0004-Revert-systemd-correctly-prefix-systemd-system-units.patch delete mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bb delete mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend create mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bb create mode 100644 meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend deleted file mode 100644 index b6086ea1c..000000000 --- a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend +++ /dev/null @@ -1,35 +0,0 @@ -FILESEXTRAPATHS:prepend := "${THISDIR}/pipewire:" - -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() { - # 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 - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - # remove the original unit files shipped by pipewire - rm -rf ${D}${systemd_system_unitdir}/pipewire.* - - # install our own system-level templates - mkdir -p ${D}${systemd_system_unitdir}/ - install -m 0644 ${WORKDIR}/pipewire.service ${D}${systemd_system_unitdir}/pipewire.service - install -m 0644 ${WORKDIR}/pipewire.socket ${D}${systemd_system_unitdir}/pipewire.socket - - # install smack rules - mkdir -p ${D}${sysconfdir}/smack/accesses.d - install -m 0644 ${WORKDIR}/smack-pipewire ${D}${sysconfdir}/smack/accesses.d/pipewire - fi -} - -FILES:${PN}:append = "\ - ${sysconfdir}/smack/accesses.d/* \ - ${sysconfdir}/pipewire/pipewire.conf \ -" diff --git a/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend new file mode 100644 index 000000000..b6086ea1c --- /dev/null +++ b/meta-pipewire/dynamic-layers/meta-app-framework/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend @@ -0,0 +1,35 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/pipewire:" + +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() { + # 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 + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + # remove the original unit files shipped by pipewire + rm -rf ${D}${systemd_system_unitdir}/pipewire.* + + # install our own system-level templates + mkdir -p ${D}${systemd_system_unitdir}/ + install -m 0644 ${WORKDIR}/pipewire.service ${D}${systemd_system_unitdir}/pipewire.service + install -m 0644 ${WORKDIR}/pipewire.socket ${D}${systemd_system_unitdir}/pipewire.socket + + # install smack rules + mkdir -p ${D}${sysconfdir}/smack/accesses.d + install -m 0644 ${WORKDIR}/smack-pipewire ${D}${sysconfdir}/smack/accesses.d/pipewire + fi +} + +FILES:${PN}:append = "\ + ${sysconfdir}/smack/accesses.d/* \ + ${sysconfdir}/pipewire/pipewire.conf \ +" diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch deleted file mode 100644 index 4488acc65..000000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-Revert-meson-declare-spa_dep-and-override_dependency.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 70e750804a700b06f62f91411d487b88e7c85fe5 Mon Sep 17 00:00:00 2001 -From: Ashok Sidipotu -Date: Fri, 26 Nov 2021 06:18:04 +0530 -Subject: [PATCH] Revert "meson: declare spa_dep and override_dependency() for - spa and pipewire" - -This reverts commit 7ab5c35cadc075bcdf44031f1f7d95352cf9a13b. - -Upstream-Status: Inappropriate[meson version dependent] - ---- - meson.build | 2 +- - spa/meson.build | 7 ------- - src/pipewire/meson.build | 10 ++-------- - 3 files changed, 3 insertions(+), 16 deletions(-) - -diff --git a/meson.build b/meson.build -index 4a572bd42..4af179c87 100644 ---- a/meson.build -+++ b/meson.build -@@ -1,7 +1,7 @@ - project('pipewire', ['c' ], - version : '0.3.40', - license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ], -- meson_version : '>= 0.54.0', -+ meson_version : '>= 0.49.0', - default_options : [ 'warning_level=3', - 'c_std=gnu99', - 'b_pie=true', -diff --git a/spa/meson.build b/spa/meson.build -index 483536b54..74ee5a737 100644 ---- a/spa/meson.build -+++ b/spa/meson.build -@@ -63,12 +63,6 @@ if not get_option('examples').disabled() - subdir('examples') - endif - --spa_dep = declare_dependency( -- include_directories : [spa_inc], -- version : spaversion, -- variables : { 'plugindir' : meson.current_build_dir() / 'plugins' } --) -- - pkgconfig.generate(filebase : 'lib@0@'.format(spa_name), - name : 'libspa', - subdirs : spa_name, -@@ -79,4 +73,3 @@ pkgconfig.generate(filebase : 'lib@0@'.format(spa_name), - uninstalled_variables : ['plugindir=${prefix}/spa/plugins'], - ) - --meson.override_dependency('lib@0@'.format(spa_name), spa_dep) -diff --git a/src/pipewire/meson.build b/src/pipewire/meson.build -index f66ce8746..5cfaba3f9 100644 ---- a/src/pipewire/meson.build -+++ b/src/pipewire/meson.build -@@ -109,12 +109,8 @@ libpipewire = shared_library(pipewire_name, pipewire_sources, - ) - - pipewire_dep = declare_dependency(link_with : libpipewire, -- include_directories : [pipewire_inc, configinc], -- dependencies : [pthread_lib, atomic_dep, spa_dep], -- variables : { -- 'moduledir' : meson.current_build_dir() / '..' / 'modules', -- 'confdatadir' : meson.current_build_dir() / '..' / 'daemon', -- } -+ include_directories : [pipewire_inc, configinc, spa_inc], -+ dependencies : [pthread_lib, atomic_dep, ], - ) - - pkgconfig.generate(libpipewire, -@@ -132,6 +128,4 @@ pkgconfig.generate(libpipewire, - ], - ) - --meson.override_dependency('lib@0@'.format(pipewire_name), pipewire_dep) -- - subdir('extensions') --- -2.33.1 - diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0001-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 +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/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 +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/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 +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 +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_0.3.40.bb b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bb deleted file mode 100644 index edab8db4c..000000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bb +++ /dev/null @@ -1,316 +0,0 @@ -# This recipe was written by Carlos Rafael Giani -# for meta-oe -# -# The intention is to keep this synced with meta-oe and remove it when we -# can depend on meta-oe to provide this recipe for us -# -# AGL-specific overrides and configuration should go in the .bbappend file -# -SUMMARY = "Multimedia processing server for Linux" -DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices" -HOMEPAGE = "https://pipewire.org/" -BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" -LICENSE = "MIT & GPL-2.0-only & LGPL-2.1-or-later" - -LIC_FILES_CHKSUM = " \ - file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \ - file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ -" -SECTION = "multimedia" - -DEPENDS = "dbus" - -# v0.3.40 -SRCREV = "7afd80052b7c49754a13c9ab49c368f95b60e0a7" -SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" - -S = "${WORKDIR}/git" - -inherit meson pkgconfig systemd manpages gettext useradd - -USERADD_PACKAGES = "${PN}" - -GROUPADD_PARAM:${PN} = "--system pipewire" - -USERADD_PARAM:${PN} = "--system --home / --no-create-home \ - --comment 'PipeWire multimedia daemon' \ - --gid pipewire --groups audio,video \ - pipewire" - -# For "EVL", look up https://evlproject.org/ . It involves -# a specially prepared kernel, and is currently unavailable -# in Yocto. -# -# FFmpeg and Vulkan aren't really supported - at the current -# stage (version 0.3.22), these are just experiments, not -# actual features. -# -# libcamera support currently does not build successfully. -# -# systemd user service files are disabled because per-user -# PipeWire instances aren't really something that makes -# much sense in an embedded environment. A system-wide -# 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 \ - -Dsystemd-user-service=disabled \ - -Dtests=disabled \ - -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ - -Dvideotestsrc=enabled \ - -Dffmpeg=disabled \ - -Dvulkan=disabled \ - -Dlibcamera=disabled \ - -Dman=disabled \ - -Dsession-managers=[] \ -" - -PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \ - gstreamer jack v4l2 \ -" - -# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, -# since "jack" imports libjack, and "pipewire-jack" generates -# libjack.so* files, thus colliding with the libpack package. This -# is why these two are marked in their respective packageconfigs -# as being in conflict. - -PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" -PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" -PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native" -PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" -PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" -PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" -PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled ,-Dsystemd=disabled -Dsystemd-system-service=disabled,systemd" -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 " - -SPA_SUBDIR = "spa-0.2" -PW_MODULE_SUBDIR = "pipewire-0.3" - -remove_unused_installed_files() { - # jack.conf is used by pipewire-jack (not the JACK SPA plugin). - # Remove it if pipewire-jack is not built to avoid creating the - # pipewire-jack package. - if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then - rm -f "${D}${datadir}/pipewire/jack.conf" - fi -} - -do_install[postfuncs] += "remove_unused_installed_files" - -python fixup_dynamic_pkg_licenses () { - #dynamic packages inherit currently whatever is specified in LICENSE (thus multiple) - packages = (d.getVar('PACKAGES') or "").split() - - for pkg in packages: - # we manually assign the LICENSES here to cover all packages (even dynamically created ones) - d.setVar("LICENSE:" + pkg ,"MIT") - - # next handle special cases - # ==> 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" - 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" - if "pipewire-jack" in pkg: - d.setVar("LICENSE:pipewire-jack", "GPL-2.0-only") -} - -python split_dynamic_packages () { - # Create packages for each SPA plugin. These plugins are located - # in individual subdirectories, so a recursive search is needed. - spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}') - do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True) - - # Create packages for each PipeWire module. - pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}') - do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False) -} - -python set_dynamic_metapkg_rdepends () { - import os - import oe.utils - - # Go through all generated SPA plugin and PipeWire module packages - # (excluding the main package and the -meta package itself) and - # add them to the -meta package as RDEPENDS. - - base_pn = d.getVar('PN') - - spa_pn = base_pn + '-spa-plugins' - spa_metapkg = spa_pn + '-meta' - - 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:' + pw_module_metapkg, "1") - d.setVar('FILES:' + pw_module_metapkg, "") - - blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] - spa_metapkg_rdepends = [] - pw_module_metapkg_rdepends = [] - pkgdest = d.getVar('PKGDEST') - - for pkg in oe.utils.packages_filter_out_system(d): - if pkg in blacklist: - continue - - is_spa_pkg = pkg.startswith(spa_pn) - is_pw_module_pkg = pkg.startswith(pw_module_pn) - if not is_spa_pkg and not is_pw_module_pkg: - continue - - if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends: - continue - - # See if the package is empty by looking at the contents of its - # PKGDEST subdirectory. If this subdirectory is empty, then then - # package is empty as well. Empty packages do not get added to - # the meta package's RDEPENDS. - pkgdir = os.path.join(pkgdest, pkg) - if os.path.exists(pkgdir): - dir_contents = os.listdir(pkgdir) or [] - else: - dir_contents = [] - is_empty = len(dir_contents) == 0 - if not is_empty: - if is_spa_pkg: - spa_metapkg_rdepends.append(pkg) - 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:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) - d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package') -} - -PACKAGES =+ "\ - libpipewire \ - ${PN}-tools \ - ${PN}-pulse \ - ${PN}-alsa \ - ${PN}-jack \ - ${PN}-v4l2 \ - ${PN}-spa-plugins \ - ${PN}-spa-plugins-meta \ - ${PN}-spa-tools \ - ${PN}-modules \ - ${PN}-modules-meta \ - ${PN}-alsa-card-profile \ - gstreamer1.0-pipewire \ -" - -PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" - -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 += " \ - ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ -" - -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 += " \ - ${PN}-modules-client-node \ - ${PN}-modules-protocol-native \ - ${PN}-spa-plugins-support \ -" - -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" - -FILES:${PN}-pulse = " \ - ${datadir}/pipewire/pipewire-pulse.conf \ - ${systemd_user_unitdir}/pipewire-pulse.* \ - ${bindir}/pipewire-pulse \ -" -RDEPENDS:${PN}-pulse += " \ - ${PN}-modules-protocol-pulse \ -" - -# alsa plugin to redirect audio to pipewire -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 = "\ - ${datadir}/pipewire/jack.conf \ - ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ -" -# Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES:${PN}-spa-plugins-bluez5 += " \ - ${datadir}/${SPA_SUBDIR}/bluez5/bluez-hardware.conf \ -" -RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta" - -FILES:${PN}-spa-tools = " \ - ${bindir}/spa-* \ -" - -# Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES:${PN}-modules = "" -RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" - -CONFFILES:${PN}-modules-rtkit = "${datadir}/pipewire/client-rt.conf" -FILES:${PN}-modules-rtkit += " \ - ${datadir}/pipewire/client-rt.conf \ - " - -FILES:${PN}-alsa-card-profile = " \ - ${datadir}/alsa-card-profile/* \ - ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ -" - -FILES:gstreamer1.0-pipewire = " \ - ${libdir}/gstreamer-1.0/* \ -" diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend deleted file mode 100644 index dfe73083b..000000000 --- a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.40.bbappend +++ /dev/null @@ -1,25 +0,0 @@ -PACKAGECONFIG = "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa pipewire-alsa', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'sndfile', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ - gstreamer v4l2 \ -" - -SRC_URI += "\ - file://0001-Revert-meson-declare-spa_dep-and-override_dependency.patch \ -" - -do_install:append() { - # install symlinks to alsalib configuration files - for i in 50-pipewire.conf 99-pipewire-default.conf; do - if [ -f ${D}${datadir}/alsa/alsa.conf.d/${i} ]; then - mkdir -p ${D}${sysconfdir}/alsa/conf.d - ln -s ${datadir}/alsa/alsa.conf.d/${i} ${D}${sysconfdir}/alsa/conf.d/${i} - fi - done -} - -FILES:${PN}-alsa:append = "\ - ${sysconfdir}/alsa/conf.d/* \ -" diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bb b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bb new file mode 100644 index 000000000..f1d4b3863 --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bb @@ -0,0 +1,316 @@ +# This recipe was written by Carlos Rafael Giani +# for meta-oe +# +# The intention is to keep this synced with meta-oe and remove it when we +# can depend on meta-oe to provide this recipe for us +# +# AGL-specific overrides and configuration should go in the .bbappend file +# +SUMMARY = "Multimedia processing server for Linux" +DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices" +HOMEPAGE = "https://pipewire.org/" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" +LICENSE = "MIT & GPL-2.0-only & LGPL-2.1-or-later" + +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \ + file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ +" +SECTION = "multimedia" + +DEPENDS = "dbus" + +# v0.3.43 +SRCREV = "07724b7aefa8a23a016727b53f4e426ecd63d248" +SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd manpages gettext useradd + +USERADD_PACKAGES = "${PN}" + +GROUPADD_PARAM:${PN} = "--system pipewire" + +USERADD_PARAM:${PN} = "--system --home / --no-create-home \ + --comment 'PipeWire multimedia daemon' \ + --gid pipewire --groups audio,video \ + pipewire" + +# For "EVL", look up https://evlproject.org/ . It involves +# a specially prepared kernel, and is currently unavailable +# in Yocto. +# +# FFmpeg and Vulkan aren't really supported - at the current +# stage (version 0.3.22), these are just experiments, not +# actual features. +# +# libcamera support currently does not build successfully. +# +# systemd user service files are disabled because per-user +# PipeWire instances aren't really something that makes +# much sense in an embedded environment. A system-wide +# 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 \ + -Dsystemd-user-service=disabled \ + -Dtests=disabled \ + -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ + -Dvideotestsrc=enabled \ + -Dffmpeg=disabled \ + -Dvulkan=disabled \ + -Dlibcamera=disabled \ + -Dman=disabled \ + -Dsession-managers=[] \ +" + +PACKAGECONFIG ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \ + gstreamer jack v4l2 \ +" + +# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, +# since "jack" imports libjack, and "pipewire-jack" generates +# libjack.so* files, thus colliding with the libpack package. This +# is why these two are marked in their respective packageconfigs +# as being in conflict. + +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" +PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" +PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" +PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" +PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" +PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled ,-Dsystemd=disabled -Dsystemd-system-service=disabled,systemd" +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 " + +SPA_SUBDIR = "spa-0.2" +PW_MODULE_SUBDIR = "pipewire-0.3" + +remove_unused_installed_files() { + # jack.conf is used by pipewire-jack (not the JACK SPA plugin). + # Remove it if pipewire-jack is not built to avoid creating the + # pipewire-jack package. + if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then + rm -f "${D}${datadir}/pipewire/jack.conf" + fi +} + +do_install[postfuncs] += "remove_unused_installed_files" + +python fixup_dynamic_pkg_licenses () { + #dynamic packages inherit currently whatever is specified in LICENSE (thus multiple) + packages = (d.getVar('PACKAGES') or "").split() + + for pkg in packages: + # we manually assign the LICENSES here to cover all packages (even dynamically created ones) + d.setVar("LICENSE:" + pkg ,"MIT") + + # next handle special cases + # ==> 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" + 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" + if "pipewire-jack" in pkg: + d.setVar("LICENSE:pipewire-jack", "GPL-2.0-only") +} + +python split_dynamic_packages () { + # Create packages for each SPA plugin. These plugins are located + # in individual subdirectories, so a recursive search is needed. + spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}') + do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True) + + # Create packages for each PipeWire module. + pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}') + do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False) +} + +python set_dynamic_metapkg_rdepends () { + import os + import oe.utils + + # Go through all generated SPA plugin and PipeWire module packages + # (excluding the main package and the -meta package itself) and + # add them to the -meta package as RDEPENDS. + + base_pn = d.getVar('PN') + + spa_pn = base_pn + '-spa-plugins' + spa_metapkg = spa_pn + '-meta' + + 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:' + pw_module_metapkg, "1") + d.setVar('FILES:' + pw_module_metapkg, "") + + blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] + spa_metapkg_rdepends = [] + pw_module_metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in blacklist: + continue + + is_spa_pkg = pkg.startswith(spa_pn) + is_pw_module_pkg = pkg.startswith(pw_module_pn) + if not is_spa_pkg and not is_pw_module_pkg: + continue + + if pkg in spa_metapkg_rdepends or pkg in pw_module_metapkg_rdepends: + continue + + # See if the package is empty by looking at the contents of its + # PKGDEST subdirectory. If this subdirectory is empty, then then + # package is empty as well. Empty packages do not get added to + # the meta package's RDEPENDS. + pkgdir = os.path.join(pkgdest, pkg) + if os.path.exists(pkgdir): + dir_contents = os.listdir(pkgdir) or [] + else: + dir_contents = [] + is_empty = len(dir_contents) == 0 + if not is_empty: + if is_spa_pkg: + spa_metapkg_rdepends.append(pkg) + 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:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package') +} + +PACKAGES =+ "\ + libpipewire \ + ${PN}-tools \ + ${PN}-pulse \ + ${PN}-alsa \ + ${PN}-jack \ + ${PN}-v4l2 \ + ${PN}-spa-plugins \ + ${PN}-spa-plugins-meta \ + ${PN}-spa-tools \ + ${PN}-modules \ + ${PN}-modules-meta \ + ${PN}-alsa-card-profile \ + gstreamer1.0-pipewire \ +" + +PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" + +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 += " \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ +" + +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 += " \ + ${PN}-modules-client-node \ + ${PN}-modules-protocol-native \ + ${PN}-spa-plugins-support \ +" + +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" + +FILES:${PN}-pulse = " \ + ${datadir}/pipewire/pipewire-pulse.conf \ + ${systemd_user_unitdir}/pipewire-pulse.* \ + ${bindir}/pipewire-pulse \ +" +RDEPENDS:${PN}-pulse += " \ + ${PN}-modules-protocol-pulse \ +" + +# alsa plugin to redirect audio to pipewire +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 = "\ + ${datadir}/pipewire/jack.conf \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ +" +# Dynamic packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-spa-plugins-bluez5 += " \ + ${datadir}/${SPA_SUBDIR}/bluez5/bluez-hardware.conf \ +" +RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta" + +FILES:${PN}-spa-tools = " \ + ${bindir}/spa-* \ +" + +# Dynamic packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-modules = "" +RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" + +CONFFILES:${PN}-modules-rtkit = "${datadir}/pipewire/client-rt.conf" +FILES:${PN}-modules-rtkit += " \ + ${datadir}/pipewire/client-rt.conf \ + " + +FILES:${PN}-alsa-card-profile = " \ + ${datadir}/alsa-card-profile/* \ + ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ +" + +FILES:gstreamer1.0-pipewire = " \ + ${libdir}/gstreamer-1.0/* \ +" diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend new file mode 100644 index 000000000..e2bc0d2bb --- /dev/null +++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire_0.3.43.bbappend @@ -0,0 +1,28 @@ +PACKAGECONFIG = "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluez5', 'bluez', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa pipewire-alsa', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'agl-devel', 'sndfile', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + gstreamer v4l2 \ +" + +SRC_URI += "\ + 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 \ +" + +do_install:append() { + # install symlinks to alsalib configuration files + for i in 50-pipewire.conf 99-pipewire-default.conf; do + if [ -f ${D}${datadir}/alsa/alsa.conf.d/${i} ]; then + mkdir -p ${D}${sysconfdir}/alsa/conf.d + ln -s ${datadir}/alsa/alsa.conf.d/${i} ${D}${sysconfdir}/alsa/conf.d/${i} + fi + done +} + +FILES:${PN}-alsa:append = "\ + ${sysconfdir}/alsa/conf.d/* \ +" 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 index 37b43571d..658b89946 100644 --- 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 @@ -1,20 +1,22 @@ -From 1d39b68d88e967739d6beb3c9be7f4644b5d4077 Mon Sep 17 00:00:00 2001 +From 78cde5e91ba5d9aa7bfe918ce6bad3b4af30c796 Mon Sep 17 00:00:00 2001 From: Ashok Sidipotu -Date: Thu, 2 Dec 2021 16:23:09 +0530 +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 | 18 ------------------ + meson.build | 31 ------------------------------- wp-uninstalled.sh | 11 ++--------- - 2 files changed, 2 insertions(+), 27 deletions(-) + 2 files changed, 2 insertions(+), 40 deletions(-) diff --git a/meson.build b/meson.build -index 1affbc1..f2ca16c 100644 +index 1f9c9d8..7e02b29 100644 --- a/meson.build +++ b/meson.build -@@ -120,21 +120,3 @@ subdir('src') +@@ -120,34 +120,3 @@ subdir('src') if get_option('tests') subdir('tests') endif @@ -36,6 +38,19 @@ index 1affbc1..f2ca16c 100644 - 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 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 index 07ddb746b..7a24d1554 100644 --- 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 @@ -5,6 +5,8 @@ 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 ++++++--- diff --git a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb index 7df199e01..bb2380de1 100644 --- a/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb +++ b/meta-pipewire/recipes-multimedia/wireplumber/wireplumber_git.bb @@ -14,8 +14,8 @@ DEPENDS = "glib-2.0 glib-2.0-native pipewire lua" SRC_URI = "\ git://gitlab.freedesktop.org/pipewire/wireplumber.git;protocol=https;branch=master \ " -# v0.4.5 -SRCREV = "3946457a7942a179c0f61c60de8cb8fc643391dd" +# v0.4.7 +SRCREV = "afb177b5e0840d54dc41d02920702c3c9580ce02" # patches to be able to compile with lower version of meson that is available in AGL. SRC_URI += "\ -- cgit 1.2.3-korg