Accepting request 939142 from multimedia:libs
New package wireplumber, replacing pipewire-media-session OBS-URL: https://build.opensuse.org/request/show/939142 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/wireplumber?expand=0&rev=1
This commit is contained in:
parent
269067e7db
commit
1518852b8c
@ -0,0 +1,46 @@
|
||||
From f4546a18e871537be698916178b40091a4a0b377 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Date: Fri, 12 Nov 2021 11:19:54 +1000
|
||||
Subject: [PATCH] m-reserve-device: replace the hash table key on new insert
|
||||
|
||||
We're using the WpReserveDevice's name as key in the hash table, so we
|
||||
must update the key as well when we replace an item in the hashtable -
|
||||
the old device (and its name) will be released.
|
||||
|
||||
The side-effect of this is that the *third* device with an identical
|
||||
name will no longer replace the previous device. This results in the
|
||||
following sequence:
|
||||
|
||||
- dev1 added: name Audio0
|
||||
- dev1 requests name owner Audio0
|
||||
- dev2 added: name Audio0
|
||||
- replace dev1 in the hashtable
|
||||
- dev1 emits "release" signal
|
||||
- dev1 unowns the Audio0 name
|
||||
- dev2 requests name owner Audio0
|
||||
- dev3 added: name Audio0
|
||||
- adds to the hashtable because the existing key is now undefined
|
||||
- dev3 requests name owner Audio0
|
||||
- error, you cannot request ownership for the same name twice
|
||||
|
||||
Fixes #93
|
||||
---
|
||||
modules/module-reserve-device/plugin.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/modules/module-reserve-device/plugin.c b/modules/module-reserve-device/plugin.c
|
||||
index d8e4e092..68df6ee8 100644
|
||||
--- a/modules/module-reserve-device/plugin.c
|
||||
+++ b/modules/module-reserve-device/plugin.c
|
||||
@@ -221,7 +221,7 @@ wp_reserve_device_plugin_create_reservation (WpReserveDevicePlugin *self,
|
||||
NULL);
|
||||
|
||||
/* use rd->name to avoid copying @em name again */
|
||||
- g_hash_table_insert (self->reserve_devices, rd->name, rd);
|
||||
+ g_hash_table_replace (self->reserve_devices, rd->name, rd);
|
||||
|
||||
return g_object_ref (rd);
|
||||
}
|
||||
--
|
||||
GitLab
|
||||
|
@ -0,0 +1,34 @@
|
||||
From 83041b0ce277c95afaf1824f525ea0bec516f03f Mon Sep 17 00:00:00 2001
|
||||
From: Wim Taymans <wtaymans@redhat.com>
|
||||
Date: Thu, 18 Nov 2021 15:23:23 +0100
|
||||
Subject: [PATCH] policy-node: wait for nodes when we become unlinked
|
||||
|
||||
If we were linked before but our node is removed, wait until a new node
|
||||
becomes available instead of failing.
|
||||
|
||||
This fixes an issue where there is only 1 sink available and the card
|
||||
profile is toggeled between pro and stereo. After the profile is
|
||||
toggled, the sink is removed and the node would be killed with an error
|
||||
because there is no fallback sink. The fix is similar to the
|
||||
pipewire-media-session logic.
|
||||
---
|
||||
src/scripts/policy-node.lua | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/scripts/policy-node.lua b/src/scripts/policy-node.lua
|
||||
index 5029d1b3..445b1a7b 100644
|
||||
--- a/src/scripts/policy-node.lua
|
||||
+++ b/src/scripts/policy-node.lua
|
||||
@@ -493,6 +493,9 @@ function handleLinkable (si)
|
||||
if not reconnect then
|
||||
Log.info (si, "... destroy node")
|
||||
node:request_destroy()
|
||||
+ elseif si_flags[si.id].was_handled then
|
||||
+ Log.info (si, "... waiting reconnect")
|
||||
+ return
|
||||
end
|
||||
|
||||
local client_id = node.properties["client.id"]
|
||||
--
|
||||
GitLab
|
||||
|
5
_service
5
_service
@ -3,10 +3,11 @@
|
||||
<service name="obs_scm" mode="disabled">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="revision">0.4.11</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="revision">0.4.5</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<!--
|
||||
<param name="revision">master</param>
|
||||
<param name="versionprefix">0.4.1+git</param>
|
||||
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
|
||||
-->
|
||||
</service>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="changesrevision">3400acd0db95fefdda7595d20466c095902d8997</param></service></servicedata>
|
||||
<param name="changesrevision">3946457a7942a179c0f61c60de8cb8fc643391dd</param></service></servicedata>
|
@ -4,33 +4,16 @@ Subject: Reduce the minimum required meson version
|
||||
With this, we can build wireplumber in SLE 15 SP3/Leap 15.3
|
||||
which only have meson 0.54
|
||||
|
||||
Index: wireplumber-0.4.11/meson.build
|
||||
Index: wireplumber/meson.build
|
||||
===================================================================
|
||||
--- wireplumber-0.4.11.orig/meson.build
|
||||
+++ wireplumber-0.4.11/meson.build
|
||||
@@ -1,7 +1,7 @@
|
||||
project('wireplumber', ['c'],
|
||||
version : '0.4.11',
|
||||
--- wireplumber.orig/meson.build
|
||||
+++ wireplumber/meson.build
|
||||
@@ -1,3 +1,3 @@
|
||||
license : 'MIT',
|
||||
- meson_version : '>= 0.59.0',
|
||||
- meson_version : '>= 0.56.0',
|
||||
+ meson_version : '>= 0.54.0',
|
||||
default_options : [
|
||||
'warning_level=1',
|
||||
'buildtype=debugoptimized',
|
||||
@@ -42,7 +42,11 @@ spa_dep = dependency('libspa-0.2', versi
|
||||
pipewire_dep = dependency('libpipewire-0.3', version: '>= 0.3.52')
|
||||
mathlib = cc.find_library('m')
|
||||
threads_dep = dependency('threads')
|
||||
-libintl_dep = dependency('intl')
|
||||
+libintl_dep = dependency('', required: false)
|
||||
+
|
||||
+if not cc.has_function('ngettext')
|
||||
+ libintl_dep = cc.find_library('intl')
|
||||
+endif
|
||||
|
||||
system_lua = get_option('system-lua')
|
||||
if system_lua
|
||||
@@ -131,8 +135,8 @@ endif
|
||||
@@ -123,8 +123,8 @@ endif
|
||||
|
||||
conf_uninstalled = configuration_data()
|
||||
conf_uninstalled.set('MESON', '')
|
||||
|
@ -2,20 +2,22 @@
|
||||
import hashlib
|
||||
import sys
|
||||
|
||||
def sha256_from_data(data):
|
||||
hash_sha256 = hashlib.sha256()
|
||||
hash_sha256.update(data)
|
||||
return hash_sha256.hexdigest()
|
||||
|
||||
def md5FromData(data):
|
||||
hash_md5 = hashlib.md5()
|
||||
hash_md5.update(data)
|
||||
return hash_md5.hexdigest()
|
||||
|
||||
|
||||
contents = open('90-enable-all.lua', 'r', encoding='utf-8').read()
|
||||
|
||||
sha256sum = sha256_from_data(contents.encode('utf-8'))
|
||||
expected_sha256sum = 'cb9f05eb3b4959b84e94a67867645130f2bc0aa761eb864d227890aea310ab74'
|
||||
md5sum = md5FromData(contents.encode('utf-8'))
|
||||
expected_md5sum = '1317fb5df6ae842fda3ef845f195e084'
|
||||
|
||||
if sha256sum != expected_sha256sum:
|
||||
if md5sum != expected_md5sum:
|
||||
print('The script has to be updated for new changes in 90-enable-all.lua')
|
||||
print(f'File sha256sum: {sha256sum}')
|
||||
print(f'expected sha256sum: {expected_sha256sum}')
|
||||
print(f'File md5sum: {md5sum}')
|
||||
print(f'expected md5sum: {expected_md5sum}')
|
||||
sys.exit(1)
|
||||
|
||||
content_sections = contents.split('\n\n')
|
||||
@ -23,10 +25,10 @@ content_sections = contents.split('\n\n')
|
||||
sections = ['enable-metadata',
|
||||
'default-access-policy',
|
||||
'load-devices',
|
||||
'track-user-choices-devices',
|
||||
'track-user-choices-streams',
|
||||
'track-user-choices',
|
||||
'link-nodes-by-roles',
|
||||
'suspend-idle-nodes']
|
||||
'suspend-idle-nodes',
|
||||
'device-activation']
|
||||
|
||||
if len(content_sections) != len(sections):
|
||||
print('The script has to be updated for new changes in 90-enable-all.lua')
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c12a9e7e1749fedf931f5fa6a7596d7ca2c4eaaed3668725cd6ecfe3730f7d8
|
||||
size 2116620
|
3
wireplumber-0.4.5.obscpio
Normal file
3
wireplumber-0.4.5.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:382bc959e713c2d06a53c1b4aa9d3f1fe4f543283f3efca0c90bd0c01256f0e5
|
||||
size 1745932
|
@ -1,353 +1,3 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 5 15:13:07 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||||
|
||||
- Update to version 0.4.11:
|
||||
* Changes
|
||||
- The libcamera monitor is now enabled by default, so if the
|
||||
libcamera source is enabled in PipeWire, cameras discovered
|
||||
with the libcamera API will be available out of the box.
|
||||
This is safe to use alongside V4L2, as long as the user does
|
||||
not try to use the same camera over different APIs at the
|
||||
same time.
|
||||
- Libcamera and V4L2 nodes now get assigned a
|
||||
`priority.session` number; V4L2 nodes get a higher priority
|
||||
by default, so the default camera is going to be /dev/video0
|
||||
over V4L2, unless changed with `wpctl`.
|
||||
- Libcamera nodes now get a user-friendly description based on
|
||||
their location (e.g. built-in front camera). Additionally,
|
||||
V4L2 nodes now have a "(V4L2)" string appended to their
|
||||
description in order to be distinguished from the libcamera
|
||||
ones.
|
||||
- 50-alsa-config.lua now has a section where you can set
|
||||
properties that will only be applied if WirePlumber is
|
||||
running in a virtual machine. By default it now sets
|
||||
`api.alsa.period-size = 256` and `api.alsa.headroom = 8192`.
|
||||
* Fixes
|
||||
- The "enabled" properties in the config files are now "true"
|
||||
by default when they are not defined. This fixes backwards
|
||||
compatibility with older configuration files.
|
||||
- Fixed device name deduplication in the alsa monitor, when
|
||||
device reservation is enabled.
|
||||
- Reverted a previous fix that makes it possible again to get
|
||||
a glitch when changing default nodes while also changing the
|
||||
profile (GNOME Settings).
|
||||
The fix was causing other problems and the issue will be
|
||||
addressed differently in the future.
|
||||
- Fixed an issue that would prevent applications from being
|
||||
moved to a recently plugged USB headset.
|
||||
- Fixed an issue where wireplumber would automatically link
|
||||
control ports, if they are enabled, to audio ports,
|
||||
effectively breaking audio.
|
||||
- The policy now always considers the profile of a device that
|
||||
was previously selected by the user, if it is available, when
|
||||
deciding which profile to activate.
|
||||
- A few documentation fixes.
|
||||
* Tools
|
||||
- wpctl now has a `get-volume` command for easier scripting of
|
||||
volume controls.
|
||||
- wpctl now supports relative steps and percentage-based steps
|
||||
in `set-volume`.
|
||||
- wpctl now also prints link states.
|
||||
- wpctl can now `inspect` metadata objects without showing
|
||||
critical warnings.
|
||||
* Library
|
||||
- A new WpDBus API was added to maintain a single D-Bus
|
||||
connection among modules that need one.
|
||||
- WpCore now has a method to get the virtual machine type, if
|
||||
WirePlumber is running in a virtual machine.
|
||||
- WpSpaDevice now has a
|
||||
`wp_spa_device_new_managed_object_iterator()` method.
|
||||
- WpSpaJson now has a `wp_spa_json_to_string()` method that
|
||||
returns a newly allocated string with the correct size of the string token.
|
||||
- WpLink now has a `WP_LINK_FEATURE_ESTABLISHED` that allows
|
||||
the caller to wait until the link is in the PAUSED or ACTIVE
|
||||
state. This transparently now enables watching links for
|
||||
negotiation or allocation errors and failing gracefully
|
||||
instead of keeping dead link objects around.
|
||||
* Misc
|
||||
- The Lua subproject was bumped to version 5.4.4.
|
||||
- Rebase reduce-meson-required-version.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue May 10 14:39:24 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||||
|
||||
- Update to version 0.4.10:
|
||||
* Changes
|
||||
- Add i18n support to be able to translate some user-visible
|
||||
strings.
|
||||
- wpctl now supports using
|
||||
@DEFAULT_{AUDIO_,VIDEO_,}{SINK,SOURCE}@ as ID, almost like
|
||||
pactl. Additionally, it supports a --pid flag for changing
|
||||
volume and mute state by specifying a process ID, applying
|
||||
the state to all nodes of a specific client process.
|
||||
- The Lua engine now supports loading Lua libraries. These can
|
||||
be placed either in the standard Lua libraries path or in
|
||||
the "lib" subdirectory of WirePlumber's "scripts" directory
|
||||
and can be loaded with ``require()``
|
||||
- The Lua engine's sandbox has been relaxed to allow more
|
||||
functionality in scripts (the debug & coroutine libraries
|
||||
and some other previously disabled functions)
|
||||
- Lua scripts are now wrapped in special WpPlugin objects,
|
||||
allowing them to load asynchronously and declare when they
|
||||
have finished their loading
|
||||
- Add a new script that provides the same functionality as
|
||||
module-fallback-sink from PipeWire, but also takes endpoints
|
||||
into account and can be customised more easily. Disabled by
|
||||
default for now to avoid conflicts.
|
||||
* Policy
|
||||
- Add an optional experimental feature that allows filter-like
|
||||
streams (like echo-cancel or filter-node) to match the
|
||||
channel layout of the device they connect to, on both sides
|
||||
of the filter; that means that if, for instance, a sink has
|
||||
6 channels and the echo-cancel's source stream is linked to
|
||||
that sink, then the virtual sink presented by echo-cancel
|
||||
will also be configured to the same 6 channels layout. This
|
||||
feature needs to be explicitly enabled in the configuration
|
||||
("filter.forward-format")
|
||||
- filter-like streams (filter-chain and such) no longer follow
|
||||
the default sink when it changes, like in PulseAudio.
|
||||
* Fixes
|
||||
- The suspend-node script now also suspends nodes that go into
|
||||
the "error" state, allowing them to recover from errors
|
||||
without having to restart WirePlumber.
|
||||
- Fix a crash in mixer-api when setting volume with
|
||||
channelVolumes.
|
||||
- logind module now watches only for user state changes,
|
||||
avoiding errors when machined is not running.
|
||||
* Misc
|
||||
- The configuration files now have comments mentioning which
|
||||
options need to be disabled in order to run WirePlumber
|
||||
without D-Bus.
|
||||
- The configuration files now have properties to
|
||||
enable/disable the monitors and other sections, so that it
|
||||
is possible to disable them by dropping in a file that just
|
||||
sets the relevant property to false.
|
||||
- setlocale() is now called directly instead of relying on
|
||||
pw_init().
|
||||
- WpSpaJson received some fixes and is now used internally to
|
||||
parse configuration files.
|
||||
- More applications were added to the bluetooth auto-switch
|
||||
applications whitelist.
|
||||
- Add a new wireplumber-lang package.
|
||||
- Drop patches already upstream:
|
||||
* 0001-scripts-policy-device-profile-clear-tables-when-devices-removed.patch
|
||||
* 0001-src-setlocale-in-main-for-tools-and-the-daemon.patch
|
||||
- Rebase reduce-meson-required-version.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Mar 30 16:12:03 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patch from upstream to fix no sound on reconnection of
|
||||
bluetooth device (glfo#pipewire/wireplumber#234):
|
||||
* 0001-scripts-policy-device-profile-clear-tables-when-devices-removed.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 29 12:04:24 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patch from upstream to set locale in apps now that pw_init
|
||||
doesn't call it by itself anymore in pipewire 0.3.49:
|
||||
* 0001-src-setlocale-in-main-for-tools-and-the-daemon.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Mar 25 07:47:09 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Make the wireplumber-audio noarch as it just contains a lua
|
||||
config file.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Mar 22 18:36:13 UTC 2022 - alarrosa@suse.com
|
||||
|
||||
- Update to version 0.4.9:
|
||||
* Fixes:
|
||||
- restore-stream no longer crashes if properties for it are not
|
||||
present in the config (#190)
|
||||
- spa-json no longer crashes on non-x86 architectures
|
||||
- Fixed a potential crash in the bluetooth auto-switch module
|
||||
(#193)
|
||||
- Fixed a race condition that would cause Zoom desktop audio
|
||||
sharing to fail (#197)
|
||||
- Surround sound in some games is now exposed properly
|
||||
(pipewire#876)
|
||||
- Fixed a race condition that would cause the default source &
|
||||
sink to not be set at startup
|
||||
- policy-node now supports the 'target.object' key on streams
|
||||
and metadata
|
||||
- Multiple fixes in policy-node that make the logic in some
|
||||
cases behave more like PulseAudio (regarding nodes with the
|
||||
dont-reconnect property and regarding following the default
|
||||
source/sink)
|
||||
- Fixed a bug with parsing unquoted strings in spa-json
|
||||
* Misc:
|
||||
- The policy now supports configuring "persistent" device
|
||||
profiles. If a device is manually set to one of these
|
||||
profiles, then it will not be auto-switched to another
|
||||
profile automatically under any circumstances (#138, #204)
|
||||
- The device-activation module was re-written in lua
|
||||
- Brave, Edge, Vivaldi and Telegram were added in the bluetooth
|
||||
auto-switch applications list
|
||||
- ALSA nodes now use the PCM name to populate node.nick, which
|
||||
is useful at least on HDA cards using UCM, where all outputs
|
||||
(analog, hdmi, etc) are exposesd as nodes on a single profile
|
||||
- An icon name is now set on the properties of bluetooth devices
|
||||
- Drop patches already upstream:
|
||||
* 0001-spa-json-fix-va_list-APIs-for-different-architectures.patch
|
||||
* 0001-restore-stream-do-not-crash-if-config_properties-is-nil.patch
|
||||
* 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch
|
||||
* 0003-si-audio-adapter-relax-format-parsing.patch
|
||||
- Update split-config-file.py script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 10 12:14:13 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||||
|
||||
- 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 <alarrosa@suse.com>
|
||||
|
||||
- Add patch from upstream to fix va_list APIs for ppc64le and
|
||||
aarch64, where va_list is not a pointer (boo#1195818):
|
||||
* 0001-spa-json-fix-va_list-APIs-for-different-architectures.patch
|
||||
- Add patch from upstream to fix a crash if config.properties is
|
||||
nil:
|
||||
* 0001-restore-stream-do-not-crash-if-config_properties-is-nil.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Feb 7 17:31:11 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Update to version 0.4.8:
|
||||
* Highlights:
|
||||
- Added bluetooth profile auto-switching support. Bluetooth
|
||||
headsets will now automatically switch to the HSP/HFP profile
|
||||
when making a call and go back to the A2DP profile after the
|
||||
call ends (#90)
|
||||
- Added an option (enabled by default) to auto-switch to
|
||||
echo-cancel virtual device nodes when the echo-cancel module
|
||||
is loaded in pipewire-pulse, if there is no other configured
|
||||
default node
|
||||
* Fixes:
|
||||
- Fixed a regression that prevented nodes from being selected
|
||||
as default when using the pro-audio profile (#163)
|
||||
- Fixed a regression that caused encoded audio streams to stall
|
||||
(#178)
|
||||
- Fixed restoring bluetooth device profiles
|
||||
* Library:
|
||||
- A new WpSpaJson API was added as a front-end to spa-json.
|
||||
This is also exposed to Lua, so that Lua scripts can natively
|
||||
parse and write data in the spa-json format
|
||||
* Misc:
|
||||
- wpctl can now list the configured default sources and sinks
|
||||
and has a new command that allows clearing those configured
|
||||
defaults, so that wireplumber goes back to choosing the
|
||||
default nodes based on node priorities
|
||||
- The restore-stream script now has its own configuration file
|
||||
in main.lua.d/40-stream-defaults.lua and has independent
|
||||
options for restoring properties and target nodes
|
||||
- The restore-stream script now supports rule-based
|
||||
configuration to disable restoring volume properties and/or
|
||||
target nodes for specific streams, useful for applications
|
||||
that misbehave when we restore those (see #169)
|
||||
- policy-endpoint now assigns the "Default" role to any stream
|
||||
that does not have a role, so that it can be linked to a
|
||||
pre-configured endpoint
|
||||
- The route-settings-api module was dropped in favor of dealing
|
||||
with json natively in Lua, now that the API exists
|
||||
- Drop patch which is already upstream:
|
||||
* 0001-default-nodes-handle-nodes-without-Routes.patch
|
||||
- Update split-config-file.py script
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 31 17:45:11 UTC 2022 - Callum Farmer <gmbr3@opensuse.org>
|
||||
|
||||
- Use the default lua instead of hardcoding 5.3
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 25 15:08:59 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Update to version 0.4.7:
|
||||
* Fixed a regression in 0.4.6 that caused the selection of the
|
||||
default audio sources and sinks to be delayed until some event,
|
||||
which effectively caused losing audio output in many
|
||||
circumstances (glfo#pipewire/wireplumber#148,
|
||||
glfo#pipewire/wireplumber#150, glfo#pipewire/wireplumber#151,
|
||||
glfo#pipewire/wireplumber#153)
|
||||
* Fixed a regression in 0.4.6 that caused the echo-cancellation
|
||||
pipewire module (and possibly others) to not work
|
||||
* A default sink or source is now not selected if there is no
|
||||
available route for it (glfo#pipewire/wireplumber#145)
|
||||
* Fixed an issue where some clients would wait for a bit while
|
||||
seeking (glfo#pipewire/wireplumber#146)
|
||||
* Fixed audio capture in the endpoints-based policy
|
||||
* Fixed an issue that would cause certain lua scripts to error
|
||||
out with older configuration files
|
||||
(glfo#pipewire/wireplumber#158)
|
||||
- Drop patches already included upstream:
|
||||
* 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
|
||||
* 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
|
||||
- Add patch from upstream to fix selection of Pro Audio nodes
|
||||
as default nodes:
|
||||
* 0001-default-nodes-handle-nodes-without-Routes.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Jan 10 09:50:15 UTC 2022 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Reformat .changes file to limit lines to 67 chars when possible.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Jan 8 16:12:57 UTC 2022 - Alexei Sorokin <sor.alexei@meowr.ru>
|
||||
|
||||
- Update to version 0.4.6:
|
||||
* Fix a lot of race condition bugs that would cause strange
|
||||
crashes or many log messages being printed when streaming
|
||||
clients would connect and disconnect very fast.
|
||||
* Improve the logic for selecting a default target device.
|
||||
* Fix switching to headphones when the wired headphones are
|
||||
plugged in.
|
||||
* Fix an issue where "udevadm trigger" would break wireplumber.
|
||||
* Fix an issue where switching profiles of a device could kill
|
||||
client nodes.
|
||||
* Fix briefly switching output to a secondary device when
|
||||
switching device profiles (#85)
|
||||
* Fix "wpctl status" showing default device selections when
|
||||
dealing with module-loopback virtual sinks and sources.
|
||||
* WirePlumber now ignores hidden files from the config directory.
|
||||
* Fix an interoperability issue with jackdbus.
|
||||
* Fix an issue where pulseaudio tcp clients would not have
|
||||
permissions to connect to PipeWire.
|
||||
* Fix a crash in the journald logger with NULL debug messages.
|
||||
* Enable real-time priority for the bluetooth nodes to run in RT.
|
||||
* Make the default stream volume configurable.
|
||||
* Scripts are now also looked up in
|
||||
$XDG_CONFIG_HOME/wireplumber/scripts
|
||||
* Update documentation on configuring WirePlumber and fixed some
|
||||
more documentation issues.
|
||||
* Add support for using strings as log level selectors in
|
||||
WIREPLUMBER_DEBUG.
|
||||
- Drop patches merged upstream:
|
||||
* 0001-m-reserve-device-replace-the-hash-table-key-on-new-insert.patch
|
||||
* 0002-policy-node-wait-for-nodes-when-we-become-unlinked.patch
|
||||
- Add patch from upstream to fix a pulse client hanging issue:
|
||||
* 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
|
||||
- Add patch from upstream to fix an issue with
|
||||
libpipewire-module-echo-cancel:
|
||||
* 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Dec 15 13:48:27 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Remove many build dependencies which aren't really needed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Sat Dec 11 16:54:56 UTC 2021 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Use %autosetup, apply patches unconditionally
|
||||
- Hard depend on wireplumber-audio if pipewire-pulseaudio is installed
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Dec 9 12:08:45 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
name: wireplumber
|
||||
version: 0.4.11
|
||||
mtime: 1657027335
|
||||
commit: 80b3559963f0ad40a7bfa6c23b0098275c0b5ebe
|
||||
version: 0.4.5
|
||||
mtime: 1636626925
|
||||
commit: 3946457a7942a179c0f61c60de8cb8fc643391dd
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# spec file for package wireplumber
|
||||
#
|
||||
# Copyright (c) 2022 SUSE LLC
|
||||
# Copyright (c) 2020 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,13 +16,12 @@
|
||||
#
|
||||
|
||||
|
||||
%define pipewire_minimum_version 0.3.52
|
||||
%define apiver 0.4
|
||||
%define apiver_str 0_4
|
||||
%define sover 0
|
||||
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
|
||||
Name: wireplumber
|
||||
Version: 0.4.11
|
||||
Version: 0.4.5
|
||||
Release: 0
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
License: MIT
|
||||
@ -30,46 +29,59 @@ Group: Development/Libraries/C and C++
|
||||
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
|
||||
Source0: wireplumber-%{version}.tar.xz
|
||||
Source1: split-config-file.py
|
||||
# PATCH-FIX-OPENSUSE reduce-meson-required-version.patch
|
||||
Patch0: reduce-meson-required-version.patch
|
||||
# docs
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: graphviz
|
||||
# /docs
|
||||
Patch0: 0001-m-reserve-device-replace-the-hash-table-key-on-new-insert.patch
|
||||
Patch1: 0002-policy-node-wait-for-nodes-when-we-become-unlinked.patch
|
||||
Patch100: reduce-meson-required-version.patch
|
||||
BuildRequires: cmake
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
%if 0%{?sle_version} == 150300
|
||||
BuildRequires: graphviz
|
||||
BuildRequires: meson >= 0.54.0
|
||||
%else
|
||||
BuildRequires: meson >= 0.59.0
|
||||
%endif
|
||||
BuildRequires: pipewire >= %{pipewire_minimum_version}
|
||||
BuildRequires: pipewire-spa-plugins-0_2 >= %{pipewire_minimum_version}
|
||||
BuildRequires: pipewire >= 0.3.32
|
||||
#!BuildIgnore: pipewire-session-manager
|
||||
BuildRequires: pipewire-spa-plugins-0_2
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-lxml
|
||||
BuildRequires: xmltoman
|
||||
BuildRequires: pkgconfig(lua5.3)
|
||||
BuildRequires: pkgconfig(alsa)
|
||||
BuildRequires: pkgconfig(bluez)
|
||||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(gio-2.0)
|
||||
BuildRequires: pkgconfig(gio-unix-2.0)
|
||||
BuildRequires: pkgconfig(glib-2.0) >= 2.62.0
|
||||
BuildRequires: pkgconfig(gmodule-2.0)
|
||||
BuildRequires: pkgconfig(gobject-2.0) >= 2.62
|
||||
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= %{pipewire_minimum_version}
|
||||
BuildRequires: pkgconfig(gstreamer-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-allocators-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-audio-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
|
||||
BuildRequires: pkgconfig(gstreamer-video-1.0)
|
||||
BuildRequires: pkgconfig(jack) >= 1.9.10
|
||||
BuildRequires: pkgconfig(libavcodec)
|
||||
BuildRequires: pkgconfig(libavfilter)
|
||||
BuildRequires: pkgconfig(libavformat)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.32
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(lua)
|
||||
BuildRequires: pkgconfig(libudev)
|
||||
BuildRequires: pkgconfig(libva)
|
||||
BuildRequires: pkgconfig(sbc)
|
||||
BuildRequires: pkgconfig(sdl2)
|
||||
BuildRequires: pkgconfig(sndfile)
|
||||
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
|
||||
BuildRequires: pkgconfig(vulkan)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-lxml
|
||||
Requires: pipewire >= 0.3.32
|
||||
%if 0%{?suse_version} <= 1500
|
||||
BuildRequires: gcc9
|
||||
BuildRequires: gcc9-c++
|
||||
%else
|
||||
BuildRequires: gcc-c++
|
||||
%endif
|
||||
Provides: pipewire-session-manager
|
||||
|
||||
%description
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
@ -77,16 +89,14 @@ a GObject-based high-level library that wraps PipeWire's API,
|
||||
providing convenience for writing the daemon's modules as well as
|
||||
external tools for managing PipeWire.
|
||||
|
||||
%lang_package
|
||||
|
||||
%package audio
|
||||
Summary: Session / policy manager implementation for PipeWire (audio support)
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
Requires: %{name} = %{version}
|
||||
Recommends: pipewire-pulseaudio
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
Conflicts: pulseaudio
|
||||
BuildArch: noarch
|
||||
Recommends: pipewire-pulseaudio
|
||||
Supplements: (pipewire-pulseaudio and wireplumber)
|
||||
|
||||
%description audio
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
@ -99,8 +109,8 @@ This package enables the use of alsa devices in PipeWire.
|
||||
%package devel
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
|
||||
%description devel
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
@ -136,9 +146,11 @@ This package provides the GObject Introspection bindings for
|
||||
the wireplumber shared library.
|
||||
|
||||
%prep
|
||||
%autosetup -N
|
||||
%if 0%{?sle_version} == 150300
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%if %{pkg_vcmp meson < 0.56.0}
|
||||
%patch100 -p1
|
||||
%endif
|
||||
|
||||
pushd src/config/main.lua.d
|
||||
@ -158,7 +170,6 @@ export CC=gcc-9
|
||||
%install
|
||||
%meson_install
|
||||
%fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html
|
||||
%find_lang %{name} %{?no_lang_C}
|
||||
|
||||
%ifnarch %ix86 ppc64
|
||||
%check
|
||||
@ -189,6 +200,7 @@ export XDG_RUNTIME_DIR=/tmp
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-nodes-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-nodes.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-profile.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-device-activation.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-file-monitor-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-logind.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-lua-scripting.so
|
||||
@ -196,6 +208,7 @@ export XDG_RUNTIME_DIR=/tmp
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-mixer-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-portal-permissionstore.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-reserve-device.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-route-settings-api.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-audio-adapter.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-audio-endpoint.so
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-node.so
|
||||
@ -205,8 +218,6 @@ export XDG_RUNTIME_DIR=/tmp
|
||||
%{_datadir}/wireplumber
|
||||
%exclude %{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
||||
|
||||
%files lang -f %{name}.lang
|
||||
|
||||
%files audio
|
||||
%{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user