Sync from SUSE:SLFO:Main wireplumber revision 460fe165f65fbf95f7f4b2508530553c
This commit is contained in:
commit
86336815f2
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
19
_service
Normal file
19
_service
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<services>
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="revision">refs/tags/0.4.17</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<!--
|
||||
<param name="revision">master</param>
|
||||
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
|
||||
-->
|
||||
</service>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">xz</param>
|
||||
</service>
|
||||
<service name="set_version" mode="manual" />
|
||||
</services>
|
28
fix-bsc1219411.patch
Normal file
28
fix-bsc1219411.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From: Antonio Larrosa <alarrosa@suse.com>
|
||||
Subject: Fix bsc#1219411
|
||||
|
||||
wireplumber enables the bluetooth support in pipewire by default but this
|
||||
clashes with the bluetooth support in pulseaudio if audio is disabled in
|
||||
pipewire so this patch disables bluetooth support unless the
|
||||
90-enable-all.lua file is installed and we now move that file into the
|
||||
wireplumber-audio package.
|
||||
|
||||
Index: wireplumber-0.4.17/src/config/bluetooth.lua.d/50-bluez-config.lua
|
||||
===================================================================
|
||||
--- wireplumber-0.4.17.orig/src/config/bluetooth.lua.d/50-bluez-config.lua
|
||||
+++ wireplumber-0.4.17/src/config/bluetooth.lua.d/50-bluez-config.lua
|
||||
@@ -1,4 +1,4 @@
|
||||
-bluez_monitor.enabled = true
|
||||
+bluez_monitor.enabled = false
|
||||
|
||||
bluez_monitor.properties = {
|
||||
-- Enabled roles (default: [ a2dp_sink a2dp_source bap_sink bap_source hfp_hf hfp_ag ])
|
||||
Index: wireplumber-0.4.17/src/config/bluetooth.lua.d/90-enable-all.lua
|
||||
===================================================================
|
||||
--- wireplumber-0.4.17.orig/src/config/bluetooth.lua.d/90-enable-all.lua
|
||||
+++ wireplumber-0.4.17/src/config/bluetooth.lua.d/90-enable-all.lua
|
||||
@@ -1,2 +1,4 @@
|
||||
+bluez_monitor.enabled = true
|
||||
+
|
||||
bluez_monitor.enable()
|
||||
bluez_midi_monitor.enable()
|
48
split-config-file.py
Normal file
48
split-config-file.py
Normal file
@ -0,0 +1,48 @@
|
||||
#!/usr/bin/python3
|
||||
import hashlib
|
||||
import sys
|
||||
|
||||
def sha256_from_data(data):
|
||||
hash_sha256 = hashlib.sha256()
|
||||
hash_sha256.update(data)
|
||||
return hash_sha256.hexdigest()
|
||||
|
||||
contents = open('90-enable-all.lua', 'r', encoding='utf-8').read()
|
||||
|
||||
sha256sum = sha256_from_data(contents.encode('utf-8'))
|
||||
expected_sha256sum = '86888e9d3fcc952c41e778ab4edae4a0eb1f9f51b62ae0772befa9f0fdef611d'
|
||||
|
||||
if sha256sum != expected_sha256sum:
|
||||
print('The script has to be updated for new changes in 90-enable-all.lua')
|
||||
print(f'File sha256sum: {sha256sum}')
|
||||
print(f'expected sha256sum: {expected_sha256sum}')
|
||||
sys.exit(1)
|
||||
|
||||
content_sections = contents.split('\n\n')
|
||||
|
||||
sections = ['enable-metadata',
|
||||
'default-access-policy',
|
||||
'load-devices',
|
||||
'track-user-choices-devices',
|
||||
'track-user-choices-streams',
|
||||
'link-nodes-by-roles',
|
||||
'suspend-idle-nodes',
|
||||
'allow-loading-objects-on-demand']
|
||||
|
||||
if len(content_sections) != len(sections):
|
||||
print('The script has to be updated for new changes in 90-enable-all.lua')
|
||||
sys.exit(1)
|
||||
|
||||
for i, (content, sec) in enumerate(zip(content_sections, sections)):
|
||||
if sec == 'load-devices':
|
||||
lines = content.split('\n')
|
||||
open(f'90-{i}-1-enable-alsa.lua', 'w',
|
||||
encoding='utf-8').write(lines[1])
|
||||
open(f'90-{i}-2-enable-v4l2.lua', 'w',
|
||||
encoding='utf-8').write(lines[2])
|
||||
open(f'90-{i}-3-enable-libcamera.lua', 'w',
|
||||
encoding='utf-8').write(lines[3])
|
||||
continue
|
||||
|
||||
filename = f'90-{i}-{sec}.lua'
|
||||
open(filename, 'w', encoding='utf-8').write(content)
|
BIN
wireplumber-0.4.17.obscpio
(Stored with Git LFS)
Normal file
BIN
wireplumber-0.4.17.obscpio
(Stored with Git LFS)
Normal file
Binary file not shown.
1669
wireplumber.changes
Normal file
1669
wireplumber.changes
Normal file
File diff suppressed because it is too large
Load Diff
4
wireplumber.obsinfo
Normal file
4
wireplumber.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
name: wireplumber
|
||||
version: 0.4.17
|
||||
mtime: 1701626719
|
||||
commit: d3eb77b292655cef333a8f4cab4e861415bc37c2
|
263
wireplumber.spec
Normal file
263
wireplumber.spec
Normal file
@ -0,0 +1,263 @@
|
||||
#
|
||||
# spec file for package wireplumber
|
||||
#
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%define pipewire_minimum_version 0.3.68
|
||||
%define apiver 0.4
|
||||
%define apiver_str 0_4
|
||||
%define sover 0
|
||||
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
|
||||
Name: wireplumber
|
||||
Version: 0.4.17
|
||||
Release: 0
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
License: MIT
|
||||
Group: Development/Libraries/C and C++
|
||||
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
|
||||
Source0: wireplumber-%{version}.tar.xz
|
||||
Source1: split-config-file.py
|
||||
# FIX-PATCH-SUSE fix-bsc1219411.patch alarrosa@suse.com -- Enable bluetooth only when audio support is enabled
|
||||
Patch0: fix-bsc1219411.patch
|
||||
# docs
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: graphviz
|
||||
# /docs
|
||||
BuildRequires: cmake
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: meson >= 0.59.0
|
||||
BuildRequires: pipewire >= %{pipewire_minimum_version}
|
||||
BuildRequires: pipewire-spa-plugins-0_2 >= %{pipewire_minimum_version}
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-lxml
|
||||
BuildRequires: xmltoman
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(gio-unix-2.0)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.62.0
|
||||
BuildRequires: pkgconfig(gmodule-2.0)
|
||||
BuildRequires: pkgconfig(gobject-2.0) >= 2.62
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_minimum_version}
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(lua)
|
||||
BuildRequires: pkgconfig(systemd)
|
||||
#!BuildIgnore: pipewire-session-manager
|
||||
# Setup ALSA devices if PipeWire handles PulseAudio or JACK connections.
|
||||
Requires: (%{name}-audio if (pipewire-pulseaudio or pipewire-jack))
|
||||
Requires: pipewire >= %{pipewire_minimum_version}
|
||||
Provides: pipewire-session-manager
|
||||
%if 0%{?suse_version} <= 1500
|
||||
BuildRequires: gcc9
|
||||
BuildRequires: gcc9-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
%{?systemd_ordering}
|
||||
|
||||
|
||||
%description
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
a GObject-based high-level library that wraps PipeWire's API,
|
||||
providing convenience for writing the daemon's modules as well as
|
||||
external tools for managing PipeWire.
|
||||
|
||||
%lang_package
|
||||
|
||||
%package audio
|
||||
Summary: Session / policy manager implementation for PipeWire (audio support)
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
Requires: %{name} = %{version}
|
||||
Recommends: pipewire-jack
|
||||
Recommends: pipewire-pulseaudio
|
||||
Conflicts: pulseaudio
|
||||
BuildArch: noarch
|
||||
|
||||
%description audio
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
a GObject-based high-level library that wraps PipeWire's API,
|
||||
providing convenience for writing the daemon's modules as well as
|
||||
external tools for managing PipeWire.
|
||||
|
||||
This package enables the use of alsa devices in PipeWire.
|
||||
|
||||
%package devel
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description devel
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
a GObject-based high-level library that wraps PipeWire's API,
|
||||
providing convenience for writing the daemon's modules as well as
|
||||
external tools for managing PipeWire.
|
||||
|
||||
This package provides all the necessary files for development with WirePlumber
|
||||
|
||||
%package -n %{libwireplumber}
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n %{libwireplumber}
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
a GObject-based high-level library that wraps PipeWire's API,
|
||||
providing convenience for writing the daemon's modules as well as
|
||||
external tools for managing PipeWire.
|
||||
|
||||
This package provides the wireplumber shared library.
|
||||
|
||||
%package -n typelib-1_0-Wp-%{apiver_str}
|
||||
Summary: Introspection bindings for libwireplumber
|
||||
Group: System/Libraries
|
||||
|
||||
%description -n typelib-1_0-Wp-%{apiver_str}
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
a GObject-based high-level library that wraps PipeWire's API,
|
||||
providing convenience for writing the daemon's modules as well as
|
||||
external tools for managing PipeWire.
|
||||
|
||||
This package provides the GObject Introspection bindings for
|
||||
the wireplumber shared library.
|
||||
|
||||
%package zsh-completion
|
||||
Summary: Wireplumber zsh completion
|
||||
Group: System/Shells
|
||||
Requires: %{name} = %{version}
|
||||
Requires: zsh
|
||||
Supplements: (wireplumber and zsh)
|
||||
|
||||
%description zsh-completion
|
||||
Optional dependency offering zsh completion for various wpctl parameters.
|
||||
|
||||
%prep
|
||||
%autosetup -p1
|
||||
|
||||
pushd src/config/main.lua.d
|
||||
python3 %{SOURCE1}
|
||||
rm 90-enable-all.lua
|
||||
popd
|
||||
|
||||
%build
|
||||
%if %{pkg_vcmp gcc < 8}
|
||||
export CC=gcc-9
|
||||
export CXX=g++-9
|
||||
%endif
|
||||
%meson -Ddoc=disabled \
|
||||
-Dsystem-lua=true \
|
||||
-Delogind=disabled
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html
|
||||
%find_lang %{name} %{?no_lang_C}
|
||||
|
||||
%ifnarch %ix86 ppc64
|
||||
%check
|
||||
export XDG_RUNTIME_DIR=/tmp
|
||||
%meson_test
|
||||
%endif
|
||||
|
||||
%pre
|
||||
%systemd_user_pre wireplumber.service
|
||||
|
||||
%post
|
||||
%systemd_user_post wireplumber.service
|
||||
|
||||
%if 0%{?suse_version} <= 1500
|
||||
# If the pipewire.socket user unit is not enabled and the workaround
|
||||
# for boo#1186561 has never been executed, we need to execute it now
|
||||
if [ ! -L %{_sysconfdir}/systemd/user/pipewire.service.wants/wireplumber.service \
|
||||
-a ! -f %{_localstatedir}/lib/pipewire/wireplumber_post_workaround \
|
||||
-a -x %{_bindir}/systemctl ]; then
|
||||
for service in wireplumber.service ; do
|
||||
%{_bindir}/systemctl --global preset "$service" || :
|
||||
done
|
||||
|
||||
mkdir -p %{_localstatedir}/lib/pipewire
|
||||
cat << EOF > %{_localstatedir}/lib/pipewire/wireplumber_post_workaround
|
||||
# The existence of this file means that the wireplumber user services were
|
||||
# enabled at least once. Please don't remove this file as that would
|
||||
# make the services to be enabled again in the next package update.
|
||||
#
|
||||
# Check the following bugs for more information:
|
||||
# https://bugzilla.opensuse.org/show_bug.cgi?id=1200485
|
||||
EOF
|
||||
fi
|
||||
%endif
|
||||
|
||||
|
||||
%preun
|
||||
%systemd_user_preun wireplumber.service
|
||||
|
||||
%postun
|
||||
%systemd_user_postun wireplumber.service
|
||||
|
||||
%post -n %{libwireplumber} -p /sbin/ldconfig
|
||||
%postun -n %{libwireplumber} -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%{_bindir}/wireplumber
|
||||
%{_bindir}/wpctl
|
||||
%{_bindir}/wpexec
|
||||
%dir %{_libdir}/wireplumber-%{apiver}
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-nodes-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-nodes.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-profile.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-file-monitor-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-logind.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-lua-scripting.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-metadata.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-mixer-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-portal-permissionstore.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-reserve-device.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-audio-adapter.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-audio-endpoint.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-node.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-standard-link.so
|
||||
%{_userunitdir}/wireplumber.service
|
||||
%{_userunitdir}/wireplumber@.service
|
||||
%{_datadir}/wireplumber
|
||||
%exclude %{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
||||
%exclude %{_datadir}/wireplumber/bluetooth.lua.d/90-enable-all.lua
|
||||
|
||||
%files lang -f %{name}.lang
|
||||
|
||||
%files audio
|
||||
%{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
||||
%{_datadir}/wireplumber/bluetooth.lua.d/90-enable-all.lua
|
||||
|
||||
%files devel
|
||||
%{_includedir}/wireplumber-%{apiver}
|
||||
%{_libdir}/libwireplumber-%{apiver}.so
|
||||
%{_libdir}/pkgconfig/wireplumber-%{apiver}.pc
|
||||
%{_datadir}/gir-1.0/Wp-%{apiver}.gir
|
||||
|
||||
%files -n typelib-1_0-Wp-%{apiver_str}
|
||||
%{_libdir}/girepository-1.0/Wp-%{apiver}.typelib
|
||||
|
||||
%files -n %{libwireplumber}
|
||||
%{_libdir}/libwireplumber-%{apiver}.so.%{sover}
|
||||
%{_libdir}/libwireplumber-%{apiver}.so.%{sover}.*
|
||||
|
||||
%files zsh-completion
|
||||
%dir %{_datarootdir}/zsh
|
||||
%dir %{_datarootdir}/zsh/site-functions/
|
||||
%{_datarootdir}/zsh/site-functions/_wpctl
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user