8 Commits

Author SHA256 Message Date
8c8a975b01 Accepting request 1328882 from multimedia:libs
OBS-URL: https://build.opensuse.org/request/show/1328882
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=51
2026-01-26 09:44:54 +00:00
841d67b83e - Backport upstream fixes:
0001-monitors-bluez-request-device-ports-take-loopback-no.patch
  0002-autoswitch-bluetooth-profile-Fix-attempt-to-index-a-.patch

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=99
2026-01-23 12:03:00 +00:00
e262060d9b Accepting request 1326789 from multimedia:libs
OBS-URL: https://build.opensuse.org/request/show/1326789
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=50
2026-01-13 20:23:22 +00:00
cbf015235d - Update to version 0.5.13:
* Additions & Enhancements:
    - Added internal filter graph support for audio nodes, allowing
      users to create audio preprocessing and postprocessing chains
      without exposing filters to applications, useful for software
      DSP (!743 (merged))
    - Added new Lua Properties API that significantly improves
      performance by avoiding constant serialization between
      WpProperties and Lua tables, resulting in approximately 40%
      faster node linking (!757 (merged))
    - Added WpIterator Lua API for more efficient parameter
      enumeration (!746 (merged))
    - Added bash completions for wpctl command (!762 (merged))
    - Added script to find suitable volume control when using
      role-based policy, allowing volume sliders to automatically
      adjust the volume of the currently active role (e.g.,
      ringing, call, media) (!711 (merged))
    - Added experimental HDMI channel detection setting to use HDMI
      ELD information for channel configuration (!749 (merged))
    - Enhanced role-based policy to allow setting preferred target
      sinks for media role loopbacks via
      policy.role-based.preferred-target (!754 (merged))
    - Enhanced Bluetooth profile autoswitch logic to be more robust
      and handle saved profiles correctly, including support for
      loopback sink nodes (!739 (merged))
    - Enhanced ALSA monitor to include alsa.* device properties on
      nodes for rule matching (!761 (merged))
    - Optimized stream node linking for common cases to reduce
      latency when new audio/video streams are added (!760)
    - Improved event dispatcher performance by using hash table

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=98
2026-01-12 13:16:38 +00:00
e489e25423 Accepting request 1311677 from multimedia:libs
OBS-URL: https://build.opensuse.org/request/show/1311677
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=49
2025-10-18 12:35:19 +00:00
0d87607110 - Update to version 0.5.12:
* Additions & Enhancements:
    - Added mono audio configuration support via
      node.features.audio.mono setting that can be changed at
      runtime with wpctl (!721)
    - Added automatic muting of ALSA devices when a running node
      is removed, helping prevent loud audio on speakers when
      headsets are unplugged (!734)
    - Added notifications API module for sending system
      notifications (!734)
    - Added comprehensive wpctl man page and documentation
      (!735, #825)
    - Enhanced object interest handling for PipeWire properties
      on session items (!738)
  * Fixes:
    - Fixed race condition during shutdown in the permissions
      portal module that could cause crashes in GDBus signal
      handling (!748).
    - Added device validity check in state-routes handling to
      prevent issues when devices are removed during async
      operations (!737, #844)
    - Fixed Log.critical undefined function error in
      device-info-cache (!733)
    - Improved device hook documentation and configuration (!736)
- Add patch from upstream to avoid dispatcher errors in the log
  when registering/removing hooks that were already
  registered/removed before:
  * 0001-automute-alsa-routes.lua-Dont-register_remove-hooks-if.patch

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=97
2025-10-16 11:24:31 +00:00
4b020f977c Accepting request 1302476 from multimedia:libs
OBS-URL: https://build.opensuse.org/request/show/1302476
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=48
2025-09-03 19:07:14 +00:00
c207b0e44b - Update to version 0.5.11:
* Additions & Enhancements:
    - Added modem manager module for tracking voice call status and
      voice call device profile selection hooks to improve phone
      call audio routing on mobile devices (!722, !729, #819)
    - Added MPRIS media player pause functionality that
      automatically pauses media playback when the audio target
      (e.g. headphones) is removed (!699, #764)
    - Added support for human-readable names and localization of
      settings in wireplumber.conf with wpctl displaying localized
      setting descriptions (!712)
    - Improved default node selection logic to use both session and
      route priorities when nodes have equal session priorities
      (!720)
    - Increased USB device priority in the ALSA monitor (!719)
  * Fixes:
    - Fixed multiple Lua runtime issues including type confusion
      bugs, stack overflow prevention, and SPA POD array/choice
      builders (!723, !728)
    - Fixed proxy object lifecycle management by properly clearing
      the OWNED_BY_PROXY flag when proxies are destroyed to prevent
      dangling pointers (!732)
    - Fixed state-routes handling to prevent saving unavailable
      routes and eliminate race conditions during profile switching
      (!730, #762)
    - Fixed some memory leaks in the script tester and the settings
      iterator (!727, !726)
    - Fixed a potential crash caused by module-loopback destroying
      itself when the pipewire connection is closed (#812)
    - Fixed profile saving behavior in wpctl set-profile command

OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=96
2025-09-02 17:11:07 +00:00
8 changed files with 231 additions and 9 deletions

View File

@@ -0,0 +1,37 @@
From b60b2f4ece58eb5b08d30d6832ee987c71a52350 Mon Sep 17 00:00:00 2001
From: Pauli Virtanen <pav@iki.fi>
Date: Sun, 4 Jan 2026 23:23:25 +0200
Subject: [PATCH] monitors/bluez: request device ports take loopback nodes into
account
Take the loopback nodes into account also in device Routes.
Some Pulseaudio applications (eg GNOME) determine what to do based on
device ports, so make sure they are consistent with what nodes will be
emitted.
---
src/scripts/monitors/bluez.lua | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/scripts/monitors/bluez.lua b/src/scripts/monitors/bluez.lua
index 3acbeb309a19..e58731391e66 100644
--- a/src/scripts/monitors/bluez.lua
+++ b/src/scripts/monitors/bluez.lua
@@ -546,6 +546,14 @@ function checkProfiles (dev)
return
end
+ -- Setup Route/Port correctly for loopback nodes
+ local param = Pod.Object ({
+ "Spa:Pod:Object:Param:Props",
+ "Props",
+ params = Pod.Struct ({ "bluez5.autoswitch-routes", true })
+ })
+ dev:set_param("Props", param)
+
-- Create the source loopback device if never created before
local source_loopback = spa_device:get_managed_object (LOOPBACK_SOURCE_ID)
if source_loopback == nil then
--
2.52.0

View File

@@ -0,0 +1,29 @@
From f088a6f63d0eddbd6db4eefbe55f6b9921ef913d Mon Sep 17 00:00:00 2001
From: Julian Bouzas <julian.bouzas@collabora.com>
Date: Thu, 8 Jan 2026 13:47:21 -0500
Subject: [PATCH] autoswitch-bluetooth-profile: Fix attempt to index a number
value error
The getLinkedBluetoothLoopbackSourceNodeForStream() function expects stream to be
and object and not a stream ID.
---
src/scripts/device/autoswitch-bluetooth-profile.lua | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/scripts/device/autoswitch-bluetooth-profile.lua b/src/scripts/device/autoswitch-bluetooth-profile.lua
index 07f8db39cfca..ee41c32e35a1 100644
--- a/src/scripts/device/autoswitch-bluetooth-profile.lua
+++ b/src/scripts/device/autoswitch-bluetooth-profile.lua
@@ -314,8 +314,7 @@ function getLinkedBluetoothLoopbackSourceNodeForStream (stream, node_om, link_om
Constraint { "bluez5.loopback", "!", "true", type = "pw" },
Constraint { "node.link-group", "=", filter_link_group, type = "pw" }
} do
- local filter_stream_id = filter_stream_node["bound-id"]
- local bt_node = getLinkedBluetoothLoopbackSourceNodeForStream (filter_stream_id, node_om, link_om, visited_link_groups)
+ local bt_node = getLinkedBluetoothLoopbackSourceNodeForStream (filter_stream_node, node_om, link_om, visited_link_groups)
if bt_node ~= nil then
return bt_node
end
--
2.52.0

View File

@@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual">
<param name="scm">git</param>
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
<param name="revision">0.5.10</param>
<param name="revision">0.5.13</param>
<param name="versionformat">@PARENT_TAG@</param>
<!--
<param name="revision">master</param>

Binary file not shown.

View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b0cc956de65d233112dfeeaec6a12a7b92b6cc8bc2d41e60f2221986bb446859
size 3033100

View File

@@ -1,3 +1,138 @@
-------------------------------------------------------------------
Sun Jan 18 11:16:36 UTC 2026 - Takashi Iwai <tiwai@suse.com>
- Backport upstream fixes:
0001-monitors-bluez-request-device-ports-take-loopback-no.patch
0002-autoswitch-bluetooth-profile-Fix-attempt-to-index-a-.patch
-------------------------------------------------------------------
Mon Jan 12 07:24:16 UTC 2026 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.5.13:
* Additions & Enhancements:
- Added internal filter graph support for audio nodes, allowing
users to create audio preprocessing and postprocessing chains
without exposing filters to applications, useful for software
DSP (!743 (merged))
- Added new Lua Properties API that significantly improves
performance by avoiding constant serialization between
WpProperties and Lua tables, resulting in approximately 40%
faster node linking (!757 (merged))
- Added WpIterator Lua API for more efficient parameter
enumeration (!746 (merged))
- Added bash completions for wpctl command (!762 (merged))
- Added script to find suitable volume control when using
role-based policy, allowing volume sliders to automatically
adjust the volume of the currently active role (e.g.,
ringing, call, media) (!711 (merged))
- Added experimental HDMI channel detection setting to use HDMI
ELD information for channel configuration (!749 (merged))
- Enhanced role-based policy to allow setting preferred target
sinks for media role loopbacks via
policy.role-based.preferred-target (!754 (merged))
- Enhanced Bluetooth profile autoswitch logic to be more robust
and handle saved profiles correctly, including support for
loopback sink nodes (!739 (merged))
- Enhanced ALSA monitor to include alsa.* device properties on
nodes for rule matching (!761 (merged))
- Optimized stream node linking for common cases to reduce
latency when new audio/video streams are added (!760)
- Improved event dispatcher performance by using hash table
registration for event hooks, eliminating performance
degradation as more hooks are registered (!765 (merged))
- Increased audio headroom for VMware and VirtualBox virtual
machines (!756 (merged))
- Added setting to prevent restoring "Off" profiles via
session.dont-restore-off-profile property (!753 (merged))
- Added support for 128 audio channels when compiled with a
recent version of PipeWire (pipewire#4995 (closed))
* Fixes:
- Fixed memory leaks and issues in the modem manager module
(!770 (merged), !764 (merged))
- Fixed MPRIS module incorrectly treating GHashTable as
GObject (!759 (merged))
- Fixed warning messages when process files in /proc/<pid>/*
don't exist, particularly when processes are removed quickly
(#816 (closed), !717 (merged))
- Fixed MONO audio configuration to only apply to device sink
nodes, allowing multi-channel mixing in the graph (!769)
- Fixed event dispatcher hook registration and removal to avoid
spurious errors (!747 (merged))
- Improved logging for standard-link activation failures (!744)
- Simplified event-hook interest matching for better
performance (!758 (merged))
- Remove patch already included by upstream:
* 0001-automute-alsa-routes.lua-Dont-register_remove-hooks-if.patch
-------------------------------------------------------------------
Thu Oct 16 09:29:51 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.5.12:
* Additions & Enhancements:
- Added mono audio configuration support via
node.features.audio.mono setting that can be changed at
runtime with wpctl (!721)
- Added automatic muting of ALSA devices when a running node
is removed, helping prevent loud audio on speakers when
headsets are unplugged (!734)
- Added notifications API module for sending system
notifications (!734)
- Added comprehensive wpctl man page and documentation
(!735, #825)
- Enhanced object interest handling for PipeWire properties
on session items (!738)
* Fixes:
- Fixed race condition during shutdown in the permissions
portal module that could cause crashes in GDBus signal
handling (!748).
- Added device validity check in state-routes handling to
prevent issues when devices are removed during async
operations (!737, #844)
- Fixed Log.critical undefined function error in
device-info-cache (!733)
- Improved device hook documentation and configuration (!736)
- Add patch from upstream to avoid dispatcher errors in the log
when registering/removing hooks that were already
registered/removed before:
* 0001-automute-alsa-routes.lua-Dont-register_remove-hooks-if.patch
-------------------------------------------------------------------
Tue Sep 2 16:59:05 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>
- Update to version 0.5.11:
* Additions & Enhancements:
- Added modem manager module for tracking voice call status and
voice call device profile selection hooks to improve phone
call audio routing on mobile devices (!722, !729, #819)
- Added MPRIS media player pause functionality that
automatically pauses media playback when the audio target
(e.g. headphones) is removed (!699, #764)
- Added support for human-readable names and localization of
settings in wireplumber.conf with wpctl displaying localized
setting descriptions (!712)
- Improved default node selection logic to use both session and
route priorities when nodes have equal session priorities
(!720)
- Increased USB device priority in the ALSA monitor (!719)
* Fixes:
- Fixed multiple Lua runtime issues including type confusion
bugs, stack overflow prevention, and SPA POD array/choice
builders (!723, !728)
- Fixed proxy object lifecycle management by properly clearing
the OWNED_BY_PROXY flag when proxies are destroyed to prevent
dangling pointers (!732)
- Fixed state-routes handling to prevent saving unavailable
routes and eliminate race conditions during profile switching
(!730, #762)
- Fixed some memory leaks in the script tester and the settings
iterator (!727, !726)
- Fixed a potential crash caused by module-loopback destroying
itself when the pipewire connection is closed (#812)
- Fixed profile saving behavior in wpctl set-profile command
(#808)
- Fixed GObject introspection closure annotation
-------------------------------------------------------------------
Wed May 21 07:04:36 UTC 2025 - Antonio Larrosa <alarrosa@suse.com>

View File

@@ -1,4 +1,4 @@
name: wireplumber
version: 0.5.10
mtime: 1747801935
commit: 7a4d3177550b6b53fe0a49396da5b07f5353daff
version: 0.5.13
mtime: 1766515716
commit: 84429b47943d789389fbde17c06b82efb197d04e

View File

@@ -22,7 +22,7 @@
%define sover 0
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
Name: wireplumber
Version: 0.5.10
Version: 0.5.13
Release: 0
Summary: Session / policy manager implementation for PipeWire
License: MIT
@@ -30,6 +30,9 @@ Group: Development/Libraries/C and C++
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
Source0: wireplumber-%{version}.tar.xz
Source1: wireplumber.env
# 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
Patch100: set-profile-in-service.patch
# docs
BuildRequires: doxygen
@@ -160,6 +163,16 @@ BuildArch: noarch
%description zsh-completion
Optional dependency offering zsh completion for various wpctl parameters.
%package bash-completion
Summary: Wireplumber Bash completion
Group: System/Shells
Requires: %{name} = %{version}
Requires: bash-completion
Supplements: (wireplumber and bash-completion)
%description bash-completion
Optional dependency offering bash completion for wpctl.
%prep
%autosetup -p1
@@ -241,6 +254,9 @@ fi
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-logind.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-lua-scripting.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-mixer-api.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-modem-manager.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-mpris.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-notifications-api.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-portal-permissionstore.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-reserve-device.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-settings.so
@@ -248,13 +264,13 @@ fi
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-node.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-standard-link.so
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-standard-event-source.so
%{_userunitdir}/wireplumber.service
%{_userunitdir}/wireplumber@.service
%dir %{_datadir}/doc/wireplumber
%dir %{_datadir}/doc/wireplumber/examples
%{_datadir}/doc/wireplumber/examples/wireplumber.conf.d
%{_datadir}/wireplumber
%{_mandir}/man1/wpctl.1%{?ext_man}
%files lang -f %{name}.lang
@@ -287,4 +303,9 @@ fi
%dir %{_datarootdir}/zsh/site-functions/
%{_datarootdir}/zsh/site-functions/_wpctl
%files bash-completion
%dir %{_datadir}/bash-completion
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/wpctl
%changelog