%global majorversion 1 %global minorversion 2 %global microversion 4 %global apiversion 0.3 %global spaversion 0.2 %global soversion 0 %global libversion %{soversion}.%(bash -c '((intversion = (%{minorversion} * 100) + %{microversion})); echo ${intversion}').0 %global ms_version 0.4.2 # The naming scheme in non-Mandriva-based distros %if 0%{!?mklibname:1} %define mklibname(ds) lib%{1}%{?2:%{2}}%{-s:-static}%{-d:-devel} %endif %define libname %mklibname %{name} %{apiversion} %{soversion} %define devname %mklibname %{name} -d %define obsolete_pulseaudio 0%{?mageia} >= 9 # Build conditions for various features %bcond_without alsa %bcond_without vulkan %bcond_without pulse %bcond_with media_session %bcond_without jack %bcond_without jackserver_plugin %bcond_with selinux # Disabled for Mageia < 9 %if (0%{?rhel} && 0%{?rhel} < 10) || (0%{?fedora} && 0%{?fedora} < 36) || (0%{?mageia} && 0%{?mageia} < 9) %bcond_with libcamera_plugin %else %bcond_without libcamera_plugin %endif %bcond_without v4l2 Name: pipewire Summary: Media Sharing Server Version: %{majorversion}.%{minorversion}.%{microversion} Release: 1%{?dist} Group: System/Servers License: MIT URL: https://pipewire.org/ Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/pipewire-%{version}.tar.bz2 %if %{with media_session} Source1: https://gitlab.freedesktop.org/pipewire/media-session/-/archive/%{ms_version}/media-session-%{ms_version}.tar.gz %endif ## upstream patches ## upstreamable patches ## fedora patches %if %{with media_session} Patch1001: 0001-Build-media-session-from-local-tarbal.patch %endif BuildRequires: gettext BuildRequires: meson >= 0.59.0 BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(glib-2.0) >= 2.32 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.32 BuildRequires: pkgconfig(gstreamer-1.0) >= 1.10.0 BuildRequires: pkgconfig(gstreamer-base-1.0) >= 1.10.0 BuildRequires: pkgconfig(gstreamer-plugins-base-1.0) >= 1.10.0 BuildRequires: pkgconfig(gstreamer-net-1.0) >= 1.10.0 BuildRequires: pkgconfig(gstreamer-allocators-1.0) >= 1.10.0 BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(ldacBT-enc) BuildRequires: pkgconfig(ldacBT-abr) BuildRequires: pkgconfig(lc3) BuildRequires: pkgconfig(fdk-aac) %if %{with vulkan} BuildRequires: pkgconfig(vulkan) %endif BuildRequires: pkgconfig(bluez) BuildRequires: pkgconfig(alsa) BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(libv4l2) BuildRequires: pkgconfig(sbc) BuildRequires: pkgconfig(sdl2) BuildRequires: doxygen BuildRequires: python3-docutils BuildRequires: graphviz BuildRequires: pkgconfig(sndfile) BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(ncursesw) BuildRequires: pkgconfig(libpulse) BuildRequires: pkgconfig(avahi-client) BuildRequires: pkgconfig(avahi-core) BuildRequires: pkgconfig(webrtc-audio-processing-1) >= 1.2.0 BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(readline) BuildRequires: pkgconfig(lilv-0) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(libcanberra) BuildRequires: pkgconfig(libmysofa) BuildRequires: pkgconfig(libffado) BuildRequires: pkgconfig(roc) %if %{with selinux} BuildRequires: pkgconfig(selinux) %endif Requires(pre): shadow-utils Requires: systemd Requires: rtkit # A virtual Provides so we can swap session managers Requires: pipewire-session-manager # client.conf and client-rt.conf moved to main pkg from pipewire-alsa Conflicts: pipewire-alsa < 0.3.61-3 %description PipeWire is a multimedia server for Linux and other Unix like operating systems. %package -n %{libname} Summary: Libraries for PipeWire clients Group: System/Libraries License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} Obsoletes: %{name}-libpulse < %{version}-%{release} %description -n %{libname} This package contains the runtime libraries for any application that wishes to interface with a PipeWire media server. %package -n gstreamer1.0-%{name} Summary: GStreamer elements for PipeWire Group: System/Servers License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} Provides: pipewire-gstreamer %description -n gstreamer1.0-%{name} This package contains GStreamer elements to interface with a PipeWire media server. %package -n %{devname} Summary: Headers and libraries for PipeWire client development Group: Development/C++ License: MIT Requires: %{libname} = %{version}-%{release} Provides: %{name}-devel = %{version}-%{release} Provides: spa-devel = %{version}-%{release} %description -n %{devname} Headers and libraries for developing applications that can communicate with a PipeWire media server. %package doc Summary: PipeWire media server documentation License: MIT Group: Documentation BuildArch: noarch Requires: %{name} >= %{version}-%{release} %description doc This package contains documentation for the PipeWire media server. %package utils Summary: PipeWire media server utilities License: MIT Group: System/Servers Requires: %{name} = %{version}-%{release} %description utils This package contains command line utilities for the PipeWire media server. %if %{with media_session} %package media-session Summary: PipeWire Media Session Manager License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} Obsoletes: %{name}-libpulse < %{version}-%{release} # before 0.3.30-5 the session manager was in the main pipewire package Conflicts: %{name}%{?_isa} < 0.3.30-5 # Virtual Provides to support swapping between PipeWire session manager implementations Provides: pipewire-session-manager Conflicts: pipewire-session-manager %description media-session This package contains the reference Media Session Manager for the PipeWire media server. %endif %if %{with alsa} %package alsa Summary: PipeWire media server ALSA support License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} %if 0%{?obsolete_pulseaudio} # Ensure this is provided by default to route all audio Supplements: %{name} = %{version}-%{release} # Replace PulseAudio and JACK ALSA plugins with PipeWire ## N.B.: If alsa-plugins gets updated in F33, this will need to be bumped Conflicts: %{mklibname alsa-plugins-jack} Conflicts: %{mklibname alsa-plugins-pulseaudio} Conflicts: alsa-plugins-pulse-config %endif %description alsa This package contains an ALSA plugin for the PipeWire media server. %endif %if %{with jack} %package jack-audio-connection-kit Summary: PipeWire JACK implementation License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} BuildRequires: pkgconfig(jack) >= 1.9.10 Conflicts: %{mklibname jack 0} Conflicts: jack-audio-connection-kit-dbus # Fixed jack subpackages Conflicts: %{name}-libjack < 0.3.13-6 Conflicts: %{name}-jack-audio-connection-kit < 0.3.13-6 # Replaces libjack subpackage Obsoletes: %{name}-libjack < 0.3.19-2 Provides: %{name}-libjack = %{version}-%{release} Provides: %{name}-libjack%{?_isa} = %{version}-%{release} %if 0%{?obsolete_pulseaudio} # Ensure this is provided by default to route all audio Supplements: %{name} = %{version}-%{release} # Replace JACK with PipeWire-JACK Conflicts: jackit %endif %description jack-audio-connection-kit This package provides a JACK implementation based on PipeWire. %package jack-audio-connection-kit-devel Summary: Development files for %{name}-jack-audio-connection-kit License: MIT Requires: %{name}-jack-audio-connection-kit%{?_isa} = %{version}-%{release} Conflicts: jack-audio-connection-kit-devel Enhances: %{name}-jack-audio-connection-kit %description jack-audio-connection-kit-devel This package provides development files for building JACK applications using PipeWire's JACK library. %endif %if %{with jackserver_plugin} %package plugin-jack Summary: PipeWire media server JACK support License: MIT BuildRequires: pkgconfig(jack) >= 1.9.10 Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{libname}%{?_isa} = %{version}-%{release} Requires: jackit %description plugin-jack This package contains the PipeWire spa plugin to connect to a JACK server. %endif %if %{with libcamera_plugin} %package plugin-libcamera Summary: PipeWire media server libcamera support License: MIT BuildRequires: pkgconfig(libcamera) >= 0.2.0 BuildRequires: pkgconfig(libdrm) Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{libname}%{?_isa} = %{version}-%{release} Requires: libdrm %description plugin-libcamera This package contains the PipeWire spa plugin to access cameras through libcamera. %endif %if %{with vulkan} %package plugin-vulkan Summary: PipeWire media server vulkan support License: MIT BuildRequires: pkgconfig(vulkan) Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{libname}%{?_isa} = %{version}-%{release} %description plugin-vulkan This package contains the PipeWire spa plugin for vulkan. %endif %if %{with pulse} %package pulseaudio Summary: PipeWire PulseAudio implementation License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} BuildRequires: %{mklibname pulseaudio 0} Requires: pulseaudio-utils Conflicts: pulseaudio # Fixed pulseaudio subpackages Conflicts: %{name}-libpulse < 0.3.13-6 Conflicts: %{name}-pulseaudio < 0.3.13-6 %if 0%{?obsolete_pulseaudio} # Ensure this is provided by default to route all audio Supplements: %{name} = %{version}-%{release} # Replace PulseAudio with PipeWire-PulseAudio ## N.B.: If pulseaudio gets updated in F33, this will need to be bumped Conflicts: pulseaudio Conflicts: pulseaudio-esound-compat Conflicts: pulseaudio-module-bluetooth > 10 Conflicts: pulseaudio-module-gconf Conflicts: pulseaudio-module-gsettings Conflicts: pulseaudio-module-jack > 10 Conflicts: pulseaudio-module-lirc Conflicts: pulseaudio-module-x11 Conflicts: pulseaudio-module-zeroconf Conflicts: pulseaudio-qpaeq %endif # Virtual Provides to support swapping between PipeWire-PA and PA Provides: pulseaudio-daemon Conflicts: pulseaudio-daemon Provides: pulseaudio-module-bluetooth Provides: pulseaudio-module-jack Conflicts: pipewire < 0.3.85-2 %description pulseaudio This package provides a PulseAudio implementation based on PipeWire. %endif %if %{with v4l2} %package v4l2 Summary: PipeWire media server v4l2 LD_PRELOAD support License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} %description v4l2 This package contains an LD_PRELOAD library that redirects v4l2 applications to PipeWire. %endif %package module-x11 Summary: PipeWire media server x11 support License: MIT Recommends: %{name}%{?_isa} = %{version}-%{release} %description module-x11 This package contains X11 bell support for PipeWire. %prep %autosetup -p1 %if %{with media_session} mkdir subprojects/packagefiles cp %{SOURCE1} subprojects/packagefiles/ %endif %build %meson \ -D docs=enabled -D man=enabled -D gstreamer=enabled -D systemd=enabled \ -D gstreamer-device-provider=disabled -D sdl2=disabled \ -D audiotestsrc=disabled -D videotestsrc=disabled \ -D volume=disabled -D bluez5-codec-aptx=disabled -D roc=enabled \ -D bluez5-codec-lc3plus=disabled -D bluez5-codec-lc3=enabled \ -D bluez5-codec-ldac=enabled \ -D rtprio-server=60 -D rtprio-client=55 -D rlimits-rtprio=70 \ %if "%{version}" >= "1.1.81" -D snap=disabled \ %endif %{!?with_media_session:-D session-managers=[]} \ %{!?with_jack:-D pipewire-jack=disabled} \ %{!?with_jackserver_plugin:-D jack=disabled} \ %{!?with_libcamera_plugin:-D libcamera=disabled} \ %{?with_jack:-D jack-devel=true} \ %{!?with_alsa:-D pipewire-alsa=disabled} \ %{?with_vulkan:-D vulkan=enabled} \ %{!?with_selinux:-D selinux=disabled} \ %{nil} %meson_build %install %meson_install %if %{with jack} mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d/ echo %{_libdir}/pipewire-%{apiversion}/jack/ > %{buildroot}%{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf %else rm %{buildroot}%{_datadir}/pipewire/jack.conf %if %{with media_session} rm %{buildroot}%{_datadir}/pipewire/media-session.d/with-jack %endif %endif %if %{with alsa} mkdir -p %{buildroot}%{_sysconfdir}/alsa/conf.d/ cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/50-pipewire.conf \ %{buildroot}%{_sysconfdir}/alsa/conf.d/50-pipewire.conf cp %{buildroot}%{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf \ %{buildroot}%{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf # For our soundprofile thingie mkdir -p %{buildroot}%{_sysconfdir}/sound/profiles/pulse/ cat > %{buildroot}%{_sysconfdir}/sound/profiles/pulse/alsa-default.conf </dev/null || groupadd -r pipewire getent passwd pipewire >/dev/null || \ useradd -r -g pipewire -d /run/pipewire -s /sbin/nologin -c "PipeWire System Daemon" pipewire exit 0 %post %systemd_user_post pipewire.service %systemd_user_post pipewire.socket %if %{with pulse} %post pulseaudio %systemd_user_post pipewire-pulse.service %systemd_user_post pipewire-pulse.socket %endif %if %{with media_session} %post media-session %systemd_user_post pipewire-media-session.service %endif %files -f %{name}.lang %license LICENSE COPYING %doc README.md NEWS %config(noreplace) %{_sysconfdir}/security/limits.d/*.conf %{_userunitdir}/pipewire.* %{_userunitdir}/filter-chain.* %{_bindir}/pipewire %{_bindir}/pipewire-aes67 %{_bindir}/pipewire-avb %{_libdir}/pipewire-%{apiversion}/libpipewire-module-access.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-adapter.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-avb.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-client-device.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-client-node.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-combine-stream.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-echo-cancel.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-fallback-sink.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-ffado-driver.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-filter-chain.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-filter-chain-lv2.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-filter-chain-sofa.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-link-factory.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-loopback.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-metadata.so %if "%{version}" >= "1.1.81" %{_libdir}/pipewire-%{apiversion}/libpipewire-module-parametric-equalizer.so %endif %{_libdir}/pipewire-%{apiversion}/libpipewire-module-pipe-tunnel.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-portal.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-profiler.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-protocol-native.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-protocol-simple.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-pulse-tunnel.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-raop-discover.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-raop-sink.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-roc-sink.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-roc-source.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-rtkit.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-rtp-sap.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-rtp-session.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-rtp-sink.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-rtp-source.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-rt.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-session-manager.so %if "%{version}" >= "1.1.81" %{_libdir}/pipewire-%{apiversion}/libpipewire-module-snapcast-discover.so %endif %{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-device-factory.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-device.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-node-factory.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-spa-node.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-vban-send.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-vban-recv.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-zeroconf-discover.so %dir %{_datadir}/alsa-card-profile/ %dir %{_datadir}/alsa-card-profile/mixer/ %{_datadir}/alsa-card-profile/mixer/paths/ %{_datadir}/alsa-card-profile/mixer/profile-sets/ %dir %{_datadir}/spa-0.2/ %{_datadir}/spa-0.2/bluez5/bluez-hardware.conf %{_prefix}/lib/udev/rules.d/90-pipewire-alsa.rules %{_libdir}/spa-%{spaversion} %{_mandir}/man1/pipewire.1* %dir %{_datadir}/pipewire/ %{_datadir}/pipewire/client.conf %{_datadir}/pipewire/client-rt.conf %{_datadir}/pipewire/pipewire.conf %{_datadir}/pipewire/minimal.conf %{_datadir}/pipewire/filter-chain.conf %{_datadir}/pipewire/filter-chain/*.conf %{_datadir}/pipewire/pipewire-aes67.conf %{_datadir}/pipewire/pipewire-avb.conf %dir %{_datadir}/pipewire/client.conf.avail/ %dir %{_datadir}/pipewire/client-rt.conf.avail/ %dir %{_datadir}/pipewire/pipewire.conf.avail/ %{_datadir}/pipewire/client.conf.avail/20-upmix.conf %{_datadir}/pipewire/client-rt.conf.avail/20-upmix.conf %{_datadir}/pipewire/pipewire.conf.avail/10-rates.conf %{_datadir}/pipewire/pipewire.conf.avail/20-upmix.conf %{_mandir}/man5/pipewire.conf.5* %{_mandir}/man5/pipewire-client.conf.5* %{_mandir}/man5/pipewire-filter-chain.conf.5* %{_mandir}/man7/libpipewire-module-*.7* %{_mandir}/man7/libpipewire-modules.7* %{_mandir}/man7/pipewire-devices.7* %if %{with media_session} %files media-session -f media-session.lang %{_bindir}/pipewire-media-session %{_userunitdir}/pipewire-media-session.service %dir %{_datadir}/pipewire/media-session.d/ %{_datadir}/pipewire/media-session.d/alsa-monitor.conf %{_datadir}/pipewire/media-session.d/bluez-monitor.conf %{_datadir}/pipewire/media-session.d/media-session.conf %{_datadir}/pipewire/media-session.d/v4l2-monitor.conf %if %{with alsa} %{_datadir}/pipewire/media-session.d/with-alsa %endif %if %{with jack} %{_datadir}/pipewire/media-session.d/with-jack %endif %if %{with pulse} %{_datadir}/pipewire/media-session.d/with-pulseaudio %endif %endif %files -n %{libname} %license LICENSE COPYING %doc README.md %{_libdir}/lib%{name}-%{apiversion}.so.%{soversion}{,.*} %files -n gstreamer1.0-%{name} %{_libdir}/gstreamer-1.0/libgstpipewire.* %files -n %{devname} %{_libdir}/libpipewire-%{apiversion}.so %{_includedir}/pipewire-%{apiversion}/ %{_includedir}/spa-%{spaversion}/ %{_libdir}/pkgconfig/libpipewire-%{apiversion}.pc %{_libdir}/pkgconfig/libspa-%{spaversion}.pc %files doc %doc README.md NEWS %{_datadir}/doc/pipewire/html %files utils %{_bindir}/pw-mon %{_bindir}/pw-metadata %{_bindir}/pw-dsdplay %{_bindir}/pw-mididump %{_bindir}/pw-midiplay %{_bindir}/pw-midirecord %{_bindir}/pw-cli %{_bindir}/pw-dot %{_bindir}/pw-cat %{_bindir}/pw-config %if "%{version}" >= "1.1.81" %{_bindir}/pw-container %endif %{_bindir}/pw-dump %{_bindir}/pw-encplay %{_bindir}/pw-link %{_bindir}/pw-loopback %{_bindir}/pw-play %{_bindir}/pw-profiler %{_bindir}/pw-record %{_bindir}/pw-reserve %{_bindir}/pw-top %{_mandir}/man1/pw-mon.1* %{_mandir}/man1/pw-cli.1* %{_mandir}/man1/pw-cat.1* %{_mandir}/man1/pw-config.1* %if "%{version}" >= "1.1.81" %{_mandir}/man1/pw-container.1* %endif %{_mandir}/man1/pw-dot.1* %{_mandir}/man1/pw-dump.1* %{_mandir}/man1/pw-link.1* %{_mandir}/man1/pw-loopback.1* %{_mandir}/man1/pw-metadata.1* %{_mandir}/man1/pw-mididump.1* %{_mandir}/man1/pw-profiler.1* %{_mandir}/man1/pw-reserve.1* %{_mandir}/man1/pw-top.1* %{_mandir}/man1/spa-acp-tool.1* %{_mandir}/man1/spa-inspect.1* %{_mandir}/man1/spa-json-dump.1* %{_mandir}/man1/spa-monitor.1* %{_mandir}/man1/spa-resample.1* %{_bindir}/spa-acp-tool %{_bindir}/spa-inspect %{_bindir}/spa-json-dump %{_bindir}/spa-monitor %{_bindir}/spa-resample %if %{with alsa} %files alsa %{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so %{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so %{_datadir}/alsa/alsa.conf.d/50-pipewire.conf %{_datadir}/alsa/alsa.conf.d/99-pipewire-default.conf %config(noreplace) %{_sysconfdir}/alsa/conf.d/50-pipewire.conf %config(noreplace) %{_sysconfdir}/alsa/conf.d/99-pipewire-default.conf %config %{_sysconfdir}/sound/profiles/pulse/alsa-default.conf %endif %if %{with jack} %files jack-audio-connection-kit %{_bindir}/pw-jack %{_mandir}/man1/pw-jack.1* %{_libdir}/pipewire-%{apiversion}/jack/libjack.so.* %{_libdir}/pipewire-%{apiversion}/jack/libjacknet.so.* %{_libdir}/pipewire-%{apiversion}/jack/libjackserver.so.* %{_datadir}/pipewire/jack.conf %{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf %{_mandir}/man5/pipewire-jack.conf.5* %files jack-audio-connection-kit-devel %{_includedir}/jack/ %{_libdir}/pipewire-%{apiversion}/jack/libjack.so %{_libdir}/pipewire-%{apiversion}/jack/libjacknet.so %{_libdir}/pipewire-%{apiversion}/jack/libjackserver.so %{_libdir}/pkgconfig/jack.pc %endif %if %{with jackserver_plugin} %files plugin-jack %{_libdir}/pipewire-%{apiversion}/libpipewire-module-jack-tunnel.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-jackdbus-detect.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-netjack2-driver.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-netjack2-manager.so %{_libdir}/spa-%{spaversion}/jack/ %endif %if %{with libcamera_plugin} %files plugin-libcamera %{_libdir}/spa-%{spaversion}/libcamera/ %endif %if %{with vulkan} %files plugin-vulkan %{_bindir}/pipewire-vulkan %{_datadir}/pipewire/pipewire-vulkan.conf %{_libdir}/spa-%{spaversion}/vulkan/ %endif %if %{with pulse} %files pulseaudio %{_bindir}/pipewire-pulse %{_userunitdir}/pipewire-pulse.* %{_datadir}/pipewire/pipewire-pulse.conf %{_datadir}/pipewire/pipewire-pulse.conf.avail/20-upmix.conf %if "%{version}" >= "1.1.81" %{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml %endif %{_libdir}/pipewire-%{apiversion}/libpipewire-module-protocol-pulse.so %{_mandir}/man1/pipewire-pulse.1* %{_mandir}/man5/pipewire-pulse.conf.5* %{_mandir}/man7/pipewire-pulse-module-*.7* %{_mandir}/man7/pipewire-pulse-modules.7* %endif %if %{with v4l2} %files v4l2 %{_bindir}/pw-v4l2 %{_libdir}/pipewire-%{apiversion}/v4l2/libpw-v4l2.so %{_mandir}/man1/pw-v4l2.1* %endif %files module-x11 %{_libdir}/pipewire-%{apiversion}/libpipewire-module-x11-bell.so