summaryrefslogtreecommitdiff
path: root/media-video
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2025-03-16 00:29:23 +0000
committerV3n3RiX <venerix@koprulu.sector>2025-03-16 00:29:23 +0000
commit18f850bb4cedde39678b12a67f82f29eef2dab63 (patch)
tree2f545c16653e3357cfdd14bf26b623d62cc18eba /media-video
parentbcdfc870ecd1de7eea04df21ec3a069328b2e29f (diff)
gentoo auto-resync : 16:03:2025 - 00:29:23
Diffstat (limited to 'media-video')
-rw-r--r--media-video/Manifest.gzbin23201 -> 23203 bytes
-rw-r--r--media-video/wireplumber/Manifest4
-rw-r--r--media-video/wireplumber/files/wireplumber-0.5.8-custom-lua-crash.patch72
-rw-r--r--media-video/wireplumber/files/wireplumber-0.5.8-mem-leak.patch28
-rw-r--r--media-video/wireplumber/files/wireplumber-0.5.8-vaargs.patch50
-rw-r--r--media-video/wireplumber/wireplumber-0.5.8-r2.ebuild137
6 files changed, 291 insertions, 0 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz
index 25b1b4bc2b4b..258841b4b1e6 100644
--- a/media-video/Manifest.gz
+++ b/media-video/Manifest.gz
Binary files differ
diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest
index 704b4c360733..d878df0b14eb 100644
--- a/media-video/wireplumber/Manifest
+++ b/media-video/wireplumber/Manifest
@@ -1,9 +1,13 @@
AUX wireplumber-0.5.6-config-disable-sound-server-parts.patch 559 BLAKE2B 8d71fadbfb8b45eeede3c3b322e11205f4b31af098f0798cc9bef2ee92eb74ce5f811233981351097b4da02c70ce42bcd0033fd951a89f8bc8218468d09b235c SHA512 1e6deb4ce2452f22fca6722c22cfa6a61794f8612c9b2baf6ac1a9b4cf6bdae84e3685e1d8957db3121d304fd5842de47a0f319b755dc349f354f55e118d4750
+AUX wireplumber-0.5.8-custom-lua-crash.patch 3153 BLAKE2B 47caa306b96668108c6f4ad8d362249018dc24fabe4b9f815960c89cb824d08b20a321580458cce5164a28e02e082d198fe1885e7d768c9a8df4e4241785b3d7 SHA512 706b0299a738c605b7601da8175f1d5abc7d488033df263951b4132556b8c9f3846bbf50977a390237ab51491063b8e8a47f126c6355476f8d4691ab5b86d102
+AUX wireplumber-0.5.8-mem-leak.patch 1092 BLAKE2B e65f129d107063cef702403fa35f53b120be832838196a7f705dbeb93daf6ceb763100294169e47004d80032ae05ac25944ce4bcec5ff348c95c82b035f33cc4 SHA512 5a48b13a8dc5aad143588e7945c51eeaa9f30089100a9956fa48d73048864289e69346441e09a4c21b1528a0160c2bb95d8f9221a9488647c863d190dafd2d26
+AUX wireplumber-0.5.8-vaargs.patch 2143 BLAKE2B 11f65b5791adfa998ebecf1cff6ee58ae12ef366c5af943d96621c2fc47eae780937a30997b969e6dd96df659f4b3e4a19f6ea673547fad1e8a990ac2b351468 SHA512 0cf5faa45966571bf80869219d0431b02df1a1293158a41b98cab00c0ac41d368af4ebf5239348f44ee7e82d8c0a5a1af4a49f493a962a837fe5009767bf312d
AUX wireplumber.initd 287 BLAKE2B 915e91e428de674b46aab566c6bb62d402dc34c1f16d353150e4b9810356de77e8c9f7c12736bc86330a95481ad32521c6b9b98b5ad48fbc3993f1d09d9c1c59 SHA512 7828ce215125c33fc0c4a5832b72129a61bc704e23328c7126300288d60568350f0b937dbff20eef6942283f01106ead633ca71910c7db0e04ab1ffd5f47d963
DIST wireplumber-0.5.7.tar.bz2 416878 BLAKE2B 0def07be7c3652ef76d4af9167875a0d26440c33ad8427d9594922e34dd44fb422e63861931dd7d8861d97698d8752c01ff3bedd68445009f55c728dfd4224d1 SHA512 a9f47664359ec8e483a3b16a1ba6b6e6bea3187bd17536f1ee2a756a0b217ebc401d4f21044b4c1caac83f08cead71539cf96705968aac80289cfe7e70857c56
DIST wireplumber-0.5.8.tar.bz2 419851 BLAKE2B 2d811534771d57206bcac467b2241e0b6f67259a7399de2d28f758768317d652aa1c9cd2cc5327e3528928e3aa59cef2c94873688d9ecc935aaecb4078a81db9 SHA512 bb3a4a3bc9fd0ece7fccb4efa32d01b02d68738b7766dd4b3310471c4bb98cc499b324ef0643079665d175e3267c1b4e53deef6ebdd9600e49a9560adb22ad88
EBUILD wireplumber-0.5.7.ebuild 3956 BLAKE2B 8665c2eb28b98fec5b5182854a7d4ee9f555d6b4cfa16995dd2014581eff1a9037001be835cee3a063614edede23bd1a0529fd4873525078310551b0f2580b7d SHA512 52d1416cb274a252135bfa4d5e586a79ae64a87caaca9ce08faf082f60d8026190d2fae9e61ee8cb34681eb62c38ce57675095da945ce4ebc55c941778d28d8c
EBUILD wireplumber-0.5.8-r1.ebuild 4041 BLAKE2B f76e30bbd52816c0ddce9848f51648ba769cd71c3de49b8dffca0183eaa7b006e0a187bd561efd3cde838523f5162ccae8288fc0f844cf414086c46d07ee1793 SHA512 78f1a5a6fb4907b059f3891f783b116037e4b3c7b2547be0e81a921b2c356bc66bc2f1490a3daa5404ad6a36a11ae2ff33935b8e4ba7880b24171e0e46fb68df
+EBUILD wireplumber-0.5.8-r2.ebuild 4165 BLAKE2B 0df5ac6a1477a30bef5dfcd273ab2edc7da12e0178b517c9b28d8f01b1da6332bc33a06c37c1099d548c4236b8647bbb56feb8c80099003cea1aed044b2ad7a5 SHA512 eb414489272bcdb94a6e3f7a22cea5eb3499c1a4d0ee442dbde469110424e63205980d6e670bf2ab1e395ecfe2f0737e1e46c6828382b80fdfe6dd35f465a5bd
EBUILD wireplumber-0.5.8.ebuild 3956 BLAKE2B 8665c2eb28b98fec5b5182854a7d4ee9f555d6b4cfa16995dd2014581eff1a9037001be835cee3a063614edede23bd1a0529fd4873525078310551b0f2580b7d SHA512 52d1416cb274a252135bfa4d5e586a79ae64a87caaca9ce08faf082f60d8026190d2fae9e61ee8cb34681eb62c38ce57675095da945ce4ebc55c941778d28d8c
EBUILD wireplumber-9999.ebuild 4041 BLAKE2B f76e30bbd52816c0ddce9848f51648ba769cd71c3de49b8dffca0183eaa7b006e0a187bd561efd3cde838523f5162ccae8288fc0f844cf414086c46d07ee1793 SHA512 78f1a5a6fb4907b059f3891f783b116037e4b3c7b2547be0e81a921b2c356bc66bc2f1490a3daa5404ad6a36a11ae2ff33935b8e4ba7880b24171e0e46fb68df
MISC metadata.xml 719 BLAKE2B 7ad70a19cbc55cb0c399cbc1c8c56a3bab16d2dd477a285a3c142793af3704a8dd6648f6cfa0b9aa6fd8338c9cddd93cc565356a8a2e5031a6874b46ac66c2ee SHA512 a4617e6176a4dab7491103858ed5f663b8dda2a6cd97c348cc274ac959df813a811f70963487ccb670999fd51d107726762d872ce42290d02ea6ed24ea021e55
diff --git a/media-video/wireplumber/files/wireplumber-0.5.8-custom-lua-crash.patch b/media-video/wireplumber/files/wireplumber-0.5.8-custom-lua-crash.patch
new file mode 100644
index 000000000000..92358ded7b0f
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.5.8-custom-lua-crash.patch
@@ -0,0 +1,72 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/32d2abdf34c987df24ba3b073159ea4eee2edf73
+
+From 32d2abdf34c987df24ba3b073159ea4eee2edf73 Mon Sep 17 00:00:00 2001
+From: George Kiagiadakis <george.kiagiadakis@collabora.com>
+Date: Thu, 13 Feb 2025 16:06:29 +0200
+Subject: [PATCH] internal-comp-loader: generate a "provides" for components
+ that don't have one
+
+It is valid for components not to have a "provides" field, but it
+prevents them from being able to have "before" and "after" dependencies.
+With this patch, we generate a hidden "provides" field so that the
+dependencies sorting algorithm can work without issues.
+
+Fixes: #771
+---
+ lib/wp/private/internal-comp-loader.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/lib/wp/private/internal-comp-loader.c b/lib/wp/private/internal-comp-loader.c
+index 45877eb7..842c6934 100644
+--- a/lib/wp/private/internal-comp-loader.c
++++ b/lib/wp/private/internal-comp-loader.c
+@@ -28,7 +28,7 @@ struct _ComponentData
+ grefcount ref;
+ /* an identifier for this component that is understandable by the end user */
+ gchar *printable_id;
+- /* the provided feature name or NULL */
++ /* the provided feature name */
+ gchar *provides;
+ /* the original state of the feature (required / optional / disabled) */
+ FeatureState state;
+@@ -205,7 +205,7 @@ component_data_new_from_json (WpSpaJson * json, WpProperties * features,
+ comp->printable_id = g_strdup_printf ("%s [%s]", comp->provides, comp->type);
+ }
+ } else {
+- comp->provides = NULL;
++ comp->provides = g_strdup_printf ("__anonymous_%p", comp);
+ comp->state = FEATURE_STATE_REQUIRED;
+ comp->printable_id = g_strdup_printf ("[%s: %s]", comp->type, comp->name);
+ }
+@@ -328,7 +328,7 @@ wp_component_array_load_task_get_next_step (WpTransition * transition, guint ste
+ static gboolean
+ component_equals (const ComponentData * comp, const gchar * provides)
+ {
+- return (comp->provides && g_str_equal (provides, comp->provides));
++ return g_str_equal (provides, comp->provides);
+ }
+
+ static inline gboolean
+@@ -358,7 +358,7 @@ sort_components_before_after (WpComponentArrayLoadTask * self, GError ** error)
+ gchar *target_provides = g_ptr_array_index (comp->before, j);
+ for (guint k = 0; k < self->components->len; k++) {
+ ComponentData *target = g_ptr_array_index (self->components, k);
+- if (target->provides && g_str_equal (target_provides, target->provides)) {
++ if (g_str_equal (target_provides, target->provides)) {
+ g_ptr_array_insert (target->after, -1, g_strdup (comp->provides));
+ }
+ }
+@@ -531,9 +531,8 @@ parse_components (WpComponentArrayLoadTask * self, GError ** error)
+ if (comp->state == FEATURE_STATE_REQUIRED)
+ g_ptr_array_add (required_components, component_data_ref (comp));
+
+- if (comp->provides)
+- g_hash_table_insert (self->feat_components, comp->provides,
+- component_data_ref (comp));
++ g_hash_table_insert (self->feat_components, comp->provides,
++ component_data_ref (comp));
+ }
+
+ /* topological sorting based on depth-first search */
+--
+GitLab
diff --git a/media-video/wireplumber/files/wireplumber-0.5.8-mem-leak.patch b/media-video/wireplumber/files/wireplumber-0.5.8-mem-leak.patch
new file mode 100644
index 000000000000..24d6c4c426d0
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.5.8-mem-leak.patch
@@ -0,0 +1,28 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/f3bc7168edeac015154feda01698a9c10f68e1b1
+
+From f3bc7168edeac015154feda01698a9c10f68e1b1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
+Date: Wed, 19 Feb 2025 18:34:58 +0100
+Subject: [PATCH] wpctl: fix default device name leak
+
+The `get-default-configured-node-name` handler returns a copy
+of the name of the node, hence it must be freed.
+---
+ src/tools/wpctl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tools/wpctl.c b/src/tools/wpctl.c
+index 9f507eca..38d730c8 100644
+--- a/src/tools/wpctl.c
++++ b/src/tools/wpctl.c
+@@ -529,7 +529,7 @@ status_run (WpCtl * self)
+ printf (TREE_INDENT_END "Default Configured Devices:\n");
+ if (def_nodes_api) {
+ for (guint i = 0; i < G_N_ELEMENTS (DEFAULT_NODE_MEDIA_CLASSES); i++) {
+- const gchar *name = NULL;
++ g_autofree gchar *name = NULL;
+ g_signal_emit_by_name (def_nodes_api, "get-default-configured-node-name",
+ DEFAULT_NODE_MEDIA_CLASSES[i], &name);
+ if (name)
+--
+GitLab
diff --git a/media-video/wireplumber/files/wireplumber-0.5.8-vaargs.patch b/media-video/wireplumber/files/wireplumber-0.5.8-vaargs.patch
new file mode 100644
index 000000000000..c047ecf7c026
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.5.8-vaargs.patch
@@ -0,0 +1,50 @@
+https://gitlab.freedesktop.org/pipewire/wireplumber/-/commit/5846d12ea156c961772a44163a42987ef35c1ab6
+
+From 5846d12ea156c961772a44163a42987ef35c1ab6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Barnab=C3=A1s=20P=C5=91cze?= <pobrn@protonmail.com>
+Date: Tue, 18 Feb 2025 19:57:22 +0100
+Subject: [PATCH] wpctl: fix types in variadic arguments
+
+`wp_object_manager_add_interest()` passes the format string
+and the arguments after that to `g_variant_new()`, which
+requires a 32-bit integer for "u". Passing a 64-bit integer
+will cause problems on certain ABIs.
+
+Furthermore, remove the metadata related interest declaration
+from `set_default_prepare()` since the "set-default" command
+does not access metadata directly, it uses the "default-nodes-api"
+plugin.
+
+Fixes: 7784cfad92cfa4 ("wpctl: support @DEFAULT_{AUDIO,VIDEO}_{SINK,SOURCE}@ as ID ")
+Fixes #773
+---
+ src/tools/wpctl.c | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/src/tools/wpctl.c b/src/tools/wpctl.c
+index 38d730c8..0e671109 100644
+--- a/src/tools/wpctl.c
++++ b/src/tools/wpctl.c
+@@ -753,7 +753,7 @@ inspect_print_object (WpCtl * self, WpProxy * proxy, guint nest_level)
+ if (cmdline.inspect.show_referenced && nest_level == 0 &&
+ key_is_object_reference (prop_item->key))
+ {
+- guint id = (guint) strtol (prop_item->value, NULL, 10);
++ guint32 id = (guint32) strtol (prop_item->value, NULL, 10);
+ g_autoptr (WpProxy) refer_proxy =
+ wp_object_manager_lookup (self->om, WP_TYPE_GLOBAL_PROXY,
+ WP_CONSTRAINT_TYPE_G_PROPERTY, "bound-id", "=u", id, NULL);
+@@ -833,10 +833,8 @@ set_default_prepare (WpCtl * self, GError ** error)
+ {
+ wp_object_manager_add_interest (self->om, WP_TYPE_NODE,
+ WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY,
+- "object.id", "=u", cmdline.set_default.id,
++ "object.id", "=u", (guint32) cmdline.set_default.id,
+ NULL);
+- wp_object_manager_request_object_features (self->om, WP_TYPE_METADATA,
+- WP_OBJECT_FEATURES_ALL);
+ wp_object_manager_request_object_features (self->om, WP_TYPE_NODE,
+ WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL);
+ return TRUE;
+--
+GitLab
diff --git a/media-video/wireplumber/wireplumber-0.5.8-r2.ebuild b/media-video/wireplumber/wireplumber-0.5.8-r2.ebuild
new file mode 100644
index 000000000000..6647fd71c2e6
--- /dev/null
+++ b/media-video/wireplumber/wireplumber-0.5.8-r2.ebuild
@@ -0,0 +1,137 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# 1. Please regularly check (even at the point of bumping) Fedora's packaging
+# for needed backports at https://src.fedoraproject.org/rpms/wireplumber/tree/rawhide
+#
+# 2. Keep an eye on git master (for both PipeWire and WirePlumber) as things
+# continue to move quickly. It's not uncommon for fixes to be made shortly
+# after releases.
+
+LUA_COMPAT=( lua5-{3,4} )
+
+inherit lua-single meson systemd
+
+DESCRIPTION="Replacement for pipewire-media-session"
+HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://gitlab.freedesktop.org/pipewire/${PN}.git"
+ EGIT_BRANCH="master"
+ inherit git-r3
+else
+ SRC_URI="https://gitlab.freedesktop.org/pipewire/${PN}/-/archive/${PV}/${P}.tar.bz2"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0/0.5"
+IUSE="elogind system-service systemd test"
+
+REQUIRED_USE="
+ ${LUA_REQUIRED_USE}
+ ?? ( elogind systemd )
+ system-service? ( systemd )
+"
+
+RESTRICT="!test? ( test )"
+
+# introspection? ( dev-libs/gobject-introspection ) is valid but likely only used for doc building
+BDEPEND="
+ dev-libs/glib
+ dev-util/gdbus-codegen
+ dev-util/glib-utils
+ sys-devel/gettext
+ test? ( sys-apps/dbus )
+"
+DEPEND="
+ ${LUA_DEPS}
+ >=dev-libs/glib-2.68
+ >=media-video/pipewire-1.0.5-r1:=
+ virtual/libintl
+ elogind? ( sys-auth/elogind )
+ systemd? ( sys-apps/systemd )
+"
+RDEPEND="
+ ${DEPEND}
+ system-service? (
+ acct-user/pipewire
+ acct-group/pipewire
+ )
+"
+
+DOCS=( {NEWS,README}.rst )
+
+PATCHES=(
+ # Defer enabling sound server parts to media-video/pipewire
+ # TODO: Soon, we should be able to migrate to just a dropin at
+ # /usr/share. See https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/652#note_2399735.
+ "${FILESDIR}"/${PN}-0.5.6-config-disable-sound-server-parts.patch
+ # Backports
+ "${FILESDIR}"/${P}-custom-lua-crash.patch
+ "${FILESDIR}"/${P}-mem-leak.patch
+ "${FILESDIR}"/${P}-vaargs.patch
+)
+
+src_configure() {
+ local emesonargs=(
+ -Ddaemon=true
+ -Dtools=true
+ -Dmodules=true
+ # Ebuild not wired up yet (Sphinx, Doxygen?)
+ -Ddoc=disabled
+ # Only used for Sphinx doc generation
+ -Dintrospection=disabled
+ -Dsystem-lua=true
+ -Dsystem-lua-version=$(ver_cut 1-2 $(lua_get_version))
+ $(meson_feature elogind)
+ $(meson_feature systemd)
+ $(meson_use system-service systemd-system-service)
+ $(meson_use systemd systemd-user-service)
+ -Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
+ -Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
+ $(meson_use test tests)
+ $(meson_use test dbus-tests)
+ )
+
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+
+ exeinto /etc/user/init.d
+ newexe "${FILESDIR}"/wireplumber.initd wireplumber
+
+ mv "${ED}"/usr/share/doc/wireplumber/* "${ED}"/usr/share/doc/${PF} || die
+ rmdir "${ED}"/usr/share/doc/wireplumber || die
+}
+
+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 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)."
+ 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
+
+ if use system-service; then
+ ewarn
+ ewarn "WARNING: you have enabled the system-service USE flag, which installs"
+ ewarn "the system-wide systemd units that enable WirePlumber to run as a system"
+ ewarn "service. This is more than likely NOT what you want. You are strongly"
+ ewarn "advised not to enable this mode and instead stick with systemd user"
+ ewarn "units. The default configuration files will likely not work out of"
+ ewarn "box, and you are on your own with configuration."
+ ewarn
+ fi
+}