diff --git a/0001-alsa-use-obj_type-as-a-variable-name-to-avoid-shadow.patch b/0001-alsa-use-obj_type-as-a-variable-name-to-avoid-shadow.patch new file mode 100644 index 0000000..b095f79 --- /dev/null +++ b/0001-alsa-use-obj_type-as-a-variable-name-to-avoid-shadow.patch @@ -0,0 +1,39 @@ +From bc6b54229200537863426977c8d121bf9168fb94 Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis +Date: Thu, 7 Jul 2022 20:58:36 +0300 +Subject: [PATCH 1/2] alsa: use "obj_type" as a variable name to avoid + shadowing lua's "type" function + +This causes a crash when running in a VM because the code tries to +execute lua's "type()" and ends up executing the local string variable... + +Fixes: #303 +--- + src/scripts/monitors/alsa.lua | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/scripts/monitors/alsa.lua b/src/scripts/monitors/alsa.lua +index 43fab94..38f847f 100644 +--- a/src/scripts/monitors/alsa.lua ++++ b/src/scripts/monitors/alsa.lua +@@ -49,7 +49,7 @@ function nonempty(str) + return str ~= "" and str or nil + end + +-function createNode(parent, id, type, factory, properties) ++function createNode(parent, id, obj_type, factory, properties) + local dev_props = parent.properties + + -- set the device id and spa factory name; REQUIRED, do not change +@@ -199,7 +199,7 @@ function createDevice(parent, id, factory, properties) + end + end + +-function prepareDevice(parent, id, type, factory, properties) ++function prepareDevice(parent, id, obj_type, factory, properties) + -- ensure the device has an appropriate name + local name = "alsa_card." .. + (properties["device.name"] or +-- +2.36.1 + diff --git a/0002-dbus-fix-crash-when-trying-to-reconnect.patch b/0002-dbus-fix-crash-when-trying-to-reconnect.patch new file mode 100644 index 0000000..7734d84 --- /dev/null +++ b/0002-dbus-fix-crash-when-trying-to-reconnect.patch @@ -0,0 +1,51 @@ +From 842e267af2925c5c0e8ea44b0f3d4e2823f787ce Mon Sep 17 00:00:00 2001 +From: George Kiagiadakis +Date: Wed, 13 Jul 2022 13:38:14 +0300 +Subject: [PATCH 2/2] dbus: fix crash when trying to reconnect + +When coming from on_sync_reconnect, data points to the WpDBus object +instead of the activation transition. + +Fixes: #305 +--- + lib/wp/dbus.c | 20 ++++++++++++++++---- + 1 file changed, 16 insertions(+), 4 deletions(-) + +diff --git a/lib/wp/dbus.c b/lib/wp/dbus.c +index 01a3b21..7c2d023 100644 +--- a/lib/wp/dbus.c ++++ b/lib/wp/dbus.c +@@ -58,14 +58,26 @@ wp_dbus_set_state (WpDbus *self, WpDBusState new_state) + static void + on_got_bus (GObject * obj, GAsyncResult * res, gpointer data) + { +- WpTransition *transition = WP_TRANSITION (data); +- WpDbus *self = wp_transition_get_source_object (transition); ++ WpTransition *transition; ++ WpDbus *self; + g_autoptr (GError) error = NULL; + ++ if (WP_IS_TRANSITION (data)) { ++ // coming from wp_dbus_enable ++ transition = WP_TRANSITION (data); ++ self = wp_transition_get_source_object (transition); ++ } else { ++ // coming from on_sync_reconnect ++ transition = NULL; ++ self = WP_DBUS (data); ++ } ++ + self->connection = g_dbus_connection_new_for_address_finish (res, &error); + if (!self->connection) { +- g_prefix_error (&error, "Failed to connect to bus: "); +- wp_transition_return_error (transition, g_steal_pointer (&error)); ++ if (transition) { ++ g_prefix_error (&error, "Failed to connect to bus: "); ++ wp_transition_return_error (transition, g_steal_pointer (&error)); ++ } + return; + } + +-- +2.36.1 + diff --git a/sources b/sources index 03749fb..59c9298 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (wireplumber-0.5.14.tar.bz2) = 49c2813b6374a327e1d15b79a56aa8a0f31049f4b7f13cc3cc85858dc498099556928d8347080ad3135c7b0575334deeaf343cdec6ecfe6a7734f442b97d4b40 +SHA512 (wireplumber-0.4.11.tar.bz2) = 8a2bf0701f61604d7f85a30d7ac0d51aca4b95c21a335b662a8162bb7531d93f8c327da34ae13263920c863b695a5e0e372b4d17ae8323bf2634065ce93dd3af diff --git a/wireplumber.spec b/wireplumber.spec index 58df00f..5fb639c 100644 --- a/wireplumber.spec +++ b/wireplumber.spec @@ -1,5 +1,5 @@ Name: wireplumber -Version: 0.5.14 +Version: 0.4.11 Release: 2%{?dist} Summary: A modular session/policy manager for PipeWire @@ -8,12 +8,13 @@ URL: https://pipewire.pages.freedesktop.org/wireplumber/ Source0: https://gitlab.freedesktop.org/pipewire/%{name}/-/archive/%{version}/%{name}-%{version}.tar.bz2 ## upstream patches +Patch0001: 0001-alsa-use-obj_type-as-a-variable-name-to-avoid-shadow.patch +Patch0002: 0002-dbus-fix-crash-when-trying-to-reconnect.patch ## upstreamable patches ## fedora patches -BuildRequires: gettext BuildRequires: meson gcc pkgconfig BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gobject-2.0) @@ -52,13 +53,6 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release} The %{name}-devel package contains libraries and header files for developing applications that use %{name}. -%package doc -Summary: Documentation for %{name} -Recommends: %{name}%{?_isa} = %{version}-%{release} - -%description doc -This package contains the documentation for WirePlumber. - %description WirePlumber is a modular session/policy manager for PipeWire and a GObject-based high-level library that wraps PipeWire's API, providing @@ -83,11 +77,6 @@ managing PipeWire. # Create local config skeleton mkdir -p %{buildroot}%{_sysconfdir}/wireplumber/{bluetooth.lua.d,common,main.lua.d,policy.lua.d} -# Create missing empty system config dirs for other packages to drop files in -mkdir -p %{buildroot}%{_datadir}/wireplumber/wireplumber.conf.d - -%find_lang %{name} - %posttrans %systemd_user_post %{name}.service @@ -111,140 +100,23 @@ fi %dir %{_sysconfdir}/wireplumber/main.lua.d %dir %{_sysconfdir}/wireplumber/policy.lua.d %{_datadir}/wireplumber/ -%{_datadir}/zsh/site-functions/_wpctl -%{_datadir}/bash-completion/completions/wpctl %{_userunitdir}/wireplumber.service %{_userunitdir}/wireplumber@.service -%files libs -f %{name}.lang +%files libs %license LICENSE -%dir %{_libdir}/wireplumber-0.5/ -%{_libdir}/wireplumber-0.5/libwireplumber-*.so -%{_libdir}/libwireplumber-0.5.so.* -%{_libdir}/girepository-1.0/Wp-0.5.typelib +%dir %{_libdir}/wireplumber-0.4/ +%{_libdir}/wireplumber-0.4/libwireplumber-*.so +%{_libdir}/libwireplumber-0.4.so.* +%{_libdir}/girepository-1.0/Wp-0.4.typelib %files devel -%{_includedir}/wireplumber-0.5/ -%{_libdir}/libwireplumber-0.5.so -%{_libdir}/pkgconfig/wireplumber-0.5.pc -%{_datadir}/gir-1.0/Wp-0.5.gir - -%files doc -%{_datadir}/doc/wireplumber/ +%{_includedir}/wireplumber-0.4/ +%{_libdir}/libwireplumber-0.4.so +%{_libdir}/pkgconfig/wireplumber-0.4.pc +%{_datadir}/gir-1.0/Wp-0.4.gir %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 0.5.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Wed Apr 01 2026 Wim Taymans - 0.5.14-1 -- wireplumber 0.5.14 - -* Mon Mar 16 2026 Tom Callaway - 0.5.13-2 -- rebuild for lua 5.5 - -* Mon Jan 19 2026 Wim Taymans - 0.5.13-1 -- wireplumber 0.5.13 - -* Sat Jan 17 2026 Fedora Release Engineering - 0.5.12-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Fri Oct 10 2025 Wim Taymans - 0.5.12-1 -- wireplumber 0.5.12 - -* Fri Sep 05 2025 Wim Taymans - 0.5.11-1 -- wireplumber 0.5.11 - -* Fri Jul 25 2025 Fedora Release Engineering - 0.5.10-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Wed May 21 2025 Wim Taymans - 0.5.10-1 -- wireplumber 0.5.10 - -* Mon May 19 2025 Wim Taymans - 0.5.9-1 -- wireplumber 0.5.9 - -* Fri Feb 07 2025 Wim Taymans - 0.5.8-1 -- wireplumber 0.5.8 - -* Sun Jan 19 2025 Fedora Release Engineering - 0.5.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Dec 17 2024 Wim Taymans - 0.5.7-1 -- wireplumber 0.5.7 - -* Sat Jul 20 2024 Fedora Release Engineering - 0.5.5-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Fri Jun 28 2024 Wim Taymans - 0.5.5-1 -- wireplumber 0.5.5 - -* Wed Jun 26 2024 Wim Taymans - 0.5.4-1 -- wireplumber 0.5.4 - -* Sat Jun 01 2024 Wim Taymans - 0.5.3-1 -- wireplumber 0.5.3 - -* Mon Apr 22 2024 Wim Taymans - 0.5.2-1 -- wireplumber 0.5.2 - -* Thu Apr 18 2024 Neal Gompa - 0.5.1-2 -- Backport support for loading external WpConf from disk - -* Tue Apr 02 2024 Wim Taymans - 0.5.1-1 -- wireplumber 0.5.1 - -* Mon Mar 25 2024 Adam Williamson - 0.5.0-2 -- Backport MR #620 to fix issues with bluetooth headsets etc. -- Resolves: rhbz#2269343 - -* Mon Mar 18 2024 Wim Taymans - 0.5.0-1 -- wireplumber 0.5.0 - -* Mon Mar 11 2024 Wim Taymans - 0.4.90-1 -- wireplumber 0.4.90 - -* Thu Jan 25 2024 Wim Taymans - 0.4.81-1 -- wireplumber 0.4.81 - -* Mon Dec 4 2023 Wim Taymans - 0.4.17-1 -- wireplumber 0.4.17 - -* Mon Dec 4 2023 Hector Martin - 0.4.16-2 -- Create and own /usr/share/wireplumber/wireplumber.conf.d - -* Thu Nov 23 2023 Wim Taymans - 0.4.16-1 -- wireplumber 0.4.16 - -* Tue Nov 7 2023 Hector Martin - 0.4.15-2 -- Add upstream patch to enable node hiding - -* Thu Oct 12 2023 Wim Taymans - 0.4.15-1 -- wireplumber 0.4.15 - -* Fri Sep 08 2023 Peter Hutterer -- SPDX migration: mark as done - -* Sat Jul 22 2023 Fedora Release Engineering - 0.4.14-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Thu Mar 9 2023 Wim Taymans - 0.4.14-1 -- wireplumber 0.4.14 - -* Sat Jan 21 2023 Fedora Release Engineering - 0.4.13-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Tue Dec 13 2022 Wim Taymans - 0.4.13-1 -- wireplumber 0.4.13 - -* Fri Oct 07 2022 Wim Taymans - 0.4.12-1 -- wireplumber 0.4.12 - -* Thu Aug 04 2022 Ville-Pekka Vainio - 0.4.11-4 -- Add two patches to fix a rescan loop with Bluetooth - -* Sat Jul 23 2022 Fedora Release Engineering - 0.4.11-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - * Wed Jul 13 2022 Wim Taymans - 0.4.11-2 - Add patch to avoid crashes in VM - Add patch to avoid dbus crash