Accepting request 949617 from home:alarrosa:branches:multimedia:libs

- Add patch to reduce the meson requirement so we can build
  pipewire with Leap 15.3. This will be dropped as soon as
  Leap 15.4 is released or if it becomes too hard to maintain
  (whatever happens before):
  * reduce-meson-dependency.patch

OBS-URL: https://build.opensuse.org/request/show/949617
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=43
This commit is contained in:
Antonio Larrosa 2022-01-28 09:07:29 +00:00 committed by Git OBS Bridge
parent ed2d247f21
commit d614ce6a1b
3 changed files with 311 additions and 1 deletions

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Thu Jan 27 14:04:28 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
- Add patch to reduce the meson requirement so we can build
pipewire with Leap 15.3. This will be dropped as soon as
Leap 15.4 is released or if it becomes too hard to maintain
(whatever happens before):
* reduce-meson-dependency.patch
-------------------------------------------------------------------
Thu Jan 27 10:45:39 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>

View File

@ -61,6 +61,7 @@ Group: Development/Libraries/C and C++
URL: https://pipewire.org/
Source0: %{name}-%{version}.tar.xz
Source99: baselibs.conf
Patch0: reduce-meson-dependency.patch
BuildRequires: docutils
BuildRequires: doxygen
BuildRequires: fdupes
@ -70,7 +71,11 @@ BuildRequires: gcc9-c++
%endif
BuildRequires: gcc-c++
BuildRequires: graphviz
%if 0%{?sle_version} == 150300
BuildRequires: meson >= 0.54.0
%else
BuildRequires: meson >= 0.59.0
%endif
BuildRequires: pkgconfig
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(alsa) >= 1.1.7
@ -320,7 +325,10 @@ This package provides a PulseAudio implementation based on PipeWire
%lang_package
%prep
%autosetup -p1
%autosetup -N
%if 0%{?sle_version} == 150300
%patch0 -p1
%endif
%build
%if %{pkg_vcmp gcc < 8}
@ -333,6 +341,7 @@ export CXX=g++-9
-Dgstreamer=enabled \
-Dffmpeg=enabled \
-Dsystemd=enabled \
-Dsystemd-user-unit-dir=%{_userunitdir} \
-Dgstreamer-device-provider=disabled \
-Droc=disabled \
%if %{with_vulkan}

View File

