diff options
author | V3n3RiX <venerix@koprulu.sector> | 2025-03-16 00:29:23 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2025-03-16 00:29:23 +0000 |
commit | 18f850bb4cedde39678b12a67f82f29eef2dab63 (patch) | |
tree | 2f545c16653e3357cfdd14bf26b623d62cc18eba /media-video | |
parent | bcdfc870ecd1de7eea04df21ec3a069328b2e29f (diff) |
gentoo auto-resync : 16:03:2025 - 00:29:23
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/Manifest.gz | bin | 23201 -> 23203 bytes | |||
-rw-r--r-- | media-video/wireplumber/Manifest | 4 | ||||
-rw-r--r-- | media-video/wireplumber/files/wireplumber-0.5.8-custom-lua-crash.patch | 72 | ||||
-rw-r--r-- | media-video/wireplumber/files/wireplumber-0.5.8-mem-leak.patch | 28 | ||||
-rw-r--r-- | media-video/wireplumber/files/wireplumber-0.5.8-vaargs.patch | 50 | ||||
-rw-r--r-- | media-video/wireplumber/wireplumber-0.5.8-r2.ebuild | 137 |
6 files changed, 291 insertions, 0 deletions
diff --git a/media-video/Manifest.gz b/media-video/Manifest.gz Binary files differindex 25b1b4bc2b4b..258841b4b1e6 100644 --- a/media-video/Manifest.gz +++ b/media-video/Manifest.gz 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 +} |