From 8f04ade2c623c3624e07690fa06caf23570d44ac Mon Sep 17 00:00:00 2001 From: Denys Dmytriyenko Date: Wed, 22 Dec 2021 16:16:44 -0500 Subject: wayland: upgrade 1.19.0 -> 1.20.0 Wayland 1.20.0 is released! This release contains the following major changes: - FreeBSD support has been entirely upstreamed and has been added to our continuous integration system. - The autotools build system has been dropped. Meson has replaced it. - A few protocol additions: wl_surface.offset allows clients to update a surface's buffer offset independently from the buffer, wl_output.name and description allow clients to identify outputs without depending on xdg-output-unstable-v1. - In protocol definitions, events have a new "type" attribute and can now be marked as destructors. - A number of bug fixes, including a race condition when destroying proxies in multi-threaded clients. Also backport libsdl2 patch to fix building against wayland-1.20.0 (From OE-Core rev: d81c8d137895e1fb70bb56c61d53502670d7bc43) Signed-off-by: Denys Dmytriyenko Signed-off-by: Richard Purdie --- .../0001-Fix-build-against-wayland-1.20.patch | 45 ++++++++++++++++ meta/recipes-graphics/libsdl2/libsdl2_2.0.18.bb | 1 + ...0001-build-Fix-strndup-detection-on-MinGW.patch | 20 ++++--- meta/recipes-graphics/wayland/wayland_1.19.0.bb | 61 ---------------------- meta/recipes-graphics/wayland/wayland_1.20.0.bb | 61 ++++++++++++++++++++++ 5 files changed, 119 insertions(+), 69 deletions(-) create mode 100644 meta/recipes-graphics/libsdl2/libsdl2/0001-Fix-build-against-wayland-1.20.patch delete mode 100644 meta/recipes-graphics/wayland/wayland_1.19.0.bb create mode 100644 meta/recipes-graphics/wayland/wayland_1.20.0.bb diff --git a/meta/recipes-graphics/libsdl2/libsdl2/0001-Fix-build-against-wayland-1.20.patch b/meta/recipes-graphics/libsdl2/libsdl2/0001-Fix-build-against-wayland-1.20.patch new file mode 100644 index 0000000000..8923334e27 --- /dev/null +++ b/meta/recipes-graphics/libsdl2/libsdl2/0001-Fix-build-against-wayland-1.20.patch @@ -0,0 +1,45 @@ +From e2ade2bfc46d915cd306c63c830b81d800b2575f Mon Sep 17 00:00:00 2001 +From: David Redondo +Date: Fri, 10 Dec 2021 16:22:34 +0100 +Subject: [PATCH] Fix build against wayland 1.20 + +Fixes #5088 + +Upstream-Status: Backport [https://github.com/libsdl-org/SDL/pull/5092] + +--- + src/video/wayland/SDL_waylanddyn.h | 2 ++ + src/video/wayland/SDL_waylandsym.h | 4 ++++ + 2 files changed, 6 insertions(+) + +diff --git a/src/video/wayland/SDL_waylanddyn.h b/src/video/wayland/SDL_waylanddyn.h +index 13b0884..2268555 100644 +--- a/src/video/wayland/SDL_waylanddyn.h ++++ b/src/video/wayland/SDL_waylanddyn.h +@@ -95,6 +95,8 @@ void SDL_WAYLAND_UnloadSymbols(void); + #define wl_proxy_marshal_constructor_versioned (*WAYLAND_wl_proxy_marshal_constructor_versioned) + #define wl_proxy_set_tag (*WAYLAND_wl_proxy_set_tag) + #define wl_proxy_get_tag (*WAYLAND_wl_proxy_get_tag) ++#define wl_proxy_marshal_flags (*WAYLAND_wl_proxy_marshal_flags) ++#define wl_proxy_marshal_array_flags (*WAYLAND_wl_proxy_marshal_array_flags) + + #define wl_seat_interface (*WAYLAND_wl_seat_interface) + #define wl_surface_interface (*WAYLAND_wl_surface_interface) +diff --git a/src/video/wayland/SDL_waylandsym.h b/src/video/wayland/SDL_waylandsym.h +index d6e6a76..32e47d2 100644 +--- a/src/video/wayland/SDL_waylandsym.h ++++ b/src/video/wayland/SDL_waylandsym.h +@@ -84,6 +84,10 @@ SDL_WAYLAND_MODULE(WAYLAND_CLIENT_1_18) + SDL_WAYLAND_SYM(void, wl_proxy_set_tag, (struct wl_proxy *, const char * const *)) + SDL_WAYLAND_SYM(const char * const *, wl_proxy_get_tag, (struct wl_proxy *)) + ++SDL_WAYLAND_MODULE(WAYLAND_CLIENT_1_20) ++SDL_WAYLAND_SYM(struct wl_proxy*, wl_proxy_marshal_flags, (struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interfac, uint32_t version, uint32_t flags, ...)) ++SDL_WAYLAND_SYM(struct wl_proxy*, wl_proxy_marshal_array_flags, (struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interface, uint32_t version, uint32_t flags, union wl_argument *args)) ++ + SDL_WAYLAND_INTERFACE(wl_seat_interface) + SDL_WAYLAND_INTERFACE(wl_surface_interface) + SDL_WAYLAND_INTERFACE(wl_shm_pool_interface) +-- +2.7.4 + diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.18.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.18.bb index 5e645b443c..0b42d58fe3 100644 --- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.18.bb +++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.18.bb @@ -18,6 +18,7 @@ PROVIDES = "virtual/libsdl2" SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \ file://more-gen-depends.patch \ + file://0001-Fix-build-against-wayland-1.20.patch \ " S = "${WORKDIR}/SDL2-${PV}" 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 index ad1063b2c3..bc753de113 100644 --- 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 @@ -1,4 +1,4 @@ -From 6a6223a8e217664a348835e92d5a602f50e18b2c Mon Sep 17 00:00:00 2001 +From b4c64b6f07743e3fb63ce52359bc664ab7d60df0 Mon Sep 17 00:00:00 2001 From: Joshua Watt Date: Thu, 20 Feb 2020 15:20:45 -0600 Subject: [PATCH] build: Fix strndup detection on MinGW @@ -11,27 +11,31 @@ for strndup(). See: https://github.com/mesonbuild/meson/issues/3672 -Signed-off-by: Joshua Watt Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63] +Signed-off-by: Joshua Watt +Signed-off-by: Denys Dmytriyenko --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build -index 11c35fa..80729d0 100644 +index 3bc25c9..adde7b9 100644 --- a/meson.build +++ b/meson.build -@@ -36,11 +36,11 @@ have_funcs = [ - 'posix_fallocate', +@@ -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')) - - if get_option('libraries') - ffi_dep = dependency('libffi') + config_h.set10('HAVE_XUCRED_CR_PID', cc.has_member('struct xucred', 'cr_pid', prefix : '#include ')) + have_broken_msg_cmsg_cloexec = false + if host_machine.system() == 'freebsd' +-- +2.7.4 + diff --git a/meta/recipes-graphics/wayland/wayland_1.19.0.bb b/meta/recipes-graphics/wayland/wayland_1.19.0.bb deleted file mode 100644 index 4c9ae0f75c..0000000000 --- a/meta/recipes-graphics/wayland/wayland_1.19.0.bb +++ /dev/null @@ -1,61 +0,0 @@ -SUMMARY = "Wayland, a protocol between a compositor and clients" -DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \ -as well as a C library implementation of that protocol. The compositor can be \ -a standalone display server running on Linux kernel modesetting and evdev \ -input devices, an X application, or a wayland client itself. The clients can \ -be traditional applications, X servers (rootless or fullscreen) or other \ -display servers." -HOMEPAGE = "http://wayland.freedesktop.org" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ - file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" - -DEPENDS = "expat libffi wayland-native" - -SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ - file://run-ptest \ - file://0002-Do-not-hardcode-the-path-to-wayland-scanner.patch \ - file://0001-build-Fix-strndup-detection-on-MinGW.patch \ - " -SRC_URI[sha256sum] = "baccd902300d354581cd5ad3cc49daa4921d55fb416a5883e218750fef166d15" - -UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" - -inherit meson pkgconfig ptest - -PACKAGECONFIG ??= "dtd-validation" -PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,," - -EXTRA_OEMESON = "-Ddocumentation=false" -EXTRA_OEMESON:class-native = "-Ddocumentation=false -Dlibraries=false" - -# Wayland installs a M4 macro for other projects to use, which uses the target -# pkg-config to find files. Replace pkg-config with pkg-config-native. -do_install:append:class-native() { - sed -e 's,PKG_CHECK_MODULES(.*),,g' \ - -e 's,$PKG_CONFIG,pkg-config-native,g' \ - -i ${D}/${datadir}/aclocal/wayland-scanner.m4 -} - -do_install_ptest() { - mkdir -p ${D}${PTEST_PATH}/tests/data - cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests - cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH} - cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests - cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/ - cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/ -} - -sysroot_stage_all:append:class-target () { - rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4 - cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/ -} - -PACKAGES =+ "${PN}-tools" - -FILES:${PN}-tools = "${bindir}/wayland-scanner" -FILES:${PN}-dev += "${datadir}/${BPN}/wayland-scanner.mk" - -BBCLASSEXTEND = "native nativesdk" - -RDEPENDS:${PN}-ptest += "binutils sed ${PN}-tools" diff --git a/meta/recipes-graphics/wayland/wayland_1.20.0.bb b/meta/recipes-graphics/wayland/wayland_1.20.0.bb new file mode 100644 index 0000000000..e8636eb11b --- /dev/null +++ b/meta/recipes-graphics/wayland/wayland_1.20.0.bb @@ -0,0 +1,61 @@ +SUMMARY = "Wayland, a protocol between a compositor and clients" +DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \ +as well as a C library implementation of that protocol. The compositor can be \ +a standalone display server running on Linux kernel modesetting and evdev \ +input devices, an X application, or a wayland client itself. The clients can \ +be traditional applications, X servers (rootless or fullscreen) or other \ +display servers." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ + file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" + +DEPENDS = "expat libffi wayland-native" + +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ + file://run-ptest \ + file://0002-Do-not-hardcode-the-path-to-wayland-scanner.patch \ + file://0001-build-Fix-strndup-detection-on-MinGW.patch \ + " +SRC_URI[sha256sum] = "b8a034154c7059772e0fdbd27dbfcda6c732df29cae56a82274f6ec5d7cd8725" + +UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" + +inherit meson pkgconfig ptest + +PACKAGECONFIG ??= "dtd-validation" +PACKAGECONFIG[dtd-validation] = "-Ddtd_validation=true,-Ddtd_validation=false,libxml2,," + +EXTRA_OEMESON = "-Ddocumentation=false" +EXTRA_OEMESON:class-native = "-Ddocumentation=false -Dlibraries=false" + +# Wayland installs a M4 macro for other projects to use, which uses the target +# pkg-config to find files. Replace pkg-config with pkg-config-native. +do_install:append:class-native() { + sed -e 's,PKG_CHECK_MODULES(.*),,g' \ + -e 's,$PKG_CONFIG,pkg-config-native,g' \ + -i ${D}/${datadir}/aclocal/wayland-scanner.m4 +} + +do_install_ptest() { + mkdir -p ${D}${PTEST_PATH}/tests/data + cp -rf ${B}/tests/*-test ${B}/tests/*-checker ${D}${PTEST_PATH}/tests + cp -rf ${B}/tests/*-checker ${D}${PTEST_PATH} + cp -rf ${S}/tests/scanner-test.sh ${D}${PTEST_PATH}/tests + cp -rf ${S}/tests/data/* ${D}${PTEST_PATH}/tests/data/ + cp -rf ${S}/egl/wayland-egl-symbols-check ${D}${PTEST_PATH}/tests/ +} + +sysroot_stage_all:append:class-target () { + rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4 + cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/ +} + +PACKAGES =+ "${PN}-tools" + +FILES:${PN}-tools = "${bindir}/wayland-scanner" +FILES:${PN}-dev += "${datadir}/${BPN}/wayland-scanner.mk" + +BBCLASSEXTEND = "native nativesdk" + +RDEPENDS:${PN}-ptest += "binutils sed ${PN}-tools" -- cgit v1.2.3-54-g00ecf