Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package wireplumber for openSUSE:Factory checked in at 2026-03-03 15:30:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wireplumber (Old) and /work/SRC/openSUSE:Factory/.wireplumber.new.29461 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "wireplumber" Tue Mar 3 15:30:15 2026 rev:52 rq:1335857 version:0.5.13 Changes: -------- --- /work/SRC/openSUSE:Factory/wireplumber/wireplumber.changes 2026-01-26 10:59:04.373807803 +0100 +++ /work/SRC/openSUSE:Factory/.wireplumber.new.29461/wireplumber.changes 2026-03-03 15:30:24.971770190 +0100 @@ -1,0 +2,9 @@ +Mon Mar 2 11:58:30 UTC 2026 - Antonio Larrosa <[email protected]> + +- Backport more upstream fixes: + * 0003-default-nodes-Never-consider-Audio_Sink-nodes-as-best-for.patch + * 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch + * 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch + * 0006-state-stream-fix-Lua-5.4-compatibility.patch + +------------------------------------------------------------------- New: ---- 0003-default-nodes-Never-consider-Audio_Sink-nodes-as-best-for.patch 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch 0006-state-stream-fix-Lua-5.4-compatibility.patch ----------(New B)---------- New:- Backport more upstream fixes: * 0003-default-nodes-Never-consider-Audio_Sink-nodes-as-best-for.patch * 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch New: * 0003-default-nodes-Never-consider-Audio_Sink-nodes-as-best-for.patch * 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch * 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch New: * 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch * 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch * 0006-state-stream-fix-Lua-5.4-compatibility.patch New: * 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch * 0006-state-stream-fix-Lua-5.4-compatibility.patch ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wireplumber.spec ++++++ --- /var/tmp/diff_new_pack.nuJeRJ/_old 2026-03-03 15:30:27.059856302 +0100 +++ /var/tmp/diff_new_pack.nuJeRJ/_new 2026-03-03 15:30:27.067856631 +0100 @@ -33,6 +33,10 @@ # PATCH-FIX-UPSTREAM Patch1: 0001-monitors-bluez-request-device-ports-take-loopback-no.patch Patch2: 0002-autoswitch-bluetooth-profile-Fix-attempt-to-index-a-.patch +Patch3: 0003-default-nodes-Never-consider-Audio_Sink-nodes-as-best-for.patch +Patch4: 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch +Patch5: 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch +Patch6: 0006-state-stream-fix-Lua-5.4-compatibility.patch Patch100: set-profile-in-service.patch # docs BuildRequires: doxygen ++++++ 0003-default-nodes-Never-consider-Audio_Sink-nodes-as-best-for.patch ++++++ >From 80842cbb965608bd76520af91dad40686f202285 Mon Sep 17 00:00:00 2001 From: Julian Bouzas <[email protected]> Date: Wed, 21 Jan 2026 10:49:13 -0500 Subject: [PATCH] default-nodes: Never consider Audio/Sink nodes as best for default audio.source node type Audio/Sink nodes should only be used as default audio source node type if the user has explicitly selected it. If the user has not explicitly selected it, we should always ignore it and instead select the highest priority Audio/Source node. Fixes #886 --- src/scripts/default-nodes/find-best-default-node.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/scripts/default-nodes/find-best-default-node.lua b/src/scripts/default-nodes/find-best-default-node.lua index a8a1262e..08643e8b 100644 --- a/src/scripts/default-nodes/find-best-default-node.lua +++ b/src/scripts/default-nodes/find-best-default-node.lua @@ -18,6 +18,8 @@ SimpleEventHook { }, }, execute = function (event) + local props = event:get_properties () + local def_node_type = props ["default-node.type"] local available_nodes = event:get_data ("available-nodes") local selected_prio = event:get_data ("selected-node-priority") or 0 local selected_route_prio = event:get_data ("selected-route-priority") or 0 @@ -37,6 +39,12 @@ SimpleEventHook { -- Highest priority node wins local priority = nutils.get_session_priority (node_props) local route_priority = nutils.get_route_priority (node_props) + local media_class = node_props ["media.class"] + + -- Never consider sink nodes as best if audio.source is the def node type + if media_class == "Audio/Sink" and def_node_type == "audio.source" then + goto skip_node + end if selected_node == nil or priority > selected_prio or @@ -46,6 +54,8 @@ SimpleEventHook { selected_route_prio = route_priority selected_node = node_props ["node.name"] end + + ::skip_node:: end event:set_data ("selected-node-priority", selected_prio) -- GitLab ++++++ 0004-event-hook-fix-interest-hook-event-type-memory-leak.patch ++++++ >From 11af177902550c24497cf120a5481b0ab5ccc981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <[email protected]> Date: Fri, 23 Jan 2026 19:44:34 +0100 Subject: [PATCH] event-hook: fix interest hook event type memory leak In `wp_interest_event_hook_get_matching_event_types()`, the variable `res` owns the allocated `GPtrArray`, but there is an early return in the function. Hitting that will leak the allocation, so use `g_autoptr` to avoid that. Fixes: b80a0975c747 ("event-dispatcher: Register hooks for defined events in a hash table") --- lib/wp/event-hook.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/wp/event-hook.c b/lib/wp/event-hook.c index 921bb934..49db4dcd 100644 --- a/lib/wp/event-hook.c +++ b/lib/wp/event-hook.c @@ -367,7 +367,7 @@ wp_interest_event_hook_get_matching_event_types (WpEventHook * hook) WpInterestEventHook *self = WP_INTEREST_EVENT_HOOK (hook); WpInterestEventHookPrivate *priv = wp_interest_event_hook_get_instance_private (self); - GPtrArray *res = g_ptr_array_new_with_free_func (g_free); + g_autoptr (GPtrArray) res = g_ptr_array_new_with_free_func (g_free); guint i; for (i = 0; i < priv->interests->len; i++) { @@ -393,7 +393,7 @@ wp_interest_event_hook_get_matching_event_types (WpEventHook * hook) } } - return res; + return g_steal_pointer (&res); } static void -- GitLab ++++++ 0005-state-stream-fix-crash-in-case-the-Format-has-a-Choice-for.patch ++++++ >From de0bca59023ef1cd655ebf5f944f8fd5952df10e Mon Sep 17 00:00:00 2001 From: George Kiagiadakis <[email protected]> Date: Fri, 6 Feb 2026 11:28:34 +0200 Subject: [PATCH] state-stream: fix crash in case the Format has a Choice for the number of channels Fixes: #903 --- src/scripts/node/state-stream.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/scripts/node/state-stream.lua b/src/scripts/node/state-stream.lua index e2fc7efe..b4537644 100644 --- a/src/scripts/node/state-stream.lua +++ b/src/scripts/node/state-stream.lua @@ -348,8 +348,18 @@ function buildDefaultChannelVolumes (node) for pod in node:iterate_params("Format") do local pod_parsed = pod:parse() if pod_parsed ~= nil then - channels = pod_parsed.properties.channels - break + local t = type(pod_parsed.properties.channels) + if t == "number" then + channels = pod_parsed.properties.channels + break + else if t == "table" and #pod_parsed.properties.channels > 0 then + -- in some misbehaving clients a non-fixed Format may appear here, which means the number of + -- channels will be some kind of choice. If this is the case, pick the first number in the + -- choice (which is either the default in an enum or range, or may just happen to be the + -- right number in other cases) + channels = pod_parsed.properties.channels[1] + break + end end end -- GitLab ++++++ 0006-state-stream-fix-Lua-5.4-compatibility.patch ++++++ >From 48ed27d11bfd2c952bc9a3138a4df6f81aa01038 Mon Sep 17 00:00:00 2001 From: Julian Bouzas <[email protected]> Date: Fri, 13 Feb 2026 10:17:02 -0500 Subject: [PATCH] state-stream: fix Lua 5.4 compatibility The 'elseif' and 'else if' keywords are treated differently in Lua 5.4 --- src/scripts/node/state-stream.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/scripts/node/state-stream.lua b/src/scripts/node/state-stream.lua index b4537644..6587f26b 100644 --- a/src/scripts/node/state-stream.lua +++ b/src/scripts/node/state-stream.lua @@ -352,7 +352,7 @@ function buildDefaultChannelVolumes (node) if t == "number" then channels = pod_parsed.properties.channels break - else if t == "table" and #pod_parsed.properties.channels > 0 then + elseif t == "table" and #pod_parsed.properties.channels > 0 then -- in some misbehaving clients a non-fixed Format may appear here, which means the number of -- channels will be some kind of choice. If this is the case, pick the first number in the -- choice (which is either the default in an enum or range, or may just happen to be the -- GitLab
