diff options
author | Mart Raudsepp <leio@gentoo.org> | 2024-04-30 10:50:05 +0300 |
---|---|---|
committer | Mart Raudsepp <leio@gentoo.org> | 2024-04-30 11:23:48 +0300 |
commit | 15881aaf14c79dc8bd18060646ec2d69e556fd07 (patch) | |
tree | 3cf27add568c7e8ac1b81f80f40a4e4e869bb6e7 /media-libs/gstreamer | |
parent | media-libs/gst-plugins-base: drop 1.20.5, 1.20.6 (diff) | |
download | gentoo-15881aaf14c79dc8bd18060646ec2d69e556fd07.tar.gz gentoo-15881aaf14c79dc8bd18060646ec2d69e556fd07.tar.bz2 gentoo-15881aaf14c79dc8bd18060646ec2d69e556fd07.zip |
media-libs/gstreamer: drop 1.20.5, 1.20.6
Bug: https://bugs.gentoo.org/917791
Signed-off-by: Mart Raudsepp <leio@gentoo.org>
Diffstat (limited to 'media-libs/gstreamer')
-rw-r--r-- | media-libs/gstreamer/Manifest | 2 | ||||
-rw-r--r-- | media-libs/gstreamer/files/gstreamer-1.20.5-tests-race.patch | 293 | ||||
-rw-r--r-- | media-libs/gstreamer/gstreamer-1.20.5.ebuild | 76 | ||||
-rw-r--r-- | media-libs/gstreamer/gstreamer-1.20.6.ebuild | 72 |
4 files changed, 0 insertions, 443 deletions
diff --git a/media-libs/gstreamer/Manifest b/media-libs/gstreamer/Manifest index 0240c9b8ad80..4e39f93eb248 100644 --- a/media-libs/gstreamer/Manifest +++ b/media-libs/gstreamer/Manifest @@ -1,3 +1 @@ -DIST gstreamer-1.20.5.tar.xz 2690968 BLAKE2B cca6385b1fcc10928ad19e587ebb6ce202097f4a33d79555c969d3906dacc7e5074fc8f42a0566e40aa333502764ad0b491d610c05ef1921ad370bf5f5883afd SHA512 90c5f5865877170bb0dc570e61c22c27dea5adae2d9c304227da266b5b5b2eccd98ed21943f14bb5dfe169f4e020b8ac457a5d540363dfe2547180f34a3c7b29 -DIST gstreamer-1.20.6.tar.xz 2699648 BLAKE2B e475a7ef419d1b3588bf37f3d5fadbe4ca307b6915496d8da9535a9586f24ddacd338e54001ce30c666786493b28c2841c8a7fc8a36e5a678d846eeccc3979dc SHA512 eefd2932feb6c6c50eb69dd4831f4e4fe63c7f852050ddce0f447b0b54df2e2e5f81b6c1fefe295e2c771f2accef62aaef6aef3bda8395a1b75c84b9916d7795 DIST gstreamer-1.22.11.tar.xz 1801248 BLAKE2B 856342994bc8750598cb256313151355e7c58d751214c168c53ba831cfcdf3ab789a192473ba0e0645df8cb7cb9e625348b18cfe83d839f1f231f8f746877f49 SHA512 8976cebd2cbac3ef31ee6163d2c5264be7d10d54ab9fe6f0b2317d7d0380420ef2378e1b476af09f1e6b203e3eafcda88fc08bb2f550a6f411d8670dec04843e diff --git a/media-libs/gstreamer/files/gstreamer-1.20.5-tests-race.patch b/media-libs/gstreamer/files/gstreamer-1.20.5-tests-race.patch deleted file mode 100644 index 05b183ec3054..000000000000 --- a/media-libs/gstreamer/files/gstreamer-1.20.5-tests-race.patch +++ /dev/null @@ -1,293 +0,0 @@ -https://bugs.gentoo.org/888986 -https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/ccd582c3321312fe96b28ce90fe6f2fd7adfa058 - -From ccd582c3321312fe96b28ce90fe6f2fd7adfa058 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Tue, 21 Jun 2022 11:51:35 +0300 -Subject: [PATCH] bin: Fix race conditions in tests - -The latency messages are non-deterministic and can arrive before/after -async-done or during state-changes as they are posted by e.g. sinks from -their streaming thread but bins are finishing asynchronous state changes -from a secondary helper thread. - -To solve this, expect latency messages at any time and assert that we -receive one at some point during the test. - -Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3647> ---- a/tests/check/gst/gstbin.c -+++ b/tests/check/gst/gstbin.c -@@ -27,50 +27,95 @@ - #include <gst/base/gstbasesrc.h> - - static void --pop_async_done (GstBus * bus) -+pop_async_done (GstBus * bus, gboolean * had_latency) - { - GstMessage *message; -+ GstMessageType types = GST_MESSAGE_ASYNC_DONE; -+ -+ if (!*had_latency) -+ types |= GST_MESSAGE_LATENCY; - - GST_DEBUG ("popping async-done message"); -- message = gst_bus_poll (bus, GST_MESSAGE_ASYNC_DONE, -1); - -- fail_unless (message && GST_MESSAGE_TYPE (message) -- == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE"); -+ do { -+ message = gst_bus_poll (bus, types, -1); - -- gst_message_unref (message); -- GST_DEBUG ("popped message"); -+ fail_unless (message); -+ GST_DEBUG ("popped message %s", -+ gst_message_type_get_name (GST_MESSAGE_TYPE (message))); -+ -+ if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_LATENCY) { -+ fail_unless (*had_latency == FALSE); -+ *had_latency = TRUE; -+ gst_clear_message (&message); -+ types &= ~GST_MESSAGE_LATENCY; -+ continue; -+ } -+ -+ fail_unless (GST_MESSAGE_TYPE (message) -+ == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE"); -+ -+ gst_clear_message (&message); -+ break; -+ } while (TRUE); - } - - static void --pop_latency (GstBus * bus) -+pop_latency (GstBus * bus, gboolean * had_latency) - { - GstMessage *message; - -- GST_DEBUG ("popping async-done message"); -+ if (*had_latency) -+ return; -+ -+ GST_DEBUG ("popping latency message"); - message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, -1); - -- fail_unless (message && GST_MESSAGE_TYPE (message) -+ fail_unless (message); -+ fail_unless (GST_MESSAGE_TYPE (message) - == GST_MESSAGE_LATENCY, "did not get GST_MESSAGE_LATENCY"); - -- gst_message_unref (message); -- GST_DEBUG ("popped message"); -+ GST_DEBUG ("popped message %s", -+ gst_message_type_get_name (GST_MESSAGE_TYPE (message))); -+ gst_clear_message (&message); -+ -+ *had_latency = TRUE; - } - - static void --pop_state_changed (GstBus * bus, int count) -+pop_state_changed (GstBus * bus, int count, gboolean * had_latency) - { - GstMessage *message; -- -+ GstMessageType types = GST_MESSAGE_STATE_CHANGED; - int i; - -+ if (!*had_latency) -+ types |= GST_MESSAGE_LATENCY; -+ - GST_DEBUG ("popping %d messages", count); - for (i = 0; i < count; ++i) { -- message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1); -- -- fail_unless (message && GST_MESSAGE_TYPE (message) -- == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED"); -- -- gst_message_unref (message); -+ do { -+ message = gst_bus_poll (bus, types, -1); -+ -+ fail_unless (message); -+ GST_DEBUG ("popped message %s", -+ gst_message_type_get_name (GST_MESSAGE_TYPE (message))); -+ -+ if (GST_MESSAGE_TYPE (message) == GST_MESSAGE_LATENCY) { -+ fail_unless (*had_latency == FALSE); -+ *had_latency = TRUE; -+ gst_clear_message (&message); -+ types &= ~GST_MESSAGE_LATENCY; -+ continue; -+ } -+ -+ fail_unless (GST_MESSAGE_TYPE (message) -+ == GST_MESSAGE_STATE_CHANGED, -+ "did not get GST_MESSAGE_STATE_CHANGED"); -+ -+ gst_message_unref (message); -+ break; -+ } while (TRUE); - } - GST_DEBUG ("popped %d messages", count); - } -@@ -538,6 +583,7 @@ GST_START_TEST (test_message_state_changed_children) - GstBus *bus; - GstStateChangeReturn ret; - GstState current, pending; -+ gboolean had_latency = FALSE; - - pipeline = GST_PIPELINE (gst_pipeline_new (NULL)); - fail_unless (pipeline != NULL, "Could not create pipeline"); -@@ -576,7 +622,7 @@ GST_START_TEST (test_message_state_changed_children) - ASSERT_OBJECT_REFCOUNT (sink, "sink", 2); - ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 2); - -- pop_state_changed (bus, 3); -+ pop_state_changed (bus, 3, &had_latency); - fail_if (gst_bus_have_pending (bus), "unexpected pending messages"); - - ASSERT_OBJECT_REFCOUNT (bus, "bus", 2); -@@ -619,9 +665,9 @@ GST_START_TEST (test_message_state_changed_children) - * its state_change message */ - ASSERT_OBJECT_REFCOUNT_BETWEEN (pipeline, "pipeline", 3, 4); - -- pop_state_changed (bus, 3); -- pop_async_done (bus); -- pop_latency (bus); -+ pop_state_changed (bus, 3, &had_latency); -+ pop_async_done (bus, &had_latency); -+ pop_latency (bus, &had_latency); - fail_if ((gst_bus_pop (bus)) != NULL); - - ASSERT_OBJECT_REFCOUNT_BETWEEN (bus, "bus", 2, 3); -@@ -648,7 +694,7 @@ GST_START_TEST (test_message_state_changed_children) - ASSERT_OBJECT_REFCOUNT_BETWEEN (sink, "sink", 2, 4); - ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 3); - -- pop_state_changed (bus, 3); -+ pop_state_changed (bus, 3, &had_latency); - fail_if ((gst_bus_pop (bus)) != NULL); - - ASSERT_OBJECT_REFCOUNT (bus, "bus", 2); -@@ -669,7 +715,7 @@ GST_START_TEST (test_message_state_changed_children) - ASSERT_OBJECT_REFCOUNT_BETWEEN (sink, "sink", 3, 4); - ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 3); - -- pop_state_changed (bus, 6); -+ pop_state_changed (bus, 6, &had_latency); - fail_if ((gst_bus_pop (bus)) != NULL); - - ASSERT_OBJECT_REFCOUNT (src, "src", 1); -@@ -696,6 +742,7 @@ GST_START_TEST (test_watch_for_state_change) - GstElement *src, *sink, *bin; - GstBus *bus; - GstStateChangeReturn ret; -+ gboolean had_latency = FALSE; - - bin = gst_element_factory_make ("bin", NULL); - fail_unless (bin != NULL, "Could not create bin"); -@@ -722,9 +769,9 @@ GST_START_TEST (test_watch_for_state_change) - GST_CLOCK_TIME_NONE); - fail_unless (ret == GST_STATE_CHANGE_SUCCESS); - -- pop_state_changed (bus, 6); -- pop_async_done (bus); -- pop_latency (bus); -+ pop_state_changed (bus, 6, &had_latency); -+ pop_async_done (bus, &had_latency); -+ pop_latency (bus, &had_latency); - - fail_unless (gst_bus_have_pending (bus) == FALSE, - "Unexpected messages on bus"); -@@ -732,16 +779,17 @@ GST_START_TEST (test_watch_for_state_change) - ret = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING); - fail_unless (ret == GST_STATE_CHANGE_SUCCESS); - -- pop_state_changed (bus, 3); -+ pop_state_changed (bus, 3, &had_latency); - -+ had_latency = FALSE; - /* this one might return either SUCCESS or ASYNC, likely SUCCESS */ - ret = gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PAUSED); - gst_element_get_state (GST_ELEMENT (bin), NULL, NULL, GST_CLOCK_TIME_NONE); - -- pop_state_changed (bus, 3); -+ pop_state_changed (bus, 3, &had_latency); - if (ret == GST_STATE_CHANGE_ASYNC) { -- pop_async_done (bus); -- pop_latency (bus); -+ pop_async_done (bus, &had_latency); -+ pop_latency (bus, &had_latency); - } - - fail_unless (gst_bus_have_pending (bus) == FALSE, -@@ -898,6 +946,7 @@ GST_START_TEST (test_children_state_change_order_flagged_sink) - GstStateChangeReturn ret; - GstState current, pending; - GstBus *bus; -+ gboolean had_latency = FALSE; - - pipeline = gst_pipeline_new (NULL); - fail_unless (pipeline != NULL, "Could not create pipeline"); -@@ -951,10 +1000,11 @@ GST_START_TEST (test_children_state_change_order_flagged_sink) - ASSERT_STATE_CHANGE_MSG (bus, sink, GST_STATE_READY, GST_STATE_PAUSED, 107); - #else - -- pop_state_changed (bus, 2); /* pop remaining ready => paused messages off the bus */ -+ pop_state_changed (bus, 2, &had_latency); /* pop remaining ready => paused messages off the bus */ - ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_READY, GST_STATE_PAUSED, - 108); -- pop_async_done (bus); -+ pop_async_done (bus, &had_latency); -+ pop_latency (bus, &had_latency); - #endif - /* PAUSED => PLAYING */ - GST_DEBUG ("popping PAUSED -> PLAYING messages"); -@@ -972,8 +1022,8 @@ GST_START_TEST (test_children_state_change_order_flagged_sink) - fail_if (ret != GST_STATE_CHANGE_SUCCESS, "State change to READY failed"); - - /* TODO: do we need to check downwards state change order as well? */ -- pop_state_changed (bus, 4); /* pop playing => paused messages off the bus */ -- pop_state_changed (bus, 4); /* pop paused => ready messages off the bus */ -+ pop_state_changed (bus, 4, &had_latency); /* pop playing => paused messages off the bus */ -+ pop_state_changed (bus, 4, &had_latency); /* pop paused => ready messages off the bus */ - - while (GST_OBJECT_REFCOUNT_VALUE (pipeline) > 1) - THREAD_SWITCH (); -@@ -1002,6 +1052,7 @@ GST_START_TEST (test_children_state_change_order_semi_sink) - GstStateChangeReturn ret; - GstState current, pending; - GstBus *bus; -+ gboolean had_latency = FALSE; - - /* (2) Now again, but check other code path where we don't have - * a proper sink correctly flagged as such, but a 'semi-sink' */ -@@ -1056,10 +1107,11 @@ GST_START_TEST (test_children_state_change_order_semi_sink) - ASSERT_STATE_CHANGE_MSG (bus, src, GST_STATE_READY, GST_STATE_PAUSED, 206); - ASSERT_STATE_CHANGE_MSG (bus, sink, GST_STATE_READY, GST_STATE_PAUSED, 207); - #else -- pop_state_changed (bus, 2); /* pop remaining ready => paused messages off the bus */ -+ pop_state_changed (bus, 2, &had_latency); /* pop remaining ready => paused messages off the bus */ - ASSERT_STATE_CHANGE_MSG (bus, pipeline, GST_STATE_READY, GST_STATE_PAUSED, - 208); -- pop_async_done (bus); -+ pop_async_done (bus, &had_latency); -+ pop_latency (bus, &had_latency); - - /* PAUSED => PLAYING */ - GST_DEBUG ("popping PAUSED -> PLAYING messages"); -@@ -1076,8 +1128,8 @@ GST_START_TEST (test_children_state_change_order_semi_sink) - fail_if (ret != GST_STATE_CHANGE_SUCCESS, "State change to READY failed"); - - /* TODO: do we need to check downwards state change order as well? */ -- pop_state_changed (bus, 4); /* pop playing => paused messages off the bus */ -- pop_state_changed (bus, 4); /* pop paused => ready messages off the bus */ -+ pop_state_changed (bus, 4, &had_latency); /* pop playing => paused messages off the bus */ -+ pop_state_changed (bus, 4, &had_latency); /* pop paused => ready messages off the bus */ - - GST_DEBUG ("waiting for pipeline to reach refcount 1"); - while (GST_OBJECT_REFCOUNT_VALUE (pipeline) > 1) --- -GitLab diff --git a/media-libs/gstreamer/gstreamer-1.20.5.ebuild b/media-libs/gstreamer/gstreamer-1.20.5.ebuild deleted file mode 100644 index 6d186c17f57c..000000000000 --- a/media-libs/gstreamer/gstreamer-1.20.5.ebuild +++ /dev/null @@ -1,76 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit gstreamer-meson pax-utils - -DESCRIPTION="Open source multimedia framework" -HOMEPAGE="https://gstreamer.freedesktop.org/" -SRC_URI="https://${PN}.freedesktop.org/src/${PN}/${P}.tar.xz" - -LICENSE="LGPL-2+" -SLOT="1.0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="+caps +introspection +orc unwind" - -RDEPEND=" - >=dev-libs/glib-2.56.0:2[${MULTILIB_USEDEP}] - caps? ( sys-libs/libcap[${MULTILIB_USEDEP}] ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1:= ) - unwind? ( - >=sys-libs/libunwind-1.2_rc1[${MULTILIB_USEDEP}] - dev-libs/elfutils[${MULTILIB_USEDEP}] - ) - !<media-libs/gst-plugins-bad-1.13.1:1.0 -" -DEPEND="${RDEPEND}" -BDEPEND=" - dev-util/glib-utils - app-alternatives/yacc - app-alternatives/lex -" - -DOCS=( AUTHORS ChangeLog NEWS MAINTAINERS README.md RELEASE ) - -PATCHES=( - "${FILESDIR}"/${P}-tests-race.patch -) - -multilib_src_configure() { - local emesonargs=( - -Dbenchmarks=disabled - -Dexamples=disabled - -Dcheck=enabled - $(meson_feature unwind libunwind) - $(meson_feature unwind libdw) - ) - - if use caps ; then - emesonargs+=( -Dptp-helper-permissions=capabilities ) - else - emesonargs+=( - -Dptp-helper-permissions=setuid-root - -Dptp-helper-setuid-user=nobody - -Dptp-helper-setuid-group=nobody - ) - fi - - gstreamer_multilib_src_configure -} - -multilib_src_install() { - # can't do "default", we want to install docs in multilib_src_install_all - DESTDIR="${D}" eninja install - - # Needed for orc-using gst plugins on hardened/PaX systems, bug #421579 - use orc && pax-mark -m "${ED}/usr/$(get_libdir)/gstreamer-${SLOT}/gst-plugin-scanner" -} - -multilib_src_install_all() { - einstalldocs - find "${ED}" -name '*.la' -delete || die - - # Needed for orc-using gst plugins on hardened/PaX systems, bug #421579 - use orc && pax-mark -m "${ED}/usr/bin/gst-launch-${SLOT}" -} diff --git a/media-libs/gstreamer/gstreamer-1.20.6.ebuild b/media-libs/gstreamer/gstreamer-1.20.6.ebuild deleted file mode 100644 index 3bad071b5a4a..000000000000 --- a/media-libs/gstreamer/gstreamer-1.20.6.ebuild +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright 1999-2024 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit gstreamer-meson pax-utils - -DESCRIPTION="Open source multimedia framework" -HOMEPAGE="https://gstreamer.freedesktop.org/" -SRC_URI="https://${PN}.freedesktop.org/src/${PN}/${P}.tar.xz" - -LICENSE="LGPL-2+" -SLOT="1.0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~mips ppc ppc64 ~riscv ~sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" -IUSE="+caps +introspection +orc unwind" - -RDEPEND=" - >=dev-libs/glib-2.56.0:2[${MULTILIB_USEDEP}] - caps? ( sys-libs/libcap[${MULTILIB_USEDEP}] ) - introspection? ( >=dev-libs/gobject-introspection-1.31.1:= ) - unwind? ( - >=sys-libs/libunwind-1.2_rc1[${MULTILIB_USEDEP}] - dev-libs/elfutils[${MULTILIB_USEDEP}] - ) - !<media-libs/gst-plugins-bad-1.13.1:1.0 -" -DEPEND="${RDEPEND}" -BDEPEND=" - dev-util/glib-utils - app-alternatives/yacc - app-alternatives/lex -" - -DOCS=( AUTHORS ChangeLog NEWS MAINTAINERS README.md RELEASE ) - -multilib_src_configure() { - local emesonargs=( - -Dbenchmarks=disabled - -Dexamples=disabled - -Dcheck=enabled - $(meson_feature unwind libunwind) - $(meson_feature unwind libdw) - ) - - if use caps ; then - emesonargs+=( -Dptp-helper-permissions=capabilities ) - else - emesonargs+=( - -Dptp-helper-permissions=setuid-root - -Dptp-helper-setuid-user=nobody - -Dptp-helper-setuid-group=nobody - ) - fi - - gstreamer_multilib_src_configure -} - -multilib_src_install() { - # can't do "default", we want to install docs in multilib_src_install_all - DESTDIR="${D}" eninja install - - # Needed for orc-using gst plugins on hardened/PaX systems, bug #421579 - use orc && pax-mark -m "${ED}/usr/$(get_libdir)/gstreamer-${SLOT}/gst-plugin-scanner" -} - -multilib_src_install_all() { - einstalldocs - find "${ED}" -name '*.la' -delete || die - - # Needed for orc-using gst plugins on hardened/PaX systems, bug #421579 - use orc && pax-mark -m "${ED}/usr/bin/gst-launch-${SLOT}" -} |