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">
|
<service name="obs_scm" mode="disabled">
|
||||||
<param name="scm">git</param>
|
<param name="scm">git</param>
|
||||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.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="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>
|
<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>
|
||||||
-->
|
-->
|
||||||
</service>
|
</service>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<servicedata>
|
<servicedata>
|
||||||
<service name="tar_scm">
|
<service name="tar_scm">
|
||||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
<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
|
With this, we can build wireplumber in SLE 15 SP3/Leap 15.3
|
||||||
which only have meson 0.54
|
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.orig/meson.build
|
||||||
+++ wireplumber-0.4.11/meson.build
|
+++ wireplumber/meson.build
|
||||||
@@ -1,7 +1,7 @@
|
@@ -1,3 +1,3 @@
|
||||||
project('wireplumber', ['c'],
|
|
||||||
version : '0.4.11',
|
|
||||||
license : 'MIT',
|
license : 'MIT',
|
||||||
- meson_version : '>= 0.59.0',
|
- meson_version : '>= 0.56.0',
|
||||||
+ meson_version : '>= 0.54.0',
|
+ meson_version : '>= 0.54.0',
|
||||||
default_options : [
|
default_options : [
|
||||||
'warning_level=1',
|
@@ -123,8 +123,8 @@ endif
|
||||||
'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
|
|
||||||
|
|
||||||
conf_uninstalled = configuration_data()
|
conf_uninstalled = configuration_data()
|
||||||
conf_uninstalled.set('MESON', '')
|
conf_uninstalled.set('MESON', '')
|
||||||
|
@ -2,20 +2,22 @@
|
|||||||
import hashlib
|
import hashlib
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
def sha256_from_data(data):
|
|
||||||
hash_sha256 = hashlib.sha256()
|
def md5FromData(data):
|
||||||
hash_sha256.update(data)
|
hash_md5 = hashlib.md5()
|
||||||
return hash_sha256.hexdigest()
|
hash_md5.update(data)
|
||||||
|
return hash_md5.hexdigest()
|
||||||
|
|
||||||
|
|
||||||
contents = open('90-enable-all.lua', 'r', encoding='utf-8').read()
|
contents = open('90-enable-all.lua', 'r', encoding='utf-8').read()
|
||||||
|
|
||||||
sha256sum = sha256_from_data(contents.encode('utf-8'))
|
md5sum = md5FromData(contents.encode('utf-8'))
|
||||||
expected_sha256sum = 'cb9f05eb3b4959b84e94a67867645130f2bc0aa761eb864d227890aea310ab74'
|
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('The script has to be updated for new changes in 90-enable-all.lua')
|
||||||
print(f'File sha256sum: {sha256sum}')
|
print(f'File md5sum: {md5sum}')
|
||||||
print(f'expected sha256sum: {expected_sha256sum}')
|
print(f'expected md5sum: {expected_md5sum}')
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
content_sections = contents.split('\n\n')
|
content_sections = contents.split('\n\n')
|
||||||
@ -23,10 +25,10 @@ content_sections = contents.split('\n\n')
|
|||||||
sections = ['enable-metadata',
|
sections = ['enable-metadata',
|
||||||
'default-access-policy',
|
'default-access-policy',
|
||||||
'load-devices',
|
'load-devices',
|
||||||
'track-user-choices-devices',
|
'track-user-choices',
|
||||||
'track-user-choices-streams',
|
|
||||||
'link-nodes-by-roles',
|
'link-nodes-by-roles',
|
||||||
'suspend-idle-nodes']
|
'suspend-idle-nodes',
|
||||||
|
'device-activation']
|
||||||
|
|
||||||
if len(content_sections) != len(sections):
|
if len(content_sections) != len(sections):
|
||||||
print('The script has to be updated for new changes in 90-enable-all.lua')
|
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>
|
Thu Dec 9 12:08:45 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
name: wireplumber
|
name: wireplumber
|
||||||
version: 0.4.11
|
version: 0.4.5
|
||||||
mtime: 1657027335
|
mtime: 1636626925
|
||||||
commit: 80b3559963f0ad40a7bfa6c23b0098275c0b5ebe
|
commit: 3946457a7942a179c0f61c60de8cb8fc643391dd
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package wireplumber
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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 0.4
|
||||||
%define apiver_str 0_4
|
%define apiver_str 0_4
|
||||||
%define sover 0
|
%define sover 0
|
||||||
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
|
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
|
||||||
Name: wireplumber
|
Name: wireplumber
|
||||||
Version: 0.4.11
|
Version: 0.4.5
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Session / policy manager implementation for PipeWire
|
Summary: Session / policy manager implementation for PipeWire
|
||||||
License: MIT
|
License: MIT
|
||||||
@ -30,46 +29,59 @@ Group: Development/Libraries/C and C++
|
|||||||
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
|
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
|
||||||
Source0: wireplumber-%{version}.tar.xz
|
Source0: wireplumber-%{version}.tar.xz
|
||||||
Source1: split-config-file.py
|
Source1: split-config-file.py
|
||||||
# PATCH-FIX-OPENSUSE reduce-meson-required-version.patch
|
Patch0: 0001-m-reserve-device-replace-the-hash-table-key-on-new-insert.patch
|
||||||
Patch0: reduce-meson-required-version.patch
|
Patch1: 0002-policy-node-wait-for-nodes-when-we-become-unlinked.patch
|
||||||
# docs
|
Patch100: reduce-meson-required-version.patch
|
||||||
BuildRequires: doxygen
|
|
||||||
BuildRequires: graphviz
|
|
||||||
# /docs
|
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
|
BuildRequires: doxygen
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
%if 0%{?sle_version} == 150300
|
BuildRequires: graphviz
|
||||||
BuildRequires: meson >= 0.54.0
|
BuildRequires: meson >= 0.54.0
|
||||||
%else
|
BuildRequires: pipewire >= 0.3.32
|
||||||
BuildRequires: meson >= 0.59.0
|
#!BuildIgnore: pipewire-session-manager
|
||||||
%endif
|
BuildRequires: pipewire-spa-plugins-0_2
|
||||||
BuildRequires: pipewire >= %{pipewire_minimum_version}
|
|
||||||
BuildRequires: pipewire-spa-plugins-0_2 >= %{pipewire_minimum_version}
|
|
||||||
BuildRequires: pkgconfig
|
BuildRequires: pkgconfig
|
||||||
BuildRequires: python3-base
|
|
||||||
BuildRequires: python3-lxml
|
|
||||||
BuildRequires: xmltoman
|
BuildRequires: xmltoman
|
||||||
|
BuildRequires: pkgconfig(lua5.3)
|
||||||
|
BuildRequires: pkgconfig(alsa)
|
||||||
|
BuildRequires: pkgconfig(bluez)
|
||||||
BuildRequires: pkgconfig(dbus-1)
|
BuildRequires: pkgconfig(dbus-1)
|
||||||
|
BuildRequires: pkgconfig(gio-2.0)
|
||||||
BuildRequires: pkgconfig(gio-unix-2.0)
|
BuildRequires: pkgconfig(gio-unix-2.0)
|
||||||
BuildRequires: pkgconfig(glib-2.0) >= 2.62.0
|
BuildRequires: pkgconfig(glib-2.0) >= 2.62.0
|
||||||
BuildRequires: pkgconfig(gmodule-2.0)
|
BuildRequires: pkgconfig(gmodule-2.0)
|
||||||
BuildRequires: pkgconfig(gobject-2.0) >= 2.62
|
BuildRequires: pkgconfig(gobject-2.0) >= 2.62
|
||||||
BuildRequires: pkgconfig(gobject-introspection-1.0)
|
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(libsystemd)
|
||||||
BuildRequires: pkgconfig(lua)
|
BuildRequires: pkgconfig(libudev)
|
||||||
|
BuildRequires: pkgconfig(libva)
|
||||||
|
BuildRequires: pkgconfig(sbc)
|
||||||
|
BuildRequires: pkgconfig(sdl2)
|
||||||
|
BuildRequires: pkgconfig(sndfile)
|
||||||
BuildRequires: pkgconfig(systemd)
|
BuildRequires: pkgconfig(systemd)
|
||||||
#!BuildIgnore: pipewire-session-manager
|
BuildRequires: pkgconfig(vulkan)
|
||||||
# Setup ALSA devices if pipewire handles pulseaudio connections.
|
BuildRequires: pkgconfig(x11)
|
||||||
Requires: (%{name}-audio if pipewire-pulseaudio)
|
BuildRequires: python3-base
|
||||||
Requires: pipewire >= %{pipewire_minimum_version}
|
BuildRequires: python3-lxml
|
||||||
Provides: pipewire-session-manager
|
Requires: pipewire >= 0.3.32
|
||||||
%if 0%{?suse_version} <= 1500
|
%if 0%{?suse_version} <= 1500
|
||||||
BuildRequires: gcc9
|
BuildRequires: gcc9
|
||||||
BuildRequires: gcc9-c++
|
BuildRequires: gcc9-c++
|
||||||
%else
|
%else
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
%endif
|
%endif
|
||||||
|
Provides: pipewire-session-manager
|
||||||
|
|
||||||
%description
|
%description
|
||||||
WirePlumber is a modular session / policy manager for PipeWire and
|
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
|
providing convenience for writing the daemon's modules as well as
|
||||||
external tools for managing PipeWire.
|
external tools for managing PipeWire.
|
||||||
|
|
||||||
%lang_package
|
|
||||||
|
|
||||||
%package audio
|
%package audio
|
||||||
Summary: Session / policy manager implementation for PipeWire (audio support)
|
Summary: Session / policy manager implementation for PipeWire (audio support)
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: %{libwireplumber} = %{version}
|
|
||||||
Requires: %{name} = %{version}
|
Requires: %{name} = %{version}
|
||||||
Recommends: pipewire-pulseaudio
|
Requires: %{libwireplumber} = %{version}
|
||||||
Conflicts: pulseaudio
|
Conflicts: pulseaudio
|
||||||
BuildArch: noarch
|
Recommends: pipewire-pulseaudio
|
||||||
|
Supplements: (pipewire-pulseaudio and wireplumber)
|
||||||
|
|
||||||
%description audio
|
%description audio
|
||||||
WirePlumber is a modular session / policy manager for PipeWire and
|
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
|
%package devel
|
||||||
Summary: Session / policy manager implementation for PipeWire
|
Summary: Session / policy manager implementation for PipeWire
|
||||||
Group: Development/Libraries/C and C++
|
Group: Development/Libraries/C and C++
|
||||||
Requires: %{libwireplumber} = %{version}
|
|
||||||
Requires: %{name} = %{version}
|
Requires: %{name} = %{version}
|
||||||
|
Requires: %{libwireplumber} = %{version}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
WirePlumber is a modular session / policy manager for PipeWire and
|
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.
|
the wireplumber shared library.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%autosetup -N
|
%setup -q
|
||||||
%if 0%{?sle_version} == 150300
|
|
||||||
%patch0 -p1
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%if %{pkg_vcmp meson < 0.56.0}
|
||||||
|
%patch100 -p1
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
pushd src/config/main.lua.d
|
pushd src/config/main.lua.d
|
||||||
@ -158,7 +170,6 @@ export CC=gcc-9
|
|||||||
%install
|
%install
|
||||||
%meson_install
|
%meson_install
|
||||||
%fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html
|
%fdupes -s %{buildroot}/%{_datadir}/doc/pipewire/html
|
||||||
%find_lang %{name} %{?no_lang_C}
|
|
||||||
|
|
||||||
%ifnarch %ix86 ppc64
|
%ifnarch %ix86 ppc64
|
||||||
%check
|
%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-api.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-nodes.so
|
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-nodes.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-default-profile.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-file-monitor-api.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-logind.so
|
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-logind.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-lua-scripting.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-mixer-api.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-portal-permissionstore.so
|
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-portal-permissionstore.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-reserve-device.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-adapter.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-audio-endpoint.so
|
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-audio-endpoint.so
|
||||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-node.so
|
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-si-node.so
|
||||||
@ -205,8 +218,6 @@ export XDG_RUNTIME_DIR=/tmp
|
|||||||
%{_datadir}/wireplumber
|
%{_datadir}/wireplumber
|
||||||
%exclude %{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
%exclude %{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
||||||
|
|
||||||
%files lang -f %{name}.lang
|
|
||||||
|
|
||||||
%files audio
|
%files audio
|
||||||
%{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
%{_datadir}/wireplumber/main.lua.d/90-2-1-enable-alsa.lua
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user