summaryrefslogtreecommitdiff
path: root/poky/meta/recipes-graphics
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-04-13 21:39:40 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-05-05 16:30:44 +0300
commit82c905dc58a36aeae40b1b273a12f63fb1973cf4 (patch)
tree38caf00263451b5036435cdc36e035b25d32e623 /poky/meta/recipes-graphics
parent83ecb75644b3d677c274188f9ac0b2374d6f6925 (diff)
downloadopenbmc-82c905dc58a36aeae40b1b273a12f63fb1973cf4.tar.xz
meta-openembedded and poky: subtree updates
Squash of the following due to dependencies among them and OpenBMC changes: meta-openembedded: subtree update:d0748372d2..9201611135 meta-openembedded: subtree update:9201611135..17fd382f34 poky: subtree update:9052e5b32a..2e11d97b6c poky: subtree update:2e11d97b6c..a8544811d7 The change log was too large for the jenkins plugin to handle therefore it has been removed. Here is the first and last commit of each subtree: meta-openembedded:d0748372d2 cppzmq: bump to version 4.6.0 meta-openembedded:17fd382f34 mpv: Remove X11 dependency poky:9052e5b32a package_ipk: Remove pointless comment to trigger rebuild poky:a8544811d7 pbzip2: Fix license warning Change-Id: If0fc6c37629642ee207a4ca2f7aa501a2c673cd6 Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Diffstat (limited to 'poky/meta/recipes-graphics')
-rw-r--r--poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb6
-rw-r--r--poky/meta/recipes-graphics/clutter/clutter-1.0.inc4
-rw-r--r--poky/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch35
-rw-r--r--poky/meta/recipes-graphics/drm/libdrm_2.4.101.bb (renamed from poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb)7
-rw-r--r--poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb2
-rw-r--r--poky/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch73
-rw-r--r--poky/meta/recipes-graphics/glew/glew_2.2.0.bb (renamed from poky/meta/recipes-graphics/glew/glew_2.1.0.bb)11
-rw-r--r--poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb (renamed from poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb)6
-rw-r--r--poky/meta/recipes-graphics/kmscube/kmscube_git.bb2
-rw-r--r--poky/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch26
-rw-r--r--poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb (renamed from poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb)5
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch34
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch53
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch41
-rw-r--r--poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb (renamed from poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb)16
-rw-r--r--poky/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch35
-rw-r--r--poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb (renamed from poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb)17
-rw-r--r--poky/meta/recipes-graphics/libva/libva_2.6.1.bb (renamed from poky/meta/recipes-graphics/libva/libva_2.5.0.bb)13
-rw-r--r--poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb2
-rw-r--r--poky/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb2
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch27
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch18
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch18
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch10
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch10
-rw-r--r--poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch53
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb10
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa-gl_20.0.2.bb15
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa.inc21
-rw-r--r--poky/meta/recipes-graphics/mesa/mesa_20.0.2.bb (renamed from poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb)10
-rw-r--r--poky/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch31
-rw-r--r--poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch36
-rw-r--r--poky/meta/recipes-graphics/pango/pango_1.44.7.bb (renamed from poky/meta/recipes-graphics/pango/pango_1.44.6.bb)10
-rw-r--r--poky/meta/recipes-graphics/piglit/piglit_git.bb7
-rw-r--r--poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch27
-rw-r--r--poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb (renamed from poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb)5
-rw-r--r--poky/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch68
-rw-r--r--poky/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch1664
-rw-r--r--poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb (renamed from poky/meta/recipes-graphics/vulkan/assimp_4.1.0.bb)7
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch21
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb10
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.bb)4
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb)5
-rw-r--r--poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb (renamed from poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb)4
-rw-r--r--poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb2
-rw-r--r--poky/meta/recipes-graphics/wayland/libinput/determinism.patch21
-rw-r--r--poky/meta/recipes-graphics/wayland/libinput_1.15.2.bb (renamed from poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb)9
-rw-r--r--poky/meta/recipes-graphics/wayland/mtdev_1.1.6.bb (renamed from poky/meta/recipes-graphics/wayland/mtdev_1.1.5.bb)4
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb (renamed from poky/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb)4
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch39
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch115
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch50
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch26
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch166
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch27
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch32
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland/run-ptest17
-rw-r--r--poky/meta/recipes-graphics/wayland/wayland_1.18.0.bb (renamed from poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb)34
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init.bb14
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini2
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init/weston.env0
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init/weston.ini3
-rw-r--r--poky/meta/recipes-graphics/wayland/weston-init/weston@.service34
-rw-r--r--poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch28
-rw-r--r--poky/meta/recipes-graphics/wayland/weston_8.0.0.bb (renamed from poky/meta/recipes-graphics/wayland/weston_7.0.0.bb)11
-rw-r--r--poky/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf2
-rwxr-xr-xpoky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm8
-rw-r--r--poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb7
-rw-r--r--poky/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb22
-rw-r--r--poky/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb (renamed from poky/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb)9
-rw-r--r--poky/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb4
-rw-r--r--poky/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch28
-rw-r--r--poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb2
-rw-r--r--poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb (renamed from poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb)6
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch51
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb2
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch505
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch55
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb7
-rw-r--r--poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc4
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch56
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb3
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb3
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb (renamed from poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb)13
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb (renamed from poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb)4
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb2
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch2
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb40
-rw-r--r--poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb (renamed from poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb)4
-rw-r--r--poky/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc26
-rw-r--r--poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb14
-rw-r--r--poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb27
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf39
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf39
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc2
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch63
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch23
-rw-r--r--poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb (renamed from poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb)16
100 files changed, 3155 insertions, 1056 deletions
diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
index e3de3f616..b772c2ece 100644
--- a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
@@ -40,7 +40,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
+ trace"
PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
@@ -49,6 +50,7 @@ PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
+PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
EXTRA_OECONF += " \
${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
@@ -66,6 +68,8 @@ do_install_append () {
rm -rf ${D}${libdir}/cairo/cairo-sphinx*
rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
+ rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
+ rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
}
PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
diff --git a/poky/meta/recipes-graphics/clutter/clutter-1.0.inc b/poky/meta/recipes-graphics/clutter/clutter-1.0.inc
index 5dc45ebf2..e0ac819e4 100644
--- a/poky/meta/recipes-graphics/clutter/clutter-1.0.inc
+++ b/poky/meta/recipes-graphics/clutter/clutter-1.0.inc
@@ -24,11 +24,11 @@ ERDEPENDS_EVDEV = "xkeyboard-config"
# Disable pretty much everything, override in platform specific set up
EXTRA_OECONF += "--disable-quartz-backend \
--disable-win32-backend \
- --disable-gdk-backend \
--disable-cex100-backend \
--disable-tslib-input \
"
+PACKAGECONFIG[gdk] = "--enable-gdk-backend,--disable-gdk-backend,gtk+3"
PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}"
PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}"
PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}"
@@ -37,7 +37,7 @@ PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${E
PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland"
# Default configuration, distros might want to override
-PACKAGECONFIG ??= "egl \
+PACKAGECONFIG ??= "egl gdk \
${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}"
diff --git a/poky/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch b/poky/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch
deleted file mode 100644
index e3d6c5b85..000000000
--- a/poky/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Submitted
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 46c0fd6c827a8cb4d04e067bf04fab579ac4712e Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@intel.com>
-Date: Mon, 18 Jun 2018 15:07:03 +0100
-Subject: [PATCH] tests/nouveau/threaded: adapt ioctl signature
-
-POSIX says ioctl() has the signature (int, int, ...) but glibc has decided to
-use (int, unsigned long int, ...) instead.
-
-Use a #ifdef to adapt the replacement function as appropriate.
----
- tests/nouveau/threaded.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/tests/nouveau/threaded.c b/tests/nouveau/threaded.c
-index 3669bcd3..e1c27c01 100644
---- a/tests/nouveau/threaded.c
-+++ b/tests/nouveau/threaded.c
-@@ -36,7 +36,11 @@ static int failed;
-
- static int import_fd;
-
-+#ifdef __GLIBC__
- int ioctl(int fd, unsigned long request, ...)
-+#else
-+int ioctl(int fd, int request, ...)
-+#endif
- {
- va_list va;
- int ret;
---
-2.11.0
-
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.101.bb
index 485942567..8ec566faa 100644
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.100.bb
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.101.bb
@@ -10,10 +10,9 @@ LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c5
PROVIDES = "drm"
DEPENDS = "libpthread-stubs"
-SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \
- file://musl-ioctl.patch"
-SRC_URI[md5sum] = "f47bc87e28198ba527e6b44ffdd62f65"
-SRC_URI[sha256sum] = "c77cc828186c9ceec3e56ae202b43ee99eb932b4a87255038a80e8a1060d0a5d"
+SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz"
+SRC_URI[md5sum] = "e6a6f1b88963210b3d62acd7310a1cc7"
+SRC_URI[sha256sum] = "ddf31baa8e49473624860bd166ce654dc349873f7a6c7b3305964249315c78a7"
inherit meson pkgconfig manpages
diff --git a/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb b/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb
index b179a0ed4..d1c093054 100644
--- a/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb
+++ b/poky/meta/recipes-graphics/freetype/freetype_2.10.1.bb
@@ -27,7 +27,7 @@ AUTOTOOLS_SCRIPT_PATH = "${S}/builds/unix"
CONFIGURE_SCRIPT = "${S}/configure"
EXTRA_AUTORECONF += "--exclude=autoheader --exclude=automake"
-PACKAGECONFIG ??= "zlib"
+PACKAGECONFIG ??= "zlib pixmap"
PACKAGECONFIG[bzip2] = "--with-bzip2,--without-bzip2,bzip2"
# harfbuzz results in a circular dependency so enabling is non-trivial
diff --git a/poky/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch b/poky/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch
deleted file mode 100644
index 64f3e2fd9..000000000
--- a/poky/meta/recipes-graphics/glew/glew/0001-Fixed-compilation-with-current-mesa-versions.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 7f65a36866f4e24dd1446fe1c9d21424f28bcabd Mon Sep 17 00:00:00 2001
-From: Deve <deveee@gmail.com>
-Date: Wed, 14 Nov 2018 21:07:29 +0100
-Subject: [PATCH] Fixed compilation with current mesa versions.
-
-As you can see in
-https://cgit.freedesktop.org/mesa/mesa/tree/include/GL/glext.h
-now the file uses __gl_glext_h_ instead of __glext_h_
-It's precisely caused by commit f7d42ee7d319256608ad60778f6787c140badada
-
-Backoprt notes:
-
-* The original patch adjusts auto/src/glew_head.h only
-* include/GL/glew.h is not part of git repo and gets created on tarball
- creation
-
-=> patch include/GL/glew.h either to cause the desired fix
-
-Upstream-Status: Backport [1]
-
-[1] https://github.com/nigels-com/glew/commit/7f65a36866f4e24dd1446fe1c9d21424f28bcabd
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- auto/src/glew_head.h | 3 ++-
- include/GL/glew.h | 3 ++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/auto/src/glew_head.h b/auto/src/glew_head.h
-index c19cefb..8f313d9 100644
---- a/auto/src/glew_head.h
-+++ b/auto/src/glew_head.h
-@@ -14,7 +14,7 @@
- #if defined(__REGAL_H__)
- #error Regal.h included before glew.h
- #endif
--#if defined(__glext_h_) || defined(__GLEXT_H_)
-+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_)
- #error glext.h included before glew.h
- #endif
- #if defined(__gl_ATI_h_)
-@@ -30,6 +30,7 @@
- #define __X_GL_H
- #define __glext_h_
- #define __GLEXT_H_
-+#define __gl_glext_h_
- #define __gl_ATI_h_
-
- #if defined(_WIN32)
-diff --git a/include/GL/glew.h b/include/GL/glew.h
-index b5b6987..a9f9e4b 100644
---- a/include/GL/glew.h
-+++ b/include/GL/glew.h
-@@ -93,7 +93,7 @@
- #if defined(__REGAL_H__)
- #error Regal.h included before glew.h
- #endif
--#if defined(__glext_h_) || defined(__GLEXT_H_)
-+#if defined(__glext_h_) || defined(__GLEXT_H_) || defined(__gl_glext_h_)
- #error glext.h included before glew.h
- #endif
- #if defined(__gl_ATI_h_)
-@@ -109,6 +109,7 @@
- #define __X_GL_H
- #define __glext_h_
- #define __GLEXT_H_
-+#define __gl_glext_h_
- #define __gl_ATI_h_
-
- #if defined(_WIN32)
---
-2.20.1
-
diff --git a/poky/meta/recipes-graphics/glew/glew_2.1.0.bb b/poky/meta/recipes-graphics/glew/glew_2.2.0.bb
index f6f43406f..8948444e0 100644
--- a/poky/meta/recipes-graphics/glew/glew_2.1.0.bb
+++ b/poky/meta/recipes-graphics/glew/glew_2.2.0.bb
@@ -6,11 +6,10 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ac251558de685c6b9478d89be3149c2"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
- file://no-strip.patch \
- file://0001-Fixed-compilation-with-current-mesa-versions.patch"
+ file://no-strip.patch"
-SRC_URI[md5sum] = "b2ab12331033ddfaa50dc39345343980"
-SRC_URI[sha256sum] = "04de91e7e6763039bc11940095cd9c7f880baba82196a7765f727ac05a993c95"
+SRC_URI[md5sum] = "3579164bccaef09e36c0af7f4fd5c7c7"
+SRC_URI[sha256sum] = "d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/glew/files/glew"
UPSTREAM_CHECK_REGEX = "/glew/(?P<pver>(\d+[\.\-_]*)+)/"
@@ -22,8 +21,8 @@ REQUIRED_DISTRO_FEATURES = "opengl"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'opengl', 'egl-gles2', d)}"
# The opengl and egl-XXX options are exclusive, enable only one.
-PACKAGECONFIG[opengl] = "SYSTEM='linux',,virtual/libx11 virtual/libgl libglu libxext libxi libxmu"
-PACKAGECONFIG[egl-gles2] = "SYSTEM='linux-egl' GLEW_NO_GLU='-DGLEW_NO_GLU' LDFLAGS.GL='-lEGL -lGLESv2',,virtual/egl virtual/libgles2"
+PACKAGECONFIG[opengl] = "SYSTEM='linux',,virtual/libx11 virtual/libgl libglu libxext libxi libxmu,,,egl-gles2"
+PACKAGECONFIG[egl-gles2] = "SYSTEM='linux-egl' GLEW_NO_GLU='-DGLEW_NO_GLU' LDFLAGS.GL='-lEGL -lGLESv2',,virtual/egl virtual/libgles2,,,opengl"
CFLAGS += "-D_GNU_SOURCE"
# Override SYSTEM (via PACKAGECONFIG_CONFARGS) to avoid calling config.guess,
diff --git a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb
index 1cf854de6..1f49fd3d3 100644
--- a/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.3.bb
+++ b/poky/meta/recipes-graphics/jpeg/libjpeg-turbo_2.0.4.bb
@@ -14,8 +14,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
file://0001-libjpeg-turbo-fix-package_qa-error.patch \
"
-SRC_URI[md5sum] = "bd07fddf26f9def7bab02739eb655116"
-SRC_URI[sha256sum] = "4246de500544d4ee408ee57048aa4aadc6f165fc17f141da87669f20ed3241b7"
+SRC_URI[md5sum] = "d01d9e0c28c27bc0de9f4e2e8ff49855"
+SRC_URI[sha256sum] = "33dd8547efd5543639e890efbf2ef52d5a21df81faf41bb940657af916a23406"
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/libjpeg-turbo/files/"
UPSTREAM_CHECK_REGEX = "/libjpeg-turbo/files/(?P<pver>(\d+[\.\-_]*)+)/"
@@ -29,6 +29,8 @@ RCONFLICTS_${PN} += "jpeg"
inherit cmake pkgconfig
+export NASMENV = "--debug-prefix-map=${WORKDIR}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+
# Add nasm-native dependency consistently for all build arches is hard
EXTRA_OECMAKE_append_class-native = " -DWITH_SIMD=False"
EXTRA_OECMAKE_append_class-nativesdk = " -DWITH_SIMD=False"
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index 82720045b..a1a295f66 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -6,7 +6,7 @@ DEPENDS = "virtual/libgles2 virtual/egl libdrm"
LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
-SRCREV = "f632b23a528ed6b4e1fddd774db005c30ab65568"
+SRCREV = "76bb57d539cb43d267e561024c34e031bf351e04"
SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \
file://detect-gst_bo_map-_unmap-and-use-it-or-avoid-it.patch"
UPSTREAM_CHECK_COMMITS = "1"
diff --git a/poky/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch b/poky/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch
new file mode 100644
index 000000000..726294518
--- /dev/null
+++ b/poky/meta/recipes-graphics/libepoxy/files/0001-dispatch_common.h-define-also-EGL_NO_X11.patch
@@ -0,0 +1,26 @@
+From 6f15cc28d17cfdd86f5974f06ad97b8afedd5627 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 25 Oct 2019 11:09:34 +0000
+Subject: [PATCH] dispatch_common.h: define also EGL_NO_X11
+
+MESA_EGL_NO_X11_HEADERS was renamed to EGL_NO_X11 in:
+https://github.com/mesa3d/mesa/commit/6202a13b71e18dc31ba7e2f4ea915b67eacc1ddb
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending
+---
+ src/dispatch_common.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/dispatch_common.h b/src/dispatch_common.h
+index dcb3a35..c206253 100644
+--- a/src/dispatch_common.h
++++ b/src/dispatch_common.h
+@@ -52,6 +52,7 @@
+ * should do the same
+ */
+ # define MESA_EGL_NO_X11_HEADERS 1
++# define EGL_NO_X11 1
+ # endif
+ #include "epoxy/egl.h"
+ #endif
diff --git a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
index 71a2c9135..af9867407 100644
--- a/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.3.bb
+++ b/poky/meta/recipes-graphics/libepoxy/libepoxy_1.5.4.bb
@@ -10,9 +10,10 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=58ef4c80d401e07bd9ee8b6b58cf464b"
SRC_URI = "https://github.com/anholt/${BPN}/releases/download/${PV}/${BP}.tar.xz \
+ file://0001-dispatch_common.h-define-also-EGL_NO_X11.patch \
"
-SRC_URI[md5sum] = "e2845de8d2782b2d31c01ae8d7cd4cbb"
-SRC_URI[sha256sum] = "002958c5528321edd53440235d3c44e71b5b1e09b9177e8daf677450b6c4433d"
+SRC_URI[md5sum] = "00f47ad447321f9dc59f85bc1c9d0467"
+SRC_URI[sha256sum] = "0bd2cc681dfeffdef739cb29913f8c3caa47a88a451fd2bc6e606c02997289d2"
UPSTREAM_CHECK_URI = "https://github.com/anholt/libepoxy/releases"
inherit meson pkgconfig features_check
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch
deleted file mode 100644
index 674decccb..000000000
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 85138c1ec673e05263ae666baf61f79384daf7e0 Mon Sep 17 00:00:00 2001
-From: Sam Lantinga <slouken@libsdl.org>
-Date: Tue, 30 Jul 2019 11:00:00 -0700
-Subject: [PATCH] Fixed bug 4538 - validate image size when loading BMP files
-
-Upstream-Status: Backport
-[https://hg.libsdl.org/SDL/rev/e7ba650a643a]
-
-CVE: CVE-2019-13616
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- src/video/SDL_bmp.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/video/SDL_bmp.c b/src/video/SDL_bmp.c
-index 0b68918..a06b0c9 100644
---- a/src/video/SDL_bmp.c
-+++ b/src/video/SDL_bmp.c
-@@ -226,6 +226,11 @@ SDL_LoadBMP_RW(SDL_RWops * src, int freesrc)
- SDL_RWseek(src, (biSize - headerSize), RW_SEEK_CUR);
- }
- }
-+ if (biWidth <= 0 || biHeight == 0) {
-+ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight);
-+ was_error = SDL_TRUE;
-+ goto done;
-+ }
- if (biHeight < 0) {
- topDown = SDL_TRUE;
- biHeight = -biHeight;
---
-2.7.4
-
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch
deleted file mode 100644
index b383bd654..000000000
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2/0001-configure-check-for-build-dir-when-building-version-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-# HG changeset patch
-# User Anuj Mittal <am.devel@gmail.com>
-# Date 1573631462 -10800
-# Node ID 1fb1880d5edfc7c5a370846e13f90b260263627c
-# Parent 007002587d5d34d781c2b628c05e992e0ac5f52d
-configure: check for build dir when building version res (fix bug #4858)
-Fixes a race where we try to build version res file in build directory
-before it has even been created. Prevents errors like:
-
-/bin/bash ../SDL2-2.0.10/build-scripts/updaterev.sh
-/bin/bash ../SDL2-2.0.10/build-scripts/mkinstalldirs build
-mkdir -p -- build
-x86_64-pokysdk-mingw32-windres --include-dir=/home/pokybuild/yocto-worker/meta-mingw/build/build/tmp/work/x86_64-nativesdk-mingw32-pokysdk-mingw32/nativesdk-libsdl2/2.0.10-r0/recipe-sysroot/opt/poky/3.0/sysroots/x86_64-pokysdk-mingw32/usr/include ../SDL2-2.0.10/src/main/windows/version.rc build/version.o
-x86_64-pokysdk-mingw32-windres: build/version.o: No such file or directory
-Makefile:692: recipe for target 'build/version.o' failed
-make: *** [build/version.o] Error 1
-make: *** Waiting for unfinished jobs....
-touch build/.created
-WARNING: exit code 1 from a shell command.
-
-Extension of fix:
-https://hg.libsdl.org/SDL/rev/99d8b18acf8a
-
-Upstream-Status: Backport
-Signed-off-by: Anuj Mittal <am.devel@gmail.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff -r 007002587d5d -r 1fb1880d5edf configure
---- a/configure Tue Nov 12 17:24:37 2019 -0500
-+++ b/configure Wed Nov 13 10:51:02 2019 +0300
-@@ -25493,7 +25493,7 @@
- VERSION_DEPENDS=`echo $VERSION_SOURCES`
- VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[^ ]*/\([^ ]*\)\.rc,$(objects)/\1.o,g'`
- VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([^ ]*\\)/\\([^ ]*\\)\\.rc,\\\\
--\\$(objects)/\\2.o: \\1/\\2.rc\\\\
-+\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
- \\$(WINDRES) \\$< \\$@,g"`
-
- SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
-diff -r 007002587d5d -r 1fb1880d5edf configure.ac
---- a/configure.ac Tue Nov 12 17:24:37 2019 -0500
-+++ b/configure.ac Wed Nov 13 10:51:02 2019 +0300
-@@ -4177,7 +4177,7 @@
- VERSION_DEPENDS=`echo $VERSION_SOURCES`
- VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
- VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
--\\$(objects)/\\2.o: \\1/\\2.rc\\\\
-+\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
- \\$(WINDRES) \\$< \\$@,g"`
-
- SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch b/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch
deleted file mode 100644
index 8f5b6a0ce..000000000
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2/0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-# HG changeset patch
-# User Sylvain Becker <sylvain.becker@gmail.com>
-# Date 1570898876 -7200
-# Sat Oct 12 18:47:56 2019 +0200
-# Node ID 369b01006eb2f6fd563f7c315d29ae3fe503c432
-# Parent 4cbaffd0083b8cd17070dbd9d4ab1ce0fa9fca2d
-Fixed bug 4797 - SDL fails to compile with Mesa Master (thanks Michael Olbrich!)
-
-fix building with Mesa 19.2
-
-With Mesa 19.2 building fails with:
-
-/include/GLES/gl.h:63:25: error: conflicting types for 'GLsizeiptr'
-
-The same type is defined in include/SDL_opengl.h for OpenGL and the two
-headers should not be included at the same time.
-This was just never noticed because the same header guard '__gl_h_' was
-used. This was changed in Mesa. The result is this error.
-
-Fix this the same way GLES2 already handles this: Don't include the GLES
-header when the OpenGL header was already included.
-(https://hg.libsdl.org/SDL/rev/a60b3c292f0f)
-
-Upstream-Status: Backport [https://hg.libsdl.org/SDL/rev/369b01006eb2]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
-
-diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c
---- a/src/video/SDL_video.c
-+++ b/src/video/SDL_video.c
-@@ -37,9 +37,9 @@
- #include "SDL_opengl.h"
- #endif /* SDL_VIDEO_OPENGL */
-
--#if SDL_VIDEO_OPENGL_ES
-+#if SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL
- #include "SDL_opengles.h"
--#endif /* SDL_VIDEO_OPENGL_ES */
-+#endif /* SDL_VIDEO_OPENGL_ES && !SDL_VIDEO_OPENGL */
-
- /* GL and GLES2 headers conflict on Linux 32 bits */
- #if SDL_VIDEO_OPENGL_ES2 && !SDL_VIDEO_OPENGL
diff --git a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
index ac4a35604..c1c941e45 100644
--- a/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.10.bb
+++ b/poky/meta/recipes-graphics/libsdl2/libsdl2_2.0.12.bb
@@ -8,21 +8,22 @@ BUGTRACKER = "http://bugzilla.libsdl.org/"
SECTION = "libs"
LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=504a9454ceb89fd75a2583473b11409e"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=2d4af6adb4d89aad0cdedbcc18c9a32f"
+
+# arm-neon adds MIT license
+LICENSE_append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', '& MIT', '', d)}"
+LIC_FILES_CHKSUM_append = " ${@bb.utils.contains('PACKAGECONFIG', 'arm-neon', 'file://src/video/arm/pixman-arm-neon-asm.h;md5=9a9cc1e51abbf1da58f4d9528ec9d49b;beginline=1;endline=24', '', d)}"
PROVIDES = "virtual/libsdl2"
SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
file://more-gen-depends.patch \
- file://0001-Fixed-bug-4538-validate-image-size-when-loading-BMP-.patch \
- file://0002-Fixed-bug-4797-SDL-fails-to-compile-with-Mesa-Master.patch \
- file://0001-configure-check-for-build-dir-when-building-version-.patch \
"
S = "${WORKDIR}/SDL2-${PV}"
-SRC_URI[md5sum] = "5a2114f2a6f348bdab5bf52b994811db"
-SRC_URI[sha256sum] = "b4656c13a1f0d0023ae2f4a9cf08ec92fffb464e0f24238337784159b8b91d57"
+SRC_URI[md5sum] = "783b6f2df8ff02b19bb5ce492b99c8ff"
+SRC_URI[sha256sum] = "349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863"
inherit autotools lib_package binconfig-disabled pkgconfig
@@ -37,6 +38,7 @@ EXTRA_OECONF = "--disable-oss --disable-esd --disable-arts \
--enable-sdl-dlopen \
--disable-rpath \
--disable-sndio \
+ --disable-fcitx --disable-ibus \
"
# opengl packageconfig factored out to make it easy for distros
@@ -49,8 +51,10 @@ PACKAGECONFIG ??= " \
${PACKAGECONFIG_GL} \
${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland gles2', '', d)} \
+ ${@bb.utils.contains("TUNE_FEATURES", "neon","arm-neon","",d)} \
"
PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib,"
+PACKAGECONFIG[arm-neon] = "--enable-arm-neon,--disable-arm-neon"
PACKAGECONFIG[directfb] = "--enable-video-directfb,--disable-video-directfb,directfb"
PACKAGECONFIG[gles2] = "--enable-video-opengles,--disable-video-opengles,virtual/libgles2"
PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
diff --git a/poky/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch b/poky/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch
deleted file mode 100644
index 01fb71913..000000000
--- a/poky/meta/recipes-graphics/libva/libva-utils/0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8fc14e4bc81885b80c3072e549c2e6f59533d7ef Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Fri, 8 Feb 2019 11:45:55 +0800
-Subject: [PATCH] Build sfcsample only when X11 backend is enabled
-
-See: https://github.com/intel/libva-utils/pull/149, and
-https://github.com/intel/libva-utils/issues/150
-
-Upstream-Status: Submitted
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- Makefile.am | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index d28175a..e294e25 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -24,10 +24,11 @@ ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
-
- AUTOMAKE_OPTIONS = foreign
-
--SUBDIRS = common decode encode vainfo videoprocess vendor/intel vendor/intel/sfcsample
-+SUBDIRS = common decode encode vainfo videoprocess vendor/intel
-
- if USE_X11
- SUBDIRS += putsurface
-+SUBDIRS += vendor/intel/sfcsample
- else
- if USE_WAYLAND
- SUBDIRS += putsurface
---
-2.17.1
-
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb
index f68d0cf8b..03b38027a 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.5.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.6.0.bb
@@ -14,22 +14,19 @@ SECTION = "x11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
-SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2 \
- file://0001-Build-sfcsample-only-when-X11-backend-is-enabled.patch \
- "
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.6-branch"
+SRCREV = "8ea1eba433dcbceb0e5dcb54b8e3f984987f7a17"
+S = "${WORKDIR}/git"
-SRC_URI[md5sum] = "c1fada26c286654859eff33b2562cb79"
-SRC_URI[sha256sum] = "9238c9d5110d60f935683390b8383fdac3507346384cd5f117a23c6db1d72a17"
-
-UPSTREAM_CHECK_URI = "https://github.com/intel/libva-utils/releases"
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))"
DEPENDS = "libva"
-inherit autotools pkgconfig features_check
+inherit meson pkgconfig features_check
# depends on libva which requires opengl
REQUIRED_DISTRO_FEATURES = "opengl"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland"
+PACKAGECONFIG[x11] = "-Dx11=true, -Dx11=false,virtual/libx11 libxext libxfixes"
+PACKAGECONFIG[wayland] = "-Dwayland=true, -Dwayland=false,wayland-native wayland"
diff --git a/poky/meta/recipes-graphics/libva/libva_2.5.0.bb b/poky/meta/recipes-graphics/libva/libva_2.6.1.bb
index 73e2e01c3..92cea83bc 100644
--- a/poky/meta/recipes-graphics/libva/libva_2.5.0.bb
+++ b/poky/meta/recipes-graphics/libva/libva_2.6.1.bb
@@ -18,23 +18,20 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
SRC_URI = "https://github.com/intel/${BPN}/releases/download/${PV}/${BP}.tar.bz2"
-
-SRC_URI[md5sum] = "3688212fb7a87947070f3729e91ff7cf"
-SRC_URI[sha256sum] = "3aa89cd369a506ac4dbe5de7c0ef5da4f3d220bf986403f02fa1f6f702af6878"
+SRC_URI[md5sum] = "aef13eb48e01a47d1416d97462a22a11"
+SRC_URI[sha256sum] = "6c57eb642d828af2411aa38f55dc10111e8c98976dbab8fd62e48629401eaea5"
UPSTREAM_CHECK_URI = "https://github.com/intel/libva/releases"
DEPENDS = "libdrm virtual/mesa"
-inherit autotools pkgconfig features_check
+inherit meson pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "opengl"
-EXTRA_OECONF = "ac_cv_prog_WAYLAND_SCANNER=wayland-scanner"
-
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland x11', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,virtual/libx11 libxext libxfixes"
-PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland-native wayland"
+PACKAGECONFIG[x11] = "-Dwith_x11=yes, -Dwith_x11=no,virtual/libx11 libxext libxfixes"
+PACKAGECONFIG[wayland] = "-Dwith_wayland=yes, -Dwith_wayland=no,wayland-native wayland"
PACKAGES =+ "${PN}-x11 ${PN}-glx ${PN}-wayland"
diff --git a/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb b/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
index b9961c398..675ee40fa 100644
--- a/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
+++ b/poky/meta/recipes-graphics/matchbox-wm/matchbox-wm_1.2.2.bb
@@ -21,6 +21,8 @@ inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
+CFLAGS += "-fcommon"
+
FILES_${PN} = "${bindir}/* \
${datadir}/matchbox \
${sysconfdir}/matchbox \
diff --git a/poky/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb b/poky/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb
index ddbbd9406..7a11228ef 100644
--- a/poky/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb
+++ b/poky/meta/recipes-graphics/menu-cache/menu-cache_1.1.0.bb
@@ -16,3 +16,5 @@ SRC_URI[sha256sum] = "ed02eb459dcb398f69b9fa5bf4dd813020405afc84331115469cdf7be9
UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/lxde/files/menu-cache/1.1/"
inherit autotools gettext pkgconfig gtk-doc
+
+CFLAGS += "-fcommon"
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
new file mode 100644
index 000000000..15485feb7
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson-misdetects-64bit-atomics-on-mips-clang.patch
@@ -0,0 +1,27 @@
+From bb2f0bea553d51d659a9bc46f7ae186885405151 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Jan 2020 15:23:47 -0800
+Subject: [PATCH] meson misdetects 64bit atomics on mips/clang
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/util/u_atomic.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/util/u_atomic.c b/src/util/u_atomic.c
+index e4bffa8..58e1ddd 100644
+--- a/src/util/u_atomic.c
++++ b/src/util/u_atomic.c
+@@ -21,7 +21,7 @@
+ * IN THE SOFTWARE.
+ */
+
+-#if defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
++#if !defined(__clang__) && defined(MISSING_64BIT_ATOMICS) && defined(HAVE_PTHREAD)
+
+ #include <stdint.h>
+ #include <pthread.h>
+--
+2.24.1
+
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
index 1869e1105..085254323 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
@@ -1,6 +1,6 @@
-From b6d9bc97cb0e8c540a45dba5440b036fb940ff95 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Mon, 11 Nov 2019 09:38:15 -0800
+From 0d9ed002eff176b902da266d89829a9b0cb10946 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair@alistair23.me>
+Date: Thu, 14 Nov 2019 13:04:49 -0800
Subject: [PATCH] meson.build: check for all linux host_os combinations
Make sure that we are also looking for our host_os combinations like
@@ -13,30 +13,30 @@ Upstream-Status: Pending
Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Signed-off-by: Alistair Francis <alistair@alistair23.me>
---
meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
-index d584152..a1f098c 100644
+index 898d025..09e3759 100644
--- a/meson.build
+++ b/meson.build
-@@ -117,7 +117,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
+@@ -124,7 +124,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
# Only build shared_glapi if at least one OpenGL API is enabled
- with_shared_glapi = get_option('shared-glapi') and with_any_opengl
+ with_shared_glapi = with_shared_glapi and with_any_opengl
-system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'gnu/kfreebsd', 'dragonfly', 'linux', 'sunos'].contains(host_machine.system())
+system_has_kms_drm = ['openbsd', 'netbsd', 'freebsd', 'dragonfly'].contains(host_machine.system()) or host_machine.system().startswith('linux')
dri_drivers = get_option('dri-drivers')
if dri_drivers.contains('auto')
-@@ -856,7 +856,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }',
+@@ -884,7 +884,7 @@ if cc.compiles('__uint128_t foo(void) { return 0; }',
endif
# TODO: this is very incomplete
--if ['linux', 'cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system())
+-if ['linux', 'cygwin', 'gnu', 'freebsd', 'gnu/kfreebsd'].contains(host_machine.system())
+if ['cygwin', 'gnu', 'gnu/kfreebsd'].contains(host_machine.system()) or host_machine.system().startswith('linux')
pre_args += '-D_GNU_SOURCE'
elif host_machine.system() == 'sunos'
diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
index 199ed572d..cd35a1f85 100644
--- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
@@ -1,13 +1,13 @@
-From af6923544de02ded648a736e07b9bd8b7c52dba9 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Wed, 23 Oct 2019 09:46:28 -0700
+From df835389699b32bb6610b39972502e323f8e09e5 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair@alistair23.me>
+Date: Thu, 14 Nov 2019 13:08:31 -0800
Subject: [PATCH] meson.build: make TLS ELF optional
USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make
TLS GLX optional again" patch updated to the latest mesa.
Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Signed-off-by: Alistair Francis <alistair@alistair23.me>
---
meson.build | 2 +-
@@ -15,23 +15,23 @@ Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index a1f098c..1e31eb4 100644
+index 09e3759..a954118 100644
--- a/meson.build
+++ b/meson.build
-@@ -378,7 +378,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
+@@ -387,7 +387,7 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
endif
# Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
--if not with_platform_android or get_option('platform-sdk-version') >= 29
+-if host_machine.system() != 'windows' and (not with_platform_android or get_option('platform-sdk-version') >= 29)
+if (not with_platform_android or get_option('platform-sdk-version') >= 29) and get_option('elf-tls')
pre_args += '-DUSE_ELF_TLS'
endif
diff --git a/meson_options.txt b/meson_options.txt
-index b768c15..76cef24 100644
+index 626baf3..637ff14 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -333,6 +333,12 @@ option(
+@@ -341,6 +341,12 @@ option(
value : true,
description : 'Enable direct rendering in GLX and EGL for DRI',
)
diff --git a/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch b/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
index c20a1f7c5..a0536c87a 100644
--- a/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0003-Allow-enable-DRI-without-DRI-drivers.patch
@@ -1,4 +1,4 @@
-From 5ad6515238bc042cccf9959abad44fdee9aeb07f Mon Sep 17 00:00:00 2001
+From 7eaa21a79ce6d6e92f6bf98c28b68e3fcb4d7874 Mon Sep 17 00:00:00 2001
From: Fabio Berton <fabio.berton@ossystems.com.br>
Date: Wed, 12 Jun 2019 14:18:31 -0300
Subject: [PATCH] Allow enable DRI without DRI drivers
@@ -15,10 +15,10 @@ Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
-index 1e31eb4..512eec6 100644
+index a954118..62864c6 100644
--- a/meson.build
+++ b/meson.build
-@@ -147,7 +147,7 @@ with_dri_r200 = dri_drivers.contains('r200')
+@@ -154,7 +154,7 @@ with_dri_r200 = dri_drivers.contains('r200')
with_dri_nouveau = dri_drivers.contains('nouveau')
with_dri_swrast = dri_drivers.contains('swrast')
@@ -28,10 +28,10 @@ index 1e31eb4..512eec6 100644
gallium_drivers = get_option('gallium-drivers')
if gallium_drivers.contains('auto')
diff --git a/meson_options.txt b/meson_options.txt
-index 76cef24..a8abd04 100644
+index 637ff14..700c34c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -34,6 +34,12 @@ option(
+@@ -35,6 +35,12 @@ option(
choices : ['auto', 'true', 'false'],
description : 'enable support for dri3'
)
diff --git a/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch b/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
index b5658d0c9..8d614e571 100644
--- a/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
@@ -1,4 +1,4 @@
-From 1b1cb6e5ea25eaa98573328b9565728a08245997 Mon Sep 17 00:00:00 2001
+From 41cd8836d785c79381764e7de59319f87959a5cf Mon Sep 17 00:00:00 2001
From: Alistair Francis <alistair@alistair23.me>
Date: Thu, 14 Nov 2019 09:06:02 -0800
Subject: [PATCH] Revert "mesa: Enable asm unconditionally, now that
@@ -15,7 +15,7 @@ Signed-off-by: Alistair Francis <alistair@alistair23.me>
2 files changed, 67 insertions(+), 33 deletions(-)
diff --git a/meson.build b/meson.build
-index 512eec6..a2bcc3a 100644
+index 62864c6..b53be8d 100644
--- a/meson.build
+++ b/meson.build
@@ -49,6 +49,7 @@ with_vulkan_icd_dir = get_option('vulkan-icd-dir')
@@ -26,7 +26,7 @@ index 512eec6..a2bcc3a 100644
with_glx_read_only_text = get_option('glx-read-only-text')
with_glx_direct = get_option('glx-direct')
with_osmesa = get_option('osmesa')
-@@ -985,41 +986,68 @@ endif
+@@ -1093,41 +1094,68 @@ dep_ws2_32 = cc.find_library('ws2_32', required : with_platform_windows)
# TODO: shared/static? Is this even worth doing?
@@ -129,10 +129,10 @@ index 512eec6..a2bcc3a 100644
endif
diff --git a/meson_options.txt b/meson_options.txt
-index a8abd04..0f4bd80 100644
+index 700c34c..62e8472 100644
--- a/meson_options.txt
+++ b/meson_options.txt
-@@ -233,6 +233,12 @@ option(
+@@ -241,6 +241,12 @@ option(
value : false,
description : 'Enable GLVND support.'
)
diff --git a/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch b/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch
new file mode 100644
index 000000000..901feca55
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/files/0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch
@@ -0,0 +1,53 @@
+From 38a313474e127d61e749866423e708fc86ed9ec5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 4 Dec 2019 14:15:28 -0800
+Subject: [PATCH] vc4: use intmax_t for formatted output of timespec members
+
+32bit architectures which have 64bit time_t does not fit the assumption
+of time_t being same as system long int
+
+Fixes
+error: format specifies type 'long' but the argument has type 'time_t' (aka 'long long') [-Werror,-Wformat]
+ time.tv_sec);
+ ^~~~~~~~~~~
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2966]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/gallium/drivers/v3d/v3d_bufmgr.c | 4 ++--
+ src/gallium/drivers/vc4/vc4_bufmgr.c | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/gallium/drivers/v3d/v3d_bufmgr.c b/src/gallium/drivers/v3d/v3d_bufmgr.c
+index b3e4d053cc0..c514bf00bf0 100644
+--- a/src/gallium/drivers/v3d/v3d_bufmgr.c
++++ b/src/gallium/drivers/v3d/v3d_bufmgr.c
+@@ -80,8 +80,8 @@ v3d_bo_dump_stats(struct v3d_screen *screen)
+
+ struct timespec time;
+ clock_gettime(CLOCK_MONOTONIC, &time);
+- fprintf(stderr, " now: %ld\n",
+- time.tv_sec);
++ fprintf(stderr, " now: %jd\n",
++ (intmax_t)time.tv_sec);
+ }
+ }
+
+diff --git a/src/gallium/drivers/vc4/vc4_bufmgr.c b/src/gallium/drivers/vc4/vc4_bufmgr.c
+index 5ec360934c0..bf05f6cadd6 100644
+--- a/src/gallium/drivers/vc4/vc4_bufmgr.c
++++ b/src/gallium/drivers/vc4/vc4_bufmgr.c
+@@ -107,8 +107,8 @@ vc4_bo_dump_stats(struct vc4_screen *screen)
+
+ struct timespec time;
+ clock_gettime(CLOCK_MONOTONIC, &time);
+- fprintf(stderr, " now: %ld\n",
+- time.tv_sec);
++ fprintf(stderr, " now: %jd\n",
++ (intmax_t)time.tv_sec);
+ }
+ }
+
+--
+2.24.0
+
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb
deleted file mode 100644
index d4b1c1c45..000000000
--- a/poky/meta/recipes-graphics/mesa/mesa-gl_19.2.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require mesa_${PV}.bb
-
-SUMMARY += " (OpenGL only, no EGL/GLES)"
-
-PROVIDES = "virtual/libgl virtual/mesa"
-
-S = "${WORKDIR}/mesa-${PV}"
-
-PACKAGECONFIG ??= "opengl dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.2.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.2.bb
new file mode 100644
index 000000000..c7897cdaf
--- /dev/null
+++ b/poky/meta/recipes-graphics/mesa/mesa-gl_20.0.2.bb
@@ -0,0 +1,15 @@
+require mesa_${PV}.bb
+
+SUMMARY += " (OpenGL only, no EGL/GLES)"
+
+PROVIDES = "virtual/libgl virtual/mesa"
+
+S = "${WORKDIR}/mesa-${PV}"
+
+# At least one DRI rendering engine is required to build mesa.
+# When no X11 is available, use osmesa for the rendering engine.
+PACKAGECONFIG ??= "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}"
+PACKAGECONFIG_class-target = "opengl dri ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'osmesa', d)}"
+
+# When NOT using X11, we need to make sure we have swrast available.
+DRIDRIVERS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', ',swrast', d)}"
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 5838207e6..b7ef496fd 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -10,7 +10,7 @@ HOMEPAGE = "http://mesa3d.org"
BUGTRACKER = "https://bugs.freedesktop.org"
SECTION = "x11"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://docs/license.html;md5=3a4999caf82cc503ac8b9e37c235782e"
+LIC_FILES_CHKSUM = "file://docs/license.html;md5=c1843d93c460bbf778d6037ce324f9f7"
PE = "2"
@@ -46,6 +46,19 @@ export WANT_LLVM_RELEASE = "${MESA_LLVM_RELEASE}"
MESA_LLVM_RELEASE ?= "${LLVMVERSION}"
+# set the MESA_BUILD_TYPE to either 'release' (default) or 'debug'
+# by default the upstream mesa sources build a debug release
+# here we assume the user will want a release build by default
+MESA_BUILD_TYPE ?= "release"
+def check_buildtype(d):
+ _buildtype = d.getVar('MESA_BUILD_TYPE')
+ if _buildtype not in ['release', 'debug']:
+ bb.fatal("unknown build type (%s), please set MESA_BUILD_TYPE to either 'release' or 'debug'" % _buildtype)
+ if _buildtype == 'debug':
+ return 'debugoptimized'
+ return 'plain'
+MESON_BUILDTYPE = "${@check_buildtype(d)}"
+
EXTRA_OEMESON = " \
-Dshared-glapi=true \
-Dgallium-opencl=disabled \
@@ -54,7 +67,7 @@ EXTRA_OEMESON = " \
"
PACKAGECONFIG_class-target ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland vulkan', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'opengl egl gles gbm dri gallium virgl', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
elf-tls \
@@ -119,10 +132,11 @@ GALLIUMDRIVERS_LLVM33_ENABLED = "${@oe.utils.version_less_or_equal('MESA_LLVM_RE
GALLIUMDRIVERS_LLVM = "r300,svga,nouveau${@',${GALLIUMDRIVERS_LLVM33}' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"
PACKAGECONFIG[r600] = ""
+PACKAGECONFIG[virgl] = ""
GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'gallium-llvm', ',${GALLIUMDRIVERS_LLVM}', '', d)}"
GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'r600', ',r600', '', d)}"
-GALLIUMDRIVERS_append = ",virgl"
+GALLIUMDRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'virgl', ',virgl', '', d)}"
PACKAGECONFIG[gallium] = "-Dgallium-drivers=${GALLIUMDRIVERS}, -Dgallium-drivers=''"
PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, llvm${MESA_LLVM_RELEASE} llvm-native \
@@ -147,6 +161,7 @@ EXTRA_OEMESON_append = " -Dasm=false"
FULL_OPTIMIZATION_append = " -fno-omit-frame-pointer"
CFLAGS_append_armv5 = " -DMISSING_64BIT_ATOMICS"
+CFLAGS_append_armv6 = " -DMISSING_64BIT_ATOMICS"
# Remove the mesa dependency on mesa-dev, as mesa is empty
RDEPENDS_${PN}-dev = ""
diff --git a/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb b/poky/meta/recipes-graphics/mesa/mesa_20.0.2.bb
index f4b33df22..56ee28c87 100644
--- a/poky/meta/recipes-graphics/mesa/mesa_19.2.4.bb
+++ b/poky/meta/recipes-graphics/mesa/mesa_20.0.2.bb
@@ -5,17 +5,21 @@ SRC_URI = "https://mesa.freedesktop.org/archive/mesa-${PV}.tar.xz \
file://0002-meson.build-make-TLS-ELF-optional.patch \
file://0003-Allow-enable-DRI-without-DRI-drivers.patch \
file://0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch \
+ file://0005-vc4-use-intmax_t-for-formatted-output-of-timespec-me.patch \
+ file://0001-meson-misdetects-64bit-atomics-on-mips-clang.patch \
"
-SRC_URI[md5sum] = "5c047732b81651ddb341597528b4b096"
-SRC_URI[sha256sum] = "09000a0f7dbbd82e193b81a8f1bf0c118eab7ca975c0329181968596e548e30f"
+SRC_URI[md5sum] = "31ca59cd92c38cb8e1a58b62b01c3e08"
+SRC_URI[sha256sum] = "aa54f1cb669550606aab8ceb475105d15aeb814fca5a778ce70d0fd10e98e86f"
UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
+CFLAGS += "-fcommon"
+
#because we cannot rely on the fact that all apps will use pkgconfig,
#make eglplatform.h independent of MESA_EGL_NO_X11_HEADER
do_install_append() {
if ${@bb.utils.contains('PACKAGECONFIG', 'egl', 'true', 'false', d)}; then
- sed -i -e 's/^#if defined(MESA_EGL_NO_X11_HEADERS)$/#if defined(MESA_EGL_NO_X11_HEADERS) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
+ sed -i -e 's/^#elif defined(__unix__) && defined(EGL_NO_X11)$/#elif defined(__unix__) \&\& defined(EGL_NO_X11) || ${@bb.utils.contains('PACKAGECONFIG', 'x11', '0', '1', d)}/' ${D}${includedir}/EGL/eglplatform.h
fi
}
diff --git a/poky/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch b/poky/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch
new file mode 100644
index 000000000..03abf8763
--- /dev/null
+++ b/poky/meta/recipes-graphics/pango/pango/0001-Fix-build-reproducibility.patch
@@ -0,0 +1,31 @@
+From f8b32901981a06a8db4169b82a704dcf7e8b6560 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <JPEWhacker@gmail.com>
+Date: Wed, 20 Nov 2019 15:43:57 -0600
+Subject: [PATCH] Fix build reproducibility
+
+Changes the comment in pango-enum-types.c to reference the file basename
+instead of the full path. This ensures that the generated file is
+reproducible when it is included in source packages meant for debugging.
+
+Upstream-Status: Pending [https://gitlab.gnome.org/GNOME/pango/merge_requests/159]
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+---
+ pango/pango-enum-types.c.template | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pango/pango-enum-types.c.template b/pango/pango-enum-types.c.template
+index d922c691..0d55ef74 100644
+--- a/pango/pango-enum-types.c.template
++++ b/pango/pango-enum-types.c.template
+@@ -6,7 +6,7 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+--
+2.23.0
+
diff --git a/poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch b/poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch
deleted file mode 100644
index 3f9ebff33..000000000
--- a/poky/meta/recipes-graphics/pango/pango/0001-Skip-thai-break-tests-without-libthai.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 12beb39925b5a4574a7cfd86073b59bceb49f791 Mon Sep 17 00:00:00 2001
-From: Matthias Clasen <mclasen@redhat.com>
-Date: Wed, 4 Sep 2019 15:51:06 -0400
-Subject: [PATCH] Skip thai break tests without libthai
-
-If we don't have libthai, these tests fail.
-
-Closes: https://gitlab.gnome.org/GNOME/pango/issues/420
----
- tests/meson.build | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/tests/meson.build b/tests/meson.build
-index 4c22c12c..c617331f 100644
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -89,9 +89,12 @@ test_breaks_data = [
- 'breaks/one',
- 'breaks/two',
- 'breaks/three',
-- 'breaks/four',
- ]
-
-+if thai_dep.found()
-+ test_breaks_data += [ 'breaks/four', ]
-+endif
-+
- test_items_data = [
- 'itemize/one',
- ]
---
-2.20.1
-
diff --git a/poky/meta/recipes-graphics/pango/pango_1.44.6.bb b/poky/meta/recipes-graphics/pango/pango_1.44.7.bb
index 8138ef72c..0ee8abcc0 100644
--- a/poky/meta/recipes-graphics/pango/pango_1.44.6.bb
+++ b/poky/meta/recipes-graphics/pango/pango_1.44.7.bb
@@ -16,9 +16,9 @@ GNOMEBASEBUILDCLASS = "meson"
inherit gnomebase gtk-doc ptest-gnome upstream-version-is-even gobject-introspection
SRC_URI += "file://run-ptest \
- file://0001-Skip-thai-break-tests-without-libthai.patch"
-SRC_URI[archive.md5sum] = "db0a3243ba33e02aaa775412f8e5f412"
-SRC_URI[archive.sha256sum] = "3e1e41ba838737e200611ff001e3b304c2ca4cdbba63d200a20db0b0ddc0f86c"
+ file://0001-Fix-build-reproducibility.patch"
+SRC_URI[archive.md5sum] = "c75cc5b833d934d98e83343832e20e5d"
+SRC_URI[archive.sha256sum] = "66a5b6cc13db73efed67b8e933584509f8ddb7b10a8a40c3850ca4a985ea1b1f"
DEPENDS = "glib-2.0 glib-2.0-native fontconfig freetype virtual/libiconv cairo harfbuzz fribidi"
@@ -32,6 +32,10 @@ PACKAGECONFIG[thai] = ",,libthai"
GTKDOC_MESON_OPTION = "gtk_doc"
GIR_MESON_OPTION = 'introspection'
+do_configure_prepend_toolchain-clang() {
+ sed -i -e "/Werror=implicit-fallthrough/d" ${S}/meson.build
+}
+
LEAD_SONAME = "libpango-1.0*"
FILES_${PN} = "${bindir}/* ${libdir}/libpango*${SOLIBS}"
diff --git a/poky/meta/recipes-graphics/piglit/piglit_git.bb b/poky/meta/recipes-graphics/piglit/piglit_git.bb
index 696d438c5..58d10d6b9 100644
--- a/poky/meta/recipes-graphics/piglit/piglit_git.bb
+++ b/poky/meta/recipes-graphics/piglit/piglit_git.bb
@@ -10,7 +10,7 @@ SRC_URI = "git://gitlab.freedesktop.org/mesa/piglit.git;protocol=https \
"
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "0d1a47a4c10d4dd7225bd6510f8191684b31235e"
+SRCREV = "6126c2d4e476c7770d216ffa1932c10e2a5a7813"
# (when PV goes above 1.0 remove the trailing r)
PV = "1.0+gitr${SRCPV}"
@@ -44,6 +44,7 @@ do_configure_prepend() {
fi
}
+# Forcibly strip because Piglit is *huge*
OECMAKE_TARGET_INSTALL = "install/strip"
RDEPENDS_${PN} = "waffle waffle-bin python3 python3-mako python3-json \
@@ -55,5 +56,9 @@ RDEPENDS_${PN} = "waffle waffle-bin python3 python3-mako python3-json \
INSANE_SKIP_${PN} += "dev-so already-stripped"
+# As nothing builds against Piglit we don't need to have anything in the
+# sysroot, especially when this is ~2GB of test suite
+SYSROOT_DIRS_remove = "${libdir}"
+
# Can't be built with ccache
CCACHE_DISABLE = "1"
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
new file mode 100644
index 000000000..0fd1d511d
--- /dev/null
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
@@ -0,0 +1,27 @@
+From 63788c63ed39a3ce9994f4315d8997e1a9300d4d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 6 Jan 2020 12:44:42 +0100
+Subject: [PATCH] meson.build: use 'python3' directly for python
+
+This avoids a dependency on target python (due to meson probing
+its configuration).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 682d7c8..19d2eae 100644
+--- a/meson.build
++++ b/meson.build
+@@ -60,7 +60,7 @@ foreach w : warnings
+ endif
+ endforeach
+
+-prog_python = import('python').find_installation('python3')
++prog_python = 'python3'
+
+ libdrm_dep = dependency('libdrm', version : '>=2.4.50')
+ thread_dep = dependency('threads')
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
index 4420d84ae..1046b8504 100644
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.0.bb
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.8.2.bb
@@ -9,14 +9,15 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
DEPENDS = "libdrm mesa libepoxy"
-SRCREV = "48cc96c9aebb9d0164830a157efc8916f08f00c0"
+SRCREV = "7d204f3927be65fb3365dce01dbcd04d447a4985"
SRC_URI = "git://anongit.freedesktop.org/virglrenderer \
file://0001-gallium-Expand-libc-check-to-be-platform-OS-check.patch \
+ file://0001-meson.build-use-python3-directly-for-python.patch \
"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig features_check
+inherit meson pkgconfig features_check
BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch b/poky/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch
new file mode 100644
index 000000000..34c5bfa85
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/assimp/0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch
@@ -0,0 +1,68 @@
+From 58f576d6f240b08957a402960cdf06c74201ac7b Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 12 Dec 2019 22:16:15 -0800
+Subject: [PATCH] Use ASSIMP_LIB_INSTALL_DIR to search library
+
+Use ASSIMP_LIB_INSTALL_DIR rather than hardcoded /lib to search library
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+---
+ assimpTargets-release.cmake.in | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/assimpTargets-release.cmake.in b/assimpTargets-release.cmake.in
+index f3db8f1..b8a066a 100644
+--- a/assimpTargets-release.cmake.in
++++ b/assimpTargets-release.cmake.in
+@@ -42,11 +42,11 @@ if(MSVC)
+ # Import target "assimp::assimp" for configuration "Release"
+ set_property(TARGET assimp::assimp APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(assimp::assimp PROPERTIES
+- IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/lib/${importLibraryName}"
++ IMPORTED_IMPLIB_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${importLibraryName}"
+ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/bin/${sharedLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${importLibraryName}")
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${importLibraryName}")
+ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/bin/${sharedLibraryName}" )
+ else()
+ set(staticLibraryName "assimp${ASSIMP_LIBRARY_SUFFIX}@CMAKE_STATIC_LIBRARY_SUFFIX@")
+@@ -54,10 +54,10 @@ if(MSVC)
+ # Import target "assimp::assimp" for configuration "Release"
+ set_property(TARGET assimp::assimp APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(assimp::assimp PROPERTIES
+- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/${staticLibraryName}"
++ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${staticLibraryName}")
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}")
+ endif()
+
+ else()
+@@ -70,17 +70,17 @@ else()
+ endif()
+ set_target_properties(assimp::assimp PROPERTIES
+ IMPORTED_SONAME_RELEASE "${sharedLibraryName}"
+- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/${sharedLibraryName}"
++ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${sharedLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${sharedLibraryName}" )
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${sharedLibraryName}" )
+ else()
+ set(staticLibraryName "libassimp${ASSIMP_LIBRARY_SUFFIX}@CMAKE_STATIC_LIBRARY_SUFFIX@")
+ set_target_properties(assimp::assimp PROPERTIES
+- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/${staticLibraryName}"
++ IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}"
+ )
+ list(APPEND _IMPORT_CHECK_TARGETS assimp::assimp )
+- list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/lib/${staticLibraryName}" )
++ list(APPEND _IMPORT_CHECK_FILES_FOR_assimp::assimp "${_IMPORT_PREFIX}/@ASSIMP_LIB_INSTALL_DIR@/${staticLibraryName}" )
+ endif()
+ endif()
+
diff --git a/poky/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch b/poky/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch
new file mode 100644
index 000000000..87a165871
--- /dev/null
+++ b/poky/meta/recipes-graphics/vulkan/assimp/0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch
@@ -0,0 +1,1664 @@
+From 7fc220b2350d78942fb3935cad0b1564418ebe8f Mon Sep 17 00:00:00 2001
+From: Kim Kulling <kim.kulling@googlemail.com>
+Date: Tue, 19 Nov 2019 20:30:40 +0100
+Subject: [PATCH] closes https://github.com/assimp/assimp/issues/2733: update
+ of zlip to fix gcc build for v9.2.0 32 bit
+
+Upstream-Status: Backport [https://github.com/assimp/assimp/commit/f78446b14aff46db2ef27d062a275b6a01fd68b1]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ contrib/zip/.gitignore | 2 +
+ contrib/zip/CMakeLists.txt | 83 +++++-
+ contrib/zip/README.md | 12 +-
+ contrib/zip/appveyor.yml | 2 +-
+ contrib/zip/src/miniz.h | 457 ++++++++++++++++++++++++++++----
+ contrib/zip/src/zip.c | 62 +++--
+ contrib/zip/src/zip.h | 457 ++++++++++++++++----------------
+ contrib/zip/test/CMakeLists.txt | 27 +-
+ contrib/zip/test/test.c | 38 ++-
+ contrib/zip/test/test_miniz.c | 25 +-
+ 10 files changed, 821 insertions(+), 344 deletions(-)
+
+diff --git a/contrib/zip/.gitignore b/contrib/zip/.gitignore
+index a7904a1e..49b2cb2f 100644
+--- a/contrib/zip/.gitignore
++++ b/contrib/zip/.gitignore
+@@ -1,6 +1,7 @@
+ /build/
+ /test/build/
+ /xcodeproj/
++.vscode/
+
+ # Object files
+ *.o
+@@ -54,3 +55,4 @@ zip.dir/
+ test/test.exe.vcxproj.filters
+ test/test.exe.vcxproj
+ test/test.exe.dir/
++
+diff --git a/contrib/zip/CMakeLists.txt b/contrib/zip/CMakeLists.txt
+index b46dbb1d..77916d2e 100644
+--- a/contrib/zip/CMakeLists.txt
++++ b/contrib/zip/CMakeLists.txt
+@@ -1,10 +1,14 @@
+-cmake_minimum_required(VERSION 2.8)
+-project(zip)
+-enable_language(C)
++cmake_minimum_required(VERSION 3.0)
++
++project(zip
++ LANGUAGES C
++ VERSION "0.1.15")
+ set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
+
++option(CMAKE_DISABLE_TESTING "Disable test creation" OFF)
++
+ if (MSVC)
+- # Use secure functions by defaualt and suppress warnings about "deprecated" functions
++ # Use secure functions by default and suppress warnings about "deprecated" functions
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /D _CRT_NONSTDC_NO_WARNINGS=1 /D _CRT_SECURE_NO_WARNINGS=1")
+@@ -12,28 +16,80 @@ elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR
+ "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR
+ "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -Wextra -Werror -pedantic")
++ if(ENABLE_COVERAGE)
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
++ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
++ endif()
+ endif (MSVC)
+
+ # zip
+ set(SRC src/miniz.h src/zip.h src/zip.c)
+ add_library(${PROJECT_NAME} ${SRC})
+-target_include_directories(${PROJECT_NAME} INTERFACE src)
++target_include_directories(${PROJECT_NAME} PUBLIC
++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
++ $<INSTALL_INTERFACE:include>
++)
+
+ # test
+ if (NOT CMAKE_DISABLE_TESTING)
+ enable_testing()
+ add_subdirectory(test)
+ find_package(Sanitizers)
+- add_sanitizers(${PROJECT_NAME} test.exe)
+- add_sanitizers(${PROJECT_NAME} test_miniz.exe)
++ add_sanitizers(${PROJECT_NAME} ${test_out} ${test_miniz_out})
+ endif()
+
++####
++# Installation (https://github.com/forexample/package-example) {
++
++set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}")
++set(INCLUDE_INSTALL_DIR "include")
++
++set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated")
++
++# Configuration
++set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake")
++set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake")
++set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
++set(NAMESPACE "${PROJECT_NAME}::")
++
++# Include module with fuction 'write_basic_package_version_file'
++include(CMakePackageConfigHelpers)
++
++# Note: PROJECT_VERSION is used as a VERSION
++write_basic_package_version_file(
++ "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion
++)
++
++# Use variables:
++# * TARGETS_EXPORT_NAME
++# * PROJECT_NAME
++configure_package_config_file(
++ "cmake/Config.cmake.in"
++ "${PROJECT_CONFIG}"
++ INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}"
++)
++
++install(
++ FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}"
++ DESTINATION "${CONFIG_INSTALL_DIR}"
++)
++
++install(
++ EXPORT "${TARGETS_EXPORT_NAME}"
++ NAMESPACE "${NAMESPACE}"
++ DESTINATION "${CONFIG_INSTALL_DIR}"
++)
++
++# }
++
+ install(TARGETS ${PROJECT_NAME}
++ EXPORT ${TARGETS_EXPORT_NAME}
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+- COMPONENT library)
+-install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION include)
++ INCLUDES DESTINATION ${INCLUDE_INSTALL_DIR}
++)
++install(FILES ${PROJECT_SOURCE_DIR}/src/zip.h DESTINATION ${INCLUDE_INSTALL_DIR}/zip)
+
+ # uninstall target (https://gitlab.kitware.com/cmake/community/wikis/FAQ#can-i-do-make-uninstall-with-cmake)
+ if(NOT TARGET uninstall)
+@@ -45,3 +101,12 @@ if(NOT TARGET uninstall)
+ add_custom_target(uninstall
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake/cmake_uninstall.cmake)
+ endif()
++
++find_package(Doxygen)
++if(DOXYGEN_FOUND)
++ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
++ add_custom_target(doc
++ ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
++ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
++ COMMENT "Generating API documentation with Doxygen" VERBATIM)
++endif()
+diff --git a/contrib/zip/README.md b/contrib/zip/README.md
+index d5fb8cd2..14eb9a34 100644
+--- a/contrib/zip/README.md
++++ b/contrib/zip/README.md
+@@ -71,7 +71,7 @@ int arg = 2;
+ zip_extract("foo.zip", "/tmp", on_extract_entry, &arg);
+ ```
+
+-* Extract a zip entry into memory.
++* Extract a zip entry into memory.
+ ```c
+ void *buf = NULL;
+ size_t bufsize;
+@@ -89,7 +89,7 @@ zip_close(zip);
+ free(buf);
+ ```
+
+-* Extract a zip entry into memory (no internal allocation).
++* Extract a zip entry into memory (no internal allocation).
+ ```c
+ unsigned char *buf;
+ size_t bufsize;
+@@ -110,7 +110,7 @@ zip_close(zip);
+ free(buf);
+ ```
+
+-* Extract a zip entry into memory using callback.
++* Extract a zip entry into memory using callback.
+ ```c
+ struct buffer_t {
+ char *data;
+@@ -144,7 +144,7 @@ free(buf.data);
+ ```
+
+
+-* Extract a zip entry into a file.
++* Extract a zip entry into a file.
+ ```c
+ struct zip_t *zip = zip_open("foo.zip", 0, 'r');
+ {
+@@ -157,7 +157,7 @@ struct zip_t *zip = zip_open("foo.zip", 0, 'r');
+ zip_close(zip);
+ ```
+
+-* List of all zip entries
++* List of all zip entries
+ ```c
+ struct zip_t *zip = zip_open("foo.zip", 0, 'r');
+ int i, n = zip_total_entries(zip);
+@@ -174,7 +174,7 @@ for (i = 0; i < n; ++i) {
+ zip_close(zip);
+ ```
+
+-## Bindings
++# Bindings
+ Compile zip library as a dynamic library.
+ ```shell
+ $ mkdir build
+diff --git a/contrib/zip/appveyor.yml b/contrib/zip/appveyor.yml
+index 0be6373c..ea17f5de 100644
+--- a/contrib/zip/appveyor.yml
++++ b/contrib/zip/appveyor.yml
+@@ -1,4 +1,4 @@
+-version: zip-0.1.9.{build}
++version: zip-0.1.15.{build}
+ build_script:
+ - cmd: >-
+ cd c:\projects\zip
+diff --git a/contrib/zip/src/miniz.h b/contrib/zip/src/miniz.h
+index 2c27a94d..c4fcfb83 100644
+--- a/contrib/zip/src/miniz.h
++++ b/contrib/zip/src/miniz.h
+@@ -221,6 +221,7 @@
+ #ifndef MINIZ_HEADER_INCLUDED
+ #define MINIZ_HEADER_INCLUDED
+
++#include <stdint.h>
+ #include <stdlib.h>
+
+ // Defines to completely disable specific portions of miniz.c:
+@@ -284,7 +285,8 @@
+ /* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */
+ #if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES)
+ #if MINIZ_X86_OR_X64_CPU
+-/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */
++/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient
++ * integer loads and stores from unaligned addresses. */
+ #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1
+ #define MINIZ_UNALIGNED_USE_MEMCPY
+ #else
+@@ -354,6 +356,44 @@ enum {
+ MZ_FIXED = 4
+ };
+
++/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or
++ * modify this enum. */
++typedef enum {
++ MZ_ZIP_NO_ERROR = 0,
++ MZ_ZIP_UNDEFINED_ERROR,
++ MZ_ZIP_TOO_MANY_FILES,
++ MZ_ZIP_FILE_TOO_LARGE,
++ MZ_ZIP_UNSUPPORTED_METHOD,
++ MZ_ZIP_UNSUPPORTED_ENCRYPTION,
++ MZ_ZIP_UNSUPPORTED_FEATURE,
++ MZ_ZIP_FAILED_FINDING_CENTRAL_DIR,
++ MZ_ZIP_NOT_AN_ARCHIVE,
++ MZ_ZIP_INVALID_HEADER_OR_CORRUPTED,
++ MZ_ZIP_UNSUPPORTED_MULTIDISK,
++ MZ_ZIP_DECOMPRESSION_FAILED,
++ MZ_ZIP_COMPRESSION_FAILED,
++ MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE,
++ MZ_ZIP_CRC_CHECK_FAILED,
++ MZ_ZIP_UNSUPPORTED_CDIR_SIZE,
++ MZ_ZIP_ALLOC_FAILED,
++ MZ_ZIP_FILE_OPEN_FAILED,
++ MZ_ZIP_FILE_CREATE_FAILED,
++ MZ_ZIP_FILE_WRITE_FAILED,
++ MZ_ZIP_FILE_READ_FAILED,
++ MZ_ZIP_FILE_CLOSE_FAILED,
++ MZ_ZIP_FILE_SEEK_FAILED,
++ MZ_ZIP_FILE_STAT_FAILED,
++ MZ_ZIP_INVALID_PARAMETER,
++ MZ_ZIP_INVALID_FILENAME,
++ MZ_ZIP_BUF_TOO_SMALL,
++ MZ_ZIP_INTERNAL_ERROR,
++ MZ_ZIP_FILE_NOT_FOUND,
++ MZ_ZIP_ARCHIVE_TOO_LARGE,
++ MZ_ZIP_VALIDATION_FAILED,
++ MZ_ZIP_WRITE_CALLBACK_FAILED,
++ MZ_ZIP_TOTAL_ERRORS
++} mz_zip_error;
++
+ // Method
+ #define MZ_DEFLATED 8
+
+@@ -696,6 +736,7 @@ typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs,
+ void *pBuf, size_t n);
+ typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs,
+ const void *pBuf, size_t n);
++typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque);
+
+ struct mz_zip_internal_state_tag;
+ typedef struct mz_zip_internal_state_tag mz_zip_internal_state;
+@@ -707,13 +748,27 @@ typedef enum {
+ MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3
+ } mz_zip_mode;
+
+-typedef struct mz_zip_archive_tag {
++typedef enum {
++ MZ_ZIP_TYPE_INVALID = 0,
++ MZ_ZIP_TYPE_USER,
++ MZ_ZIP_TYPE_MEMORY,
++ MZ_ZIP_TYPE_HEAP,
++ MZ_ZIP_TYPE_FILE,
++ MZ_ZIP_TYPE_CFILE,
++ MZ_ZIP_TOTAL_TYPES
++} mz_zip_type;
++
++typedef struct {
+ mz_uint64 m_archive_size;
+ mz_uint64 m_central_directory_file_ofs;
+- mz_uint m_total_files;
++
++ /* We only support up to UINT32_MAX files in zip64 mode. */
++ mz_uint32 m_total_files;
+ mz_zip_mode m_zip_mode;
++ mz_zip_type m_zip_type;
++ mz_zip_error m_last_error;
+
+- mz_uint m_file_offset_alignment;
++ mz_uint64 m_file_offset_alignment;
+
+ mz_alloc_func m_pAlloc;
+ mz_free_func m_pFree;
+@@ -722,6 +777,7 @@ typedef struct mz_zip_archive_tag {
+
+ mz_file_read_func m_pRead;
+ mz_file_write_func m_pWrite;
++ mz_file_needs_keepalive m_pNeeds_keepalive;
+ void *m_pIO_opaque;
+
+ mz_zip_internal_state *m_pState;
+@@ -1263,6 +1319,9 @@ mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits,
+ int strategy);
+ #endif // #ifndef MINIZ_NO_ZLIB_APIS
+
++#define MZ_UINT16_MAX (0xFFFFU)
++#define MZ_UINT32_MAX (0xFFFFFFFFU)
++
+ #ifdef __cplusplus
+ }
+ #endif
+@@ -1311,6 +1370,11 @@ typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1];
+ ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U))
+ #endif
+
++#define MZ_READ_LE64(p) \
++ (((mz_uint64)MZ_READ_LE32(p)) | \
++ (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) \
++ << 32U))
++
+ #ifdef _MSC_VER
+ #define MZ_FORCEINLINE __forceinline
+ #elif defined(__GNUC__)
+@@ -4160,6 +4224,17 @@ enum {
+ MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30,
+ MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46,
+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22,
++
++ /* ZIP64 archive identifier and record sizes */
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06064b50,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE = 56,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE = 20,
++ MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID = 0x0001,
++ MZ_ZIP_DATA_DESCRIPTOR_ID = 0x08074b50,
++ MZ_ZIP_DATA_DESCRIPTER_SIZE64 = 24,
++ MZ_ZIP_DATA_DESCRIPTER_SIZE32 = 16,
++
+ // Central directory header record offsets
+ MZ_ZIP_CDH_SIG_OFS = 0,
+ MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4,
+@@ -4199,6 +4274,31 @@ enum {
+ MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12,
+ MZ_ZIP_ECDH_CDIR_OFS_OFS = 16,
+ MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20,
++
++ /* ZIP64 End of central directory locator offsets */
++ MZ_ZIP64_ECDL_SIG_OFS = 0, /* 4 bytes */
++ MZ_ZIP64_ECDL_NUM_DISK_CDIR_OFS = 4, /* 4 bytes */
++ MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS = 8, /* 8 bytes */
++ MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS = 16, /* 4 bytes */
++
++ /* ZIP64 End of central directory header offsets */
++ MZ_ZIP64_ECDH_SIG_OFS = 0, /* 4 bytes */
++ MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS = 4, /* 8 bytes */
++ MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS = 12, /* 2 bytes */
++ MZ_ZIP64_ECDH_VERSION_NEEDED_OFS = 14, /* 2 bytes */
++ MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS = 16, /* 4 bytes */
++ MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS = 20, /* 4 bytes */
++ MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 24, /* 8 bytes */
++ MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS = 32, /* 8 bytes */
++ MZ_ZIP64_ECDH_CDIR_SIZE_OFS = 40, /* 8 bytes */
++ MZ_ZIP64_ECDH_CDIR_OFS_OFS = 48, /* 8 bytes */
++ MZ_ZIP_VERSION_MADE_BY_DOS_FILESYSTEM_ID = 0,
++ MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG = 0x10,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED = 1,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG = 32,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION = 64,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED = 8192,
++ MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 = 1 << 11
+ };
+
+ typedef struct {
+@@ -4211,7 +4311,24 @@ struct mz_zip_internal_state_tag {
+ mz_zip_array m_central_dir;
+ mz_zip_array m_central_dir_offsets;
+ mz_zip_array m_sorted_central_dir_offsets;
++
++ /* The flags passed in when the archive is initially opened. */
++ uint32_t m_init_flags;
++
++ /* MZ_TRUE if the archive has a zip64 end of central directory headers, etc.
++ */
++ mz_bool m_zip64;
++
++ /* MZ_TRUE if we found zip64 extended info in the central directory (m_zip64
++ * will also be slammed to true too, even if we didn't find a zip64 end of
++ * central dir header, etc.) */
++ mz_bool m_zip64_has_extended_info_fields;
++
++ /* These fields are used by the file, FILE, memory, and memory/heap read/write
++ * helpers. */
+ MZ_FILE *m_pFile;
++ mz_uint64 m_file_archive_start_ofs;
++
+ void *m_pMem;
+ size_t m_mem_size;
+ size_t m_mem_capacity;
+@@ -4363,6 +4480,13 @@ static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time,
+ #endif /* #ifndef MINIZ_NO_STDIO */
+ #endif /* #ifndef MINIZ_NO_TIME */
+
++static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip,
++ mz_zip_error err_num) {
++ if (pZip)
++ pZip->m_last_error = err_num;
++ return MZ_FALSE;
++}
++
+ static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip,
+ mz_uint32 flags) {
+ (void)flags;
+@@ -4480,127 +4604,346 @@ mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) {
+ }
+ }
+
+-static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip,
+- mz_uint32 flags) {
+- mz_uint cdir_size, num_this_disk, cdir_disk_index;
+- mz_uint64 cdir_ofs;
++static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip,
++ mz_uint32 record_sig,
++ mz_uint32 record_size,
++ mz_int64 *pOfs) {
+ mz_int64 cur_file_ofs;
+- const mz_uint8 *p;
+ mz_uint32 buf_u32[4096 / sizeof(mz_uint32)];
+ mz_uint8 *pBuf = (mz_uint8 *)buf_u32;
+- mz_bool sort_central_dir =
+- ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0);
+- // Basic sanity checks - reject files which are too small, and check the first
+- // 4 bytes of the file to make sure a local header is there.
+- if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
++
++ /* Basic sanity checks - reject files which are too small */
++ if (pZip->m_archive_size < record_size)
+ return MZ_FALSE;
+- // Find the end of central directory record by scanning the file from the end
+- // towards the beginning.
++
++ /* Find the record by scanning the file from the end towards the beginning. */
+ cur_file_ofs =
+ MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0);
+ for (;;) {
+ int i,
+ n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs);
++
+ if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n)
+ return MZ_FALSE;
+- for (i = n - 4; i >= 0; --i)
+- if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG)
+- break;
++
++ for (i = n - 4; i >= 0; --i) {
++ mz_uint s = MZ_READ_LE32(pBuf + i);
++ if (s == record_sig) {
++ if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size)
++ break;
++ }
++ }
++
+ if (i >= 0) {
+ cur_file_ofs += i;
+ break;
+ }
++
++ /* Give up if we've searched the entire file, or we've gone back "too far"
++ * (~64kb) */
+ if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >=
+- (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)))
++ (MZ_UINT16_MAX + record_size)))
+ return MZ_FALSE;
++
+ cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0);
+ }
+- // Read and verify the end of central directory record.
++
++ *pOfs = cur_file_ofs;
++ return MZ_TRUE;
++}
++
++static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip,
++ mz_uint flags) {
++ mz_uint cdir_size = 0, cdir_entries_on_this_disk = 0, num_this_disk = 0,
++ cdir_disk_index = 0;
++ mz_uint64 cdir_ofs = 0;
++ mz_int64 cur_file_ofs = 0;
++ const mz_uint8 *p;
++
++ mz_uint32 buf_u32[4096 / sizeof(mz_uint32)];
++ mz_uint8 *pBuf = (mz_uint8 *)buf_u32;
++ mz_bool sort_central_dir =
++ ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0);
++ mz_uint32 zip64_end_of_central_dir_locator_u32
++ [(MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + sizeof(mz_uint32) - 1) /
++ sizeof(mz_uint32)];
++ mz_uint8 *pZip64_locator = (mz_uint8 *)zip64_end_of_central_dir_locator_u32;
++
++ mz_uint32 zip64_end_of_central_dir_header_u32
++ [(MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) /
++ sizeof(mz_uint32)];
++ mz_uint8 *pZip64_end_of_central_dir =
++ (mz_uint8 *)zip64_end_of_central_dir_header_u32;
++
++ mz_uint64 zip64_end_of_central_dir_ofs = 0;
++
++ /* Basic sanity checks - reject files which are too small, and check the first
++ * 4 bytes of the file to make sure a local header is there. */
++ if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
++ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE);
++
++ if (!mz_zip_reader_locate_header_sig(
++ pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG,
++ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE, &cur_file_ofs))
++ return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR);
++
++ /* Read and verify the end of central directory record. */
+ if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf,
+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) !=
+ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE)
+- return MZ_FALSE;
+- if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) !=
+- MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) ||
+- ((pZip->m_total_files =
+- MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) !=
+- MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS)))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED);
++
++ if (MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) !=
++ MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG)
++ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE);
++
++ if (cur_file_ofs >= (MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE +
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) {
++ if (pZip->m_pRead(pZip->m_pIO_opaque,
++ cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE,
++ pZip64_locator,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) {
++ if (MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_SIG_OFS) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) {
++ zip64_end_of_central_dir_ofs = MZ_READ_LE64(
++ pZip64_locator + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS);
++ if (zip64_end_of_central_dir_ofs >
++ (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE))
++ return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE);
++
++ if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs,
++ pZip64_end_of_central_dir,
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) {
++ if (MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIG_OFS) ==
++ MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG) {
++ pZip->m_pState->m_zip64 = MZ_TRUE;
++ }
++ }
++ }
++ }
++ }
+
++ pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS);
++ cdir_entries_on_this_disk =
++ MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS);
+ num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS);
+ cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS);
++ cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS);
++ cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS);
++
++ if (pZip->m_pState->m_zip64) {
++ mz_uint32 zip64_total_num_of_disks =
++ MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS);
++ mz_uint64 zip64_cdir_total_entries = MZ_READ_LE64(
++ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS);
++ mz_uint64 zip64_cdir_total_entries_on_this_disk = MZ_READ_LE64(
++ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS);
++ mz_uint64 zip64_size_of_end_of_central_dir_record = MZ_READ_LE64(
++ pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS);
++ mz_uint64 zip64_size_of_central_directory =
++ MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_SIZE_OFS);
++
++ if (zip64_size_of_end_of_central_dir_record <
++ (MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - 12))
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++
++ if (zip64_total_num_of_disks != 1U)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
++
++ /* Check for miniz's practical limits */
++ if (zip64_cdir_total_entries > MZ_UINT32_MAX)
++ return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES);
++
++ pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries;
++
++ if (zip64_cdir_total_entries_on_this_disk > MZ_UINT32_MAX)
++ return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES);
++
++ cdir_entries_on_this_disk =
++ (mz_uint32)zip64_cdir_total_entries_on_this_disk;
++
++ /* Check for miniz's current practical limits (sorry, this should be enough
++ * for millions of files) */
++ if (zip64_size_of_central_directory > MZ_UINT32_MAX)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE);
++
++ cdir_size = (mz_uint32)zip64_size_of_central_directory;
++
++ num_this_disk = MZ_READ_LE32(pZip64_end_of_central_dir +
++ MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS);
++
++ cdir_disk_index = MZ_READ_LE32(pZip64_end_of_central_dir +
++ MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS);
++
++ cdir_ofs =
++ MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_OFS_OFS);
++ }
++
++ if (pZip->m_total_files != cdir_entries_on_this_disk)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
++
+ if (((num_this_disk | cdir_disk_index) != 0) &&
+ ((num_this_disk != 1) || (cdir_disk_index != 1)))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
+
+- if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) <
+- pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)
+- return MZ_FALSE;
++ if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
+
+- cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS);
+ if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size)
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
+
+ pZip->m_central_directory_file_ofs = cdir_ofs;
+
+ if (pZip->m_total_files) {
+ mz_uint i, n;
+-
+- // Read the entire central directory into a heap block, and allocate another
+- // heap block to hold the unsorted central dir file record offsets, and
+- // another to hold the sorted indices.
++ /* Read the entire central directory into a heap block, and allocate another
++ * heap block to hold the unsorted central dir file record offsets, and
++ * possibly another to hold the sorted indices. */
+ if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size,
+ MZ_FALSE)) ||
+ (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets,
+ pZip->m_total_files, MZ_FALSE)))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED);
+
+ if (sort_central_dir) {
+ if (!mz_zip_array_resize(pZip,
+ &pZip->m_pState->m_sorted_central_dir_offsets,
+ pZip->m_total_files, MZ_FALSE))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED);
+ }
+
+ if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs,
+ pZip->m_pState->m_central_dir.m_p,
+ cdir_size) != cdir_size)
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED);
+
+- // Now create an index into the central directory file records, do some
+- // basic sanity checking on each record, and check for zip64 entries (which
+- // are not yet supported).
++ /* Now create an index into the central directory file records, do some
++ * basic sanity checking on each record */
+ p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p;
+ for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) {
+- mz_uint total_header_size, comp_size, decomp_size, disk_index;
++ mz_uint total_header_size, disk_index, bit_flags, filename_size,
++ ext_data_size;
++ mz_uint64 comp_size, decomp_size, local_header_ofs;
++
+ if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) ||
+ (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG))
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++
+ MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32,
+ i) =
+ (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p);
++
+ if (sort_central_dir)
+ MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets,
+ mz_uint32, i) = i;
++
+ comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS);
+ decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS);
+- if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) &&
+- (decomp_size != comp_size)) ||
+- (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) ||
+- (comp_size == 0xFFFFFFFF))
+- return MZ_FALSE;
++ local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS);
++ filename_size = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS);
++ ext_data_size = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS);
++
++ if ((!pZip->m_pState->m_zip64_has_extended_info_fields) &&
++ (ext_data_size) &&
++ (MZ_MAX(MZ_MAX(comp_size, decomp_size), local_header_ofs) ==
++ MZ_UINT32_MAX)) {
++ /* Attempt to find zip64 extended information field in the entry's extra
++ * data */
++ mz_uint32 extra_size_remaining = ext_data_size;
++
++ if (extra_size_remaining) {
++ const mz_uint8 *pExtra_data;
++ void *buf = NULL;
++
++ if (MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + ext_data_size >
++ n) {
++ buf = MZ_MALLOC(ext_data_size);
++ if (buf == NULL)
++ return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED);
++
++ if (pZip->m_pRead(pZip->m_pIO_opaque,
++ cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE +
++ filename_size,
++ buf, ext_data_size) != ext_data_size) {
++ MZ_FREE(buf);
++ return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED);
++ }
++
++ pExtra_data = (mz_uint8 *)buf;
++ } else {
++ pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size;
++ }
++
++ do {
++ mz_uint32 field_id;
++ mz_uint32 field_data_size;
++
++ if (extra_size_remaining < (sizeof(mz_uint16) * 2)) {
++ MZ_FREE(buf);
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
++ field_id = MZ_READ_LE16(pExtra_data);
++ field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16));
++
++ if ((field_data_size + sizeof(mz_uint16) * 2) >
++ extra_size_remaining) {
++ MZ_FREE(buf);
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
++ if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) {
++ /* Ok, the archive didn't have any zip64 headers but it uses a
++ * zip64 extended information field so mark it as zip64 anyway
++ * (this can occur with infozip's zip util when it reads
++ * compresses files from stdin). */
++ pZip->m_pState->m_zip64 = MZ_TRUE;
++ pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE;
++ break;
++ }
++
++ pExtra_data += sizeof(mz_uint16) * 2 + field_data_size;
++ extra_size_remaining =
++ extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size;
++ } while (extra_size_remaining);
++
++ MZ_FREE(buf);
++ }
++ }
++
++ /* I've seen archives that aren't marked as zip64 that uses zip64 ext
++ * data, argh */
++ if ((comp_size != MZ_UINT32_MAX) && (decomp_size != MZ_UINT32_MAX)) {
++ if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) &&
++ (decomp_size != comp_size)) ||
++ (decomp_size && !comp_size))
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
+ disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS);
+- if ((disk_index != num_this_disk) && (disk_index != 1))
+- return MZ_FALSE;
+- if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) +
+- MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size)
+- return MZ_FALSE;
++ if ((disk_index == MZ_UINT16_MAX) ||
++ ((disk_index != num_this_disk) && (disk_index != 1)))
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK);
++
++ if (comp_size != MZ_UINT32_MAX) {
++ if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) +
++ MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size)
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++ }
++
++ bit_flags = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS);
++ if (bit_flags & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED)
++ return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION);
++
+ if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE +
+ MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) +
+ MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) +
+ MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) >
+ n)
+- return MZ_FALSE;
++ return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED);
++
+ n -= total_header_size;
+ p += total_header_size;
+ }
+diff --git a/contrib/zip/src/zip.c b/contrib/zip/src/zip.c
+index ff3a8fe1..1abcfd8f 100644
+--- a/contrib/zip/src/zip.c
++++ b/contrib/zip/src/zip.c
+@@ -24,7 +24,6 @@
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) && \
+ (P)[1] == ':')
+ #define FILESYSTEM_PREFIX_LEN(P) (HAS_DEVICE(P) ? 2 : 0)
+-#define ISSLASH(C) ((C) == '/' || (C) == '\\')
+
+ #else
+
+@@ -48,7 +47,7 @@ int symlink(const char *target, const char *linkpath); // needed on Linux
+ #endif
+
+ #ifndef ISSLASH
+-#define ISSLASH(C) ((C) == '/')
++#define ISSLASH(C) ((C) == '/' || (C) == '\\')
+ #endif
+
+ #define CLEANUP(ptr) \
+@@ -78,26 +77,34 @@ static const char *base_name(const char *name) {
+ return base;
+ }
+
+-static int mkpath(const char *path) {
+- char const *p;
++static int mkpath(char *path) {
++ char *p;
+ char npath[MAX_PATH + 1];
+ int len = 0;
+ int has_device = HAS_DEVICE(path);
+
+ memset(npath, 0, MAX_PATH + 1);
+-
+-#ifdef _WIN32
+- // only on windows fix the path
+- npath[0] = path[0];
+- npath[1] = path[1];
+- len = 2;
+-#endif // _WIN32
+-
++ if (has_device) {
++ // only on windows
++ npath[0] = path[0];
++ npath[1] = path[1];
++ len = 2;
++ }
+ for (p = path + len; *p && len < MAX_PATH; p++) {
+ if (ISSLASH(*p) && ((!has_device && len > 0) || (has_device && len > 2))) {
+- if (MKDIR(npath) == -1)
+- if (errno != EEXIST)
++#if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \
++ defined(__MINGW32__)
++#else
++ if ('\\' == *p) {
++ *p = '/';
++ }
++#endif
++
++ if (MKDIR(npath) == -1) {
++ if (errno != EEXIST) {
+ return -1;
++ }
++ }
+ }
+ npath[len++] = *p;
+ }
+@@ -279,7 +286,14 @@ int zip_entry_open(struct zip_t *zip, const char *entryname) {
+ zip->entry.header_offset = zip->archive.m_archive_size;
+ memset(zip->entry.header, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE * sizeof(mz_uint8));
+ zip->entry.method = 0;
++
++ // UNIX or APPLE
++#if MZ_PLATFORM == 3 || MZ_PLATFORM == 19
++ // regular file with rw-r--r-- persmissions
++ zip->entry.external_attr = (mz_uint32)(0100644) << 16;
++#else
+ zip->entry.external_attr = 0;
++#endif
+
+ num_alignment_padding_bytes =
+ mz_zip_writer_compute_padding_needed_for_file_alignment(pzip);
+@@ -660,7 +674,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) {
+ }
+
+ if (!mz_zip_reader_extract_to_mem_no_alloc(pzip, (mz_uint)zip->entry.index,
+- buf, bufsize, 0, NULL, 0)) {
++ buf, bufsize, 0, NULL, 0)) {
+ return -1;
+ }
+
+@@ -670,10 +684,7 @@ ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize) {
+ int zip_entry_fread(struct zip_t *zip, const char *filename) {
+ mz_zip_archive *pzip = NULL;
+ mz_uint idx;
+-#if defined(_MSC_VER)
+-#else
+ mz_uint32 xattr = 0;
+-#endif
+ mz_zip_archive_file_stat info;
+
+ if (!zip) {
+@@ -875,12 +886,19 @@ int zip_extract(const char *zipname, const char *dir,
+ goto out;
+ }
+
+- if ((((info.m_version_made_by >> 8) == 3) || ((info.m_version_made_by >> 8) == 19)) // if zip is produced on Unix or macOS (3 and 19 from section 4.4.2.2 of zip standard)
+- && info.m_external_attr & (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40 is directory)
++ if ((((info.m_version_made_by >> 8) == 3) ||
++ ((info.m_version_made_by >> 8) ==
++ 19)) // if zip is produced on Unix or macOS (3 and 19 from
++ // section 4.4.2.2 of zip standard)
++ && info.m_external_attr &
++ (0x20 << 24)) { // and has sym link attribute (0x80 is file, 0x40
++ // is directory)
+ #if defined(_WIN32) || defined(__WIN32__) || defined(_MSC_VER) || \
+ defined(__MINGW32__)
+-#else
+- if (info.m_uncomp_size > MAX_PATH || !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to, MAX_PATH, 0, NULL, 0)) {
++#else
++ if (info.m_uncomp_size > MAX_PATH ||
++ !mz_zip_reader_extract_to_mem_no_alloc(&zip_archive, i, symlink_to,
++ MAX_PATH, 0, NULL, 0)) {
+ goto out;
+ }
+ symlink_to[info.m_uncomp_size] = '\0';
+diff --git a/contrib/zip/src/zip.h b/contrib/zip/src/zip.h
+index 5f39df50..a48d64d6 100644
+--- a/contrib/zip/src/zip.h
++++ b/contrib/zip/src/zip.h
+@@ -20,241 +20,240 @@ extern "C" {
+ #endif
+
+ #if !defined(_SSIZE_T_DEFINED) && !defined(_SSIZE_T_DEFINED_) && \
+- !defined(_SSIZE_T) && !defined(_SSIZE_T_) && !defined(__ssize_t_defined)
+-#define _SSIZE_T
++ !defined(__DEFINED_ssize_t) && !defined(__ssize_t_defined) && \
++ !defined(_SSIZE_T) && !defined(_SSIZE_T_)
++
+ // 64-bit Windows is the only mainstream platform
+ // where sizeof(long) != sizeof(void*)
+ #ifdef _WIN64
+-typedef long long ssize_t; /* byte count or error */
++typedef long long ssize_t; /* byte count or error */
+ #else
+-typedef long ssize_t; /* byte count or error */
++typedef long ssize_t; /* byte count or error */
+ #endif
++
++#define _SSIZE_T_DEFINED
++#define _SSIZE_T_DEFINED_
++#define __DEFINED_ssize_t
++#define __ssize_t_defined
++#define _SSIZE_T
++#define _SSIZE_T_
++
+ #endif
+
+ #ifndef MAX_PATH
+ #define MAX_PATH 32767 /* # chars in a path name including NULL */
+ #endif
+
++/**
++ * @mainpage
++ *
++ * Documenation for @ref zip.
++ */
++
++/**
++ * @addtogroup zip
++ * @{
++ */
++
++/**
++ * Default zip compression level.
++ */
++
+ #define ZIP_DEFAULT_COMPRESSION_LEVEL 6
+
+-/*
+- This data structure is used throughout the library to represent zip archive
+- - forward declaration.
+-*/
++/**
++ * @struct zip_t
++ *
++ * This data structure is used throughout the library to represent zip archive -
++ * forward declaration.
++ */
+ struct zip_t;
+
+-/*
+- Opens zip archive with compression level using the given mode.
+-
+- Args:
+- zipname: zip archive file name.
+- level: compression level (0-9 are the standard zlib-style levels).
+- mode: file access mode.
+- 'r': opens a file for reading/extracting (the file must exists).
+- 'w': creates an empty file for writing.
+- 'a': appends to an existing archive.
+-
+- Returns:
+- The zip archive handler or NULL on error
+-*/
++/**
++ * Opens zip archive with compression level using the given mode.
++ *
++ * @param zipname zip archive file name.
++ * @param level compression level (0-9 are the standard zlib-style levels).
++ * @param mode file access mode.
++ * - 'r': opens a file for reading/extracting (the file must exists).
++ * - 'w': creates an empty file for writing.
++ * - 'a': appends to an existing archive.
++ *
++ * @return the zip archive handler or NULL on error
++ */
+ extern struct zip_t *zip_open(const char *zipname, int level, char mode);
+
+-/*
+- Closes the zip archive, releases resources - always finalize.
+-
+- Args:
+- zip: zip archive handler.
+-*/
++/**
++ * Closes the zip archive, releases resources - always finalize.
++ *
++ * @param zip zip archive handler.
++ */
+ extern void zip_close(struct zip_t *zip);
+
+-/*
+- Opens an entry by name in the zip archive.
+- For zip archive opened in 'w' or 'a' mode the function will append
+- a new entry. In readonly mode the function tries to locate the entry
+- in global dictionary.
+-
+- Args:
+- zip: zip archive handler.
+- entryname: an entry name in local dictionary.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Opens an entry by name in the zip archive.
++ *
++ * For zip archive opened in 'w' or 'a' mode the function will append
++ * a new entry. In readonly mode the function tries to locate the entry
++ * in global dictionary.
++ *
++ * @param zip zip archive handler.
++ * @param entryname an entry name in local dictionary.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_open(struct zip_t *zip, const char *entryname);
+
+-/*
+- Opens a new entry by index in the zip archive.
+- This function is only valid if zip archive was opened in 'r' (readonly) mode.
+-
+- Args:
+- zip: zip archive handler.
+- index: index in local dictionary.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Opens a new entry by index in the zip archive.
++ *
++ * This function is only valid if zip archive was opened in 'r' (readonly) mode.
++ *
++ * @param zip zip archive handler.
++ * @param index index in local dictionary.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_openbyindex(struct zip_t *zip, int index);
+
+-/*
+- Closes a zip entry, flushes buffer and releases resources.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Closes a zip entry, flushes buffer and releases resources.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_close(struct zip_t *zip);
+
+-/*
+- Returns a local name of the current zip entry.
+- The main difference between user's entry name and local entry name
+- is optional relative path.
+- Following .ZIP File Format Specification - the path stored MUST not contain
+- a drive or device letter, or a leading slash.
+- All slashes MUST be forward slashes '/' as opposed to backwards slashes '\'
+- for compatibility with Amiga and UNIX file systems etc.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The pointer to the current zip entry name, or NULL on error.
+-*/
++/**
++ * Returns a local name of the current zip entry.
++ *
++ * The main difference between user's entry name and local entry name
++ * is optional relative path.
++ * Following .ZIP File Format Specification - the path stored MUST not contain
++ * a drive or device letter, or a leading slash.
++ * All slashes MUST be forward slashes '/' as opposed to backwards slashes '\'
++ * for compatibility with Amiga and UNIX file systems etc.
++ *
++ * @param zip: zip archive handler.
++ *
++ * @return the pointer to the current zip entry name, or NULL on error.
++ */
+ extern const char *zip_entry_name(struct zip_t *zip);
+
+-/*
+- Returns an index of the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The index on success, negative number (< 0) on error.
+-*/
++/**
++ * Returns an index of the current zip entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the index on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_index(struct zip_t *zip);
+
+-/*
+- Determines if the current zip entry is a directory entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The return code - 1 (true), 0 (false), negative number (< 0) on error.
+-*/
++/**
++ * Determines if the current zip entry is a directory entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the return code - 1 (true), 0 (false), negative number (< 0) on
++ * error.
++ */
+ extern int zip_entry_isdir(struct zip_t *zip);
+
+-/*
+- Returns an uncompressed size of the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The uncompressed size in bytes.
+-*/
++/**
++ * Returns an uncompressed size of the current zip entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the uncompressed size in bytes.
++ */
+ extern unsigned long long zip_entry_size(struct zip_t *zip);
+
+-/*
+- Returns CRC-32 checksum of the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The CRC-32 checksum.
+-*/
++/**
++ * Returns CRC-32 checksum of the current zip entry.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the CRC-32 checksum.
++ */
+ extern unsigned int zip_entry_crc32(struct zip_t *zip);
+
+-/*
+- Compresses an input buffer for the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+- buf: input buffer.
+- bufsize: input buffer size (in bytes).
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Compresses an input buffer for the current zip entry.
++ *
++ * @param zip zip archive handler.
++ * @param buf input buffer.
++ * @param bufsize input buffer size (in bytes).
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_write(struct zip_t *zip, const void *buf, size_t bufsize);
+
+-/*
+- Compresses a file for the current zip entry.
+-
+- Args:
+- zip: zip archive handler.
+- filename: input file.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Compresses a file for the current zip entry.
++ *
++ * @param zip zip archive handler.
++ * @param filename input file.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_fwrite(struct zip_t *zip, const char *filename);
+
+-/*
+- Extracts the current zip entry into output buffer.
+- The function allocates sufficient memory for a output buffer.
+-
+- Args:
+- zip: zip archive handler.
+- buf: output buffer.
+- bufsize: output buffer size (in bytes).
+-
+- Note:
+- - remember to release memory allocated for a output buffer.
+- - for large entries, please take a look at zip_entry_extract function.
+-
+- Returns:
+- The return code - the number of bytes actually read on success.
+- Otherwise a -1 on error.
+-*/
++/**
++ * Extracts the current zip entry into output buffer.
++ *
++ * The function allocates sufficient memory for a output buffer.
++ *
++ * @param zip zip archive handler.
++ * @param buf output buffer.
++ * @param bufsize output buffer size (in bytes).
++ *
++ * @note remember to release memory allocated for a output buffer.
++ * for large entries, please take a look at zip_entry_extract function.
++ *
++ * @return the return code - the number of bytes actually read on success.
++ * Otherwise a -1 on error.
++ */
+ extern ssize_t zip_entry_read(struct zip_t *zip, void **buf, size_t *bufsize);
+
+-/*
+- Extracts the current zip entry into a memory buffer using no memory
+- allocation.
+-
+- Args:
+- zip: zip archive handler.
+- buf: preallocated output buffer.
+- bufsize: output buffer size (in bytes).
+-
+- Note:
+- - ensure supplied output buffer is large enough.
+- - zip_entry_size function (returns uncompressed size for the current entry)
+- can be handy to estimate how big buffer is needed.
+- - for large entries, please take a look at zip_entry_extract function.
+-
+- Returns:
+- The return code - the number of bytes actually read on success.
+- Otherwise a -1 on error (e.g. bufsize is not large enough).
+-*/
+-extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf, size_t bufsize);
+-
+-/*
+- Extracts the current zip entry into output file.
+-
+- Args:
+- zip: zip archive handler.
+- filename: output file.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Extracts the current zip entry into a memory buffer using no memory
++ * allocation.
++ *
++ * @param zip zip archive handler.
++ * @param buf preallocated output buffer.
++ * @param bufsize output buffer size (in bytes).
++ *
++ * @note ensure supplied output buffer is large enough.
++ * zip_entry_size function (returns uncompressed size for the current
++ * entry) can be handy to estimate how big buffer is needed. for large
++ * entries, please take a look at zip_entry_extract function.
++ *
++ * @return the return code - the number of bytes actually read on success.
++ * Otherwise a -1 on error (e.g. bufsize is not large enough).
++ */
++extern ssize_t zip_entry_noallocread(struct zip_t *zip, void *buf,
++ size_t bufsize);
++
++/**
++ * Extracts the current zip entry into output file.
++ *
++ * @param zip zip archive handler.
++ * @param filename output file.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_entry_fread(struct zip_t *zip, const char *filename);
+
+-/*
+- Extracts the current zip entry using a callback function (on_extract).
+-
+- Args:
+- zip: zip archive handler.
+- on_extract: callback function.
+- arg: opaque pointer (optional argument,
+- which you can pass to the on_extract callback)
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
++/**
++ * Extracts the current zip entry using a callback function (on_extract).
++ *
++ * @param zip zip archive handler.
++ * @param on_extract callback function.
++ * @param arg opaque pointer (optional argument, which you can pass to the
++ * on_extract callback)
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
+ */
+ extern int
+ zip_entry_extract(struct zip_t *zip,
+@@ -262,53 +261,49 @@ zip_entry_extract(struct zip_t *zip,
+ const void *data, size_t size),
+ void *arg);
+
+-/*
+- Returns the number of all entries (files and directories) in the zip archive.
+-
+- Args:
+- zip: zip archive handler.
+-
+- Returns:
+- The return code - the number of entries on success,
+- negative number (< 0) on error.
+-*/
++/**
++ * Returns the number of all entries (files and directories) in the zip archive.
++ *
++ * @param zip zip archive handler.
++ *
++ * @return the return code - the number of entries on success, negative number
++ * (< 0) on error.
++ */
+ extern int zip_total_entries(struct zip_t *zip);
+
+-/*
+- Creates a new archive and puts files into a single zip archive.
+-
+- Args:
+- zipname: zip archive file.
+- filenames: input files.
+- len: number of input files.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Creates a new archive and puts files into a single zip archive.
++ *
++ * @param zipname zip archive file.
++ * @param filenames input files.
++ * @param len: number of input files.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_create(const char *zipname, const char *filenames[], size_t len);
+
+-/*
+- Extracts a zip archive file into directory.
+-
+- If on_extract_entry is not NULL, the callback will be called after
+- successfully extracted each zip entry.
+- Returning a negative value from the callback will cause abort and return an
+- error. The last argument (void *arg) is optional, which you can use to pass
+- data to the on_extract_entry callback.
+-
+- Args:
+- zipname: zip archive file.
+- dir: output directory.
+- on_extract_entry: on extract callback.
+- arg: opaque pointer.
+-
+- Returns:
+- The return code - 0 on success, negative number (< 0) on error.
+-*/
++/**
++ * Extracts a zip archive file into directory.
++ *
++ * If on_extract_entry is not NULL, the callback will be called after
++ * successfully extracted each zip entry.
++ * Returning a negative value from the callback will cause abort and return an
++ * error. The last argument (void *arg) is optional, which you can use to pass
++ * data to the on_extract_entry callback.
++ *
++ * @param zipname zip archive file.
++ * @param dir output directory.
++ * @param on_extract_entry on extract callback.
++ * @param arg opaque pointer.
++ *
++ * @return the return code - 0 on success, negative number (< 0) on error.
++ */
+ extern int zip_extract(const char *zipname, const char *dir,
+ int (*on_extract_entry)(const char *filename, void *arg),
+ void *arg);
+
++/** @} */
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/contrib/zip/test/CMakeLists.txt b/contrib/zip/test/CMakeLists.txt
+index 9b2a8db1..cc060b00 100644
+--- a/contrib/zip/test/CMakeLists.txt
++++ b/contrib/zip/test/CMakeLists.txt
+@@ -1,19 +1,16 @@
+ cmake_minimum_required(VERSION 2.8)
+
+-if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_C_COMPILER_ID}" STREQUAL "AppleClang")
+- if(ENABLE_COVERAGE)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g ")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage")
+- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
+- endif()
+-endif ()
+-
+ # test
+-include_directories(../src)
+-add_executable(test.exe test.c ../src/zip.c)
+-add_executable(test_miniz.exe test_miniz.c)
++set(test_out test.out)
++set(test_miniz_out test_miniz.out)
++
++add_executable(${test_out} test.c)
++target_link_libraries(${test_out} zip)
++add_executable(${test_miniz_out} test_miniz.c)
++target_link_libraries(${test_miniz_out} zip)
++
++add_test(NAME ${test_out} COMMAND ${test_out})
++add_test(NAME ${test_miniz_out} COMMAND ${test_miniz_out})
+
+-add_test(NAME test COMMAND test.exe)
+-add_test(NAME test_miniz COMMAND test_miniz.exe)
++set(test_out ${test_out} PARENT_SCOPE)
++set(test_miniz_out ${test_miniz_out} PARENT_SCOPE)
+diff --git a/contrib/zip/test/test.c b/contrib/zip/test/test.c
+index 45443053..a9b2ddab 100644
+--- a/contrib/zip/test/test.c
++++ b/contrib/zip/test/test.c
+@@ -29,6 +29,8 @@
+ #define XFILE "7.txt\0"
+ #define XMODE 0100777
+
++#define UNIXMODE 0100644
++
+ #define UNUSED(x) (void)x
+
+ static int total_entries = 0;
+@@ -102,7 +104,8 @@ static void test_read(void) {
+ assert(0 == zip_entry_close(zip));
+ free(buf);
+ buf = NULL;
+-
++ bufsize = 0;
++
+ assert(0 == zip_entry_open(zip, "test/test-2.txt"));
+ assert(strlen(TESTDATA2) == zip_entry_size(zip));
+ assert(CRC32DATA2 == zip_entry_crc32(zip));
+@@ -131,7 +134,8 @@ static void test_read(void) {
+ assert(0 == zip_entry_close(zip));
+ free(buf);
+ buf = NULL;
+-
++ bufsize = 0;
++
+ buftmp = strlen(TESTDATA1);
+ buf = calloc(buftmp, sizeof(char));
+ assert(0 == zip_entry_open(zip, "test/test-1.txt"));
+@@ -433,6 +437,35 @@ static void test_mtime(void) {
+ remove(ZIPNAME);
+ }
+
++static void test_unix_permissions(void) {
++#if defined(_WIN64) || defined(_WIN32) || defined(__WIN32__)
++#else
++ // UNIX or APPLE
++ struct MZ_FILE_STAT_STRUCT file_stats;
++
++ remove(ZIPNAME);
++
++ struct zip_t *zip = zip_open(ZIPNAME, ZIP_DEFAULT_COMPRESSION_LEVEL, 'w');
++ assert(zip != NULL);
++
++ assert(0 == zip_entry_open(zip, RFILE));
++ assert(0 == zip_entry_write(zip, TESTDATA1, strlen(TESTDATA1)));
++ assert(0 == zip_entry_close(zip));
++
++ zip_close(zip);
++
++ remove(RFILE);
++
++ assert(0 == zip_extract(ZIPNAME, ".", NULL, NULL));
++
++ assert(0 == MZ_FILE_STAT(RFILE, &file_stats));
++ assert(UNIXMODE == file_stats.st_mode);
++
++ remove(RFILE);
++ remove(ZIPNAME);
++#endif
++}
++
+ int main(int argc, char *argv[]) {
+ UNUSED(argc);
+ UNUSED(argv);
+@@ -453,6 +486,7 @@ int main(int argc, char *argv[]) {
+ test_write_permissions();
+ test_exe_permissions();
+ test_mtime();
++ test_unix_permissions();
+
+ remove(ZIPNAME);
+ return 0;
+diff --git a/contrib/zip/test/test_miniz.c b/contrib/zip/test/test_miniz.c
+index ebc0564d..babcaecd 100644
+--- a/contrib/zip/test/test_miniz.c
++++ b/contrib/zip/test/test_miniz.c
+@@ -23,16 +23,39 @@ int main(int argc, char *argv[]) {
+ uint step = 0;
+ int cmp_status;
+ uLong src_len = (uLong)strlen(s_pStr);
+- uLong cmp_len = compressBound(src_len);
+ uLong uncomp_len = src_len;
++ uLong cmp_len;
+ uint8 *pCmp, *pUncomp;
++ size_t sz;
+ uint total_succeeded = 0;
+ (void)argc, (void)argv;
+
+ printf("miniz.c version: %s\n", MZ_VERSION);
+
+ do {
++ pCmp = (uint8 *)tdefl_compress_mem_to_heap(s_pStr, src_len, &cmp_len, 0);
++ if (!pCmp) {
++ printf("tdefl_compress_mem_to_heap failed\n");
++ return EXIT_FAILURE;
++ }
++ if (src_len <= cmp_len) {
++ printf("tdefl_compress_mem_to_heap failed: from %u to %u bytes\n",
++ (mz_uint32)uncomp_len, (mz_uint32)cmp_len);
++ free(pCmp);
++ return EXIT_FAILURE;
++ }
++
++ sz = tdefl_compress_mem_to_mem(pCmp, cmp_len, s_pStr, src_len, 0);
++ if (sz != cmp_len) {
++ printf("tdefl_compress_mem_to_mem failed: expected %u, got %u\n",
++ (mz_uint32)cmp_len, (mz_uint32)sz);
++ free(pCmp);
++ return EXIT_FAILURE;
++ }
++
+ // Allocate buffers to hold compressed and uncompressed data.
++ free(pCmp);
++ cmp_len = compressBound(src_len);
+ pCmp = (mz_uint8 *)malloc((size_t)cmp_len);
+ pUncomp = (mz_uint8 *)malloc((size_t)src_len);
+ if ((!pCmp) || (!pUncomp)) {
diff --git a/poky/meta/recipes-graphics/vulkan/assimp_4.1.0.bb b/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
index 194cbe33c..5a8c62e64 100644
--- a/poky/meta/recipes-graphics/vulkan/assimp_4.1.0.bb
+++ b/poky/meta/recipes-graphics/vulkan/assimp_5.0.1.bb
@@ -8,10 +8,13 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=2119edef0916b0bd511cb3c731076271"
DEPENDS = "zlib"
-SRC_URI = "git://github.com/assimp/assimp.git"
+SRC_URI = "git://github.com/assimp/assimp.git;branch=assimp_5.0_release \
+ file://0001-closes-https-github.com-assimp-assimp-issues-2733-up.patch \
+ file://0001-Use-ASSIMP_LIB_INSTALL_DIR-to-search-library.patch \
+ "
UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
-SRCREV = "80799bdbf90ce626475635815ee18537718a05b1"
+SRCREV = "8f0c6b04b2257a520aaab38421b2e090204b69df"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch b/poky/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch
index 93bcfbf85..76240610f 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-demos/0001-Don-t-build-demos-with-questionably-licensed-data.patch
@@ -1,4 +1,4 @@
-From 0a27144d43b70121f57f6036514d069ca9d2b971 Mon Sep 17 00:00:00 2001
+From 0cbf9c9831f773e0da66209be9a6ff28d57c2321 Mon Sep 17 00:00:00 2001
From: "Maxin B. John" <maxin.john@intel.com>
Date: Mon, 30 Jul 2018 17:23:29 +0300
Subject: [PATCH] Don't build demos with questionably licensed data
@@ -33,16 +33,17 @@ Upstream-Status: Inappropriate [configuration]
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Maxin B. John <maxin.john@intel.com>
+
---
examples/CMakeLists.txt | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
-index 8eee3a4..698d3b3 100644
+index e07918c..08b6e23 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
-@@ -47,18 +47,12 @@ set(EXAMPLES
- computeshader
+@@ -55,18 +55,12 @@ set(EXAMPLES
+ conditionalrender
conservativeraster
debugmarker
- deferred
@@ -57,10 +58,10 @@ index 8eee3a4..698d3b3 100644
- hdr
- imgui
- indirectdraw
+ inlineuniformblocks
inputattachments
instancing
- mesh
-@@ -70,8 +64,6 @@ set(EXAMPLES
+@@ -83,23 +77,16 @@ set(EXAMPLES
parallaxmapping
particlefire
pbrbasic
@@ -69,9 +70,8 @@ index 8eee3a4..698d3b3 100644
pipelines
pipelinestatistics
pushconstants
-@@ -79,15 +71,10 @@ set(EXAMPLES
+ pushdescriptors
radialblur
- raytracing
renderheadless
- scenerendering
screenshot
@@ -85,7 +85,7 @@ index 8eee3a4..698d3b3 100644
stencilbuffer
subpasses
terraintessellation
-@@ -101,7 +88,6 @@ set(EXAMPLES
+@@ -113,7 +100,6 @@ set(EXAMPLES
texturesparseresidency
triangle
viewportarray
@@ -93,6 +93,3 @@ index 8eee3a4..698d3b3 100644
)
buildExamples()
---
-2.4.0
-
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb b/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
index 74dc2ad67..c94e768b5 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-demos_git.bb
@@ -5,23 +5,23 @@ DEPENDS = "zlib"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dcf473723faabf17baa9b5f2207599d0 \
file://examples/triangle/triangle.cpp;endline=12;md5=bccd1bf9cadd9e10086cf7872157e4fa"
-SRCREV_glm = "01f9ab5b6d21e5062ac0f6e0f205c7fa2ca9d769"
-SRCREV_gli = "8e43030b3e12bb58a4663d85adc5c752f89099c0"
+SRCREV_glm = "1ad55c5016339b83b7eec98c31007e0aee57d2bf"
+SRCREV_gli = "7da5f50931225e9819a26d5cb323c5f42da50bcd"
SRC_URI = "git://github.com/SaschaWillems/Vulkan.git \
git://github.com/g-truc/glm;destsuffix=git/external/glm;name=glm \
git://github.com/g-truc/gli;destsuffix=git/external/gli;name=gli \
file://0001-Don-t-build-demos-with-questionably-licensed-data.patch \
-"
+ "
UPSTREAM_CHECK_COMMITS = "1"
-SRCREV = "ae0b59c6e2e8630a2ae26f4a0b7a72cbe7547948"
+SRCREV = "6d63dc32c320a49be0a56c365151c8f2f176bc59"
UPSTREAM_CHECK_GITTAGREGEX = "These are not the releases you're looking for"
S = "${WORKDIR}/git"
REQUIRED_DISTRO_FEATURES = 'vulkan'
inherit cmake features_check
-DEPENDS = "vulkan-loader assimp"
+DEPENDS = "vulkan-loader assimp wayland-protocols wayland-native"
do_install_append () {
# Remove assets that have uncertain licenses
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.bb b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb
index 284c19d79..72c29a72a 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.108.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-headers_1.1.126.0.bb
@@ -5,9 +5,9 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=sdk-${PV}"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=sdk-1.1.126"
-SRCREV = "097a1045098213919fd56442f52c716fc78eeb27"
+SRCREV = "5bc459e2921304c32568b73edaac8d6df5f98b84"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb
index a539c5a3c..504cf85a2 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.108.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-loader_1.1.126.0.bb
@@ -9,8 +9,8 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7dbefed23242760aa3475ee42801c5ac"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-${PV}"
-SRCREV = "ecb0b1e69fb2f4d3cae262e6da24c170ce62ae13"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.1.126"
+SRCREV = "4adad4ff705fa76f9edb2d37cb57e593decb60ed"
S = "${WORKDIR}/git"
@@ -24,6 +24,7 @@ DEPENDS += "vulkan-headers"
EXTRA_OECMAKE = "\
-DBUILD_TESTS=OFF \
-DPYTHON_EXECUTABLE=${HOSTTOOLS_DIR}/python3 \
+ -DASSEMBLER_WORKS=FALSE \
"
# must choose x11 or wayland or both
diff --git a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb
index 4ac1bafd1..2fd61c989 100644
--- a/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.108.bb
+++ b/poky/meta/recipes-graphics/vulkan/vulkan-tools_1.1.126.0.bb
@@ -5,8 +5,8 @@ SECTION = "libs"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-${PV}"
-SRCREV = "3ccd7f6ebae3e1919adf837718c04feb6c2acc61"
+SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-1.1.126"
+SRCREV = "09695dfc5dbe54f869aeaff8db93bb7bb6a220e0"
S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb b/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb
index 52cb1df89..a62029597 100644
--- a/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb
+++ b/poky/meta/recipes-graphics/waffle/waffle_1.6.0.bb
@@ -11,6 +11,8 @@ UPSTREAM_CHECK_URI = "http://www.waffle-gl.org/releases.html"
inherit meson features_check lib_package bash-completion
+DEPENDS_append = " python3"
+
# This should be overridden per-machine to reflect the capabilities of the GL
# stack.
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11-egl', '', d)} \
diff --git a/poky/meta/recipes-graphics/wayland/libinput/determinism.patch b/poky/meta/recipes-graphics/wayland/libinput/determinism.patch
new file mode 100644
index 000000000..cb554030c
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/libinput/determinism.patch
@@ -0,0 +1,21 @@
+This finds our outer git tree and that version information breaks
+determinism of this recipe. Disable it.
+
+RP 2020/2/6
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: libinput-1.14.3/meson.build
+===================================================================
+--- libinput-1.14.3.orig/meson.build
++++ libinput-1.14.3/meson.build
+@@ -387,7 +387,7 @@ pkgconfig.generate(
+ libraries : lib_libinput
+ )
+
+-git_version_h = vcs_tag(command : ['git', 'describe'],
++git_version_h = vcs_tag(command : ['false'],
+ fallback : 'unknown',
+ input : 'src/libinput-git-version.h.in',
+ output :'libinput-git-version.h')
diff --git a/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb b/poky/meta/recipes-graphics/wayland/libinput_1.15.2.bb
index f06a8d28f..810532774 100644
--- a/poky/meta/recipes-graphics/wayland/libinput_1.14.3.bb
+++ b/poky/meta/recipes-graphics/wayland/libinput_1.15.2.bb
@@ -12,9 +12,11 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=1f2ea9ebff3a2c6d458faf58492efb63"
DEPENDS = "libevdev udev mtdev"
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "d052faa64eb6d2e649e582cc0fcf6e32"
-SRC_URI[sha256sum] = "0feb3a0589709cc1032893bfaf4c49150d5360bd9782bec888f9e4dd9044c5b7"
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
+ file://determinism.patch \
+ "
+SRC_URI[md5sum] = "eb6bd2907ad33d53954d70dfb881a643"
+SRC_URI[sha256sum] = "971c3fbfb624f95c911adeb2803c372e4e3647d1b98f278f660051f834597747"
UPSTREAM_CHECK_REGEX = "libinput-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
@@ -35,3 +37,4 @@ EXTRA_OEMESON += "-Dudev-dir=${UDEVDIR} \
RPROVIDES_${PN} = "libinput"
RREPLACES_${PN} = "libinput"
RCONFLICTS_${PN} = "libinput"
+
diff --git a/poky/meta/recipes-graphics/wayland/mtdev_1.1.5.bb b/poky/meta/recipes-graphics/wayland/mtdev_1.1.6.bb
index ccd0ebbfc..7c1cb5e4e 100644
--- a/poky/meta/recipes-graphics/wayland/mtdev_1.1.5.bb
+++ b/poky/meta/recipes-graphics/wayland/mtdev_1.1.6.bb
@@ -12,7 +12,7 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=ea6bd0268bb0fcd6b27698616ceee5d6"
SRC_URI = "http://bitmath.org/code/${BPN}/${BP}.tar.bz2"
-SRC_URI[md5sum] = "52c9610b6002f71d1642dc1a1cca5ec1"
-SRC_URI[sha256sum] = "6677d5708a7948840de734d8b4675d5980d4561171c5a8e89e54adf7a13eba7f"
+SRC_URI[md5sum] = "bf8ef2482e84a00b5db8fbd3ce00e249"
+SRC_URI[sha256sum] = "15d7b28da8ac71d8bc8c9287c2045fd174267bc740bec10cfda332dc1204e0e0"
inherit autotools pkgconfig
diff --git a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb
index c8bec66a4..3fb78f658 100644
--- a/poky/meta/recipes-graphics/wayland/wayland-protocols_1.18.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland-protocols_1.20.bb
@@ -11,8 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
"
-SRC_URI[md5sum] = "af38f22d8e233c2f2e00ddc8dcc94694"
-SRC_URI[sha256sum] = "3d73b7e7661763dc09d7d9107678400101ecff2b5b1e531674abfa81e04874b3"
+SRC_URI[md5sum] = "b0836533a3f2dc6585b1dae00341157f"
+SRC_URI[sha256sum] = "9782b7a1a863d82d7c92478497d13c758f52e7da4f197aa16443f73de77e4de7"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch b/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
new file mode 100644
index 000000000..e44583875
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland/0001-build-Fix-strndup-detection-on-MinGW.patch
@@ -0,0 +1,39 @@
+From e6783c99f051c6d8252db5f388d805cef0e16357 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
+
+Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/wayland/merge_requests/63]
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 26b084f..c05d019 100644
+--- a/meson.build
++++ b/meson.build
+@@ -36,11 +36,11 @@ have_funcs = [
+ 'posix_fallocate',
+ 'prctl',
+ 'memfd_create',
+- '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', prefix:'#include <string.h>'))
+
+ if get_option('libraries')
+ ffi_dep = dependency('libffi')
+--
+2.17.1
+
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch b/poky/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch
new file mode 100644
index 000000000..61de0e04e
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland/0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch
@@ -0,0 +1,115 @@
+From b2c74f6a3dbe0aee2413800837314136947a4985 Mon Sep 17 00:00:00 2001
+From: Jan Beich <jbeich@FreeBSD.org>
+Date: Sat, 15 Feb 2020 02:03:45 +0000
+Subject: [PATCH] meson/tests: add missing dependencies on protocol headers
+
+In file included from ../tests/connection-test.c:43:
+In file included from ../tests/test-compositor.h:30:
+../src/wayland-client.h:40:10: fatal error: 'wayland-client-protocol.h' file not found
+ #include "wayland-client-protocol.h"
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from ../tests/display-test.c:45:
+In file included from ../src/wayland-server.h:104:
+src/wayland-server-protocol.h:4454:2: error: unterminated /* comment
+ /**
+ ^
+In file included from ../tests/cpp-compile-test.cpp:2:
+In file included from src/wayland-server-protocol.h:8:
+In file included from ../src/wayland-server.h:104:
+src/wayland-server-protocol.h:3:2: error: unterminated conditional directive
+ #ifndef WAYLAND_SERVER_PROTOCOL_H
+ ^
+../tests/headers-protocol-test.c:33:2: error: including wayland-server-protocol.h did not include wayland-server.h!
+ #error including wayland-server-protocol.h did not include wayland-server.h!
+ ^
+In file included from ../tests/headers-protocol-test.c:26:
+In file included from src/wayland-client-protocol.h:8:
+In file included from ../src/wayland-client.h:40:
+src/wayland-client-protocol.h:1358:2: error: unterminated conditional directive
+ #ifndef WL_SHM_FORMAT_ENUM
+ ^
+In file included from ../tests/protocol-logger-test.c:34:
+In file included from ../src/wayland-client.h:40:
+src/wayland-client-protocol.h:2613:1: error: unterminated /* comment
+/**
+^
+../tests/resources-test.c:49:36: error: use of undeclared identifier 'wl_seat_interface'
+ res = wl_resource_create(client, &wl_seat_interface, 4, 0);
+ ^
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ tests/meson.build | 26 ++++++++++++++++++--------
+ 1 file changed, 18 insertions(+), 8 deletions(-)
+
+diff --git a/tests/meson.build b/tests/meson.build
+index c28a2a3..f1af7b4 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -69,7 +69,7 @@ test(
+ executable(
+ 'cpp-compile-test',
+ 'cpp-compile-test.cpp',
+- wayland_server_protocol_core_h,
++ wayland_server_protocol_h,
+ include_directories: src_inc
+ )
+ )
+@@ -91,17 +91,25 @@ tests = {
+ 'array-test': [],
+ 'client-test': [ wayland_server_protocol_h ],
+ 'display-test': [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
+ tests_server_protocol_h,
+ tests_client_protocol_c,
+ tests_protocol_c,
+ ],
+- 'connection-test': [ wayland_server_protocol_h ],
++ 'connection-test': [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
++ ],
+ 'event-loop-test': [ wayland_server_protocol_h ],
+ 'fixed-test': [],
+ 'interface-test': [ wayland_client_protocol_h ],
+ 'list-test': [],
+ 'map-test': [],
+- 'sanity-test' : [ wayland_server_protocol_h ],
++ 'sanity-test' : [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
++ ],
+ 'socket-test': [
+ wayland_client_protocol_h,
+ wayland_server_protocol_h,
+@@ -116,7 +124,7 @@ tests = {
+ files('../src/wayland-server.c'),
+ wayland_server_protocol_h,
+ ],
+- 'resources-test': [ wayland_server_protocol_core_h ],
++ 'resources-test': [ wayland_server_protocol_h ],
+ 'message-test': [
+ wayland_client_protocol_h,
+ wayland_server_protocol_h,
+@@ -126,14 +134,16 @@ tests = {
+ wayland_server_protocol_h,
+ ],
+ 'protocol-logger-test': [
+- wayland_server_protocol_core_h,
+- wayland_client_protocol_core_h,
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
+ ],
+ 'headers-test': [
++ wayland_client_protocol_h,
++ wayland_server_protocol_h,
+ 'headers-protocol-test.c',
+- 'headers-protocol-core-test.c',
+- wayland_server_protocol_core_h,
+ wayland_client_protocol_core_h,
++ wayland_server_protocol_core_h,
++ 'headers-protocol-core-test.c',
+ ],
+ 'os-wrappers-test': [],
+ }
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch b/poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Add-configure-check-for-strndup.patch
deleted file mode 100644
index c4435875a..000000000
--- a/poky/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/poky/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch b/poky/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch
new file mode 100644
index 000000000..2199548bd
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland/0002-Do-not-hardcode-the-path-to-wayland-scanner.patch
@@ -0,0 +1,26 @@
+From cbb28635a1079d68e62dbaa1e21791a20dbbbaf4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 17 Feb 2020 21:46:18 +0100
+Subject: [PATCH] Do not hardcode the path to wayland-scanner
+
+This results in host contamination during builds.
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 294aee0..7e410fa 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -49,7 +49,7 @@ pkgconfig.generate(
+ 'datarootdir=' + join_paths('${prefix}', get_option('datadir')),
+ 'pkgdatadir=' + join_paths('${datarootdir}', meson.project_name()),
+ 'bindir=' + join_paths('${prefix}', get_option('bindir')),
+- 'wayland_scanner=${bindir}/wayland-scanner'
++ 'wayland_scanner=wayland-scanner'
+ ],
+ filebase: 'wayland-scanner'
+ )
diff --git a/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch b/poky/meta/recipes-graphics/wayland/wayland/0002-Move-wl_priv_signal-to-wayland-server-private.h.patch
deleted file mode 100644
index b05b875ab..000000000
--- a/poky/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/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch b/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch
new file mode 100644
index 000000000..f98037a85
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/wayland/0002-meson.build-find-the-native-wayland-scanner-directly.patch
@@ -0,0 +1,27 @@
+From 2582d2653ba80917d7bc47088e1a5f49530fddaa Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 16 Feb 2020 16:29:53 +0100
+Subject: [PATCH] meson.build: find the native wayland-scanner directly in PATH
+
+Otherwise, meson attempts to use the target pkg-config and fails.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ src/meson.build | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/meson.build b/src/meson.build
+index 3e8c9bf..294aee0 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -55,8 +55,7 @@ pkgconfig.generate(
+ )
+
+ if meson.is_cross_build()
+- scanner_dep = dependency('wayland-scanner', native: true, version: '>=1.14.0')
+- wayland_scanner_for_build = find_program(scanner_dep.get_pkgconfig_variable('wayland_scanner'))
++ wayland_scanner_for_build = find_program('wayland-scanner')
+ else
+ wayland_scanner_for_build = wayland_scanner
+ endif
diff --git a/poky/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch b/poky/meta/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch
deleted file mode 100644
index ad3526d98..000000000
--- a/poky/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/poky/meta/recipes-graphics/wayland/wayland/run-ptest b/poky/meta/recipes-graphics/wayland/wayland/run-ptest
new file mode 100644
index 000000000..7e8d9de04
--- /dev/null
+++ b/poky/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
diff --git a/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb b/poky/meta/recipes-graphics/wayland/wayland_1.18.0.bb
index 2b5a8f945..00be3aac2 100644
--- a/poky/meta/recipes-graphics/wayland/wayland_1.17.0.bb
+++ b/poky/meta/recipes-graphics/wayland/wayland_1.18.0.bb
@@ -10,22 +10,27 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
-DEPENDS = "expat libxml2 libffi wayland-native"
+DEPENDS = "expat libffi wayland-native"
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
- file://fixpathinpcfiles.patch \
- file://0001-scanner-Add-configure-check-for-strndup.patch \
- file://0002-Move-wl_priv_signal-to-wayland-server-private.h.patch \
+ file://run-ptest \
+ file://0002-meson.build-find-the-native-wayland-scanner-directly.patch \
+ file://0002-Do-not-hardcode-the-path-to-wayland-scanner.patch \
+ file://0001-build-Fix-strndup-detection-on-MinGW.patch \
+ file://0001-meson-tests-add-missing-dependencies-on-protocol-hea.patch \
"
-SRC_URI[md5sum] = "d91f970aea11fd549eae023d06f91af3"
-SRC_URI[sha256sum] = "72aa11b8ac6e22f4777302c9251e8fec7655dc22f9d94ee676c6b276f95f91a4"
+SRC_URI[md5sum] = "23317697b6e3ff2e1ac8c5ba3ed57b65"
+SRC_URI[sha256sum] = "4675a79f091020817a98fd0484e7208c8762242266967f55a67776936c2e294d"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
-inherit autotools pkgconfig
+inherit meson pkgconfig ptest
-EXTRA_OECONF = "--disable-documentation --with-host-scanner"
-EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries"
+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.
@@ -35,6 +40,15 @@ do_install_append_class-native() {
-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/
@@ -44,3 +58,5 @@ FILES_${PN} = "${libdir}/*${SOLIBS}"
FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS_${PN}-ptest += "binutils sed"
diff --git a/poky/meta/recipes-graphics/wayland/weston-init.bb b/poky/meta/recipes-graphics/wayland/weston-init.bb
index e3e739e2b..40aa76295 100644
--- a/poky/meta/recipes-graphics/wayland/weston-init.bb
+++ b/poky/meta/recipes-graphics/wayland/weston-init.bb
@@ -5,6 +5,7 @@ LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384
PACKAGE_ARCH = "${MACHINE_ARCH}"
SRC_URI = "file://init \
+ file://weston.env \
file://weston.ini \
file://weston@.service \
file://71-weston-drm.rules \
@@ -15,6 +16,7 @@ S = "${WORKDIR}"
do_install() {
install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston
install -D -p -m0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston/weston.ini
+ install -Dm644 ${WORKDIR}/weston.env ${D}${sysconfdir}/default/weston
# Install Weston systemd service and accompanying udev rule
install -D -p -m0644 ${WORKDIR}/weston@.service ${D}${systemd_system_unitdir}/weston@.service
@@ -30,6 +32,14 @@ do_install() {
sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
}
+do_install_append_libc-musl_qemux86() {
+ echo "WESTON_DISABLE_ATOMIC=Y" >> ${D}${sysconfdir}/default/weston
+}
+
+do_install_append_libc-musl_qemux86-64() {
+ echo "WESTON_DISABLE_ATOMIC=Y" >> ${D}${sysconfdir}/default/weston
+}
+
inherit update-rc.d features_check systemd
# rdepends on weston which depends on virtual/egl
@@ -40,9 +50,9 @@ RDEPENDS_${PN} = "weston kbd"
INITSCRIPT_NAME = "weston"
INITSCRIPT_PARAMS = "start 9 5 2 . stop 20 0 1 6 ."
-FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service"
+FILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${systemd_system_unitdir}/weston@.service ${sysconfdir}/default/weston"
-CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini"
+CONFFILES_${PN} += "${sysconfdir}/xdg/weston/weston.ini ${sysconfdir}/default/weston"
SYSTEMD_SERVICE_${PN} = "weston@%i.service"
SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/poky/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini b/poky/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini
new file mode 100644
index 000000000..17ebd7fda
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/weston-init/qemuall/weston.ini
@@ -0,0 +1,2 @@
+[core]
+backend=fbdev-backend.so
diff --git a/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini b/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini
index 17ebd7fda..e69de29bb 100644
--- a/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini
+++ b/poky/meta/recipes-graphics/wayland/weston-init/qemux86-64/weston.ini
@@ -1,2 +0,0 @@
-[core]
-backend=fbdev-backend.so
diff --git a/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini b/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini
index 17ebd7fda..e69de29bb 100644
--- a/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini
+++ b/poky/meta/recipes-graphics/wayland/weston-init/qemux86/weston.ini
@@ -1,2 +0,0 @@
-[core]
-backend=fbdev-backend.so
diff --git a/poky/meta/recipes-graphics/wayland/weston-init/weston.env b/poky/meta/recipes-graphics/wayland/weston-init/weston.env
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/poky/meta/recipes-graphics/wayland/weston-init/weston.env
diff --git a/poky/meta/recipes-graphics/wayland/weston-init/weston.ini b/poky/meta/recipes-graphics/wayland/weston-init/weston.ini
index 1eecf48bc..1e6dff68f 100644
--- a/poky/meta/recipes-graphics/wayland/weston-init/weston.ini
+++ b/poky/meta/recipes-graphics/wayland/weston-init/weston.ini
@@ -1,9 +1,10 @@
# configuration file for Weston
-#[core]
+[core]
#modules=xwayland.so,cms-colord.so
#shell=desktop-shell.so
#gbm-format=xrgb2101010
+require-input=false
#[shell]
#background-image=/usr/share/backgrounds/gnome/Aqua.jpg
diff --git a/poky/meta/recipes-graphics/wayland/weston-init/weston@.service b/poky/meta/recipes-graphics/wayland/weston-init/weston@.service
index 9ecf2ab06..39e193014 100644
--- a/poky/meta/recipes-graphics/wayland/weston-init/weston@.service
+++ b/poky/meta/recipes-graphics/wayland/weston-init/weston@.service
@@ -1,37 +1,15 @@
[Unit]
-Description=Weston Wayland Compositor (on tty7)
+Description=Weston Wayland Compositor
RequiresMountsFor=/run
-Conflicts=getty@tty7.service plymouth-quit.service
-After=systemd-user-sessions.service getty@tty7.service plymouth-quit-wait.service
+Conflicts=plymouth-quit.service
+After=systemd-user-sessions.service plymouth-quit-wait.service
[Service]
User=%i
-PermissionsStartOnly=true
-
-# Log us in via PAM so we get our XDG & co. environment and
-# are treated as logged in so we can use the tty:
PAMName=login
-
-# Grab tty7
-UtmpIdentifier=tty7
-TTYPath=/dev/tty7
-TTYReset=yes
-TTYVHangup=yes
-TTYVTDisallocate=yes
-
-# stderr to journal so our logging doesn't get thrown into /dev/null
-StandardOutput=tty
-StandardInput=tty
-StandardError=journal
-
EnvironmentFile=-/etc/default/weston
-
-# Weston does not successfully change VT, nor does systemd place us on
-# the VT it just activated for us. Switch manually:
-ExecStartPre=/usr/bin/chvt 7
-ExecStart=/usr/bin/weston --log=${XDG_RUNTIME_DIR}/weston.log $OPTARGS
-
+StandardError=journal
+PermissionsStartOnly=true
IgnoreSIGPIPE=no
-#[Install]
-#Alias=multi-user.target.wants/weston.service
+ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS
diff --git a/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
index e50845b17..62b864c13 100644
--- a/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
+++ b/poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
@@ -1,4 +1,4 @@
-From 682b7d79a7b81ec8e38760381104b24ad549e8c0 Mon Sep 17 00:00:00 2001
+From 5f2d71998eb77068cbaee2d468cbb296a42d5739 Mon Sep 17 00:00:00 2001
From: Tom Hochstein <tom.hochstein@nxp.com>
Date: Wed, 22 Feb 2017 15:53:30 +0200
Subject: [PATCH] weston-launch: Provide a default version that doesn't require
@@ -16,6 +16,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
+
---
libweston/meson.build | 16 ++++++++++++----
libweston/weston-launch.c | 21 +++++++++++++++++++++
@@ -23,10 +24,10 @@ Signed-off-by: Ming Liu <ming.liu@toradex.com>
3 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/libweston/meson.build b/libweston/meson.build
-index d8d3fc0..326683f 100644
+index 08d23ec..cb9fd3f 100644
--- a/libweston/meson.build
+++ b/libweston/meson.build
-@@ -199,16 +199,24 @@ dep_vertex_clipping = declare_dependency(
+@@ -216,16 +216,24 @@ dep_vertex_clipping = declare_dependency(
)
if get_option('weston-launch')
@@ -52,11 +53,11 @@ index d8d3fc0..326683f 100644
'weston-launch.c',
- dependencies: [dep_pam, systemd_dep, dep_libdrm],
+ dependencies: deps_weston_launch,
- include_directories: include_directories('..'),
+ include_directories: common_inc,
install: true
)
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
-index 4962bd6..fc531c5 100644
+index 8a711b4..54c567a 100644
--- a/libweston/weston-launch.c
+++ b/libweston/weston-launch.c
@@ -51,7 +51,9 @@
@@ -112,7 +113,7 @@ index 4962bd6..fc531c5 100644
if (ioctl(wl->tty, KDSKBMUTE, 0) &&
ioctl(wl->tty, KDSKBMODE, wl->kb_mode))
-@@ -660,6 +668,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
+@@ -666,6 +674,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
setenv("HOME", wl->pw->pw_dir, 1);
setenv("SHELL", wl->pw->pw_shell, 1);
@@ -120,7 +121,7 @@ index 4962bd6..fc531c5 100644
env = pam_getenvlist(wl->ph);
if (env) {
for (i = 0; env[i]; ++i) {
-@@ -668,6 +677,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
+@@ -674,6 +683,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
}
free(env);
}
@@ -128,7 +129,7 @@ index 4962bd6..fc531c5 100644
/*
* We open a new session, so it makes sense
-@@ -739,8 +749,10 @@ static void
+@@ -745,8 +755,10 @@ static void
help(const char *name)
{
fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
@@ -139,7 +140,7 @@ index 4962bd6..fc531c5 100644
fprintf(stderr, " -t, --tty Start session on alternative tty,\n"
" e.g. -t /dev/tty4, requires -u option.\n");
fprintf(stderr, " -v, --verbose Be verbose\n");
-@@ -754,7 +766,9 @@ main(int argc, char *argv[])
+@@ -760,7 +772,9 @@ main(int argc, char *argv[])
int i, c;
char *tty = NULL;
struct option opts[] = {
@@ -149,7 +150,7 @@ index 4962bd6..fc531c5 100644
{ "tty", required_argument, NULL, 't' },
{ "verbose", no_argument, NULL, 'v' },
{ "help", no_argument, NULL, 'h' },
-@@ -766,11 +780,16 @@ main(int argc, char *argv[])
+@@ -772,11 +786,16 @@ main(int argc, char *argv[])
while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) {
switch (c) {
case 'u':
@@ -166,7 +167,7 @@ index 4962bd6..fc531c5 100644
break;
case 't':
tty = optarg;
-@@ -822,8 +841,10 @@ main(int argc, char *argv[])
+@@ -828,8 +847,10 @@ main(int argc, char *argv[])
if (setup_tty(&wl, tty) < 0)
exit(EXIT_FAILURE);
@@ -178,7 +179,7 @@ index 4962bd6..fc531c5 100644
if (setup_launcher_socket(&wl) < 0)
exit(EXIT_FAILURE);
diff --git a/meson_options.txt b/meson_options.txt
-index d5bf1d5..254eb2b 100644
+index c862ecc..73ef2c3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -73,6 +73,13 @@ option(
@@ -195,6 +196,3 @@ index d5bf1d5..254eb2b 100644
'xwayland',
type: 'boolean',
value: true,
---
-2.7.4
-
diff --git a/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb b/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb
index e6548d354..f8e9e15f8 100644
--- a/poky/meta/recipes-graphics/wayland/weston_7.0.0.bb
+++ b/poky/meta/recipes-graphics/wayland/weston_8.0.0.bb
@@ -11,8 +11,8 @@ SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://xwayland.weston-start \
file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
"
-SRC_URI[md5sum] = "cbfda483bc2501d0831af3f33c707850"
-SRC_URI[sha256sum] = "a00a6d207b6a45f95f4401c604772a307c3767e5e2beecf3d879110c43909a64"
+SRC_URI[md5sum] = "53e4810d852df0601d01fd986a5b22b3"
+SRC_URI[sha256sum] = "7518b49b2eaa1c3091f24671bdcc124fd49fc8f1af51161927afa4329c027848"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
@@ -27,11 +27,11 @@ WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
EXTRA_OEMESON += "-Dbackend-default=auto -Dbackend-rdp=false -Dpipewire=false"
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl clients', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
- clients launch"
+ launch"
#
# Compositor choices
#
@@ -93,7 +93,8 @@ do_install_append() {
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
libweston-${WESTON_MAJOR_VERSION} ${PN}-examples"
-FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}"
+FILES_${PN}-dev += "${libdir}/${BPN}/libexec_weston.so"
+FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}"
FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so"
SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'."
diff --git a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf
new file mode 100644
index 000000000..7ab746081
--- /dev/null
+++ b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/capability.conf
@@ -0,0 +1,2 @@
+cap_sys_admin @USER@
+none *
diff --git a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
index 6c548551b..116bb278b 100755
--- a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
+++ b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init/xserver-nodm
@@ -38,6 +38,14 @@ case "$1" in
if [ -e /dev/hidraw0 ]; then
chmod o+rw /dev/hidraw*
fi
+ # Make sure that the Xorg has the cap_sys_admin capability which is
+ # needed for setting the drm master
+ if ! grep -q "^auth.*pam_cap\.so" /etc/pam.d/su; then
+ echo "auth optional pam_cap.so" >>/etc/pam.d/su
+ fi
+ if ! /usr/sbin/getcap $XSERVER | grep -q cap_sys_admin; then
+ /usr/sbin/setcap cap_sys_admin+eip $XSERVER
+ fi
fi
# Using su rather than sudo as latest 1.8.1 cause failure [YOCTO #1211]
diff --git a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
index 385fea5e8..c2995f99f 100644
--- a/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
+++ b/poky/meta/recipes-graphics/x11-common/xserver-nodm-init_3.0.bb
@@ -10,6 +10,7 @@ SRC_URI = "file://xserver-nodm \
file://gplv2-license.patch \
file://xserver-nodm.service.in \
file://xserver-nodm.conf.in \
+ file://capability.conf \
"
S = "${WORKDIR}"
@@ -19,7 +20,7 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit update-rc.d systemd features_check
-REQUIRED_DISTRO_FEATURES = "x11"
+REQUIRED_DISTRO_FEATURES = "x11 ${@oe.utils.conditional('ROOTLESS_X', '1', 'pam', '', d)}"
PACKAGECONFIG ??= "blank"
# dpms and screen saver will be on only if 'blank' is in PACKAGECONFIG
@@ -40,6 +41,8 @@ do_install() {
if [ "${ROOTLESS_X}" = "1" ] ; then
XUSER_HOME="/home/xuser"
XUSER="xuser"
+ install -D capability.conf ${D}${sysconfdir}/security/capability.conf
+ sed -i "s:@USER@:${XUSER}:" ${D}${sysconfdir}/security/capability.conf
else
XUSER_HOME=${ROOT_HOME}
XUSER="root"
@@ -60,7 +63,7 @@ do_install() {
fi
}
-RDEPENDS_${PN} = "xinit ${@oe.utils.conditional('ROOTLESS_X', '1', 'xuser-account', '', d)}"
+RDEPENDS_${PN} = "xinit ${@oe.utils.conditional('ROOTLESS_X', '1', 'xuser-account libcap libcap-bin', '', d)}"
INITSCRIPT_NAME = "xserver-nodm"
INITSCRIPT_PARAMS = "start 9 5 . stop 20 0 1 2 3 6 ."
diff --git a/poky/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb b/poky/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb
deleted file mode 100644
index a453e2487..000000000
--- a/poky/meta/recipes-graphics/xorg-app/mkfontdir_1.0.7.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-require xorg-app-common.inc
-
-SUMMARY = "A program to create an index of X font files in a directory"
-
-DESCRIPTION = "For each directory argument, mkfontdir reads all of the \
-font files in the directory. The font names and related data are written \
-out to the files \"fonts.dir\", \"fonts.scale\", and \"fonts.alias\". \
-The X server and font server use these files to find the available font \
-files."
-
-PE = "1"
-PR = "${INC_PR}.0"
-
-RDEPENDS_${PN} += "mkfontscale"
-RDEPENDS_${PN}_class-native += "mkfontscale-native"
-
-BBCLASSEXTEND = "native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4fcf2b90cadbfc15009b9e124dc3a3f"
-
-SRC_URI[md5sum] = "18c429148c96c2079edda922a2b67632"
-SRC_URI[sha256sum] = "56d52a482df130484e51fd066d1b6eda7c2c02ddbc91fe6e2be1b9c4e7306530"
diff --git a/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb b/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb
index 2a6bec164..a767ee847 100644
--- a/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.1.3.bb
+++ b/poky/meta/recipes-graphics/xorg-app/mkfontscale_1.2.1.bb
@@ -10,9 +10,12 @@ is used by the mkfontdir program."
DEPENDS = "util-macros-native zlib libfontenc freetype xorgproto"
+PROVIDES += "mkfontdir"
+RPROVIDES_${PN} += "mkfontdir"
+
BBCLASSEXTEND = "native"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2e0d129d05305176d1a790e0ac1acb7f"
+LIC_FILES_CHKSUM = "file://COPYING;md5=99b1e1269aba5179139b9e4380fc0934"
-SRC_URI[md5sum] = "987c438e79f5ddb84a9c5726a1610819"
-SRC_URI[sha256sum] = "1e98df69ee5f4542d711e140e1d93e2c3f2775407ccbb7849110d52b91782a6a"
+SRC_URI[md5sum] = "215940de158b1a3d8b3f8b442c606e2f"
+SRC_URI[sha256sum] = "ca0495eb974a179dd742bfa6199d561bda1c8da4a0c5a667f21fd82aaab6bac7"
diff --git a/poky/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb b/poky/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
index 33c0c8a95..c4d443bfb 100644
--- a/poky/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
+++ b/poky/meta/recipes-graphics/xorg-app/x11perf_1.6.1.bb
@@ -13,6 +13,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=428ca4d67a41fcd4fc3283dce9bbda7e \
PE = "1"
+inherit multilib_script
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/x11perfcomp"
+
do_install_append_class-target () {
sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}${bindir}/x11perfcomp
}
diff --git a/poky/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch b/poky/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch
new file mode 100644
index 000000000..649905574
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-app/xinit/0001-Make-manpage-multilib-identical.patch
@@ -0,0 +1,28 @@
+From d642e60d8963f1b90569cd0ab5c29ac2c9bfe939 Mon Sep 17 00:00:00 2001
+From: Jeremy Puhlman <jpuhlman@mvista.com>
+Date: Fri, 6 Mar 2020 22:28:14 +0000
+Subject: [PATCH] Make manpage multilib identical
+
+Upstream-Status: Submitted
+
+Signed-off-by: Jeremy Puhlman <jpuhlman@mvista.com>
+---
+ man/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/man/Makefile.am b/man/Makefile.am
+index 9c6569f..608e933 100644
+--- a/man/Makefile.am
++++ b/man/Makefile.am
+@@ -12,7 +12,7 @@ MAN_SUBSTS+= -e 's|__XSERVERNAME__|$(XSERVERNAME)|g' \
+ -e 's|__XCONFIGFILEMAN__|$(XCONFIGFILEMAN)|g' \
+ -e 's|__xinitdir__|$(XINITDIR)|g' \
+ -e 's|__bindir__|$(bindir)|g' \
+- -e 's|__libdir__|$(libdir)|g' \
++ -e 's|__libdir__|$(prefix)/lib*|g' \
+ -e 's|__configdir__|$(XINITDIR)|g'
+
+
+--
+2.23.0
+
diff --git a/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb b/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb
index 5626ebbd5..c9e28d9bb 100644
--- a/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xinit_1.4.1.bb
@@ -12,6 +12,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=18f01e7b39807bebe2b8df101a039b68"
PE = "1"
+SRC_URI += "file://0001-Make-manpage-multilib-identical.patch"
+
SRC_URI[md5sum] = "6d506ab2efc17a08e87778654e099d37"
SRC_URI[sha256sum] = "de9b8f617b68a70f6caf87da01fcf0ebd2b75690cdcba9c921d0ef54fa54abb9"
diff --git a/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb b/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb
index eaf8eaaf7..2fa79c843 100644
--- a/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.2.bb
+++ b/poky/meta/recipes-graphics/xorg-app/xkbcomp_1.4.3.bb
@@ -13,5 +13,7 @@ DEPENDS += "libxkbfile"
BBCLASSEXTEND = "native"
-SRC_URI[md5sum] = "12610df19df2af3797f2c130ee2bce97"
-SRC_URI[sha256sum] = "6dd8bcb9be7e85bd7294abe261b8c7b0539d2fc93e41b80fb8bd013767ce8424"
+EXTRA_OECONF += "--disable-selective-werror"
+
+SRC_URI[md5sum] = "6e4751d99373f85d459ab4dff28893f5"
+SRC_URI[sha256sum] = "06242c169fc11caf601cac46d781d467748c6a330e15b36dce46520b8ac8d435"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
new file mode 100644
index 000000000..4bb7fb3e2
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics/64bit_time_t_support.patch
@@ -0,0 +1,51 @@
+This patch avoids using time field of input_event structure which is not available
+on 32bit arches supporting 64bit time_t structs, Patch makes it compatible with new
+and keeps old input.h implementation functional as well.
+
+See https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/eventcomm.c
++++ b/src/eventcomm.c
+@@ -575,10 +575,12 @@ SynapticsReadEvent(InputInfoPtr pInfo, s
+ ev->type = EV_SYN;
+ ev->code = SYN_REPORT;
+ ev->value = 0;
+- ev->time = last_event_time;
+- } else if (ev->type == EV_SYN)
+- last_event_time = ev->time;
+-
++ ev->input_event_sec = last_event_time.tv_sec;
++ ev->input_event_usec = last_event_time.tv_usec;
++ } else if (ev->type == EV_SYN) {
++ last_event_time.tv_sec = ev->input_event_sec;
++ last_event_time.tv_usec = ev->input_event_usec;
++ }
+ return TRUE;
+ }
+
+@@ -725,7 +727,7 @@ EventReadHwState(InputInfoPtr pInfo,
+ case SYN_REPORT:
+ hw->numFingers = count_fingers(pInfo, comm);
+ if (proto_data->have_monotonic_clock)
+- hw->millis = 1000 * ev.time.tv_sec + ev.time.tv_usec / 1000;
++ hw->millis = 1000 * ev.input_event_sec + ev.input_event_usec / 1000;
+ else
+ hw->millis = GetTimeInMillis();
+ SynapticsCopyHwState(hwRet, hw);
+--- a/src/eventcomm.h
++++ b/src/eventcomm.h
+@@ -34,6 +34,11 @@
+ #include <xf86Xinput.h>
+ #include "synproto.h"
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ /* for auto-dev: */
+ #define DEV_INPUT_EVENT "/dev/input"
+ #define EVENT_DEV_NAME "event"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
index dc31890f6..388350c96 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-input-synaptics_1.9.1.bb
@@ -10,6 +10,8 @@ advanced features of the touchpad to become available."
LIC_FILES_CHKSUM = "file://COPYING;md5=55aacd3535a741824955c5eb8f061398"
+SRC_URI += "file://64bit_time_t_support.patch"
+
SRC_URI[md5sum] = "cfb79d3c975151f9bbf30b727c260cb9"
SRC_URI[sha256sum] = "7af83526eff1c76e8b9e1553b34245c203d029028d8044dd9dcf71eef1001576"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch
new file mode 100644
index 000000000..ef3b1afb1
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/0001-Sync-i915_pciids-upto-8717c6b7414f.patch
@@ -0,0 +1,505 @@
+From 05909fea93f29b2b6e1d554dd64201551bd7a022 Mon Sep 17 00:00:00 2001
+From: Liwei Song <liwei.song@windriver.com>
+Date: Fri, 17 Apr 2020 16:11:59 +0800
+Subject: [PATCH] Sync i915_pciids upto 8717c6b7414f
+
+Import the kernel's i915_pciids.h, up to:
+
+commit 8717c6b7414ffb890672276dccc284c23078ac0e
+Author: Lee Shawn C <shawn.c.lee@intel.com>
+Date: Tue Dec 10 23:04:15 2019 +0800
+
+ drm/i915/cml: Separate U series pci id from origianl list.
+
+Upstream-Status: Submitted [https://patchwork.kernel.org/patch/11494645/]
+
+Signed-off-by: Liwei Song <liwei.song@windriver.com>
+---
+ src/i915_pciids.h | 265 ++++++++++++++++++++++++++++++++++-----------
+ src/intel_module.c | 2 +-
+ test/dri3-test.c | 2 +-
+ 3 files changed, 206 insertions(+), 63 deletions(-)
+
+diff --git a/src/i915_pciids.h b/src/i915_pciids.h
+index fd965ffbb92e..1d2c12219f44 100644
+--- a/src/i915_pciids.h
++++ b/src/i915_pciids.h
+@@ -108,8 +108,10 @@
+ INTEL_VGA_DEVICE(0x2e42, info), /* B43_G */ \
+ INTEL_VGA_DEVICE(0x2e92, info) /* B43_G.1 */
+
+-#define INTEL_PINEVIEW_IDS(info) \
+- INTEL_VGA_DEVICE(0xa001, info), \
++#define INTEL_PINEVIEW_G_IDS(info) \
++ INTEL_VGA_DEVICE(0xa001, info)
++
++#define INTEL_PINEVIEW_M_IDS(info) \
+ INTEL_VGA_DEVICE(0xa011, info)
+
+ #define INTEL_IRONLAKE_D_IDS(info) \
+@@ -166,7 +168,18 @@
+ #define INTEL_IVB_Q_IDS(info) \
+ INTEL_QUANTA_VGA_DEVICE(info) /* Quanta transcode */
+
++#define INTEL_HSW_ULT_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A02, info), /* ULT GT1 desktop */ \
++ INTEL_VGA_DEVICE(0x0A0A, info), /* ULT GT1 server */ \
++ INTEL_VGA_DEVICE(0x0A0B, info), /* ULT GT1 reserved */ \
++ INTEL_VGA_DEVICE(0x0A06, info) /* ULT GT1 mobile */
++
++#define INTEL_HSW_ULX_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A0E, info) /* ULX GT1 mobile */
++
+ #define INTEL_HSW_GT1_IDS(info) \
++ INTEL_HSW_ULT_GT1_IDS(info), \
++ INTEL_HSW_ULX_GT1_IDS(info), \
+ INTEL_VGA_DEVICE(0x0402, info), /* GT1 desktop */ \
+ INTEL_VGA_DEVICE(0x040a, info), /* GT1 server */ \
+ INTEL_VGA_DEVICE(0x040B, info), /* GT1 reserved */ \
+@@ -175,20 +188,26 @@
+ INTEL_VGA_DEVICE(0x0C0A, info), /* SDV GT1 server */ \
+ INTEL_VGA_DEVICE(0x0C0B, info), /* SDV GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0C0E, info), /* SDV GT1 reserved */ \
+- INTEL_VGA_DEVICE(0x0A02, info), /* ULT GT1 desktop */ \
+- INTEL_VGA_DEVICE(0x0A0A, info), /* ULT GT1 server */ \
+- INTEL_VGA_DEVICE(0x0A0B, info), /* ULT GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0D02, info), /* CRW GT1 desktop */ \
+ INTEL_VGA_DEVICE(0x0D0A, info), /* CRW GT1 server */ \
+ INTEL_VGA_DEVICE(0x0D0B, info), /* CRW GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0D0E, info), /* CRW GT1 reserved */ \
+ INTEL_VGA_DEVICE(0x0406, info), /* GT1 mobile */ \
+ INTEL_VGA_DEVICE(0x0C06, info), /* SDV GT1 mobile */ \
+- INTEL_VGA_DEVICE(0x0A06, info), /* ULT GT1 mobile */ \
+- INTEL_VGA_DEVICE(0x0A0E, info), /* ULX GT1 mobile */ \
+ INTEL_VGA_DEVICE(0x0D06, info) /* CRW GT1 mobile */
+
++#define INTEL_HSW_ULT_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A12, info), /* ULT GT2 desktop */ \
++ INTEL_VGA_DEVICE(0x0A1A, info), /* ULT GT2 server */ \
++ INTEL_VGA_DEVICE(0x0A1B, info), /* ULT GT2 reserved */ \
++ INTEL_VGA_DEVICE(0x0A16, info) /* ULT GT2 mobile */
++
++#define INTEL_HSW_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A1E, info) /* ULX GT2 mobile */ \
++
+ #define INTEL_HSW_GT2_IDS(info) \
++ INTEL_HSW_ULT_GT2_IDS(info), \
++ INTEL_HSW_ULX_GT2_IDS(info), \
+ INTEL_VGA_DEVICE(0x0412, info), /* GT2 desktop */ \
+ INTEL_VGA_DEVICE(0x041a, info), /* GT2 server */ \
+ INTEL_VGA_DEVICE(0x041B, info), /* GT2 reserved */ \
+@@ -197,9 +216,6 @@
+ INTEL_VGA_DEVICE(0x0C1A, info), /* SDV GT2 server */ \
+ INTEL_VGA_DEVICE(0x0C1B, info), /* SDV GT2 reserved */ \
+ INTEL_VGA_DEVICE(0x0C1E, info), /* SDV GT2 reserved */ \
+- INTEL_VGA_DEVICE(0x0A12, info), /* ULT GT2 desktop */ \
+- INTEL_VGA_DEVICE(0x0A1A, info), /* ULT GT2 server */ \
+- INTEL_VGA_DEVICE(0x0A1B, info), /* ULT GT2 reserved */ \
+ INTEL_VGA_DEVICE(0x0D12, info), /* CRW GT2 desktop */ \
+ INTEL_VGA_DEVICE(0x0D1A, info), /* CRW GT2 server */ \
+ INTEL_VGA_DEVICE(0x0D1B, info), /* CRW GT2 reserved */ \
+@@ -207,11 +223,17 @@
+ INTEL_VGA_DEVICE(0x0416, info), /* GT2 mobile */ \
+ INTEL_VGA_DEVICE(0x0426, info), /* GT2 mobile */ \
+ INTEL_VGA_DEVICE(0x0C16, info), /* SDV GT2 mobile */ \
+- INTEL_VGA_DEVICE(0x0A16, info), /* ULT GT2 mobile */ \
+- INTEL_VGA_DEVICE(0x0A1E, info), /* ULX GT2 mobile */ \
+ INTEL_VGA_DEVICE(0x0D16, info) /* CRW GT2 mobile */
+
++#define INTEL_HSW_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x0A22, info), /* ULT GT3 desktop */ \
++ INTEL_VGA_DEVICE(0x0A2A, info), /* ULT GT3 server */ \
++ INTEL_VGA_DEVICE(0x0A2B, info), /* ULT GT3 reserved */ \
++ INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \
++ INTEL_VGA_DEVICE(0x0A2E, info) /* ULT GT3 reserved */
++
+ #define INTEL_HSW_GT3_IDS(info) \
++ INTEL_HSW_ULT_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x0422, info), /* GT3 desktop */ \
+ INTEL_VGA_DEVICE(0x042a, info), /* GT3 server */ \
+ INTEL_VGA_DEVICE(0x042B, info), /* GT3 reserved */ \
+@@ -220,16 +242,11 @@
+ INTEL_VGA_DEVICE(0x0C2A, info), /* SDV GT3 server */ \
+ INTEL_VGA_DEVICE(0x0C2B, info), /* SDV GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0C2E, info), /* SDV GT3 reserved */ \
+- INTEL_VGA_DEVICE(0x0A22, info), /* ULT GT3 desktop */ \
+- INTEL_VGA_DEVICE(0x0A2A, info), /* ULT GT3 server */ \
+- INTEL_VGA_DEVICE(0x0A2B, info), /* ULT GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0D22, info), /* CRW GT3 desktop */ \
+ INTEL_VGA_DEVICE(0x0D2A, info), /* CRW GT3 server */ \
+ INTEL_VGA_DEVICE(0x0D2B, info), /* CRW GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0D2E, info), /* CRW GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0C26, info), /* SDV GT3 mobile */ \
+- INTEL_VGA_DEVICE(0x0A26, info), /* ULT GT3 mobile */ \
+- INTEL_VGA_DEVICE(0x0A2E, info), /* ULT GT3 reserved */ \
+ INTEL_VGA_DEVICE(0x0D26, info) /* CRW GT3 mobile */
+
+ #define INTEL_HSW_IDS(info) \
+@@ -245,35 +262,59 @@
+ INTEL_VGA_DEVICE(0x0157, info), \
+ INTEL_VGA_DEVICE(0x0155, info)
+
+-#define INTEL_BDW_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x1602, info), /* GT1 ULT */ \
++#define INTEL_BDW_ULT_GT1_IDS(info) \
+ INTEL_VGA_DEVICE(0x1606, info), /* GT1 ULT */ \
+- INTEL_VGA_DEVICE(0x160B, info), /* GT1 Iris */ \
+- INTEL_VGA_DEVICE(0x160E, info), /* GT1 ULX */ \
++ INTEL_VGA_DEVICE(0x160B, info) /* GT1 Iris */
++
++#define INTEL_BDW_ULX_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x160E, info) /* GT1 ULX */
++
++#define INTEL_BDW_GT1_IDS(info) \
++ INTEL_BDW_ULT_GT1_IDS(info), \
++ INTEL_BDW_ULX_GT1_IDS(info), \
++ INTEL_VGA_DEVICE(0x1602, info), /* GT1 ULT */ \
+ INTEL_VGA_DEVICE(0x160A, info), /* GT1 Server */ \
+ INTEL_VGA_DEVICE(0x160D, info) /* GT1 Workstation */
+
+-#define INTEL_BDW_GT2_IDS(info) \
+- INTEL_VGA_DEVICE(0x1612, info), /* GT2 Halo */ \
++#define INTEL_BDW_ULT_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x1616, info), /* GT2 ULT */ \
+- INTEL_VGA_DEVICE(0x161B, info), /* GT2 ULT */ \
+- INTEL_VGA_DEVICE(0x161E, info), /* GT2 ULX */ \
++ INTEL_VGA_DEVICE(0x161B, info) /* GT2 ULT */
++
++#define INTEL_BDW_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x161E, info) /* GT2 ULX */
++
++#define INTEL_BDW_GT2_IDS(info) \
++ INTEL_BDW_ULT_GT2_IDS(info), \
++ INTEL_BDW_ULX_GT2_IDS(info), \
++ INTEL_VGA_DEVICE(0x1612, info), /* GT2 Halo */ \
+ INTEL_VGA_DEVICE(0x161A, info), /* GT2 Server */ \
+ INTEL_VGA_DEVICE(0x161D, info) /* GT2 Workstation */
+
++#define INTEL_BDW_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x1626, info), /* ULT */ \
++ INTEL_VGA_DEVICE(0x162B, info) /* Iris */ \
++
++#define INTEL_BDW_ULX_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x162E, info) /* ULX */
++
+ #define INTEL_BDW_GT3_IDS(info) \
++ INTEL_BDW_ULT_GT3_IDS(info), \
++ INTEL_BDW_ULX_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x1622, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x1626, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x162B, info), /* Iris */ \
+- INTEL_VGA_DEVICE(0x162E, info), /* ULX */\
+ INTEL_VGA_DEVICE(0x162A, info), /* Server */ \
+ INTEL_VGA_DEVICE(0x162D, info) /* Workstation */
+
++#define INTEL_BDW_ULT_RSVD_IDS(info) \
++ INTEL_VGA_DEVICE(0x1636, info), /* ULT */ \
++ INTEL_VGA_DEVICE(0x163B, info) /* Iris */
++
++#define INTEL_BDW_ULX_RSVD_IDS(info) \
++ INTEL_VGA_DEVICE(0x163E, info) /* ULX */
++
+ #define INTEL_BDW_RSVD_IDS(info) \
++ INTEL_BDW_ULT_RSVD_IDS(info), \
++ INTEL_BDW_ULX_RSVD_IDS(info), \
+ INTEL_VGA_DEVICE(0x1632, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x1636, info), /* ULT */ \
+- INTEL_VGA_DEVICE(0x163B, info), /* Iris */ \
+- INTEL_VGA_DEVICE(0x163E, info), /* ULX */ \
+ INTEL_VGA_DEVICE(0x163A, info), /* Server */ \
+ INTEL_VGA_DEVICE(0x163D, info) /* Workstation */
+
+@@ -289,25 +330,40 @@
+ INTEL_VGA_DEVICE(0x22b2, info), \
+ INTEL_VGA_DEVICE(0x22b3, info)
+
++#define INTEL_SKL_ULT_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x1906, info) /* ULT GT1 */
++
++#define INTEL_SKL_ULX_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x190E, info) /* ULX GT1 */
++
+ #define INTEL_SKL_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x1906, info), /* ULT GT1 */ \
+- INTEL_VGA_DEVICE(0x190E, info), /* ULX GT1 */ \
++ INTEL_SKL_ULT_GT1_IDS(info), \
++ INTEL_SKL_ULX_GT1_IDS(info), \
+ INTEL_VGA_DEVICE(0x1902, info), /* DT GT1 */ \
+ INTEL_VGA_DEVICE(0x190B, info), /* Halo GT1 */ \
+ INTEL_VGA_DEVICE(0x190A, info) /* SRV GT1 */
+
+-#define INTEL_SKL_GT2_IDS(info) \
++#define INTEL_SKL_ULT_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x1916, info), /* ULT GT2 */ \
+- INTEL_VGA_DEVICE(0x1921, info), /* ULT GT2F */ \
+- INTEL_VGA_DEVICE(0x191E, info), /* ULX GT2 */ \
++ INTEL_VGA_DEVICE(0x1921, info) /* ULT GT2F */
++
++#define INTEL_SKL_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x191E, info) /* ULX GT2 */
++
++#define INTEL_SKL_GT2_IDS(info) \
++ INTEL_SKL_ULT_GT2_IDS(info), \
++ INTEL_SKL_ULX_GT2_IDS(info), \
+ INTEL_VGA_DEVICE(0x1912, info), /* DT GT2 */ \
+ INTEL_VGA_DEVICE(0x191B, info), /* Halo GT2 */ \
+ INTEL_VGA_DEVICE(0x191A, info), /* SRV GT2 */ \
+ INTEL_VGA_DEVICE(0x191D, info) /* WKS GT2 */
+
++#define INTEL_SKL_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x1926, info) /* ULT GT3 */
++
+ #define INTEL_SKL_GT3_IDS(info) \
++ INTEL_SKL_ULT_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x1923, info), /* ULT GT3 */ \
+- INTEL_VGA_DEVICE(0x1926, info), /* ULT GT3 */ \
+ INTEL_VGA_DEVICE(0x1927, info), /* ULT GT3 */ \
+ INTEL_VGA_DEVICE(0x192B, info), /* Halo GT3 */ \
+ INTEL_VGA_DEVICE(0x192D, info) /* SRV GT3 */
+@@ -336,45 +392,91 @@
+ INTEL_VGA_DEVICE(0x3184, info), \
+ INTEL_VGA_DEVICE(0x3185, info)
+
+-#define INTEL_KBL_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x5913, info), /* ULT GT1.5 */ \
+- INTEL_VGA_DEVICE(0x5915, info), /* ULX GT1.5 */ \
++#define INTEL_KBL_ULT_GT1_IDS(info) \
+ INTEL_VGA_DEVICE(0x5906, info), /* ULT GT1 */ \
++ INTEL_VGA_DEVICE(0x5913, info) /* ULT GT1.5 */
++
++#define INTEL_KBL_ULX_GT1_IDS(info) \
+ INTEL_VGA_DEVICE(0x590E, info), /* ULX GT1 */ \
++ INTEL_VGA_DEVICE(0x5915, info) /* ULX GT1.5 */
++
++#define INTEL_KBL_GT1_IDS(info) \
++ INTEL_KBL_ULT_GT1_IDS(info), \
++ INTEL_KBL_ULX_GT1_IDS(info), \
+ INTEL_VGA_DEVICE(0x5902, info), /* DT GT1 */ \
+ INTEL_VGA_DEVICE(0x5908, info), /* Halo GT1 */ \
+ INTEL_VGA_DEVICE(0x590B, info), /* Halo GT1 */ \
+ INTEL_VGA_DEVICE(0x590A, info) /* SRV GT1 */
+
+-#define INTEL_KBL_GT2_IDS(info) \
++#define INTEL_KBL_ULT_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x5916, info), /* ULT GT2 */ \
++ INTEL_VGA_DEVICE(0x5921, info) /* ULT GT2F */
++
++#define INTEL_KBL_ULX_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x591E, info) /* ULX GT2 */
++
++#define INTEL_KBL_GT2_IDS(info) \
++ INTEL_KBL_ULT_GT2_IDS(info), \
++ INTEL_KBL_ULX_GT2_IDS(info), \
+ INTEL_VGA_DEVICE(0x5917, info), /* Mobile GT2 */ \
+- INTEL_VGA_DEVICE(0x5921, info), /* ULT GT2F */ \
+- INTEL_VGA_DEVICE(0x591E, info), /* ULX GT2 */ \
+ INTEL_VGA_DEVICE(0x5912, info), /* DT GT2 */ \
+ INTEL_VGA_DEVICE(0x591B, info), /* Halo GT2 */ \
+ INTEL_VGA_DEVICE(0x591A, info), /* SRV GT2 */ \
+ INTEL_VGA_DEVICE(0x591D, info) /* WKS GT2 */
+
++#define INTEL_KBL_ULT_GT3_IDS(info) \
++ INTEL_VGA_DEVICE(0x5926, info) /* ULT GT3 */
++
+ #define INTEL_KBL_GT3_IDS(info) \
++ INTEL_KBL_ULT_GT3_IDS(info), \
+ INTEL_VGA_DEVICE(0x5923, info), /* ULT GT3 */ \
+- INTEL_VGA_DEVICE(0x5926, info), /* ULT GT3 */ \
+ INTEL_VGA_DEVICE(0x5927, info) /* ULT GT3 */
+
+ #define INTEL_KBL_GT4_IDS(info) \
+ INTEL_VGA_DEVICE(0x593B, info) /* Halo GT4 */
+
+ /* AML/KBL Y GT2 */
+-#define INTEL_AML_GT2_IDS(info) \
++#define INTEL_AML_KBL_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x591C, info), /* ULX GT2 */ \
+ INTEL_VGA_DEVICE(0x87C0, info) /* ULX GT2 */
+
++/* AML/CFL Y GT2 */
++#define INTEL_AML_CFL_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x87CA, info)
++
++/* CML GT1 */
++#define INTEL_CML_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x9BA5, info), \
++ INTEL_VGA_DEVICE(0x9BA8, info), \
++ INTEL_VGA_DEVICE(0x9BA4, info), \
++ INTEL_VGA_DEVICE(0x9BA2, info)
++
++#define INTEL_CML_U_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x9B21, info), \
++ INTEL_VGA_DEVICE(0x9BAA, info), \
++ INTEL_VGA_DEVICE(0x9BAC, info)
++
++/* CML GT2 */
++#define INTEL_CML_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x9BC5, info), \
++ INTEL_VGA_DEVICE(0x9BC8, info), \
++ INTEL_VGA_DEVICE(0x9BC4, info), \
++ INTEL_VGA_DEVICE(0x9BC2, info), \
++ INTEL_VGA_DEVICE(0x9BC6, info), \
++ INTEL_VGA_DEVICE(0x9BE6, info), \
++ INTEL_VGA_DEVICE(0x9BF6, info)
++
++#define INTEL_CML_U_GT2_IDS(info) \
++ INTEL_VGA_DEVICE(0x9B41, info), \
++ INTEL_VGA_DEVICE(0x9BCA, info), \
++ INTEL_VGA_DEVICE(0x9BCC, info)
++
+ #define INTEL_KBL_IDS(info) \
+ INTEL_KBL_GT1_IDS(info), \
+ INTEL_KBL_GT2_IDS(info), \
+ INTEL_KBL_GT3_IDS(info), \
+ INTEL_KBL_GT4_IDS(info), \
+- INTEL_AML_GT2_IDS(info)
++ INTEL_AML_KBL_GT2_IDS(info)
+
+ /* CFL S */
+ #define INTEL_CFL_S_GT1_IDS(info) \
+@@ -390,6 +492,9 @@
+ INTEL_VGA_DEVICE(0x3E9A, info) /* SRV GT2 */
+
+ /* CFL H */
++#define INTEL_CFL_H_GT1_IDS(info) \
++ INTEL_VGA_DEVICE(0x3E9C, info)
++
+ #define INTEL_CFL_H_GT2_IDS(info) \
+ INTEL_VGA_DEVICE(0x3E9B, info), /* Halo GT2 */ \
+ INTEL_VGA_DEVICE(0x3E94, info) /* Halo GT2 */
+@@ -407,30 +512,43 @@
+
+ /* WHL/CFL U GT1 */
+ #define INTEL_WHL_U_GT1_IDS(info) \
+- INTEL_VGA_DEVICE(0x3EA1, info)
++ INTEL_VGA_DEVICE(0x3EA1, info), \
++ INTEL_VGA_DEVICE(0x3EA4, info)
+
+ /* WHL/CFL U GT2 */
+ #define INTEL_WHL_U_GT2_IDS(info) \
+- INTEL_VGA_DEVICE(0x3EA0, info)
++ INTEL_VGA_DEVICE(0x3EA0, info), \
++ INTEL_VGA_DEVICE(0x3EA3, info)
+
+ /* WHL/CFL U GT3 */
+ #define INTEL_WHL_U_GT3_IDS(info) \
+- INTEL_VGA_DEVICE(0x3EA2, info), \
+- INTEL_VGA_DEVICE(0x3EA3, info), \
+- INTEL_VGA_DEVICE(0x3EA4, info)
++ INTEL_VGA_DEVICE(0x3EA2, info)
+
+ #define INTEL_CFL_IDS(info) \
+ INTEL_CFL_S_GT1_IDS(info), \
+ INTEL_CFL_S_GT2_IDS(info), \
++ INTEL_CFL_H_GT1_IDS(info), \
+ INTEL_CFL_H_GT2_IDS(info), \
+ INTEL_CFL_U_GT2_IDS(info), \
+ INTEL_CFL_U_GT3_IDS(info), \
+ INTEL_WHL_U_GT1_IDS(info), \
+ INTEL_WHL_U_GT2_IDS(info), \
+- INTEL_WHL_U_GT3_IDS(info)
++ INTEL_WHL_U_GT3_IDS(info), \
++ INTEL_AML_CFL_GT2_IDS(info), \
++ INTEL_CML_GT1_IDS(info), \
++ INTEL_CML_GT2_IDS(info), \
++ INTEL_CML_U_GT1_IDS(info), \
++ INTEL_CML_U_GT2_IDS(info)
+
+ /* CNL */
++#define INTEL_CNL_PORT_F_IDS(info) \
++ INTEL_VGA_DEVICE(0x5A54, info), \
++ INTEL_VGA_DEVICE(0x5A5C, info), \
++ INTEL_VGA_DEVICE(0x5A44, info), \
++ INTEL_VGA_DEVICE(0x5A4C, info)
++
+ #define INTEL_CNL_IDS(info) \
++ INTEL_CNL_PORT_F_IDS(info), \
+ INTEL_VGA_DEVICE(0x5A51, info), \
+ INTEL_VGA_DEVICE(0x5A59, info), \
+ INTEL_VGA_DEVICE(0x5A41, info), \
+@@ -440,22 +558,47 @@
+ INTEL_VGA_DEVICE(0x5A42, info), \
+ INTEL_VGA_DEVICE(0x5A4A, info), \
+ INTEL_VGA_DEVICE(0x5A50, info), \
+- INTEL_VGA_DEVICE(0x5A40, info), \
+- INTEL_VGA_DEVICE(0x5A54, info), \
+- INTEL_VGA_DEVICE(0x5A5C, info), \
+- INTEL_VGA_DEVICE(0x5A44, info), \
+- INTEL_VGA_DEVICE(0x5A4C, info)
++ INTEL_VGA_DEVICE(0x5A40, info)
+
+ /* ICL */
+-#define INTEL_ICL_11_IDS(info) \
++#define INTEL_ICL_PORT_F_IDS(info) \
+ INTEL_VGA_DEVICE(0x8A50, info), \
+- INTEL_VGA_DEVICE(0x8A51, info), \
+ INTEL_VGA_DEVICE(0x8A5C, info), \
+- INTEL_VGA_DEVICE(0x8A5D, info), \
++ INTEL_VGA_DEVICE(0x8A59, info), \
++ INTEL_VGA_DEVICE(0x8A58, info), \
+ INTEL_VGA_DEVICE(0x8A52, info), \
+ INTEL_VGA_DEVICE(0x8A5A, info), \
+ INTEL_VGA_DEVICE(0x8A5B, info), \
++ INTEL_VGA_DEVICE(0x8A57, info), \
++ INTEL_VGA_DEVICE(0x8A56, info), \
+ INTEL_VGA_DEVICE(0x8A71, info), \
+- INTEL_VGA_DEVICE(0x8A70, info)
++ INTEL_VGA_DEVICE(0x8A70, info), \
++ INTEL_VGA_DEVICE(0x8A53, info), \
++ INTEL_VGA_DEVICE(0x8A54, info)
++
++#define INTEL_ICL_11_IDS(info) \
++ INTEL_ICL_PORT_F_IDS(info), \
++ INTEL_VGA_DEVICE(0x8A51, info), \
++ INTEL_VGA_DEVICE(0x8A5D, info)
++
++/* EHL/JSL */
++#define INTEL_EHL_IDS(info) \
++ INTEL_VGA_DEVICE(0x4500, info), \
++ INTEL_VGA_DEVICE(0x4571, info), \
++ INTEL_VGA_DEVICE(0x4551, info), \
++ INTEL_VGA_DEVICE(0x4541, info), \
++ INTEL_VGA_DEVICE(0x4E71, info), \
++ INTEL_VGA_DEVICE(0x4E61, info), \
++ INTEL_VGA_DEVICE(0x4E51, info)
++
++/* TGL */
++#define INTEL_TGL_12_IDS(info) \
++ INTEL_VGA_DEVICE(0x9A49, info), \
++ INTEL_VGA_DEVICE(0x9A40, info), \
++ INTEL_VGA_DEVICE(0x9A59, info), \
++ INTEL_VGA_DEVICE(0x9A60, info), \
++ INTEL_VGA_DEVICE(0x9A68, info), \
++ INTEL_VGA_DEVICE(0x9A70, info), \
++ INTEL_VGA_DEVICE(0x9A78, info)
+
+ #endif /* _I915_PCIIDS_H */
+diff --git a/src/intel_module.c b/src/intel_module.c
+index a71c2e40b774..e0b94c190254 100644
+--- a/src/intel_module.c
++++ b/src/intel_module.c
+@@ -357,7 +357,7 @@ static const struct pci_id_match intel_device_match[] = {
+ INTEL_I945GM_IDS(&intel_i945_info),
+
+ INTEL_G33_IDS(&intel_g33_info),
+- INTEL_PINEVIEW_IDS(&intel_g33_info),
++ INTEL_PINEVIEW_G_IDS(&intel_g33_info),
+
+ INTEL_I965G_IDS(&intel_i965_info),
+ INTEL_I965GM_IDS(&intel_i965_info),
+diff --git a/test/dri3-test.c b/test/dri3-test.c
+index 78e105a8b64a..5265a30cea1b 100644
+--- a/test/dri3-test.c
++++ b/test/dri3-test.c
+@@ -76,7 +76,7 @@ static const struct pci_id_match ids[] = {
+ INTEL_I945GM_IDS(031),
+
+ INTEL_G33_IDS(033),
+- INTEL_PINEVIEW_IDS(033),
++ INTEL_PINEVIEW_G_IDS(033),
+
+ INTEL_I965G_IDS(040),
+ INTEL_I965GM_IDS(040),
+--
+2.17.1
+
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch
deleted file mode 100644
index 52916f8b4..000000000
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel/01_Fix-build-on-i686.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a414d4e24461da1cb4cef8ee910bc57bab360ceb Mon Sep 17 00:00:00 2001
-From: Adam Jackson <ajax@redhat.com>
-Date: Tue, 6 Mar 2018 12:07:46 -0500
-Subject: [PATCH] Fix build on i686
-
-Presumably this only matters for i686 because amd64 implies sse2, but:
-
-BUILDSTDERR: In file included from gen4_vertex.c:34:
-BUILDSTDERR: gen4_vertex.c: In function 'emit_vertex':
-BUILDSTDERR: sna_render_inline.h:40:26: error: inlining failed in call to always_inline 'vertex_emit_2s': target specific option mismatch
-BUILDSTDERR: static force_inline void vertex_emit_2s(struct sna *sna, int16_t x, int16_t y)
-BUILDSTDERR: ^~~~~~~~~~~~~~
-BUILDSTDERR: gen4_vertex.c:308:25: note: called from here
-BUILDSTDERR: #define OUT_VERTEX(x,y) vertex_emit_2s(sna, x,y) /* XXX assert(!too_large(x, y)); */
-BUILDSTDERR: ^~~~~~~~~~~~~~~~~~~~~~~~
-BUILDSTDERR: gen4_vertex.c:360:2: note: in expansion of macro 'OUT_VERTEX'
-BUILDSTDERR: OUT_VERTEX(dstX, dstY);
-BUILDSTDERR: ^~~~~~~~~~
-
-The bug here appears to be that emit_vertex() is declared 'sse2' but
-vertex_emit_2s is merely always_inline. gcc8 decides that since you said
-always_inline you need to have explicitly cloned it for every
-permutation of targets. Merely saying inline seems to do the job of
-cloning vertex_emit_2s as much as necessary.
-
-So to reiterate: if you say always-inline, it won't, but if you just say
-maybe inline, it will. Thanks gcc, that's helpful.
-
-- ajax
-
-Patch taken from Fedora.
-
-Upstream-Status: Pending
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- src/sna/compiler.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/sna/compiler.h b/src/sna/compiler.h
-index 3c176a16..bc447c7a 100644
---- a/src/sna/compiler.h
-+++ b/src/sna/compiler.h
-@@ -32,7 +32,7 @@
- #define likely(expr) (__builtin_expect (!!(expr), 1))
- #define unlikely(expr) (__builtin_expect (!!(expr), 0))
- #define noinline __attribute__((noinline))
--#define force_inline inline __attribute__((always_inline))
-+#define force_inline inline
- #define fastcall __attribute__((regparm(3)))
- #define must_check __attribute__((warn_unused_result))
- #define constant __attribute__((const))
---
-2.16.2
-
diff --git a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
index bf9009bda..7ab223623 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
+++ b/poky/meta/recipes-graphics/xorg-driver/xf86-video-intel_git.bb
@@ -9,14 +9,13 @@ Infrastructure (DRI)."
LIC_FILES_CHKSUM = "file://COPYING;md5=8730ad58d11c7bbad9a7066d69f7808e"
-SRCREV = "33ee0c3b21ea279e08d0863fcb2e874f0974b00e"
+SRCREV = "f66d39544bb8339130c96d282a80f87ca1606caf"
PV = "2.99.917+git${SRCPV}"
S = "${WORKDIR}/git"
SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-intel \
- "
-
-SRC_URI_append_qemux86 = "file://01_Fix-build-on-i686.patch"
+ file://0001-Sync-i915_pciids-upto-8717c6b7414f.patch \
+"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
diff --git a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
index 54f04b11e..e30f04472 100644
--- a/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
+++ b/poky/meta/recipes-graphics/xorg-driver/xorg-driver-common.inc
@@ -13,7 +13,9 @@ SRC_URI = "${XORG_MIRROR}/individual/driver/${BPN}-${PV}.tar.bz2"
FILES_${PN} += " ${libdir}/xorg/modules/drivers/*.so"
-inherit autotools pkgconfig features_check
+XORGBUILDCLASS ??= "autotools"
+inherit ${XORGBUILDCLASS} pkgconfig features_check
+
# depends on virtual/xserver
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/poky/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch b/poky/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch
new file mode 100644
index 000000000..3f9714308
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-lib/files/libx11-whitespace.patch
@@ -0,0 +1,56 @@
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/xorg/lib/libx11/merge_requests/33]
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+From b41469c5f08b1f3365667ff3c430b104c9b8e25f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Wed, 22 Jan 2020 17:11:23 +0000
+Subject: [PATCH libX11] cpprules.in: squash whitespace in generated files
+
+CPP is used to generate files, but as cpp reads files from the build host the
+output has a number of blank lines at the beginning which varies depending on
+what GCC and friends is used.
+
+Pathalogical example:
+
+ $ cpp -undef -traditional /dev/null
+ # 1 "/dev/null"
+ # 1 "<built-in>"
+ # 1 "<command-line>"
+ # 31 "<command-line>"
+ # 1 "/usr/include/stdc-predef.h" 1 3 4
+
+ # 17 "/usr/include/stdc-predef.h" 3 4
+
+ [ 40 blank line ]
+
+ # 32 "<command-line>" 2
+ # 1 "/dev/null"
+
+So depending on the content of stdc-predef.h and what other headers CPP will
+load, the amount of whitespace in the generates files varies. This can result in
+differences in reproducible environments, and file conflicts in multilib
+environments.
+
+As whitespace is irrelevant to these machine-readable files, extend the sed to
+just delete blank lines.
+---
+ cpprules.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/cpprules.in b/cpprules.in
+index 03d6701e..ce6b3c98 100644
+--- a/cpprules.in
++++ b/cpprules.in
+@@ -23,7 +23,8 @@ CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
+ -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
+ -e '/^[ ]*XHASH/s/XHASH/\#/' \
+ -e 's,X11_LOCALEDATADIR,$(X11_LOCALEDATADIR),g' \
+- -e '/\@\@$$/s/\@\@$$/\\/'
++ -e '/\@\@$$/s/\@\@$$/\\/' \
++ -e '/^$$/d'
+
+ .pre:
+ @$(MKDIR_P) $(@D)
+--
+2.20.1
+
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb b/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
index cabb84e68..3d97ad78d 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11-compose-data_1.6.8.bb
@@ -14,7 +14,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=172255dee66bb0151435b2d5d709fcf7"
SRC_URI[md5sum] = "c5fa5a86a20e3591bed6c046498d4b8f"
SRC_URI[sha256sum] = "b289a845c189e251e0e884cc0f9269bbe97c238df3741e854ec4c17c21e473d5"
-SRC_URI += "file://0001-Drop-x11-dependencies.patch"
+SRC_URI += "file://0001-Drop-x11-dependencies.patch \
+ file://libx11-whitespace.patch"
XORG_PN = "libX11"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb b/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb
index 8c2a57c67..ff60a4240 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libx11_1.6.9.bb
@@ -11,7 +11,8 @@ FILESEXTRAPATHS =. "${FILE_DIRNAME}/libx11:"
PE = "1"
SRC_URI += "file://Fix-hanging-issue-in-_XReply.patch \
- file://disable_tests.patch"
+ file://disable_tests.patch \
+ file://libx11-whitespace.patch"
SRC_URI[md5sum] = "55adbfb6d4370ecac5e70598c4e7eed2"
SRC_URI[sha256sum] = "9cc7e8d000d6193fa5af580d50d689380b8287052270f5bb26a5fb6b58b2bed1"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb
index 0608fd5af..16d9c36ea 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.8.4.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_0.10.0.bb
@@ -9,17 +9,18 @@ DEPENDS = "util-macros flex-native bison-native"
SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "3c4409058dfd203f641a563358e0187d"
-SRC_URI[sha256sum] = "60ddcff932b7fd352752d51a5c4f04f3d0403230a584df9a2e0d5ed87c486c8b"
+SRC_URI[md5sum] = "2d9ad3a46b317138b5e72a91cf105451"
+SRC_URI[sha256sum] = "57c3630cdc38fb4734cd57fa349e92244f5ae3862813e533cedbd86721a0b6f2"
UPSTREAM_CHECK_URI = "http://xkbcommon.org/"
-inherit autotools pkgconfig
+inherit meson pkgconfig
-EXTRA_OECONF = "--disable-docs"
+EXTRA_OEMESON = "-Denable-docs=false"
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxcb xkeyboard-config,"
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)}"
+PACKAGECONFIG[x11] = "-Denable-x11=true,-Denable-x11=false,libxcb xkeyboard-config,"
+PACKAGECONFIG[wayland] = "-Denable-wayland=true,-Denable-wayland=false,wayland-native wayland wayland-protocols,"
# Fix a following runtime error:
# xkbcommon: ERROR: couldn't find a Compose file for locale "C"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb b/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb
index 64d829b31..fda8e32d2 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.12.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxpm_3.5.13.bb
@@ -21,7 +21,7 @@ PACKAGES =+ "sxpm cxpm"
FILES_cxpm = "${bindir}/cxpm"
FILES_sxpm = "${bindir}/sxpm"
-SRC_URI[md5sum] = "20f4627672edb2bd06a749f11aa97302"
-SRC_URI[sha256sum] = "fd6a6de3da48de8d1bb738ab6be4ad67f7cb0986c39bd3f7d51dd24f7854bdec"
+SRC_URI[md5sum] = "6f0ecf8d103d528cfc803aa475137afa"
+SRC_URI[sha256sum] = "9cd1da57588b6cb71450eff2273ef6b657537a9ac4d02d0014228845b935ac25"
BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb b/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
index 85a48e4c5..cc4569653 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxshmfence_1.3.bb
@@ -11,6 +11,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=47e508ca280fde97906eacb77892c3ac"
DEPENDS += "virtual/libx11"
+EXTRA_OECONF += "--with-shared-memory-dir=/dev/shm"
+
BBCLASSEXTEND = "native nativesdk"
SRC_URI[md5sum] = "42dda8016943dc12aff2c03a036e0937"
diff --git a/poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch b/poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
index 782c1db02..23cbf53a4 100644
--- a/poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
+++ b/poky/meta/recipes-graphics/xorg-lib/pixman/0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch
@@ -7,7 +7,7 @@ Some architectures e.g. nios2 do not support all exceptions
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
-Upstream-Status: Submitted
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/pixman/pixman/merge_requests/24]
test/utils.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/poky/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb b/poky/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb
index 82c2e73e5..22e19ba06 100644
--- a/poky/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/pixman_0.38.4.bb
@@ -1,40 +1,36 @@
SUMMARY = "Pixman: Pixel Manipulation library"
-
DESCRIPTION = "Pixman provides a library for manipulating pixel regions \
-- a set of Y-X banded rectangles, image compositing using the \
Porter/Duff model and implicit mask generation for geometric primitives \
including trapezoids, triangles, and rectangles."
+HOMEPAGE = "http://www.pixman.org"
+SECTION = "x11/libs"
+DEPENDS = "zlib"
-require xorg-lib-common.inc
+SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.gz \
+ file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \
+ file://0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch \
+ "
+SRC_URI[md5sum] = "267a7af290f93f643a1bc74490d9fdd1"
+SRC_URI[sha256sum] = "da66d6fd6e40aee70f7bd02e4f8f76fc3f006ec879d346bae6a723025cfbdde7"
# see http://cairographics.org/releases/ - only even minor versions are stable
UPSTREAM_CHECK_REGEX = "pixman-(?P<pver>\d+\.(\d*[02468])+(\.\d+)+)"
+PE = "1"
+
LICENSE = "MIT & MIT-style & PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=14096c769ae0cbb5fcb94ec468be11b3 \
file://pixman/pixman-matrix.c;endline=21;md5=4a018dff3e4e25302724c88ff95c2456 \
file://pixman/pixman-arm-neon-asm.h;endline=24;md5=9a9cc1e51abbf1da58f4d9528ec9d49b \
"
-DEPENDS += "zlib libpng"
-BBCLASSEXTEND = "native nativesdk"
-PE = "1"
+inherit meson pkgconfig
-IWMMXT = "--disable-arm-iwmmxt"
-LOONGSON_MMI = "--disable-loongson-mmi"
-# If target supports neon then disable the 'simd' (ie VFPv2) fallback, otherwise disable neon.
-NEON = "${@bb.utils.contains("TUNE_FEATURES", "neon", "--disable-arm-simd", "--disable-arm-neon" ,d)}"
+# These are for the tests and demos, which we don't install
+EXTRA_OEMESON = "-Dgtk=disabled -Dlibpng=disabled"
+# ld: pixman/libpixman-mmx.a(pixman-mmx.c.o):
+# linking mips:loongson_2f module with previous mips:isa64 modules
+EXTRA_OEMESON += "-Dloongson-mmi=disabled"
-EXTRA_OECONF = "--disable-gtk ${IWMMXT} ${LOONGSON_MMI} ${NEON}"
-EXTRA_OECONF_class-native = "--disable-gtk"
-EXTRA_OECONF_class-nativesdk = "--disable-gtk"
-
-SRC_URI += "\
- file://0001-ARM-qemu-related-workarounds-in-cpu-features-detecti.patch \
- file://0001-test-utils-Check-for-FE_INVALID-definition-before-us.patch \
-"
-
-SRC_URI[md5sum] = "16a350a8a40116ddf67632a1d2623711"
-SRC_URI[sha256sum] = "84abb7fa2541af24d9c3b34bf75d6ac60cc94ac4410061bbb295b66a29221550"
-
-REQUIRED_DISTRO_FEATURES = ""
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb
index 02156ad75..7a3d694bd 100644
--- a/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.27.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/xkeyboard-config_2.28.bb
@@ -13,8 +13,8 @@ LICENSE = "MIT & MIT-style"
LIC_FILES_CHKSUM = "file://COPYING;md5=0e7f21ca7db975c63467d2e7624a12f9"
SRC_URI = "${XORG_MIRROR}/individual/data/xkeyboard-config/${BPN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "316753e35d3906d042c74230612eab9f"
-SRC_URI[sha256sum] = "690daec8fea63526c07620c90e6f3f10aae34e94b6db6e30906173480721901f"
+SRC_URI[md5sum] = "5a968ab77846ff85a04242410b2a61de"
+SRC_URI[sha256sum] = "69adb25b0fc64e4075f8ec0eab8d869892419f474f91fb69db1713de2062bdce"
SECTION = "x11/libs"
DEPENDS = "util-macros libxslt-native"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc b/poky/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
deleted file mode 100644
index 7a417c974..000000000
--- a/poky/meta/recipes-graphics/xorg-proto/xorg-proto-common.inc
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "X protocol headers: ${XORG_PN}"
-HOMEPAGE = "http://www.x.org"
-BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
-
-SECTION = "x11/libs"
-LICENSE = "MIT-X"
-
-XORG_PN = "${BPN}"
-
-SRC_URI = "${XORG_MIRROR}/individual/proto/${XORG_PN}-${PV}.tar.bz2"
-
-S = "${WORKDIR}/${XORG_PN}-${PV}"
-
-DEPENDS = "util-macros"
-
-inherit autotools pkgconfig
-EXTRA_OECONF = "--without-fop"
-
-UNKNOWN_CONFIGURE_WHITELIST += "--without-fop --without-xmlto --with-xmlto"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[xmlto] = "--with-xmlto, --without-xmlto, xmlto-native docbook-xml-dtd4-native docbook-xsl-stylesheets-native"
-
-# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
-RDEPENDS_${PN}-dev = ""
-RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb
deleted file mode 100644
index 8acbe895a..000000000
--- a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2019.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require xorg-proto-common.inc
-
-SUMMARY = "X Window System unified protocol definitions"
-
-DESCRIPTION = "This package provides the headers and specification documents defining \
-the core protocol and (many) extensions for the X Window System"
-
-LICENSE = "MIT-style"
-LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
-
-SRC_URI[md5sum] = "a02dcaff48b4141b949ac99dfc344d86"
-SRC_URI[sha256sum] = "46ecd0156c561d41e8aa87ce79340910cdf38373b759e737fcbba5df508e7b8e"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
new file mode 100644
index 000000000..c71bc9038
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-proto/xorgproto_2020.1.bb
@@ -0,0 +1,27 @@
+
+SUMMARY = "X Window System unified protocol definitions"
+DESCRIPTION = "This package provides the headers and specification documents defining \
+the core protocol and (many) extensions for the X Window System"
+HOMEPAGE = "http://www.x.org"
+BUGTRACKER = "https://bugs.freedesktop.org/enter_bug.cgi?product=xorg"
+
+SECTION = "x11/libs"
+LICENSE = "MIT-style"
+LIC_FILES_CHKSUM = "file://COPYING-x11proto;md5=b9e051107d5628966739a0b2e9b32676"
+
+SRC_URI = "${XORG_MIRROR}/individual/proto/${BP}.tar.bz2"
+SRC_URI[md5sum] = "c29f4fa78f53b52b3efdc71ebd9506b6"
+SRC_URI[sha256sum] = "54a153f139035a376c075845dd058049177212da94d7a9707cf9468367b699d2"
+
+inherit meson
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[legacy] = "-Dlegacy=true,-Dlegacy=false"
+
+# Datadir only used to install pc files, $datadir/pkgconfig
+datadir="${libdir}"
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+RDEPENDS_${PN}-dev = ""
+RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf b/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf
deleted file mode 100644
index 1d3c64f62..000000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips/xorg.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-
-Section "Files"
-EndSection
-
-Section "Device"
- Identifier "Graphics Controller"
- Driver "fbdev"
-EndSection
-
-Section "Monitor"
- Identifier "Generic Monitor"
- Option "DPMS"
- # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz
- Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync
- # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
- ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
- # 640x480 @ 72Hz (VESA) hsync: 37.9kHz
- ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
- # 640x480 @ 75Hz (VESA) hsync: 37.5kHz
- ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
- # 640x480 @ 85Hz (VESA) hsync: 43.3kHz
- ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
-EndSection
-
-Section "Screen"
- Identifier "Default Screen"
- Device "Graphics Controller"
- Monitor "Generic Monitor"
- DefaultDepth 16
- SubSection "Display"
- Modes "640x480"
- EndSubSection
-EndSection
-
-Section "ServerLayout"
- Identifier "Default Layout"
- Screen "Default Screen"
- Option "AllowEmptyInput" "no"
-EndSection
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf b/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf
deleted file mode 100644
index 03b94dc3a..000000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xf86-config/qemumips64/xorg.conf
+++ /dev/null
@@ -1,39 +0,0 @@
-
-Section "Files"
-EndSection
-
-Section "Device"
- Identifier "Graphics Controller"
- Driver "fbdev"
-EndSection
-
-Section "Monitor"
- Identifier "Generic Monitor"
- Option "DPMS"
- # 1024x600 59.85 Hz (CVT) hsync: 37.35 kHz; pclk: 49.00 MHz
- Modeline "1024x600_60.00" 49.00 1024 1072 1168 1312 600 603 613 624 -hsync +vsync
- # 640x480 @ 60Hz (Industry standard) hsync: 31.5kHz
- ModeLine "640x480" 25.2 640 656 752 800 480 490 492 525 -hsync -vsync
- # 640x480 @ 72Hz (VESA) hsync: 37.9kHz
- ModeLine "640x480" 31.5 640 664 704 832 480 489 491 520 -hsync -vsync
- # 640x480 @ 75Hz (VESA) hsync: 37.5kHz
- ModeLine "640x480" 31.5 640 656 720 840 480 481 484 500 -hsync -vsync
- # 640x480 @ 85Hz (VESA) hsync: 43.3kHz
- ModeLine "640x480" 36.0 640 696 752 832 480 481 484 509 -hsync -vsync
-EndSection
-
-Section "Screen"
- Identifier "Default Screen"
- Device "Graphics Controller"
- Monitor "Generic Monitor"
- DefaultDepth 16
- SubSection "Display"
- Modes "640x480"
- EndSubSection
-EndSection
-
-Section "ServerLayout"
- Identifier "Default Layout"
- Screen "Default Screen"
- Option "AllowEmptyInput" "no"
-EndSection
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
index a0ae65c78..b4f076017 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg.inc
@@ -117,6 +117,7 @@ EXTRA_OECONF += "--with-fop=no \
--sysconfdir=/etc/X11 \
--localstatedir=/var \
--with-xkb-output=/var/lib/xkb \
+ --with-os-name=Linux \
"
OPENGL_PKGCONFIGS = "dri glx glamor dri3 xshmfence"
@@ -151,6 +152,7 @@ PACKAGECONFIG[gcrypt] = "--with-sha1=libgcrypt,,libgcrypt"
do_install_append () {
# Its assumed base-files creates this for us
rmdir ${D}${localstatedir}/log/
+ sed -i -e 's,${libdir}/xorg/modules,${prefix}/lib*/xorg/modules,' ${D}${mandir}/man5/xorg.conf.5
}
# Add runtime provides for the ABI versions of the video and input subsystems,
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch
deleted file mode 100644
index da9a4f2b2..000000000
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2ba9510721b7a76cb7fe507449fa0ac997a4cce3 Mon Sep 17 00:00:00 2001
-From: Olivier Fourdan <ofourdan@redhat.com>
-Date: Mon, 1 Jul 2019 13:20:39 +0200
-Subject: [PATCH] compiler.h: Do not include sys/io.h on ARM with glibc
-
-<sys/io.h> on ARM hasn't worked for a long, long time, so it was removed
-it from glibc upstream.
-
-Remove the include to avoid a compilation failure on ARM with glibc.
-
-Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
-Closes: https://gitlab.freedesktop.org/xorg/xserver/issues/840
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Backport [https://gitlab.freedesktop.org/xorg/xserver/commit/fe4cd0e7f5c58fa94db36326aadc1bd4e6d73eba]
----
- hw/xfree86/common/compiler.h | 30 ------------------------------
- 1 file changed, 30 deletions(-)
-
-diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
-index 7144c6a..2b2008b 100644
---- a/hw/xfree86/common/compiler.h
-+++ b/hw/xfree86/common/compiler.h
-@@ -758,36 +758,6 @@ inl(unsigned short port)
- return xf86ReadMmio32Le((void *) ioBase, port);
- }
-
--#elif defined(__arm__) && defined(__linux__)
--
--/* for Linux on ARM, we use the LIBC inx/outx routines */
--/* note that the appropriate setup via "ioperm" needs to be done */
--/* *before* any inx/outx is done. */
--
--#include <sys/io.h>
--
--static __inline__ void
--xf_outb(unsigned short port, unsigned char val)
--{
-- outb(val, port);
--}
--
--static __inline__ void
--xf_outw(unsigned short port, unsigned short val)
--{
-- outw(val, port);
--}
--
--static __inline__ void
--xf_outl(unsigned short port, unsigned int val)
--{
-- outl(val, port);
--}
--
--#define outb xf_outb
--#define outw xf_outw
--#define outl xf_outl
--
- #elif defined(__nds32__)
-
- /*
---
-2.22.0
-
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch
new file mode 100644
index 000000000..4b8e43f1e
--- /dev/null
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg/0001-drmmode_display.c-add-missing-mi.h-include.patch
@@ -0,0 +1,23 @@
+From 84338444179cab7ede1252a11b66e3b8f657e6a4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 7 Feb 2020 20:36:45 +0100
+Subject: [PATCH] drmmode_display.c: add missing mi.h include
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ hw/xfree86/drivers/modesetting/drmmode_display.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/hw/xfree86/drivers/modesetting/drmmode_display.c b/hw/xfree86/drivers/modesetting/drmmode_display.c
+index e18cc37..3445cce 100644
+--- a/hw/xfree86/drivers/modesetting/drmmode_display.c
++++ b/hw/xfree86/drivers/modesetting/drmmode_display.c
+@@ -46,6 +46,7 @@
+ #include "xf86Crtc.h"
+ #include "drmmode_display.h"
+ #include "present.h"
++#include "mi.h"
+
+ #include <cursorstr.h>
+
diff --git a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb
index 3de6d22e5..3f7fbe85b 100644
--- a/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.5.bb
+++ b/poky/meta/recipes-graphics/xorg-xserver/xserver-xorg_1.20.8.bb
@@ -1,13 +1,15 @@
require xserver-xorg.inc
SRC_URI += "file://0001-xf86pciBus.c-use-Intel-ddx-only-for-pre-gen4-hardwar.patch \
- file://pkgconfig.patch \
- file://0001-test-xtest-Initialize-array-with-braces.patch \
- file://0001-compiler.h-Do-not-include-sys-io.h-on-ARM-with-glibc.patch \
- file://sdksyms-no-build-path.patch \
- "
-SRC_URI[md5sum] = "c9fc7e21e11286dbedd22c00df652130"
-SRC_URI[sha256sum] = "a81d8243f37e75a03d4f8c55f96d0bc25802be6ec45c3bfa5cb614c6d01bac9d"
+ file://pkgconfig.patch \
+ file://0001-test-xtest-Initialize-array-with-braces.patch \
+ file://sdksyms-no-build-path.patch \
+ file://0001-drmmode_display.c-add-missing-mi.h-include.patch \
+ "
+SRC_URI[md5sum] = "a770aec600116444a953ff632f51f839"
+SRC_URI[sha256sum] = "d17b646bee4ba0fb7850c1cc55b18e3e8513ed5c02bdf38da7e107f84e2d0146"
+
+CFLAGS += "-fcommon"
# These extensions are now integrated into the server, so declare the migration
# path for in-place upgrades.