]>
Commit | Line | Data |
---|---|---|
1 | # TODO: evl support (https://evlproject.org/) | |
2 | # | |
3 | # Conditional build: | |
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 | |
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 | |
13 | Version: 0.3.2 | |
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 | |
19 | # Source0-md5: b39c50a59b779982cb888ca36d769d2d | |
20 | Patch0: %{name}-gcc.patch | |
21 | URL: https://pipewire.org/ | |
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 | |
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 | |
35 | %endif | |
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 | |
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) | |
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 | |
104 | %if "%{_rpmversion}" >= "4.6" | |
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} | |
132 | Requires: bluez-libs >= 4.101 | |
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 | ||
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 | ||
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 | |
234 | %patch0 -p1 | |
235 | ||
236 | %build | |
237 | %meson build \ | |
238 | -Daudiotestsrc=true \ | |
239 | %{?with_apidocs:-Ddocs=true} \ | |
240 | %{?with_ffmpeg:-Dffmpeg=true} \ | |
241 | %{!?with_gstreamer:-Dgstreamer=false} \ | |
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 | |
249 | ||
250 | %ninja_build -C build | |
251 | ||
252 | %install | |
253 | rm -rf $RPM_BUILD_ROOT | |
254 | ||
255 | %ninja_install -C build | |
256 | ||
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 | ||
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 | |
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 | |
293 | # R: systemd-libs | |
294 | %attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so | |
295 | # R: dbus-libs | |
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 | |
311 | # R: dbus-libs | |
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 | |
315 | # R: udev-libs | |
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* | |
327 | ||
328 | %files libs | |
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 | |
335 | ||
336 | %files devel | |
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 | |
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) | |
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 | |
355 | ||
356 | %files spa-module-bluez | |
357 | %defattr(644,root,root,755) | |
358 | %dir %{_libdir}/spa-0.2/bluez5 | |
359 | # R: dbus-libs sbc | |
360 | %attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so | |
361 | ||
362 | %files spa-module-ffmpeg | |
363 | %defattr(644,root,root,755) | |
364 | %dir %{_libdir}/spa-0.2/ffmpeg | |
365 | # R: ffmpeg-libs | |
366 | %attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so | |
367 | ||
368 | %files spa-module-vulkan | |
369 | %defattr(644,root,root,755) | |
370 | %dir %{_libdir}/spa-0.2/vulkan | |
371 | # R: Vulkan-Loader | |
372 | %attr(755,root,root) %{_libdir}/spa-0.2/vulkan/libspa-vulkan.so | |
373 | ||
374 | %if %{with jack} | |
375 | %files jack | |
376 | %defattr(644,root,root,755) | |
377 | %attr(755,root,root) %{_libdir}/libjack-pw.so.*.*.* | |
378 | %attr(755,root,root) %{_libdir}/libjack-pw.so | |
379 | %endif | |
380 | ||
381 | %if %{with pulseaudio} | |
382 | %files 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 | |
391 | %endif | |
392 | ||
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 | |
398 | ||
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 | |
403 | %endif |