- updated to 0.3.17
[packages/pipewire.git] / pipewire.spec
CommitLineData
234c024c 1# TODO: evl support (BR: libevl-devel, https://evlproject.org/)
2ceddacd 2# - libcamera integration (no releases yet; ARM specific?)
911dd57a
JB
3#
4# Conditional build:
5%bcond_without apidocs # Doxygen based API documentation
96dfc521 6%bcond_without ffmpeg # ffmpeg spa plugin integration
911dd57a 7%bcond_without gstreamer # GStreamer module
96dfc521
JB
8%bcond_without jack # pipewire-jack and jack spa plugin integration
9%bcond_without pulseaudio # pipewire-pulseaudio integration
911dd57a
JB
10#
11Summary: PipeWire - server and user space API to deal with multimedia pipelines
12Summary(pl.UTF-8): PipeWire - serwer i API przestrzeni użytkownika do obsługi potoków multimedialnych
13Name: pipewire
2ceddacd 14Version: 0.3.17
911dd57a
JB
15Release: 1
16License: LGPL v2+
17Group: Libraries
18#Source0Download: https://github.com/PipeWire/pipewire/releases
19Source0: https://github.com/PipeWire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz
2ceddacd 20# Source0-md5: cf551f35c83a1fa77fd31983ade00082
96dfc521 21Patch0: %{name}-gcc.patch
911dd57a 22URL: https://pipewire.org/
96dfc521
JB
23%if %{with jack}
24BuildRequires: SDL2-devel >= 2
25%endif
2ceddacd 26BuildRequires: Vulkan-Loader-devel >= 1.1.69
234c024c 27BuildRequires: alsa-lib-devel >= 1.1.7
96dfc521 28BuildRequires: bluez-libs-devel >= 4.101
911dd57a
JB
29BuildRequires: dbus-devel
30%{?with_apidocs:BuildRequires: doxygen}
31# libavcodec libavformat libavfilter
96dfc521 32%{?with_ffmpeg:BuildRequires: ffmpeg-devel}
911dd57a 33BuildRequires: gcc >= 5:3.2
96dfc521
JB
34%if %{with gstreamer} || %{with pulseaudio}
35BuildRequires: glib2-devel >= 1:2.32.0
36%endif
911dd57a
JB
37%{?with_apidocs:BuildRequires: graphviz}
38%if %{with gstreamer}
234c024c
JB
39BuildRequires: gstreamer-devel >= 1.10
40BuildRequires: gstreamer-plugins-base-devel >= 1.10
911dd57a 41%endif
96dfc521
JB
42%{?with_jack:BuildRequires: jack-audio-connection-kit-devel >= 1.9.10}
43BuildRequires: libsndfile-devel >= 1.0.20
44BuildRequires: meson >= 0.50.0
911dd57a
JB
45BuildRequires: ninja >= 1.5
46BuildRequires: pkgconfig
96dfc521 47%{?with_pulseaudio:BuildRequires: pulseaudio-devel >= 11.1}
2ceddacd 48BuildRequires: rpmbuild(macros) >= 1.752
911dd57a
JB
49BuildRequires: sbc-devel
50BuildRequires: systemd-devel
51BuildRequires: udev-devel
52BuildRequires: xmltoman
53Requires: %{name}-libs = %{version}-%{release}
234c024c 54Requires: libsndfile >= 1.0.20
911dd57a
JB
55BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
56
57%description
58PipeWire is a server and user space API to deal with multimedia
59pipelines. 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
66Nodes in the graph can be implemented as separate processes,
67communicating with sockets and exchanging multimedia content using fd
68passing.
69
70%description -l pl.UTF-8
71PipeWire to serwer i API przestrzeni użytkownika do obsługi potoków
72multimedialnych. 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
80Summary: PipeWire shared library
81Summary(pl.UTF-8): Biblioteka współdzielona PipeWire
82Group: Libraries
83
84%description libs
85PipeWire shared library.
86
87%description libs -l pl.UTF-8
88Biblioteka współdzielona PipeWire.
89
90%package devel
91Summary: Header files for PipeWire library and Simple Plugin API
92Summary(pl.UTF-8): Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API
93Group: Development/Libraries
94Requires: %{name}-libs = %{version}-%{release}
95
96%description devel
97Header files for PipeWire library and Simple Plugin API.
98
99%description devel -l pl.UTF-8
100Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API.
101
102%package apidocs
103Summary: API documentation for PipeWire library
104Summary(pl.UTF-8): Dokumentacja API biblioteki PipeWire
105Group: Documentation
2ceddacd 106%{?noarchpackage}
911dd57a
JB
107
108%description apidocs
109API documentation for PipeWire library.
110
111%description apidocs -l pl.UTF-8
112Dokumentacja API biblioteki PipeWire.
113
114%package spa-module-alsa
115Summary: PipeWire SPA plugin to play and record audio with ALSA API
116Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API ALSA
117Group: Libraries
118Requires: %{name}-libs = %{version}-%{release}
234c024c 119Requires: alsa-lib >= 1.1.7
911dd57a
JB
120
121%description spa-module-alsa
122PipeWire SPA plugin to play and record audio with ALSA API.
123
124%description spa-module-alsa -l pl.UTF-8
125Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
126API ALSA.
127
128%package spa-module-bluez
129Summary: PipeWire SPA plugin to play audio with Bluetooth A2DP
130Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP
131Group: Libraries
132Requires: %{name}-libs = %{version}-%{release}
96dfc521 133Requires: bluez-libs >= 4.101
911dd57a
JB
134
135%description spa-module-bluez
136PipeWire SPA plugin to play audio with Bluetooth A2DP.
137
138%description spa-module-bluez -l pl.UTF-8
139Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP.
140
141%package spa-module-ffmpeg
142Summary: PipeWire SPA plugin to decode/encode with FFmpeg library
143Summary(pl.UTF-8): Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki FFmpeg
144Group: Libraries
145Requires: %{name}-libs = %{version}-%{release}
146
147%description spa-module-ffmpeg
148PipeWire SPA plugin to decode/encode with FFmpeg library.
149
150%description spa-module-ffmpeg -l pl.UTF-8
151Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki
152FFmpeg.
153
96dfc521
JB
154%package spa-module-jack
155Summary: PipeWire SPA plugin to play and record audio with JACK API
156Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API JACK
157Group: Libraries
158Requires: %{name}-libs = %{version}-%{release}
159Requires: jack-audio-connection-kit >= 1.9.10
160
161%description spa-module-jack
162PipeWire SPA plugin to play and record audio with JACK API.
163
164%description spa-module-jack -l pl.UTF-8
165Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
166API JACK.
167
168%package spa-module-vulkan
169Summary: PipeWire SPA plugin to generate video frames using Vulkan
170Summary(pl.UTF-8): Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana
171Group: Libraries
172Requires: %{name}-libs = %{version}-%{release}
2ceddacd 173Requires: Vulkan-Loader >= 1.1.69
96dfc521
JB
174
175%description spa-module-vulkan
176PipeWire SPA plugin to generate video frames using Vulkan.
177
178%description spa-module-vulkan -l pl.UTF-8
179Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana.
180
181%package jack
182Summary: PipeWire JACK sound system integration
183Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku JACK
184Group: Libraries
185Requires: %{name} = %{version}-%{release}
186Requires: jack-audio-connection-kit >= 1.9.10
187
188%description jack
189PipeWire JACK sound system integration.
190
191%description jack -l pl.UTF-8
192Integracja PipeWire z systemem dźwięku JACK.
193
194%package pulseaudio
195Summary: PipeWire PulseAudio sound system integration
196Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku PulseAudio
197Group: Libraries
198Requires: %{name} = %{version}-%{release}
234c024c 199Requires: glib2 >= 1:2.32.0
96dfc521
JB
200Requires: pulseaudio >= 11.1
201
202%description pulseaudio
203PipeWire PulseAudio sound system integration.
204
205%description pulseaudio -l pl.UTF-8
206Integracja PipeWire z systemem dźwięku PulseAudio.
207
208%package -n alsa-plugin-pipewire
209Summary: PipeWire integration plugin for ALSA sound system
210Summary(pl.UTF-8): Wtyczka systemu dźwięku ALSA integrująca z PipeWire
211Group: Libraries
212Requires: %{name} = %{version}-%{release}
234c024c 213Requires: alsa-lib >= 1.1.7
96dfc521
JB
214
215%description -n alsa-plugin-pipewire
216PipeWire integration plugin for ALSA sound system.
217
218%description -n alsa-plugin-pipewire -l pl.UTF-8
219Wtyczka systemu dźwięku ALSA integrująca z PipeWire.
220
911dd57a
JB
221%package -n gstreamer-pipewire
222Summary: PipeWire video sink and source plugin for GStreamer
223Summary(pl.UTF-8): Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera
224Group: Libraries
225Requires: %{name} = %{version}-%{release}
234c024c
JB
226Requires: glib2 >= 1:2.32.0
227Requires: gstreamer >= 1.10
228Requires: gstreamer-plugins-base >= 1.10
911dd57a
JB
229
230%description -n gstreamer-pipewire
231PipeWire video sink and source plugin for GStreamer.
232
233%description -n gstreamer-pipewire -l pl.UTF-8
234Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera.
235
236%prep
237%setup -q
96dfc521 238%patch0 -p1
911dd57a
JB
239
240%build
241%meson build \
96dfc521 242 -Daudiotestsrc=true \
2ceddacd 243 -Dbluez5-backend-hsphfpd=true \
911dd57a 244 %{?with_apidocs:-Ddocs=true} \
96dfc521 245 %{?with_ffmpeg:-Dffmpeg=true} \
911dd57a 246 %{!?with_gstreamer:-Dgstreamer=false} \
96dfc521
JB
247 %{!?with_jack:-Djack=false} \
248 -Dman=true \
249 %{!?with_jack:-Dpipewire-jack=false} \
2ceddacd 250 %{?with_pulseaudio:-Dpipewire-pulseaudio=true} \
96dfc521
JB
251 -Dvideotestsrc=true \
252 -Dvolume=true
253# TODO: -Devl=true
911dd57a
JB
254
255%ninja_build -C build
256
257%install
258rm -rf $RPM_BUILD_ROOT
259
260%ninja_install -C build
261
96dfc521
JB
262install -d $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
263cp -p pipewire-alsa/conf/*.conf $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
264
911dd57a
JB
265# packaged as %doc in -apidocs
266%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html
267
268%clean
269rm -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
96dfc521
JB
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
234c024c
JB
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
96dfc521
JB
285%attr(755,root,root) %{_bindir}/pw-mon
286%attr(755,root,root) %{_bindir}/pw-play
96dfc521 287%attr(755,root,root) %{_bindir}/pw-profiler
2ceddacd
JB
288%attr(755,root,root) %{_bindir}/pw-record
289%attr(755,root,root) %{_bindir}/pw-reserve
911dd57a
JB
290%attr(755,root,root) %{_bindir}/spa-inspect
291%attr(755,root,root) %{_bindir}/spa-monitor
2ceddacd
JB
292# R: libsndfile
293%attr(755,root,root) %{_bindir}/spa-resample
911dd57a
JB
294%dir %{_sysconfdir}/pipewire
295%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pipewire/pipewire.conf
2ceddacd 296%dir %{_sysconfdir}/pipewire/media-session.d
911dd57a
JB
297%{systemduserunitdir}/pipewire.service
298%{systemduserunitdir}/pipewire.socket
96dfc521
JB
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
234c024c 305%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-portal.so
96dfc521 306%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-profiler.so
911dd57a 307# R: systemd-libs
96dfc521 308%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so
2ceddacd
JB
309# R: dbus-libs systemd-libs
310%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-pulse.so
911dd57a 311# R: dbus-libs
96dfc521
JB
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
911dd57a 327# R: dbus-libs
96dfc521 328%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-dbus.so
2ceddacd
JB
329# R: systemd-libs
330%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-journal.so
96dfc521
JB
331%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-support.so
332%dir %{_libdir}/spa-0.2/v4l2
911dd57a 333# R: udev-libs
96dfc521
JB
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
911dd57a 341%{_mandir}/man1/pipewire.1*
234c024c 342%{_mandir}/man1/pw-cat.1*
96dfc521 343%{_mandir}/man1/pw-cli.1*
234c024c
JB
344%{_mandir}/man1/pw-dot.1*
345%{_mandir}/man1/pw-metadata.1*
346%{_mandir}/man1/pw-mididump.1*
96dfc521 347%{_mandir}/man1/pw-mon.1*
234c024c 348%{_mandir}/man1/pw-profiler.1*
911dd57a
JB
349%{_mandir}/man5/pipewire.conf.5*
350
351%files libs
352%defattr(644,root,root,755)
96dfc521
JB
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
911dd57a
JB
358
359%files devel
360%defattr(644,root,root,755)
96dfc521
JB
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
911dd57a
JB
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)
2ceddacd 375%attr(755,root,root) %{_bindir}/spa-acp-tool
96dfc521 376%dir %{_libdir}/spa-0.2/alsa
911dd57a 377# R: alsa-lib udev-libs
96dfc521 378%attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so
234c024c 379%{_datadir}/alsa-card-profile
911dd57a
JB
380
381%files spa-module-bluez
382%defattr(644,root,root,755)
96dfc521 383%dir %{_libdir}/spa-0.2/bluez5
911dd57a 384# R: dbus-libs sbc
96dfc521 385%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so
911dd57a
JB
386
387%files spa-module-ffmpeg
388%defattr(644,root,root,755)
96dfc521 389%dir %{_libdir}/spa-0.2/ffmpeg
911dd57a 390# R: ffmpeg-libs
96dfc521
JB
391%attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so
392
2329dfbb
JB
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
96dfc521
JB
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)
473830bc 410%attr(755,root,root) %{_bindir}/pw-jack
2ceddacd 411%{_sysconfdir}/pipewire/media-session.d/with-jack
473830bc
JR
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*
96dfc521
JB
416%endif
417
418%if %{with pulseaudio}
419%files pulseaudio
420%defattr(644,root,root,755)
421%doc pipewire-pulseaudio/README.md
2ceddacd 422%attr(755,root,root) %{_bindir}/pipewire-pulse
473830bc 423%attr(755,root,root) %{_bindir}/pw-pulse
2ceddacd 424%{_sysconfdir}/pipewire/media-session.d/with-pulseaudio
473830bc
JR
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*
2ceddacd
JB
429%{systemduserunitdir}/pipewire-pulse.service
430%{systemduserunitdir}/pipewire-pulse.socket
431%{_mandir}/man1/pw-pulse.1*
96dfc521
JB
432%endif
433
434%files -n alsa-plugin-pipewire
435%defattr(644,root,root,755)
234c024c 436%attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so
96dfc521
JB
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
234c024c 440/lib/udev/rules.d/90-pipewire-alsa.rules
911dd57a
JB
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.202753 seconds and 4 git commands to generate.