From 79a19a2d7861ee376e993ef93b16f469d2a324928a852a6245cbff34ee979333 Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Fri, 11 Mar 2022 07:05:15 +0000 Subject: [PATCH] Accepting request 960946 from home:XRevan86 - Add two patches from upstream: * 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch * 0003-si-audio-adapter-relax-format-parsing.patch OBS-URL: https://build.opensuse.org/request/show/960946 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=33 --- ...ix-string.find-crash-with-nil-string.patch | 26 +++++++++++ ...i-audio-adapter-relax-format-parsing.patch | 43 +++++++++++++++++++ wireplumber.changes | 11 +++++ wireplumber.spec | 14 +++--- 4 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch create mode 100644 0003-si-audio-adapter-relax-format-parsing.patch diff --git a/0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch b/0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch new file mode 100644 index 0000000..89195fa --- /dev/null +++ b/0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch @@ -0,0 +1,26 @@ +From c4c5ca8e2215e5fc295b39af4504c43ed3fe176f Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis +Date: Mon, 14 Feb 2022 10:38:51 +0200 +Subject: [PATCH] policy-bluetooth: fix string.find crash with nil string + +Fixes #193 +--- + src/scripts/policy-bluetooth.lua | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/scripts/policy-bluetooth.lua b/src/scripts/policy-bluetooth.lua +index 24fbffbb..f8f69a14 100644 +--- a/src/scripts/policy-bluetooth.lua ++++ b/src/scripts/policy-bluetooth.lua +@@ -118,7 +118,7 @@ local function isSwitched(device) + end + + local function isBluez5AudioSink(sink_name) +- if string.find(sink_name, "bluez_output.") ~= nil then ++ if sink_name and string.find(sink_name, "bluez_output.") ~= nil then + return true + end + return false +-- +GitLab + diff --git a/0003-si-audio-adapter-relax-format-parsing.patch b/0003-si-audio-adapter-relax-format-parsing.patch new file mode 100644 index 0000000..19fedb0 --- /dev/null +++ b/0003-si-audio-adapter-relax-format-parsing.patch @@ -0,0 +1,43 @@ +From afbc0ce57aac7aee8dc1651de4620f15c73dbace Mon Sep 17 00:00:00 2001 +From: Wim Taymans +Date: Mon, 21 Feb 2022 15:21:36 +0100 +Subject: [PATCH] si-audio-adapter: relax format parsing + +Some nodes can omit the format/rate/channels to indicate that they can +deal with all possibilities and adapt to what they are linked to. + +See pipewire#876 +--- + modules/module-si-audio-adapter.c | 11 ++--------- + 1 file changed, 2 insertions(+), 9 deletions(-) + +diff --git a/modules/module-si-audio-adapter.c b/modules/module-si-audio-adapter.c +index f1f6218..84e393f 100644 +--- a/modules/module-si-audio-adapter.c ++++ b/modules/module-si-audio-adapter.c +@@ -158,19 +158,12 @@ si_audio_adapter_find_format (WpSiAudioAdapter * self, WpNode * node) + struct spa_pod *position = NULL; + wp_spa_pod_fixate (pod); + +- /* defaults */ + spa_zero(raw_format); +- raw_format.format = SPA_AUDIO_FORMAT_F32; +- raw_format.rate = si_audio_adapter_get_default_clock_rate (self); +- raw_format.channels = 2; +- raw_format.position[0] = SPA_AUDIO_CHANNEL_FL; +- raw_format.position[1] = SPA_AUDIO_CHANNEL_FR; +- + if (spa_pod_parse_object(wp_spa_pod_get_spa_pod (pod), + SPA_TYPE_OBJECT_Format, NULL, +- SPA_FORMAT_AUDIO_format, SPA_POD_Id(&raw_format.format), ++ SPA_FORMAT_AUDIO_format, SPA_POD_OPT_Id(&raw_format.format), + SPA_FORMAT_AUDIO_rate, SPA_POD_OPT_Int(&raw_format.rate), +- SPA_FORMAT_AUDIO_channels, SPA_POD_Int(&raw_format.channels), ++ SPA_FORMAT_AUDIO_channels, SPA_POD_OPT_Int(&raw_format.channels), + SPA_FORMAT_AUDIO_position, SPA_POD_OPT_Pod(&position)) < 0) + continue; + +-- +GitLab + + diff --git a/wireplumber.changes b/wireplumber.changes index f262b3f..0799fa7 100644 --- a/wireplumber.changes +++ b/wireplumber.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Thu Mar 10 12:14:13 UTC 2022 - Alexei Sorokin + +- Add patch from upstream to fix a crash on tty switch + (glfo#pipewire/wireplumber#193): + * 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch +- Add patch from upstream to fix issues with PulseAudio support with + PipeWire 0.3.48+ (glfo#pipewire/pipewire#2189): + * 0003-si-audio-adapter-relax-format-parsing.patch +- Some spec clean-up. + ------------------------------------------------------------------- Fri Feb 11 08:09:05 UTC 2022 - Antonio Larrosa diff --git a/wireplumber.spec b/wireplumber.spec index 753a27a..b80f855 100644 --- a/wireplumber.spec +++ b/wireplumber.spec @@ -32,17 +32,18 @@ Source0: wireplumber-%{version}.tar.xz Source1: split-config-file.py Patch0: 0001-spa-json-fix-va_list-APIs-for-different-architectures.patch Patch1: 0001-restore-stream-do-not-crash-if-config_properties-is-nil.patch +Patch2: 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch +Patch3: 0003-si-audio-adapter-relax-format-parsing.patch +# PATCH-FIX-OPENSUSE reduce-meson-dependency.patch Patch100: reduce-meson-required-version.patch # docs BuildRequires: doxygen BuildRequires: graphviz -BuildRequires: python3-lxml # /docs BuildRequires: cmake BuildRequires: fdupes BuildRequires: meson >= 0.54.0 BuildRequires: pipewire >= %{pipewire_minimum_version} -#!BuildIgnore: pipewire-session-manager BuildRequires: pipewire-spa-plugins-0_2 >= %{pipewire_minimum_version} BuildRequires: pkgconfig BuildRequires: python3-base @@ -58,16 +59,17 @@ BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_minimum_version} BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(lua) BuildRequires: pkgconfig(systemd) +#!BuildIgnore: pipewire-session-manager +# Setup ALSA devices if pipewire handles pulseaudio connections. +Requires: (%{name}-audio if pipewire-pulseaudio) Requires: pipewire >= %{pipewire_minimum_version} +Provides: pipewire-session-manager %if 0%{?suse_version} <= 1500 BuildRequires: gcc9 BuildRequires: gcc9-c++ %else BuildRequires: gcc-c++ %endif -Provides: pipewire-session-manager -# Setup ALSA devices if pipewire handles pulseaudio connections. -Requires: (%{name}-audio if pipewire-pulseaudio) %description WirePlumber is a modular session / policy manager for PipeWire and @@ -80,8 +82,8 @@ Summary: Session / policy manager implementation for PipeWire (audio supp Group: Development/Libraries/C and C++ Requires: %{libwireplumber} = %{version} Requires: %{name} = %{version} -Conflicts: pulseaudio Recommends: pipewire-pulseaudio +Conflicts: pulseaudio %description audio WirePlumber is a modular session / policy manager for PipeWire and