commit 4c6c50cf57c2f41d0f57279dfec84a3f002ce01b Author: CentOS Sources Date: Tue Nov 3 06:51:14 2020 -0500 import pipewire-0.3.6-1.el8 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee3fcff --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/pipewire-0.3.6.tar.gz diff --git a/.pipewire.metadata b/.pipewire.metadata new file mode 100644 index 0000000..c019c63 --- /dev/null +++ b/.pipewire.metadata @@ -0,0 +1 @@ +edbc897685e921dc6add83dee57e74e140294dcb SOURCES/pipewire-0.3.6.tar.gz diff --git a/SOURCES/0001-conf-disable-bluez5.patch b/SOURCES/0001-conf-disable-bluez5.patch new file mode 100644 index 0000000..022f8d7 --- /dev/null +++ b/SOURCES/0001-conf-disable-bluez5.patch @@ -0,0 +1,24 @@ +From 13945e27434951366960dd3a0461c58487df82a2 Mon Sep 17 00:00:00 2001 +From: Wim Taymans +Date: Mon, 30 Mar 2020 15:32:04 +0200 +Subject: [PATCH] conf: disable bluez5 + +Disable bluetooth handling by default to avoid causing +conflicts with pulseaudio. +--- + src/daemon/pipewire.conf.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/daemon/pipewire.conf.in b/src/daemon/pipewire.conf.in +index 574cba4f..4ecec24f 100644 +--- a/src/daemon/pipewire.conf.in ++++ b/src/daemon/pipewire.conf.in +@@ -71,4 +71,4 @@ create-object spa-node-factory factory.name=support.node.driver node.name=Dummy + # Execute the given program. This is usually used to start the + # session manager. run the session manager with -h for options + # +-exec pipewire-media-session # -d alsa-seq,alsa-pcm,bluez5,metadata ++exec pipewire-media-session -d bluez5 # -d alsa-seq,alsa-pcm,metadata +-- +2.26.2 + diff --git a/SPECS/pipewire.spec b/SPECS/pipewire.spec new file mode 100644 index 0000000..3df624d --- /dev/null +++ b/SPECS/pipewire.spec @@ -0,0 +1,482 @@ +%global apiversion 0.3 +%global spaversion 0.2 + +#global snap 20141103 +#global gitrel 327 +#global gitcommit aec811798cd883a454b9b5cd82c77831906bbd2d +#global shortcommit %(c=%{gitcommit}; echo ${c:0:5}) + +# https://bugzilla.redhat.com/983606 +%global _hardened_build 1 + +# where/how to apply multilib hacks +%global multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9 ppc64le + +%global enable_alsa 1 + +%if 0%{?fedora} +%global enable_jack 1 +%global enable_pulse 1 +%global enable_vulkan 1 +%endif + +# libpulse and libjack subpackages shouldn't have library provides +# as the files they ship are not in the linker path. We also have +# to exclude requires or else the subpackages wind up requiring the +# libs they're no longer providing +# FIXME: the jack-audio-connection-kit and pulseaudio subpackages +# should get the auto-generated Provides: instead, but they do not, +# either with or without the lines below, not sure how to fix that +%global __provides_exclude_from ^%{_libdir}/pipewire-%{apiversion}/.*$ +%global __requires_exclude_from ^%{_libdir}/pipewire-%{apiversion}/.*$ + +Name: pipewire +Summary: Media Sharing Server +Version: 0.3.6 +Release: 1%{?snap:.%{snap}git%{shortcommit}}%{?dist} +License: MIT +URL: https://pipewire.org/ +%if 0%{?gitrel} +# git clone git://anongit.freedesktop.org/gstreamer/pipewire +# cd pipewire; git reset --hard %{gitcommit}; ./autogen.sh; make; make distcheck +Source0: pipewire-%{version}-%{gitrel}-g%{shortcommit}.tar.gz +%else +Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/pipewire-%{version}.tar.gz +%endif + +## upstream patches + +## upstreamable patches + +## fedora patches +Patch0: 0001-conf-disable-bluez5.patch + +BuildRequires: meson >= 0.49.0 +BuildRequires: gcc +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 +%if 0%{?enable_vulkan} +BuildRequires: pkgconfig(vulkan) +%endif +BuildRequires: pkgconfig(bluez) +BuildRequires: systemd-devel >= 184 +BuildRequires: alsa-lib-devel +BuildRequires: libv4l-devel +BuildRequires: doxygen +BuildRequires: xmltoman +BuildRequires: graphviz +BuildRequires: sbc-devel +BuildRequires: libsndfile-devel + +Requires(pre): shadow-utils +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +Requires: systemd >= 184 +Requires: rtkit + +# https://bugzilla.redhat.com/983606 +%global _hardened_build 1 + +## enable systemd activation +%global systemd 1 + +%description +PipeWire is a multimedia server for Linux and other Unix like operating +systems. + +%package libs +Summary: Libraries for PipeWire clients +License: MIT +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 +License: MIT +Recommends: %{name}%{?_isa} = %{version}-%{release} + +%description gstreamer +This package contains GStreamer elements to interface with a +PipeWire media server. + +%package devel +Summary: Headers and libraries for PipeWire client development +License: MIT +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description devel +Headers and libraries for developing applications that can communicate with +a PipeWire media server. + +%package doc +Summary: PipeWire media server documentation +License: MIT + +%description doc +This package contains documentation for the PipeWire media server. + +%package utils +Summary: PipeWire media server utilities +License: MIT +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 0%{?enable_alsa} +%package alsa +Summary: PipeWire media server ALSA support +License: MIT +Recommends: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} + +%description alsa +This package contains an ALSA plugin for the PipeWire media server. +%endif + +%if 0%{?enable_jack} +%package libjack +Summary: PipeWire libjack library +License: MIT +Recommends: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +BuildRequires: jack-audio-connection-kit-devel >= 1.9.10 +# Renamed in F32 +Obsoletes: pipewire-jack < 0.2.96-2 + +%description libjack +This package contains a PipeWire replacement for JACK audio connection kit +"libjack" library. + +%package jack-audio-connection-kit +Summary: PipeWire JACK implementation +License: MIT +Recommends: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libjack%{?_isa} = %{version}-%{release} +BuildRequires: jack-audio-connection-kit-devel >= 1.9.10 +Conflicts: jack-audio-connection-kit +Conflicts: jack-audio-connection-kit-dbus +Provides: jack-audio-connection-kit + +%description jack-audio-connection-kit +This package provides a JACK implementation based on PipeWire + +%package plugin-jack +Summary: PipeWire media server JACK support +License: MIT +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 + +%if 0%{?enable_pulse} +%package libpulse +Summary: PipeWire libpulse library +License: MIT +Recommends: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +BuildRequires: pulseaudio-libs-devel +# Renamed in F32 +Obsoletes: pipewire-pulseaudio < 0.2.96-2 + +%description libpulse +This package contains a PipeWire replacement for PulseAudio "libpulse" library. + +%package pulseaudio +Summary: PipeWire PulseAudio implementation +License: MIT +Recommends: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-libpulse%{?_isa} = %{version}-%{release} +BuildRequires: pulseaudio-libs-devel +Conflicts: pulseaudio-libs +Conflicts: pulseaudio-libs-glib2 +Provides: pulseaudio-libs +Provides: pulseaudio-libs-glib2 + +%description pulseaudio +This package provides a PulseAudio implementation based on PipeWire +%endif + +%prep +%setup -q -T -b0 -n %{name}-%{version}%{?gitrel:-%{gitrel}-g%{shortcommit}} + +%patch0 -p1 -b .0000 + +%build +%meson \ + -D docs=true -D man=true -D gstreamer=true -D systemd=true \ + %{!?enable_jack:-D jack=false -D pipewire-jack=false} \ + %{!?enable_pulse:-D pipewire-pulseaudio=false} \ + %{!?enable_alsa:-D pipewire-alsa=false} \ + %{!?enable_vulkan:-D vulkan=false} + +%install +%meson_install + +mkdir %{buildroot}%{_userunitdir}/sockets.target.wants +ln -s ../pipewire.socket %{buildroot}%{_userunitdir}/sockets.target.wants/pipewire.socket + +%if 0%{?enable_jack} +ln -s pipewire-%{apiversion}/jack/libjack.so.0 %{buildroot}%{_libdir}/libjack.so.0.1.0 +ln -s libjack.so.0.1.0 %{buildroot}%{_libdir}/libjack.so.0 +ln -s pipewire-%{apiversion}/jack/libjackserver.so.0 %{buildroot}%{_libdir}/libjackserver.so.0.1.0 +ln -s libjackserver.so.0.1.0 %{buildroot}%{_libdir}/libjackserver.so.0 +ln -s pipewire-%{apiversion}/jack/libjacknet.so.0 %{buildroot}%{_libdir}/libjacknet.so.0.1.0 +ln -s libjacknet.so.0.1.0 %{buildroot}%{_libdir}/libjacknet.so.0 +%endif + +%if 0%{?enable_pulse} +ln -s pipewire-%{apiversion}/pulse/libpulse.so.0 %{buildroot}%{_libdir}/libpulse.so.0 +ln -s pipewire-%{apiversion}/pulse/libpulse-simple.so.0 %{buildroot}%{_libdir}/libpulse-simple.so.0 +ln -s pipewire-%{apiversion}/pulse/libpulse-mainloop-glib.so.0 %{buildroot}%{_libdir}/libpulse-mainloop-glib.so.0 +%endif + +%if 0%{?enable_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 + +%check +%ifarch s390x +# FIXME: s390x FAIL: pw-test-stream, pw-test-endpoint +%global tests_nonfatal 1 +%endif +%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 + +%ldconfig_scriptlets libs + +%files +%license LICENSE COPYING +%doc README.md +%if 0%{?systemd} +%{_userunitdir}/pipewire.* +%{_userunitdir}/sockets.target.wants/pipewire.socket +%endif +%{_bindir}/pipewire +%{_bindir}/pipewire-media-session +%{_mandir}/man1/pipewire.1* +%dir %{_sysconfdir}/pipewire/ +%config(noreplace) %{_sysconfdir}/pipewire/pipewire.conf +%{_mandir}/man5/pipewire.conf.5* + +%files libs +%license LICENSE COPYING +%doc README.md +%{_libdir}/libpipewire-%{apiversion}.so.* +%{_libdir}/pipewire-%{apiversion}/libpipewire-*.so +%dir %{_libdir}/spa-%{spaversion} +%{_libdir}/spa-%{spaversion}/alsa/ +%{_libdir}/spa-%{spaversion}/audioconvert/ +%{_libdir}/spa-%{spaversion}/audiomixer/ +%{_libdir}/spa-%{spaversion}/bluez5/ +%{_libdir}/spa-%{spaversion}/control/ +%{_libdir}/spa-%{spaversion}/support/ +%{_libdir}/spa-%{spaversion}/v4l2/ +%{_libdir}/spa-%{spaversion}/videoconvert/ +%if 0%{?enable_vulkan} +%{_libdir}/spa-%{spaversion}/vulkan/ +%endif + +%files gstreamer +%{_libdir}/gstreamer-1.0/libgstpipewire.* + +%files devel +%{_libdir}/libpipewire-%{apiversion}.so +%{_includedir}/pipewire-%{apiversion}/ +%{_includedir}/spa-%{spaversion}/ +%{_libdir}/pkgconfig/libpipewire-%{apiversion}.pc +%{_libdir}/pkgconfig/libspa-%{spaversion}.pc + +%files doc +%{_datadir}/doc/pipewire/html + +%files utils +%{_bindir}/pw-mon +%{_bindir}/pw-metadata +%{_bindir}/pw-mididump +%{_bindir}/pw-midiplay +%{_bindir}/pw-midirecord +%{_bindir}/pw-cli +%{_bindir}/pw-dot +%{_bindir}/pw-cat +%{_bindir}/pw-play +%{_bindir}/pw-profiler +%{_bindir}/pw-record +%{_mandir}/man1/pw-mon.1* +%{_mandir}/man1/pw-cli.1* +%{_mandir}/man1/pw-cat.1* +%{_mandir}/man1/pw-dot.1* +%{_mandir}/man1/pw-metadata.1* +%{_mandir}/man1/pw-mididump.1* +%{_mandir}/man1/pw-profiler.1* + +%{_bindir}/spa-monitor +%{_bindir}/spa-inspect + +%if 0%{?enable_alsa} +%files alsa +%{_libdir}/alsa-lib/libasound_module_pcm_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 0%{?enable_jack} +%files libjack +%{_libdir}/pipewire-%{apiversion}/jack/libjack.so* +%{_libdir}/pipewire-%{apiversion}/jack/libjacknet.so* +%{_libdir}/pipewire-%{apiversion}/jack/libjackserver.so* +%{_bindir}/pw-jack +%{_mandir}/man1/pw-jack.1* + +%files jack-audio-connection-kit +%{_libdir}/libjack.so.* +%{_libdir}/libjackserver.so.* +%{_libdir}/libjacknet.so.* + +%files plugin-jack +%{_libdir}/spa-%{spaversion}/jack/ +%endif + +%if 0%{?enable_pulse} +%files libpulse +%{_libdir}/pipewire-%{apiversion}/pulse/libpulse.so* +%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-simple.so* +%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-mainloop-glib.so* +%{_bindir}/pw-pulse +%{_mandir}/man1/pw-pulse.1* + +%files pulseaudio +%{_libdir}/libpulse.so.0 +%{_libdir}/libpulse-simple.so.0 +%{_libdir}/libpulse-mainloop-glib.so.0 +%endif + +%changelog +* Tue Jun 23 2020 Wim Taymans - 0.3.6-1 +- Update to 0.3.6 +- Resolves: rhbz#1832347 + +* Mon Jun 15 2020 Wim Taymans - 0.3.5-3 +- Rebuild +- Resolves: rhbz#1832347 + +* Tue May 19 2020 Wim Taymans - 0.3.5-2 +- Disable vulkan +- Resolves: rhbz#1832347 + +* Tue May 19 2020 Wim Taymans - 0.3.5-1 +- Update to 0.3.5 +- Disable pulse and jack +- Add patch to work with meson 0.49 +- Add patch to fix neon compilation +- Resolves: rhbz#1832347 + +* Fri Oct 18 2019 David King - 0.2.7-1 +- Rebase to 0.2.7 (#1748331) + +* Fri Jan 11 2019 Wim Taymans - 0.2.5-1 +- Update to 0.2.5 +- Revert patch that requires too new meson +- Add patch to avoid invalid conversion error with C++ compilers +- Resolves: #1664569 + +* Fri Nov 30 2018 Wim Taymans - 0.2.4-1 +- Update to 0.2.4 +- Add defines for cursor and bitmap metadata +- Revert patch that requires too new meson +- Resolves: #1655028 + +* Thu Oct 18 2018 Wim Taymans - 0.2.3-2 +- Add systemd socket activation +- Resolves: #1639871 + +* Fri Oct 12 2018 Wim Taymans - 0.2.3-1 +- Update to 0.2.3 +- Resolves: #1638046 + +* Wed Aug 01 2018 Wim Taymans - 0.2.2-1 +- Update to 0.2.2 + +* Tue Feb 27 2018 Wim Taymans - 0.1.9-1 +- Update to 0.1.9 + +* Fri Feb 09 2018 Fedora Release Engineering - 0.1.8-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Feb 03 2018 Igor Gnatenko - 0.1.8-2 +- Switch to %%ldconfig_scriptlets + +* Tue Jan 23 2018 Wim Taymans - 0.1.8-1 +- Update to 0.1.8 + +* Fri Nov 24 2017 Wim Taymans - 0.1.7-1 +- Update to 0.1.7 +- Add to build when memfd_create is already defined + +* Fri Nov 03 2017 Wim Taymans - 0.1.6-1 +- Update to 0.1.6 + +* Tue Sep 19 2017 Wim Taymans - 0.1.5-2 +- Add patch to avoid segfault when probing + +* Tue Sep 19 2017 Wim Taymans - 0.1.5-1 +- Update to 0.1.5 + +* Thu Sep 14 2017 Kalev Lember - 0.1.4-3 +- Rebuilt for GNOME 3.26.0 megaupdate + +* Fri Sep 08 2017 Wim Taymans - 0.1.4-2 +- Install SPA hooks + +* Wed Aug 23 2017 Wim Taymans - 0.1.4-1 +- Update to 0.1.4 + +* Wed Aug 09 2017 Wim Taymans - 0.1.3-1 +- Update to 0.1.3 + +* Tue Jul 04 2017 Wim Taymans - 0.1.2-1 +- Update to 0.1.2 +- Added more build requirements +- Make separate doc package + +* Mon Jun 26 2017 Wim Taymans - 0.1.1-1 +- Update to 0.1.1 +- Add dbus-1 to BuildRequires +- change libs-devel to -devel + +* Wed Sep 9 2015 Wim Taymans - 0.1.0-2 +- Fix BuildRequires to use pkgconfig, add all dependencies found in configure.ac +- Add user and groups if needed +- Add license to %%licence + +* Tue Sep 1 2015 Wim Taymans - 0.1.0-1 +- First version