pipewire/pipewire.spec

662 lines
21 KiB
RPMSpec
Raw Normal View History

#
# spec file for package pipewire
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2018 Luciano Santos, luc14n0@linuxmail.org.
#
# 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 apiver 0.3
%define apiver_str 0_3
%define spa_ver 0.2
%define spa_ver_str 0_2
%define libpipewire libpipewire-%{apiver_str}-0
%if %{pkg_vcmp pkgconfig(vulkan) >= 1.1}
%define with_vulkan 1
%else
%define with_vulkan 0
%endif
%ifnarch s390 s390x ppc64
%define with_ldacBT 1
%else
%define with_ldacBT 0
%endif
%if 0%{?suse_version} >= 1550
%bcond_without libcamera
%else
%bcond_with libcamera
%endif
%if 0%{?sle_version} && 0%{?sle_version} < 150400
%bcond_with aac
%else
%bcond_without aac
%endif
%if %{?pkg_vcmp:%{pkg_vcmp meson >= 0.59.0}}%{!?pkg_vcmp:0}
%bcond_without pipewire_jack_devel
%endif
%bcond_with aptx
Name: pipewire
2022-03-29 10:12:53 +02:00
Version: 0.3.49
Release: 0
Summary: A Multimedia Framework designed to be an audio and video server and more
License: MIT
Group: Development/Libraries/C and C++
URL: https://pipewire.org/
Source0: %{name}-%{version}.tar.xz
Source99: baselibs.conf
# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch
Patch0: reduce-meson-dependency.patch
Accepting request 917721 from home:fcrozat:branches:multimedia:libs - Update to version 0.3.35: * Highlights: - S/PDIF passthrough over optical or HDMI is now implemented. - Some critical fixes to MIDI, draining of streams and various modules. - skypeforlinux should work better now after adding it to the quirks database. - Bluetooth codecs are now in separate plugins to make it easier to ship them. * PipeWire: - Drain was fixed in pw-stream. In some cases it would not clear the drain state correctly. Fixes the issue where speaker-test would only play one channel. - Loopback connections to a driver will now activate the driver. This fixes an issue where MIDI connections between devices or some applications (puredata) would not get any MIDI messages. (#1559)x. - The audiomixer can now mix more formats. Together with the passthrough improvements this can be used to avoid conversions to/from the DSP format in some cases. - Make sure we idle drivers when removing a node from it in all cases. JACK clients could keep a driver node busy. - Add new methods to accumulate object info. The old one was difficult to use when applications need to accumulate multiple changes. - A new interface to load modules has been added. Plugins can use this to ask the host (PipeWire) to load spa plugins. - Increase param buffer size to handle larger params. Nodes with a large number of channels would sometimes not have properties. (#1574) OBS-URL: https://build.opensuse.org/request/show/917721 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=16
2021-09-09 16:41:05 +02:00
BuildRequires: docutils
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: graphviz
BuildRequires: pkgconfig
BuildRequires: readline-devel
BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(alsa) >= 1.1.7
Accepting request 894781 from GNOME:Factory - Update to 0.3.28 * Highlights - Freewheeling was implemented. This makes it possible to export projects in ardour. - A new powerful filter-chain module was added that can be used to created all kinds of filter-chains from ladspa and builtin plugins. - Many more pulseaudio modules are now implemented: module-ladspa-sink, module-ladspa-source, module-pipe-sink, module-tunnel-sink, module-tunnel-source, module-zeroconf-discover - Fix a bug where devices would not appear after logout/login. - Fix a bug where the volume was reset to 0 and devices would have no audio. - Config files are now installed in the data dir, system overrides in /etc/pipewire and $HOME are checked first. * PipeWire - Implement freewheeling for JACK clients - Add filter-chain module that can be used to construct arbitrary graphs from ladspa and builtin plugins. - Add new property to easily set algorithm params - Add module-pulse-tunnel to tunnel audio to and from a PulseAudio compatible server. - Add a avahi zeroconf discover module, create pulse-tunnel when PulseAudio devices are announced. - Config files are now installed in the data dir, system overrides in /etc/pipewire and $HOME are checked first. - Applications now have their monitor ports named with the "monitor" prefix to avoid confusion with the output ports. - LICENSE clarifications. (forwarded request 894376 from alarrosa) OBS-URL: https://build.opensuse.org/request/show/894781 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=31
2021-05-23 23:30:36 +02:00
BuildRequires: pkgconfig(avahi-client)
BuildRequires: pkgconfig(bluez)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(gio-2.0)
BuildRequires: pkgconfig(gio-unix-2.0)
BuildRequires: pkgconfig(glib-2.0) >= 2.32.0
BuildRequires: pkgconfig(gmodule-2.0)
BuildRequires: pkgconfig(gobject-2.0)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-allocators-1.0)
BuildRequires: pkgconfig(gstreamer-audio-1.0)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gstreamer-video-1.0)
BuildRequires: pkgconfig(jack) >= 1.9.10
BuildRequires: pkgconfig(libavcodec)
BuildRequires: pkgconfig(libavfilter)
BuildRequires: pkgconfig(libavformat)
BuildRequires: pkgconfig(libcanberra)
BuildRequires: pkgconfig(libcap)
Accepting request 940178 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.41: * Highlights - Improved compatibility for flatpaks. Flatpaks with newer PipeWire version can connect to an older server in all cases. - A new RAOP module was added to stream to Apple Airplay devices. - OBS can now capture from the monitor devices again when using WirePlumber. - Improved JACK compatibility. Improved stability in Carla and Ardour when changing buffer size. Improved latency calculations and playback latency in Ardour. - Improved pulse-server handling of underruns and buffer size changes. - Many bugfixes and improvements. * PipeWire - The systemd service files now have better names. - client.access permission checks are improved. - Fix some memory leaks in error paths. - Objects now have a global serial number that is unique for the lifetime of the server. - Make clock.rate, clock.allowed-rates and clock.quantum runtime tunable parameters with the settings metadata. - Add some additional memory checks in client-node to avoid sending invalid memory to clients. (#1859) - Improve buffer memory allocation. If one of the nodes is a remote node, ensure we only use memory that can be shared. - Version checks when binding to objects is removed. This means that newer clients can now bind to older servers, which is a typical case for a flatpak. - A bug in the latency calculations was fixed where it would in OBS-URL: https://build.opensuse.org/request/show/940178 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=33
2021-12-13 11:09:46 +01:00
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(libudev)
2021-06-29 07:59:13 +02:00
BuildRequires: pkgconfig(libusb-1.0)
Accepting request 940178 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.41: * Highlights - Improved compatibility for flatpaks. Flatpaks with newer PipeWire version can connect to an older server in all cases. - A new RAOP module was added to stream to Apple Airplay devices. - OBS can now capture from the monitor devices again when using WirePlumber. - Improved JACK compatibility. Improved stability in Carla and Ardour when changing buffer size. Improved latency calculations and playback latency in Ardour. - Improved pulse-server handling of underruns and buffer size changes. - Many bugfixes and improvements. * PipeWire - The systemd service files now have better names. - client.access permission checks are improved. - Fix some memory leaks in error paths. - Objects now have a global serial number that is unique for the lifetime of the server. - Make clock.rate, clock.allowed-rates and clock.quantum runtime tunable parameters with the settings metadata. - Add some additional memory checks in client-node to avoid sending invalid memory to clients. (#1859) - Improve buffer memory allocation. If one of the nodes is a remote node, ensure we only use memory that can be shared. - Version checks when binding to objects is removed. This means that newer clients can now bind to older servers, which is a typical case for a flatpak. - A bug in the latency calculations was fixed where it would in OBS-URL: https://build.opensuse.org/request/show/940178 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=33
2021-12-13 11:09:46 +01:00
BuildRequires: pkgconfig(lilv-0)
BuildRequires: pkgconfig(ncurses)
Accepting request 940178 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.41: * Highlights - Improved compatibility for flatpaks. Flatpaks with newer PipeWire version can connect to an older server in all cases. - A new RAOP module was added to stream to Apple Airplay devices. - OBS can now capture from the monitor devices again when using WirePlumber. - Improved JACK compatibility. Improved stability in Carla and Ardour when changing buffer size. Improved latency calculations and playback latency in Ardour. - Improved pulse-server handling of underruns and buffer size changes. - Many bugfixes and improvements. * PipeWire - The systemd service files now have better names. - client.access permission checks are improved. - Fix some memory leaks in error paths. - Objects now have a global serial number that is unique for the lifetime of the server. - Make clock.rate, clock.allowed-rates and clock.quantum runtime tunable parameters with the settings metadata. - Add some additional memory checks in client-node to avoid sending invalid memory to clients. (#1859) - Improve buffer memory allocation. If one of the nodes is a remote node, ensure we only use memory that can be shared. - Version checks when binding to objects is removed. This means that newer clients can now bind to older servers, which is a typical case for a flatpak. - A bug in the latency calculations was fixed where it would in OBS-URL: https://build.opensuse.org/request/show/940178 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=33
2021-12-13 11:09:46 +01:00
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(sbc)
BuildRequires: pkgconfig(sdl2)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(webrtc-audio-processing)
BuildRequires: pkgconfig(x11)
BuildConflicts: pipewire-libjack-%{apiver_str}-devel
Requires: %{libpipewire} = %{version}
Requires: %{name}-modules-%{apiver_str} = %{version}
2021-06-29 07:59:13 +02:00
Requires: %{name}-session-manager
Requires: %{name}-spa-plugins-%{spa_ver_str} = %{version}
Requires: %{name}-spa-tools = %{version}
Requires: %{name}-tools = %{version}
Suggests: wireplumber
%{?systemd_ordering}
%if 0%{?suse_version} <= 1500
BuildRequires: gcc9
BuildRequires: gcc9-c++
%endif
%if 0%{?sle_version} == 150300
BuildRequires: meson >= 0.54.0
%else
BuildRequires: meson >= 0.59.0
%endif
%if %{with libcamera}
BuildRequires: pkgconfig(libcamera) >= 0.0.0+g3381.1db1e31e
%endif
%if %{with aac}
BuildRequires: pkgconfig(fdk-aac)
%endif
%if %{with_ldacBT}
BuildRequires: pkgconfig(ldacBT-abr)
BuildRequires: pkgconfig(ldacBT-enc)
%endif
%if %{with aptx}
BuildRequires: pkgconfig(libfreeaptx)
%endif
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
BuildRequires: pkgconfig(xfixes)
%endif
%description
PipeWire is a server and user space API to deal with multimedia pipelines.
Some of its features include:
* Capture and playback of audio and video with minimal latency;
* Real-time Multimedia processing on audio and video;
* Multiprocess architecture to let applications share multimedia content;
* GStreamer plugins for easy use and integration in current applications;
* Sandboxed applications support.
%package -n %{libpipewire}
Summary: A Multimedia Framework designed to be an audio and video server and more
Group: System/Libraries
Requires: pipewire-modules-%{apiver_str} >= %{version}
Requires: pipewire-spa-plugins-%{spa_ver_str} >= %{version}
Recommends: pipewire >= %{version}
%description -n %{libpipewire}
PipeWire is a server and user space API to deal with multimedia pipelines.
Some of its features include:
* Capture and playback of audio and video with minimal latency;
* Real-time Multimedia processing on audio and video;
* Multiprocess architecture to let applications share multimedia content;
* GStreamer plugins for easy use and integration in current applications;
* Sandboxed applications support.
This package provides the PipeWire shared library.
%package libjack-%{apiver_str}
Summary: PipeWire libjack replacement libraries
Group: Development/Libraries/C and C++
Requires(post): update-alternatives
Requires(postun):update-alternatives
Conflicts: jack
Conflicts: libjack0
Conflicts: libjacknet0
Conflicts: libjackserver0
%description libjack-%{apiver_str}
PipeWire is a server and user space API to deal with multimedia pipelines.
Some of its features include:
* Capture and playback of audio and video with minimal latency;
* Real-time Multimedia processing on audio and video;
* Multiprocess architecture to let applications share multimedia content;
* GStreamer plugins for easy use and integration in current applications;
* Sandboxed applications support.
This package provides the PipeWire replacement libraries for libjack.
%package libjack-%{apiver_str}-devel
Summary: Development files for %{name}-libjack-%{apiver_str}
Group: Development/Libraries/C and C++
Requires: %{name}-libjack-%{apiver_str} = %{version}
Conflicts: libjack-devel
%description libjack-%{apiver_str}-devel
PipeWire is a server and user space API to deal with multimedia pipelines.
Some of its features include:
* Capture and playback of audio and video with minimal latency;
* Real-time Multimedia processing on audio and video;
* Multiprocess architecture to let applications share multimedia content;
* GStreamer plugins for easy use and integration in current applications;
* Sandboxed applications support.
This package provides the PipeWire replacement development files
for libjack.
%package -n gstreamer-plugin-pipewire
Summary: Gstreamer Plugin for PipeWire
Group: System/Libraries
%description -n gstreamer-plugin-pipewire
PipeWire is a server and user space API to deal with multimedia pipelines.
This package provides the gstreamer plugin.
%package tools
Summary: The PipeWire Tools
Group: Productivity/Multimedia/Other
%description tools
This package contains command line utilities for the PipeWire media server.
%package spa-tools
Summary: The PipeWire SPA Tools
Group: Productivity/Multimedia/Other
%description spa-tools
SPA or Simple Plugin API is a plugin API.
This package provides spa-inspect and spa-monitor tools.
%package modules-%{apiver_str}
Summary: Modules For PipeWire, A Multimedia Framework
Group: Productivity/Multimedia/Other
Provides: %{name}-modules = %{version}
Obsoletes: %{name}-modules < %{version}
%description modules-%{apiver_str}
PipeWire is a server and user space API to deal with multimedia pipelines.
The framework is used to build a modular daemon that can be configured to:
* Be a low-latency audio server with features like pulseaudio and/or jack;
* A video capture server that can manage hardware video capture devices
and provide access to them;
* A central hub where video can be made available for other applications
such as the gnome-shell screencast API.
%package spa-plugins-%{spa_ver_str}
Summary: Plugins For PipeWire SPA
Group: Productivity/Multimedia/Other
%description spa-plugins-%{spa_ver_str}
PipeWire is a server and user space API to deal with multimedia pipelines.
Some of its features include:
* Unlimited input/output ports;
* Per port format enumeration and negotiation;
* Enumeration/configuration of per port parameters;
* Application controlled buffer allocation with option to let the plugin
Allocate memory;
* Arbitrary buffer metadata;
* Buffers are passed around by id which is very fast and avoids the need
for refcounting;
* Synchronous and asynchronous processing;
* All api is designed to work without any allocations;
* Arbirary input/output behaviour.
This package provides plugins for extending PipeWire SPA's functionality.
%package devel
Summary: Development Files For PipeWire, A Multimedia Framework
Group: Development/Libraries/C and C++
Requires: %{libpipewire} >= %{version}
%description devel
PipeWire is a server and user space API to deal with multimedia pipelines.
This package provides all the necessary files for development with PipeWire
%package doc
Summary: PipeWire media server documentation
Group: Development/Libraries/C and C++
%description doc
This package contains documentation for the PipeWire media server.
%package alsa
Summary: PipeWire media server ALSA support
Group: Development/Libraries/C and C++
Requires: %{libpipewire} >= %{version}-%{release}
Recommends: %{name} >= %{version}-%{release}
%description alsa
This package contains an ALSA plugin for the PipeWire media server.
%package pulseaudio
Summary: PipeWire PulseAudio implementation
Group: Development/Libraries/C and C++
Requires: %{libpipewire} >= %{version}-%{release}
Requires: %{name} >= %{version}-%{release}
Recommends: alsa-plugins-pulse
Conflicts: pulseaudio
Conflicts: pulseaudio-daemon
# Virtual Provides to support swapping between PipeWire-PA and PA
Provides: pulseaudio-daemon
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
Requires(post): pulseaudio-setup
%endif
#Provides: pulseaudio-module-bluetooth
#Provides: pulseaudio-module-jack
%description pulseaudio
This package provides a PulseAudio implementation based on PipeWire
%lang_package
%prep
%autosetup -N
%if 0%{?sle_version} == 150300
%patch0 -p1
%endif
%build
%if %{pkg_vcmp gcc < 8}
export CC=gcc-9
export CXX=g++-9
%endif
%meson \
-Ddocs=enabled \
-Dman=enabled \
-Dgstreamer=enabled \
-Dffmpeg=enabled \
-Dsystemd=enabled \
-Dsystemd-user-unit-dir=%{_userunitdir} \
-Dgstreamer-device-provider=disabled \
2021-06-29 07:59:13 +02:00
-Droc=disabled \
%if %{with_vulkan}
-Dvulkan=enabled \
%else
-Dvulkan=disabled \
%endif
-Dtest=enabled \
-Daudiotestsrc=enabled \
%if %{with aac}
-Dbluez5-codec-aac=enabled \
%else
-Dbluez5-codec-aac=disabled \
%endif
%if %{with aptx}
-Dbluez5-codec-aptx=enabled \
%else
-Dbluez5-codec-aptx=disabled \
%endif
%if %{with_ldacBT}
-Dbluez5-codec-ldac=enabled \
%else
-Dbluez5-codec-ldac=disabled \
%endif
%if %{with libcamera}
-Dlibcamera=enabled \
%else
-Dlibcamera=disabled \
%endif
-Dpipewire-jack=enabled \
-Djack=enabled \
%if %{with pipewire_jack_devel}
Accepting request 914410 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.34: * Highlights - Fixes some critical issues with previous release. Such as devices not showing up and default devices being lost. - Support for consumer driver streams to make the producer v-sync to the consumer monitor in a headless compositor setup. - Improvements to routing of streams. - Bluetooth battery status support for head-set profile and using Apple extensions. aptX-LL and FastStream codec support was added. - Internal latency of ALSA devices can now be configured. - A fast convolver was added to the filter-chain to implement virtual surround sinks or reverbs. * PipeWire - Add support for streams that are driver nodes for the graph. This was already possible for source streams but it is now also possible for playback streams. This can be used to let a producer v-sync to the consumer monitor in a headless compositor setup. (#1484) - State files are now stored in XDG_STATE_HOME instead of XDG_CONFIG_HOME. They will still be loaded from the config home if they are not in the new state home, to ease migration. - Set a driver on inactive nodes to make transport work in xjadeo. (#1491) - Fix parsing of filter-chain controls. - A new FFT based convolver was added to module-filter-chain. It uses a 0-latency 2 stage convolver with small FFT for the head and a large FFT for the tail of the convolution. A OBS-URL: https://build.opensuse.org/request/show/914410 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=14
2021-08-26 16:39:54 +02:00
-Djack-devel=true \
%else
-Djack-devel=false \
%endif
%if 0%{?suse_version} < 1550 && 0%{?sle_version} < 150400
-Dx11-xfixes=disabled \
Accepting request 914410 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.34: * Highlights - Fixes some critical issues with previous release. Such as devices not showing up and default devices being lost. - Support for consumer driver streams to make the producer v-sync to the consumer monitor in a headless compositor setup. - Improvements to routing of streams. - Bluetooth battery status support for head-set profile and using Apple extensions. aptX-LL and FastStream codec support was added. - Internal latency of ALSA devices can now be configured. - A fast convolver was added to the filter-chain to implement virtual surround sinks or reverbs. * PipeWire - Add support for streams that are driver nodes for the graph. This was already possible for source streams but it is now also possible for playback streams. This can be used to let a producer v-sync to the consumer monitor in a headless compositor setup. (#1484) - State files are now stored in XDG_STATE_HOME instead of XDG_CONFIG_HOME. They will still be loaded from the config home if they are not in the new state home, to ease migration. - Set a driver on inactive nodes to make transport work in xjadeo. (#1491) - Fix parsing of filter-chain controls. - A new FFT based convolver was added to module-filter-chain. It uses a 0-latency 2 stage convolver with small FFT for the head and a large FFT for the tail of the convolution. A OBS-URL: https://build.opensuse.org/request/show/914410 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=14
2021-08-26 16:39:54 +02:00
%endif
Accepting request 926684 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.39 * Highlights - media-session is now moved into a separate module to speed up its deprecation in favour of WirePlumber. - There is now an LD_PRELOAD v4l2 emulation library to run some existing v4l2 applications on top of PipeWire. - Filter-chains should now flush out remaining samples when paused. There is now also the option to let a filter-chain drain so that long filters such as reverbs can fade out properly. - Stability and compatibility improvements in JACK apps. - Better Bluetooth compatibility with more devices. - libcamera plugin improvements. - Many bugfixes and improvements all over the map. * PipeWire - Fix compilation on ARM. - Log topics are added to most modules. - Documentation updates. Many improvements to the layout. Reorganisation of the modules and groups. - Share a work queue for all links and nodes. This removes the need for a separate eventfd per link and per node. - Catch errors in the map implementation. - Add option to compile without dbus support. - Fix biquad frequency. It was using the wrong sample rate. - Fix a potential crash when destroying nodes, in some cases the node would not be deactivated properly. - Add some more helpers for dealing with properties and their values. - Implement flush and reset on virtual sinks/sources. - Make it possible to let virtual sinks/filter-chains run and OBS-URL: https://build.opensuse.org/request/show/926684 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=22
2021-10-21 11:49:16 +02:00
-Dsession-managers="[]" \
%{nil}
%meson_build
%install
%meson_install
mkdir -p %{buildroot}%{_sysconfdir}/alsa/conf.d/
cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf \
%{buildroot}%{_sysconfdir}/alsa/conf.d/50-pipewire.conf
cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf \
%{buildroot}%{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
mkdir -p %{buildroot}%{_udevrulesdir}
mv -fv %{buildroot}/lib/udev/rules.d/90-pipewire-alsa.rules %{buildroot}%{_udevrulesdir}
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/
echo %{_libdir}/pipewire-%{apiver}/jack/ > %{buildroot}%{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for wrapper in pw-jack ; do
mv %{buildroot}%{_bindir}/$wrapper %{buildroot}%{_bindir}/$wrapper-%{apiver}
ln -s -f %{_sysconfdir}/alternatives/$wrapper %{buildroot}%{_bindir}/$wrapper
done
for manpage in pw-jack ; do
mv %{buildroot}%{_mandir}/man1/$manpage.1 %{buildroot}%{_mandir}/man1/$manpage-%{apiver}.1
ln -s -f %{_sysconfdir}/alternatives/$manpage.1%{ext_man} %{buildroot}%{_mandir}/man1/$manpage.1%{ext_man}
done
%fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html
%find_lang %{name} %{name}.lang
%check
%meson_test
%pre
%systemd_user_pre pipewire.service pipewire.socket
%post
# Check if the systemd_user_pre macro generated the file
# for systemd_user_post to enable the user socket.
if [ -f /run/systemd/rpm/needs-user-preset/pipewire.socket ]; then
echo "Switching Pipewire activation using systemd user socket."
echo "Please log out from all sessions once to make it effective."
fi
%systemd_user_post pipewire.service pipewire.socket
# 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/sockets.target.wants/pipewire.socket \
-a ! -f %{_localstatedir}/lib/pipewire/pipewire_post_workaround \
-a -x %{_bindir}/systemctl ]; then
for service in pipewire.service pipewire.socket ; do
%{_bindir}/systemctl --global preset "$service" || :
done
mkdir -p %{_localstatedir}/lib/pipewire
cat << EOF > %{_localstatedir}/lib/pipewire/pipewire_post_workaround
# The existence of this file means that the pipewire 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=1184852
# https://bugzilla.opensuse.org/show_bug.cgi?id=1183012
# https://bugzilla.opensuse.org/show_bug.cgi?id=1186561
EOF
fi
%preun
2021-06-29 07:59:13 +02:00
%systemd_user_preun pipewire.service pipewire.socket
%postun
2021-06-29 07:59:13 +02:00
%systemd_user_postun pipewire.service pipewire.socket
%pre pulseaudio
%systemd_user_pre pipewire-pulse.service pipewire-pulse.socket
%post pulseaudio
%systemd_user_post pipewire-pulse.service pipewire-pulse.socket
# If the pipewire-pulse.socket user service is not enabled and the workaround
# for boo#1186561 has never been executed, we need to execute it now
if [ ! -L %{_sysconfdir}/systemd/user/sockets.target.wants/pipewire-pulse.socket \
-a ! -f %{_localstatedir}/lib/pipewire/pipewire-pulseaudio_post_workaround \
-a -x %{_bindir}/systemctl ]; then
for service in pipewire-pulse.service pipewire-pulse.socket ; do
%{_bindir}/systemctl --global preset "$service" || :
done
mkdir -p %{_localstatedir}/lib/pipewire
cat << EOF > %{_localstatedir}/lib/pipewire/pipewire-pulseaudio_post_workaround
# The existence of this file means that the pipewire-pulseaudio user service was
# 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=1184852
# https://bugzilla.opensuse.org/show_bug.cgi?id=1183012
# https://bugzilla.opensuse.org/show_bug.cgi?id=1186561
EOF
fi
%if 0%{?suse_version} >= 1550 || 0%{?sle_version} >= 150400
# Update the /etc/profile.d/pulseaudio.* files
setup-pulseaudio --auto > /dev/null
%endif
%preun pulseaudio
%systemd_user_preun pipewire-pulse.service pipewire-pulse.socket
%postun pulseaudio
%systemd_user_postun pipewire-pulse.service pipewire-pulse.socket
%post -n %{libpipewire} -p /sbin/ldconfig
%postun -n %{libpipewire} -p /sbin/ldconfig
%post libjack-%{apiver_str}
%{_sbindir}/update-alternatives --install %{_bindir}/pw-jack pw-jack %{_bindir}/pw-jack-%{apiver} 20 \
--slave %{_mandir}/man1/pw-jack.1%{ext_man} pw-jack.1%{ext_man} %{_mandir}/man1/pw-jack-%{apiver}.1%{ext_man}
/sbin/ldconfig
%postun libjack-%{apiver_str}
if [ ! -e %{_bindir}/pw-jack-%{apiver} ] ; then
%{_sbindir}/update-alternatives --remove pw-jack %{_bindir}/pw-jack-%{apiver}
fi
/sbin/ldconfig
%files
%license LICENSE COPYING
%doc README.md
%{_bindir}/pipewire
%{_userunitdir}/pipewire.service
%{_userunitdir}/pipewire.socket
%{_mandir}/man1/pipewire.1%{?ext_man}
%{_mandir}/man5/pipewire.conf.5%{?ext_man}
%dir %{_datadir}/pipewire/
Accepting request 894781 from GNOME:Factory - Update to 0.3.28 * Highlights - Freewheeling was implemented. This makes it possible to export projects in ardour. - A new powerful filter-chain module was added that can be used to created all kinds of filter-chains from ladspa and builtin plugins. - Many more pulseaudio modules are now implemented: module-ladspa-sink, module-ladspa-source, module-pipe-sink, module-tunnel-sink, module-tunnel-source, module-zeroconf-discover - Fix a bug where devices would not appear after logout/login. - Fix a bug where the volume was reset to 0 and devices would have no audio. - Config files are now installed in the data dir, system overrides in /etc/pipewire and $HOME are checked first. * PipeWire - Implement freewheeling for JACK clients - Add filter-chain module that can be used to construct arbitrary graphs from ladspa and builtin plugins. - Add new property to easily set algorithm params - Add module-pulse-tunnel to tunnel audio to and from a PulseAudio compatible server. - Add a avahi zeroconf discover module, create pulse-tunnel when PulseAudio devices are announced. - Config files are now installed in the data dir, system overrides in /etc/pipewire and $HOME are checked first. - Applications now have their monitor ports named with the "monitor" prefix to avoid confusion with the output ports. - LICENSE clarifications. (forwarded request 894376 from alarrosa) OBS-URL: https://build.opensuse.org/request/show/894781 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=31
2021-05-23 23:30:36 +02:00
%{_datadir}/pipewire/pipewire.conf
%dir %{_datadir}/pipewire/filter-chain/
%{_datadir}/pipewire/filter-chain/*.conf
%ghost %dir %{_localstatedir}/lib/pipewire/
2021-06-29 07:59:13 +02:00
%ghost %{_localstatedir}/lib/pipewire/pipewire_post_workaround
%files -n %{libpipewire}
%license LICENSE COPYING
%doc README.md
%{_libdir}/libpipewire-%{apiver}.so.*
%files modules-%{apiver_str}
%dir %{_libdir}/pipewire-%{apiver}
%{_libdir}/pipewire-%{apiver}/libpipewire-module-*.so
%dir %{_libdir}/pipewire-%{apiver}/v4l2/
%{_libdir}/pipewire-%{apiver}/v4l2/libpw-v4l2.so
%dir %{_datadir}/alsa-card-profile/
%dir %{_datadir}/alsa-card-profile/mixer/
%{_datadir}/alsa-card-profile/mixer/*
%{_udevrulesdir}/90-pipewire-alsa.rules
%{_datadir}/pipewire/client.conf
%{_datadir}/pipewire/client-rt.conf
%{_datadir}/pipewire/minimal.conf
%files spa-plugins-%{spa_ver_str}
%dir %{_libdir}/spa-%{spa_ver}/
Accepting request 955613 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.46: * Highlights: - Fix a critical bug in pipewire-pulse buffer size handling that made some apps (MuseScore, ... ) stutter. - Fix a critical bug where devices would not show when the kernel was compiled without VERBOSE_PROCSFS. - JACK clients will now use lock-quantum by default. This makes sure that all dynamic quantum changes are disabled while a JACK app is running. The only way to force a quantum chance is through a JACK app or with the metadata. - Almost all limits on number of ports, clients and nodes are removed. - A Dummy fallback sink is now automatically created when there are no other sinks. This avoids stalling browsers. - Sound sharing with Zoom should work better. A new WirePlumber release might be required. - Many more fixes and improvements. * PipeWire - Update docs with new config overrides. - The rule matching logic was moved to config and code is now shared with pulse-server and JACK. - Add new Romanian translation. - When a quantum is forced with metadata, any node that asked to lock-quantum is ignored so that the quantum change can happen. - Fix a bug where a mixer was removed twice, leading to potential memory corruption. - The port limits on nodes and filters are now removed. Some code was simplified. - Fix a potential leak because listeners where removed while OBS-URL: https://build.opensuse.org/request/show/955613 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=48
2022-02-17 12:25:15 +01:00
%{_libdir}/spa-%{spa_ver}/aec/
%{_libdir}/spa-%{spa_ver}/alsa/
%{_libdir}/spa-%{spa_ver}/audioconvert/
%{_libdir}/spa-%{spa_ver}/audiomixer/
%{_libdir}/spa-%{spa_ver}/bluez5/
%{_libdir}/spa-%{spa_ver}/control/
%{_libdir}/spa-%{spa_ver}/volume/
%{_libdir}/spa-%{spa_ver}/ffmpeg/
%{_libdir}/spa-%{spa_ver}/jack/
%if %{with libcamera}
%{_libdir}/spa-%{spa_ver}/libcamera/
%endif
%{_libdir}/spa-%{spa_ver}/support/
%{_libdir}/spa-%{spa_ver}/v4l2/
%{_libdir}/spa-%{spa_ver}/videoconvert/
%if %{with_vulkan}
%{_libdir}/spa-%{spa_ver}/vulkan/
%endif
%{_libdir}/spa-%{spa_ver}/audiotestsrc/
%{_libdir}/spa-%{spa_ver}/videotestsrc/
%{_libdir}/spa-%{spa_ver}/test/
%dir %{_datadir}/spa-%{spa_ver}/
%dir %{_datadir}/spa-%{spa_ver}/bluez5/
%{_datadir}/spa-%{spa_ver}/bluez5/bluez-hardware.conf
%files libjack-%{apiver_str}
%dir %{_libdir}/pipewire-%{apiver}/jack
%{_libdir}/pipewire-%{apiver}/jack/libjack.so.*
%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so.*
%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so.*
%ghost %{_sysconfdir}/alternatives/pw-jack
%ghost %{_sysconfdir}/alternatives/pw-jack.1%{ext_man}
%{_bindir}/pw-jack-%{apiver}
%{_bindir}/pw-jack
%{_mandir}/man1/pw-jack-%{apiver}.1%{?ext_man}
%{_mandir}/man1/pw-jack.1%{?ext_man}
%{_datadir}/pipewire/jack.conf
%config %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
%files libjack-%{apiver_str}-devel
%{_libdir}/pipewire-%{apiver}/jack/libjack.so
%{_libdir}/pipewire-%{apiver}/jack/libjacknet.so
%{_libdir}/pipewire-%{apiver}/jack/libjackserver.so
%if %{with pipewire_jack_devel}
%{_includedir}/jack/
%{_libdir}/pkgconfig/jack.pc
Accepting request 914410 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.34: * Highlights - Fixes some critical issues with previous release. Such as devices not showing up and default devices being lost. - Support for consumer driver streams to make the producer v-sync to the consumer monitor in a headless compositor setup. - Improvements to routing of streams. - Bluetooth battery status support for head-set profile and using Apple extensions. aptX-LL and FastStream codec support was added. - Internal latency of ALSA devices can now be configured. - A fast convolver was added to the filter-chain to implement virtual surround sinks or reverbs. * PipeWire - Add support for streams that are driver nodes for the graph. This was already possible for source streams but it is now also possible for playback streams. This can be used to let a producer v-sync to the consumer monitor in a headless compositor setup. (#1484) - State files are now stored in XDG_STATE_HOME instead of XDG_CONFIG_HOME. They will still be loaded from the config home if they are not in the new state home, to ease migration. - Set a driver on inactive nodes to make transport work in xjadeo. (#1491) - Fix parsing of filter-chain controls. - A new FFT based convolver was added to module-filter-chain. It uses a 0-latency 2 stage convolver with small FFT for the head and a large FFT for the tail of the convolution. A OBS-URL: https://build.opensuse.org/request/show/914410 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=14
2021-08-26 16:39:54 +02:00
%endif
%files -n gstreamer-plugin-pipewire
%{_libdir}/gstreamer-1.0/libgstpipewire.so
%files tools
%{_bindir}/pw-cat
%{_bindir}/pw-cli
%{_bindir}/pw-dot
Accepting request 921126 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.37: * Highlights - Capture and playback is now avoided even more on unavailable devices. This should fix some issues where an unusable microphone was selected by default. It should now also again be possible to select an unavailable device as the default. - Native DSD audio playback is now supported. pw-cat can now also play DSF files with the -d option. - JACK stability improvements with buffer-size and samplerate changes in some apps. - Many cleanups and bugfixes all over the place. * PipeWire - pw-metadata -d does not cause an infinite loop anymore. (#1622) - Increase some plugin buffer sizes to fix some issues with many channels. (#1620) - Protect the global plugin list with a lock. Make sure pw_init() is locked. Fixes some issues with concurrent ALSA plugin usage. * media-session - Unavailable devices can be set as the default again. (#1624) - Do a better check if a device has available routes and avoid selecting devices with unavailable routes as default. - Media-session was moved to its own directory. It used to live in examples but it is past the example stage and it interferes with the build options for the real examples. * Bluetooth - The hardware quirk database is now loaded by the plugin instead of the session manager. This makes it also work with wireplumber. OBS-URL: https://build.opensuse.org/request/show/921126 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=19
2021-09-23 12:23:00 +02:00
%{_bindir}/pw-dsdplay
%{_bindir}/pw-dump
%{_bindir}/pw-loopback
%{_bindir}/pw-link
%{_bindir}/pw-metadata
%{_bindir}/pw-mididump
%{_bindir}/pw-midiplay
%{_bindir}/pw-midirecord
%{_bindir}/pw-mon
%{_bindir}/pw-play
%{_bindir}/pw-profiler
%{_bindir}/pw-record
Accepting request 841554 from GNOME:Factory - Update to version 0.3.13: * PipeWire improvements + Add pw-reserve tool to reserve or monitor a device on DBus. + Install spa-resample, a tool to resample a file. + Install spa-acp-tool, a tool to inspect the card profile. + Various fixes and improvements + Fix a bug in pw-stream where a capture stream could run out of buffers and become silent. + Rework the processing loops in the adapter and stream. There is now less latency in PulseAudio and ALSA layers. * Session manager improvements + Improve the device reservation code. We now try to acquire the device using the dbus device reservation API before we probe the device. This avoids conflicts with a running PulseAudio where devices would disappear (because they were locked by the other process). + Don't fail on invalid input from the config files. + Audio devices now have the same name as what PulseAudio would assign. * Device support + v4l2: try to use the format before enumerating the size and framerate. Some drivers don't check the format and might now work better. + v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access, just export the fd and the mapoffset. This should make more devices work. + Fix crash in ALSA Card Profile (ACP) code. + ACP: fix selection of default profile. Prefer any possibly available profile over 'Off'. This makes some card at least start with something. (forwarded request 841457 from alarrosa) OBS-URL: https://build.opensuse.org/request/show/841554 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=17
2020-10-15 13:47:55 +02:00
%{_bindir}/pw-reserve
%{_bindir}/pw-top
Accepting request 926684 from home:alarrosa:branches:multimedia:libs - Update to version 0.3.39 * Highlights - media-session is now moved into a separate module to speed up its deprecation in favour of WirePlumber. - There is now an LD_PRELOAD v4l2 emulation library to run some existing v4l2 applications on top of PipeWire. - Filter-chains should now flush out remaining samples when paused. There is now also the option to let a filter-chain drain so that long filters such as reverbs can fade out properly. - Stability and compatibility improvements in JACK apps. - Better Bluetooth compatibility with more devices. - libcamera plugin improvements. - Many bugfixes and improvements all over the map. * PipeWire - Fix compilation on ARM. - Log topics are added to most modules. - Documentation updates. Many improvements to the layout. Reorganisation of the modules and groups. - Share a work queue for all links and nodes. This removes the need for a separate eventfd per link and per node. - Catch errors in the map implementation. - Add option to compile without dbus support. - Fix biquad frequency. It was using the wrong sample rate. - Fix a potential crash when destroying nodes, in some cases the node would not be deactivated properly. - Add some more helpers for dealing with properties and their values. - Implement flush and reset on virtual sinks/sources. - Make it possible to let virtual sinks/filter-chains run and OBS-URL: https://build.opensuse.org/request/show/926684 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/pipewire?expand=0&rev=22
2021-10-21 11:49:16 +02:00
%{_bindir}/pw-v4l2
%{_mandir}/man1/pw-cat.1%{?ext_man}
%{_mandir}/man1/pw-cli.1%{?ext_man}
%{_mandir}/man1/pw-dot.1%{?ext_man}
%{_mandir}/man1/pw-metadata.1%{?ext_man}
%{_mandir}/man1/pw-mididump.1%{?ext_man}
%{_mandir}/man1/pw-mon.1%{?ext_man}
%{_mandir}/man1/pw-profiler.1%{?ext_man}
2022-03-29 10:12:53 +02:00
%{_mandir}/man1/pw-top.1%{?ext_man}
%files spa-tools
%{_bindir}/spa-inspect
%{_bindir}/spa-monitor
Accepting request 841554 from GNOME:Factory - Update to version 0.3.13: * PipeWire improvements + Add pw-reserve tool to reserve or monitor a device on DBus. + Install spa-resample, a tool to resample a file. + Install spa-acp-tool, a tool to inspect the card profile. + Various fixes and improvements + Fix a bug in pw-stream where a capture stream could run out of buffers and become silent. + Rework the processing loops in the adapter and stream. There is now less latency in PulseAudio and ALSA layers. * Session manager improvements + Improve the device reservation code. We now try to acquire the device using the dbus device reservation API before we probe the device. This avoids conflicts with a running PulseAudio where devices would disappear (because they were locked by the other process). + Don't fail on invalid input from the config files. + Audio devices now have the same name as what PulseAudio would assign. * Device support + v4l2: try to use the format before enumerating the size and framerate. Some drivers don't check the format and might now work better. + v4l2: Fall back to MMAP when EXPBUF fails. Fix MMAP access, just export the fd and the mapoffset. This should make more devices work. + Fix crash in ALSA Card Profile (ACP) code. + ACP: fix selection of default profile. Prefer any possibly available profile over 'Off'. This makes some card at least start with something. (forwarded request 841457 from alarrosa) OBS-URL: https://build.opensuse.org/request/show/841554 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/pipewire?expand=0&rev=17
2020-10-15 13:47:55 +02:00
%{_bindir}/spa-acp-tool
%{_bindir}/spa-resample
%{_bindir}/spa-json-dump
%files devel
%{_libdir}/libpipewire-%{apiver}.so
%{_libdir}/pkgconfig/libpipewire-%{apiver}.pc
%{_libdir}/pkgconfig/libspa-%{spa_ver}.pc
%{_includedir}/pipewire-%{apiver}/
%{_includedir}/spa-%{spa_ver}/
%files doc
%dir %{_datadir}/doc/pipewire/
%{_datadir}/doc/pipewire/html/
%files pulseaudio
%{_bindir}/pipewire-pulse
%{_mandir}/man1/pipewire-pulse.1%{?ext_man}
%{_userunitdir}/pipewire-pulse.*
%{_datadir}/pipewire/pipewire-pulse.conf
%ghost %{_localstatedir}/lib/pipewire/pipewire-pulseaudio_post_workaround
%files alsa
%dir %{_libdir}/alsa-lib
%{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so
%{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so
%dir %{_datadir}/alsa/alsa.conf.d
%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf
%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf
%dir %{_sysconfdir}/alsa/
%dir %{_sysconfdir}/alsa/conf.d/
%config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf
%config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf
%files lang -f %{name}.lang
%changelog