summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/wayland/wayland
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-graphics/wayland/wayland')
-rw-r--r--meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch41
-rw-r--r--meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch50
-rw-r--r--meta/recipes-graphics/wayland/wayland/0002-Consider-pkgconfig-sysroot-for-pkgdatadir.patch46
-rw-r--r--meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch166
-rw-r--r--meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch32
-rw-r--r--meta/recipes-graphics/wayland/wayland/run-ptest17
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