new file mode 100644
@@ -0,0 +1,15 @@
+SRC_URI += "file://0001-gstpluginloader-show-the-reason-when-spawning-of-gst.patch;striplevel=3"
+SRC_URI += "file://meson-qemuwrapper-helper.sh"
+
+#MESON_QEMU_WRAPPER_HELPER = "${WORKDIR}/meson-qemuwrapper-helper.sh"
+
+PACKAGECONFIG[tests] = "-Dtests=enabled,-Dtests=disabled"
+
+# run single test
+EXTRA_OEMESON_TEST = "gst_gstbin"
+
+meson_do_test:prepend() {
+ # run the test with the debug mode enabled
+ # logs will be placed at build/meson-logs/testlog.txt
+ export GST_DEBUG=6
+}
new file mode 100644
@@ -0,0 +1,53 @@
+From 8e1de3f84c2e654515b6d6b16783a4a08dfd118d Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Wed, 8 Dec 2021 22:13:15 +0000
+Subject: [PATCH] gstpluginloader: show the reason when spawning of
+ gst-plugin-scanner fail
+
+This fix helps in cross compiling when the meson tests runs using a qemu wraper
+
+Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1701>
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/8e1de3f84c2e654515b6d6b16783a4a08dfd118d]
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ subprojects/gstreamer/gst/gstpluginloader.c | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/subprojects/gstreamer/gst/gstpluginloader.c b/subprojects/gstreamer/gst/gstpluginloader.c
+index 10a446fa5e..fb8b45cffa 100644
+--- a/subprojects/gstreamer/gst/gstpluginloader.c
++++ b/subprojects/gstreamer/gst/gstpluginloader.c
+@@ -413,6 +413,7 @@ gst_plugin_loader_try_helper (GstPluginLoader * loader, gchar * location)
+ {
+ char *argv[6] = { NULL, };
+ int c = 0;
++ GError *error = NULL;
+
+ #if defined (__APPLE__) && defined (USR_BIN_ARCH_SWITCH)
+ if (gst_plugin_loader_use_usr_bin_arch ()) {
+@@ -432,11 +433,16 @@ gst_plugin_loader_try_helper (GstPluginLoader * loader, gchar * location)
+ GST_LOG ("Trying to spawn gst-plugin-scanner helper at %s", location);
+ }
+
+- if (!g_spawn_async_with_pipes (NULL, argv, NULL,
+- G_SPAWN_DO_NOT_REAP_CHILD /* | G_SPAWN_STDERR_TO_DEV_NULL */ ,
+- NULL, NULL, &loader->child_pid, &loader->fd_w.fd, &loader->fd_r.fd,
+- NULL, NULL))
++ g_spawn_async_with_pipes (NULL, argv, NULL,
++ G_SPAWN_DO_NOT_REAP_CHILD /* | G_SPAWN_STDERR_TO_DEV_NULL */ ,
++ NULL, NULL, &loader->child_pid, &loader->fd_w.fd, &loader->fd_r.fd,
++ NULL, &error);
++
++ if (error) {
++ GST_ERROR ("Spawning gst-plugin-scanner helper failed: %s", error->message);
++ g_clear_error (&error);
+ return FALSE;
++ }
+
+ gst_poll_add_fd (loader->fdset, &loader->fd_w);
+ gst_poll_add_fd (loader->fdset, &loader->fd_r);
+--
+2.35.1
+
new file mode 100644
@@ -0,0 +1,15 @@
+#!/bin/sh
+#set -x
+
+test="$(basename "$1")"
+
+# some tests currently fails so there we skipped the already knowns
+skipped="$skipped elements_dataurisrc"
+skipped="$skipped libs_gstnettimeprovider"
+skipped="$skipped gst_gstelement"
+skipped="$skipped gst_gstregistry"
+for s in $skipped; do
+ if [ "$s" = "$test" ]; then
+ exit 77
+ fi
+done
@@ -70,3 +70,9 @@ FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
CVE_PRODUCT = "gstreamer"
PTEST_BUILD_HOST_FILES = ""
+
+MESON_QEMU_WRAPPER_TEST_ENABLED = "1"
+
+GST_MESON_TEST = "${@"gstreamer1.0-meson-qemuwrapper-test.inc" if d.getVar('MESON_QEMU_WRAPPER_TEST_ENABLED') == '1' else ""}"
+
+require ${GST_MESON_TEST}