forked from pool/wireplumber
Accepting request 926162 from home:alarrosa:branches:multimedia:libs
- Add patch from upstream to fix a crash when there's a link error (glfo#pipewire/wireplumber#76): * 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch - Update to version 0.4.4: * Highlights: - Implemented linking nodes in passthrough mode, which enables encoded iec958 / dsd audio passthrough - Streams are now sent an error if it was not possible to link them to a target (#63) - When linking nodes where at least one of them has an unpositioned channel layout, the other one is not reconfigured to match the channel layout; it is instead linked with a best effort port matching logic - Output route switches automatically to the latest one that has become available (#69) - Policy now respects the 'node.exclusive' and 'node.passive' properties - Many other minor policy fixes for a smoother desktop usage experience * API: - Fixed an issue with the LocalModule() constructor not accepting nil as well as the properties table properly - Added WpClient.send_error(), WpSpaPod.fixate() and - WpSpaPod.filter() (both in C and Lua) * Misc: - Bumped meson version requirement to 0.56 to be able to use meson.project_{source,build}_root() and ease integration with pipewire's build system as a subproject - wireplumber.service is now an alias to OBS-URL: https://build.opensuse.org/request/show/926162 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/wireplumber?expand=0&rev=5
This commit is contained in:
parent
dfbdbf6646
commit
ee9013bfde
@ -0,0 +1,36 @@
|
||||
From 6e67000d5e42fc30e6f7ff3ec5544e0be8dcbf00 Mon Sep 17 00:00:00 2001
|
||||
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
|
||||
Date: Sat, 16 Oct 2021 09:51:00 +0300
|
||||
Subject: [PATCH] si-standard-link: fix crash after returning a link error
|
||||
|
||||
If one link fails, the activation transition will return, but then
|
||||
other links will continue to call the callback and try to access
|
||||
the now invalid activation transition. With this change, the callback
|
||||
is bound to the lifetime of the transition and will stop being called
|
||||
after the transition returns
|
||||
|
||||
Fixes #76
|
||||
---
|
||||
modules/module-si-standard-link.c | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/modules/module-si-standard-link.c b/modules/module-si-standard-link.c
|
||||
index 5dda0581..95ec7ca5 100644
|
||||
--- a/modules/module-si-standard-link.c
|
||||
+++ b/modules/module-si-standard-link.c
|
||||
@@ -310,9 +310,10 @@ create_links (WpSiStandardLink * self, WpTransition * transition,
|
||||
|
||||
/* activate to ensure it is created without errors */
|
||||
self->n_async_ops_wait++;
|
||||
- wp_object_activate (WP_OBJECT (link),
|
||||
+ wp_object_activate_closure (WP_OBJECT (link),
|
||||
WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL, NULL,
|
||||
- (GAsyncReadyCallback) on_link_activated, transition);
|
||||
+ g_cclosure_new_object (
|
||||
+ (GCallback) on_link_activated, G_OBJECT (transition)));
|
||||
}
|
||||
g_variant_iter_free (iter);
|
||||
return self->node_links->len > 0;
|
||||
--
|
||||
GitLab
|
||||
|
2
_service
2
_service
@ -4,7 +4,7 @@
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="changesgenerate">enable</param>
|
||||
<param name="revision">0.4.1</param>
|
||||
<param name="revision">0.4.4</param>
|
||||
<param name="versionformat">@PARENT_TAG@</param>
|
||||
<!--
|
||||
<param name="versionprefix">0.4.1+git</param>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<servicedata>
|
||||
<service name="tar_scm">
|
||||
<param name="url">https://gitlab.freedesktop.org/pipewire/wireplumber.git</param>
|
||||
<param name="changesrevision">b741b2c8c876585eabd6f4d62d62af5b46c0afd0</param></service></servicedata>
|
||||
<param name="changesrevision">9e11aa5b8b07d4b98da9890898e3f5b697c5fe97</param></service></servicedata>
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:34a84b734c6582574791af3c9bc8fedc19aeada6f768b00974ee7af0d0673ff6
|
||||
size 1711116
|
3
wireplumber-0.4.4.obscpio
Normal file
3
wireplumber-0.4.4.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cd24b96fc9e4f4775dd501bff07b79636f54030e40c717edce35bbf586b7b7ad
|
||||
size 1755660
|
@ -1,3 +1,157 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Oct 19 07:25:22 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
- Add patch from upstream to fix a crash when there's a link error
|
||||
(glfo#pipewire/wireplumber#76):
|
||||
* 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Oct 15 15:55:46 UTC 2021 - alarrosa@suse.com
|
||||
|
||||
- Update to version 0.4.4:
|
||||
* Highlights:
|
||||
- Implemented linking nodes in passthrough mode, which enables
|
||||
encoded iec958 / dsd audio passthrough
|
||||
- Streams are now sent an error if it was not possible to link
|
||||
them to a target (#63)
|
||||
- When linking nodes where at least one of them has an
|
||||
unpositioned channel layout, the other one is not
|
||||
reconfigured to match the channel layout; it is instead
|
||||
linked with a best effort port matching logic
|
||||
- Output route switches automatically to the latest one that
|
||||
has become available (#69)
|
||||
- Policy now respects the 'node.exclusive' and 'node.passive'
|
||||
properties
|
||||
- Many other minor policy fixes for a smoother desktop usage
|
||||
experience
|
||||
* API:
|
||||
- Fixed an issue with the LocalModule() constructor not
|
||||
accepting nil as well as the properties table properly
|
||||
- Added WpClient.send_error(), WpSpaPod.fixate() and
|
||||
- WpSpaPod.filter() (both in C and Lua)
|
||||
* Misc:
|
||||
- Bumped meson version requirement to 0.56 to be able to use
|
||||
meson.project_{source,build}_root() and ease integration with
|
||||
pipewire's build system as a subproject
|
||||
- wireplumber.service is now an alias to
|
||||
pipewire-session-manager.service
|
||||
- Loading the logind module no longer fails if it was not found
|
||||
on the system; there is only a message printed in the output
|
||||
- The logind module can now be compiled with elogind (#71)
|
||||
- Improvements in wp-uninstalled.sh, mostly to ease its
|
||||
integration with pipewire's build system when wireplumber is
|
||||
build as a subproject
|
||||
- The format of audio nodes is now selected using the same
|
||||
algorithm as in media-session
|
||||
- Fixed a nasty segfault that appeared in 0.4.3 due to a typo
|
||||
(#72)
|
||||
- Fixed a re-entrancy issue in the wplua runtime (#73)
|
||||
|
||||
- Update to version 0.4.3:
|
||||
* Fixes:
|
||||
- Implemented logind integration to start the bluez monitor
|
||||
only on the WirePlumber instance that is running on the
|
||||
active seat; this fixes a bunch of startup warnings and the
|
||||
disappearance of HSP/HFP nodes after login (#54)
|
||||
- WirePlumber is now launched with GIO_USE_VFS=local to avoid
|
||||
strange D-Bus interference when the user session is
|
||||
restarted, which previously resulted in WirePlumber being
|
||||
terminated with SIGTERM and never recovering (#48)
|
||||
- WirePlumber now survives a restart of the D-Bus service,
|
||||
reconnecting to the bus and reclaiming the bus services that
|
||||
it needs (#55)
|
||||
- Implemented route-settings metadata, which fixes storing
|
||||
volume for the "System Sounds" in GNOME (#51)
|
||||
- Monitor sources can now be selected as the default source
|
||||
(#60)
|
||||
- Refactored some policy logic to allow linking to monitors;
|
||||
the policy now also respects "stream.capture.sink" property
|
||||
of streams which declares that the stream wants to be linked
|
||||
to a monitor (#66)
|
||||
- Policy now cleans up 'target.node' metadata so that streams
|
||||
get to follow the default source/sink again after the default
|
||||
was changed to match the stream's currently configured target
|
||||
(#65)
|
||||
- Fixed configuring virtual sources (#57)
|
||||
- Device monitors now do not crash if a SPA plugin is missing;
|
||||
instead, they print a warning to help users identify what
|
||||
they need to install (!214)
|
||||
- Fixed certain "proxy activation failed" warnings (#44)
|
||||
- iec958 codec configuration is now saved and restored properly
|
||||
(!228)
|
||||
- Fixed some logging issues with the latest version of pipewire
|
||||
(!227, !232)
|
||||
- Policy now respects the "node.link-group" property, which
|
||||
fixes issues with filter-chain and other virtual sources &
|
||||
sinks (#47)
|
||||
- Access policy now grants full permissions to flatpak
|
||||
"Manager" apps (#59)
|
||||
* Policy:
|
||||
- Added support for 'no-dsp' mode, which allows streaming audio
|
||||
using the format of the device instead of the standard float
|
||||
32-bit planar format (!225)
|
||||
* Library:
|
||||
- WpImplMetadata is now implemented using pw_impl_metadata
|
||||
instead of using its own implementation (#52)
|
||||
- Added support for custom object property IDs in WpSpaPod
|
||||
(#53)
|
||||
* Misc:
|
||||
- Added a script to load the libcamera monitor (!231)
|
||||
- Added option to disable building unit tests (!209)
|
||||
- WirePlumber will now fail to start with a warning if
|
||||
pipewire-media-session is also running in the system (#56)
|
||||
- The bluez monitor configuration was updated to match the
|
||||
latest one in pipewire-media-session (!224)
|
||||
|
||||
- Update to version 0.4.2:
|
||||
* Highlights:
|
||||
- Requires PipeWire 0.3.32 or later at runtime
|
||||
- Configuration files are now installed in
|
||||
$PREFIX/share/wireplumber, along with scripts, following the
|
||||
paradigm of PipeWire
|
||||
- State files are now stored in $XDG_STATE_HOME instead of
|
||||
$XDG_CONFIG_HOME
|
||||
- Added new file-monitor-api module, which allows Lua scripts
|
||||
to watch the filesystem for changes, using inotify
|
||||
- Added monitor for MIDI devices
|
||||
- Added a system-lua-version meson option that allows
|
||||
distributors to choose which Lua version to build against
|
||||
(auto, 5.3 or 5.4)
|
||||
- wpipc has been removed and split out to a separate project,
|
||||
https://git.automotivelinux.org/src/pipewire-ic-ipc/
|
||||
* Library:
|
||||
- A new WpImplModule class has been added; this allows loading
|
||||
a PipeWire module in the WirePlumber process space, keeping a
|
||||
handle that can be used to unload that module later. This is
|
||||
useful for loading filters, network sources/sinks, etc...
|
||||
- State files can now store keys that contain certain
|
||||
GKeyFile-reserved characters, such as [, ], = and space; this
|
||||
fixes storing stream volume state for streams using
|
||||
PipeWire's ALSA compatibility PCM plugin
|
||||
- WpProperties now uses a boxed WpPropertiesItem type in its
|
||||
iterators so that these iterators can be used with g-i
|
||||
bindings
|
||||
- Added API to lookup configuration and script files from
|
||||
multiple places in the filesystem
|
||||
* Lua:
|
||||
- A LocalModule API has been added to reflect the functionality
|
||||
offered by WpImplModule in C
|
||||
- The Node API now has a complete set of methods to reflect the
|
||||
methods of WpNode
|
||||
- Added Port.get_direction()
|
||||
- Added not-equals to the possible constraint verbs
|
||||
- Debug.dump_table now sorts keys before printing the table
|
||||
* Misc:
|
||||
- Tests no longer accidentally create files in $HOME; all
|
||||
transient files that are used for testing are now created
|
||||
in the build directory, except for sockets which are created
|
||||
in /tmp due to the 108-character limitation in socket paths
|
||||
- Tests that require optional SPA plugins are now skipped if
|
||||
those SPA plugins are not installed
|
||||
- Added a nice summary output at the end of meson configuration
|
||||
- Documented the Lua ObjectManager / Interest / Constraint APIs
|
||||
- Fixed some memory leaks
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 14 14:57:37 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
name: wireplumber
|
||||
version: 0.4.1
|
||||
mtime: 1624962439
|
||||
commit: b741b2c8c876585eabd6f4d62d62af5b46c0afd0
|
||||
version: 0.4.4
|
||||
mtime: 1634306082
|
||||
commit: 9e11aa5b8b07d4b98da9890898e3f5b697c5fe97
|
||||
|
||||
|
@ -21,21 +21,22 @@
|
||||
%define sover 0
|
||||
%define libwireplumber libwireplumber-%{apiver_str}-%{sover}
|
||||
Name: wireplumber
|
||||
Version: 0.4.1
|
||||
Version: 0.4.4
|
||||
Release: 0
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
License: MIT
|
||||
Group: Development/Libraries/C and C++
|
||||
URL: https://gitlab.freedesktop.org/pipewire/wireplumber
|
||||
Source0: %{name}-%{version}.tar.xz
|
||||
Source0: wireplumber-%{version}.tar.xz
|
||||
Patch0: 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch
|
||||
BuildRequires: cmake
|
||||
BuildRequires: cpptoml-devel
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: graphviz
|
||||
BuildRequires: meson >= 0.54.0
|
||||
BuildRequires: pipewire >= 0.3.20
|
||||
BuildRequires: pipewire-devel >= 0.3.20
|
||||
BuildRequires: meson >= 0.56.0
|
||||
BuildRequires: pipewire >= 0.3.32
|
||||
#!BuildIgnore: pipewire-session-manager
|
||||
BuildRequires: pipewire-spa-plugins-0_2
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: xmltoman
|
||||
@ -58,7 +59,7 @@ BuildRequires: pkgconfig(jack) >= 1.9.10
|
||||
BuildRequires: pkgconfig(libavcodec)
|
||||
BuildRequires: pkgconfig(libavfilter)
|
||||
BuildRequires: pkgconfig(libavformat)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3)
|
||||
BuildRequires: pkgconfig(libpipewire-0.3) >= 0.3.32
|
||||
BuildRequires: pkgconfig(libpulse)
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
BuildRequires: pkgconfig(libudev)
|
||||
@ -71,7 +72,7 @@ BuildRequires: pkgconfig(vulkan)
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: python3-base
|
||||
BuildRequires: python3-lxml
|
||||
Requires: pipewire >= 0.3.20
|
||||
Requires: pipewire >= 0.3.32
|
||||
%if 0%{?suse_version} <= 1500
|
||||
BuildRequires: gcc9
|
||||
BuildRequires: gcc9-c++
|
||||
@ -90,6 +91,7 @@ external tools for managing PipeWire.
|
||||
Summary: Session / policy manager implementation for PipeWire
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{libwireplumber} = %{version}
|
||||
|
||||
%description devel
|
||||
WirePlumber is a modular session / policy manager for PipeWire and
|
||||
@ -125,13 +127,16 @@ This package provides the GObject Introspection bindings for
|
||||
the wireplumber shared library.
|
||||
|
||||
%prep
|
||||
%autosetup
|
||||
%setup -n wireplumber-%{version}
|
||||
%patch0 -p1
|
||||
|
||||
%build
|
||||
%if %{pkg_vcmp gcc < 8}
|
||||
export CC=gcc-9
|
||||
%endif
|
||||
%meson -Ddoc=disabled -Dsystem-lua=true
|
||||
%meson -Ddoc=disabled \
|
||||
-Dsystem-lua=true \
|
||||
-Delogind=disabled
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
@ -151,17 +156,19 @@ export XDG_RUNTIME_DIR=/tmp
|
||||
%{_bindir}/wireplumber
|
||||
%{_bindir}/wpctl
|
||||
%{_bindir}/wpexec
|
||||
%config %{_sysconfdir}/wireplumber/
|
||||
%dir %{_libdir}/wireplumber-%{apiver}
|
||||
%{_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
|
||||
%{_libdir}/wireplumber-%{apiver}/libwireplumber-module-metadata.so
|
||||
%{_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
|
||||
|
Loading…
Reference in New Issue
Block a user