1 # TODO: evl support (https://evlproject.org/)
4 %bcond_without apidocs # Doxygen based API documentation
5 %bcond_without ffmpeg # ffmpeg spa plugin integration
6 %bcond_without gstreamer # GStreamer module
7 %bcond_without jack # pipewire-jack and jack spa plugin integration
8 %bcond_without pulseaudio # pipewire-pulseaudio integration
10 Summary: PipeWire - server and user space API to deal with multimedia pipelines
11 Summary(pl.UTF-8): PipeWire - serwer i API przestrzeni użytkownika do obsługi potoków multimedialnych
17 #Source0Download: https://github.com/PipeWire/pipewire/releases
18 Source0: https://github.com/PipeWire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz
19 # Source0-md5: b39c50a59b779982cb888ca36d769d2d
20 Patch0: %{name}-gcc.patch
21 URL: https://pipewire.org/
23 BuildRequires: SDL2-devel >= 2
25 BuildRequires: Vulkan-Loader-devel
26 BuildRequires: alsa-lib-devel >= 1
27 BuildRequires: bluez-libs-devel >= 4.101
28 BuildRequires: dbus-devel
29 %{?with_apidocs:BuildRequires: doxygen}
30 # libavcodec libavformat libavfilter
31 %{?with_ffmpeg:BuildRequires: ffmpeg-devel}
32 BuildRequires: gcc >= 5:3.2
33 %if %{with gstreamer} || %{with pulseaudio}
34 BuildRequires: glib2-devel >= 1:2.32.0
36 %{?with_apidocs:BuildRequires: graphviz}
38 BuildRequires: gstreamer-devel >= 1.0
39 BuildRequires: gstreamer-plugins-base-devel >= 1.0
41 %{?with_jack:BuildRequires: jack-audio-connection-kit-devel >= 1.9.10}
42 BuildRequires: libsndfile-devel >= 1.0.20
43 BuildRequires: meson >= 0.50.0
44 BuildRequires: ninja >= 1.5
45 BuildRequires: pkgconfig
46 %{?with_pulseaudio:BuildRequires: pulseaudio-devel >= 11.1}
47 BuildRequires: rpmbuild(macros) >= 1.736
48 BuildRequires: sbc-devel
49 BuildRequires: systemd-devel
50 BuildRequires: udev-devel
51 BuildRequires: xmltoman
52 Requires: %{name}-libs = %{version}-%{release}
53 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56 PipeWire is a server and user space API to deal with multimedia
57 pipelines. This includes:
58 - Making available sources of video (such as from a capture devices
59 or application provided streams) and multiplexing this with
61 - Accessing sources of video for consumption.
62 - Generating graphs for audio and video processing.
64 Nodes in the graph can be implemented as separate processes,
65 communicating with sockets and exchanging multimedia content using fd
68 %description -l pl.UTF-8
69 PipeWire to serwer i API przestrzeni użytkownika do obsługi potoków
70 multimedialnych. Obejmuje to:
71 - udostępnianie źródeł obrazu (np. z urządzeń przechwytujących obraz
72 lub strumieni udostępnianych przez aplikacje) oraz multipleksowanie
74 - dostęp do źródeł obrazu do pobierania
75 - generowanie grafów do przetwarzania dźwięku i obrazu
78 Summary: PipeWire shared library
79 Summary(pl.UTF-8): Biblioteka współdzielona PipeWire
83 PipeWire shared library.
85 %description libs -l pl.UTF-8
86 Biblioteka współdzielona PipeWire.
89 Summary: Header files for PipeWire library and Simple Plugin API
90 Summary(pl.UTF-8): Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API
91 Group: Development/Libraries
92 Requires: %{name}-libs = %{version}-%{release}
95 Header files for PipeWire library and Simple Plugin API.
97 %description devel -l pl.UTF-8
98 Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API.
101 Summary: API documentation for PipeWire library
102 Summary(pl.UTF-8): Dokumentacja API biblioteki PipeWire
104 %if "%{_rpmversion}" >= "4.6"
109 API documentation for PipeWire library.
111 %description apidocs -l pl.UTF-8
112 Dokumentacja API biblioteki PipeWire.
114 %package spa-module-alsa
115 Summary: PipeWire SPA plugin to play and record audio with ALSA API
116 Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API ALSA
118 Requires: %{name}-libs = %{version}-%{release}
120 %description spa-module-alsa
121 PipeWire SPA plugin to play and record audio with ALSA API.
123 %description spa-module-alsa -l pl.UTF-8
124 Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
127 %package spa-module-bluez
128 Summary: PipeWire SPA plugin to play audio with Bluetooth A2DP
129 Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP
131 Requires: %{name}-libs = %{version}-%{release}
132 Requires: bluez-libs >= 4.101
134 %description spa-module-bluez
135 PipeWire SPA plugin to play audio with Bluetooth A2DP.
137 %description spa-module-bluez -l pl.UTF-8
138 Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP.
140 %package spa-module-ffmpeg
141 Summary: PipeWire SPA plugin to decode/encode with FFmpeg library
142 Summary(pl.UTF-8): Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki FFmpeg
144 Requires: %{name}-libs = %{version}-%{release}
146 %description spa-module-ffmpeg
147 PipeWire SPA plugin to decode/encode with FFmpeg library.
149 %description spa-module-ffmpeg -l pl.UTF-8
150 Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki
153 %package spa-module-jack
154 Summary: PipeWire SPA plugin to play and record audio with JACK API
155 Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API JACK
157 Requires: %{name}-libs = %{version}-%{release}
158 Requires: jack-audio-connection-kit >= 1.9.10
160 %description spa-module-jack
161 PipeWire SPA plugin to play and record audio with JACK API.
163 %description spa-module-jack -l pl.UTF-8
164 Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
167 %package spa-module-vulkan
168 Summary: PipeWire SPA plugin to generate video frames using Vulkan
169 Summary(pl.UTF-8): Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana
171 Requires: %{name}-libs = %{version}-%{release}
173 %description spa-module-vulkan
174 PipeWire SPA plugin to generate video frames using Vulkan.
176 %description spa-module-vulkan -l pl.UTF-8
177 Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana.
180 Summary: PipeWire JACK sound system integration
181 Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku JACK
183 Requires: %{name} = %{version}-%{release}
184 Requires: jack-audio-connection-kit >= 1.9.10
187 PipeWire JACK sound system integration.
189 %description jack -l pl.UTF-8
190 Integracja PipeWire z systemem dźwięku JACK.
193 Summary: PipeWire PulseAudio sound system integration
194 Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku PulseAudio
196 Requires: %{name} = %{version}-%{release}
197 Requires: pulseaudio >= 11.1
199 %description pulseaudio
200 PipeWire PulseAudio sound system integration.
202 %description pulseaudio -l pl.UTF-8
203 Integracja PipeWire z systemem dźwięku PulseAudio.
205 %package -n alsa-plugin-pipewire
206 Summary: PipeWire integration plugin for ALSA sound system
207 Summary(pl.UTF-8): Wtyczka systemu dźwięku ALSA integrująca z PipeWire
209 Requires: %{name} = %{version}-%{release}
210 Requires: alsa-lib >= 1
212 %description -n alsa-plugin-pipewire
213 PipeWire integration plugin for ALSA sound system.
215 %description -n alsa-plugin-pipewire -l pl.UTF-8
216 Wtyczka systemu dźwięku ALSA integrująca z PipeWire.
218 %package -n gstreamer-pipewire
219 Summary: PipeWire video sink and source plugin for GStreamer
220 Summary(pl.UTF-8): Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera
222 Requires: %{name} = %{version}-%{release}
223 Requires: gstreamer >= 1.0
224 Requires: gstreamer-plugins-base >= 1.0
226 %description -n gstreamer-pipewire
227 PipeWire video sink and source plugin for GStreamer.
229 %description -n gstreamer-pipewire -l pl.UTF-8
230 Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera.
238 -Daudiotestsrc=true \
239 %{?with_apidocs:-Ddocs=true} \
240 %{?with_ffmpeg:-Dffmpeg=true} \
241 %{!?with_gstreamer:-Dgstreamer=false} \
242 %{!?with_jack:-Djack=false} \
244 %{!?with_jack:-Dpipewire-jack=false} \
245 %{!?with_pulseaudio:-Dpipewire-pulseaudio=false} \
246 -Dvideotestsrc=true \
250 %ninja_build -C build
253 rm -rf $RPM_BUILD_ROOT
255 %ninja_install -C build
257 install -d $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
258 cp -p pipewire-alsa/conf/*.conf $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
260 # packaged as %doc in -apidocs
261 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html
264 rm -rf $RPM_BUILD_ROOT
266 %post libs -p /sbin/ldconfig
267 %postun libs -p /sbin/ldconfig
270 %defattr(644,root,root,755)
271 %attr(755,root,root) %{_bindir}/pipewire
272 %attr(755,root,root) %{_bindir}/pipewire-media-session
273 %attr(755,root,root) %{_bindir}/pw-cat
274 %attr(755,root,root) %{_bindir}/pw-cli
275 %attr(755,root,root) %{_bindir}/pw-dot
276 %attr(755,root,root) %{_bindir}/pw-mon
277 %attr(755,root,root) %{_bindir}/pw-play
278 %attr(755,root,root) %{_bindir}/pw-record
279 %attr(755,root,root) %{_bindir}/pw-profiler
280 %attr(755,root,root) %{_bindir}/spa-inspect
281 %attr(755,root,root) %{_bindir}/spa-monitor
282 %dir %{_sysconfdir}/pipewire
283 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pipewire/pipewire.conf
284 %{systemduserunitdir}/pipewire.service
285 %{systemduserunitdir}/pipewire.socket
286 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-access.so
287 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-adapter.so
288 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-device.so
289 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-node.so
290 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-link-factory.so
291 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-metadata.so
292 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-profiler.so
294 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so
296 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtkit.so
297 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-session-manager.so
298 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device.so
299 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device-factory.so
300 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node.so
301 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node-factory.so
302 %dir %{_libdir}/spa-0.2/audioconvert
303 %attr(755,root,root) %{_libdir}/spa-0.2/audioconvert/libspa-audioconvert.so
304 %dir %{_libdir}/spa-0.2/audiomixer
305 %attr(755,root,root) %{_libdir}/spa-0.2/audiomixer/libspa-audiomixer.so
306 %dir %{_libdir}/spa-0.2/audiotestsrc
307 %attr(755,root,root) %{_libdir}/spa-0.2/audiotestsrc/libspa-audiotestsrc.so
308 %dir %{_libdir}/spa-0.2/control
309 %attr(755,root,root) %{_libdir}/spa-0.2/control/libspa-control.so
310 %dir %{_libdir}/spa-0.2/support
312 %attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-dbus.so
313 %attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-support.so
314 %dir %{_libdir}/spa-0.2/v4l2
316 %attr(755,root,root) %{_libdir}/spa-0.2/v4l2/libspa-v4l2.so
317 %dir %{_libdir}/spa-0.2/videoconvert
318 %attr(755,root,root) %{_libdir}/spa-0.2/videoconvert/libspa-videoconvert.so
319 %dir %{_libdir}/spa-0.2/videotestsrc
320 %attr(755,root,root) %{_libdir}/spa-0.2/videotestsrc/libspa-videotestsrc.so
321 %dir %{_libdir}/spa-0.2/volume
322 %attr(755,root,root) %{_libdir}/spa-0.2/volume/libspa-volume.so
323 %{_mandir}/man1/pipewire.1*
324 %{_mandir}/man1/pw-cli.1*
325 %{_mandir}/man1/pw-mon.1*
326 %{_mandir}/man5/pipewire.conf.5*
329 %defattr(644,root,root,755)
330 %doc COPYING LICENSE NEWS README.md
331 %attr(755,root,root) %{_libdir}/libpipewire-0.3.so.*.*.*
332 %attr(755,root,root) %ghost %{_libdir}/libpipewire-0.3.so.0
333 %dir %{_libdir}/pipewire-0.3
334 %dir %{_libdir}/spa-0.2
337 %defattr(644,root,root,755)
338 %attr(755,root,root) %{_libdir}/libpipewire-0.3.so
339 %{_includedir}/pipewire-0.3
340 %{_includedir}/spa-0.2
341 %{_pkgconfigdir}/libpipewire-0.3.pc
342 %{_pkgconfigdir}/libspa-0.2.pc
346 %defattr(644,root,root,755)
347 %doc doc/design.txt build/doc/html/*
350 %files spa-module-alsa
351 %defattr(644,root,root,755)
352 %dir %{_libdir}/spa-0.2/alsa
353 # R: alsa-lib udev-libs
354 %attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so
356 %files spa-module-bluez
357 %defattr(644,root,root,755)
358 %dir %{_libdir}/spa-0.2/bluez5
360 %attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so
362 %files spa-module-ffmpeg
363 %defattr(644,root,root,755)
364 %dir %{_libdir}/spa-0.2/ffmpeg
366 %attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so
368 %files spa-module-vulkan
369 %defattr(644,root,root,755)
370 %dir %{_libdir}/spa-0.2/vulkan
372 %attr(755,root,root) %{_libdir}/spa-0.2/vulkan/libspa-vulkan.so
376 %defattr(644,root,root,755)
377 %attr(755,root,root) %{_libdir}/libjack-pw.so.*.*.*
378 %attr(755,root,root) %{_libdir}/libjack-pw.so
381 %if %{with pulseaudio}
383 %defattr(644,root,root,755)
384 %doc pipewire-pulseaudio/README.md
385 %attr(755,root,root) %{_libdir}/libpulse-mainloop-glib-pw.so.*.*.*
386 %attr(755,root,root) %{_libdir}/libpulse-mainloop-glib-pw.so
387 %attr(755,root,root) %{_libdir}/libpulse-pw.so.*.*.*
388 %attr(755,root,root) %{_libdir}/libpulse-pw.so
389 %attr(755,root,root) %{_libdir}/libpulse-simple-pw.so.*.*.*
390 %attr(755,root,root) %{_libdir}/libpulse-simple-pw.so
393 %files -n alsa-plugin-pipewire
394 %defattr(644,root,root,755)
395 %attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so
396 %{_datadir}/alsa/alsa.conf.d/50-pipewire.conf
397 %{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf
399 %if %{with gstreamer}
400 %files -n gstreamer-pipewire
401 %defattr(644,root,root,755)
402 %attr(755,root,root) %{_libdir}/gstreamer-1.0/libgstpipewire.so