2021-06-24 14:17:18 +02:00
#
# spec file for package wireplumber
#
2022-01-10 10:47:11 +01:00
# Copyright (c) 2022 SUSE LLC
2021-06-24 14:17:18 +02:00
#
# 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/
#
2024-03-12 17:38:06 +01:00
%define pipewire_minimum_version 1.0.2
2024-02-20 09:29:47 +01:00
%define apiver 0.5
%define apiver_str 0_5
2021-06-24 14:17:18 +02:00
%define sover 0
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
Name : wireplumber
Accepting request 1159099 from home:alarrosa:branches:multimedia:libs
- Update to version 0.5.0:
* Changes:
- Bumped the minimum required version of PipeWire to 1.0.2,
because we make use of the 'api.bluez5.internal' property of
the BlueZ monitor (!613)
- Improved the naming of Bluetooth nodes when the
auto-switching loopback node is present (!614)
- Updated the documentation on "settings", the Bluetooth
monitor, the Access configuration, the file search locations
and added a document on how to modify the configuration file
(#595, !616)
* Fixes:
- Fixed checking for available routes when selecting the
default node (!609)
- Fixed an issue that was causing an infinite loop storing
routes in the state file (!610)
- Fixed the interpretation of boolean values in the alsa
monitor rules (#586, !611)
- Fixes a Lua crash when we have 2 smart filters, one with a
target and one without (!612)
- Fixed an issue where the default nodes would not be updated
when the currently selected default node became unavailable
(#588, !615)
- Fixed an issue that would cause the Props (volume, mute, etc)
of loopbacks and other filter nodes to not be restored at
startup (#577, !617)
- Fixed how some constants were represented in the
gobject-introspection file, mostly by converting them from
defines to enums (#540, #591)
- Fixed an issue using WirePlumber headers in other projects
OBS-URL: https://build.opensuse.org/request/show/1159099
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=72
2024-03-18 17:49:10 +01:00
Version : 0.5.0
2021-06-24 14:17:18 +02:00
Release : 0
Summary : Session / policy manager implementation for PipeWire
License : MIT
Group : Development/Libraries/C and C++
URL : https://gitlab.freedesktop.org/pipewire/wireplumber
2021-10-19 10:38:02 +02:00
Source0 : wireplumber-%{version} .tar.xz
2021-12-09 09:47:20 +01:00
Source1 : split-config-file.py
2024-03-22 09:52:33 +01:00
# PATCH-FIX-UPSTREAM 0001-filter-utils-fix-handling-of-targetless-smart-filters.patch alarrosa@suse.com -- Fix any mic only working when bluetooth is set to HSF/HFP profile
Patch0 : 0001-filter-utils-fix-handling-of-targetless-smart-filters.patch
2021-12-15 18:45:52 +01:00
# docs
2021-06-24 14:17:18 +02:00
BuildRequires : doxygen
BuildRequires : graphviz
2021-12-15 18:45:52 +01:00
# /docs
BuildRequires : cmake
BuildRequires : fdupes
2022-07-06 17:36:55 +02:00
BuildRequires : meson >= 0.59.0
2021-12-15 18:45:52 +01:00
BuildRequires : pipewire >= %{pipewire_minimum_version}
BuildRequires : pipewire-spa-plugins-0_2 >= %{pipewire_minimum_version}
2021-06-24 14:17:18 +02:00
BuildRequires : pkgconfig
2021-12-15 14:47:33 +01:00
BuildRequires : python3-base
BuildRequires : python3-lxml
2021-06-24 14:17:18 +02:00
BuildRequires : xmltoman
BuildRequires : pkgconfig(dbus-1)
BuildRequires : pkgconfig(gio-unix-2.0)
2021-07-13 08:33:19 +02:00
BuildRequires : pkgconfig(glib-2.0) >= 2.62.0
2021-06-24 14:17:18 +02:00
BuildRequires : pkgconfig(gmodule-2.0)
2021-07-13 08:33:19 +02:00
BuildRequires : pkgconfig(gobject-2.0) >= 2.62
2021-06-24 14:17:18 +02:00
BuildRequires : pkgconfig(gobject-introspection-1.0)
2022-01-10 10:47:11 +01:00
BuildRequires : pkgconfig(libpipewire-0.3) >= %{pipewire_minimum_version}
2021-06-24 14:17:18 +02:00
BuildRequires : pkgconfig(libsystemd)
2022-01-31 19:23:59 +01:00
BuildRequires : pkgconfig(lua)
2021-06-24 14:17:18 +02:00
BuildRequires : pkgconfig(systemd)
2022-03-11 08:05:15 +01:00
#!BuildIgnore: pipewire-session-manager
2023-05-29 12:24:22 +02:00
# Setup ALSA devices if PipeWire handles PulseAudio or JACK connections.
Requires : (%{name} -audio if (pipewire-pulseaudio or pipewire-jack))
2021-12-15 18:45:52 +01:00
Requires : pipewire >= %{pipewire_minimum_version}
2022-03-11 08:05:15 +01:00
Provides : pipewire-session-manager
2021-06-24 14:17:18 +02:00
%if 0%{?suse_version} <= 1500
BuildRequires : gcc9
BuildRequires : gcc9-c++
%else
BuildRequires : gcc-c++
%endif
2023-01-13 11:58:55 +01:00
%{?systemd_ordering}
2021-06-24 14:17:18 +02:00
%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.
2022-05-13 09:47:14 +02:00
%lang_package
2021-12-09 09:47:20 +01:00
%package audio
Summary : Session / policy manager implementation for PipeWire (audio support)
Group : Development/Libraries/C and C++
Requires : %{libwireplumber} = %{version}
2021-12-15 14:47:33 +01:00
Requires : %{name} = %{version}
2023-05-29 12:24:22 +02:00
Recommends: pipewire-jack
2021-12-09 09:47:20 +01:00
Recommends: pipewire-pulseaudio
2022-03-11 08:05:15 +01:00
Conflicts : pulseaudio
2022-03-25 08:51:38 +01:00
BuildArch : noarch
2021-12-09 09:47:20 +01:00
%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.
2021-06-24 14:17:18 +02:00
%package devel
Summary : Session / policy manager implementation for PipeWire
Group : Development/Libraries/C and C++
2021-10-19 10:38:02 +02:00
Requires : %{libwireplumber} = %{version}
2021-12-15 14:47:33 +01:00
Requires : %{name} = %{version}
2021-06-24 14:17:18 +02:00
%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.
2023-10-13 09:38:22 +02:00
%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.
2021-06-24 14:17:18 +02:00
%prep
2023-03-27 09:08:52 +02:00
%autosetup -p1
2021-06-24 14:17:18 +02:00
2024-02-20 09:29:47 +01:00
pushd src/config
2021-12-15 14:47:33 +01:00
python3 %{SOURCE1}
2021-12-09 09:47:20 +01:00
popd
2021-06-24 14:17:18 +02:00
%build
2024-03-21 13:15:09 +01:00
%if 0%{?suse_version} <= 1500
2021-06-24 14:17:18 +02:00
export CC=gcc-9
2023-03-27 09:08:52 +02:00
export CXX=g++-9
2021-06-24 14:17:18 +02:00
%endif
2021-10-19 10:38:02 +02:00
%meson -Ddoc=disabled \
-Dsystem-lua=true \
-Delogind=disabled
2021-06-24 14:17:18 +02:00
%meson_build
%install
%meson_install
%fdupes -s %{buildroot} /%{_datadir} /doc/pipewire/html
2022-05-13 09:47:14 +02:00
%find_lang %{name} %{?no_lang_C}
2021-06-24 14:17:18 +02:00
2021-12-09 11:41:41 +01:00
%ifnarch %ix86 ppc64
2021-06-24 14:17:18 +02:00
%check
export XDG_RUNTIME_DIR=/tmp
%meson_test
%endif
2021-11-03 14:04:02 +01:00
%pre
%systemd_user_pre wireplumber.service
%post
%systemd_user_post wireplumber.service
2023-01-13 11:58:55 +01:00
%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 " $ s e r v i c e " || :
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
2021-11-03 14:04:02 +01:00
%preun
%systemd_user_preun wireplumber.service
%postun
%systemd_user_postun wireplumber.service
2021-06-24 14:17:18 +02:00
%post -n %{libwireplumber} -p /sbin/ldconfig
%postun -n %{libwireplumber} -p /sbin/ldconfig
%files
%{_bindir} /wireplumber
%{_bindir} /wpctl
%{_bindir} /wpexec
%dir %{_libdir} /wireplumber-%{apiver}
2024-02-20 09:29:47 +01:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-dbus-connection.so
2021-06-24 14:17:18 +02:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-default-nodes-api.so
2021-10-19 10:38:02 +02:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-file-monitor-api.so
2024-02-20 09:29:47 +01:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-log-settings.so
2021-10-19 10:38:02 +02:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-logind.so
2021-06-24 14:17:18 +02:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-lua-scripting.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
2024-02-20 09:29:47 +01:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-settings.so
2021-06-24 14:17:18 +02:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-si-audio-adapter.so
2024-02-20 09:29:47 +01:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-si-audio-virtual.so
2021-06-24 14:17:18 +02:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-si-node.so
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-si-standard-link.so
2024-02-20 09:29:47 +01:00
%{_libdir} /wireplumber-%{apiver} /libwireplumber-module-standard-event-source.so
2021-06-24 14:17:18 +02:00
%{_userunitdir} /wireplumber.service
%{_userunitdir} /wireplumber@.service
%{_datadir} /wireplumber
2024-02-20 09:29:47 +01:00
%dir %{_datadir} /doc/wireplumber
%dir %{_datadir} /doc/wireplumber/examples
%{_datadir} /doc/wireplumber/examples/wireplumber.conf.d
2024-03-05 07:14:26 +01:00
%{_datadir} /wireplumber/wireplumber.conf
%dir %{_datadir} /wireplumber/wireplumber.conf.d
%exclude %{_datadir} /wireplumber/wireplumber.conf.d/00-device-monitors.conf
%{_datadir} /wireplumber/wireplumber.conf.d/alsa-vm.conf
2021-12-09 09:47:20 +01:00
2022-05-13 09:47:14 +02:00
%files lang -f %{name}.lang
2021-12-09 09:47:20 +01:00
%files audio
2024-03-05 07:14:26 +01:00
%{_datadir} /wireplumber/wireplumber.conf.d/00-device-monitors.conf
2021-06-24 14:17:18 +02:00
%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} .*
2023-10-13 09:38:22 +02:00
%files zsh-completion
%dir %{_datarootdir} /zsh
%dir %{_datarootdir} /zsh/site-functions/
%{_datarootdir} /zsh/site-functions/_wpctl
2021-06-24 14:17:18 +02:00
%changelog