- video-dsp-play is not installed
[packages/pipewire.git] / pipewire.spec
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
This page took 0.07602 seconds and 3 git commands to generate.