Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package wireplumber for openSUSE:Factory 
checked in at 2022-11-16 15:42:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wireplumber (Old)
 and      /work/SRC/openSUSE:Factory/.wireplumber.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wireplumber"

Wed Nov 16 15:42:18 2022 rev:19 rq:1035774 version:0.4.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/wireplumber/wireplumber.changes  2022-10-11 
18:04:04.057941045 +0200
+++ /work/SRC/openSUSE:Factory/.wireplumber.new.1597/wireplumber.changes        
2022-11-16 15:42:21.403592705 +0100
@@ -1,0 +2,11 @@
+Tue Nov 15 08:21:15 UTC 2022 - Antonio Larrosa <alarr...@suse.com>
+
+- Add patch from upstream to work around a problem when a link is
+  not activated:
+  * 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
+
+- Add patch from upstream to fix handling null devices which result
+  in lua exceptions:
+  * 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
+
+-------------------------------------------------------------------

New:
----
  0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
  0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ wireplumber.spec ++++++
--- /var/tmp/diff_new_pack.sR2Ele/_old  2022-11-16 15:42:21.927595409 +0100
+++ /var/tmp/diff_new_pack.sR2Ele/_new  2022-11-16 15:42:21.931595429 +0100
@@ -32,6 +32,10 @@
 Source1:        split-config-file.py
 # PATCH-FIX-OPENSUSE reduce-meson-required-version.patch
 Patch0:         reduce-meson-required-version.patch
+# PATCH-FIX-UPSTREAM
+Patch1:         
0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
+# PATCH-FIX-UPSTREAM
+Patch2:         
0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
 # docs
 BuildRequires:  doxygen
 BuildRequires:  graphviz
@@ -140,6 +144,8 @@
 %if 0%{?sle_version} <= 150300
 %patch0 -p1
 %endif
+%patch1 -p1
+%patch2 -p1
 
 pushd src/config/main.lua.d
 python3 %{SOURCE1}

++++++ 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch 
++++++
>From e77ad8c0c024529deb4de5ebd69009a0cec11a78 Mon Sep 17 00:00:00 2001
From: Ashok Sidipotu <ashok.sidip...@collabora.com>
Date: Tue, 8 Nov 2022 04:20:21 +0530
Subject: [PATCH] alsa.lua: remove the disabled entities from the names table

entities here are the device cards and the device nodes.

sometimes null device objects are reported by monitor, this results in lua
exceptions handle this use case.

Fixes #361
---
 src/scripts/monitors/alsa.lua | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/scripts/monitors/alsa.lua b/src/scripts/monitors/alsa.lua
index 660c47c0..195c0916 100644
--- a/src/scripts/monitors/alsa.lua
+++ b/src/scripts/monitors/alsa.lua
@@ -175,6 +175,7 @@ function createNode(parent, id, obj_type, factory, 
properties)
   -- apply properties from config.rules
   rulesApplyProperties(properties)
   if properties["node.disabled"] then
+    node_names_table [properties ["node.name"]] = nil
     return
   end
 
@@ -190,6 +191,10 @@ function createDevice(parent, id, factory, properties)
     device:connect("create-object", createNode)
     device:connect("object-removed", function (parent, id)
       local node = parent:get_managed_object(id)
+      if not node then
+        return
+      end
+
       node_names_table[node.properties["node.name"]] = nil
     end)
     device:activate(Feature.SpaDevice.ENABLED | Feature.Proxy.BOUND)
@@ -269,6 +274,7 @@ function prepareDevice(parent, id, obj_type, factory, 
properties)
   -- apply properties from config.rules
   rulesApplyProperties(properties)
   if properties["device.disabled"] then
+    device_names_table [properties ["device.name"]] = nil
     return
   end
 
@@ -346,6 +352,10 @@ function createMonitor ()
   -- handle object-removed to destroy device reservations and recycle device 
name
   m:connect("object-removed", function (parent, id)
     local device = parent:get_managed_object(id)
+    if not device then
+      return
+    end
+
     if rd_plugin then
       local rd_name = device.properties["api.dbus.ReserveDevice1"]
       if rd_name then
-- 
GitLab


++++++ 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch 
++++++
>From f79a330849ebf320c42d03c123f48fec6b9ad3a8 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <p...@iki.fi>
Date: Thu, 3 Nov 2022 19:22:20 +0200
Subject: [PATCH] scripts: policy-node: wait for unactivated links instead of
 removing

If a link is not activated, don't remove it. Instead, schedule a rescan
when a link activates, so that we'll handle it once it does.

This is a workaround for some problems, see
https://github.com/Audio4Linux/JDSP4Linux/issues/74
However, the underlying cause is not understood.
---
 src/scripts/policy-node.lua | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
index 43df701c..a25d0a5e 100644
--- a/src/scripts/policy-node.lua
+++ b/src/scripts/policy-node.lua
@@ -123,6 +123,7 @@ function createLink (si, si_target, passthrough, exclusive)
       end
       Log.info (l, "activated si-standard-link")
     end
+    scheduleRescan()
   end)
 end
 
@@ -696,9 +697,11 @@ function handleLinkable (si)
       if link ~= nil then
         -- remove old link
         if ((link:get_active_features() & Feature.SessionItem.ACTIVE) == 0) 
then
-          -- remove also not yet activated links: they might never become 
active,
-          -- and we should not loop waiting for them
-          Log.warning (link, "Link was not activated before removing")
+          -- Link not yet activated. We don't want to remove it now, as that
+          -- may cause problems. Instead, give up for now. A rescan is 
scheduled
+          -- once the link activates.
+          Log.info (link, "Link to be moved was not activated, will wait for 
it.")
+          return
         end
         si_flags[si_id].peer_id = nil
         link:remove ()
-- 
GitLab

Reply via email to