- updated to 0.3.12
[packages/pipewire.git] / pipewire.spec
CommitLineData
234c024c 1# TODO: evl support (BR: libevl-devel, 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
234c024c 13Version: 0.3.12
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
234c024c 19# Source0-md5: 66f8577f1f9acaf012858c23c05d9322
96dfc521 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
234c024c 26BuildRequires: alsa-lib-devel >= 1.1.7
96dfc521 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}
234c024c
JB
38BuildRequires: gstreamer-devel >= 1.10
39BuildRequires: gstreamer-plugins-base-devel >= 1.10
911dd57a 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}
234c024c 53Requires: libsndfile >= 1.0.20
911dd57a
JB
54BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
55
56%description
57PipeWire is a server and user space API to deal with multimedia
58pipelines. This includes:
59 - Making available sources of video (such as from a capture devices
60 or application provided streams) and multiplexing this with
61 clients.
62 - Accessing sources of video for consumption.
63 - Generating graphs for audio and video processing.
64
65Nodes in the graph can be implemented as separate processes,
66communicating with sockets and exchanging multimedia content using fd
67passing.
68
69%description -l pl.UTF-8
70PipeWire to serwer i API przestrzeni użytkownika do obsługi potoków
71multimedialnych. Obejmuje to:
72 - udostępnianie źródeł obrazu (np. z urządzeń przechwytujących obraz
73 lub strumieni udostępnianych przez aplikacje) oraz multipleksowanie
74 ich do klientów
75 - dostęp do źródeł obrazu do pobierania
76 - generowanie grafów do przetwarzania dźwięku i obrazu
77
78%package libs
79Summary: PipeWire shared library
80Summary(pl.UTF-8): Biblioteka współdzielona PipeWire
81Group: Libraries
82
83%description libs
84PipeWire shared library.
85
86%description libs -l pl.UTF-8
87Biblioteka współdzielona PipeWire.
88
89%package devel
90Summary: Header files for PipeWire library and Simple Plugin API
91Summary(pl.UTF-8): Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API
92Group: Development/Libraries
93Requires: %{name}-libs = %{version}-%{release}
94
95%description devel
96Header files for PipeWire library and Simple Plugin API.
97
98%description devel -l pl.UTF-8
99Pliki nagłówkowe biblioteki PipeWire oraz Simple Plugin API.
100
101%package apidocs
102Summary: API documentation for PipeWire library
103Summary(pl.UTF-8): Dokumentacja API biblioteki PipeWire
104Group: Documentation
96dfc521 105%if "%{_rpmversion}" >= "4.6"
911dd57a
JB
106BuildArch: noarch
107%endif
108
109%description apidocs
110API documentation for PipeWire library.
111
112%description apidocs -l pl.UTF-8
113Dokumentacja API biblioteki PipeWire.
114
115%package spa-module-alsa
116Summary: PipeWire SPA plugin to play and record audio with ALSA API
117Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API ALSA
118Group: Libraries
119Requires: %{name}-libs = %{version}-%{release}
234c024c 120Requires: alsa-lib >= 1.1.7
911dd57a
JB
121
122%description spa-module-alsa
123PipeWire SPA plugin to play and record audio with ALSA API.
124
125%description spa-module-alsa -l pl.UTF-8
126Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
127API ALSA.
128
129%package spa-module-bluez
130Summary: PipeWire SPA plugin to play audio with Bluetooth A2DP
131Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP
132Group: Libraries
133Requires: %{name}-libs = %{version}-%{release}
96dfc521 134Requires: bluez-libs >= 4.101
911dd57a
JB
135
136%description spa-module-bluez
137PipeWire SPA plugin to play audio with Bluetooth A2DP.
138
139%description spa-module-bluez -l pl.UTF-8
140Wtyczka PipeWire SPA do odtwarzania dźwięku przez Bluetooth A2DP.
141
142%package spa-module-ffmpeg
143Summary: PipeWire SPA plugin to decode/encode with FFmpeg library
144Summary(pl.UTF-8): Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki FFmpeg
145Group: Libraries
146Requires: %{name}-libs = %{version}-%{release}
147
148%description spa-module-ffmpeg
149PipeWire SPA plugin to decode/encode with FFmpeg library.
150
151%description spa-module-ffmpeg -l pl.UTF-8
152Wtyczka PipeWire SPA do kodowania/dekodowania przy użyciu biblioteki
153FFmpeg.
154
96dfc521
JB
155%package spa-module-jack
156Summary: PipeWire SPA plugin to play and record audio with JACK API
157Summary(pl.UTF-8): Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu API JACK
158Group: Libraries
159Requires: %{name}-libs = %{version}-%{release}
160Requires: jack-audio-connection-kit >= 1.9.10
161
162%description spa-module-jack
163PipeWire SPA plugin to play and record audio with JACK API.
164
165%description spa-module-jack -l pl.UTF-8
166Wtyczka PipeWire SPA do odtwarzania i nagrywania dźwięku przy użyciu
167API JACK.
168
169%package spa-module-vulkan
170Summary: PipeWire SPA plugin to generate video frames using Vulkan
171Summary(pl.UTF-8): Wtyczka PipeWire SPA do generowania ramek obrazu przy użyciu Vulkana
172Group: Libraries
173Requires: %{name}-libs = %{version}-%{release}
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 \
911dd57a 243 %{?with_apidocs:-Ddocs=true} \
96dfc521 244 %{?with_ffmpeg:-Dffmpeg=true} \
911dd57a 245 %{!?with_gstreamer:-Dgstreamer=false} \
96dfc521
JB
246 %{!?with_jack:-Djack=false} \
247 -Dman=true \
248 %{!?with_jack:-Dpipewire-jack=false} \
249 %{!?with_pulseaudio:-Dpipewire-pulseaudio=false} \
250 -Dvideotestsrc=true \
251 -Dvolume=true
252# TODO: -Devl=true
911dd57a
JB
253
254%ninja_build -C build
255
256%install
257rm -rf $RPM_BUILD_ROOT
258
259%ninja_install -C build
260
96dfc521
JB
261install -d $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
262cp -p pipewire-alsa/conf/*.conf $RPM_BUILD_ROOT%{_datadir}/alsa/alsa.conf.d
263
911dd57a
JB
264# packaged as %doc in -apidocs
265%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pipewire/html
266
267%clean
268rm -rf $RPM_BUILD_ROOT
269
270%post libs -p /sbin/ldconfig
271%postun libs -p /sbin/ldconfig
272
273%files
274%defattr(644,root,root,755)
275%attr(755,root,root) %{_bindir}/pipewire
96dfc521
JB
276%attr(755,root,root) %{_bindir}/pipewire-media-session
277%attr(755,root,root) %{_bindir}/pw-cat
278%attr(755,root,root) %{_bindir}/pw-cli
279%attr(755,root,root) %{_bindir}/pw-dot
234c024c
JB
280%attr(755,root,root) %{_bindir}/pw-metadata
281%attr(755,root,root) %{_bindir}/pw-mididump
282%attr(755,root,root) %{_bindir}/pw-midiplay
283%attr(755,root,root) %{_bindir}/pw-midirecord
96dfc521
JB
284%attr(755,root,root) %{_bindir}/pw-mon
285%attr(755,root,root) %{_bindir}/pw-play
286%attr(755,root,root) %{_bindir}/pw-record
287%attr(755,root,root) %{_bindir}/pw-profiler
911dd57a
JB
288%attr(755,root,root) %{_bindir}/spa-inspect
289%attr(755,root,root) %{_bindir}/spa-monitor
290%dir %{_sysconfdir}/pipewire
291%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/pipewire/pipewire.conf
292%{systemduserunitdir}/pipewire.service
293%{systemduserunitdir}/pipewire.socket
96dfc521
JB
294%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-access.so
295%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-adapter.so
296%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-device.so
297%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-client-node.so
298%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-link-factory.so
299%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-metadata.so
234c024c 300%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-portal.so
96dfc521 301%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-profiler.so
911dd57a 302# R: systemd-libs
96dfc521 303%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-protocol-native.so
911dd57a 304# R: dbus-libs
96dfc521
JB
305%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-rtkit.so
306%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-session-manager.so
307%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device.so
308%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-device-factory.so
309%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node.so
310%attr(755,root,root) %{_libdir}/pipewire-0.3/libpipewire-module-spa-node-factory.so
311%dir %{_libdir}/spa-0.2/audioconvert
312%attr(755,root,root) %{_libdir}/spa-0.2/audioconvert/libspa-audioconvert.so
313%dir %{_libdir}/spa-0.2/audiomixer
314%attr(755,root,root) %{_libdir}/spa-0.2/audiomixer/libspa-audiomixer.so
315%dir %{_libdir}/spa-0.2/audiotestsrc
316%attr(755,root,root) %{_libdir}/spa-0.2/audiotestsrc/libspa-audiotestsrc.so
317%dir %{_libdir}/spa-0.2/control
318%attr(755,root,root) %{_libdir}/spa-0.2/control/libspa-control.so
319%dir %{_libdir}/spa-0.2/support
911dd57a 320# R: dbus-libs
96dfc521
JB
321%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-dbus.so
322%attr(755,root,root) %{_libdir}/spa-0.2/support/libspa-support.so
323%dir %{_libdir}/spa-0.2/v4l2
911dd57a 324# R: udev-libs
96dfc521
JB
325%attr(755,root,root) %{_libdir}/spa-0.2/v4l2/libspa-v4l2.so
326%dir %{_libdir}/spa-0.2/videoconvert
327%attr(755,root,root) %{_libdir}/spa-0.2/videoconvert/libspa-videoconvert.so
328%dir %{_libdir}/spa-0.2/videotestsrc
329%attr(755,root,root) %{_libdir}/spa-0.2/videotestsrc/libspa-videotestsrc.so
330%dir %{_libdir}/spa-0.2/volume
331%attr(755,root,root) %{_libdir}/spa-0.2/volume/libspa-volume.so
911dd57a 332%{_mandir}/man1/pipewire.1*
234c024c 333%{_mandir}/man1/pw-cat.1*
96dfc521 334%{_mandir}/man1/pw-cli.1*
234c024c
JB
335%{_mandir}/man1/pw-dot.1*
336%{_mandir}/man1/pw-metadata.1*
337%{_mandir}/man1/pw-mididump.1*
96dfc521 338%{_mandir}/man1/pw-mon.1*
234c024c
JB
339%{_mandir}/man1/pw-profiler.1*
340%{_mandir}/man1/pw-pulse.1*
911dd57a
JB
341%{_mandir}/man5/pipewire.conf.5*
342
343%files libs
344%defattr(644,root,root,755)
96dfc521
JB
345%doc COPYING LICENSE NEWS README.md
346%attr(755,root,root) %{_libdir}/libpipewire-0.3.so.*.*.*
347%attr(755,root,root) %ghost %{_libdir}/libpipewire-0.3.so.0
348%dir %{_libdir}/pipewire-0.3
349%dir %{_libdir}/spa-0.2
911dd57a
JB
350
351%files devel
352%defattr(644,root,root,755)
96dfc521
JB
353%attr(755,root,root) %{_libdir}/libpipewire-0.3.so
354%{_includedir}/pipewire-0.3
355%{_includedir}/spa-0.2
356%{_pkgconfigdir}/libpipewire-0.3.pc
357%{_pkgconfigdir}/libspa-0.2.pc
911dd57a
JB
358
359%if %{with apidocs}
360%files apidocs
361%defattr(644,root,root,755)
362%doc doc/design.txt build/doc/html/*
363%endif
364
365%files spa-module-alsa
366%defattr(644,root,root,755)
96dfc521 367%dir %{_libdir}/spa-0.2/alsa
911dd57a 368# R: alsa-lib udev-libs
96dfc521 369%attr(755,root,root) %{_libdir}/spa-0.2/alsa/libspa-alsa.so
234c024c 370%{_datadir}/alsa-card-profile
911dd57a
JB
371
372%files spa-module-bluez
373%defattr(644,root,root,755)
96dfc521 374%dir %{_libdir}/spa-0.2/bluez5
911dd57a 375# R: dbus-libs sbc
96dfc521 376%attr(755,root,root) %{_libdir}/spa-0.2/bluez5/libspa-bluez5.so
911dd57a
JB
377
378%files spa-module-ffmpeg
379%defattr(644,root,root,755)
96dfc521 380%dir %{_libdir}/spa-0.2/ffmpeg
911dd57a 381# R: ffmpeg-libs
96dfc521
JB
382%attr(755,root,root) %{_libdir}/spa-0.2/ffmpeg/libspa-ffmpeg.so
383
2329dfbb
JB
384%if %{with jack}
385%files spa-module-jack
386%defattr(644,root,root,755)
387%dir %{_libdir}/spa-0.2/jack
388# R: jack-audio-connection-kit-libs
389%attr(755,root,root) %{_libdir}/spa-0.2/jack/libspa-jack.so
390%endif
391
96dfc521
JB
392%files spa-module-vulkan
393%defattr(644,root,root,755)
394%dir %{_libdir}/spa-0.2/vulkan
395# R: Vulkan-Loader
396%attr(755,root,root) %{_libdir}/spa-0.2/vulkan/libspa-vulkan.so
397
398%if %{with jack}
399%files jack
400%defattr(644,root,root,755)
473830bc
JR
401%attr(755,root,root) %{_bindir}/pw-jack
402%dir %attr(755,root,root) %{_libdir}/pipewire-0.3/jack
403%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjack.so*
404%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjacknet.so*
405%attr(755,root,root) %{_libdir}/pipewire-0.3/jack/libjackserver.so*
96dfc521
JB
406%endif
407
408%if %{with pulseaudio}
409%files pulseaudio
410%defattr(644,root,root,755)
411%doc pipewire-pulseaudio/README.md
473830bc
JR
412%attr(755,root,root) %{_bindir}/pw-pulse
413%dir %attr(755,root,root) %{_libdir}/pipewire-0.3/pulse
414%attr(755,root,root) %{_libdir}/pipewire-0.3/pulse/libpulse-mainloop-glib.so*
415%attr(755,root,root) %{_libdir}/pipewire-0.3/pulse/libpulse.so*
416%attr(755,root,root) %{_libdir}/pipewire-0.3/pulse/libpulse-simple.so*
96dfc521
JB
417%endif
418
419%files -n alsa-plugin-pipewire
420%defattr(644,root,root,755)
234c024c 421%attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so
96dfc521
JB
422%attr(755,root,root) %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so
423%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf
424%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf
234c024c 425/lib/udev/rules.d/90-pipewire-alsa.rules
911dd57a
JB
426
427%if %{with gstreamer}
428%files -n gstreamer-pipewire
429%defattr(644,root,root,755)
430%attr(755,root,root) %{_libdir}/gstreamer-1.0/libgstpipewire.so
431%endif
This page took 0.268298 seconds and 4 git commands to generate.