# TODO: evl support (BR: libevl-devel, https://evlproject.org/)
-# - enable bluez5-codec-lc3
#
# Conditional build:
%bcond_without apidocs # Doxygen based API documentation
%bcond_without ffmpeg # ffmpeg spa plugin integration
%bcond_without gstreamer # GStreamer module
%bcond_without jack # pipewire-jack and jack spa plugin integration
+%bcond_with lc3plus # Bluez lc3plus codec
%bcond_with libcamera # libcamera plugin
%bcond_without libmysofa # libmysofa filter chain support
%bcond_without lv2 # LV2 plugins 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.82
+Version: 1.0.6
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: 6e6f9b373f8ee358d781e662ad64c85e
+# Source0-md5: e2df47aab0aaee6ff0fd1d121c80df31
Patch0: %{name}-gcc.patch
+Patch1: %{name}-lc3plus.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}
%endif
%{?with_jack:BuildRequires: jack-audio-connection-kit-devel >= 1.9.17}
BuildRequires: ldacBT-devel
+%{?with_lc3plus:BuildRequires: libLC3plus-devel >= 1.4.1}
%ifarch i386 i486 %{armv4} %{armv5} %{armv6}
# possibly more 32-bit archs (where 8-byte __atomic_store_n require libatomic)
BuildRequires: libatomic-devel
%endif
-%{?with_libcamera:BuildRequires: libcamera-devel >= 0.1.0}
+%{?with_libcamera:BuildRequires: libcamera-devel >= 0.2.0}
%{?with_x11:BuildRequires: libcanberra-devel}
BuildRequires: libcap-devel
BuildRequires: libdrm-devel >= 2.4.98
%{?with_ffado:BuildRequires: libffado-devel}
BuildRequires: libfreeaptx-devel
+BuildRequires: liblc3-devel
%{?with_libmysofa:BuildRequires: libmysofa-devel}
BuildRequires: libselinux-devel
BuildRequires: libsndfile-devel >= 1.0.20
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
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
+Requires: libcamera >= 0.2.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.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
%build
%meson build \
-Daudiotestsrc=enabled \
-Dbluez5-backend-hsphfpd=enabled \
-Dbluez5-backend-native-mm=enabled \
+ %{!?with_lc3plus:-Dbluez5-codec-lc3plus=disabled} \
-Dcompress-offload=enabled \
%{?with_apidocs:-Ddocs=enabled} \
%{?with_ffmpeg:-Dffmpeg=enabled} \
# 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}/spa-resample
%dir %{_sysconfdir}/pipewire
%dir %{_datadir}/pipewire
-%{_datadir}/pipewire/client.conf
-%{_datadir}/pipewire/client-rt.conf
%{_datadir}/pipewire/filter-chain.conf
%{_datadir}/pipewire/minimal.conf
%{_datadir}/pipewire/pipewire.conf
%{_datadir}/pipewire/pipewire-aes67.conf
%{_datadir}/pipewire/pipewire-avb.conf
-%dir %{_datadir}/pipewire/client-rt.conf.avail
-%{_datadir}/pipewire/client-rt.conf.avail/20-upmix.conf
-%dir %{_datadir}/pipewire/client.conf.avail
-%{_datadir}/pipewire/client.conf.avail/20-upmix.conf
%dir %{_datadir}/pipewire/filter-chain
%{_datadir}/pipewire/filter-chain/demonic.conf
%{_datadir}/pipewire/filter-chain/sink-dolby-surround.conf
%{systemduserunitdir}/pipewire.service
%{systemduserunitdir}/pipewire.socket
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-access.so
-%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-adapter.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-avb.so
-%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-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-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-profiler.so
-# R: systemd-libs
-%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so
# R: dbus-libs systemd-libs
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-pulse.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-simple.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-raop-discover.so
# R: openssl
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-raop-sink.so
-%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rt.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtp-sap.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtp-session.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtp-sink.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtp-source.so
# R: dbus-libs
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtkit.so
-%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-session-manager.so
%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device.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}/spa-0.2/aec/libspa-aec-null.so
# 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
-%dir %{_libdir}/spa-0.2/audiomixer
-%attr(755,root,root) %{_libdir}/spa-0.2/audiomixer/libspa-audiomixer.so
%dir %{_libdir}/spa-0.2/audiotestsrc
%attr(755,root,root) %{_libdir}/spa-0.2/audiotestsrc/libspa-audiotestsrc.so
%dir %{_libdir}/spa-0.2/avb
%attr(755,root,root) %{_libdir}/spa-0.2/avb/libspa-avb.so
-%dir %{_libdir}/spa-0.2/control
-%attr(755,root,root) %{_libdir}/spa-0.2/control/libspa-control.so
-%dir %{_libdir}/spa-0.2/support
-# R: dbus-libs
-%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-dbus.so
-# R: systemd-libs
-%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-journal.so
-%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-support.so
%dir %{_libdir}/spa-0.2/v4l2
# R: udev-libs
%attr(755,root,root) %{_libdir}/spa-0.2/v4l2/libspa-v4l2.so
%{_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-reserve.1*
%{_mandir}/man1/pw-top.1*
+%{_mandir}/man1/pw-v4l2.1*
+%{_mandir}/man1/spa-inspect.1*
+%{_mandir}/man1/spa-json-dump.1*
+%{_mandir}/man1/spa-monitor.1*
+%{_mandir}/man1/spa-resample.1*
%{_mandir}/man5/pipewire.conf.5*
+%{_mandir}/man5/pipewire-filter-chain.conf.5*
+%{_mandir}/man7/libpipewire-module-access.7*
+%{_mandir}/man7/libpipewire-module-avb.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-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-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-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-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-devices.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)
%attr(755,root,root) %{_libdir}/libpipewire-0.3.so.*.*.*
%attr(755,root,root) %ghost %{_libdir}/libpipewire-0.3.so.0
%dir %{_libdir}/pipewire-0.3
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-adapter.so
+%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-metadata.so
+# R: systemd-libs
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rt.so
+%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-session-manager.so
%dir %{_libdir}/pipewire-0.3/v4l2
%dir %{_libdir}/spa-0.2
+%dir %{_libdir}/spa-0.2/audioconvert
+%attr(755,root,root) %{_libdir}/spa-0.2/audioconvert/libspa-audioconvert.so
+%dir %{_libdir}/spa-0.2/audiomixer
+%attr(755,root,root) %{_libdir}/spa-0.2/audiomixer/libspa-audiomixer.so
+%dir %{_libdir}/spa-0.2/control
+%attr(755,root,root) %{_libdir}/spa-0.2/control/libspa-control.so
+%dir %{_libdir}/spa-0.2/support
+# R: dbus-libs
+%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-dbus.so
+# R: systemd-libs
+%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-journal.so
+%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-support.so
+%{_datadir}/pipewire/client.conf
+%{_datadir}/pipewire/client-rt.conf
+%dir %{_datadir}/pipewire/client-rt.conf.avail
+%{_datadir}/pipewire/client-rt.conf.avail/20-upmix.conf
+%dir %{_datadir}/pipewire/client.conf.avail
+%{_datadir}/pipewire/client.conf.avail/20-upmix.conf
%dir %{_datadir}/spa-0.2
+%{_mandir}/man5/pipewire-client.conf.5*
+%{_mandir}/man7/libpipewire-module-adapter.7*
+%{_mandir}/man7/libpipewire-module-client-device.7*
+%{_mandir}/man7/libpipewire-module-client-node.7*
+%{_mandir}/man7/libpipewire-module-metadata.7*
+%{_mandir}/man7/libpipewire-module-protocol-native.7*
+%{_mandir}/man7/libpipewire-module-rt.7*
+%{_mandir}/man7/libpipewire-module-session-manager.7*
%files devel
%defattr(644,root,root,755)
# R: alsa-lib udev-libs
%attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so
%{_datadir}/alsa-card-profile
+%{_mandir}/man1/spa-acp-tool.1*
%files spa-module-bluez
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-aptx.so
# R: sbc
%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-faststream.so
+# R: liblc3
+%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-lc3.so
+%if %{with lc3plus}
+# R: libLC3plus
+%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-lc3plus.so
+%endif
# R: ldacBT
%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-ldac.so
# R: opus
%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}
%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjackserver.so*
%{_datadir}/pipewire/jack.conf
%{_mandir}/man1/pw-jack.1*
+%{_mandir}/man5/pipewire-jack.conf.5*
+%{_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)
# 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