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