@ -0,0 +1,292 @@
Index: pipewire-0.3.44/meson.build
===================================================================
--- pipewire-0.3.44.orig/meson.build
+++ pipewire-0.3.44/meson.build
@@ -1,7 +1,7 @@
project('pipewire', ['c' ],
version : '0.3.44',
license : [ 'MIT', 'LGPL-2.1-or-later', 'GPL-2.0-only' ],
- meson_version : '>= 0.59.0',
+ meson_version : '>= 0.54.0',
default_options : [ 'warning_level=3',
'c_std=gnu99',
'cpp_std=c++17',
@@ -304,8 +304,8 @@ includes_inc = include_directories('incl
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('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')
@@ -509,20 +509,20 @@ 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)]
)
devenv = environment()
-builddir = meson.project_build_root()
-srcdir = meson.project_source_root()
+builddir = meson.build_root()
+srcdir = meson.source_root()
-devenv.set('PIPEWIRE_CONFIG_DIR', pipewire_dep.get_variable('confdatadir'))
-devenv.set('PIPEWIRE_MODULE_DIR', pipewire_dep.get_variable('moduledir'))
+devenv.set('PIPEWIRE_CONFIG_DIR', pipewire_dep.get_variable(internal: 'confdatadir'))
+devenv.set('PIPEWIRE_MODULE_DIR', pipewire_dep.get_variable(internal: 'moduledir'))
-devenv.set('SPA_PLUGIN_DIR', spa_dep.get_variable('plugindir'))
-devenv.set('SPA_DATA_DIR', spa_dep.get_variable('datadir'))
+devenv.set('SPA_PLUGIN_DIR', spa_dep.get_variable(internal: 'plugindir'))
+devenv.set('SPA_DATA_DIR', spa_dep.get_variable(internal: 'datadir'))
devenv.set('GST_PLUGIN_PATH', builddir / 'src'/ 'gst')
@@ -534,4 +534,6 @@ devenv.set('LD_LIBRARY_PATH', builddir /
devenv.set('PW_UNINSTALLED', '1')
-meson.add_devenv(devenv)
+if meson.version().version_compare('>=0.58.0')
+ meson.add_devenv(devenv)
+endif
Index: pipewire-0.3.44/spa/plugins/audioconvert/meson.build
===================================================================
--- pipewire-0.3.44.orig/spa/plugins/audioconvert/meson.build
+++ pipewire-0.3.44/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('plugindir')),
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
])
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('plugindir')),
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
])
if installed_tests_enabled
Index: pipewire-0.3.44/spa/tests/meson.build
===================================================================
--- pipewire-0.3.44.orig/spa/tests/meson.build
+++ pipewire-0.3.44/spa/tests/meson.build
@@ -5,7 +5,7 @@ find = find_program('find', required: fa
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',
@@ -41,7 +41,7 @@ foreach a : benchmark_apps
install_dir : installed_tests_execdir,
),
env : [
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
+ 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable(internal: 'plugindir')),
]
)
Index: pipewire-0.3.44/src/daemon/meson.build
===================================================================
--- pipewire-0.3.44.orig/src/daemon/meson.build
+++ pipewire-0.3.44/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')
@@ -106,7 +106,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(
Index: pipewire-0.3.44/src/daemon/systemd/user/meson.build
===================================================================
--- pipewire-0.3.44.orig/src/daemon/systemd/user/meson.build
+++ pipewire-0.3.44/src/daemon/systemd/user/meson.build
@@ -1,4 +1,4 @@
-systemd_user_services_dir = systemd.get_variable('systemduserunitdir', pkgconfig_define : [ 'prefix', prefix])
+#systemd_user_services_dir = systemd.get_variable('systemduserunitdir', pkgconfig_define : [ 'prefix', prefix])
if get_option('systemd-user-unit-dir') != ''
systemd_user_services_dir = get_option('systemd-user-unit-dir')
endif
Index: pipewire-0.3.44/src/modules/meson.build
===================================================================
--- pipewire-0.3.44.orig/src/modules/meson.build
+++ pipewire-0.3.44/src/modules/meson.build
@@ -368,9 +368,9 @@ test('pw-test-protocol-native',
install_dir : installed_tests_execdir,
),
env : [
- 'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
- 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable('confdatadir')),
- 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable('moduledir')),
+ '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')),
]
)
Index: pipewire-0.3.44/src/tests/meson.build
===================================================================
--- pipewire-0.3.44.orig/src/tests/meson.build
+++ pipewire-0.3.44/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('plugindir')),
- 'PIPEWIRE_CONFIG_DIR=@0@'.format(pipewire_dep.get_variable('confdatadir')),
- 'PIPEWIRE_MODULE_DIR=@0@'.format(pipewire_dep.get_variable('moduledir')),
+ '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')),
])
if installed_tests_enabled
Index: pipewire-0.3.44/test/meson.build
===================================================================
--- pipewire-0.3.44.orig/test/meson.build
+++ pipewire-0.3.44/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 = [
Index: pipewire-0.3.44/doc/meson.build
===================================================================
--- pipewire-0.3.44.orig/doc/meson.build
+++ pipewire-0.3.44/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')
@@ -48,35 +48,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)
@@ -116,13 +116,25 @@ input_dirs += [ 'doc/examples.dox' ]
man_doxygen = []
man_subpages = []
+manpages = [
+ 'pipewire.1.rst.in',
+ 'pipewire-pulse.1.rst.in',
+ 'pipewire.conf.5.rst.in',
+ 'pw-cat.1.rst.in',
+ 'pw-cli.1.rst.in',
+ 'pw-dot.1.rst.in',
+ 'pw-metadata.1.rst.in',
+ 'pw-mididump.1.rst.in',
+ 'pw-mon.1.rst.in',
+ 'pw-profiler.1.rst.in',
+]
foreach m : manpages
manconf = configuration_data()
- pagename = 'page_man_' + m.split('.rst.in').get(0).replace('.', '_').replace('-', '_')
+ pagename = 'page_man_' + m.split('.rst.in').get(0).underscorify()
filename = m.split('.rst.in').get(0) + '.dox'
manconf.set('pagename', pagename)
- manconf.set('title', m.split('.rst.in').get(0).replace('.1','').replace('.5',''))
- manconf.set('filename', meson.project_source_root() / 'man' / m)
+ manconf.set('title', m.split('.rst.in').get(0).strip('.15'))
+ manconf.set('filename', meson.source_root() / 'man' / m)
manfile = configure_file(input: 'manpage.dox.in',
output: filename,
configuration: manconf)
@@ -141,8 +153,8 @@ input_dirs += [ 'doc/pipewire-tools.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',