- package spa-module-jack
[packages/pipewire.git] / pipewire.spec
CommitLineData
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#
10Summary: PipeWire - server and user space API to deal with multimedia pipelines
11Summary(pl.UTF-8): PipeWire - serwer i API przestrzeni użytkownika do obsługi potoków multimedialnych
12Name: pipewire
96dfc521 13Version: 0.3.2
911dd57a
JB
14Release: 1
15License: LGPL v2+
16Group: Libraries
17#Source0Download: https://github.com/PipeWire/pipewire/releases
18Source0: https://github.com/PipeWire/pipewire/archive/%{version}/%{name}-%{version}.tar.gz
96dfc521
JB
19# Source0-md5: b39c50a59b779982cb888ca36d769d2d
20Patch0: %{name}-gcc.patch
911dd57a 21URL: https://pipewire.org/
96dfc521
JB
22%if %{with jack}
23BuildRequires: SDL2-devel >= 2
24%endif
25BuildRequires: Vulkan-Loader-devel
26BuildRequires: alsa-lib-devel >= 1
27BuildRequires: bluez-libs-devel >= 4.101
911dd57a
JB
28BuildRequires: dbus-devel
29%{?with_apidocs:BuildRequires: doxygen}
30# libavcodec libavformat libavfilter
96dfc521 31%{?with_ffmpeg:BuildRequires: ffmpeg-devel}
911dd57a 32BuildRequires: gcc >= 5:3.2
96dfc521
JB
33%if %{with gstreamer} || %{with pulseaudio}
34BuildRequires: glib2-devel >= 1:2.32.0
35%endif
911dd57a
JB
36%{?with_apidocs:BuildRequires: graphviz}
37%if %{with gstreamer}
38BuildRequires: gstreamer-devel >= 1.0
39BuildRequires: gstreamer-plugins-base-devel >= 1.0
40%endif
96dfc521
JB
41%{?with_jack:BuildRequires: jack-audio-connection-kit-devel >= 1.9.10}
42BuildRequires: libsndfile-devel >= 1.0.20
43BuildRequires: meson >= 0.50.0
911dd57a
JB
44BuildRequires: ninja >= 1.5
45BuildRequires: pkgconfig
96dfc521 46%{?with_pulseaudio:BuildRequires: pulseaudio-devel >= 11.1}
911dd57a
JB
47BuildRequires: rpmbuild(macros) >= 1.736
48BuildRequires: sbc-devel
49BuildRequires: systemd-devel
50BuildRequires: udev-devel
51BuildRequires: xmltoman
52Requires: %{name}-libs = %{version}-%{release}
53BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
54
55%description
56PipeWire is a server and user space API to deal with multimedia
57pipelines. 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
64Nodes in the graph can be implemented as separate processes,
65communicating with sockets and exchanging multimedia content using fd
66passing.
67
68%description -l pl.UTF-8
69PipeWire to serwer i API przestrzeni użytkownika do obsługi potoków
70multimedialnych. 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
78Summary: PipeWire shared library
79Summary(pl.UTF-8): Biblioteka współdzielona PipeWire
80Group: Libraries
81
82%description libs
83PipeWire shared library.
84
85%description libs -l pl.UTF-8
86Biblioteka współdzielona PipeWire.
87
88%package devel
89Summary: Header files for PipeWire library and Simple Plugin API
90Summary(pl.UTF-8): Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API
91Group: Development/Libraries
92Requires: %{name}-libs = %{version}-%{release}
93
94%description devel
95Header files for PipeWire library and Simple Plugin API.
96
97%description devel -l pl.UTF-8
98Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API.
99
100%package apidocs
101Summary: API documentation for PipeWire library
102Summary(pl.UTF-8): Dokumentacja API biblioteki PipeWire
103Group: Documentation
96dfc521 104%if "%{_rpmversion}" >= "4.6"
911dd57a
JB
105BuildArch: noarch
106%endif
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}
119
120%description spa-module-alsa
121PipeWire SPA plugin to play and record audio with ALSA API.
122
123%description spa-module-alsa -l pl.UTF-8
124Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
125API ALSA.
126
127%package spa-module-bluez
128Summary: PipeWire SPA plugin to play audio with Bluetooth A2DP
129Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP
130Group: Libraries
131Requires: %{name}-libs = %{version}-%{release}
96dfc521 132Requires: bluez-libs >= 4.101
911dd57a
JB
133
134%description spa-module-bluez
135PipeWire SPA plugin to play audio with Bluetooth A2DP.
136
137%description spa-module-bluez -l pl.UTF-8
138Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP.
139
140%package spa-module-ffmpeg
141Summary: PipeWire SPA plugin to decode/encode with FFmpeg library
142Summary(pl.UTF-8): Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki FFmpeg
143Group: Libraries
144Requires: %{name}-libs = %{version}-%{release}
145
146%description spa-module-ffmpeg
147PipeWire SPA plugin to decode/encode with FFmpeg library.
148
149%description spa-module-ffmpeg -l pl.UTF-8
150Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki
151FFmpeg.
152
96dfc521
JB
153%package spa-module-jack
154Summary: PipeWire SPA plugin to play and record audio with JACK API
155Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API JACK
156Group: Libraries
157Requires: %{name}-libs = %{version}-%{release}
158Requires: jack-audio-connection-kit >= 1.9.10
159
160%description spa-module-jack
161PipeWire SPA plugin to play and record audio with JACK API.
162
163%description spa-module-jack -l pl.UTF-8
164Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
165API JACK.
166
167%package spa-module-vulkan
168Summary: PipeWire SPA plugin to generate video frames using Vulkan
169Summary(pl.UTF-8): Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana
170Group: Libraries
171Requires: %{name}-libs = %{version}-%{release}
172
173%description spa-module-vulkan
174PipeWire SPA plugin to generate video frames using Vulkan.
175
176%description spa-module-vulkan -l pl.UTF-8
177Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana.
178
179%package jack
180Summary: PipeWire JACK sound system integration
181Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku JACK
182Group: Libraries
183Requires: %{name} = %{version}-%{release}
184Requires: jack-audio-connection-kit >= 1.9.10
185
186%description jack
187PipeWire JACK sound system integration.
188
189%description jack -l pl.UTF-8
190Integracja PipeWire z systemem dźwięku JACK.
191
192%package pulseaudio
193Summary: PipeWire PulseAudio sound system integration
194Summary(pl.UTF-8): Integracja PipeWire z systemem dźwięku PulseAudio
195Group: Libraries
196Requires: %{name} = %{version}-%{release}
197Requires: pulseaudio >= 11.1
198
199%description pulseaudio
200PipeWire PulseAudio sound system integration.
201
202%description pulseaudio -l pl.UTF-8
203Integracja PipeWire z systemem dźwięku PulseAudio.
204
205%package -n alsa-plugin-pipewire
206Summary: PipeWire integration plugin for ALSA sound system
207Summary(pl.UTF-8): Wtyczka systemu dźwięku ALSA integrująca z PipeWire
208Group: Libraries
209Requires: %{name} = %{version}-%{release}
210Requires: alsa-lib >= 1
211
212%description -n alsa-plugin-pipewire
213PipeWire integration plugin for ALSA sound system.
214
215%description -n alsa-plugin-pipewire -l pl.UTF-8
216Wtyczka systemu dźwięku ALSA integrująca z PipeWire.
217
911dd57a
JB
218%package -n gstreamer-pipewire
219Summary: PipeWire video sink and source plugin for GStreamer
220Summary(pl.UTF-8): Wtyczka udostępniająca źródło i cel obrazu PipeWire dla GStreamera
221Group: Libraries
222Requires: %{name} = %{version}-%{release}
223Requires: gstreamer >= 1.0
224Requires: gstreamer-plugins-base >= 1.0
225
226%description -n gstreamer-pipewire
227PipeWire video sink and source plugin for GStreamer.
228
229%description -n gstreamer-pipewire -l pl.UTF-8
230Wtyczka 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
253rm -rf $RPM_BUILD_ROOT
254
255%ninja_install -C build
256
96dfc521
JB
257install -d $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
258cp -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
264rm -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
This page took 0.122158 seconds and 4 git commands to generate.