diff options
author | V3n3RiX <venerix@koprulu.sector> | 2021-12-05 02:47:11 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2021-12-05 02:47:11 +0000 |
commit | 2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch) | |
tree | c8af0fd04194aed03cf067d44e53c7edd3e9ab84 /media-video/wireplumber/files | |
parent | e9d044d4b9b71200a96adfa280848858c0f468c9 (diff) |
gentoo resync : 05.12.2021
Diffstat (limited to 'media-video/wireplumber/files')
9 files changed, 141 insertions, 253 deletions
diff --git a/media-video/wireplumber/files/wireplumber-0.4.2-bluez-add-basic-check-for-nil-monitor.patch b/media-video/wireplumber/files/wireplumber-0.4.2-bluez-add-basic-check-for-nil-monitor.patch deleted file mode 100644 index a519e4212828..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.2-bluez-add-basic-check-for-nil-monitor.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 32d96189b807ab53317a33217c661ce4b1ac8e49 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Nikl=C4=81vs=20Ko=C4=BCes=C5=86ikovs?= - <89q1r14hd@relay.firefox.com> -Date: Wed, 15 Sep 2021 12:21:40 +0300 -Subject: [PATCH 3/5] bluez: add basic check for nil monitor -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If PipeWire is built without Bluetooth support, then - -`monitor = SpaDevice("api.bluez5.enum.dbus", monitor_props)` - -will result in a nil monitor. This commit adds a basic sanity check -to avoid further using the nil variable. - -Thanks-to: Pascal Flöschel (initial bug report) -Thanks-to: George Kiagiadakis <george.kiagiadakis@collabora.com> -Bug: https://bugs.gentoo.org/813043 ---- - src/scripts/monitors/bluez.lua | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/scripts/monitors/bluez.lua b/src/scripts/monitors/bluez.lua -index fc229fa..4066536 100644 ---- a/src/scripts/monitors/bluez.lua -+++ b/src/scripts/monitors/bluez.lua -@@ -129,5 +129,9 @@ local monitor_props = config.properties or {} - monitor_props["api.bluez5.connection-info"] = true - - monitor = SpaDevice("api.bluez5.enum.dbus", monitor_props) --monitor:connect("create-object", createDevice) --monitor:activate(Feature.SpaDevice.ENABLED) -+if monitor then -+ monitor:connect("create-object", createDevice) -+ monitor:activate(Feature.SpaDevice.ENABLED) -+else -+ Log.message("PipeWire's BlueZ SPA missing or broken. Bluetooth not supported.") -+end --- -2.33.0 - diff --git a/media-video/wireplumber/files/wireplumber-0.4.2-lib-wp-device-demote-missing-SPA-warning-to-message.patch b/media-video/wireplumber/files/wireplumber-0.4.2-lib-wp-device-demote-missing-SPA-warning-to-message.patch deleted file mode 100644 index 7653de28bbbb..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.2-lib-wp-device-demote-missing-SPA-warning-to-message.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 05334c1ec72af68f915ea18e32b230857918f600 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Nikl=C4=81vs=20Ko=C4=BCes=C5=86ikovs?= - <89q1r14hd@relay.firefox.com> -Date: Wed, 15 Sep 2021 13:23:45 +0300 -Subject: [PATCH 5/5] lib/wp/device: demote missing SPA warning to message - -Warnings can be scary, so best not to scare users with what's likely -intentional omission of a particular SPA plugin (currently V4L & BlueZ). ---- - lib/wp/device.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/wp/device.c b/lib/wp/device.c -index f0c32af..9a0b995 100644 ---- a/lib/wp/device.c -+++ b/lib/wp/device.c -@@ -617,7 +617,7 @@ wp_spa_device_new_from_spa_factory (WpCore * core, - handle = pw_context_load_spa_handle (pw_context, factory_name, - props ? wp_properties_peek_dict (props) : NULL); - if (!handle) { -- wp_warning ("SPA handle '%s' could not be loaded; is it installed?", -+ wp_message ("SPA handle '%s' could not be loaded; is it installed?", - factory_name); - return NULL; - } --- -2.33.0 - diff --git a/media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch b/media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch deleted file mode 100644 index 2bb3a8d653e8..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 2a5f9c51f2f8dd29cd19a14f165ca2b425a172fc Mon Sep 17 00:00:00 2001 -From: George Kiagiadakis <george.kiagiadakis@collabora.com> -Date: Wed, 15 Sep 2021 12:51:47 +0300 -Subject: [PATCH 2/5] lua/api: fix object constructors to fail gracefully - ---- - modules/module-lua-scripting/api.c | 35 ++++++++++++++++++------------ - 1 file changed, 21 insertions(+), 14 deletions(-) - -diff --git a/modules/module-lua-scripting/api.c b/modules/module-lua-scripting/api.c -index 5691b63..2830477 100644 ---- a/modules/module-lua-scripting/api.c -+++ b/modules/module-lua-scripting/api.c -@@ -836,8 +836,9 @@ device_new (lua_State *L) - - WpDevice *d = wp_device_new_from_factory (get_wp_export_core (L), - factory, properties); -- wplua_pushobject (L, d); -- return 1; -+ if (d) -+ wplua_pushobject (L, d); -+ return d ? 1 : 0; - } - - /* WpSpaDevice */ -@@ -855,8 +856,9 @@ spa_device_new (lua_State *L) - - WpSpaDevice *d = wp_spa_device_new_from_spa_factory (get_wp_export_core (L), - factory, properties); -- wplua_pushobject (L, d); -- return 1; -+ if (d) -+ wplua_pushobject (L, d); -+ return d ? 1 : 0; - } - - static int -@@ -903,8 +905,9 @@ node_new (lua_State *L) - - WpNode *d = wp_node_new_from_factory (get_wp_export_core (L), - factory, properties); -- wplua_pushobject (L, d); -- return 1; -+ if (d) -+ wplua_pushobject (L, d); -+ return d ? 1 : 0; - } - - static int -@@ -1011,8 +1014,9 @@ impl_node_new (lua_State *L) - - WpImplNode *d = wp_impl_node_new_from_pw_factory (get_wp_export_core (L), - factory, properties); -- wplua_pushobject (L, d); -- return 1; -+ if (d) -+ wplua_pushobject (L, d); -+ return d ? 1 : 0; - } - - /* Port */ -@@ -1045,8 +1049,9 @@ link_new (lua_State *L) - } - - WpLink *l = wp_link_new_from_factory (get_wp_core (L), factory, properties); -- wplua_pushobject (L, l); -- return 1; -+ if (l) -+ wplua_pushobject (L, l); -+ return l ? 1 : 0; - } - - /* Client */ -@@ -1124,8 +1129,9 @@ session_item_new (lua_State *L) - { - const char *type = luaL_checkstring (L, 1); - WpSessionItem *si = wp_session_item_make (get_wp_core (L), type); -- wplua_pushobject (L, si); -- return 1; -+ if (si) -+ wplua_pushobject (L, si); -+ return si ? 1 : 0; - } - - static int -@@ -1135,8 +1141,9 @@ session_item_get_associated_proxy (lua_State *L) - const char *typestr = luaL_checkstring (L, 2); - WpProxy *proxy = wp_session_item_get_associated_proxy (si, - parse_gtype (typestr)); -- wplua_pushobject (L, proxy); -- return 1; -+ if (proxy) -+ wplua_pushobject (L, proxy); -+ return proxy ? 1 : 0; - } - - static int --- -2.33.0 - diff --git a/media-video/wireplumber/files/wireplumber-0.4.2-meson-Build-tests-conditionally.patch b/media-video/wireplumber/files/wireplumber-0.4.2-meson-Build-tests-conditionally.patch deleted file mode 100644 index dab53c71bf4a..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.2-meson-Build-tests-conditionally.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 3b24c419b497c283e64df23b3b5eecd4c3d51927 Mon Sep 17 00:00:00 2001 -From: Sam James <sam@gentoo.org> -Date: Tue, 14 Sep 2021 05:07:41 +0100 -Subject: [PATCH 1/5] meson: Build tests conditionally - -It's useful downstream to be able to control building -tests, as there's not much use building them if we're -not going to run them. - -Signed-off-by: Sam James <sam@gentoo.org> ---- - meson.build | 5 ++++- - meson_options.txt | 2 ++ - 2 files changed, 6 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 3712a82..5f87ade 100644 ---- a/meson.build -+++ b/meson.build -@@ -109,4 +109,7 @@ subdir('lib') - subdir('docs') - subdir('modules') - subdir('src') --subdir('tests') -+ -+if get_option('tests') -+ subdir('tests') -+endif -diff --git a/meson_options.txt b/meson_options.txt -index a7a0a89..4008864 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -24,3 +24,5 @@ option('systemd-user-unit-dir', - description : 'Directory for user systemd units') - option('glib-supp', type : 'string', value : '', - description: 'The glib.supp valgrind suppressions file to be used when running valgrind') -+option('tests', type : 'boolean', value : 'true', -+ description : 'Build the test suite') --- -2.33.0 - diff --git a/media-video/wireplumber/files/wireplumber-0.4.2-v4l-add-basic-check-for-nil-monitor.patch b/media-video/wireplumber/files/wireplumber-0.4.2-v4l-add-basic-check-for-nil-monitor.patch deleted file mode 100644 index f7fee3d11e4a..000000000000 --- a/media-video/wireplumber/files/wireplumber-0.4.2-v4l-add-basic-check-for-nil-monitor.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 3b41df35a885b4db04528d839b87e88bf1345240 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Nikl=C4=81vs=20Ko=C4=BCes=C5=86ikovs?= - <89q1r14hd@relay.firefox.com> -Date: Wed, 15 Sep 2021 13:08:04 +0300 -Subject: [PATCH 4/5] v4l: add basic check for nil monitor -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If PipeWire is built without V4L support, then - -`monitor = SpaDevice("api.v4l2.enum.udev", config.properties or {})` - -will result in a nil monitor. This commit adds a basic sanity check -to avoid further using the nil variable. - -Thanks-to: Pascal Flöschel (initial bug report) -Thanks-to: George Kiagiadakis <george.kiagiadakis@collabora.com> -Bug: https://bugs.gentoo.org/813043 ---- - src/scripts/monitors/v4l2.lua | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/src/scripts/monitors/v4l2.lua b/src/scripts/monitors/v4l2.lua -index e698cd7..fd9a20d 100644 ---- a/src/scripts/monitors/v4l2.lua -+++ b/src/scripts/monitors/v4l2.lua -@@ -131,5 +131,9 @@ function createDevice(parent, id, type, factory, properties) - end - - monitor = SpaDevice("api.v4l2.enum.udev", config.properties or {}) --monitor:connect("create-object", createDevice) --monitor:activate(Feature.SpaDevice.ENABLED) -+if monitor then -+ monitor:connect("create-object", createDevice) -+ monitor:activate(Feature.SpaDevice.ENABLED) -+else -+ Log.message("PipeWire's V4L SPA missing or broken. Video4Linux not supported.") -+end --- -2.33.0 - diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch b/media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch new file mode 100644 index 000000000000..511dc6df377e --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch @@ -0,0 +1,33 @@ +From efd24584182903bf5ee4660a3b3360cc47ad895b Mon Sep 17 00:00:00 2001 +From: Wim Taymans <wtaymans@redhat.com> +Date: Tue, 23 Nov 2021 13:17:29 +0100 +Subject: [PATCH] alsa: handle the release-requested signal + +Handle the release-requested signal by destroying the device and +then calling release. + +Fixes pipewire/pipewire#1846 +--- + src/scripts/monitors/alsa.lua | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/scripts/monitors/alsa.lua b/src/scripts/monitors/alsa.lua +index 68c39d8..be4648e 100644 +--- a/src/scripts/monitors/alsa.lua ++++ b/src/scripts/monitors/alsa.lua +@@ -287,6 +287,12 @@ function prepareDevice(parent, id, type, factory, properties) + end + end) + ++ rd:connect("release-requested", function (rd) ++ Log.info("release requested") ++ parent:store_managed_object(id, nil) ++ rd:call("release") ++ end) ++ + if jack_device then + rd:connect("notify::owner-name-changed", function (rd, pspec) + if rd["state"] == "busy" and +-- +2.34.1 + diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch b/media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch new file mode 100644 index 000000000000..1554c65e27da --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch @@ -0,0 +1,27 @@ +From ee5f3f2f195b01fd89ee148da5799b02f99ebb6e Mon Sep 17 00:00:00 2001 +From: Peter Hutterer <peter.hutterer@who-t.net> +Date: Sun, 14 Nov 2021 19:44:30 +1000 +Subject: [PATCH 3/3] lib: don't read hidden files from the config directory + +Fixes #104 +--- + lib/wp/wp.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/lib/wp/wp.c b/lib/wp/wp.c +index ffdff1a..c356133 100644 +--- a/lib/wp/wp.c ++++ b/lib/wp/wp.c +@@ -315,6 +315,9 @@ wp_new_files_iterator (WpLookupDirs dirs, const gchar *subdir, + if (dir) { + const gchar *filename; + while ((filename = g_dir_read_name (dir))) { ++ if (filename[0] == '.') ++ continue; ++ + if (suffix && !g_str_has_suffix (filename, suffix)) + continue; + +-- +2.34.0 + diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch b/media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch new file mode 100644 index 000000000000..70d69093d082 --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch @@ -0,0 +1,47 @@ +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 3/3] 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 d8e4e09..68df6ee 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); + } +-- +2.34.0 + diff --git a/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch b/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch new file mode 100644 index 000000000000..0ce16a647697 --- /dev/null +++ b/media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch @@ -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 2/3] 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 5029d1b..445b1a7 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"] +-- +2.34.0 + |