X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=pipewire.spec;h=b67abe005743b40adf013b2c420abe046400099a;hb=refs%2Ftags%2Fauto%2Fth%2Fpipewire-0.3.43-3;hp=a23a1f68697fc7bf1cae74d2f37313189af04bf1;hpb=9aad7b12447c8514109cb7e9cdda30327cd44eb9;p=packages%2Fpipewire.git diff --git a/pipewire.spec b/pipewire.spec index a23a1f6..b67abe0 100644 --- a/pipewire.spec +++ b/pipewire.spec @@ -1,55 +1,81 @@ -# TODO: evl support (https://evlproject.org/) +# TODO: evl support (BR: libevl-devel, https://evlproject.org/) +# - libcamera integration (no releases yet; ARM specific?) # # 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_without pulseaudio # pipewire-pulseaudio integration +%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.2 -Release: 1 -License: LGPL v2+ +Version: 0.3.43 +Release: 3 +License: MIT, LGPL v2+, GPL v2 Group: Libraries #Source0Download: https://github.com/PipeWire/pipewire/releases Source0: https://github.com/PipeWire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz -# Source0-md5: b39c50a59b779982cb888ca36d769d2d +# Source0-md5: 6e12461b046e45c4c47bd7face365818 Patch0: %{name}-gcc.patch URL: https://pipewire.org/ %if %{with jack} BuildRequires: SDL2-devel >= 2 %endif -BuildRequires: Vulkan-Loader-devel -BuildRequires: alsa-lib-devel >= 1 +BuildRequires: Vulkan-Loader-devel >= 1.1.69 +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: fdk-aac-devel # libavcodec libavformat libavfilter %{?with_ffmpeg:BuildRequires: ffmpeg-devel} BuildRequires: gcc >= 5:3.2 -%if %{with gstreamer} || %{with pulseaudio} +BuildRequires: gettext-tools +%if %{with gstreamer} BuildRequires: glib2-devel >= 1:2.32.0 %endif %{?with_apidocs:BuildRequires: graphviz} %if %{with gstreamer} -BuildRequires: gstreamer-devel >= 1.0 -BuildRequires: gstreamer-plugins-base-devel >= 1.0 +BuildRequires: gstreamer-devel >= 1.10 +BuildRequires: gstreamer-plugins-base-devel >= 1.10 +%endif +%{?with_jack:BuildRequires: jack-audio-connection-kit-devel >= 1.9.17} +BuildRequires: ldacBT-devel +%ifarch i386 i486 %{armv4} %{armv5} %{armv6} +# possibly more 32-bit archs (where 8-byte __atomic_store_n require libatomic) +BuildRequires: libatomic-devel %endif -%{?with_jack:BuildRequires: jack-audio-connection-kit-devel >= 1.9.10} +BuildRequires: libcap-devel +# for libcamera +#BuildRequires: libdrm-devel >= 2.4.98 +BuildRequires: libfreeaptx-devel BuildRequires: libsndfile-devel >= 1.0.20 -BuildRequires: meson >= 0.50.0 +BuildRequires: libstdc++-devel >= 6:7 +BuildRequires: libusb-devel >= 1.0 +%{?with_lv2:BuildRequires: lilv-devel} +BuildRequires: meson >= 0.56.0 +BuildRequires: ncurses-devel BuildRequires: ninja >= 1.5 +BuildRequires: openssl-devel BuildRequires: pkgconfig -%{?with_pulseaudio:BuildRequires: pulseaudio-devel >= 11.1} -BuildRequires: rpmbuild(macros) >= 1.736 +BuildRequires: pulseaudio-devel +BuildRequires: readline-devel >= 8.1.1-2 +BuildRequires: rpm-build >= 4.6 +BuildRequires: rpmbuild(macros) >= 2.011 BuildRequires: sbc-devel BuildRequires: systemd-devel BuildRequires: udev-devel -BuildRequires: xmltoman +BuildRequires: webrtc-audio-processing-devel >= 0.2 +BuildRequires: webrtc-audio-processing-devel < 1.0 Requires: %{name}-libs = %{version}-%{release} +Requires: libsndfile >= 1.0.20 +Requires: pipewire-session-manager +Suggests: rtkit BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %description @@ -101,9 +127,7 @@ Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API. Summary: API documentation for PipeWire library Summary(pl.UTF-8): Dokumentacja API biblioteki PipeWire Group: Documentation -%if "%{_rpmversion}" >= "4.6" BuildArch: noarch -%endif %description apidocs API documentation for PipeWire library. @@ -116,6 +140,7 @@ Summary: PipeWire SPA plugin to play and record audio with ALSA API Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API ALSA Group: Libraries Requires: %{name}-libs = %{version}-%{release} +Requires: alsa-lib >= 1.1.7 %description spa-module-alsa PipeWire SPA plugin to play and record audio with ALSA API. @@ -155,7 +180,7 @@ Summary: PipeWire SPA plugin to play and record audio with JACK API Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API JACK Group: Libraries Requires: %{name}-libs = %{version}-%{release} -Requires: jack-audio-connection-kit >= 1.9.10 +Requires: jack-audio-connection-kit >= 1.9.17 %description spa-module-jack PipeWire SPA plugin to play and record audio with JACK API. @@ -169,6 +194,7 @@ Summary: PipeWire SPA plugin to generate video frames using Vulkan 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 %description spa-module-vulkan PipeWire SPA plugin to generate video frames using Vulkan. @@ -181,7 +207,7 @@ Summary: PipeWire JACK sound system integration Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku JACK Group: Libraries Requires: %{name} = %{version}-%{release} -Requires: jack-audio-connection-kit >= 1.9.10 +Requires: jack-audio-connection-kit >= 1.9.17 %description jack PipeWire JACK sound system integration. @@ -194,7 +220,7 @@ Summary: PipeWire PulseAudio sound system integration Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku PulseAudio Group: Libraries Requires: %{name} = %{version}-%{release} -Requires: pulseaudio >= 11.1 +Suggests: pulseaudio-tools %description pulseaudio PipeWire PulseAudio sound system integration. @@ -207,7 +233,7 @@ Summary: PipeWire integration plugin for ALSA sound system Summary(pl.UTF-8): Wtyczka systemu dźwięku ALSA integrująca z PipeWire Group: Libraries Requires: %{name} = %{version}-%{release} -Requires: alsa-lib >= 1 +Requires: alsa-lib >= 1.1.7 %description -n alsa-plugin-pipewire PipeWire integration plugin for ALSA sound system. @@ -220,8 +246,9 @@ Summary: PipeWire video sink and source plugin for GStreamer Summary(pl.UTF-8): Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera Group: Libraries Requires: %{name} = %{version}-%{release} -Requires: gstreamer >= 1.0 -Requires: gstreamer-plugins-base >= 1.0 +Requires: glib2 >= 1:2.32.0 +Requires: gstreamer >= 1.10 +Requires: gstreamer-plugins-base >= 1.10 %description -n gstreamer-pipewire PipeWire video sink and source plugin for GStreamer. @@ -235,17 +262,20 @@ Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera. %build %meson build \ - -Daudiotestsrc=true \ - %{?with_apidocs:-Ddocs=true} \ - %{?with_ffmpeg:-Dffmpeg=true} \ - %{!?with_gstreamer:-Dgstreamer=false} \ - %{!?with_jack:-Djack=false} \ - -Dman=true \ - %{!?with_jack:-Dpipewire-jack=false} \ - %{!?with_pulseaudio:-Dpipewire-pulseaudio=false} \ - -Dvideotestsrc=true \ - -Dvolume=true -# TODO: -Devl=true + -Daudiotestsrc=enabled \ + -Dbluez5-backend-hsphfpd=enabled \ + %{?with_apidocs:-Ddocs=enabled} \ + %{?with_ffmpeg:-Dffmpeg=enabled} \ + %{!?with_gstreamer:-Dgstreamer=disabled} \ + %{!?with_jack:-Djack=disabled} \ + %{!?with_lv2:-Dlv2=disabled} \ + -Dman=enabled \ + %{!?with_jack:-Dpipewire-jack=disabled} \ + -Dsession-managers='[]' \ + -Dvideotestsrc=enabled \ + -Dvolume=enabled \ + -Dvulkan=enabled +# TODO: -Devl=enabled %ninja_build -C build @@ -254,44 +284,94 @@ rm -rf $RPM_BUILD_ROOT %ninja_install -C build -install -d $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d +install -d $RPM_BUILD_ROOT{%{_sysconfdir}/pipewire,%{_datadir}/alsa/alsa.conf.d} cp -p pipewire-alsa/conf/*.conf $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d # packaged as %doc in -apidocs -%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html +%{?with_apidocs:%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html} + +%find_lang %{name} %clean rm -rf $RPM_BUILD_ROOT +%post +%systemd_user_post pipewire.service + +%preun +%systemd_user_preun pipewire.service + %post libs -p /sbin/ldconfig %postun libs -p /sbin/ldconfig -%files +%post pulseaudio +%systemd_user_post pipewire-pulse.service + +%preun pulseaudio +%systemd_user_preun pipewire-pulse.service + +%files -f %{name}.lang %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/pipewire -%attr(755,root,root) %{_bindir}/pipewire-media-session %attr(755,root,root) %{_bindir}/pw-cat %attr(755,root,root) %{_bindir}/pw-cli %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) %{_bindir}/pw-link +%attr(755,root,root) %{_bindir}/pw-loopback +%attr(755,root,root) %{_bindir}/pw-metadata +%attr(755,root,root) %{_bindir}/pw-mididump +%attr(755,root,root) %{_bindir}/pw-midiplay +%attr(755,root,root) %{_bindir}/pw-midirecord %attr(755,root,root) %{_bindir}/pw-mon %attr(755,root,root) %{_bindir}/pw-play -%attr(755,root,root) %{_bindir}/pw-record %attr(755,root,root) %{_bindir}/pw-profiler +%attr(755,root,root) %{_bindir}/pw-record +%attr(755,root,root) %{_bindir}/pw-reserve +%attr(755,root,root) %{_bindir}/pw-top +%attr(755,root,root) %{_bindir}/pw-v4l2 %attr(755,root,root) %{_bindir}/spa-inspect +%attr(755,root,root) %{_bindir}/spa-json-dump %attr(755,root,root) %{_bindir}/spa-monitor +# R: libsndfile +%attr(755,root,root) %{_bindir}/spa-resample %dir %{_sysconfdir}/pipewire -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pipewire/pipewire.conf +%dir %{_datadir}/pipewire +%{_datadir}/pipewire/client.conf +%{_datadir}/pipewire/client-rt.conf +%{_datadir}/pipewire/pipewire.conf +%dir %{_datadir}/pipewire/filter-chain +%{_datadir}/pipewire/filter-chain/demonic.conf +%{_datadir}/pipewire/filter-chain/sink-dolby-surround.conf +%{_datadir}/pipewire/filter-chain/sink-eq6.conf +%{_datadir}/pipewire/filter-chain/sink-matrix-spatialiser.conf +%{_datadir}/pipewire/filter-chain/sink-virtual-surround-5.1-kemar.conf +%{_datadir}/pipewire/filter-chain/sink-virtual-surround-7.1-hesuvi.conf +%{_datadir}/pipewire/filter-chain/source-rnnoise.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-client-device.so %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-node.so +# R: webrtc-audio-processing >= 0.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 +# 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 +%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 # 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 @@ -299,6 +379,9 @@ rm -rf $RPM_BUILD_ROOT %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 +# 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/audioconvert %attr(755,root,root) %{_libdir}/spa-0.2/audioconvert/libspa-audioconvert.so %dir %{_libdir}/spa-0.2/audiomixer @@ -310,6 +393,8 @@ rm -rf $RPM_BUILD_ROOT %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 @@ -321,8 +406,13 @@ rm -rf $RPM_BUILD_ROOT %dir %{_libdir}/spa-0.2/volume %attr(755,root,root) %{_libdir}/spa-0.2/volume/libspa-volume.so %{_mandir}/man1/pipewire.1* +%{_mandir}/man1/pw-cat.1* %{_mandir}/man1/pw-cli.1* +%{_mandir}/man1/pw-dot.1* +%{_mandir}/man1/pw-metadata.1* +%{_mandir}/man1/pw-mididump.1* %{_mandir}/man1/pw-mon.1* +%{_mandir}/man1/pw-profiler.1* %{_mandir}/man5/pipewire.conf.5* %files libs @@ -331,7 +421,9 @@ rm -rf $RPM_BUILD_ROOT %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 +%dir %{_libdir}/pipewire-0.3/v4l2 %dir %{_libdir}/spa-0.2 +%dir %{_datadir}/spa-0.2 %files devel %defattr(644,root,root,755) @@ -344,20 +436,34 @@ rm -rf $RPM_BUILD_ROOT %if %{with apidocs} %files apidocs %defattr(644,root,root,755) -%doc doc/design.txt build/doc/html/* +%doc build/doc/html/* %endif %files spa-module-alsa %defattr(644,root,root,755) +%attr(755,root,root) %{_bindir}/spa-acp-tool %dir %{_libdir}/spa-0.2/alsa # R: alsa-lib udev-libs %attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so +%{_datadir}/alsa-card-profile %files spa-module-bluez %defattr(644,root,root,755) %dir %{_libdir}/spa-0.2/bluez5 -# R: dbus-libs sbc +# R: bluez-libs >= 4.101 dbus-libs libusb >= 1.0 sbc %attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so +# R: fdk-aac +%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-aac.so +# R: libfreeaptx sbc +%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: ldacBT +%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-ldac.so +# R: sbc +%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-codec-bluez5-sbc.so +%dir %{_datadir}/spa-0.2/bluez5 +%{_datadir}/spa-0.2/bluez5/bluez-hardware.conf %files spa-module-ffmpeg %defattr(644,root,root,755) @@ -365,6 +471,14 @@ rm -rf $RPM_BUILD_ROOT # R: ffmpeg-libs %attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so +%if %{with jack} +%files spa-module-jack +%defattr(644,root,root,755) +%dir %{_libdir}/spa-0.2/jack +# R: jack-audio-connection-kit-libs +%attr(755,root,root) %{_libdir}/spa-0.2/jack/libspa-jack.so +%endif + %files spa-module-vulkan %defattr(644,root,root,755) %dir %{_libdir}/spa-0.2/vulkan @@ -374,27 +488,32 @@ rm -rf $RPM_BUILD_ROOT %if %{with jack} %files jack %defattr(644,root,root,755) -%attr(755,root,root) %{_libdir}/libjack-pw.so.*.*.* -%attr(755,root,root) %{_libdir}/libjack-pw.so +%attr(755,root,root) %{_bindir}/pw-jack +%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* %endif -%if %{with pulseaudio} %files pulseaudio %defattr(644,root,root,755) -%doc pipewire-pulseaudio/README.md -%attr(755,root,root) %{_libdir}/libpulse-mainloop-glib-pw.so.*.*.* -%attr(755,root,root) %{_libdir}/libpulse-mainloop-glib-pw.so -%attr(755,root,root) %{_libdir}/libpulse-pw.so.*.*.* -%attr(755,root,root) %{_libdir}/libpulse-pw.so -%attr(755,root,root) %{_libdir}/libpulse-simple-pw.so.*.*.* -%attr(755,root,root) %{_libdir}/libpulse-simple-pw.so -%endif +%attr(755,root,root) %{_bindir}/pipewire-pulse +# R: pulseaudio-libs +%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-pulse-tunnel.so +%{_datadir}/pipewire/pipewire-pulse.conf +%{systemduserunitdir}/pipewire-pulse.service +%{systemduserunitdir}/pipewire-pulse.socket +%{_mandir}/man1/pipewire-pulse.1* %files -n alsa-plugin-pipewire %defattr(644,root,root,755) +%attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so %attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so %{_datadir}/alsa/alsa.conf.d/50-pipewire.conf %{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf +/lib/udev/rules.d/90-pipewire-alsa.rules %if %{with gstreamer} %files -n gstreamer-pipewire