summaryrefslogtreecommitdiff
path: root/media-video/wireplumber
diff options
context:
space:
mode:
Diffstat (limited to 'media-video/wireplumber')
-rw-r--r--media-video/wireplumber/Manifest16
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.2-bluez-add-basic-check-for-nil-monitor.patch42
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.2-lib-wp-device-demote-missing-SPA-warning-to-message.patch28
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch100
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.2-meson-Build-tests-conditionally.patch41
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.2-v4l-add-basic-check-for-nil-monitor.patch42
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch33
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch27
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch47
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch34
-rw-r--r--media-video/wireplumber/wireplumber-0.4.5-r1.ebuild (renamed from media-video/wireplumber/wireplumber-0.4.2-r1.ebuild)41
-rw-r--r--media-video/wireplumber/wireplumber-0.4.5.ebuild6
-rw-r--r--media-video/wireplumber/wireplumber-9999.ebuild6
13 files changed, 178 insertions, 285 deletions
diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest
index 4d6a61ef5bff..ba91fb439e52 100644
--- a/media-video/wireplumber/Manifest
+++ b/media-video/wireplumber/Manifest
@@ -1,11 +1,9 @@
-AUX wireplumber-0.4.2-bluez-add-basic-check-for-nil-monitor.patch 1495 BLAKE2B 2611a44c7602adf962aea0f4ab1871e662034ae86602c827c62d788ab516c392434bd9e5b6e4e180f322ee0e217eed2f7e78376d47a48f5d00e448e965abe201 SHA512 eaee2bd3e3609f896a297d44107bb527009e3898a9a033e5ce61fc69fedab1571403139c4dd2b9a63f6c3ba9db0da8ca7dcb94ec86e634a45ad44ae22018422f
-AUX wireplumber-0.4.2-lib-wp-device-demote-missing-SPA-warning-to-message.patch 1027 BLAKE2B 26af0a13f5cb588587132b839245bdf76c2974d38e28da9e7a3f5e0bce1635e22ee9336d9bffa80950b858d03c5140394a38578b8602fd95ef84172b207fba93 SHA512 fa63fdf61ead8c6efff1d64da80902bdb0994e298021863d1cc7a1425eae233a429a99cfb80a15d583010ab5b9225f8ad3ca9097242d51d4feb3193c1bc03170
-AUX wireplumber-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch 2567 BLAKE2B adb6cb0d5bdd19bb386838aee18c3f0d2b81194786abcd1e79a27e45492790fbf797e1a92efa11b99405bbac3d339b6e5e4fd761743ff445c21bd92af098dca6 SHA512 90c2adcc4d4e70a3432cb07dd053b37bd925b0807ba49439df41b105c25157a66f5fed5494a072010ff24f2d7b7b065616b99971f17330117b27ea17760cc938
-AUX wireplumber-0.4.2-meson-Build-tests-conditionally.patch 1232 BLAKE2B f828160ff6e86f3a6b693a4e09fcc6f0647d742998777264483906d8974e294fa1fb9522d67c7a12c3893f6182a248cc14c50c785a50115d65a6f0779b615079 SHA512 b89c1519fb10c1b59ea8ed42f24cfff9b03c7024b33fb88ad8d5bfa57042ee6d1baf8f1a17e897b7da97b4fd4b91c04e7a66ee5105762a4ae690998145b20995
-AUX wireplumber-0.4.2-v4l-add-basic-check-for-nil-monitor.patch 1466 BLAKE2B bfbec8088c33d38a637cbdc517c1bad3b472b296c6302872cefaa444b1524248ce73b14aef3b9d1d7ef35528b46cadce8dd9a846c2e9b43d8b232f894c58a839 SHA512 4b654808c2e3c9b5b8f401d2874040e32efaa25bfb76cd5080c529c75922685e3466d570bd7278e2b6079f6fa28134e5b493f3d54c26d06993572f7aa08ce142
-DIST wireplumber-0.4.2.tar.gz 332499 BLAKE2B 4747ae405a824b019415188ff1a586d32fc2e97aba6777cd1e403aadf0e44458156d1f8b6dbc706b812a7ea8c873d0f506f2b42817d1bc5312874530edaf7234 SHA512 8ded43fba5de58068516558918d49c86be7d67330e8a14e735561fefadba5e27952d556987b7304dead52b4e2f72a7d9626da0170e768c4702dd164840b08e3c
+AUX wireplumber-0.4.5-alsa-handle-the-release-requested-signal.patch 1009 BLAKE2B 32d9e359a705db1b60d0ed8c53a6e7c7bab85c73b0e8bce02fac5ee76e090393969a4abe041e585f0b32724f7946540677dd85b5ebdc380e6982823352ecfc75 SHA512 1b9a8aba86969dfb3a0372147596181e34088b42eacd4725df99ec627fa70cbe23d55c56d46f4f1780cb396e40c39720de96ce7fa4893af8e5acf697709614f6
+AUX wireplumber-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch 742 BLAKE2B 480dfc48954a13323bc171e3b4672cedad27fdde05d8f28e263eddffd80c51ecdaa5046c30f57cd1a28a08270e59a38a3202fe496e4af84494d3b52614858880 SHA512 5400a2d4d1e61abe8d6c22c6540a83fafb25b6f4555156b66de9ad8350ce176faed00099c7a40b5286c82644ee09b5890da2521078f91e51d5a66fce7ed82a2a
+AUX wireplumber-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch 1672 BLAKE2B a5d8911754670c9303e35d15df45ecdd5bb4b2d837dea2000ff5e102bfb789ea678ace39356579f0fc86273ec58a7c5cc6eea701c3b7a274d742cddfaa3575d3 SHA512 8605622ed43fef37e1ca49edaae4812618e5ad83904b682b2b903e9de92060fd9b4a0a025d5716cd16339b94ae67b1ee9622949fae73153df0bbc5b9b3c2ebd9
+AUX wireplumber-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch 1203 BLAKE2B 12e07a42d99187cba61d5428c235aba9207bd708e9346d53618b92c0ed06893e6295dbb49b9529e198f53c7ce4b573b897c349de8bb688273656de237ab3bca1 SHA512 4a5bb0a79c507945652a5600304fae1c9bf6fe028053a890c1633be2c82491ada487c9943ac29c6ed26f9e86a5d7f76140ec78bbaa394e41e1f082d50a7b56ef
DIST wireplumber-0.4.5.tar.gz 345035 BLAKE2B 177984901790228d8ddeb8ee2a548eb53db07c8077734590c3f964df36cfa47a4099e049ae9a19a136f4147c75b7122359a73b8387a641768f71484b9c4ab119 SHA512 b0d5962e7a83709cc3115fbf0a04b63660085aeea2ebda6d78d692065ccb193cea8b44bb506fa440cf0b88bfae71a4f69a192cd6cba885ebf3c9270bea50c67a
-EBUILD wireplumber-0.4.2-r1.ebuild 2581 BLAKE2B 95aad145ac9fb82a4264306c1035ffa7ec565f9dd73480020d42b30c87ca4e3a549deb37e5e458c24408ab4cdf03e9ebb98c259c921cb2b0636860aa524e17bc SHA512 6fae3994707b949385fb72f60c771563617fdb2e46e7d0e076b38c96bf7d6308f2c2fcc61cf94311a5786b1a9b1fff9dbac6bc06b7b8c0453848c0fe19cc2679
-EBUILD wireplumber-0.4.5.ebuild 2484 BLAKE2B c1c7818835dc033b59b9807953376bb7a32a662c532962054dfb4c5f0a6d2476e1f88efbe49728bdde44305665be8fad9ad487c7de6789bab4e7e6a8cbf079f7 SHA512 e8952d878d24051e98d5a7827dd571f25643e0d085439b1b312dbe7c50d97908d2ebd80dc1ac1c5f8d4112922a643c08f023a943d2475017952c18d62abead5a
-EBUILD wireplumber-9999.ebuild 2484 BLAKE2B c1c7818835dc033b59b9807953376bb7a32a662c532962054dfb4c5f0a6d2476e1f88efbe49728bdde44305665be8fad9ad487c7de6789bab4e7e6a8cbf079f7 SHA512 e8952d878d24051e98d5a7827dd571f25643e0d085439b1b312dbe7c50d97908d2ebd80dc1ac1c5f8d4112922a643c08f023a943d2475017952c18d62abead5a
+EBUILD wireplumber-0.4.5-r1.ebuild 2830 BLAKE2B c40cc607cf0ad9e563d6e539514ac1875828c54511202a1ac51e585c576db36d127475533a94f3bb40e028860fc237e4564049ef0d526139892f18155412b75b SHA512 a5278113619ee405d88897e55481e4b985f77793667a8e6d0279123a9fa3e170fa05bcdd0f4b0532187777b679eb66717ca6307c19e3143fecedfe4c2e5fe5f4
+EBUILD wireplumber-0.4.5.ebuild 2487 BLAKE2B f0e2ef02c38c1d37656d38fe42515f9a29b4d205f1d6cc77a89e015ed23ef944c1ffac03f1abd7e95bd7408b25b914cebdffb2a71afdcab9b9f3e4f0c2af90ff SHA512 bf2be2d1c6caae3d3e4a994fcb5ff913b539bbcec96b1fc3729cb8971b2eb83adecc50edd9ccf2f15f35dd94a1aeccc89a599fc0f08546ef4a7cadcc4620f367
+EBUILD wireplumber-9999.ebuild 2487 BLAKE2B f0e2ef02c38c1d37656d38fe42515f9a29b4d205f1d6cc77a89e015ed23ef944c1ffac03f1abd7e95bd7408b25b914cebdffb2a71afdcab9b9f3e4f0c2af90ff SHA512 bf2be2d1c6caae3d3e4a994fcb5ff913b539bbcec96b1fc3729cb8971b2eb83adecc50edd9ccf2f15f35dd94a1aeccc89a599fc0f08546ef4a7cadcc4620f367
MISC metadata.xml 673 BLAKE2B 71a411815b61a970653e39cf33ef56e04268805b98d5d5fbc405f4739b71adee9137e0198bf4ebaad208b4e878ab3087766ee223e1e18aaff90fac14d2c5dc23 SHA512 ba6121c54e9f6208b0b5c471790b005c51105d479a0dd2464563b7320530b3d8c176ff38bdb6c760d3f31a18fb993647244d944a222991110f14508ce63c4a96
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
+
diff --git a/media-video/wireplumber/wireplumber-0.4.2-r1.ebuild b/media-video/wireplumber/wireplumber-0.4.5-r1.ebuild
index dbee3e92073a..977f3e5b79a7 100644
--- a/media-video/wireplumber/wireplumber-0.4.2-r1.ebuild
+++ b/media-video/wireplumber/wireplumber-0.4.5-r1.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
else
SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~riscv"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="Replacement for pipewire-media-session"
@@ -21,9 +21,12 @@ HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
LICENSE="MIT"
SLOT="0/0.4"
-IUSE="systemd test"
+IUSE="elogind systemd test"
-REQUIRED_USE="${LUA_REQUIRED_USE}"
+REQUIRED_USE="
+ ${LUA_REQUIRED_USE}
+ ?? ( elogind systemd )
+"
RESTRICT="!test? ( test )"
@@ -37,8 +40,9 @@ BDEPEND="
DEPEND="
${LUA_DEPS}
>=dev-libs/glib-2.62
- >=media-video/pipewire-0.3.32
+ >=media-video/pipewire-0.3.39
virtual/libc
+ elogind? ( sys-auth/elogind )
systemd? ( sys-apps/systemd )
"
@@ -51,11 +55,10 @@ RDEPEND="${DEPEND}"
DOCS=( {NEWS,README}.rst )
PATCHES=(
- "${FILESDIR}"/${PN}-0.4.2-meson-Build-tests-conditionally.patch
- "${FILESDIR}"/${PN}-0.4.2-lua-api-fix-object-constructors-to-fail-gracefully.patch
- "${FILESDIR}"/${PN}-0.4.2-bluez-add-basic-check-for-nil-monitor.patch
- "${FILESDIR}"/${PN}-0.4.2-v4l-add-basic-check-for-nil-monitor.patch
- "${FILESDIR}"/${PN}-0.4.2-lib-wp-device-demote-missing-SPA-warning-to-message.patch
+ "${FILESDIR}"/${PN}-0.4.5-m-reserve-device-replace-the-hash-table-key-on-new-i.patch
+ "${FILESDIR}"/${PN}-0.4.5-policy-node-wait-for-nodes-when-we-become-unlinked.patch
+ "${FILESDIR}"/${PN}-0.4.5-lib-don-t-read-hidden-files-from-the-config-director.patch
+ "${FILESDIR}"/${PN}-0.4.5-alsa-handle-the-release-requested-signal.patch
)
src_configure() {
@@ -63,6 +66,7 @@ src_configure() {
-Dintrospection=disabled # Only used for Sphinx doc generation
-Dsystem-lua=true # We always unbundle everything we can
-Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
+ $(meson_feature elogind)
$(meson_feature systemd)
-Dsystemd-system-service=false # Matches upstream
$(meson_use systemd systemd-user-service)
@@ -76,14 +80,17 @@ src_configure() {
pkg_postinst() {
if systemd_is_booted ; then
- elog "To replace media-session with WirePlumber immediately:"
- elog "systemctl --user disable --now pipewire-media-session.service"
- elog "systemctl --user enable --now wireplumber.service"
+ ewarn "pipewire-media-session.service is no longer installed. You must switch"
+ ewarn "to wireplumber.service user unit before your next logout/reboot:"
+ ewarn "systemctl --user disable pipewire-media-session.service"
+ ewarn "systemctl --user --force enable wireplumber.service"
else
- elog "OpenRC users need to copy ${EROOT}/usr/share/pipewire/pipewire.conf"
- elog "to ${EROOT}/etc/pipewire/pipewire.conf and in it replace"
- elog "${EROOT}/usr/bin/pipewire-media-session with ${EROOT}/usr/bin/wireplumber"
- elog "The switch to WirePlumber will happen the next time pipewire is started."
+ ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher"
+ ewarn "is started (a replacement for directly calling pipewire binary)."
+ ewarn
+ ewarn "Please ensure that ${EROOT}/etc/pipewire/pipewire.conf either does not exist"
+ ewarn "or, if it does exist, that any reference to"
+ ewarn "${EROOT}/usr/bin/pipewire-media-session is commented out (begins with a #)."
fi
- elog
+ ewarn
}
diff --git a/media-video/wireplumber/wireplumber-0.4.5.ebuild b/media-video/wireplumber/wireplumber-0.4.5.ebuild
index 8bac4b024755..4773af0d6c42 100644
--- a/media-video/wireplumber/wireplumber-0.4.5.ebuild
+++ b/media-video/wireplumber/wireplumber-0.4.5.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
else
SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="Replacement for pipewire-media-session"
@@ -75,8 +75,8 @@ pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
ewarn "to wireplumber.service user unit before your next logout/reboot:"
- ewarn "systemctl --user disable --now pipewire-media-session.service"
- ewarn "systemctl --user enable --now wireplumber.service"
+ ewarn "systemctl --user disable pipewire-media-session.service"
+ ewarn "systemctl --user --force enable wireplumber.service"
else
ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher"
ewarn "is started (a replacement for directly calling pipewire binary)."
diff --git a/media-video/wireplumber/wireplumber-9999.ebuild b/media-video/wireplumber/wireplumber-9999.ebuild
index 8bac4b024755..4773af0d6c42 100644
--- a/media-video/wireplumber/wireplumber-9999.ebuild
+++ b/media-video/wireplumber/wireplumber-9999.ebuild
@@ -13,7 +13,7 @@ if [[ ${PV} == 9999 ]]; then
inherit git-r3
else
SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.gz"
- KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
fi
DESCRIPTION="Replacement for pipewire-media-session"
@@ -75,8 +75,8 @@ pkg_postinst() {
if systemd_is_booted ; then
ewarn "pipewire-media-session.service is no longer installed. You must switch"
ewarn "to wireplumber.service user unit before your next logout/reboot:"
- ewarn "systemctl --user disable --now pipewire-media-session.service"
- ewarn "systemctl --user enable --now wireplumber.service"
+ ewarn "systemctl --user disable pipewire-media-session.service"
+ ewarn "systemctl --user --force enable wireplumber.service"
else
ewarn "Switch to WirePlumber will happen the next time gentoo-pipewire-launcher"
ewarn "is started (a replacement for directly calling pipewire binary)."