Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/pipewire.git#d62a91408f5b846667417659fed288c502038fec
This commit is contained in:
DistroBaker 2021-01-12 16:47:20 +00:00
parent d89e5e5992
commit 05426dccb5
4 changed files with 131 additions and 157 deletions

4
.gitignore vendored
View File

@ -34,3 +34,7 @@
/pipewire-0.3.13.tar.gz
/pipewire-0.3.14.tar.gz
/pipewire-0.3.15.tar.gz
/pipewire-0.3.16.tar.gz
/pipewire-0.3.17.tar.gz
/pipewire-0.3.18.tar.gz
/pipewire-0.3.19.tar.gz

View File

@ -1,45 +0,0 @@
From b8c7b36d3b8be16593f554964cf2f852c21b5c2c Mon Sep 17 00:00:00 2001
From: Wim Taymans <wtaymans@redhat.com>
Date: Wed, 4 Nov 2020 16:12:25 +0100
Subject: [PATCH] protocol-native: do version check on HELLO
Always do the version check on HELLO because the connection could
have been moved from a v3 portal to a v0 client (like chrome)
Fixes #270
---
src/modules/module-protocol-native/connection.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/modules/module-protocol-native/connection.c b/src/modules/module-protocol-native/connection.c
index 84fad68f..1807833a 100644
--- a/src/modules/module-protocol-native/connection.c
+++ b/src/modules/module-protocol-native/connection.c
@@ -72,7 +72,6 @@ struct impl {
uint32_t version;
size_t hdr_size;
- unsigned int checked:1;
};
/** \endcond */
@@ -319,7 +318,7 @@ static int prepare_packet(struct pw_protocol_native_connection *conn, struct buf
buf->msg.opcode = p[1] >> 24;
len = p[1] & 0xffffff;
- if (!impl->checked) {
+ if (buf->msg.id == 0 && buf->msg.opcode == 1) {
if (p[3] >= 4) {
pw_log_warn("old version detected");
impl->version = 0;
@@ -331,7 +330,6 @@ static int prepare_packet(struct pw_protocol_native_connection *conn, struct buf
spa_hook_list_call(&conn->listener_list,
struct pw_protocol_native_connection_events,
start, 0, impl->version);
- impl->checked = 1;
}
if (impl->version >= 3) {
buf->msg.seq = p[2];
--
2.26.2

View File

@ -1,16 +1,18 @@
%global majorversion 0
%global minorversion 3
%global microversion 15
%global microversion 19
%global apiversion 0.3
%global spaversion 0.2
%global soversion 0
%global libversion %{soversion}.%(bash -c '((intversion = (%{minorversion} * 100) + %{microversion})); echo ${intversion}').0
#global snap 20141103
#global gitrel 327
#global gitcommit aec811798cd883a454b9b5cd82c77831906bbd2d
#global shortcommit %(c=%{gitcommit}; echo ${c:0:5})
# For rpmdev-bumpspec and releng automation
%global baserelease 4
#global snapdate 20210107
#global gitcommit b17db2cebc1a5ab2c01851d29c05f79cd2f262bb
#global shortcommit %(c=%{gitcommit}; echo ${c:0:7})
# https://bugzilla.redhat.com/983606
%global _hardened_build 1
@ -18,30 +20,38 @@
# where/how to apply multilib hacks
%global multilib_archs x86_64 %{ix86} ppc64 ppc s390x s390 sparc64 sparcv9 ppc64le
%global enable_alsa 1
# Build conditions for various features
%bcond_without alsa
%bcond_without vulkan
%if 0%{?fedora}
%global enable_jack 1
%global enable_pulse 1
%global enable_vulkan 1
# Features disabled for RHEL 8
%if 0%{?rhel} && 0%{?rhel} < 9
%bcond_with pulse
%else
%bcond_without pulse
%endif
# Features disabled for RHEL
%if 0%{?rhel}
%bcond_with jack
%else
%bcond_without jack
%endif
Name: pipewire
Summary: Media Sharing Server
Version: %{majorversion}.%{minorversion}.%{microversion}
Release: 2%{?snap:.%{snap}git%{shortcommit}}%{?dist}
Release: %{baserelease}%{?snapdate:.%{snapdate}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
%if 0%{?snapdate}
Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{gitcommit}/pipewire-%{shortcommit}.tar.gz
%else
Source0: https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/%{version}/pipewire-%{version}.tar.gz
%endif
## upstream patches
Patch0: 0001-protocol-native-do-version-check-on-HELLO.patch
## upstreamable patches
@ -59,7 +69,13 @@ 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}
# libldac is not built on x390x, see rhbz#1677491
%ifnarch s390x
BuildRequires: pkgconfig(ldacBT-enc)
BuildRequires: pkgconfig(ldacBT-abr)
%endif
BuildRequires: pkgconfig(fdk-aac)
%if %{with vulkan}
BuildRequires: pkgconfig(vulkan)
%endif
BuildRequires: pkgconfig(bluez)
@ -71,6 +87,7 @@ BuildRequires: xmltoman
BuildRequires: graphviz
BuildRequires: sbc-devel
BuildRequires: libsndfile-devel
BuildRequires: ncurses-devel
Requires(pre): shadow-utils
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
@ -85,6 +102,7 @@ systems.
Summary: Libraries for PipeWire clients
License: MIT
Recommends: %{name}%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-libpulse < %{version}-%{release}
%description libs
This package contains the runtime libraries for any application that wishes
@ -124,7 +142,7 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
%description utils
This package contains command line utilities for the PipeWire media server.
%if 0%{?enable_alsa}
%if %{with alsa}
%package alsa
Summary: PipeWire media server ALSA support
License: MIT
@ -135,26 +153,7 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
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
Conflicts: jack-audio-connection-kit
Conflicts: jack-audio-connection-kit-dbus
# Renamed in F32
Obsoletes: pipewire-jack < 0.2.96-2
# Fixed jack subpackages
Conflicts: %{name}-libjack < 0.3.13-6
Conflicts: %{name}-jack-audio-connection-kit < 0.3.13-6
Obsoletes: %{name}-jack-audio-connection-kit < 0.3.13-6
%description libjack
This package contains a PipeWire replacement for JACK audio connection kit
"libjack" library.
%if %{with jack}
%package jack-audio-connection-kit
Summary: PipeWire JACK implementation
License: MIT
@ -166,6 +165,10 @@ 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}
%description jack-audio-connection-kit
This package provides a JACK implementation based on PipeWire
@ -182,90 +185,64 @@ Requires: jack-audio-connection-kit
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
Conflicts: pulseaudio-libs
Conflicts: pulseaudio-libs-glib2
# Renamed in F32
Obsoletes: pipewire-pulseaudio < 0.2.96-2
# Fixed pulseaudio subpackages
Conflicts: %{name}-libpulse < 0.3.13-6
Conflicts: %{name}-pulseaudio < 0.3.13-6
Obsoletes: %{name}-pulseaudio < 0.3.13-6
%description libpulse
This package contains a PipeWire replacement for PulseAudio "libpulse" library.
%if %{with pulse}
%package pulseaudio
Summary: PipeWire PulseAudio implementation
License: MIT
Recommends: %{name}%{?_isa} = %{version}-%{release}
Requires: %{name}-libpulse%{?_isa} = %{version}-%{release}
BuildRequires: pulseaudio-libs-devel
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
BuildRequires: pulseaudio-libs
Conflicts: pulseaudio
# Fixed pulseaudio subpackages
Conflicts: %{name}-libpulse < 0.3.13-6
Conflicts: %{name}-pulseaudio < 0.3.13-6
# Virtual Provides to support swapping between PipeWire-PA and PA
Provides: pulseaudio-daemon
Conflicts: pulseaudio-daemon
Provides: pulseaudio-module-bluetooth
Provides: pulseaudio-module-jack
%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
%autosetup -p1 %{?snapdate:-n %{name}-%{gitcommit}}
%build
%meson \
-D docs=true -D man=true -D gstreamer=true -D systemd=true \
-D gstreamer-device-provider=false \
%{!?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}
%{!?with_jack:-D jack=false -D pipewire-jack=false} \
%{!?with_alsa:-D pipewire-alsa=false} \
%{!?with_vulkan:-D vulkan=false}
%meson_build
%install
%meson_install
%if 0%{?enable_jack}
mv %{buildroot}%{_libdir}/pipewire-%{apiversion}/jack/libjack.so.%{libversion} %{buildroot}%{_libdir}
ln -sr %{buildroot}%{_libdir}/libjack.so.%{libversion} %{buildroot}%{_libdir}/pipewire-%{apiversion}/jack/libjack.so.%{libversion}
ln -s libjack.so.%{libversion} %{buildroot}%{_libdir}/libjack.so.0.1.0
ln -s libjack.so.0.1.0 %{buildroot}%{_libdir}/libjack.so.0
mv %{buildroot}%{_libdir}/pipewire-%{apiversion}/jack/libjackserver.so.%{libversion} %{buildroot}%{_libdir}
ln -sr %{buildroot}%{_libdir}/libjackserver.so.%{libversion} %{buildroot}%{_libdir}/pipewire-%{apiversion}/jack/libjackserver.so.%{libversion}
ln -s libjackserver.so.%{libversion} %{buildroot}%{_libdir}/libjackserver.so.0.1.0
ln -s libjackserver.so.0.1.0 %{buildroot}%{_libdir}/libjackserver.so.0
mv %{buildroot}%{_libdir}/pipewire-%{apiversion}/jack/libjacknet.so.%{libversion} %{buildroot}%{_libdir}
ln -sr %{buildroot}%{_libdir}/libjacknet.so.%{libversion} %{buildroot}%{_libdir}/pipewire-%{apiversion}/jack/libjacknet.so.%{libversion}
ln -s libjacknet.so.%{libversion} %{buildroot}%{_libdir}/libjacknet.so.0.1.0
ln -s libjacknet.so.0.1.0 %{buildroot}%{_libdir}/libjacknet.so.0
%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}%{_sysconfdir}/pipewire/media-session.d/with-jack
%endif
%if 0%{?enable_pulse}
mv %{buildroot}%{_libdir}/pipewire-%{apiversion}/pulse/libpulse.so.%{libversion} %{buildroot}%{_libdir}
ln -sr %{buildroot}%{_libdir}/libpulse.so.%{libversion} %{buildroot}%{_libdir}/pipewire-%{apiversion}/pulse/libpulse.so.%{libversion}
ln -s libpulse.so.%{libversion} %{buildroot}%{_libdir}/libpulse.so.0
mv %{buildroot}%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-simple.so.%{libversion} %{buildroot}%{_libdir}
ln -sr %{buildroot}%{_libdir}/libpulse-simple.so.%{libversion} %{buildroot}%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-simple.so.%{libversion}
ln -s libpulse-simple.so.%{libversion} %{buildroot}%{_libdir}/libpulse-simple.so.0
mv %{buildroot}%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-mainloop-glib.so.%{libversion} %{buildroot}%{_libdir}
ln -sr %{buildroot}%{_libdir}/libpulse-mainloop-glib.so.%{libversion} %{buildroot}%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-mainloop-glib.so.%{libversion}
ln -s libpulse-mainloop-glib.so.%{libversion} %{buildroot}%{_libdir}/libpulse-mainloop-glib.so.0
%endif
%if 0%{?enable_alsa}
%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
touch %{buildroot}%{_sysconfdir}/pipewire/media-session.d/with-alsa
%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 -rf %{buildroot}%{_sysconfdir}/pipewire/media-session.d/with-pulseaudio
%endif
# upstream should use udev.pc
@ -300,6 +277,12 @@ exit 0
# Remove before F33.
systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%if %{with pulse}
%post pulseaudio
%systemd_user_post pipewire-pulse.service
%systemd_user_post pipewire-pulse.socket
%endif
%files
%license LICENSE COPYING
%doc README.md
@ -308,7 +291,10 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_bindir}/pipewire-media-session
%{_mandir}/man1/pipewire.1*
%dir %{_sysconfdir}/pipewire/
%dir %{_sysconfdir}/pipewire/media-session.d/
%config(noreplace) %{_sysconfdir}/pipewire/pipewire.conf
%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/alsa-monitor.conf
%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/media-session.conf
%{_mandir}/man5/pipewire.conf.5*
%files libs
@ -330,7 +316,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_libdir}/spa-%{spaversion}/support/
%{_libdir}/spa-%{spaversion}/v4l2/
%{_libdir}/spa-%{spaversion}/videoconvert/
%if 0%{?enable_vulkan}
%if %{with vulkan}
%{_libdir}/spa-%{spaversion}/vulkan/
%endif
@ -356,10 +342,12 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_bindir}/pw-cli
%{_bindir}/pw-dot
%{_bindir}/pw-cat
%{_bindir}/pw-dump
%{_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*
@ -373,7 +361,7 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_bindir}/spa-monitor
%{_bindir}/spa-resample
%if 0%{?enable_alsa}
%if %{with alsa}
%files alsa
%{_libdir}/alsa-lib/libasound_module_pcm_pipewire.so
%{_libdir}/alsa-lib/libasound_module_ctl_pipewire.so
@ -381,40 +369,67 @@ systemctl --no-reload preset --global pipewire.socket >/dev/null 2>&1 || :
%{_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(noreplace) %{_sysconfdir}/pipewire/media-session.d/with-alsa
%endif
%if 0%{?enable_jack}
%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*
%files libjack
%{_libdir}/libjack.so.*
%{_libdir}/libjackserver.so.*
%{_libdir}/libjacknet.so.*
%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/with-jack
%{_sysconfdir}/ld.so.conf.d/pipewire-jack-%{_arch}.conf
%files plugin-jack
%{_libdir}/spa-%{spaversion}/jack/
%endif
%if 0%{?enable_pulse}
%if %{with pulse}
%files pulseaudio
%{_bindir}/pw-pulse
%{_mandir}/man1/pw-pulse.1*
%{_libdir}/pipewire-%{apiversion}/pulse/libpulse.so*
%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-simple.so*
%{_libdir}/pipewire-%{apiversion}/pulse/libpulse-mainloop-glib.so*
%files libpulse
%{_libdir}/libpulse.so.*
%{_libdir}/libpulse-simple.so.*
%{_libdir}/libpulse-mainloop-glib.so.*
%{_bindir}/pipewire-pulse
%{_userunitdir}/pipewire-pulse.*
%config(noreplace) %{_sysconfdir}/pipewire/media-session.d/with-pulseaudio
%endif
%changelog
* Tue Jan 12 2021 Neal Gompa <ngompa13@gmail.com> - 0.3.19-4
- Rework conditional build to fix ELN builds
* Sat Jan 9 2021 Evan Anderson <evan@eaanderson.com> - 0.3.19-3
- Add LDAC and AAC dependency to enhance Bluetooth support
* Thu Jan 7 2021 Neal Gompa <ngompa13@gmail.com> - 0.3.19-2
- Obsolete useless libjack subpackage with jack-audio-connection-kit subpackage
* Tue Jan 5 2021 Wim Taymans <wtaymans@redhat.com> - 0.3.19-1
- Update to 0.3.19
- Add ncurses-devel BR
* Tue Dec 15 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.18-1
- Update to 0.3.18
* Fri Nov 27 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.17-2
- Add some more Provides: for pulseaudio
* Thu Nov 26 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.17-1
- Update to 0.3.17
* Tue Nov 24 2020 Neal Gompa <ngompa13@gmail.com> - 0.3.16-4
- Add 'pulseaudio-daemon' Provides + Conflicts to pipewire-pulseaudio
- Remove useless ldconfig macros that expand to nothing
* Fri Nov 20 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.16-3
- Fix Requires for pipewire-pulseaudio
- Fixes rhbz#1899945
* Fri Nov 20 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.16-2
- Add patch to fix crash in kwin, Fixes rhbz#1899826
* Thu Nov 19 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.16-1
- Update to 0.3.16
* Wed Nov 4 2020 Wim Taymans <wtaymans@redhat.com> - 0.3.15-2
- Add patch to fix screen sharing for old clients

View File

@ -1 +1 @@
SHA512 (pipewire-0.3.15.tar.gz) = 949f2e64a3e9ec06b3414cacfbd7cf4ef6b7bad484a5dea1b79b5d4310413ec5a7538b702431f2cf6fb580ffd430081bd568399faa9b819689a79bebc955ca33
SHA512 (pipewire-0.3.19.tar.gz) = 7e720be2055e86960b2ab8685e61072097581ed0e96346535c039e3124830e5f1b4d9cfd7ec827c104f3e99bdfa5e23a01f224a7b2fdb4048bc6ec755e550daf