diff options
Diffstat (limited to 'meta/recipes-graphics/wayland/wayland')
6 files changed, 104 insertions, 248 deletions
diff --git a/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch new file mode 100644 index 0000000000..bc753de113 --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch @@ -0,0 +1,41 @@ +From b4c64b6f07743e3fb63ce52359bc664ab7d60df0 Mon Sep 17 00:00:00 2001 +From: Joshua Watt <JPEWhacker@gmail.com> +Date: Thu, 20 Feb 2020 15:20:45 -0600 +Subject: [PATCH] build: Fix strndup detection on MinGW + +GCC and meson conspire together to incorrectly detect that strndup() +exists on MinGW as __builtin_strndup, when no such function exists. As a +work around, meson will skip looking for __builtin functions if an +'#include' is in the prefix, so add '#include <string.h>' when looking +for strndup(). + +See: https://github.com/mesonbuild/meson/issues/3672 + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63] + +Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> +Signed-off-by: Denys Dmytriyenko <denis@denix.org> +--- + meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meson.build b/meson.build +index 3bc25c9..adde7b9 100644 +--- a/meson.build ++++ b/meson.build +@@ -38,11 +38,11 @@ have_funcs = [ + 'prctl', + 'memfd_create', + 'mremap', +- 'strndup', + ] + foreach f: have_funcs + config_h.set('HAVE_' + f.underscorify().to_upper(), cc.has_function(f)) + endforeach ++config_h.set('HAVE_STRNDUP', cc.has_function('strndup') and cc.has_header_symbol('string.h', 'strndup')) + config_h.set10('HAVE_XUCRED_CR_PID', cc.has_member('struct xucred', 'cr_pid', prefix : '#include <sys/ucred.h>')) + have_broken_msg_cmsg_cloexec = false + if host_machine.system() == 'freebsd' +-- +2.7.4 + diff --git a/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch b/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch deleted file mode 100644 index c4435875ad..0000000000 --- a/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 3c8b4467a1ca229e72fb5223787ed400a19c65c0 Mon Sep 17 00:00:00 2001 -From: Joshua Watt <JPEWhacker@gmail.com> -Date: Fri, 25 Oct 2019 21:03:23 -0500 -Subject: [PATCH] scanner: Add configure check for strndup - -Some platforms may not have strndup() (e.g. MinGW), so provide a -equivalent implementation if it's not found. - -Upstream-Status: Accepted [4a1f348c20157db7bd7c759fdeb23fbe8729c571] -Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> ---- - configure.ac | 2 +- - src/scanner.c | 11 +++++++++++ - 2 files changed, 12 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 8d56f2b..1c99e21 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -63,7 +63,7 @@ fi - AC_SUBST(GCC_CFLAGS) - - AC_CHECK_HEADERS([sys/prctl.h]) --AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl]) -+AC_CHECK_FUNCS([accept4 mkostemp posix_fallocate prctl strndup]) - - AC_ARG_ENABLE([libraries], - [AC_HELP_STRING([--disable-libraries], -diff --git a/src/scanner.c b/src/scanner.c -index a94be5d..27004bc 100644 ---- a/src/scanner.c -+++ b/src/scanner.c -@@ -916,6 +916,17 @@ verify_arguments(struct parse_context *ctx, - - } - -+#ifndef HAVE_STRNDUP -+char * -+strndup(const char *s, size_t size) -+{ -+ char *r = malloc(size + 1); -+ strncpy(r, s, size); -+ r[size] = '\0'; -+ return r; -+} -+#endif -+ - static void - end_element(void *data, const XML_Char *name) - { diff --git a/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch b/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch new file mode 100644 index 0000000000..4573bb635a --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch @@ -0,0 +1,46 @@ +From ff8ecbe8891d592e645927659318720f9e190054 Mon Sep 17 00:00:00 2001 +From: Andreas Cord-Landwehr <cordlandwehr@kde.org> +Date: Sun, 6 Feb 2022 17:23:46 +0100 +Subject: [PATCH] Consider pkgconfig sysroot for pkgdatadir + +For libs/cflags this is done automatically, but not for manually accessed +variables. This matches what wayland-protocols does. + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/272] +--- + src/meson.build | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/meson.build b/src/meson.build +index a8a1d2b..721e151 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -65,7 +65,7 @@ if get_option('scanner') + version: meson.project_version(), + variables: [ + 'datarootdir=' + join_paths('${prefix}', get_option('datadir')), +- 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()), ++ 'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()), + 'bindir=' + join_paths('${prefix}', get_option('bindir')), + 'wayland_scanner=${bindir}/wayland-scanner' + ], +@@ -211,7 +211,7 @@ if get_option('libraries') + filebase: 'wayland-server', + variables: [ + 'datarootdir=' + join_paths('${prefix}', get_option('datadir')), +- 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()) ++ 'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()) + ] + ) + +@@ -250,7 +250,7 @@ if get_option('libraries') + filebase: 'wayland-client', + variables: [ + 'datarootdir=' + join_paths('${prefix}', get_option('datadir')), +- 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()) ++ 'pkgdatadir=' + join_paths('${pc_sysrootdir}${datarootdir}', meson.project_name()) + ] + ) + +-- +2.37.2 diff --git a/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch b/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch deleted file mode 100644 index b05b875abb..0000000000 --- a/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch +++ /dev/null @@ -1,166 +0,0 @@ -From e746f3bf7c8bb2f5dcf9e93edffc23b56eff12d0 Mon Sep 17 00:00:00 2001 -From: Joshua Watt <JPEWhacker@gmail.com> -Date: Tue, 5 Nov 2019 09:09:50 -0600 -Subject: [PATCH] Move wl_priv_signal to wayland-server-private.h - -Including wayland-server-core.h in wayland-private.h is problematic -because wayland-private.h is included by wayland-scanner which should be -able to build against non-POSIX platforms (e.g. MinGW). The only reason -that wayland-server-core.h was included in wayland-private.h was for the -wl_private_signal definitions, so move those to a -wayland-server-private.h file that can be included by both -wayland-server.c and the tests. - -Upstream-Status: Accepted [e7d88f35eb89cf0cc77cbddd834cacc63683a9cc] -Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> ---- - Makefile.am | 3 +- - src/wayland-private.h | 22 +-------------- - src/wayland-server-private.h | 53 ++++++++++++++++++++++++++++++++++++ - src/wayland-server.c | 1 + - tests/newsignal-test.c | 2 +- - 5 files changed, 58 insertions(+), 23 deletions(-) - create mode 100644 src/wayland-server-private.h - -diff --git a/Makefile.am b/Makefile.am -index f47d055..026d981 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -56,7 +56,8 @@ libwayland_private_la_SOURCES = \ - src/connection.c \ - src/wayland-os.c \ - src/wayland-os.h \ -- src/wayland-private.h -+ src/wayland-private.h \ -+ src/wayland-server-private.h - - include_HEADERS = \ - src/wayland-util.h \ -diff --git a/src/wayland-private.h b/src/wayland-private.h -index 29516ec..dc7d12f 100644 ---- a/src/wayland-private.h -+++ b/src/wayland-private.h -@@ -31,11 +31,11 @@ - #include <stdarg.h> - #include <stdlib.h> - #include <stdint.h> -+#include <stdbool.h> - - #define WL_HIDE_DEPRECATED 1 - - #include "wayland-util.h" --#include "wayland-server-core.h" - - /* Invalid memory address */ - #define WL_ARRAY_POISON_PTR (void *) 4 -@@ -236,26 +236,6 @@ zalloc(size_t s) - return calloc(1, s); - } - --struct wl_priv_signal { -- struct wl_list listener_list; -- struct wl_list emit_list; --}; -- --void --wl_priv_signal_init(struct wl_priv_signal *signal); -- --void --wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener); -- --struct wl_listener * --wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify); -- --void --wl_priv_signal_emit(struct wl_priv_signal *signal, void *data); -- --void --wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data); -- - void - wl_connection_close_fds_in(struct wl_connection *connection, int max); - -diff --git a/src/wayland-server-private.h b/src/wayland-server-private.h -new file mode 100644 -index 0000000..23fa458 ---- /dev/null -+++ b/src/wayland-server-private.h -@@ -0,0 +1,53 @@ -+/* -+ * Copyright © 2008-2011 Kristian Høgsberg -+ * Copyright © 2011 Intel Corporation -+ * Copyright © 2013 Jason Ekstrand -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining -+ * a copy of this software and associated documentation files (the -+ * "Software"), to deal in the Software without restriction, including -+ * without limitation the rights to use, copy, modify, merge, publish, -+ * distribute, sublicense, and/or sell copies of the Software, and to -+ * permit persons to whom the Software is furnished to do so, subject to -+ * the following conditions: -+ * -+ * The above copyright notice and this permission notice (including the -+ * next paragraph) shall be included in all copies or substantial -+ * portions of the Software. -+ * -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS -+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -+ * SOFTWARE. -+ */ -+ -+#ifndef WAYLAND_SERVER_PRIVATE_H -+#define WAYLAND_SERVER_PRIVATE_H -+ -+#include "wayland-server-core.h" -+ -+struct wl_priv_signal { -+ struct wl_list listener_list; -+ struct wl_list emit_list; -+}; -+ -+void -+wl_priv_signal_init(struct wl_priv_signal *signal); -+ -+void -+wl_priv_signal_add(struct wl_priv_signal *signal, struct wl_listener *listener); -+ -+struct wl_listener * -+wl_priv_signal_get(struct wl_priv_signal *signal, wl_notify_func_t notify); -+ -+void -+wl_priv_signal_emit(struct wl_priv_signal *signal, void *data); -+ -+void -+wl_priv_signal_final_emit(struct wl_priv_signal *signal, void *data); -+ -+#endif -diff --git a/src/wayland-server.c b/src/wayland-server.c -index 19f6a76..d6f0206 100644 ---- a/src/wayland-server.c -+++ b/src/wayland-server.c -@@ -45,6 +45,7 @@ - - #include "wayland-util.h" - #include "wayland-private.h" -+#include "wayland-server-private.h" - #include "wayland-server.h" - #include "wayland-os.h" - -diff --git a/tests/newsignal-test.c b/tests/newsignal-test.c -index 47c429b..f3a7bd9 100644 ---- a/tests/newsignal-test.c -+++ b/tests/newsignal-test.c -@@ -26,7 +26,7 @@ - #include <assert.h> - - #include "test-runner.h" --#include "wayland-private.h" -+#include "wayland-server-private.h" - - static void - signal_notify(struct wl_listener *listener, void *data) diff --git a/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch b/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch deleted file mode 100644 index ad3526d984..0000000000 --- a/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch +++ /dev/null @@ -1,32 +0,0 @@ -Fix wayland-client and wayland-scanner pc files - -Upstream-Status: Pending - -Signed-off-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk> - -Index: wayland-1.14.0/src/wayland-client.pc.in -=================================================================== ---- wayland-1.14.0.orig/src/wayland-client.pc.in -+++ wayland-1.14.0/src/wayland-client.pc.in -@@ -1,7 +1,7 @@ - prefix=@prefix@ - exec_prefix=@exec_prefix@ - datarootdir=@datarootdir@ --pkgdatadir=@datadir@/@PACKAGE@ -+pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@ - libdir=@libdir@ - includedir=@includedir@ - -Index: wayland-1.14.0/src/wayland-scanner.pc.in -=================================================================== ---- wayland-1.14.0.orig/src/wayland-scanner.pc.in -+++ wayland-1.14.0/src/wayland-scanner.pc.in -@@ -2,7 +2,7 @@ prefix=@prefix@ - exec_prefix=@exec_prefix@ - datarootdir=@datarootdir@ - pkgdatadir=@datadir@/@PACKAGE@ --wayland_scanner=@bindir@/wayland-scanner -+wayland_scanner=wayland-scanner - - Name: Wayland Scanner - Description: Wayland scanner diff --git a/meta/recipes-graphics/wayland/wayland/run-ptest b/meta/recipes-graphics/wayland/wayland/run-ptest new file mode 100644 index 0000000000..7e8d9de046 --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland/run-ptest @@ -0,0 +1,17 @@ +#!/bin/sh + +export WAYLAND_SCANNER=wayland-scanner +export TEST_DATA_DIR=tests/data +export TEST_OUTPUT_DIR=tests/output +export SED=sed +export WAYLAND_EGL_LIB=/usr/lib/libwayland-egl.so.1 +export NM=nm + +for i in `ls tests/*-test tests/wayland-egl-symbols-check tests/scanner-test.sh`; do + $i + if [ $? -eq 0 ]; then + echo "PASS: $i" + else + echo "FAIL: $i" + fi +done |