#
# Conditional build:
%bcond_without apidocs # Doxygen based API documentation
+%bcond_without ffado # FFADO driver
%bcond_without ffmpeg # ffmpeg spa plugin integration
%bcond_without gstreamer # GStreamer module
%bcond_without jack # pipewire-jack and jack spa plugin integration
%bcond_with libcamera # libcamera plugin
+%bcond_without libmysofa # libmysofa filter chain support
%bcond_without lv2 # LV2 plugins support
%bcond_without roc # ROC modules
%bcond_without x11 # X11 bell support
Summary: PipeWire - server and user space API to deal with multimedia pipelines
Summary(pl.UTF-8): PipeWire - serwer i API przestrzeni użytkownika do obsługi potoków multimedialnych
Name: pipewire
-Version: 0.3.68
+Version: 1.0.0
Release: 1
License: MIT, LGPL v2+, GPL v2
Group: Libraries
Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/%{name}-%{version}.tar.bz2
-# Source0-md5: e0572cb5ff19411fb51c88b9b156acca
+# Source0-md5: 5dfff39e6778ab364e3b7f9be22ba0c6
Patch0: %{name}-gcc.patch
URL: https://pipewire.org/
BuildRequires: ModemManager-devel >= 1.10.0
%if %{with jack}
BuildRequires: SDL2-devel >= 2
%endif
-BuildRequires: Vulkan-Loader-devel >= 1.1.69
+BuildRequires: Vulkan-Loader-devel >= 1.2.170
BuildRequires: alsa-lib-devel >= 1.1.7
BuildRequires: avahi-devel
BuildRequires: bluez-libs-devel >= 4.101
BuildRequires: dbus-devel
-# rst2man
-BuildRequires: docutils
-%{?with_apidocs:BuildRequires: doxygen}
+BuildRequires: doxygen
BuildRequires: fdk-aac-devel
# libavcodec libavformat libavfilter
%{?with_ffmpeg:BuildRequires: ffmpeg-devel}
# possibly more 32-bit archs (where 8-byte __atomic_store_n require libatomic)
BuildRequires: libatomic-devel
%endif
-%{?with_libcamera:BuildRequires: libcamera-devel}
+%{?with_libcamera:BuildRequires: libcamera-devel >= 0.1.0}
%{?with_x11:BuildRequires: libcanberra-devel}
BuildRequires: libcap-devel
-%{?with_libcamera:BuildRequires: libdrm-devel >= 2.4.98}
+BuildRequires: libdrm-devel >= 2.4.98
+%{?with_ffado:BuildRequires: libffado-devel}
BuildRequires: libfreeaptx-devel
+%{?with_libmysofa:BuildRequires: libmysofa-devel}
+BuildRequires: libselinux-devel
BuildRequires: libsndfile-devel >= 1.0.20
BuildRequires: libstdc++-devel >= 6:7
BuildRequires: libusb-devel >= 1.0
BuildRequires: ncurses-devel
BuildRequires: ninja >= 1.5
BuildRequires: openssl-devel
-BuildRequires: opus-devel
+BuildRequires: opus-devel >= 0.9.7
BuildRequires: pkgconfig
BuildRequires: pulseaudio-devel
+BuildRequires: python3
+BuildRequires: python3-modules
BuildRequires: readline-devel >= 8.1.1-2
-%{?with_roc:BuildRequires: roc-toolkit-devel >= 0.2.0}
+%{?with_roc:BuildRequires: roc-toolkit-devel >= 0.3.0}
BuildRequires: rpm-build >= 4.6
BuildRequires: rpmbuild(macros) >= 2.011
BuildRequires: sbc-devel
BuildRequires: systemd-devel
BuildRequires: udev-devel
-BuildRequires: webrtc-audio-processing-devel >= 0.2
-BuildRequires: webrtc-audio-processing-devel < 1.0
+BuildRequires: webrtc-audio-processing1-devel >= 1.2
%if %{with x11}
BuildRequires: xorg-lib-libX11-devel
BuildRequires: xorg-lib-libXfixes-devel >= 6
Requires(post,preun): systemd-units >= 1:250.1
Requires: %{name}-libs = %{version}-%{release}
Requires: libsndfile >= 1.0.20
+Requires: opus >= 0.9.7
Requires: pipewire-session-manager
Requires: systemd-units >= 1:250.1
+%{?with_lv2:Suggests: %{name}-filter-chain-lv2 = %{version}-%{release}}
+%{?with_libmysofa:Suggests: %{name}-filter-chain-sofa = %{version}-%{release}}
Suggests: rtkit
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Summary(pl.UTF-8): Wtyczka PipeWire SPA do dostępu do kamer przez libcamera
Group: Libraries
Requires: %{name}-libs = %{version}-%{release}
+Requires: libcamera >= 0.1.0
%description spa-module-libcamera
PipeWire SPA plugin to access cameras through libcamera.
Summary(pl.UTF-8): Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana
Group: Libraries
Requires: %{name}-libs = %{version}-%{release}
-Requires: Vulkan-Loader >= 1.1.69
+Requires: Vulkan-Loader >= 1.2.170
%description spa-module-vulkan
PipeWire SPA plugin to generate video frames using Vulkan.
%description spa-module-vulkan -l pl.UTF-8
Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana.
+%package filter-chain-lv2
+Summary: PipeWire LV2 filter chain
+Summary(pl.UTF-8): Łańcuch filtrów bazujących na LV2 dla PipeWire
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description filter-chain-lv2
+PipeWire LV2 filter chain.
+
+%description filter-chain-lv2 -l pl.UTF-8
+Łańcuch filtrów bazujących na LV2 dla PipeWire.
+
+%package filter-chain-sofa
+Summary: PipeWire libmysofa filter chain
+Summary(pl.UTF-8): Łańcuch filtrów bazujących na libmysofa dla PipeWire
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description filter-chain-sofa
+PipeWire libmysofa filter chain.
+
+%description filter-chain-sofa -l pl.UTF-8
+Łańcuch filtrów bazujących na libmysofa dla PipeWire.
+
%package jack
Summary: PipeWire JACK sound system integration
Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku JACK
%description jack -l pl.UTF-8
Integracja PipeWire z systemem dźwięku JACK.
+%package ffado
+Summary: PipeWire FFADO integration
+Summary(pl.UTF-8): Integracja PipeWire z FFADO
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description ffado
+PipeWire FFADO (Free FireWire Audio Drivers) integration.
+
+%description ffado -l pl.UTF-8
+Integracja PipeWire z FFADO (Free FireWire Audio Drivers).
+
%package pulseaudio
Summary: PipeWire PulseAudio sound system integration
Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku PulseAudio
%description roc -l pl.UTF-8
Integracja PipeWire ze strumieniami ROC.
+%package vulkan
+Summary: PipeWire Vulkan integration
+Summary(pl.UTF-8): Integracja PipeWire z Vulkanem
+Group: Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: %{name}-spa-module-vulkan
+
+%description vulkan
+PipeWire Vulkan integration.
+
+%description vulkan -l pl.UTF-8
+Integracja PipeWire z Vulkanem.
+
%package x11-bell
Summary: PipeWire module for X11 bell support
Summary(pl.UTF-8): Moduł PipeWire do obsługi dzwonka X11
%{!?with_gstreamer:-Dgstreamer=disabled} \
%{!?with_jack:-Djack=disabled} \
-Dlibcamera=%{__enabled_disabled libcamera} \
+ -Dlibffado=%{__enabled_disabled ffado} \
%{!?with_lv2:-Dlv2=disabled} \
-Dman=enabled \
%{!?with_jack:-Dpipewire-jack=disabled} \
# packaged as %doc in -apidocs
%{?with_apidocs:%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html}
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man7/libpipewire-module-example-*.7*
%find_lang %{name}
%attr(755,root,root) %{_bindir}/pipewire
%attr(755,root,root) %{_bindir}/pipewire-aes67
%attr(755,root,root) %{_bindir}/pipewire-avb
+%attr(755,root,root) %{_bindir}/pipewire-vulkan
%attr(755,root,root) %{_bindir}/pw-cat
%attr(755,root,root) %{_bindir}/pw-cli
+%attr(755,root,root) %{_bindir}/pw-config
%attr(755,root,root) %{_bindir}/pw-dot
%attr(755,root,root) %{_bindir}/pw-dsdplay
%attr(755,root,root) %{_bindir}/pw-dump
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-device.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-node.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-combine-stream.so
-# R: webrtc-audio-processing >= 0.2
+# R: webrtc-audio-processing1 >= 1.2
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-echo-cancel.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-fallback-sink.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-filter-chain.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-link-factory.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-loopback.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-metadata.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-netjack2-driver.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-netjack2-manager.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-pipe-tunnel.so
# R: dbus-libs
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-portal.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device-factory.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node-factory.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-vban-recv.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-vban-send.so
# R: avahi-libs
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-zeroconf-discover.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/v4l2/libpw-v4l2.so
%dir %{_libdir}/spa-0.2/aec
%attr(755,root,root) %{_libdir}/spa-0.2/aec/libspa-aec-null.so
-# R: webrtc-audio-processing >= 0.2
+# R: webrtc-audio-processing1 >= 1.2
%attr(755,root,root) %{_libdir}/spa-0.2/aec/libspa-aec-webrtc.so
%dir %{_libdir}/spa-0.2/audioconvert
%attr(755,root,root) %{_libdir}/spa-0.2/audioconvert/libspa-audioconvert.so
%{_mandir}/man1/pipewire.1*
%{_mandir}/man1/pw-cat.1*
%{_mandir}/man1/pw-cli.1*
+%{_mandir}/man1/pw-config.1*
%{_mandir}/man1/pw-dot.1*
+%{_mandir}/man1/pw-dump.1*
%{_mandir}/man1/pw-link.1*
+%{_mandir}/man1/pw-loopback.1*
%{_mandir}/man1/pw-metadata.1*
%{_mandir}/man1/pw-mididump.1*
%{_mandir}/man1/pw-mon.1*
%{_mandir}/man1/pw-profiler.1*
%{_mandir}/man1/pw-top.1*
%{_mandir}/man5/pipewire.conf.5*
+%{_mandir}/man7/libpipewire-module-access.7*
+%{_mandir}/man7/libpipewire-module-adapter.7*
+%{_mandir}/man7/libpipewire-module-avb.7*
+%{_mandir}/man7/libpipewire-module-client-device.7*
+%{_mandir}/man7/libpipewire-module-client-node.7*
+%{_mandir}/man7/libpipewire-module-combine-stream.7*
+%{_mandir}/man7/libpipewire-module-echo-cancel.7*
+%{_mandir}/man7/libpipewire-module-fallback-sink.7*
+%{_mandir}/man7/libpipewire-module-filter-chain.7*
+%{_mandir}/man7/libpipewire-module-link-factory.7*
+%{_mandir}/man7/libpipewire-module-loopback.7*
+%{_mandir}/man7/libpipewire-module-metadata.7*
+%{_mandir}/man7/libpipewire-module-netjack2-driver.7*
+%{_mandir}/man7/libpipewire-module-netjack2-manager.7*
+%{_mandir}/man7/libpipewire-module-pipe-tunnel.7*
+%{_mandir}/man7/libpipewire-module-portal.7*
+%{_mandir}/man7/libpipewire-module-profiler.7*
+%{_mandir}/man7/libpipewire-module-protocol-native.7*
+%{_mandir}/man7/libpipewire-module-protocol-pulse.7*
+%{_mandir}/man7/libpipewire-module-protocol-simple.7*
+%{_mandir}/man7/libpipewire-module-raop-discover.7*
+%{_mandir}/man7/libpipewire-module-raop-sink.7*
+%{_mandir}/man7/libpipewire-module-rt.7*
+%{_mandir}/man7/libpipewire-module-rtp-sap.7*
+%{_mandir}/man7/libpipewire-module-rtp-session.7*
+%{_mandir}/man7/libpipewire-module-rtp-sink.7*
+%{_mandir}/man7/libpipewire-module-rtp-source.7*
+%{_mandir}/man7/libpipewire-module-session-manager.7*
+%{_mandir}/man7/libpipewire-module-vban-recv.7*
+%{_mandir}/man7/libpipewire-module-vban-send.7*
+%{_mandir}/man7/libpipewire-module-zeroconf-discover.7*
+%{_mandir}/man7/libpipewire-modules.7*
+%{_mandir}/man7/pipewire-pulse-module-alsa-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-alsa-source.7*
+%{_mandir}/man7/pipewire-pulse-module-always-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-combine-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-echo-cancel.7*
+%{_mandir}/man7/pipewire-pulse-module-gsettings.7*
+%{_mandir}/man7/pipewire-pulse-module-jackdbus-detect.7*
+%{_mandir}/man7/pipewire-pulse-module-ladspa-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-ladspa-source.7*
+%{_mandir}/man7/pipewire-pulse-module-loopback.7*
+%{_mandir}/man7/pipewire-pulse-module-native-protocol-tcp.7*
+%{_mandir}/man7/pipewire-pulse-module-null-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-pipe-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-pipe-source.7*
+%{_mandir}/man7/pipewire-pulse-module-raop-discover.7*
+%{_mandir}/man7/pipewire-pulse-module-remap-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-remap-source.7*
+%{_mandir}/man7/pipewire-pulse-module-roc-sink-input.7*
+%{_mandir}/man7/pipewire-pulse-module-roc-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-roc-source.7*
+%{_mandir}/man7/pipewire-pulse-module-rtp-recv.7*
+%{_mandir}/man7/pipewire-pulse-module-rtp-send.7*
+%{_mandir}/man7/pipewire-pulse-module-simple-protocol-tcp.7*
+%{_mandir}/man7/pipewire-pulse-module-switch-on-connect.7*
+%{_mandir}/man7/pipewire-pulse-module-tunnel-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-tunnel-source.7*
+%{_mandir}/man7/pipewire-pulse-module-virtual-sink.7*
+%{_mandir}/man7/pipewire-pulse-module-virtual-source.7*
+%{_mandir}/man7/pipewire-pulse-module-x11-bell.7*
+%{_mandir}/man7/pipewire-pulse-module-zeroconf-discover.7*
+%{_mandir}/man7/pipewire-pulse-module-zeroconf-publish.7*
+%{_mandir}/man7/pipewire-pulse-modules.7*
%files libs
%defattr(644,root,root,755)
# R: Vulkan-Loader
%attr(755,root,root) %{_libdir}/spa-0.2/vulkan/libspa-vulkan.so
+%if %{with ffado}
+%files ffado
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-ffado-driver.so
+%{_mandir}/man7/libpipewire-module-ffado-driver.7*
+%endif
+
+%if %{with lv2}
+%files filter-chain-lv2
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-filter-chain-lv2.so
+%endif
+
+%if %{with libmysofa}
+%files filter-chain-sofa
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-filter-chain-sofa.so
+%endif
+
%if %{with jack}
%files jack
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/pw-jack
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-jack-tunnel.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-jackdbus-detect.so
%dir %{_libdir}/pipewire-0.3/jack
%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjack.so*
%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjacknet.so*
%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjackserver.so*
%{_datadir}/pipewire/jack.conf
%{_mandir}/man1/pw-jack.1*
+%{_mandir}/man7/libpipewire-module-jack-tunnel.7.gz
+%{_mandir}/man7/libpipewire-module-jackdbus-detect.7.gz
%endif
%files pulseaudio
%{systemduserunitdir}/pipewire-pulse.service
%{systemduserunitdir}/pipewire-pulse.socket
%{_mandir}/man1/pipewire-pulse.1*
+%{_mandir}/man5/pipewire-pulse.conf.5*
+%{_mandir}/man7/libpipewire-module-pulse-tunnel.7*
%if %{with roc}
%files roc
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-roc-sink.so
# R: roc-toolkit
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-roc-source.so
+%{_mandir}/man7/libpipewire-module-roc-sink.7*
+%{_mandir}/man7/libpipewire-module-roc-source.7*
%endif
+%files vulkan
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/pipewire-vulkan
+%{_datadir}/pipewire/pipewire-vulkan.conf
+
%if %{with x11}
%files x11-bell
%defattr(644,root,root,755)
# R: libX11 libXfixes libcanberra
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-x11-bell.so
+%{_mandir}/man7/libpipewire-module-x11-bell.7*
%endif
%files -n alsa-plugin-pipewire