%global majorversion 1 %global minorversion 2 %global microversion 1 %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 %bcond_without alsa %bcond_without v4l2 %bcond_with vulkan %bcond_with pulse %bcond_with jack %bcond_with jackserver_plugin %bcond_with libmysofa %bcond_with lv2 %bcond_with roc %bcond_with ffado %bcond_with libcamera_plugin Name: pipewire Version: %{majorversion}.%{minorversion}.%{microversion} Release: 1 Summary: Multimedia processing graphs License: MIT URL: https://pipewire.org/ Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/%{name}-%{version}.tar.bz2 BuildRequires: gettext BuildRequires: meson >= 0.59.0 BuildRequires: gcc BuildRequires: g++ BuildRequires: pkgconfig 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(ldacBT-enc) BuildRequires: pkgconfig(ldacBT-abr) BuildRequires: pkgconfig(bluez) BuildRequires: pkgconfig(xfixes) >= 6 BuildRequires: systemd BuildRequires: systemd-devel BuildRequires: alsa-lib-devel BuildRequires: libv4l-devel BuildRequires: doxygen BuildRequires: python-docutils BuildRequires: graphviz BuildRequires: sbc-devel BuildRequires: libsndfile-devel BuildRequires: ncurses-devel BuildRequires: avahi-devel BuildRequires: pkgconfig(webrtc-audio-processing-1) >= 1.2 BuildRequires: libusb1-devel BuildRequires: readline-devel BuildRequires: openssl-devel BuildRequires: libcanberra-devel BuildRequires: libuv-devel BuildRequires: speexdsp-devel Requires(pre): shadow-utils Requires: systemd >= 184 rtkit %description %{name} is a server and user space API to deal with multimedia pipelines,contains command line utilities. %package libs Summary: Libraries for PipeWire clients Recommends: %{name}%{?_isa} = %{version}-%{release} %description libs This package contains the runtime libraries for any application that wishes to interface with a PipeWire media server. %package gstreamer Summary: GStreamer elements for PipeWire Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description gstreamer This package contains GStreamer elements to interface with a PipeWire media server. %package utils Summary: PipeWire media server utilities Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description utils This package contains command line utilities for the PipeWire media server. %if %{with alsa} %package alsa Summary: PipeWire media server ALSA support Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} Conflicts: %{name}-libs < 1.0.0 %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 Recommends: %{name}%{?_isa} = %{version}-%{release} BuildRequires: jack-audio-connection-kit-devel >= 1.9.10 Conflicts: jack-audio-connection-kit Conflicts: jack-audio-connection-kit-dbus Conflicts: %{name}-libjack < 0.3.13-6 Conflicts: %{name}-jack-audio-connection-kit < 0.3.13-6 Obsoletes: %{name}-libjack < 1.0.0 %description jack-audio-connection-kit This package provides a JACK implementation based on PipeWire %endif %if %{with jackserver_plugin} %package plugin-jack Summary: PipeWire media server JACK support BuildRequires: jack-audio-connection-kit-devel Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} Requires: jack-audio-connection-kit %description plugin-jack This package contains the PipeWire spa plugin to connect to a JACK server. %endif %package devel Summary: includes development files for %{name} client development Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} %description devel Files needed for building applications,such as static libraries, header files that can communicate with a %{name} media server. %if %{with pulse} %package pulseaudio Summary: PipeWire PulseAudio implementation Recommends: %{name}%{?_isa} = %{version}-%{release} BuildRequires: pulseaudio-libs-devel Conflicts: %{name}-pulseaudio < 0.3.13-6 Conflicts: %{name}-libs < 1.0.0 Obsoletes: %{name}-libpulse < 1.0.0 %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 Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} Conflicts: %{name}-libs < 1.0.0 Conflicts: %{name}-utils < 1.0.0 %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 Recommends: %{name}%{?_isa} = %{version}-%{release} Requires: %{name}-libs%{?_isa} = %{version}-%{release} Conflicts: %{name}-libs < 1.2.1 %description module-x11 This package contains X11 bell support for PipeWire. %package help Summary: Documents for %{name} Requires: man info %description help Man pages and other related documents for %{name}. %prep %autosetup -T -b0 -n %{name}-%{version} -p1 %build %meson \ -D docs=enabled -D man=enabled -D gstreamer=enabled -D systemd=enabled \ -D sdl2=disabled \ -D audiotestsrc=disabled -D videotestsrc=disabled \ -D volume=disabled -D bluez5-codec-aptx=disabled \ -D bluez5-codec-lc3plus=disabled -D bluez5-codec-lc3=disabled \ -D bluez5-codec-aac=disabled \ -D session-managers=[] \ -D rtprio-server=60 -D rtprio-client=55 -D rlimits-rtprio=70 \ -D snap=disabled \ %{!?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_libmysofa:-D libmysofa=disabled} \ %{!?with_pulse:-D libpulse=disabled} \ %{!?with_lv2:-D lv2=disabled} \ %{!?with_roc:-D roc=disabled} \ %{!?with_ffado:-D libffado=disabled} \ %{nil} %meson_build %install %meson_install # Own this directory so add-ons can use it install -d -m 0755 %{buildroot}%{_datadir}/pipewire/pipewire.conf.d/ %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 %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 %endif %if ! %{with pulse} # If the PulseAudio replacement isn't being offered, delete the files rm %{buildroot}%{_bindir}/pipewire-pulse rm %{buildroot}%{_userunitdir}/pipewire-pulse.* rm %{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf rm %{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf.avail/20-upmix.conf rm %{buildroot}%{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml rm %{buildroot}%{_libdir}/pipewire-%{apiversion}/libpipewire-module-protocol-pulse.so %endif %if %{with pulse} # Own this directory so add-ons can use it install -d -m 0755 %{buildroot}%{_datadir}/pipewire/pipewire-pulse.conf.d/ %endif %find_lang %{name} %check %meson_test || TESTS_ERROR=$? if [ "${TESTS_ERROR}" != "" ]; then echo "test failed" %{!?tests_nonfatal:exit $TESTS_ERROR} fi %pre getent group pipewire >/dev/null || groupadd -r pipewire getent passwd pipewire >/dev/null || \ useradd -r -g pipewire -d %{_localstatedir}/run/pipewire -s /sbin/nologin -c "PipeWire System Daemon" pipewire exit 0 %post %systemd_user_post pipewire.service %systemd_user_post pipewire.socket %triggerun -- %{name} < 0.3.6-2 # This is for upgrades from previous versions which had a static symlink. # The %%post scriptlet above only does anything on initial package installation. # Remove before F33. systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || : %if 0%{?enable_pulse} %post pulseaudio %systemd_user_post pipewire-pulse.service %systemd_user_post pipewire-pulse.socket %endif %files %license LICENSE COPYING %{_userunitdir}/pipewire.* %{_userunitdir}/filter-chain.* %{_bindir}/pipewire %{_bindir}/pipewire-avb %{_bindir}/pipewire-aes67 %dir %{_datadir}/pipewire/ %dir %{_datadir}/pipewire/pipewire.conf.d/ %{_datadir}/pipewire/pipewire.conf %{_datadir}/pipewire/pipewire.conf.avail/10-rates.conf %{_datadir}/pipewire/pipewire.conf.avail/20-upmix.conf %{_datadir}/pipewire/minimal.conf %{_datadir}/pipewire/filter-chain.conf %{_datadir}/pipewire/filter-chain/*.conf %{_datadir}/pipewire/pipewire-avb.conf %{_datadir}/pipewire/pipewire-aes67.conf %config(noreplace) %{_sysconfdir}/security/limits.d/*.conf %if %{with vulkan} %{_bindir}/pipewire-vulkan %{_datadir}/pipewire/pipewire-vulkan.conf %endif %files libs -f %{name}.lang %license LICENSE COPYING %{_libdir}/libpipewire-%{apiversion}.so.* %{_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-filter-chain.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-link-factory.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-loopback.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-metadata.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-netjack2-driver.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-netjack2-manager.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-parametric-equalizer.so %{_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-raop-discover.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-raop-sink.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 %{_libdir}/pipewire-%{apiversion}/libpipewire-module-snapcast-discover.so %{_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 %dir %{_libdir}/spa-%{spaversion} %{_libdir}/spa-%{spaversion}/aec/ %{_libdir}/spa-%{spaversion}/alsa/ %{_libdir}/spa-%{spaversion}/audioconvert/ %{_libdir}/spa-%{spaversion}/audiomixer/ %{_libdir}/spa-%{spaversion}/avb/ %{_libdir}/spa-%{spaversion}/bluez5/ %{_libdir}/spa-%{spaversion}/control/ %{_libdir}/spa-%{spaversion}/support/ %{_libdir}/spa-%{spaversion}/v4l2/ %{_libdir}/spa-%{spaversion}/videoconvert/ %{_datadir}/pipewire/client.conf %{_datadir}/pipewire/client.conf.avail/20-upmix.conf %{_datadir}/pipewire/client-rt.conf %{_datadir}/pipewire/client-rt.conf.avail/20-upmix.conf %files gstreamer %{_libdir}/gstreamer-1.0/libgstpipewire.* %files utils %{_bindir}/pw-cat %{_bindir}/pw-cli %{_bindir}/pw-config %{_bindir}/pw-container %{_bindir}/pw-dot %{_bindir}/pw-dsdplay %{_bindir}/pw-dump %{_bindir}/pw-encplay %{_bindir}/pw-link %{_bindir}/pw-loopback %{_bindir}/pw-metadata %{_bindir}/pw-mididump %{_bindir}/pw-midiplay %{_bindir}/pw-midirecord %{_bindir}/pw-mon %{_bindir}/pw-play %{_bindir}/pw-profiler %{_bindir}/pw-record %{_bindir}/pw-reserve %{_bindir}/pw-top %{_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 %endif %if %{with jack} %files jack-audio-connection-kit %{_bindir}/pw-jack %{_libdir}/pipewire-%{apiversion}/jack/libjack.so.* %{_libdir}/pipewire-%{apiversion}/jack/libjacknet.so.* %{_libdir}/pipewire-%{apiversion}/jack/libjackserver.so.* %{_datadir}/pipewire/jack.conf %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}/spa-%{spaversion}/jack/ %endif %files devel %{_libdir}/libpipewire-%{apiversion}.so %{_includedir}/pipewire-%{apiversion}/ %{_includedir}/spa-%{spaversion}/ %{_libdir}/pkgconfig/libpipewire-%{apiversion}.pc %{_libdir}/pkgconfig/libspa-%{spaversion}.pc %if %{with pulse} %files pulseaudio %{_bindir}/pipewire-pulse %{_userunitdir}/pipewire-pulse.* %{_datadir}/pipewire/pipewire-pulse.conf %dir %{_datadir}/pipewire/pipewire-pulse.conf.d/ %{_datadir}/pipewire/pipewire-pulse.conf.avail/20-upmix.conf %{_datadir}/glib-2.0/schemas/org.freedesktop.pulseaudio.gschema.xml %{_libdir}/pipewire-%{apiversion}/libpipewire-module-protocol-pulse.so %{_libdir}/pipewire-%{apiversion}/libpipewire-module-pulse-tunnel.so %endif %if %{with v4l2} %files v4l2 %{_bindir}/pw-v4l2 %{_libdir}/pipewire-%{apiversion}/v4l2/libpw-v4l2.so %endif %files module-x11 %{_libdir}/pipewire-%{apiversion}/libpipewire-module-x11-bell.so %files help %doc README.md %{_mandir}/man?/* %{_datadir}/doc/pipewire/html/* %changelog * Sun Jul 14 2024 Funda Wang - 1.2.1-1 - update to version 1.2.1 * Wed May 22 2024 Wenlong Zhang - 0.3.63-3 - remove useless builddequires for pipewire * Tue May 30 2023 Jia Chao - 0.3.63-2 - Fix: help should not be noarch, it contains architecture infos. * Mon Jan 02 2023 lin zhang - 0.3.63-1 - update version to 0.3.63 * Tue Sep 13 2022 zhouwenpei - 0.3.38-2 - fix rpath compile option * Mon Jun 20 2022 wenlong ding - 0.3.38-1 - Update version to 0.3.38 * Wed Apr 13 2022 liuyumeng - 0.3.15-6 - delete redundant buildrequires * Mon Aug 2 2021 wangkerong - 0.3.15-5 - disable jack pulse vulkan subpackages * Sat Jul 31 2021 wangkerong - 0.3.15-4 - add alsa,gstreamer,libjack,libpulse... subpackages * Thu Jul 29 2021 wangkerong - 0.3.15-3 - add lib package * Mon May 31 2021 weijin deng - 0.3.15-2 - Update stage 'build', add disable configuration to pipewire-pulseaudio * Mon May 31 2021 weijin deng - 0.3.15-1 - Upgrade to 0.3.15 - Update Version, Source0, BuildRequires, Obsoletes - Update stage 'build', 'install' and 'files' - Correct uncorrect date, add one patch * Thu Jan 9 2020 openEuler Buildteam - 0.2.7-1 - update to 0.2.7 * Sat Nov 23 2019 openEuler Buildteam - 0.2.2-4 - Type:bugfix - Id:NA - SUG:NA - DESC:change build requires of v4l-utils-deve to libv4l-devel * Thu Nov 14 2019 shenyangyang - 0.2.2-3 - Type:enhancement - ID:NA - SUG:NA - DESC:change build requires of libv4l-devel to v4l-utils-devel * Wed Aug 29 2018 openEuler Buildteam - 0.2.2-2 - Package init