summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiklāvs Koļesņikovs <89q1r14hd@relay.firefox.com>2022-01-06 20:59:36 +0200
committerSam James <sam@gentoo.org>2022-01-06 20:53:33 +0000
commit9e7b319e7893e19fc4bb30a3351927cf61210d6f (patch)
tree9ec72f14f34f17dfee48759174fbece24820e3d2 /media-video
parentmedia-video/wireplumber: update PW minimum version for live ebuild (diff)
downloadgentoo-9e7b319e7893e19fc4bb30a3351927cf61210d6f.tar.gz
gentoo-9e7b319e7893e19fc4bb30a3351927cf61210d6f.tar.bz2
gentoo-9e7b319e7893e19fc4bb30a3351927cf61210d6f.zip
media-video/wireplumber: bump to 0.4.6 and sync KEYWORDS for live
This commit adds WirePlumber 0.4.6 and synchronizes KEYWORDS of the live ebuild with current keywording state by adding ~sparc (other BE arches are already present), so that it's not accidentally lost. Because one of the patches Gentoo applies to fix BE issues has been upstreamed since 0.4.5 was released, this commit unpacks the old BE fixes archive, removes the upstreamed parts and added the still missing fixes as a regular patch in FILESDIR. They should be upstreamed shortly. Signed-off-by: Niklāvs Koļesņikovs <89q1r14hd@relay.firefox.com> Closes: https://github.com/gentoo/gentoo/pull/23644 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-video')
-rw-r--r--media-video/wireplumber/Manifest1
-rw-r--r--media-video/wireplumber/files/wireplumber-0.4.6-endianness-fixes.patch229
-rw-r--r--media-video/wireplumber/wireplumber-0.4.6.ebuild94
-rw-r--r--media-video/wireplumber/wireplumber-9999.ebuild2
4 files changed, 325 insertions, 1 deletions
diff --git a/media-video/wireplumber/Manifest b/media-video/wireplumber/Manifest
index 55ce53511807..5b354c8484df 100644
--- a/media-video/wireplumber/Manifest
+++ b/media-video/wireplumber/Manifest
@@ -1,2 +1,3 @@
DIST wireplumber-0.4.5-endianness-fixes.patch.bz2 2341 BLAKE2B 225b164a4624128b50fe8691e3577de9aea35e85ed0527c605a617227d96ad49646b658da120d118ab45fd1ed82ed188ad1073b0a8954632ec6501535d533009 SHA512 d5b64612aad6d462ffbc78a24cf50ebde83b29e183a6d169976f5d8fdb0ec3c72984135ee75d52f7d7e8261716482ca277c49cf5824028bfaf33e596857de97f
DIST wireplumber-0.4.5.tar.gz 345035 BLAKE2B 177984901790228d8ddeb8ee2a548eb53db07c8077734590c3f964df36cfa47a4099e049ae9a19a136f4147c75b7122359a73b8387a641768f71484b9c4ab119 SHA512 b0d5962e7a83709cc3115fbf0a04b63660085aeea2ebda6d78d692065ccb193cea8b44bb506fa440cf0b88bfae71a4f69a192cd6cba885ebf3c9270bea50c67a
+DIST wireplumber-0.4.6.tar.gz 357392 BLAKE2B 03942930b1eafb37071c0f38071567fb6117a9a64b91f064982eafa34a8662e1cba26b634db9c74a4e0bd0a8765d9b827ab2afd5e364c6377fa7ecbc7e32c5d1 SHA512 4b4b9aff6e0e6d7c567e20e4df533cfd16287f2e7498ae8533a9a4251066e6d0a9cd99e3da48f525bb2010053f7c9918fe09a5ade39c8830ec08c24292527684
diff --git a/media-video/wireplumber/files/wireplumber-0.4.6-endianness-fixes.patch b/media-video/wireplumber/files/wireplumber-0.4.6-endianness-fixes.patch
new file mode 100644
index 000000000000..9b8bba93a8ab
--- /dev/null
+++ b/media-video/wireplumber/files/wireplumber-0.4.6-endianness-fixes.patch
@@ -0,0 +1,229 @@
+Bunch of patches from https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/49
+Requires pipewire 0.3.42 for 03f0a7c9bac3e61126fc852e543b8ea254471eb7.
+
+--- a/tests/wp/spa-pod.c
++++ b/tests/wp/spa-pod.c
+@@ -6,6 +6,8 @@
+ * SPDX-License-Identifier: MIT
+ */
+
++#include <stdbool.h>
++
+ #include <wp/wp.h>
+
+ static void
+@@ -428,12 +430,12 @@ test_spa_pod_object (void)
+ wp_spa_type_name (wp_spa_pod_get_spa_type (pod)));
+
+ const char *id_name;
+- gboolean mute = TRUE;
++ bool mute = true;
+ float vol = 0.0;
+ gint32 frequency;
+ const char *device;
+ gint64 device_fd;
+- gboolean custom = FALSE;
++ bool custom = false;
+ g_assert_true (wp_spa_pod_get_object (pod,
+ &id_name,
+ "mute", "b", &mute,
+@@ -475,12 +477,12 @@ test_spa_pod_object (void)
+ wp_spa_type_name (wp_spa_pod_get_spa_type (pod)));
+
+ const char *id_name;
+- gboolean mute = TRUE;
++ bool mute = true;
+ float vol = 0.0;
+ gint32 frequency;
+ const char *device;
+ gint64 device_fd;
+- gboolean custom = FALSE;
++ bool custom = false;
+ g_autoptr (WpSpaPodParser) p = wp_spa_pod_parser_new_object (pod, &id_name);
+ g_assert_nonnull (pod);
+ g_assert_true (wp_spa_pod_parser_get (p, "mute", "b", &mute, NULL));
+@@ -603,7 +605,7 @@ test_spa_pod_struct (void)
+ g_assert_true (wp_spa_pod_parser_get (p, "P", &value_object, NULL));
+ g_assert_nonnull (value_object);
+ const char *id_name;
+- gboolean mute = TRUE;
++ bool mute = true;
+
+ g_assert_true (wp_spa_pod_get_object (value_object,
+ &id_name,
+--- a/tests/wp/endpoint.c
++++ b/tests/wp/endpoint.c
+@@ -499,7 +499,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->proxy_endpoint), "Props", NULL);
+@@ -513,7 +513,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 1.0f, 0.001);
+- g_assert_cmpint (boolean_value, ==, FALSE);
++ g_assert_cmpint (boolean_value, ==, false);
+ }
+
+ /* setup change signals */
+@@ -541,7 +541,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->proxy_endpoint), "Props", NULL);
+@@ -556,14 +556,14 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.7f, 0.001);
+- g_assert_cmpint (boolean_value, ==, FALSE);
++ g_assert_cmpint (boolean_value, ==, false);
+ }
+ {
+ g_autoptr (WpIterator) iterator = NULL;
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->impl_endpoint), "Props", NULL);
+@@ -577,14 +577,14 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.7f, 0.001);
+- g_assert_cmpint (boolean_value, ==, FALSE);
++ g_assert_cmpint (boolean_value, ==, false);
+ }
+ {
+ g_autoptr (WpIterator) iterator = NULL;
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (endpoint->node), "Props", NULL);
+@@ -598,7 +598,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.7f, 0.001);
+- g_assert_cmpint (boolean_value, ==, FALSE);
++ g_assert_cmpint (boolean_value, ==, false);
+ }
+
+ /* change control on the impl */
+@@ -618,7 +618,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->proxy_endpoint), "Props", NULL);
+@@ -633,14 +633,14 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.7f, 0.001);
+- g_assert_cmpint (boolean_value, ==, TRUE);
++ g_assert_cmpint (boolean_value, ==, true);
+ }
+ {
+ g_autoptr (WpIterator) iterator = NULL;
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->impl_endpoint), "Props", NULL);
+@@ -654,14 +654,14 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.7f, 0.001);
+- g_assert_cmpint (boolean_value, ==, TRUE);
++ g_assert_cmpint (boolean_value, ==, true);
+ }
+ {
+ g_autoptr (WpIterator) iterator = NULL;
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (endpoint->node), "Props", NULL);
+@@ -675,7 +675,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.7f, 0.001);
+- g_assert_cmpint (boolean_value, ==, TRUE);
++ g_assert_cmpint (boolean_value, ==, true);
+ }
+
+ /* change control on the node */
+@@ -695,7 +695,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->proxy_endpoint), "Props", NULL);
+@@ -709,14 +709,14 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.2f, 0.001);
+- g_assert_cmpint (boolean_value, ==, TRUE);
++ g_assert_cmpint (boolean_value, ==, true);
+ }
+ {
+ g_autoptr (WpIterator) iterator = NULL;
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (fixture->impl_endpoint), "Props", NULL);
+@@ -730,14 +730,14 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.2f, 0.001);
+- g_assert_cmpint (boolean_value, ==, TRUE);
++ g_assert_cmpint (boolean_value, ==, true);
+ }
+ {
+ g_autoptr (WpIterator) iterator = NULL;
+ g_auto (GValue) item = G_VALUE_INIT;
+ g_autoptr (WpSpaPod) pod = NULL;
+ gfloat float_value = 0.0f;
+- gboolean boolean_value = TRUE;
++ bool boolean_value = true;
+
+ iterator = wp_pipewire_object_enum_params_sync (
+ WP_PIPEWIRE_OBJECT (endpoint->node), "Props", NULL);
+@@ -751,7 +751,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data)
+ "mute", "b", &boolean_value,
+ NULL));
+ g_assert_cmpfloat_with_epsilon (float_value, 0.2f, 0.001);
+- g_assert_cmpint (boolean_value, ==, TRUE);
++ g_assert_cmpint (boolean_value, ==, true);
+ }
+
+ /* destroy impl endpoint */
diff --git a/media-video/wireplumber/wireplumber-0.4.6.ebuild b/media-video/wireplumber/wireplumber-0.4.6.ebuild
new file mode 100644
index 000000000000..92ffe0cec0a2
--- /dev/null
+++ b/media-video/wireplumber/wireplumber-0.4.6.ebuild
@@ -0,0 +1,94 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{3,4} )
+
+inherit lua-single meson systemd
+
+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.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+DESCRIPTION="Replacement for pipewire-media-session"
+HOMEPAGE="https://gitlab.freedesktop.org/pipewire/wireplumber"
+
+LICENSE="MIT"
+SLOT="0/0.4"
+IUSE="elogind systemd test"
+
+REQUIRED_USE="
+ ${LUA_REQUIRED_USE}
+ ?? ( elogind 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
+"
+
+DEPEND="
+ ${LUA_DEPS}
+ >=dev-libs/glib-2.62
+ >=media-video/pipewire-0.3.43:=
+ virtual/libc
+ elogind? ( sys-auth/elogind )
+ systemd? ( sys-apps/systemd )
+"
+
+# Any dev-lua/* deps get declared like this inside RDEPEND:
+# $(lua_gen_cond_dep '
+# dev-lua/<NAME>[${LUA_USEDEP}]
+# ')
+RDEPEND="${DEPEND}"
+
+DOCS=( {NEWS,README}.rst )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-endianness-fixes.patch
+)
+
+src_configure() {
+ local emesonargs=(
+ -Ddoc=disabled # Ebuild not wired up yet (Sphinx, Doxygen?)
+ -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)
+ -Dsystemd-system-unit-dir=$(systemd_get_systemunitdir)
+ -Dsystemd-user-unit-dir=$(systemd_get_userunitdir)
+ $(meson_use test tests)
+ )
+
+ meson_src_configure
+}
+
+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
+ ewarn
+}
diff --git a/media-video/wireplumber/wireplumber-9999.ebuild b/media-video/wireplumber/wireplumber-9999.ebuild
index 2371a95d9c68..2e6c068b1ee9 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 ~ppc ~ppc64 ~riscv ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
fi
DESCRIPTION="Replacement for pipewire-media-session"