- updated to 0.3.17
[packages/pipewire.git] / pipewire.spec
1 # TODO: evl support (BR: libevl-devel, https://evlproject.org/)
2 # - libcamera integration (no releases yet; ARM specific?)
3 #
4 # Conditional build:
5 %bcond_without  apidocs         # Doxygen based API documentation
6 %bcond_without  ffmpeg          # ffmpeg spa plugin integration
7 %bcond_without  gstreamer       # GStreamer module
8 %bcond_without  jack            # pipewire-jack and jack spa plugin integration
9 %bcond_without  pulseaudio      # pipewire-pulseaudio integration
10 #
11 Summary:        PipeWire - server and user space API to deal with multimedia pipelines
12 Summary(pl.UTF-8):      PipeWire - serwer i API przestrzeni użytkownika do obsługi potoków multimedialnych
13 Name:           pipewire
14 Version:        0.3.17
15 Release:        1
16 License:        LGPL v2+
17 Group:          Libraries
18 #Source0Download: https://github.com/PipeWire/pipewire/releases
19 Source0:        https://github.com/PipeWire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz
20 # Source0-md5:  cf551f35c83a1fa77fd31983ade00082
21 Patch0:         %{name}-gcc.patch
22 URL:            https://pipewire.org/
23 %if %{with jack}
24 BuildRequires:  SDL2-devel >= 2
25 %endif
26 BuildRequires:  Vulkan-Loader-devel >= 1.1.69
27 BuildRequires:  alsa-lib-devel >= 1.1.7
28 BuildRequires:  bluez-libs-devel >= 4.101
29 BuildRequires:  dbus-devel
30 %{?with_apidocs:BuildRequires:  doxygen}
31 # libavcodec libavformat libavfilter
32 %{?with_ffmpeg:BuildRequires:   ffmpeg-devel}
33 BuildRequires:  gcc >= 5:3.2
34 %if %{with gstreamer} || %{with pulseaudio}
35 BuildRequires:  glib2-devel >= 1:2.32.0
36 %endif
37 %{?with_apidocs:BuildRequires:  graphviz}
38 %if %{with gstreamer}
39 BuildRequires:  gstreamer-devel >= 1.10
40 BuildRequires:  gstreamer-plugins-base-devel >= 1.10
41 %endif
42 %{?with_jack:BuildRequires:     jack-audio-connection-kit-devel >= 1.9.10}
43 BuildRequires:  libsndfile-devel >= 1.0.20
44 BuildRequires:  meson >= 0.50.0
45 BuildRequires:  ninja >= 1.5
46 BuildRequires:  pkgconfig
47 %{?with_pulseaudio:BuildRequires:       pulseaudio-devel >= 11.1}
48 BuildRequires:  rpmbuild(macros) >= 1.752
49 BuildRequires:  sbc-devel
50 BuildRequires:  systemd-devel
51 BuildRequires:  udev-devel
52 BuildRequires:  xmltoman
53 Requires:       %{name}-libs = %{version}-%{release}
54 Requires:       libsndfile >= 1.0.20
55 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56
57 %description
58 PipeWire is a server and user space API to deal with multimedia
59 pipelines. This includes:
60  - Making available sources of video (such as from a capture devices
61    or application provided streams) and multiplexing this with
62    clients.
63  - Accessing sources of video for consumption.
64  - Generating graphs for audio and video processing.
65
66 Nodes in the graph can be implemented as separate processes,
67 communicating with sockets and exchanging multimedia content using fd
68 passing.
69
70 %description -l pl.UTF-8
71 PipeWire to serwer i API przestrzeni użytkownika do obsługi potoków
72 multimedialnych. Obejmuje to:
73  - udostępnianie źródeł obrazu (np. z urządzeń przechwytujących obraz
74    lub strumieni udostępnianych przez aplikacje) oraz multipleksowanie
75    ich do klientów
76  - dostęp do źródeł obrazu do pobierania
77  - generowanie grafów do przetwarzania dźwięku i obrazu
78
79 %package libs
80 Summary:        PipeWire shared library
81 Summary(pl.UTF-8):      Biblioteka współdzielona PipeWire
82 Group:          Libraries
83
84 %description libs
85 PipeWire shared library.
86
87 %description libs -l pl.UTF-8
88 Biblioteka współdzielona PipeWire.
89
90 %package devel
91 Summary:        Header files for PipeWire library and Simple Plugin API
92 Summary(pl.UTF-8):      Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API
93 Group:          Development/Libraries
94 Requires:       %{name}-libs = %{version}-%{release}
95
96 %description devel
97 Header files for PipeWire library and Simple Plugin API.
98
99 %description devel -l pl.UTF-8
100 Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API.
101
102 %package apidocs
103 Summary:        API documentation for PipeWire library
104 Summary(pl.UTF-8):      Dokumentacja API biblioteki PipeWire
105 Group:          Documentation
106 %{?noarchpackage}
107
108 %description apidocs
109 API documentation for PipeWire library.
110
111 %description apidocs -l pl.UTF-8
112 Dokumentacja API biblioteki PipeWire.
113
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
117 Group:          Libraries
118 Requires:       %{name}-libs = %{version}-%{release}
119 Requires:       alsa-lib >= 1.1.7
120
121 %description spa-module-alsa
122 PipeWire SPA plugin to play and record audio with ALSA API.
123
124 %description spa-module-alsa -l pl.UTF-8
125 Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
126 API ALSA.
127
128 %package spa-module-bluez
129 Summary:        PipeWire SPA plugin to play audio with Bluetooth A2DP
130 Summary(pl.UTF-8):      Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP
131 Group:          Libraries
132 Requires:       %{name}-libs = %{version}-%{release}
133 Requires:       bluez-libs >= 4.101
134
135 %description spa-module-bluez
136 PipeWire SPA plugin to play audio with Bluetooth A2DP.
137
138 %description spa-module-bluez -l pl.UTF-8
139 Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP.
140
141 %package spa-module-ffmpeg
142 Summary:        PipeWire SPA plugin to decode/encode with FFmpeg library
143 Summary(pl.UTF-8):      Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki FFmpeg
144 Group:          Libraries
145 Requires:       %{name}-libs = %{version}-%{release}
146
147 %description spa-module-ffmpeg
148 PipeWire SPA plugin to decode/encode with FFmpeg library.
149
150 %description spa-module-ffmpeg -l pl.UTF-8
151 Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki
152 FFmpeg.
153
154 %package spa-module-jack
155 Summary:        PipeWire SPA plugin to play and record audio with JACK API
156 Summary(pl.UTF-8):      Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API JACK
157 Group:          Libraries
158 Requires:       %{name}-libs = %{version}-%{release}
159 Requires:       jack-audio-connection-kit >= 1.9.10
160
161 %description spa-module-jack
162 PipeWire SPA plugin to play and record audio with JACK API.
163
164 %description spa-module-jack -l pl.UTF-8
165 Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
166 API JACK.
167
168 %package spa-module-vulkan
169 Summary:        PipeWire SPA plugin to generate video frames using Vulkan
170 Summary(pl.UTF-8):      Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana
171 Group:          Libraries
172 Requires:       %{name}-libs = %{version}-%{release}
173 Requires:       Vulkan-Loader >= 1.1.69
174
175 %description spa-module-vulkan
176 PipeWire SPA plugin to generate video frames using Vulkan.
177
178 %description spa-module-vulkan -l pl.UTF-8
179 Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana.
180
181 %package jack
182 Summary:        PipeWire JACK sound system integration
183 Summary(pl.UTF-8):      Integracja PipeWire z systemem dźwięku JACK
184 Group:          Libraries
185 Requires:       %{name} = %{version}-%{release}
186 Requires:       jack-audio-connection-kit >= 1.9.10
187
188 %description jack
189 PipeWire JACK sound system integration.
190
191 %description jack -l pl.UTF-8
192 Integracja PipeWire z systemem dźwięku JACK.
193
194 %package pulseaudio
195 Summary:        PipeWire PulseAudio sound system integration
196 Summary(pl.UTF-8):      Integracja PipeWire z systemem dźwięku PulseAudio
197 Group:          Libraries
198 Requires:       %{name} = %{version}-%{release}
199 Requires:       glib2 >= 1:2.32.0
200 Requires:       pulseaudio >= 11.1
201
202 %description pulseaudio
203 PipeWire PulseAudio sound system integration.
204
205 %description pulseaudio -l pl.UTF-8
206 Integracja PipeWire z systemem dźwięku PulseAudio.
207
208 %package -n alsa-plugin-pipewire
209 Summary:        PipeWire integration plugin for ALSA sound system
210 Summary(pl.UTF-8):      Wtyczka systemu dźwięku ALSA integrująca z PipeWire
211 Group:          Libraries
212 Requires:       %{name} = %{version}-%{release}
213 Requires:       alsa-lib >= 1.1.7
214
215 %description -n alsa-plugin-pipewire
216 PipeWire integration plugin for ALSA sound system.
217
218 %description -n alsa-plugin-pipewire -l pl.UTF-8
219 Wtyczka systemu dźwięku ALSA integrująca z PipeWire.
220
221 %package -n gstreamer-pipewire
222 Summary:        PipeWire video sink and source plugin for GStreamer
223 Summary(pl.UTF-8):      Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera
224 Group:          Libraries
225 Requires:       %{name} = %{version}-%{release}
226 Requires:       glib2 >= 1:2.32.0
227 Requires:       gstreamer >= 1.10
228 Requires:       gstreamer-plugins-base >= 1.10
229
230 %description -n gstreamer-pipewire
231 PipeWire video sink and source plugin for GStreamer.
232
233 %description -n gstreamer-pipewire -l pl.UTF-8
234 Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera.
235
236 %prep
237 %setup -q
238 %patch0 -p1
239
240 %build
241 %meson build \
242         -Daudiotestsrc=true \
243         -Dbluez5-backend-hsphfpd=true \
244         %{?with_apidocs:-Ddocs=true} \
245         %{?with_ffmpeg:-Dffmpeg=true} \
246         %{!?with_gstreamer:-Dgstreamer=false} \
247         %{!?with_jack:-Djack=false} \
248         -Dman=true \
249         %{!?with_jack:-Dpipewire-jack=false} \
250         %{?with_pulseaudio:-Dpipewire-pulseaudio=true} \
251         -Dvideotestsrc=true \
252         -Dvolume=true
253 # TODO: -Devl=true
254
255 %ninja_build -C build
256
257 %install
258 rm -rf $RPM_BUILD_ROOT
259
260 %ninja_install -C build
261
262 install -d $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
263 cp -p pipewire-alsa/conf/*.conf $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
264
265 # packaged as %doc in -apidocs
266 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html
267
268 %clean
269 rm -rf $RPM_BUILD_ROOT
270
271 %post   libs -p /sbin/ldconfig
272 %postun libs -p /sbin/ldconfig
273
274 %files
275 %defattr(644,root,root,755)
276 %attr(755,root,root) %{_bindir}/pipewire
277 %attr(755,root,root) %{_bindir}/pipewire-media-session
278 %attr(755,root,root) %{_bindir}/pw-cat
279 %attr(755,root,root) %{_bindir}/pw-cli
280 %attr(755,root,root) %{_bindir}/pw-dot
281 %attr(755,root,root) %{_bindir}/pw-metadata
282 %attr(755,root,root) %{_bindir}/pw-mididump
283 %attr(755,root,root) %{_bindir}/pw-midiplay
284 %attr(755,root,root) %{_bindir}/pw-midirecord
285 %attr(755,root,root) %{_bindir}/pw-mon
286 %attr(755,root,root) %{_bindir}/pw-play
287 %attr(755,root,root) %{_bindir}/pw-profiler
288 %attr(755,root,root) %{_bindir}/pw-record
289 %attr(755,root,root) %{_bindir}/pw-reserve
290 %attr(755,root,root) %{_bindir}/spa-inspect
291 %attr(755,root,root) %{_bindir}/spa-monitor
292 # R: libsndfile
293 %attr(755,root,root) %{_bindir}/spa-resample
294 %dir %{_sysconfdir}/pipewire
295 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pipewire/pipewire.conf
296 %dir %{_sysconfdir}/pipewire/media-session.d
297 %{systemduserunitdir}/pipewire.service
298 %{systemduserunitdir}/pipewire.socket
299 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-access.so
300 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-adapter.so
301 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-device.so
302 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-node.so
303 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-link-factory.so
304 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-metadata.so
305 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-portal.so
306 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-profiler.so
307 # R: systemd-libs
308 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so
309 # R: dbus-libs systemd-libs
310 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-pulse.so
311 # R: dbus-libs
312 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtkit.so
313 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-session-manager.so
314 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device.so
315 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device-factory.so
316 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node.so
317 %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node-factory.so
318 %dir %{_libdir}/spa-0.2/audioconvert
319 %attr(755,root,root) %{_libdir}/spa-0.2/audioconvert/libspa-audioconvert.so
320 %dir %{_libdir}/spa-0.2/audiomixer
321 %attr(755,root,root) %{_libdir}/spa-0.2/audiomixer/libspa-audiomixer.so
322 %dir %{_libdir}/spa-0.2/audiotestsrc
323 %attr(755,root,root) %{_libdir}/spa-0.2/audiotestsrc/libspa-audiotestsrc.so
324 %dir %{_libdir}/spa-0.2/control
325 %attr(755,root,root) %{_libdir}/spa-0.2/control/libspa-control.so
326 %dir %{_libdir}/spa-0.2/support
327 # R: dbus-libs
328 %attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-dbus.so
329 # R: systemd-libs
330 %attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-journal.so
331 %attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-support.so
332 %dir %{_libdir}/spa-0.2/v4l2
333 # R: udev-libs
334 %attr(755,root,root) %{_libdir}/spa-0.2/v4l2/libspa-v4l2.so
335 %dir %{_libdir}/spa-0.2/videoconvert
336 %attr(755,root,root) %{_libdir}/spa-0.2/videoconvert/libspa-videoconvert.so
337 %dir %{_libdir}/spa-0.2/videotestsrc
338 %attr(755,root,root) %{_libdir}/spa-0.2/videotestsrc/libspa-videotestsrc.so
339 %dir %{_libdir}/spa-0.2/volume
340 %attr(755,root,root) %{_libdir}/spa-0.2/volume/libspa-volume.so
341 %{_mandir}/man1/pipewire.1*
342 %{_mandir}/man1/pw-cat.1*
343 %{_mandir}/man1/pw-cli.1*
344 %{_mandir}/man1/pw-dot.1*
345 %{_mandir}/man1/pw-metadata.1*
346 %{_mandir}/man1/pw-mididump.1*
347 %{_mandir}/man1/pw-mon.1*
348 %{_mandir}/man1/pw-profiler.1*
349 %{_mandir}/man5/pipewire.conf.5*
350
351 %files libs
352 %defattr(644,root,root,755)
353 %doc COPYING LICENSE NEWS README.md
354 %attr(755,root,root) %{_libdir}/libpipewire-0.3.so.*.*.*
355 %attr(755,root,root) %ghost %{_libdir}/libpipewire-0.3.so.0
356 %dir %{_libdir}/pipewire-0.3
357 %dir %{_libdir}/spa-0.2
358
359 %files devel
360 %defattr(644,root,root,755)
361 %attr(755,root,root) %{_libdir}/libpipewire-0.3.so
362 %{_includedir}/pipewire-0.3
363 %{_includedir}/spa-0.2
364 %{_pkgconfigdir}/libpipewire-0.3.pc
365 %{_pkgconfigdir}/libspa-0.2.pc
366
367 %if %{with apidocs}
368 %files apidocs
369 %defattr(644,root,root,755)
370 %doc doc/design.txt build/doc/html/*
371 %endif
372
373 %files spa-module-alsa
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_bindir}/spa-acp-tool
376 %dir %{_libdir}/spa-0.2/alsa
377 # R: alsa-lib udev-libs
378 %attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so
379 %{_datadir}/alsa-card-profile
380
381 %files spa-module-bluez
382 %defattr(644,root,root,755)
383 %dir %{_libdir}/spa-0.2/bluez5
384 # R: dbus-libs sbc
385 %attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so
386
387 %files spa-module-ffmpeg
388 %defattr(644,root,root,755)
389 %dir %{_libdir}/spa-0.2/ffmpeg
390 # R: ffmpeg-libs
391 %attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so
392
393 %if %{with jack}
394 %files spa-module-jack
395 %defattr(644,root,root,755)
396 %dir %{_libdir}/spa-0.2/jack
397 # R: jack-audio-connection-kit-libs
398 %attr(755,root,root) %{_libdir}/spa-0.2/jack/libspa-jack.so
399 %endif
400
401 %files spa-module-vulkan
402 %defattr(644,root,root,755)
403 %dir %{_libdir}/spa-0.2/vulkan
404 # R: Vulkan-Loader
405 %attr(755,root,root) %{_libdir}/spa-0.2/vulkan/libspa-vulkan.so
406
407 %if %{with jack}
408 %files jack
409 %defattr(644,root,root,755)
410 %attr(755,root,root) %{_bindir}/pw-jack
411 %{_sysconfdir}/pipewire/media-session.d/with-jack
412 %dir %attr(755,root,root) %{_libdir}/pipewire-0.3/jack
413 %attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjack.so*
414 %attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjacknet.so*
415 %attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjackserver.so*
416 %endif
417
418 %if %{with pulseaudio}
419 %files pulseaudio
420 %defattr(644,root,root,755)
421 %doc pipewire-pulseaudio/README.md
422 %attr(755,root,root) %{_bindir}/pipewire-pulse
423 %attr(755,root,root) %{_bindir}/pw-pulse
424 %{_sysconfdir}/pipewire/media-session.d/with-pulseaudio
425 %dir %attr(755,root,root) %{_libdir}/pipewire-0.3/pulse
426 %attr(755,root,root) %{_libdir}/pipewire-0.3/pulse/libpulse-mainloop-glib.so*
427 %attr(755,root,root) %{_libdir}/pipewire-0.3/pulse/libpulse.so*
428 %attr(755,root,root) %{_libdir}/pipewire-0.3/pulse/libpulse-simple.so*
429 %{systemduserunitdir}/pipewire-pulse.service
430 %{systemduserunitdir}/pipewire-pulse.socket
431 %{_mandir}/man1/pw-pulse.1*
432 %endif
433
434 %files -n alsa-plugin-pipewire
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so
437 %attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so
438 %{_datadir}/alsa/alsa.conf.d/50-pipewire.conf
439 %{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf
440 /lib/udev/rules.d/90-pipewire-alsa.rules
441
442 %if %{with gstreamer}
443 %files -n gstreamer-pipewire
444 %defattr(644,root,root,755)
445 %attr(755,root,root) %{_libdir}/gstreamer-1.0/libgstpipewire.so
446 %endif
This page took 0.07051 seconds and 3 git commands to generate.