]>
Commit | Line | Data |
---|---|---|
96dfc521 | 1 | # TODO: evl support (https://evlproject.org/) |
911dd57a JB |
2 | # |
3 | # Conditional build: | |
4 | %bcond_without apidocs # Doxygen based API documentation | |
96dfc521 | 5 | %bcond_without ffmpeg # ffmpeg spa plugin integration |
911dd57a | 6 | %bcond_without gstreamer # GStreamer module |
96dfc521 JB |
7 | %bcond_without jack # pipewire-jack and jack spa plugin integration |
8 | %bcond_without pulseaudio # pipewire-pulseaudio integration | |
911dd57a JB |
9 | # |
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 | |
12 | Name: pipewire | |
96dfc521 | 13 | Version: 0.3.2 |
911dd57a JB |
14 | Release: 1 |
15 | License: LGPL v2+ | |
16 | Group: Libraries | |
17 | #Source0Download: https://github.com/PipeWire/pipewire/releases | |
18 | Source0: https://github.com/PipeWire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz | |
96dfc521 JB |
19 | # Source0-md5: b39c50a59b779982cb888ca36d769d2d |
20 | Patch0: %{name}-gcc.patch | |
911dd57a | 21 | URL: https://pipewire.org/ |
96dfc521 JB |
22 | %if %{with jack} |
23 | BuildRequires: SDL2-devel >= 2 | |
24 | %endif | |
25 | BuildRequires: Vulkan-Loader-devel | |
26 | BuildRequires: alsa-lib-devel >= 1 | |
27 | BuildRequires: bluez-libs-devel >= 4.101 | |
911dd57a JB |
28 | BuildRequires: dbus-devel |
29 | %{?with_apidocs:BuildRequires: doxygen} | |
30 | # libavcodec libavformat libavfilter | |
96dfc521 | 31 | %{?with_ffmpeg:BuildRequires: ffmpeg-devel} |
911dd57a | 32 | BuildRequires: gcc >= 5:3.2 |
96dfc521 JB |
33 | %if %{with gstreamer} || %{with pulseaudio} |
34 | BuildRequires: glib2-devel >= 1:2.32.0 | |
35 | %endif | |
911dd57a JB |
36 | %{?with_apidocs:BuildRequires: graphviz} |
37 | %if %{with gstreamer} | |
38 | BuildRequires: gstreamer-devel >= 1.0 | |
39 | BuildRequires: gstreamer-plugins-base-devel >= 1.0 | |
40 | %endif | |
96dfc521 JB |
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 | |
911dd57a JB |
44 | BuildRequires: ninja >= 1.5 |
45 | BuildRequires: pkgconfig | |
96dfc521 | 46 | %{?with_pulseaudio:BuildRequires: pulseaudio-devel >= 11.1} |
911dd57a JB |
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) | |
54 | ||
55 | %description | |
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 | |
60 | clients. | |
61 | - Accessing sources of video for consumption. | |
62 | - Generating graphs for audio and video processing. | |
63 | ||
64 | Nodes in the graph can be implemented as separate processes, | |
65 | communicating with sockets and exchanging multimedia content using fd | |
66 | passing. | |
67 | ||
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 | |
73 | ich do klientów | |
74 | - dostęp do źródeł obrazu do pobierania | |
75 | - generowanie grafów do przetwarzania dźwięku i obrazu | |
76 | ||
77 | %package libs | |
78 | Summary: PipeWire shared library | |
79 | Summary(pl.UTF-8): Biblioteka współdzielona PipeWire | |
80 | Group: Libraries | |
81 | ||
82 | %description libs | |
83 | PipeWire shared library. | |
84 | ||
85 | %description libs -l pl.UTF-8 | |
86 | Biblioteka współdzielona PipeWire. | |
87 | ||
88 | %package devel | |
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} | |
93 | ||
94 | %description devel | |
95 | Header files for PipeWire library and Simple Plugin API. | |
96 | ||
97 | %description devel -l pl.UTF-8 | |
98 | Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API. | |
99 | ||
100 | %package apidocs | |
101 | Summary: API documentation for PipeWire library | |
102 | Summary(pl.UTF-8): Dokumentacja API biblioteki PipeWire | |
103 | Group: Documentation | |
96dfc521 | 104 | %if "%{_rpmversion}" >= "4.6" |
911dd57a JB |
105 | BuildArch: noarch |
106 | %endif | |
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 | ||
120 | %description spa-module-alsa | |
121 | PipeWire SPA plugin to play and record audio with ALSA API. | |
122 | ||
123 | %description spa-module-alsa -l pl.UTF-8 | |
124 | Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu | |
125 | API ALSA. | |
126 | ||
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 | |
130 | Group: Libraries | |
131 | Requires: %{name}-libs = %{version}-%{release} | |
96dfc521 | 132 | Requires: bluez-libs >= 4.101 |
911dd57a JB |
133 | |
134 | %description spa-module-bluez | |
135 | PipeWire SPA plugin to play audio with Bluetooth A2DP. | |
136 | ||
137 | %description spa-module-bluez -l pl.UTF-8 | |
138 | Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP. | |
139 | ||
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 | |
143 | Group: Libraries | |
144 | Requires: %{name}-libs = %{version}-%{release} | |
145 | ||
146 | %description spa-module-ffmpeg | |
147 | PipeWire SPA plugin to decode/encode with FFmpeg library. | |
148 | ||
149 | %description spa-module-ffmpeg -l pl.UTF-8 | |
150 | Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki | |
151 | FFmpeg. | |
152 | ||
96dfc521 JB |
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 | |
156 | Group: Libraries | |
157 | Requires: %{name}-libs = %{version}-%{release} | |
158 | Requires: jack-audio-connection-kit >= 1.9.10 | |
159 | ||
160 | %description spa-module-jack | |
161 | PipeWire SPA plugin to play and record audio with JACK API. | |
162 | ||
163 | %description spa-module-jack -l pl.UTF-8 | |
164 | Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu | |
165 | API JACK. | |
166 | ||
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 | |
170 | Group: Libraries | |
171 | Requires: %{name}-libs = %{version}-%{release} | |
172 | ||
173 | %description spa-module-vulkan | |
174 | PipeWire SPA plugin to generate video frames using Vulkan. | |
175 | ||
176 | %description spa-module-vulkan -l pl.UTF-8 | |
177 | Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana. | |
178 | ||
179 | %package jack | |
180 | Summary: PipeWire JACK sound system integration | |
181 | Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku JACK | |
182 | Group: Libraries | |
183 | Requires: %{name} = %{version}-%{release} | |
184 | Requires: jack-audio-connection-kit >= 1.9.10 | |
185 | ||
186 | %description jack | |
187 | PipeWire JACK sound system integration. | |
188 | ||
189 | %description jack -l pl.UTF-8 | |
190 | Integracja PipeWire z systemem dźwięku JACK. | |
191 | ||
192 | %package pulseaudio | |
193 | Summary: PipeWire PulseAudio sound system integration | |
194 | Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku PulseAudio | |
195 | Group: Libraries | |
196 | Requires: %{name} = %{version}-%{release} | |
197 | Requires: pulseaudio >= 11.1 | |
198 | ||
199 | %description pulseaudio | |
200 | PipeWire PulseAudio sound system integration. | |
201 | ||
202 | %description pulseaudio -l pl.UTF-8 | |
203 | Integracja PipeWire z systemem dźwięku PulseAudio. | |
204 | ||
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 | |
208 | Group: Libraries | |
209 | Requires: %{name} = %{version}-%{release} | |
210 | Requires: alsa-lib >= 1 | |
211 | ||
212 | %description -n alsa-plugin-pipewire | |
213 | PipeWire integration plugin for ALSA sound system. | |
214 | ||
215 | %description -n alsa-plugin-pipewire -l pl.UTF-8 | |
216 | Wtyczka systemu dźwięku ALSA integrująca z PipeWire. | |
217 | ||
911dd57a JB |
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 | |
221 | Group: Libraries | |
222 | Requires: %{name} = %{version}-%{release} | |
223 | Requires: gstreamer >= 1.0 | |
224 | Requires: gstreamer-plugins-base >= 1.0 | |
225 | ||
226 | %description -n gstreamer-pipewire | |
227 | PipeWire video sink and source plugin for GStreamer. | |
228 | ||
229 | %description -n gstreamer-pipewire -l pl.UTF-8 | |
230 | Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera. | |
231 | ||
232 | %prep | |
233 | %setup -q | |
96dfc521 | 234 | %patch0 -p1 |
911dd57a JB |
235 | |
236 | %build | |
237 | %meson build \ | |
96dfc521 | 238 | -Daudiotestsrc=true \ |
911dd57a | 239 | %{?with_apidocs:-Ddocs=true} \ |
96dfc521 | 240 | %{?with_ffmpeg:-Dffmpeg=true} \ |
911dd57a | 241 | %{!?with_gstreamer:-Dgstreamer=false} \ |
96dfc521 JB |
242 | %{!?with_jack:-Djack=false} \ |
243 | -Dman=true \ | |
244 | %{!?with_jack:-Dpipewire-jack=false} \ | |
245 | %{!?with_pulseaudio:-Dpipewire-pulseaudio=false} \ | |
246 | -Dvideotestsrc=true \ | |
247 | -Dvolume=true | |
248 | # TODO: -Devl=true | |
911dd57a JB |
249 | |
250 | %ninja_build -C build | |
251 | ||
252 | %install | |
253 | rm -rf $RPM_BUILD_ROOT | |
254 | ||
255 | %ninja_install -C build | |
256 | ||
96dfc521 JB |
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 | |
259 | ||
911dd57a JB |
260 | # packaged as %doc in -apidocs |
261 | %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html | |
262 | ||
263 | %clean | |
264 | rm -rf $RPM_BUILD_ROOT | |
265 | ||
266 | %post libs -p /sbin/ldconfig | |
267 | %postun libs -p /sbin/ldconfig | |
268 | ||
269 | %files | |
270 | %defattr(644,root,root,755) | |
271 | %attr(755,root,root) %{_bindir}/pipewire | |
96dfc521 JB |
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 | |
911dd57a JB |
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 | |
96dfc521 JB |
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 | |
911dd57a | 293 | # R: systemd-libs |
96dfc521 | 294 | %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so |
911dd57a | 295 | # R: dbus-libs |
96dfc521 JB |
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 | |
911dd57a | 311 | # R: dbus-libs |
96dfc521 JB |
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 | |
911dd57a | 315 | # R: udev-libs |
96dfc521 JB |
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 | |
911dd57a | 323 | %{_mandir}/man1/pipewire.1* |
96dfc521 JB |
324 | %{_mandir}/man1/pw-cli.1* |
325 | %{_mandir}/man1/pw-mon.1* | |
911dd57a JB |
326 | %{_mandir}/man5/pipewire.conf.5* |
327 | ||
328 | %files libs | |
329 | %defattr(644,root,root,755) | |
96dfc521 JB |
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 | |
911dd57a JB |
335 | |
336 | %files devel | |
337 | %defattr(644,root,root,755) | |
96dfc521 JB |
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 | |
911dd57a JB |
343 | |
344 | %if %{with apidocs} | |
345 | %files apidocs | |
346 | %defattr(644,root,root,755) | |
347 | %doc doc/design.txt build/doc/html/* | |
348 | %endif | |
349 | ||
350 | %files spa-module-alsa | |
351 | %defattr(644,root,root,755) | |
96dfc521 | 352 | %dir %{_libdir}/spa-0.2/alsa |
911dd57a | 353 | # R: alsa-lib udev-libs |
96dfc521 | 354 | %attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so |
911dd57a JB |
355 | |
356 | %files spa-module-bluez | |
357 | %defattr(644,root,root,755) | |
96dfc521 | 358 | %dir %{_libdir}/spa-0.2/bluez5 |
911dd57a | 359 | # R: dbus-libs sbc |
96dfc521 | 360 | %attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so |
911dd57a JB |
361 | |
362 | %files spa-module-ffmpeg | |
363 | %defattr(644,root,root,755) | |
96dfc521 | 364 | %dir %{_libdir}/spa-0.2/ffmpeg |
911dd57a | 365 | # R: ffmpeg-libs |
96dfc521 JB |
366 | %attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so |
367 | ||
2329dfbb JB |
368 | %if %{with jack} |
369 | %files spa-module-jack | |
370 | %defattr(644,root,root,755) | |
371 | %dir %{_libdir}/spa-0.2/jack | |
372 | # R: jack-audio-connection-kit-libs | |
373 | %attr(755,root,root) %{_libdir}/spa-0.2/jack/libspa-jack.so | |
374 | %endif | |
375 | ||
96dfc521 JB |
376 | %files spa-module-vulkan |
377 | %defattr(644,root,root,755) | |
378 | %dir %{_libdir}/spa-0.2/vulkan | |
379 | # R: Vulkan-Loader | |
380 | %attr(755,root,root) %{_libdir}/spa-0.2/vulkan/libspa-vulkan.so | |
381 | ||
382 | %if %{with jack} | |
383 | %files jack | |
384 | %defattr(644,root,root,755) | |
96dfc521 JB |
385 | %attr(755,root,root) %{_libdir}/libjack-pw.so.*.*.* |
386 | %attr(755,root,root) %{_libdir}/libjack-pw.so | |
387 | %endif | |
388 | ||
389 | %if %{with pulseaudio} | |
390 | %files pulseaudio | |
391 | %defattr(644,root,root,755) | |
392 | %doc pipewire-pulseaudio/README.md | |
393 | %attr(755,root,root) %{_libdir}/libpulse-mainloop-glib-pw.so.*.*.* | |
394 | %attr(755,root,root) %{_libdir}/libpulse-mainloop-glib-pw.so | |
395 | %attr(755,root,root) %{_libdir}/libpulse-pw.so.*.*.* | |
396 | %attr(755,root,root) %{_libdir}/libpulse-pw.so | |
397 | %attr(755,root,root) %{_libdir}/libpulse-simple-pw.so.*.*.* | |
398 | %attr(755,root,root) %{_libdir}/libpulse-simple-pw.so | |
399 | %endif | |
400 | ||
401 | %files -n alsa-plugin-pipewire | |
402 | %defattr(644,root,root,755) | |
403 | %attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so | |
404 | %{_datadir}/alsa/alsa.conf.d/50-pipewire.conf | |
405 | %{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf | |
911dd57a JB |
406 | |
407 | %if %{with gstreamer} | |
408 | %files -n gstreamer-pipewire | |
409 | %defattr(644,root,root,755) | |
410 | %attr(755,root,root) %{_libdir}/gstreamer-1.0/libgstpipewire.so | |
411 | %endif |