]> git.pld-linux.org Git - packages/pipewire.git/blobdiff - pipewire.spec
up to 0.3.38
[packages/pipewire.git] / pipewire.spec
index 210a3969a710cd5a807511421e363218062924a4..0d90cb75449916550115e37c3e6586ee420aea15 100644 (file)
@@ -1,55 +1,75 @@
-# 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
 #
 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
+Version:       0.3.38
 Release:       1
-License:       LGPL v2+
+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: a66a2b856bede375c12091f5468d06c7
 Patch0:                %{name}-gcc.patch
+Patch1:                arm_build.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: libusb-devel >= 1.0
+BuildRequires: meson >= 0.54.0
+BuildRequires: ncurses-devel
 BuildRequires: ninja >= 1.5
 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: rpmbuild(macros) >= 2.007
 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
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -101,9 +121,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 +134,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 +174,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 +188,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 +201,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 +214,6 @@ 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
 
 %description pulseaudio
 PipeWire PulseAudio sound system integration.
@@ -207,7 +226,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 +239,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.
@@ -232,20 +252,22 @@ Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %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} \
+       -Dman=enabled \
+       %{!?with_jack:-Dpipewire-jack=disabled} \
+       -Dvideotestsrc=enabled \
+       -Dvolume=enabled \
+       -Dvulkan=enabled
+# TODO: -Devl=enabled
 
 %ninja_build -C build
 
@@ -254,11 +276,13 @@ 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
@@ -266,32 +290,70 @@ rm -rf $RPM_BUILD_ROOT
 %post  libs -p /sbin/ldconfig
 %postun        libs -p /sbin/ldconfig
 
-%files
+%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}/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
+%dir %{_datadir}/pipewire/media-session.d
+%{_datadir}/pipewire/media-session.d/media-session.conf
+%{_datadir}/pipewire/media-session.d/v4l2-monitor.conf
 %{systemduserunitdir}/pipewire.service
 %{systemduserunitdir}/pipewire.socket
+%{systemduserunitdir}/pipewire-media-session.service
 %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-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 +361,8 @@ 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
 %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 +374,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 +387,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
@@ -332,6 +403,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %ghost %{_libdir}/libpipewire-0.3.so.0
 %dir %{_libdir}/pipewire-0.3
 %dir %{_libdir}/spa-0.2
+%dir %{_datadir}/spa-0.2
 
 %files devel
 %defattr(644,root,root,755)
@@ -344,20 +416,36 @@ 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
+%{_datadir}/pipewire/media-session.d/alsa-monitor.conf
 
 %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
+%{_datadir}/pipewire/media-session.d/bluez-monitor.conf
+%dir %{_datadir}/spa-0.2/bluez5
+%{_datadir}/spa-0.2/bluez5/bluez-hardware.conf
 
 %files spa-module-ffmpeg
 %defattr(644,root,root,755)
@@ -382,27 +470,33 @@ 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
+%{_datadir}/pipewire/media-session.d/with-jack
+%{_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
+%{_datadir}/pipewire/media-session.d/with-pulseaudio
+%{systemduserunitdir}/pipewire-pulse.service
+%{systemduserunitdir}/pipewire-pulse.socket
 
 %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
This page took 0.097465 seconds and 4 git commands to generate.