diff options
Diffstat (limited to 'user/gstreamer')
-rw-r--r-- | user/gstreamer/APKBUILD | 25 | ||||
-rw-r--r-- | user/gstreamer/disable-tests.patch | 24 | ||||
-rw-r--r-- | user/gstreamer/test-deadlock.patch | 140 | ||||
-rw-r--r-- | user/gstreamer/time64.patch | 60 |
4 files changed, 9 insertions, 240 deletions
diff --git a/user/gstreamer/APKBUILD b/user/gstreamer/APKBUILD index 94c5af1c9..7ee893c50 100644 --- a/user/gstreamer/APKBUILD +++ b/user/gstreamer/APKBUILD @@ -1,6 +1,6 @@ # Maintainer: A. Wilcox <awilfox@adelielinux.org> pkgname=gstreamer -pkgver=1.20.1 +pkgver=1.26.1 pkgrel=0 pkgdesc="GStreamer multimedia framework" url="https://gstreamer.freedesktop.org/" @@ -9,16 +9,12 @@ license="LGPL-2.0+" depends="" depends_dev="libxml2-dev" makedepends="$depends_dev bison flex gobject-introspection-dev glib-dev - meson ninja" + meson" subpackages="$pkgname-dev $pkgname-doc $pkgname-tools $pkgname-lang" -source="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$pkgver.tar.xz - disable-tests.patch - test-deadlock.patch - time64.patch - " +source="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$pkgver.tar.xz" build() { - meson \ + meson setup \ -Dprefix=/usr \ -Dintrospection=enabled \ -Dpackage-name="GStreamer (${DISTRO_NAME:-Adélie Linux})" \ @@ -26,16 +22,16 @@ build() { -Dglib-asserts=disabled \ -Dnls=enabled \ -Dptp-helper-permissions=none \ - _build - ninja -C _build + build + meson compile -C build } check() { - ninja -C _build test + meson test -C build } package() { - DESTDIR="$pkgdir" ninja -C _build install + DESTDIR="$pkgdir" meson install -C build } dev() { @@ -55,7 +51,4 @@ tools() { mv "$pkgdir"/usr/lib/libgstcheck-1.0.so.* "$subpkgdir"/usr/lib/ } -sha512sums="d6f67cce81ba15fba3fcf70850e3c84b25e8da3e53fd56e6f2c87c7ee1701071ea44deb754a0ea371b3cb17877f26aab94d9eccb6729cbb370d6d6d5c324aa1a gstreamer-1.20.1.tar.xz -39e6bfb52ebe85beefa2550eb404f83c5bbb3546cc1733b99e757401d2d182f95d829b90df99d5f43506d7c85d4f44ac797f35653cd42a935f1dc56d0b844c02 disable-tests.patch -d7e574e8715607d3103d46eb05388b781702a9e937d78f8cfab6d8d48d04baa7fbfe547bdeb816bbfddb5a333dd1862e460b057b12ea24704351ef5653f78491 test-deadlock.patch -977a9e689cce68b151a742ef67dbb60a10a55fcfae67f086909e1f0fc4a5998026acd03aeed32068fdb0485dd884c4313f39a63e3bab5baaafa878c439531bc3 time64.patch" +sha512sums="7a5da377fbfb25cacc2d9613a57210c00ca70ee00f3ef4d108a3c98bd6a2cb703b773ca6fd6d9ac7b59b60d0bf0573cff69bdea18e07159ac56ee992613d0a78 gstreamer-1.26.1.tar.xz" diff --git a/user/gstreamer/disable-tests.patch b/user/gstreamer/disable-tests.patch deleted file mode 100644 index 7fc78e9e4..000000000 --- a/user/gstreamer/disable-tests.patch +++ /dev/null @@ -1,24 +0,0 @@ -elements_leaks: - Fails due to heavy parallelisation on ppc64. - It always succeeds when run serially. - -elements_filesink: - Seems to be disabled on other musl distros as well. - Filed at: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1194 - ---- gstreamer-1.20.1/tests/check/meson.build.old 2022-03-14 06:33:40.000000000 -0500 -+++ gstreamer-1.20.1/tests/check/meson.build 2022-05-02 01:55:00.352168066 -0500 -@@ -84,11 +84,11 @@ - [ 'elements/fakesrc.c', not gst_registry ], - # FIXME: blocked forever on Windows due to missing fcntl (.. O_NONBLOCK) - [ 'elements/fdsrc.c', not gst_registry or host_system == 'windows' ], -- [ 'elements/filesink.c', not gst_registry ], -+ [ 'elements/filesink.c', true ], - [ 'elements/filesrc.c', not gst_registry ], - [ 'elements/funnel.c', not gst_registry ], - [ 'elements/identity.c', not gst_registry or not gst_parse ], -- [ 'elements/leaks.c', not tracer_hooks or not gst_debug ], -+ [ 'elements/leaks.c', true ], - [ 'elements/multiqueue.c', not gst_registry ], - [ 'elements/selector.c', not gst_registry ], - [ 'elements/streamiddemux.c', not gst_registry ], diff --git a/user/gstreamer/test-deadlock.patch b/user/gstreamer/test-deadlock.patch deleted file mode 100644 index b506ca19f..000000000 --- a/user/gstreamer/test-deadlock.patch +++ /dev/null @@ -1,140 +0,0 @@ -From f24595e9d7952e1e957c0973de62e6c3df031c08 Mon Sep 17 00:00:00 2001 -From: Jose Quaresma <quaresma.jose@gmail.com> -Date: Sun, 20 Feb 2022 23:26:10 +0000 -Subject: [PATCH 1/3] gstreamer: tests: make the gstbin pop message more clear - -Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> ---- - tests/check/gst/gstbin.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c -index e366d5fe20f..06be4c75fbb 100644 ---- a/tests/check/gst/gstbin.c -+++ b/tests/check/gst/gstbin.c -@@ -38,7 +38,7 @@ pop_async_done (GstBus * bus) - == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE"); - - gst_message_unref (message); -- GST_DEBUG ("popped message"); -+ GST_DEBUG ("popped async-done message"); - } - - static void -@@ -46,14 +46,14 @@ pop_latency (GstBus * bus) - { - GstMessage *message; - -- GST_DEBUG ("popping async-done message"); -+ GST_DEBUG ("popping latency message"); - message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, -1); - - fail_unless (message && GST_MESSAGE_TYPE (message) - == GST_MESSAGE_LATENCY, "did not get GST_MESSAGE_LATENCY"); - - gst_message_unref (message); -- GST_DEBUG ("popped message"); -+ GST_DEBUG ("popped latency message"); - } - - static void -@@ -63,7 +63,7 @@ pop_state_changed (GstBus * bus, int count) - - int i; - -- GST_DEBUG ("popping %d messages", count); -+ GST_DEBUG ("popping %d state-changed message", count); - for (i = 0; i < count; ++i) { - message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1); - -@@ -72,7 +72,7 @@ pop_state_changed (GstBus * bus, int count) - - gst_message_unref (message); - } -- GST_DEBUG ("popped %d messages", count); -+ GST_DEBUG ("popped %d state-changed messages", count); - } - - static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", --- -GitLab - - -From 2c47f61c69702572bf666ad9ecaf59710f4a342c Mon Sep 17 00:00:00 2001 -From: Jose Quaresma <quaresma.jose@gmail.com> -Date: Sun, 20 Feb 2022 23:28:00 +0000 -Subject: [PATCH 2/3] gstreamer: tests: add a timeout in gstbin pop functions - instaed of wait forever - -Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> ---- - tests/check/gst/gstbin.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c -index 06be4c75fbb..c837d0e7e8a 100644 ---- a/tests/check/gst/gstbin.c -+++ b/tests/check/gst/gstbin.c -@@ -32,7 +32,7 @@ pop_async_done (GstBus * bus) - GstMessage *message; - - GST_DEBUG ("popping async-done message"); -- message = gst_bus_poll (bus, GST_MESSAGE_ASYNC_DONE, -1); -+ message = gst_bus_poll (bus, GST_MESSAGE_ASYNC_DONE, GST_SECOND); - - fail_unless (message && GST_MESSAGE_TYPE (message) - == GST_MESSAGE_ASYNC_DONE, "did not get GST_MESSAGE_ASYNC_DONE"); -@@ -47,7 +47,7 @@ pop_latency (GstBus * bus) - GstMessage *message; - - GST_DEBUG ("popping latency message"); -- message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, -1); -+ message = gst_bus_poll (bus, GST_MESSAGE_LATENCY, GST_SECOND); - - fail_unless (message && GST_MESSAGE_TYPE (message) - == GST_MESSAGE_LATENCY, "did not get GST_MESSAGE_LATENCY"); -@@ -65,7 +65,7 @@ pop_state_changed (GstBus * bus, int count) - - GST_DEBUG ("popping %d state-changed message", count); - for (i = 0; i < count; ++i) { -- message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, -1); -+ message = gst_bus_poll (bus, GST_MESSAGE_STATE_CHANGED, GST_SECOND); - - fail_unless (message && GST_MESSAGE_TYPE (message) - == GST_MESSAGE_STATE_CHANGED, "did not get GST_MESSAGE_STATE_CHANGED"); --- -GitLab - - -From 686add28e21ae0031f9e3b07f9fb5cd4d5d19bc5 Mon Sep 17 00:00:00 2001 -From: Jose Quaresma <quaresma.jose@gmail.com> -Date: Mon, 21 Feb 2022 23:06:07 +0000 -Subject: [PATCH 3/3] gstreamer: tests: fix gstbin deadlock - -this is a bit ugly but if the latency message is lost -the pop_latency will hang forever. - -Fixes: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/778 - -Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com> ---- - tests/check/gst/gstbin.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/tests/check/gst/gstbin.c b/tests/check/gst/gstbin.c -index c837d0e7e8a..5d9a09171aa 100644 ---- a/tests/check/gst/gstbin.c -+++ b/tests/check/gst/gstbin.c -@@ -741,7 +741,8 @@ GST_START_TEST (test_watch_for_state_change) - pop_state_changed (bus, 3); - if (ret == GST_STATE_CHANGE_ASYNC) { - pop_async_done (bus); -- pop_latency (bus); -+ if (gst_bus_have_pending (bus)) -+ pop_latency (bus); - } - - fail_unless (gst_bus_have_pending (bus) == FALSE, --- -GitLab - diff --git a/user/gstreamer/time64.patch b/user/gstreamer/time64.patch deleted file mode 100644 index 89c88c380..000000000 --- a/user/gstreamer/time64.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 664fc63a246cba97e202f712aa48105f46a9ff69 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= <sebastian@centricular.com> -Date: Mon, 12 Dec 2022 11:34:51 +0200 -Subject: [PATCH] systemclock: Use `futex_time64` syscall on x32 and other - platforms that always use a 32-bit `struct timespec` for the normal `futex` - syscall - -See also https://gitlab.gnome.org/GNOME/glib/-/issues/2634 ---- - gst/gstsystemclock.c | 26 +++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - -diff --git a/gst/gstsystemclock.c b/gst/gstsystemclock.c -index 6d0b6ec47b6..8c396d2c7b4 100644 ---- a/gst/gstsystemclock.c -+++ b/gst/gstsystemclock.c -@@ -130,7 +130,31 @@ gst_futex_cond_broadcast (guint * cond_val) - static gboolean - gst_futex_cond_wait_until (guint * cond_val, GMutex * mutex, gint64 end_time) - { -+ /* On x32 (ILP32 ABI on x86_64) and potentially sparc64, the raw futex() -+ * syscall takes a 32-bit timespan argument *regardless* of whether userspace -+ * is using 32-bit or 64-bit `struct timespec`. This means that we can’t -+ * unconditionally pass a `struct timespec` pointer into the syscall. -+ * -+ * Assume that any such platform is new enough to define the -+ * `__NR_futex_time64` workaround syscall (which accepts 64-bit timespecs, -+ * introduced in kernel 5.1), and use that to pass a 64-bit timespec instead. -+ * -+ * `clock_gettime()` on such systems will either return a 32-bit `struct -+ * timespec`, in which case the values we will get passed in here are -+ * already not y2038-safe, or `struct timespec` is using 64-bit `time_t` and -+ * everything is fine. -+ */ -+#ifdef __NR_futex_time64 -+ struct -+ { -+ gint64 tv_sec; -+ gint64 tv_nsec; -+ } end; -+ const long int futex_syscall_id = __NR_futex_time64; -+#else - struct timespec end; -+ const long int futex_syscall_id = __NR_futex; -+#endif - guint sampled; - int res; - gboolean success; -@@ -146,7 +170,7 @@ gst_futex_cond_wait_until (guint * cond_val, GMutex * mutex, gint64 end_time) - /* we use FUTEX_WAIT_BITSET_PRIVATE rather than FUTEX_WAIT_PRIVATE to be - * able to use absolute time */ - res = -- syscall (__NR_futex, cond_val, (gsize) FUTEX_WAIT_BITSET_PRIVATE, -+ syscall (futex_syscall_id, cond_val, (gsize) FUTEX_WAIT_BITSET_PRIVATE, - (gsize) sampled, &end, NULL, FUTEX_BITSET_MATCH_ANY); - success = (res < 0 && errno == ETIMEDOUT) ? FALSE : TRUE; - g_mutex_lock (mutex); --- -GitLab - |