From c82ee2be42d5f987d5a94fc03672dc3cb410f94c Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Fri, 10 Aug 2018 17:19:56 +0200 Subject: [PATCH] recipes-graphics: add recipes from meta-fsl-bsp-release layer Some of these recipes might not be strictly necessary for xwayland to work, but they are related, so I have added them just in case. https://jira.digi.com/browse/DEL-6104 Signed-off-by: Gabriel Valcazar --- .../clutter/clutter-1.0_%.bbappend | 5 + .../recipes-graphics/cogl/cogl-1.0_%.bbappend | 5 + ...low-explicit-enabling-of-cunit-tests.patch | 56 +++ .../drm/libdrm/fix_O_CLOEXEC_undeclared.patch | 24 ++ .../drm/libdrm/installtests.patch | 25 ++ .../drm/libdrm/mx7/drm-update-arm.patch | 35 ++ .../recipes-graphics/drm/libdrm_2.4.84.bb | 55 +++ .../recipes-graphics/glm/glm_0.9.8.4.bb | 22 ++ .../libsdl2/libsdl2_%.bbappend | 6 + ...button-do-not-response-to-multitouch.patch | 37 ++ .../matchbox-wm/matchbox-wm_%.bbappend | 3 + .../Add-OpenVG-demos-to-support-wayland.patch | 84 +++++ ...apBuffer-calling-makes-wrong-throttl.patch | 28 ++ ...dowPos2iARB-calls-with-glWindowPos2i.patch | 355 ++++++++++++++++++ .../mesa-demos/fix-clear-build-break.patch | 17 + .../mesa/mesa-demos_%.bbappend | 24 ++ .../recipes-graphics/mesa/mesa-gl_%.bbappend | 1 + ...dparty-ippicv-Use-pre-downloaded-ipp.patch | 38 ++ .../opencv/opencv/0001-Dont-use-isystem.patch | 26 ++ .../opencv/Avoid-segmentation-fault.patch | 13 + .../opencv/opencv/Disable_OpenVX.patch | 25 ++ .../opencv/opencv/fix_openvx_samples.patch | 11 + .../opencv/opencv/fix_python_bindings.patch | 14 + .../opencv/opencv/fixpkgconfig.patch | 29 ++ .../opencv/opencv/protobuf.patch | 57 +++ .../opencv/opencv/tinydnn.patch | 34 ++ .../opencv/opencv/uselocalxfeatures.patch | 20 + .../opencv/opencv/useoeprotobuf.patch | 13 + .../recipes-graphics/opencv/opencv_3.4.1.bb | 192 ++++++++++ .../opencv/opencv_3.4.1.bbappend | 70 ++++ .../ttf-fonts/ttf-dejavu_2.%.bbappend | 20 + .../recipes-graphics/vulkan/assimp_4.1.0.bb | 20 + .../vulkan/assimp_4.1.0.bbappend | 3 + ...eLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch | 82 ++++ .../recipes-graphics/vulkan/glslang_git.bb | 39 ++ ...sspipe.sh-allow-using-generic-shells.patch | 24 ++ .../vulkan/spirv-tools_git.bb | 32 ++ .../recipes-graphics/vulkan/vkmark_1.0.bb | 38 ++ .../vulkan/vulkan-demos_%.bbappend | 2 + ...odify-the-library-path-to-point-to-u.patch | 27 ++ .../vulkan/vulkan/icd_VSI.json | 7 + .../recipes-graphics/vulkan/vulkan_%.bbappend | 32 ++ .../recipes-graphics/waffle/waffle_%.bbappend | 7 + ...eed-to-fake-new-touches-on-TRIPLETAP.patch | 72 ++++ .../wayland/libinput_1.6.1.bb | 25 ++ .../wayland/wayland-protocols_1.13.bb | 20 + .../wayland/wayland-protocols_1.13.bbappend | 5 + .../wayland/wayland/fixpathinpcfiles.patch | 32 ++ .../wayland/wayland_1.15.0.bb | 42 +++ .../wayland/weston-init.bbappend | 23 ++ .../wayland/weston-init/imxdrm/weston.config | 3 + .../recipes-graphics/wayland/weston-init/init | 51 +++ .../wayland/weston-init/profile | 7 + .../wayland/weston-init/weston-start | 68 ++++ .../wayland/weston-init/weston.config | 2 + .../wayland/weston-init/weston.service | 38 ++ .../weston/0001-make-error-portable.patch | 70 ++++ ...ovide-a-default-version-that-doesn-t.patch | 172 +++++++++ ...dify-paths-to-point-to-right-directo.patch | 155 ++++++++ ...ch-correctly-for-subsampled-textures.patch | 55 +++ .../wayland/weston/weston.desktop | 9 + .../wayland/weston/weston.png | Bin 0 -> 2383 bytes .../wayland/weston/xwayland.weston-start | 7 + .../recipes-graphics/wayland/weston_4.0.0.bb | 116 ++++++ .../wayland/weston_4.0.0.bbappend | 52 +++ .../xserver-xf86-config/imxdrm/xorg.conf | 15 + .../xserver-xf86-config/imxfbdev/xorg.conf | 14 + .../xserver-xf86-config/mx6sll/xorg.conf | 12 + .../xserver-xf86-config/mx7ulp/xorg.conf | 15 + .../xserver-xf86-config_%.bbappend | 2 + ...01-glamor-Use-CFLAGS-for-EGL-and-GBM.patch | 30 ++ ...atically-choose-a-GLES2-context-if-d.patch | 262 +++++++++++++ .../xorg-xserver/xserver-xorg_%.bbappend | 11 + 73 files changed, 3042 insertions(+) create mode 100644 meta-digi-dey/recipes-graphics/clutter/clutter-1.0_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/cogl/cogl-1.0_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch create mode 100644 meta-digi-dey/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch create mode 100644 meta-digi-dey/recipes-graphics/drm/libdrm/installtests.patch create mode 100644 meta-digi-dey/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch create mode 100644 meta-digi-dey/recipes-graphics/drm/libdrm_2.4.84.bb create mode 100644 meta-digi-dey/recipes-graphics/glm/glm_0.9.8.4.bb create mode 100644 meta-digi-dey/recipes-graphics/libsdl2/libsdl2_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm/fix-close-button-do-not-response-to-multitouch.patch create mode 100644 meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa-demos_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/mesa/mesa-gl_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/Avoid-segmentation-fault.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/Disable_OpenVX.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/tinydnn.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv/useoeprotobuf.patch create mode 100755 meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bb create mode 100644 meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bbappend create mode 100644 meta-digi-dey/recipes-graphics/ttf-fonts/ttf-dejavu_2.%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bbappend create mode 100644 meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch create mode 100644 meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/spirv-tools/0002-spirv-lesspipe.sh-allow-using-generic-shells.patch create mode 100644 meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to-u.patch create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan/icd_VSI.json create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/waffle/waffle_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch create mode 100644 meta-digi-dey/recipes-graphics/wayland/libinput_1.6.1.bb create mode 100644 meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bb create mode 100644 meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bbappend create mode 100644 meta-digi-dey/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch create mode 100644 meta-digi-dey/recipes-graphics/wayland/wayland_1.15.0.bb create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston-init/imxdrm/weston.config create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston-init/init create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston-init/profile create mode 100755 meta-digi-dey/recipes-graphics/wayland/weston-init/weston-start create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston-init/weston.config create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston-init/weston.service create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/0001-weston.ini.in-Modify-paths-to-point-to-right-directo.patch create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/weston.desktop create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/weston.png create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston/xwayland.weston-start create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bb create mode 100644 meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bbappend create mode 100644 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxdrm/xorg.conf create mode 100644 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxfbdev/xorg.conf create mode 100755 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf create mode 100755 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf create mode 100644 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-Use-CFLAGS-for-EGL-and-GBM.patch create mode 100644 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor_egl-Automatically-choose-a-GLES2-context-if-d.patch create mode 100644 meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend diff --git a/meta-digi-dey/recipes-graphics/clutter/clutter-1.0_%.bbappend b/meta-digi-dey/recipes-graphics/clutter/clutter-1.0_%.bbappend new file mode 100644 index 000000000..bf03d1297 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/clutter/clutter-1.0_%.bbappend @@ -0,0 +1,5 @@ +PACKAGECONFIG_imxgpu3d ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland egl', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', \ + '', d), d)} \ +" diff --git a/meta-digi-dey/recipes-graphics/cogl/cogl-1.0_%.bbappend b/meta-digi-dey/recipes-graphics/cogl/cogl-1.0_%.bbappend new file mode 100644 index 000000000..afbaee432 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/cogl/cogl-1.0_%.bbappend @@ -0,0 +1,5 @@ +PACKAGECONFIG_imxgpu3d ??= " \ + cogl-pango gles2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', 'egl-x11', \ + '', d), d)}" diff --git a/meta-digi-dey/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch b/meta-digi-dey/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch new file mode 100644 index 000000000..bf526370b --- /dev/null +++ b/meta-digi-dey/recipes-graphics/drm/libdrm/0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch @@ -0,0 +1,56 @@ +From e6bd4205b0b546afe991ae6f72256645f4404ad4 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Mon, 5 Sep 2016 14:41:37 +0300 +Subject: [PATCH libdrm] configure.ac: Allow explicit enabling of cunit tests + +Add --with-cunit to make it easier to do reproducible builds. Default +is still to probe cunit and build opportunistically. + +Signed-off-by: Jussi Kukkonen +Upstream-Status: Submitted [mailing list] +--- + configure.ac | 14 ++++++++++++-- + 1 file changed, 12 insertions(+), 2 deletions(-) + +diff --git a/configure.ac b/configure.ac +index e3048c7..918d21d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -137,6 +137,12 @@ AC_ARG_ENABLE(install-test-programs, + [Install test programs (default: no)]), + [INSTALL_TESTS=$enableval], [INSTALL_TESTS=no]) + ++AC_ARG_WITH([cunit], ++ [AS_HELP_STRING([--with-cunit], ++ [Build tests that use cunit (default: auto)])], ++ [], ++ [with_cunit=auto]) ++ + dnl =========================================================================== + dnl check compiler flags + AC_DEFUN([LIBDRM_CC_TRY_FLAG], [ +@@ -372,7 +378,7 @@ if test "x$RADEON" = xyes; then + AC_DEFINE(HAVE_RADEON, 1, [Have radeon support]) + fi + +-if test "x$AMDGPU" != xno; then ++if test "x$with_cunit" != xno -a "x$AMDGPU" != xno; then + # Detect cunit library + PKG_CHECK_MODULES([CUNIT], [cunit >= 2.1], [have_cunit=yes], [have_cunit=no]) + # If pkg-config does not find cunit, check it using AC_CHECK_LIB. We +@@ -399,7 +406,11 @@ if test "x$AMDGPU" = xyes; then + AC_DEFINE(HAVE_CUNIT, [test "x$have_cunit" != "xno"], [Enable CUNIT Have amdgpu support]) + + if test "x$have_cunit" = "xno"; then +- AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) ++ if test "x$with_cunit" = "xyes"; then ++ AC_MSG_ERROR([Could not find cunit library but --with-cunit was given]) ++ elif test "x$with_cunit" = "xauto"; then ++ AC_MSG_WARN([Could not find cunit library. Disabling amdgpu tests]) ++ fi + fi + fi + +-- +2.1.4 + diff --git a/meta-digi-dey/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch b/meta-digi-dey/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch new file mode 100644 index 000000000..4708bf1eb --- /dev/null +++ b/meta-digi-dey/recipes-graphics/drm/libdrm/fix_O_CLOEXEC_undeclared.patch @@ -0,0 +1,24 @@ +drmdevice.c: define _GNU_SOURCE + +Include config.h to fix this build error with uclibc: + +libdrm-2.4.66/tests/drmdevice.c: In function 'main': +libdrm-2.4.66/tests/drmdevice.c:96:60: error: +'O_CLOEXEC' undeclared (first use in this function) +fd = open(devices[i]->nodes[j],O_RDONLY | O_CLOEXEC, 0); + +Upstream-Status: Pending + +Signed-off-by: Maxin B. John +--- +diff -Naur libdrm-2.4.66-orig/tests/drmdevice.c libdrm-2.4.66/tests/drmdevice.c +--- libdrm-2.4.66-orig/tests/drmdevice.c 2016-02-23 11:34:02.054904502 +0200 ++++ libdrm-2.4.66/tests/drmdevice.c 2016-02-23 11:35:34.371750383 +0200 +@@ -21,6 +21,7 @@ + * + */ + ++#include + #include + #include + #include diff --git a/meta-digi-dey/recipes-graphics/drm/libdrm/installtests.patch b/meta-digi-dey/recipes-graphics/drm/libdrm/installtests.patch new file mode 100644 index 000000000..ec1fb0236 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/drm/libdrm/installtests.patch @@ -0,0 +1,25 @@ +From 5c6eb43c2f6e7f2ee7c25c92e42f4e4403fa0527 Mon Sep 17 00:00:00 2001 +From: Jussi Kukkonen +Date: Tue, 21 Feb 2017 14:37:52 +0200 +Subject: [PATCH] tests: also install test apps + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Yu Ke +Signed-off-by: Jussi Kukkonen +--- + tests/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/Makefile.am b/tests/Makefile.am +index 0355a92..b4882cd 100644 +--- a/tests/Makefile.am ++++ b/tests/Makefile.am +@@ -45,3 +45,4 @@ TESTS = \ + check_PROGRAMS = \ + $(TESTS) \ + drmdevice ++bin_PROGRAMS = $(check_PROGRAMS) +-- +2.1.4 + diff --git a/meta-digi-dey/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch b/meta-digi-dey/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch new file mode 100644 index 000000000..1160cd10a --- /dev/null +++ b/meta-digi-dey/recipes-graphics/drm/libdrm/mx7/drm-update-arm.patch @@ -0,0 +1,35 @@ +Add ARM support into xf86arm.h. This provides support for Xorg interface. +Without this the vivante samples will hang during close requiring a reboot + +Upstream-Status: Pending + +Signed-off-by: Lauren Post +Signed-off-by: Evan Kotara + +diff --git a/xf86drm.h b/xf86drm.h +--- a/xf86drm.h ++++ b/xf86drm.h +@@ -461,6 +461,23 @@ do { register unsigned int __old __asm(" + : "cr0", "memory"); \ + } while (0) + ++#elif defined(__arm__) ++ #undef DRM_DEV_MODE ++ #define DRM_DEV_MODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH) ++ ++ #define DRM_CAS(lock,old,new,__ret) \ ++ do { \ ++ __asm__ __volatile__ ( \ ++ "1: ldrex %0, [%1]\n" \ ++ " teq %0, %2\n" \ ++ " ite eq\n" \ ++ " strexeq %0, %3, [%1]\n" \ ++ " movne %0, #1\n" \ ++ : "=&r" (__ret) \ ++ : "r" (lock), "r" (old), "r" (new) \ ++ : "cc","memory"); \ ++ } while (0) ++ + #endif /* architecture */ + #endif /* __GNUC__ >= 2 */ + diff --git a/meta-digi-dey/recipes-graphics/drm/libdrm_2.4.84.bb b/meta-digi-dey/recipes-graphics/drm/libdrm_2.4.84.bb new file mode 100644 index 000000000..2ea2216f0 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/drm/libdrm_2.4.84.bb @@ -0,0 +1,55 @@ +SUMMARY = "Userspace interface to the kernel DRM services" +DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \ +stands for \"Direct Rendering Manager\", which is the kernel portion of the \ +\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \ +accelerated OpenGL drivers." +HOMEPAGE = "http://dri.freedesktop.org" +SECTION = "x11/base" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71" +PROVIDES = "drm" +DEPENDS = "libpthread-stubs libpciaccess" + +SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.bz2 \ + file://installtests.patch \ + file://fix_O_CLOEXEC_undeclared.patch \ + file://0001-configure.ac-Allow-explicit-enabling-of-cunit-tests.patch \ + " + +SRC_URI[md5sum] = "35b9544bc2ad864acd1abaa1a2b99092" +SRC_URI[sha256sum] = "7ae9c24d91139ac9a2cdee06fe46dbe1c401a1eda1c0bd2a6d1ecf72f479e0aa" + +# IMX: Remove manpages which is added in pyro +#inherit autotools pkgconfig manpages +inherit autotools pkgconfig + +EXTRA_OECONF += "--disable-cairo-tests \ + --without-cunit \ + --enable-omap-experimental-api \ + --enable-etnaviv-experimental-api \ + --enable-install-test-programs \ + --disable-valgrind \ + " +# IMX: Remove manpages which is added in pyro +#PACKAGECONFIG[manpages] = "--enable-manpages, --disable-manpages, libxslt-native xmlto-native" +EXTRA_OECONF += "--disable-manpages" + +ALLOW_EMPTY_${PN}-drivers = "1" +PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \ + ${PN}-intel ${PN}-exynos ${PN}-kms ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +RRECOMMENDS_${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \ + ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \ + ${PN}-etnaviv" + +FILES_${PN}-tests = "${bindir}/*" +FILES_${PN}-radeon = "${libdir}/libdrm_radeon.so.*" +FILES_${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*" +FILES_${PN}-omap = "${libdir}/libdrm_omap.so.*" +FILES_${PN}-intel = "${libdir}/libdrm_intel.so.*" +FILES_${PN}-exynos = "${libdir}/libdrm_exynos.so.*" +FILES_${PN}-kms = "${libdir}/libkms*.so.*" +FILES_${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*" +FILES_${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.*" +FILES_${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*" diff --git a/meta-digi-dey/recipes-graphics/glm/glm_0.9.8.4.bb b/meta-digi-dey/recipes-graphics/glm/glm_0.9.8.4.bb new file mode 100644 index 000000000..2d2e9ade4 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/glm/glm_0.9.8.4.bb @@ -0,0 +1,22 @@ +SUMMARY = "OpenGL Mathematics Library" +DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \ +mathematics library for graphics software based on the OpenGL \ +Shading Language (GLSL) specifications." +HOMEPAGE = "https://glm.g-truc.net" +BUGTRACKER = "https://github.com/g-truc/glm/issues" + +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://copying.txt;md5=4431606d144252143c9c3df384a74cad" + +SRC_URI = "git://github.com/g-truc/glm;protocol=https" + +SRCREV = "5dcc56489e1b66dfd5bca751fa9b8dc68059e008" + +S = "${WORKDIR}/git" + +inherit cmake + +FILES_${PN}-dev += "${libdir}/cmake" +RDEPENDS_${PN}-dev = "" diff --git a/meta-digi-dey/recipes-graphics/libsdl2/libsdl2_%.bbappend b/meta-digi-dey/recipes-graphics/libsdl2/libsdl2_%.bbappend new file mode 100644 index 000000000..e8403f3ae --- /dev/null +++ b/meta-digi-dey/recipes-graphics/libsdl2/libsdl2_%.bbappend @@ -0,0 +1,6 @@ +SRC_URI_remove = " \ + file://0001-prepend-our-sysroot-path-so-that-make-finds-our-wayl.patch \ + file://0002-Avoid-finding-build-host-s-wayland-scanner.patch \ +" + +EXTRA_OECONF_remove = "WAYLAND_PROTOCOLS_SYSROOT_DIR=${RECIPE_SYSROOT}" diff --git a/meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm/fix-close-button-do-not-response-to-multitouch.patch b/meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm/fix-close-button-do-not-response-to-multitouch.patch new file mode 100644 index 000000000..f404a1009 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm/fix-close-button-do-not-response-to-multitouch.patch @@ -0,0 +1,37 @@ +matchbox-wm: Fix to support closing windows in multi-touch panels + +In many applications, the close is not recognized because the sub window class is NULL +This calculates coordinates to track close touch actions in the area to respond. + +Upstream Status: Not applicable + +diff --git a/src/client_common.c b/src/client_common.c +index 2b62024..30724c1 100644 +--- a/src/client_common.c ++++ b/src/client_common.c +@@ -779,10 +779,24 @@ client_get_button_list_item_from_event(Client *c, XButtonEvent *e) + { + struct list_item *l = c->buttons; + MBClientButton *b = NULL; +- ++ int dx, dy; + while (l != NULL) + { + b = (MBClientButton *)l->data; ++ if (e->subwindow == 0) ++ { ++ dx = (e->x - b->x - b->w/2) > 0 ? \ ++ (e->x - b->x - b->w/2) : \ ++ (b->x + b->w/2 - e->x); ++ ++ dy = (e->y - b->y - b->h/2) > 0 ? \ ++ (e->y - b->y - b->h/2) : \ ++ (b->y + b->h/2 - e->y); ++ ++ if (dx <= b->w/2 && dy <= b->h/2) ++ return l; ++ } ++ + if (b->win == e->subwindow) + { + return l; diff --git a/meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm_%.bbappend b/meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm_%.bbappend new file mode 100644 index 000000000..96647d3e7 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/matchbox-wm/matchbox-wm_%.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +SRC_URI_append = " file://fix-close-button-do-not-response-to-multitouch.patch" diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch new file mode 100644 index 000000000..19bcca98c --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Add-OpenVG-demos-to-support-wayland.patch @@ -0,0 +1,84 @@ +From 8aba54422d9a77383c150f9f70240b18b6e1918e Mon Sep 17 00:00:00 2001 +From: Prabhu Sundararaj +Date: Thu, 9 Apr 2015 15:47:21 -0500 +Subject: [PATCH] Add OpenVG demos to support wayland. + +Upstream-Status: Pending + +Signed-off-by: Prabhu Sundararaj +--- + src/egl/Makefile.am | 6 +++--- + src/egl/openvg/Makefile.am | 33 +++++++++++++++++++++++++++++---- + 2 files changed, 32 insertions(+), 7 deletions(-) + +Index: mesa-demos-8.2.0/src/egl/Makefile.am +=================================================================== +--- mesa-demos-8.2.0.orig/src/egl/Makefile.am 2016-05-09 11:45:51.479100180 -0500 ++++ mesa-demos-8.2.0/src/egl/Makefile.am 2016-05-09 11:45:51.475100160 -0500 +@@ -26,10 +26,10 @@ + eglut \ + opengles1 \ + opengles2 \ +- oes_vg ++ oes_vg \ ++ openvg + + if HAVE_GLU + SUBDIRS += \ +- opengl \ +- openvg ++ opengl + endif +Index: mesa-demos-8.2.0/src/egl/openvg/Makefile.am +=================================================================== +--- mesa-demos-8.2.0.orig/src/egl/openvg/Makefile.am 2016-05-09 11:45:51.479100180 -0500 ++++ mesa-demos-8.2.0/src/egl/openvg/Makefile.am 2016-05-09 12:39:30.000000000 -0500 +@@ -47,13 +47,26 @@ + endif + endif + ++if HAVE_WAYLAND ++EGL_WL_DEMOS = \ ++ lion_wayland \ ++ sp_wayland ++ ++if HAVE_FREETYPE2 ++EGL_WL_DEMOS += \ ++ vgtext_wayland ++endif ++endif ++ + if HAVE_EGL + if HAVE_VG + bin_PROGRAMS = \ +- $(EGL_X11_DEMOS) ++ $(EGL_X11_DEMOS) \ ++ $(EGL_WL_DEMOS) + endif + endif + ++if HAVE_X11 + lion_x11_SOURCES = lion.c lion-render.c lion-render.h + sp_x11_SOURCES = sp.c + +@@ -63,6 +76,20 @@ + text_SOURCES = text.c + text_CFLAGS = $(AM_CFLAGS) @FREETYPE2_CFLAGS@ + text_LDADD = @FREETYPE2_LIBS@ ../eglut/libeglut_x11.la ++endif ++ ++if HAVE_WAYLAND ++lion_wayland_SOURCES = lion.c lion-render.c lion-render.h ++lion_wayland_LDADD = ../eglut/libeglut_wayland.la ++ ++sp_wayland_SOURCES = sp.c ++sp_wayland_LDADD = ../eglut/libeglut_wayland.la ++ ++vgtext_wayland_SOURCES = text.c ++vgtext_wayland_CFLAGS = $(AM_CFLAGS) @FREETYPE2_CFLAGS@ ++vgtext_wayland_LDADD = @FREETYPE2_LIBS@ ../eglut/libeglut_wayland.la ++ ++endif + + SUBDIRS = \ + trivial diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch new file mode 100644 index 000000000..180a9d84e --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch @@ -0,0 +1,28 @@ +From 010af1952d935352764389636b7165283e6c9e3f Mon Sep 17 00:00:00 2001 +From: Prabhu Sundararaj +Date: Tue, 7 Apr 2015 17:58:45 -0500 +Subject: [PATCH] Additional eglSwapBuffer calling makes wrong throttling + +Upstream Status: Pending + +Signed-off-by: Prabhu Sundararaj +--- + src/egl/eglut/eglut_wayland.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/egl/eglut/eglut_wayland.c b/src/egl/eglut/eglut_wayland.c +index 968b33f..5664d35 100644 +--- a/src/egl/eglut/eglut_wayland.c ++++ b/src/egl/eglut/eglut_wayland.c +@@ -155,7 +155,7 @@ draw(void *data, struct wl_callback *callback, uint32_t time) + + if (win->display_cb) + win->display_cb(); +- eglSwapBuffers(_eglut->dpy, win->surface); ++ /*eglSwapBuffers(_eglut->dpy, win->surface);*/ + + if (callback) + wl_callback_destroy(callback); +-- +2.3.5 + diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch new file mode 100644 index 000000000..d899540fb --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch @@ -0,0 +1,355 @@ +From 757649a766f90e745f24df1d191caeef15c71399 Mon Sep 17 00:00:00 2001 +From: Otavio Salvador +Date: Tue, 4 Jun 2013 09:28:51 -0300 +Subject: [PATCH] Replace glWindowPos2iARB calls with glWindowPos2i + +Vivante libGL does not provide the glWindowPos2iARB symbol, but +glWindowPos2i. Use this instead. + +Upstream-Status: Inapropriate [embedded specific] + +Reported-by: Jeremy Stashluk +Signed-off-by: Otavio Salvador +--- + src/demos/copypix.c | 4 ++-- + src/demos/engine.c | 2 +- + src/demos/fogcoord.c | 4 ++-- + src/glsl/shadow_sampler.c | 2 +- + src/tests/auxbuffer.c | 2 +- + src/tests/copypixrate.c | 2 +- + src/tests/drawbuffers.c | 2 +- + src/tests/drawbuffers2.c | 2 +- + src/tests/fbotest1.c | 2 +- + src/tests/fbotest2.c | 4 ++-- + src/tests/fbotest3.c | 2 +- + src/tests/readrate.c | 10 +++++----- + src/tests/viewmemory.c | 2 +- + src/trivial/clear-fbo-scissor.c | 2 +- + src/trivial/clear-fbo-tex.c | 2 +- + src/trivial/clear-fbo.c | 2 +- + src/trivial/readpixels.c | 2 +- + src/trivial/tri-fbo.c | 2 +- + src/xdemos/glxsnoop.c | 2 +- + src/xdemos/wincopy.c | 4 ++-- + 20 files changed, 28 insertions(+), 28 deletions(-) + +diff --git a/src/demos/copypix.c b/src/demos/copypix.c +index 286c5a9..041b567 100644 +--- a/src/demos/copypix.c ++++ b/src/demos/copypix.c +@@ -54,7 +54,7 @@ static void Display( void ) + glClear( GL_COLOR_BUFFER_BIT ); + + /* draw original image */ +- glWindowPos2iARB(dx, dy); ++ glWindowPos2i(dx, dy); + glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image); + + if (Scissor) +@@ -71,7 +71,7 @@ static void Display( void ) + + /* draw copy */ + glPixelZoom(Xzoom, Yzoom); +- glWindowPos2iARB(Xpos, Ypos); ++ glWindowPos2i(Xpos, Ypos); + glCopyPixels(dx, dy, ImgWidth, ImgHeight, GL_COLOR); + glPixelZoom(1, 1); + +diff --git a/src/demos/engine.c b/src/demos/engine.c +index 928fcbb..beace4c 100644 +--- a/src/demos/engine.c ++++ b/src/demos/engine.c +@@ -971,7 +971,7 @@ Draw(void) + glDisable(GL_LIGHTING); + glDisable(GL_TEXTURE_2D); + glColor3f(1, 1 , 1); +- glWindowPos2iARB(10, 10); ++ glWindowPos2i(10, 10); + PrintString(s); + if (lit) + glEnable(GL_LIGHTING); +diff --git a/src/demos/fogcoord.c b/src/demos/fogcoord.c +index 567eec0..e833009 100644 +--- a/src/demos/fogcoord.c ++++ b/src/demos/fogcoord.c +@@ -68,14 +68,14 @@ PrintInfo(void) + + sprintf(s, "Mode(m): %s Start(s/S): %g End(e/E): %g Density(d/D): %g", + ModeStr, fogStart, fogEnd, fogDensity); +- glWindowPos2iARB(5, 20); ++ glWindowPos2i(5, 20); + PrintString(s); + + sprintf(s, "Arrays(a): %s glFogCoord(c): %s EyeZ(z/z): %g", + (Arrays ? "Yes" : "No"), + (fogCoord ? "Yes" : "No"), + camz); +- glWindowPos2iARB(5, 5); ++ glWindowPos2i(5, 5); + PrintString(s); + } + +diff --git a/src/glsl/shadow_sampler.c b/src/glsl/shadow_sampler.c +index b830030..eb82d8b 100644 +--- a/src/glsl/shadow_sampler.c ++++ b/src/glsl/shadow_sampler.c +@@ -85,7 +85,7 @@ Redisplay(void) + glPopMatrix(); + + glUseProgram(0); +- glWindowPos2iARB(80, 20); ++ glWindowPos2i(80, 20); + PrintString("white black white black"); + + { +diff --git a/src/tests/auxbuffer.c b/src/tests/auxbuffer.c +index 5fa399a..0cd5f47 100644 +--- a/src/tests/auxbuffer.c ++++ b/src/tests/auxbuffer.c +@@ -419,7 +419,7 @@ event_loop(Display *dpy, Window win) + /* Copy aux buffer image to back color buffer */ + glReadBuffer(GL_AUX0); + glDrawBuffer(GL_BACK); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDisable(GL_DEPTH_TEST); + glCopyPixels(0, 0, WinWidth, WinHeight, GL_COLOR); + glEnable(GL_DEPTH_TEST); +diff --git a/src/tests/copypixrate.c b/src/tests/copypixrate.c +index 2f64e0a..df1f9b0 100644 +--- a/src/tests/copypixrate.c ++++ b/src/tests/copypixrate.c +@@ -91,7 +91,7 @@ BlitOne(void) + else + #endif + { +- glWindowPos2iARB(x, y); ++ glWindowPos2i(x, y); + glCopyPixels(0, 0, ImgWidth, ImgHeight, GL_COLOR); + } + } +diff --git a/src/tests/drawbuffers.c b/src/tests/drawbuffers.c +index fa2f8a7..cd5033f 100644 +--- a/src/tests/drawbuffers.c ++++ b/src/tests/drawbuffers.c +@@ -88,7 +88,7 @@ Display(void) + glUseProgram(0); + glDisable(GL_DEPTH_TEST); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/drawbuffers2.c b/src/tests/drawbuffers2.c +index 5bcf0b2..84d444b 100644 +--- a/src/tests/drawbuffers2.c ++++ b/src/tests/drawbuffers2.c +@@ -112,7 +112,7 @@ Display(void) + glUseProgram(0); + glDisable(GL_DEPTH_TEST); + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/fbotest1.c b/src/tests/fbotest1.c +index 161903c..5930a6d 100644 +--- a/src/tests/fbotest1.c ++++ b/src/tests/fbotest1.c +@@ -61,7 +61,7 @@ Display( void ) + + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/fbotest2.c b/src/tests/fbotest2.c +index 6ef7f12..11c867e 100644 +--- a/src/tests/fbotest2.c ++++ b/src/tests/fbotest2.c +@@ -72,7 +72,7 @@ Display( void ) + + glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */ + +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glCopyPixels(0, 0, Width, Height, GL_COLOR); + } + else if (blitPix) { +@@ -95,7 +95,7 @@ Display( void ) + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */ +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/fbotest3.c b/src/tests/fbotest3.c +index 19f684d..e6d7710 100644 +--- a/src/tests/fbotest3.c ++++ b/src/tests/fbotest3.c +@@ -79,7 +79,7 @@ Display( void ) + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); + glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */ +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/tests/readrate.c b/src/tests/readrate.c +index 3859cf4..81eb8a3 100644 +--- a/src/tests/readrate.c ++++ b/src/tests/readrate.c +@@ -85,7 +85,7 @@ MeasureFormat(struct format_type *fmt, GLint width, GLint height, GLuint pbo) + glEnd(); + + #if DRAW +- glWindowPos2iARB(0,0); ++ glWindowPos2i(0,0); + glDrawPixels(width, height, + fmt->Format, fmt->Type, Buffer); + glFinish(); +@@ -137,21 +137,21 @@ Draw(void) + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + sprintf(str, "ReadPixels size: %d x %d", width, height); + PrintString(str); + y -= 14; + +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + PrintString("Press up/down/left/right to change image size."); + y -= 14; + +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + PrintString("Press 'b' to run benchmark test."); + y -= 14; + + if (Benchmark) { +- glWindowPos2iARB(10, y); ++ glWindowPos2i(10, y); + PrintString("Testing..."); + } + +diff --git a/src/tests/viewmemory.c b/src/tests/viewmemory.c +index 16044b9..3584c33 100644 +--- a/src/tests/viewmemory.c ++++ b/src/tests/viewmemory.c +@@ -95,7 +95,7 @@ Draw(void) + + glDisable(GL_TEXTURE_2D); + glColor3f(0, 1, 0); +- glWindowPos2iARB(10, 10); ++ glWindowPos2i(10, 10); + PrintString(s); + + glutSwapBuffers(); +diff --git a/src/trivial/clear-fbo-scissor.c b/src/trivial/clear-fbo-scissor.c +index a30935c..5c15200 100644 +--- a/src/trivial/clear-fbo-scissor.c ++++ b/src/trivial/clear-fbo-scissor.c +@@ -182,7 +182,7 @@ Draw(void) + + /* draw to window */ + glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/trivial/clear-fbo-tex.c b/src/trivial/clear-fbo-tex.c +index de84f98..f0fbdf6 100644 +--- a/src/trivial/clear-fbo-tex.c ++++ b/src/trivial/clear-fbo-tex.c +@@ -140,7 +140,7 @@ static void Draw( void ) + glClearColor(0.8, 0.8, 0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + +- glWindowPos2iARB(30, 30); ++ glWindowPos2i(30, 30); + glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/trivial/clear-fbo.c b/src/trivial/clear-fbo.c +index 10d830b..3fee3e3 100644 +--- a/src/trivial/clear-fbo.c ++++ b/src/trivial/clear-fbo.c +@@ -116,7 +116,7 @@ Draw(void) + glClearColor(0.8, 0.8, 0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + +- glWindowPos2iARB(30, 30); ++ glWindowPos2i(30, 30); + glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + free(buffer); +diff --git a/src/trivial/readpixels.c b/src/trivial/readpixels.c +index ccce4ed..74e0546 100644 +--- a/src/trivial/readpixels.c ++++ b/src/trivial/readpixels.c +@@ -71,7 +71,7 @@ static void Draw(void) + printf("Pixel(0,0) = %f, %f, %f, %f\n", + image[0], image[1], image[2], image[3]); + /* draw to right half of window */ +- glWindowPos2iARB(Width, 0); ++ glWindowPos2i(Width, 0); + glPixelZoom(Zoom, Zoom); + glDrawPixels(Width, Height, GL_RGBA, GL_FLOAT, image); + free(image); +diff --git a/src/trivial/tri-fbo.c b/src/trivial/tri-fbo.c +index d5800b2..dd1f21a 100644 +--- a/src/trivial/tri-fbo.c ++++ b/src/trivial/tri-fbo.c +@@ -119,7 +119,7 @@ static void Draw( void ) + glClearColor(0.8, 0.8, 0, 0.0); + glClear(GL_COLOR_BUFFER_BIT); + +- glWindowPos2iARB(30, 30); ++ glWindowPos2i(30, 30); + glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer); + + +diff --git a/src/xdemos/glxsnoop.c b/src/xdemos/glxsnoop.c +index 2215cfd..13d2b2d 100644 +--- a/src/xdemos/glxsnoop.c ++++ b/src/xdemos/glxsnoop.c +@@ -91,7 +91,7 @@ redraw(Display *dpy, Window srcWin, Window dstWin ) + } + + glXMakeCurrent(dpy, dstWin, Context); +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glDrawBuffer(GL_FRONT); + glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, image); + glFlush(); +diff --git a/src/xdemos/wincopy.c b/src/xdemos/wincopy.c +index f670983..d010085 100644 +--- a/src/xdemos/wincopy.c ++++ b/src/xdemos/wincopy.c +@@ -156,11 +156,11 @@ Redraw(void) + glClear(GL_COLOR_BUFFER_BIT); + + if (TestClipping) { +- glWindowPos2iARB(-2, -2); ++ glWindowPos2i(-2, -2); + glCopyPixels(-2, -2, Width[0] + 4, Height[0] + 4, GL_COLOR); + } + else { +- glWindowPos2iARB(0, 0); ++ glWindowPos2i(0, 0); + glCopyPixels(0, 0, Width[0], Height[0], GL_COLOR); + } + +-- +1.8.1 + diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch new file mode 100644 index 000000000..eb541d658 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa-demos/fix-clear-build-break.patch @@ -0,0 +1,17 @@ +mesa-demos: Add extension header to fix build break now that gl1 is removed + +Upstream Status: Pending + +diff --git a/src/egl/opengles1/clear.c b/src/egl/opengles1/clear.c +index 9fe1b5291e1905fd6fe572063ed707d59ce45a81..ca9954a21b5f475709dbdef07f90b900962fcbc7 100644 +--- a/src/egl/opengles1/clear.c ++++ b/src/egl/opengles1/clear.c +@@ -34,7 +34,7 @@ + #include + #include + #include +- ++#include + #include "eglut.h" + + typedef void (GL_APIENTRY *type_ClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa-demos_%.bbappend b/meta-digi-dey/recipes-graphics/mesa/mesa-demos_%.bbappend new file mode 100644 index 000000000..3aebea0de --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa-demos_%.bbappend @@ -0,0 +1,24 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +DEPENDS = "mesa" + +SRC_URI_append_imxgpu = " file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \ + file://fix-clear-build-break.patch \ + file://Additional-eglSwapBuffer-calling-makes-wrong-throttl.patch \ + file://Add-OpenVG-demos-to-support-wayland.patch" + +PACKAGECONFIG_IMX_REMOVE_IF_2D_ONLY = "" +PACKAGECONFIG_IMX_REMOVE_IF_2D_ONLY_imxgpu2d = "gles1 gles2" +PACKAGECONFIG_IMX_REMOVE_IF_2D_ONLY_imxgpu3d = "" + +PACKAGECONFIG_remove_imxgpu = " \ + ${PACKAGECONFIG_IMX_REMOVE_IF_2D_ONLY} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'glu x11', '', d)} \ +" + +PACKAGECONFIG_append_imxgpu = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland vg', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glut', '', d)} \ +" + +PACKAGECONFIG[glut] = "--with-glut=${STAGING_EXECPREFIXDIR},--without-glut,freeglut" diff --git a/meta-digi-dey/recipes-graphics/mesa/mesa-gl_%.bbappend b/meta-digi-dey/recipes-graphics/mesa/mesa-gl_%.bbappend new file mode 100644 index 000000000..7eee63ac2 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/mesa/mesa-gl_%.bbappend @@ -0,0 +1 @@ +COMPATIBLE_MACHINE_mx8 = "(-)" diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch new file mode 100644 index 000000000..4d76ad40c --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch @@ -0,0 +1,38 @@ +From 4801a057730632225337d7f6d26b9335e6b9b078 Mon Sep 17 00:00:00 2001 +From: Ricardo Ribalda Delgado +Date: Thu, 31 Mar 2016 00:20:15 +0200 +Subject: [PATCH] 3rdparty/ippicv: Use pre-downloaded ipp + +Signed-off-by: Ricardo Ribalda Delgado +Signed-off-by: Ismo Puustinen +--- + 3rdparty/ippicv/ippicv.cmake | 15 +-------------- + 1 file changed, 1 insertion(+), 14 deletions(-) + +diff --git a/3rdparty/ippicv/ippicv.cmake b/3rdparty/ippicv/ippicv.cmake +index d601da4bb..f6fc1098c 100644 +--- a/3rdparty/ippicv/ippicv.cmake ++++ b/3rdparty/ippicv/ippicv.cmake +@@ -39,18 +39,5 @@ function(download_ippicv root_var) + endif() + + set(THE_ROOT "${OpenCV_BINARY_DIR}/3rdparty/ippicv") +- ocv_download(FILENAME ${OPENCV_ICV_NAME} +- HASH ${OPENCV_ICV_HASH} +- URL +- "${OPENCV_IPPICV_URL}" +- "$ENV{OPENCV_IPPICV_URL}" +- "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/" +- DESTINATION_DIR "${THE_ROOT}" +- ID IPPICV +- STATUS res +- UNPACK RELATIVE_URL) +- +- if(res) +- set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) +- endif() ++ set(${root_var} "${THE_ROOT}/${OPENCV_ICV_PACKAGE_SUBDIR}" PARENT_SCOPE) + endfunction() +-- +2.13.4 + diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch new file mode 100644 index 000000000..6dd48fcdc --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/0001-Dont-use-isystem.patch @@ -0,0 +1,26 @@ +From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 9 Sep 2017 23:48:31 -0700 +Subject: [PATCH] Dont use isystem + +Signed-off-by: Khem Raj +--- +Upstream-Status: Pending + + cmake/OpenCVPCHSupport.cmake | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +Index: git/cmake/OpenCVPCHSupport.cmake +=================================================================== +--- git.orig/cmake/OpenCVPCHSupport.cmake ++++ git/cmake/OpenCVPCHSupport.cmake +@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX) + IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0") + SET(PCHSupport_FOUND TRUE) + ENDIF() +- ++ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I") ++ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I") + SET(_PCH_include_prefix "-I") + SET(_PCH_isystem_prefix "-isystem") + SET(_PCH_define_prefix "-D") diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/Avoid-segmentation-fault.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/Avoid-segmentation-fault.patch new file mode 100644 index 000000000..b94541938 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/Avoid-segmentation-fault.patch @@ -0,0 +1,13 @@ +Index: git/modules/core/src/command_line_parser.cpp +=================================================================== +--- git.orig/modules/core/src/command_line_parser.cpp 2017-01-24 09:21:45.900724275 -0600 ++++ git/modules/core/src/command_line_parser.cpp 2017-01-24 10:34:17.000000000 -0600 +@@ -10,7 +10,7 @@ + static String cat_string(const String& str) + { + int left = 0, right = (int)str.length(); +- while( left <= right && str[left] == ' ' ) ++ while( left < right && str[left] == ' ' ) + left++; + while( right > left && str[right-1] == ' ' ) + right--; diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/Disable_OpenVX.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/Disable_OpenVX.patch new file mode 100644 index 000000000..96b471f25 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/Disable_OpenVX.patch @@ -0,0 +1,25 @@ +diff --git a/modules/core/src/ovx.cpp b/modules/core/src/ovx.cpp +index a53f553..6fb9bce 100644 +--- a/modules/core/src/ovx.cpp ++++ b/modules/core/src/ovx.cpp +@@ -17,6 +17,12 @@ namespace cv + bool haveOpenVX() + { + #ifdef HAVE_OPENVX ++ char *p; ++ p = getenv("NO_OPENVX"); ++ if((p != NULL) && (p[0] == '1')) ++ { ++ return false; ++ } + static int g_haveOpenVX = -1; + if(g_haveOpenVX < 0) + { +@@ -45,6 +51,7 @@ bool useOpenVX() + { + #ifdef HAVE_OPENVX + CoreTLSData* data = getCoreTlsData().get(); ++ if(!haveOpenVX()) return false; + if( data->useOpenVX < 0 ) + { + // enabled (if available) by default diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch new file mode 100644 index 000000000..3db3dd15d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/fix_openvx_samples.patch @@ -0,0 +1,11 @@ +diff --git a/samples/openvx/CMakeLists.txt b/samples/openvx/CMakeLists.txt +index fd9165b..85fe948 100644 +--- a/samples/openvx/CMakeLists.txt ++++ b/samples/openvx/CMakeLists.txt +@@ -21,5 +21,5 @@ add_definitions(-DIVX_HIDE_INFO_WARNINGS) + file(GLOB_RECURSE cpp_samples RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.cpp) + foreach(sample_filename ${cpp_samples}) + ocv_define_sample(tgt ${sample_filename} openvx) +- ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS}) ++ ocv_target_link_libraries(${tgt} ${OPENCV_LINKER_LIBS} ${OPENCV_OPENVX_SAMPLE_REQUIRED_DEPS} ${OPENVX_LIBRARIES}) + endforeach() diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch new file mode 100644 index 000000000..1609b49b5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/fix_python_bindings.patch @@ -0,0 +1,14 @@ +diff --git a/modules/python/bindings/CMakeLists.txt b/modules/python/bindings/CMakeLists.txt +index 73c67aa..a71c297 100644 +--- a/modules/python/bindings/CMakeLists.txt ++++ b/modules/python/bindings/CMakeLists.txt +@@ -20,7 +20,8 @@ endforeach() + set(opencv_hdrs "") + set(opencv_userdef_hdrs "") + foreach(m ${OPENCV_PYTHON_MODULES}) +- ocv_list_filter(OPENCV_MODULE_${m}_HEADERS "${OPENCV_MODULE_${m}_LOCATION}/include" __hdrs) ++ string(REPLACE "+" "\\\\+" __pattern "${OPENCV_MODULE_${m}_LOCATION}/include") ++ ocv_list_filter(OPENCV_MODULE_${m}_HEADERS "${__pattern}" __hdrs) + list(APPEND opencv_hdrs ${__hdrs}) + file(GLOB userdef_hdrs ${OPENCV_MODULE_${m}_LOCATION}/misc/python/pyopencv*.hpp) + list(APPEND opencv_userdef_hdrs ${userdef_hdrs}) diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch new file mode 100644 index 000000000..76dfd04d7 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/fixpkgconfig.patch @@ -0,0 +1,29 @@ +diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake +index 425c0fa..9123dc6 100644 +--- a/cmake/OpenCVGenPkgconfig.cmake ++++ b/cmake/OpenCVGenPkgconfig.cmake +@@ -31,7 +31,7 @@ macro(fix_prefix lst isown) + get_filename_component(libdir "${item}" PATH) + get_filename_component(_libname "${item}" NAME) + ocv_get_libname(libname "${_libname}") +- list(APPEND _lst "-L${libdir}" "-l${libname}") ++ list(APPEND _lst "-l${libname}") + else() + list(APPEND _lst "-l${item}") + endif() +@@ -125,10 +125,14 @@ ocv_list_unique(_3rdparty) + + set(OPENCV_PC_LIBS + "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}" ++ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}" + "${_modules}" + ) + if(BUILD_SHARED_LIBS) +- set(OPENCV_PC_LIBS_PRIVATE "${_extra}") ++ set(OPENCV_PC_LIBS_PRIVATE ++ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}" ++ "${_extra}" ++ ) + else() + set(OPENCV_PC_LIBS_PRIVATE + "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}" diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch new file mode 100644 index 000000000..c63dc142e --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/protobuf.patch @@ -0,0 +1,57 @@ +Upstream-status: Inappropriate [OE specific] + +Signed-off-by: Ricardo Ribalda +diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake +index b6ce1e7fd56b..e916ec0df2a6 100644 +--- a/cmake/OpenCVFindLibProtobuf.cmake ++++ b/cmake/OpenCVFindLibProtobuf.cmake +@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON) + OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF) + + if(PROTOBUF_UPDATE_FILES) +- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE) ++ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE) + find_package(Protobuf QUIET) + endif() +- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE}) +- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})") ++ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE}) ++ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})") + else() +- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')") ++ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')") + endif() + endif() + +-if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES)) ++if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) + find_package(Protobuf QUIET) + endif() + +-if(Protobuf_FOUND) ++if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) + # nothing + else() + set(Protobuf_LIBRARIES libprotobuf) +diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt +index 2a71568d1a44..c6329a742263 100644 +--- a/modules/dnn/CMakeLists.txt ++++ b/modules/dnn/CMakeLists.txt +@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn) + endif() + + include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake) +-if(NOT Protobuf_FOUND) ++if(NOT PROTOBUF_FOUND) + ocv_module_disable(opencv_dnn) + endif() + +@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS}) + ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS}) + + ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH}) +-ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES}) ++ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES}) + ocv_add_samples() + ocv_add_accuracy_tests() + ocv_add_perf_tests() diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/tinydnn.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/tinydnn.patch new file mode 100644 index 000000000..c433fc312 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/tinydnn.patch @@ -0,0 +1,34 @@ +Upstream-status: Inappropriate [OE specific] + +Signed-off-by: Ricardo Ribalda +diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt +index 79b64b12160b..ba06a0a163e4 100644 +--- a/modules/dnn_modern/CMakeLists.txt ++++ b/modules/dnn_modern/CMakeLists.txt +@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) + # MODULE REQUIREMENTS + # ---------------------------------------------------------------------------- + +-set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn") +-set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3") +-ocv_download(FILENAME "v1.0.0a3.tar.gz" +- HASH "adb1c512e09ca2c7a6faef36f9c53e59" +- URL +- "${OPENCV_TINY_DNN_URL}" +- "$ENV{OPENCV_TINY_DNN_URL}" +- "https://github.com/tiny-dnn/tiny-dnn/archive/" +- DESTINATION_DIR "${TINY_DNN_CPP_PATH}" +- STATUS TINY_DNN_DOWNLOAD_SUCCESS +- ID "tiny-dnn" +- UNPACK RELATIVE_URL) +- +-if(NOT TINY_DNN_DOWNLOAD_SUCCESS) +- message(STATUS "Failed to download tiny-dnn sources") +-endif() +- +-find_package(TinyDNN QUIET) ++set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3") ++set(TinyDNN_FOUND TRUE) + + include(CheckCXXCompilerFlag) + CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch new file mode 100644 index 000000000..fc273a891 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/uselocalxfeatures.patch @@ -0,0 +1,20 @@ +diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt +index e1755595..c7009c47 100644 +--- a/modules/xfeatures2d/CMakeLists.txt ++++ b/modules/xfeatures2d/CMakeLists.txt +@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) + set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d") +-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) +-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) +-if(NOT boost_status OR NOT vgg_status) +- ocv_module_disable(xfeatures2d) +-endif() ++#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) ++#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) ++#if(NOT boost_status OR NOT vgg_status) ++# ocv_module_disable(xfeatures2d) ++#endif() + + ocv_module_include_directories("${DOWNLOAD_DIR}") diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv/useoeprotobuf.patch b/meta-digi-dey/recipes-graphics/opencv/opencv/useoeprotobuf.patch new file mode 100644 index 000000000..3068bd44d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv/useoeprotobuf.patch @@ -0,0 +1,13 @@ +diff --git a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake +index eb2a729cc2eb..8717736484de 100644 +--- a/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake ++++ b/modules/dnn/cmake/OpenCVFindLibProtobuf.cmake +@@ -24,7 +24,7 @@ if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF + find_package(Protobuf QUIET) + endif() + +-if(PROTOBUF_FOUND) ++if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES)) + # nothing + else() + include(${CMAKE_CURRENT_LIST_DIR}/download_protobuf.cmake) diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bb b/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bb new file mode 100755 index 000000000..de2027d1d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bb @@ -0,0 +1,192 @@ +SUMMARY = "Opencv : The Open Computer Vision Library" +HOMEPAGE = "http://opencv.org/" +SECTION = "libs" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=62d89c5dcb0583609ea919c56be0ee76" + +ARM_INSTRUCTION_SET_armv4 = "arm" +ARM_INSTRUCTION_SET_armv5 = "arm" + +DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp" + +SRCREV_opencv = "6ffc48769ac60d53c4bd1913eac15117c9b1c9f7" +SRCREV_contrib = "ced5aa760688dd2ec867ebf7bd4f0c2341d2fde5" +SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db" +SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26" +SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d" +SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59" +SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b" + +def ipp_filename(d): + import re + arch = d.getVar('TARGET_ARCH', True) + if re.match("i.86$", arch): + return "ippicv_2017u2_lnx_ia32_20170418.tgz" + else: + return "ippicv_2017u2_lnx_intel64_20170418.tgz" + +def ipp_md5sum(d): + import re + arch = d.getVar('TARGET_ARCH', True) + if re.match("i.86$", arch): + return "f2cece00d802d4dea86df52ed095257e" + else: + return "808b791a6eac9ed78d32a7666804320e" + +IPP_FILENAME = "${@ipp_filename(d)}" +IPP_MD5 = "${@ipp_md5sum(d)}" + +SRCREV_FORMAT = "opencv_contrib_ipp_boostdesc_vgg" +SRC_URI = "git://github.com/opencv/opencv.git;name=opencv \ + git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \ + git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \ + git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \ + https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \ + file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \ + file://fixpkgconfig.patch \ + file://uselocalxfeatures.patch;patchdir=../contrib/ \ + file://tinydnn.patch;patchdir=../contrib/ \ + file://0001-Dont-use-isystem.patch \ + file://javagen.patch \ +" + +PV = "3.4.1+git${SRCPV}" + +S = "${WORKDIR}/git" + +do_unpack_extra() { + mkdir -p ${S}/3rdparty/tinydnn/ + tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/ + tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR} + cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src + cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src +} +addtask unpack_extra after do_unpack before do_patch + +EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \ + -DWITH_1394=OFF \ + -DCMAKE_SKIP_RPATH=ON \ + -DOPENCV_ICV_HASH=${IPP_MD5} \ + -DIPPROOT=${WORKDIR}/ippicv_lnx \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse3", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.1", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1", "", d)} \ + ${@bb.utils.contains("TARGET_CC_ARCH", "-msse4.2", "-DENABLE_SSE=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE41=1 -DENABLE_SSE42=1", "", d)} \ +" +EXTRA_OECMAKE_append_x86 = " -DX86=ON" + +PACKAGECONFIG ??= "python3 eigen jpeg png tiff v4l libv4l gstreamer samples tbb gphoto2 \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gtk", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libav", "", d)}" + +PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas," +PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft," +PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native," +PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog," +PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype," +PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2," +PACKAGECONFIG[gstreamer] = "-DWITH_GSTREAMER=ON,-DWITH_GSTREAMER=OFF,gstreamer1.0 gstreamer1.0-plugins-base," +PACKAGECONFIG[gtk] = "-DWITH_GTK=ON,-DWITH_GTK=OFF,gtk+3," +PACKAGECONFIG[jasper] = "-DWITH_JASPER=ON,-DWITH_JASPER=OFF,jasper," +PACKAGECONFIG[java] = "-DJAVA_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native fastjar-native openjdk-8-native," +PACKAGECONFIG[jpeg] = "-DWITH_JPEG=ON,-DWITH_JPEG=OFF,jpeg," +PACKAGECONFIG[libav] = "-DWITH_FFMPEG=ON,-DWITH_FFMPEG=OFF,libav," +PACKAGECONFIG[libv4l] = "-DWITH_LIBV4L=ON,-DWITH_LIBV4L=OFF,v4l-utils," +PACKAGECONFIG[opencl] = "-DWITH_OPENCL=ON,-DWITH_OPENCL=OFF,opencl-headers virtual/opencl-icd," +PACKAGECONFIG[oracle-java] = "-DJAVA_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_INCLUDE_PATH2=${ORACLE_JAVA_HOME}/include/linux -DJAVA_AWT_INCLUDE_PATH=${ORACLE_JAVA_HOME}/include -DJAVA_AWT_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/libjawt.so -DJAVA_JVM_LIBRARY=${ORACLE_JAVA_HOME}/lib/amd64/server/libjvm.so,,ant-native oracle-jse-jdk oracle-jse-jdk-native," +PACKAGECONFIG[png] = "-DWITH_PNG=ON,-DWITH_PNG=OFF,libpng," +PACKAGECONFIG[python2] = "-DPYTHON2_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python-numpy," +PACKAGECONFIG[python3] = "-DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${STAGING_LIBDIR}/${PYTHON_DIR}/site-packages/numpy/core/include,,python3-numpy," +PACKAGECONFIG[samples] = "-DBUILD_EXAMPLES=ON -DINSTALL_PYTHON_EXAMPLES=ON,-DBUILD_EXAMPLES=OFF,," +PACKAGECONFIG[tbb] = "-DWITH_TBB=ON,-DWITH_TBB=OFF,tbb," +PACKAGECONFIG[text] = "-DBUILD_opencv_text=ON,-DBUILD_opencv_text=OFF,tesseract," +PACKAGECONFIG[tiff] = "-DWITH_TIFF=ON,-DWITH_TIFF=OFF,tiff," +PACKAGECONFIG[v4l] = "-DWITH_V4L=ON,-DWITH_V4L=OFF,v4l-utils," + +inherit pkgconfig cmake + +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'distutils3-base', '', d)} +inherit ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'distutils-base', '', d)} + +export PYTHON_CSPEC="-I${STAGING_INCDIR}/${PYTHON_DIR}" +export PYTHON="${STAGING_BINDIR_NATIVE}/${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3', 'python', d)}" +export ORACLE_JAVA_HOME="${STAGING_DIR_NATIVE}/usr/bin/java" +export JAVA_HOME="${STAGING_DIR_NATIVE}/usr/lib/jvm/openjdk-8-native" +export ANT_DIR="${STAGING_DIR_NATIVE}/usr/share/ant/" + +TARGET_CC_ARCH += "-I${S}/include " + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'samples', '${PN}-samples', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'oracle-java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'java', '${PN}-java', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python2', 'python-${BPN}', '', d)} \ + ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3-${BPN}', '', d)} \ + ${PN}-apps" + +python populate_packages_prepend () { + cv_libdir = d.expand('${libdir}') + do_split_packages(d, cv_libdir, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True) + do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') + do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev') + do_split_packages(d, cv_libdir, '^lib(.*)\.so\.*', 'lib%s', 'OpenCV %s library', extra_depends='', allow_links=True) + + pn = d.getVar('PN') + metapkg = pn + '-dev' + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg ] + metapkg_rdepends = [ ] + packages = d.getVar('PACKAGES').split() + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and pkg.endswith('-dev'): + metapkg_rdepends.append(pkg) + d.setVar('RRECOMMENDS_' + metapkg, ' '.join(metapkg_rdepends)) + + metapkg = pn + d.setVar('ALLOW_EMPTY_' + metapkg, "1") + blacklist = [ metapkg, "libopencv-ts" ] + metapkg_rdepends = [ ] + for pkg in packages[1:]: + if not pkg in blacklist and not pkg in metapkg_rdepends and not pkg.endswith('-dev') and not pkg.endswith('-dbg') and not pkg.endswith('-doc') and not pkg.endswith('-locale') and not pkg.endswith('-staticdev'): + metapkg_rdepends.append(pkg) + d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends)) +} + +PACKAGES_DYNAMIC += "^libopencv-.*" + +FILES_${PN} = "" +FILES_${PN}-dbg += "${datadir}/OpenCV/java/.debug/* ${datadir}/OpenCV/samples/bin/.debug/*" +FILES_${PN}-dev = "${includedir} ${libdir}/pkgconfig ${datadir}/OpenCV/*.cmake" +FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a" +FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV" +FILES_${PN}-java = "${datadir}/OpenCV/java" +FILES_${PN}-samples = "${datadir}/OpenCV/samples/" + +INSANE_SKIP_${PN}-java = "libdir" +INSANE_SKIP_${PN}-dbg = "libdir" + +ALLOW_EMPTY_${PN} = "1" + +SUMMARY_python-opencv = "Python bindings to opencv" +FILES_python-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python-opencv = "python-core python-numpy" + +SUMMARY_python3-opencv = "Python bindings to opencv" +FILES_python3-opencv = "${PYTHON_SITEPACKAGES_DIR}/*" +RDEPENDS_python3-opencv = "python3-core python3-numpy" + +do_install_append() { + cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/ + sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h + + # Move Python files into correct library folder (for multilib build) + if [ "$libdir" != "/usr/lib" -a -d ${D}/usr/lib ]; then + mv ${D}/usr/lib/* ${D}/${libdir}/ + rm -rf ${D}/usr/lib + fi + + if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then + install -d ${D}${datadir}/OpenCV/samples/bin/ + cp -f bin/example_* ${D}${datadir}/OpenCV/samples/bin/ + fi +} diff --git a/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bbappend b/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bbappend new file mode 100644 index 000000000..a097189ed --- /dev/null +++ b/meta-digi-dey/recipes-graphics/opencv/opencv_3.4.1.bbappend @@ -0,0 +1,70 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +# Specify the opencv_extra source. The version should match the overall opencv version. +# Recording the opencv_extra version here allows us to raise a fatal error if the +# package version is updated but this section is not. +SRC_URI += "git://github.com/opencv/opencv_extra.git;destsuffix=opencv_extra;name=opencv_extra" +SRCREV_opencv_extra = "c533012eb214ec3db851586f74f9dc43ea20c065" +OPENCV_EXTRA_VERSION = "3.4.1" + +SRC_URI_remove = "file://javagen.patch" +SRC_URI += "file://fix_openvx_samples.patch" +SRC_URI += "file://fix_python_bindings.patch" + +PACKAGECONFIG_remove_imx = "eigen" +PACKAGECONFIG_remove_mx8 = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'gtk', '', d)}" +PACKAGECONFIG_append_mx8 = " opencl dnn text" +PACKAGECONFIG_append_mx8dv = " openvx" +PACKAGECONFIG_append_mx8qm = " openvx" + +PACKAGECONFIG[openvx] = " \ + -DWITH_OPENVX=ON -DOPENVX_ROOT=${STAGING_LIBDIR} -DOPENVX_LIB_CANDIDATES='OpenVX;OpenVXU', \ + -DWITH_OPENVX=OFF, \ + virtual/libopenvx, \ + \ +" +PACKAGECONFIG[qt5] = " \ + -DWITH_QT=ON -DWITH_GTK=OFF \ + -DOE_QMAKE_PATH_EXTERNAL_HOST_BINS=${STAGING_BINDIR_NATIVE}/qt5 \ + -DCMAKE_PREFIX_PATH=${STAGING_BINDIR_NATIVE}/cmake, \ + -DWITH_QT=OFF, \ + qtbase qtbase-native, \ + \ +" +PACKAGECONFIG[test] = " \ + -DBUILD_TESTS=ON -DINSTALL_TESTS=ON -DOPENCV_TEST_DATA_PATH=${S}/../opencv_extra/testdata, \ + -DBUILD_TESTS=OFF -DINSTALL_TESTS=OFF, \ +" + +do_check_opencv_extra_version() { + OPENCV_VERSION=`echo ${PV} | cut -d '+' -f 1` + if [ "${OPENCV_EXTRA_VERSION}" != "${OPENCV_VERSION}" ]; then + bbfatal "The opencv_extra version ${OPENCV_EXTRA_VERSION} does not match the recipe version ${OPENCV_VERSION}." + fi +} +addtask check_opencv_extra_version before do_fetch + +do_compile_prepend() { + # A build break occurs if dnn and python3 are configured. Work around + # the problem by building opencv_dnn first. See + # https://github.com/opencv/opencv/issues/10474. + if ${@bb.utils.contains("PACKAGECONFIG", "dnn python3", "true", "false", d)}; then + bbnote VERBOSE=1 cmake --build '${B}' --target opencv_dnn -- ${PARALLEL_MAKE} + VERBOSE=1 cmake --build '${B}' --target opencv_dnn -- ${PARALLEL_MAKE} + fi +} + +do_install_append() { + if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then + install -d ${D}${datadir}/OpenCV/samples/data + cp -r ${S}/samples/data/* ${D}${datadir}/OpenCV/samples/data + + install -d ${D}${datadir}/OpenCV/samples/bin/ + cp -f bin/example_* ${D}${datadir}/OpenCV/samples/bin/ + fi +} + +RDEPENDS_opencv-apps += \ + "${@bb.utils.contains('PACKAGECONFIG', 'test', 'bash', '', d)}" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/meta-digi-dey/recipes-graphics/ttf-fonts/ttf-dejavu_2.%.bbappend b/meta-digi-dey/recipes-graphics/ttf-fonts/ttf-dejavu_2.%.bbappend new file mode 100644 index 000000000..440652e13 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/ttf-fonts/ttf-dejavu_2.%.bbappend @@ -0,0 +1,20 @@ +# Fix up the fonts to the right location +# Install the ttf files into /usr/lib/fonts directory + +PATH_TTF_FONTS="${libdir}/fonts" +do_install_append() { + if [ ! -d ${D}/${PATH_TTF_FONTS} ]; then + mkdir -p ${D}/${PATH_TTF_FONTS} + cp -d ${S}/* ${D}/${PATH_TTF_FONTS} + chown -R root:root ${D}/${PATH_TTF_FONTS} + fi +} + +FILES_${PN}-sans += "${PATH_TTF_FONTS}/DejaVuSans.ttf ${PATH_TTF_FONTS}/DejaVuSans-*.ttf" +FILES_${PN}-sans-mono += "${PATH_TTF_FONTS}/DejaVuSansMono*.ttf" +FILES_${PN}-sans-condensed += "${PATH_TTF_FONTS}/DejaVuSansCondensed*.ttf" +FILES_${PN}-serif += "${PATH_TTF_FONTS}/DejaVuSerif.ttf ${PATH_TTF_FONTS}/DejaVuSerif-*.ttf" +FILES_${PN}-serif-condensed += "${PATH_TTF_FONTS}/DejaVuSerifCondensed*.ttf" +FILES_${PN}-mathtexgyre += "${PATH_TTF_FONTS}/DejaVuMathTeXGyre.ttf" + + diff --git a/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb b/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb new file mode 100644 index 000000000..194cbe33c --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb @@ -0,0 +1,20 @@ +DESCRIPTION = "Open Asset Import Library is a portable Open Source library to import \ + various well-known 3D model formats in a uniform manner." +HOMEPAGE = "http://www.assimp.org/" +SECTION = "devel" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=2119edef0916b0bd511cb3c731076271" + +DEPENDS = "zlib" + +SRC_URI = "git://github.com/assimp/assimp.git" +UPSTREAM_CHECK_GITTAGREGEX = "v(?P(\d+(\.\d+)+))" + +SRCREV = "80799bdbf90ce626475635815ee18537718a05b1" + +S = "${WORKDIR}/git" + +inherit cmake + +EXTRA_OECMAKE = "-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_LIB_INSTALL_DIR=${baselib}" diff --git a/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bbappend b/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bbappend new file mode 100644 index 000000000..8ffc95ab9 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bbappend @@ -0,0 +1,3 @@ +# The line is in the 4.0.0 recipe but removed for some reason in +# the 4.1.0 recipe. It seems to still be needed. +FILES_${PN}-dev += "${libdir}/cmake/" diff --git a/meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch b/meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch new file mode 100644 index 000000000..cef3e8e61 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch @@ -0,0 +1,82 @@ +From 372422ed8ce32e1085cd524156c687df65095237 Mon Sep 17 00:00:00 2001 +From: Awais Belal +Date: Tue, 25 Oct 2016 14:44:20 +0500 +Subject: [PATCH] CMakeLists.txt: obey CMAKE_INSTALL_LIBDIR + +Not using the exact path that is set through cmake +will end up in a mixed configuration setup where +files are installed on hard-coded locations. + +Signed-off-by: Awais Belal +--- + OGLCompilersDLL/CMakeLists.txt | 2 +- + SPIRV/CMakeLists.txt | 2 +- + glslang/CMakeLists.txt | 2 +- + glslang/OSDependent/Unix/CMakeLists.txt | 2 +- + glslang/OSDependent/Windows/CMakeLists.txt | 2 +- + hlsl/CMakeLists.txt | 2 +- + 6 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt +index 4954db9..6b518d9 100644 +--- a/OGLCompilersDLL/CMakeLists.txt ++++ b/OGLCompilersDLL/CMakeLists.txt +@@ -8,4 +8,4 @@ if(WIN32) + endif(WIN32) + + install(TARGETS OGLCompiler +- ARCHIVE DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt +index 48a6c46..c657d56 100755 +--- a/SPIRV/CMakeLists.txt ++++ b/SPIRV/CMakeLists.txt +@@ -41,4 +41,4 @@ if(WIN32) + endif(WIN32) + + install(TARGETS SPIRV SPVRemapper +- ARCHIVE DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt +index ff91135..efb7f15 100644 +--- a/glslang/CMakeLists.txt ++++ b/glslang/CMakeLists.txt +@@ -89,4 +89,4 @@ if(WIN32) + endif(WIN32) + + install(TARGETS glslang +- ARCHIVE DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt +index 174cc91..d98057b 100644 +--- a/glslang/OSDependent/Unix/CMakeLists.txt ++++ b/glslang/OSDependent/Unix/CMakeLists.txt +@@ -2,4 +2,4 @@ add_library(OSDependent STATIC ossource.cpp ../osinclude.h) + set_property(TARGET OSDependent PROPERTY FOLDER glslang) + + install(TARGETS OSDependent +- ARCHIVE DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt +index 399760c..744bcbb 100644 +--- a/glslang/OSDependent/Windows/CMakeLists.txt ++++ b/glslang/OSDependent/Windows/CMakeLists.txt +@@ -14,4 +14,4 @@ if(WIN32) + endif(WIN32) + + install(TARGETS OSDependent +- ARCHIVE DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt +index c7537e2..5111661 100755 +--- a/hlsl/CMakeLists.txt ++++ b/hlsl/CMakeLists.txt +@@ -23,4 +23,4 @@ if(WIN32) + endif(WIN32) + + install(TARGETS HLSL +- ARCHIVE DESTINATION lib) ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +-- +1.9.1 + diff --git a/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb b/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb new file mode 100644 index 000000000..15852cacd --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb @@ -0,0 +1,39 @@ +SUMMARY = "An OpenGL and OpenGL ES shader front end and validator." +DESCRIPTION = "Glslang is the official reference compiler front end \ + for the OpenGL ES and OpenGL shading languages. It \ + implements a strict interpretation of the specifications \ + for these languages. It is open and free for anyone to use, \ + either from a command line or programmatically." +SECTION = "graphics" +HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler" + +inherit cmake + +LICENSE = "BSD" +LIC_FILES_CHKSUM = "file://glslang/Include/Types.h;beginline=1;endline=36;md5=6639a5f9543e833d71e2f4e4ff52f34b" + +S = "${WORKDIR}/git" + +SRCREV = "81cd764b5ffc475bc73f1fb35f75fd1171bb2343" +SRC_URI = "git://github.com/KhronosGroup/glslang \ + file://0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch" + +FILES_${PN} += "${libdir}/*" + +BBCLASSEXTEND = "native nativesdk" + +do_install_append() { + # Some of the vulkan samples/test require these headers + install -d ${D}${includedir}/SPIRV + cp -f ${S}/SPIRV/GlslangToSpv.h ${D}${includedir}/SPIRV + cp -f ${S}/SPIRV/Logger.h ${D}${includedir}/SPIRV + cp -f ${S}/SPIRV/SPVRemapper.h ${D}${includedir}/SPIRV + cp -f ${S}/SPIRV/spvIR.h ${D}${includedir}/SPIRV + + install -d ${D}${includedir}/glslang/Include + cp -f ${S}/glslang/Include/*.h ${D}${includedir}/glslang/Include + install -d ${D}${includedir}/glslang/Public + cp -f ${S}/glslang/Public/*.h ${D}${includedir}/glslang/Public + install -d ${D}${includedir}/glslang/MachineIndependent + cp -f ${S}/glslang/MachineIndependent/Versions.h ${D}${includedir}/glslang/MachineIndependent +} diff --git a/meta-digi-dey/recipes-graphics/vulkan/spirv-tools/0002-spirv-lesspipe.sh-allow-using-generic-shells.patch b/meta-digi-dey/recipes-graphics/vulkan/spirv-tools/0002-spirv-lesspipe.sh-allow-using-generic-shells.patch new file mode 100644 index 000000000..2918e4ef5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/spirv-tools/0002-spirv-lesspipe.sh-allow-using-generic-shells.patch @@ -0,0 +1,24 @@ +From 93a770330aa21c91a9b7fce798b73d31cad8f16a Mon Sep 17 00:00:00 2001 +From: Awais Belal +Date: Tue, 25 Oct 2016 16:12:08 +0500 +Subject: [PATCH] spirv-lesspipe.sh: allow using generic shells + +The script is harmless for any type of shell and +shouldn't be tied with bash to allow catering +more possibilities. + +Signed-off-by: Awais Belal +--- + tools/lesspipe/spirv-lesspipe.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: git/tools/lesspipe/spirv-lesspipe.sh +=================================================================== +--- git.orig/tools/lesspipe/spirv-lesspipe.sh 2018-05-01 13:37:34.294579393 -0500 ++++ git/tools/lesspipe/spirv-lesspipe.sh 2018-05-01 13:38:35.000000000 -0500 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # Copyright (c) 2016 The Khronos Group Inc. + + # Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb b/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb new file mode 100644 index 000000000..f1682368a --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb @@ -0,0 +1,32 @@ +SUMMARY = "SPIR-V Tools" +DESCRIPTION = "SPIR-V is a binary intermediate language for representing \ + graphical-shader stages and compute kernels for multiple \ + Khronos APIs, such as OpenCL, OpenGL, and Vulkan." +SECTION = "graphics" +HOMEPAGE = "https://www.khronos.org/registry/spir-v" + +inherit cmake python3native + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +S = "${WORKDIR}/git" +SPIRV_HEADERS_LOCATION = "${S}/external/spirv-headers" +HEADERS_VERSION = "1.1" + +SRCREV_spirv-tools = "2c0ce872103d676bf8de5dc87a03ad2c32e215a2" +SRCREV_spirv-headers = "3a4dbdde9a9b2cf23736694ba70262dce27fbeaa" +SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools;protocol=http;name=spirv-tools \ + git://github.com/KhronosGroup/SPIRV-Headers;name=spirv-headers;destsuffix=${SPIRV_HEADERS_LOCATION} \ + file://0002-spirv-lesspipe.sh-allow-using-generic-shells.patch" + +do_install_append() { + if test -d ${SPIRV_HEADERS_LOCATION}/include/spirv/${HEADERS_VERSION}; then + install -d ${D}/${includedir}/SPIRV + install -m 0644 ${SPIRV_HEADERS_LOCATION}/include/spirv/${HEADERS_VERSION}/* ${D}/${includedir}/SPIRV + fi +} + +FILES_SOLIBSDEV = "" +FILES_${PN} += "${libdir}/libSPIRV*" +INSANE_SKIP_${PN} = "dev-so" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb b/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb new file mode 100644 index 000000000..f549fde41 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb @@ -0,0 +1,38 @@ +SUMMARY = "Vulkan benchmarking suite." +DESCRIPTION = "vkmark is an extensible Vulkan benchmarking suite with \ + targeted, configurable scenes." +SECTION = "graphics" + +LICENSE = "LGPL-2.1" +LIC_FILES_CHKSUM = "file://COPYING-LGPL2.1;md5=4fbd65380cdd255951079008b364516c" + +inherit meson + +S = "${WORKDIR}/git" + +SRCREV = "${AUTOREV}" +SRC_URI = "git://github.com/vkmark/vkmark;protocol=https" + +VKMARK_INSTALL_DIR = "${WORKDIR}/vm-install" + +DEPENDS = " vulkan imx-gpu-viv assimp glm ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', ' libxcb','libdrm libgbm', d), d)}" +do_compile() { + + ninja -C ${WORKDIR}/build +} + +do_install() { + + DESTDIR=${VKMARK_INSTALL_DIR} ninja -C ${WORKDIR}/build install + install -d ${D}${bindir} + install -d ${D}${datadir} + install -d ${D}${libdir} + cp -r ${VKMARK_INSTALL_DIR}${bindir}/* ${D}${bindir}/ + cp -r ${VKMARK_INSTALL_DIR}${datadir}/* ${D}${datadir}/ + cp -r ${VKMARK_INSTALL_DIR}${libdir}/* ${D}${libdir}/ +} + +FILES_${PN} += "${bindir} ${datadir}" + +COMPATIBLE_MACHINE = "(mx8)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend new file mode 100644 index 000000000..2ab9f3ecd --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend @@ -0,0 +1,2 @@ + +COMPATIBLE_MACHINE = "(mx8)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to-u.patch b/meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to-u.patch new file mode 100644 index 000000000..ba7ed45b4 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to-u.patch @@ -0,0 +1,27 @@ +From 5d967d036c49a4d609dec979c21fc34159788008 Mon Sep 17 00:00:00 2001 +From: Neena Busireddy +Date: Mon, 30 Apr 2018 13:52:36 -0500 +Subject: [PATCH] CMakeLists.txt: Modify the library path to point to + /usr/lib/libVK.so in json files + +Signed-off-by: Neena Busireddy +--- + layers/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt +index 35a1b41..3af3975 100644 +--- a/layers/CMakeLists.txt ++++ b/layers/CMakeLists.txt +@@ -92,7 +92,7 @@ if(UNIX) + add_custom_target(${config_file}-staging-json ALL + COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/staging-json + COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json ${CMAKE_CURRENT_BINARY_DIR}/staging-json +- COMMAND sed -i -e "/\"library_path\":/s$./libVkLayer$libVkLayer$" ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json ++ COMMAND sed -i -e "/\"library_path\":/s$./libVkLayer$$(libdir)/libVkLayer$" ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json + VERBATIM + DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json + ) +-- +1.9.1 + diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan/icd_VSI.json b/meta-digi-dey/recipes-graphics/vulkan/vulkan/icd_VSI.json new file mode 100644 index 000000000..4324c71a5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan/icd_VSI.json @@ -0,0 +1,7 @@ +{ + "file_format_version": "1.0.0", + "ICD": { + "library_path": "/usr/lib/vulkan/libvulkan_VSI.so", + "api_version": "1.0.30" + } +} diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend new file mode 100644 index 000000000..6e7c30f60 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend @@ -0,0 +1,32 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI += " \ + file://icd_VSI.json \ + file://0001-CMakeLists.txt-Modify-the-library-path-to-point-to-u.patch \ +" +# choose wayland +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" + +DEPENDS = "virtual/egl glslang spirv-tools" +RDEPENDS_${PN} += "libvulkan-imx" + +EXTRA_OECMAKE_remove = "-DBUILD_LAYERS=OFF" +# Enable validation layers +EXTRA_OECMAKE_append = " -DBUILD_LAYERS=ON" + +do_install_append () { + + install -d ${D}${sysconfdir}/vulkan/icd.d + cp ${WORKDIR}/icd_VSI.json ${D}${sysconfdir}/vulkan/icd.d + sed -i "s,/usr/lib,${libdir}," ${D}${sysconfdir}/vulkan/icd.d/icd_VSI.json + sed -i "s,1.0.30,${PV}," ${D}${sysconfdir}/vulkan/icd.d/icd_VSI.json + +# Use some vulkan headers from imx-gpu-viv + rm -rf ${D}${includedir}/vulkan/vk_* +} + +FILES_SOLIBSDEV = "" +FILES_${PN} += "${libdir}/libvulkan.so ${libdir}/libVkLayer_*.so" +INSANE_SKIP_${PN} = "dev-so" + +COMPATIBLE_MACHINE = "(mx8)" diff --git a/meta-digi-dey/recipes-graphics/waffle/waffle_%.bbappend b/meta-digi-dey/recipes-graphics/waffle/waffle_%.bbappend new file mode 100644 index 000000000..caef3a1e0 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/waffle/waffle_%.bbappend @@ -0,0 +1,7 @@ +PACKAGECONFIG_X11 = "" +PACKAGECONFIG_X11_append_imxgpu3d = " x11-egl glx" +PACKAGECONFIG_imxgpu = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'gbm wayland', \ + bb.utils.contains('DISTRO_FEATURES', 'x11', '${PACKAGECONFIG_X11}', \ + '', d), d)} \ +" diff --git a/meta-digi-dey/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch b/meta-digi-dey/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch new file mode 100644 index 000000000..b52b4962b --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch @@ -0,0 +1,72 @@ +This is a workaround upstream suggests for use with kernel 4.1. + +Upstream-Status: Inappropriate [temporary work-around] +Signed-off-by: Jussi Kukkonen + + + +From: Peter Hutterer +Date: Mon Aug 3 18:23:12 PDT 2015 +Subject: [PATCH v3 libinput] touchpad: serial synaptics need to fake new touches on TRIPLETAP + +On the 4.1 kernels synaptics pretends to have 3 slots (the serial fw only does +2). This was added to avoid cursor jumps but has since been reverted for 4.2 +(kernel commit dbf3c37086, 4.1.3 is still buggy). In some cases a TRIPLETAP +may be triggered without slot 2 ever activating. + +While there are still those kernels out there, work around this bug by opening +a new touch point where none exists if the fake finger count exceeds the slot +count. + +Reported-by: Jan Alexander Steffens +Signed-off-by: Peter Hutterer +Tested-by: Jan Alexander Steffens +Reviewed-by: Hans de Goede +--- +Changes to v2: +- split out the handling instead of having a tmp state variable, see Hans' + comments from v2 + +Mainly sending this to the list again so I have a link to point people to. +If you're on 4.1.x add this patch to your distribution package. + + src/evdev-mt-touchpad.c | 22 ++++++++++++++++------ + 1 file changed, 16 insertions(+), 6 deletions(-) + +diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c +index a683d9a..5ef03d5 100644 +--- a/src/evdev-mt-touchpad.c ++++ b/src/evdev-mt-touchpad.c +@@ -369,13 +369,23 @@ tp_restore_synaptics_touches(struct tp_dispatch *tp, + for (i = 0; i < tp->num_slots; i++) { + struct tp_touch *t = tp_get_touch(tp, i); + +- if (t->state != TOUCH_END) ++ switch(t->state) { ++ case TOUCH_HOVERING: ++ case TOUCH_BEGIN: ++ case TOUCH_UPDATE: + continue; +- +- /* new touch, move it through begin to update immediately */ +- tp_new_touch(tp, t, time); +- tp_begin_touch(tp, t, time); +- t->state = TOUCH_UPDATE; ++ case TOUCH_NONE: ++ /* new touch, move it through to begin immediately */ ++ tp_new_touch(tp, t, time); ++ tp_begin_touch(tp, t, time); ++ break; ++ case TOUCH_END: ++ /* touch just ended ,we need need to restore it to update */ ++ tp_new_touch(tp, t, time); ++ tp_begin_touch(tp, t, time); ++ t->state = TOUCH_UPDATE; ++ break; ++ } + } + } + +-- +2.4.3 + diff --git a/meta-digi-dey/recipes-graphics/wayland/libinput_1.6.1.bb b/meta-digi-dey/recipes-graphics/wayland/libinput_1.6.1.bb new file mode 100644 index 000000000..c8714f23e --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/libinput_1.6.1.bb @@ -0,0 +1,25 @@ +SUMMARY = "Library to handle input devices in Wayland compositors" +HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=2184aef38ff137ed33ce9a63b9d1eb8f" + +DEPENDS = "libevdev udev mtdev" + +SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \ + file://touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch \ +" +SRC_URI[md5sum] = "7e282344f8ed7ec5cf87ca9fc22674fb" +SRC_URI[sha256sum] = "9d816f13eee63bcca0e9c3bb652c52ab55f39be4d1b90b54e4bfd1dc92ef55a8" + +inherit autotools pkgconfig + +PACKAGECONFIG ??= "" +PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" +PACKAGECONFIG[libwacom] = "--enable-libwacom,--disable-libwacom,libwacom" +PACKAGECONFIG[gui] = "--enable-event-gui,--disable-event-gui,cairo gtk+3" + +UDEVDIR = "`pkg-config --variable=udevdir udev`" + +EXTRA_OECONF += "--with-udev-dir=${UDEVDIR}" diff --git a/meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bb b/meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bb new file mode 100644 index 000000000..1ef1ee141 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bb @@ -0,0 +1,20 @@ +SUMMARY = "Collection of additional Wayland protocols" +DESCRIPTION = "Wayland protocols that add functionality not \ +available in the Wayland core protocol. Such protocols either add \ +completely new functionality, or extend the functionality of some other \ +protocol either in Wayland core, or some other protocol in \ +wayland-protocols." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \ + file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53" + +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ + " +SRC_URI[md5sum] = "29312149dafcd4a0e739ba94995a574d" +SRC_URI[sha256sum] = "0758bc8008d5332f431b2a84fea7de64d971ce270ed208206a098ff2ebc68f38" + +inherit allarch autotools pkgconfig + +PACKAGES = "${PN}" +FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc" diff --git a/meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bbappend b/meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bbappend new file mode 100644 index 000000000..3fdfa6bd6 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/wayland-protocols_1.13.bbappend @@ -0,0 +1,5 @@ +WAYLAND_PROTOCOLS_SRC ?= "git://source.codeaurora.org/external/imx/wayland-protocols-imx.git;protocol=https" +SRCBRANCH = "master" +SRC_URI = "${WAYLAND_PROTOCOLS_SRC};branch=${SRCBRANCH} " +SRCREV = "d5ded4ddaf68b161fec23d75204d2153232c3a47" +S = "${WORKDIR}/git" diff --git a/meta-digi-dey/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch b/meta-digi-dey/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch new file mode 100644 index 000000000..ad3526d98 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/wayland/fixpathinpcfiles.patch @@ -0,0 +1,32 @@ +Fix wayland-client and wayland-scanner pc files + +Upstream-Status: Pending + +Signed-off-by: Fabien Lahoudere + +Index: wayland-1.14.0/src/wayland-client.pc.in +=================================================================== +--- wayland-1.14.0.orig/src/wayland-client.pc.in ++++ wayland-1.14.0/src/wayland-client.pc.in +@@ -1,7 +1,7 @@ + prefix=@prefix@ + exec_prefix=@exec_prefix@ + datarootdir=@datarootdir@ +-pkgdatadir=@datadir@/@PACKAGE@ ++pkgdatadir=${pc_sysrootdir}@datadir@/@PACKAGE@ + libdir=@libdir@ + includedir=@includedir@ + +Index: wayland-1.14.0/src/wayland-scanner.pc.in +=================================================================== +--- wayland-1.14.0.orig/src/wayland-scanner.pc.in ++++ wayland-1.14.0/src/wayland-scanner.pc.in +@@ -2,7 +2,7 @@ prefix=@prefix@ + exec_prefix=@exec_prefix@ + datarootdir=@datarootdir@ + pkgdatadir=@datadir@/@PACKAGE@ +-wayland_scanner=@bindir@/wayland-scanner ++wayland_scanner=wayland-scanner + + Name: Wayland Scanner + Description: Wayland scanner diff --git a/meta-digi-dey/recipes-graphics/wayland/wayland_1.15.0.bb b/meta-digi-dey/recipes-graphics/wayland/wayland_1.15.0.bb new file mode 100644 index 000000000..788105bff --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/wayland_1.15.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "Wayland, a protocol between a compositor and clients" +DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \ +as well as a C library implementation of that protocol. The compositor can be \ +a standalone display server running on Linux kernel modesetting and evdev \ +input devices, an X application, or a wayland client itself. The clients can \ +be traditional applications, X servers (rootless or fullscreen) or other \ +display servers." +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ + file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" + +DEPENDS = "expat libxml2 libffi wayland-native" + +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ + file://fixpathinpcfiles.patch \ + " +SRC_URI[md5sum] = "b7393c17fdce9a8d383edab656c92fd2" +SRC_URI[sha256sum] = "eb3fbebb8559d56a80ad3753ec3db800f587329067962dbf65e14488b4b7aeb0" + +inherit autotools pkgconfig + +EXTRA_OECONF = "--disable-documentation --with-host-scanner" +EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries" + +# Wayland installs a M4 macro for other projects to use, which uses the target +# pkg-config to find files. Replace pkg-config with pkg-config-native. +do_install_append_class-native() { + sed -e 's,PKG_CHECK_MODULES(.*),,g' \ + -e 's,$PKG_CONFIG,pkg-config-native,g' \ + -i ${D}/${datadir}/aclocal/wayland-scanner.m4 +} + +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/ +} + +FILES_${PN} = "${libdir}/*${SOLIBS}" +FILES_${PN}-dev += "${bindir} ${datadir}/wayland" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend b/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend new file mode 100644 index 000000000..6df4ec803 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init.bbappend @@ -0,0 +1,23 @@ +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" + +REQUIRED_DISTRO_FEATURES_remove_mx6sl = "opengl" + +SRC_URI_append = " file://profile" +SRC_URI_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd wayland x11', 'file://weston.config', '', d)}" + +HAS_SYSTEMD = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', 'no', d)}" +HAS_XWAYLAND = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland x11', 'yes', 'no', d)}" + +do_install_append() { + install -Dm0755 ${WORKDIR}/profile ${D}${sysconfdir}/profile.d/weston.sh + if [ "${HAS_SYSTEMD}" = "yes" ]; then + sed -i \ + -e 's,/usr/bin,${bindir},g' \ + -e 's,/etc,${sysconfdir},g' \ + -e 's,/var,${localstatedir},g' \ + ${D}${systemd_system_unitdir}/weston.service + if [ "${HAS_XWAYLAND}" = "yes" ]; then + install -Dm0755 ${WORKDIR}/weston.config ${D}${sysconfdir}/default/weston + fi + fi +} diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init/imxdrm/weston.config b/meta-digi-dey/recipes-graphics/wayland/weston-init/imxdrm/weston.config new file mode 100644 index 000000000..5693d6cbf --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init/imxdrm/weston.config @@ -0,0 +1,3 @@ +#!/bin/sh +OPTARGS="--xwayland" +DESKTOP_SHELL_WINDOW=1920x1080 diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init/init b/meta-digi-dey/recipes-graphics/wayland/weston-init/init new file mode 100644 index 000000000..b4092bb21 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init/init @@ -0,0 +1,51 @@ +#!/bin/sh +# +### BEGIN INIT INFO +# Provides: weston +# Required-Start: $local_fs $remote_fs +# Required-Stop: $local_fs $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +### END INIT INFO + +if test -e /etc/default/weston ; then + . /etc/default/weston +fi + +killproc() { + pid=`/bin/pidof $1` + [ "$pid" != "" ] && kill $pid +} + +read CMDLINE < /proc/cmdline +for x in $CMDLINE; do + case $x in + weston=false) + echo "Weston disabled" + exit 0; + ;; + esac +done + +case "$1" in + start) + weston-start -- $OPTARGS + ;; + + stop) + echo "Stopping Weston" + killproc weston + ;; + + restart) + $0 stop + sleep 1 + $0 start + ;; + + *) + echo "usage: $0 { start | stop | restart }" + ;; +esac + +exit 0 diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init/profile b/meta-digi-dey/recipes-graphics/wayland/weston-init/profile new file mode 100644 index 000000000..d4fefbcb7 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init/profile @@ -0,0 +1,7 @@ +if test -z "$XDG_RUNTIME_DIR"; then + export XDG_RUNTIME_DIR=/run/user/$USER + if ! test -d "${XDG_RUNTIME_DIR}"; then + mkdir --parents "${XDG_RUNTIME_DIR}" + chmod 0700 "${XDG_RUNTIME_DIR}" + fi +fi diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init/weston-start b/meta-digi-dey/recipes-graphics/wayland/weston-init/weston-start new file mode 100755 index 000000000..880fd5771 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init/weston-start @@ -0,0 +1,68 @@ +#!/bin/sh +# Copyright (C) 2016 O.S. Systems Software LTDA. +# Copyright 2016 Freescale Semiconductor + +if [ "$USER" = "" ]; then + export USER=`id -un` +fi +if [ "$HOME" = "/" ]; then + export HOME=/home/$USER +fi +cd +. /etc/profile + +usage() { + cat <] [-- ] +EOF +} + +## Module support +modules_dir=@DATADIR@/weston-start + +# Add weston extra argument +add_weston_argument() { + weston_args="$weston_args $1" +} + +# Add openvt extra argument +add_openvt_argument() { + openvt_args="$openvt_args $1" +} + +if [ -n "$WAYLAND_DISPLAY" ]; then + echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet." + exit 1 +fi +if [ -n "$DISPLAY" ]; then + launcher="weston" +else + launcher="weston-launch --" +fi + +openvt_args="-s" +while [ -n "$1" ]; do + if [ "$1" = "--" ]; then + shift + break + fi + openvt_args="$openvt_args $1" + shift +done + +weston_args=$* + +# Load and run modules +if [ -d "$modules_dir" ]; then + for m in "$modules_dir"/*; do + # Skip backup files + if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then + continue + fi + + # process module + . $m + done +fi + +exec openvt $openvt_args -- $launcher $weston_args --log=@LOCALSTATEDIR@/log/weston.log diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init/weston.config b/meta-digi-dey/recipes-graphics/wayland/weston-init/weston.config new file mode 100644 index 000000000..7c92cf110 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init/weston.config @@ -0,0 +1,2 @@ +#!/bin/sh +OPTARGS="--xwayland" diff --git a/meta-digi-dey/recipes-graphics/wayland/weston-init/weston.service b/meta-digi-dey/recipes-graphics/wayland/weston-init/weston.service new file mode 100644 index 000000000..44c5a82f1 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston-init/weston.service @@ -0,0 +1,38 @@ +[Unit] +Description=Weston Wayland Compositor (on tty7) +RequiresMountsFor=/run +Conflicts=getty@tty7.service plymouth-quit.service +After=systemd-user-sessions.service getty@tty7.service plymouth-quit-wait.service + +[Service] +User=root +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-launch -- --log=/var/log/weston.log $OPTARGS + +IgnoreSIGPIPE=no + +[Install] +WantedBy=multi-user.target + diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch new file mode 100644 index 000000000..e2213aca6 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0001-make-error-portable.patch @@ -0,0 +1,70 @@ +From c22e90365d89346258394833cbcad03ff32b2e27 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 May 2015 20:56:00 -0700 +Subject: [PATCH weston] make error() portable + +error() is not posix but gnu extension so may not be available on all +kind of systemsi e.g. musl. + +Signed-off-by: Khem Raj +--- +Upstream-Status: Submitted + + configure.ac | 2 ++ + libweston/weston-error.h | 20 ++++++++++++++++++++ + libweston/weston-launch.c | 2 +- + 3 files changed, 23 insertions(+), 1 deletion(-) + create mode 100644 src/weston-error.h + +--- a/configure.ac ++++ b/configure.ac +@@ -60,6 +60,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[], + [[#include ]]) + AC_CHECK_HEADERS([execinfo.h]) + ++AC_CHECK_HEADERS([error.h]) ++ + AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate]) + + COMPOSITOR_MODULES="wayland-server >= $WAYLAND_PREREQ_VERSION pixman-1 >= 0.25.2" +--- /dev/null ++++ b/libweston/weston-error.h +@@ -0,0 +1,20 @@ ++#ifndef _WESTON_ERROR_H ++#define _WESTON_ERROR_H ++ ++#if defined(HAVE_ERROR_H) ++#include ++#else ++#include ++#include ++#define _weston_error(S, E, F, ...) do { \ ++ if (E) \ ++ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \ ++ else \ ++ err(S, F, ##__VA_ARGS__); \ ++} while(0) ++ ++#define error _weston_error ++#endif ++ ++#endif ++ +--- a/libweston/weston-launch.c ++++ b/libweston/weston-launch.c +@@ -33,7 +33,6 @@ + #include + #include + +-#include + #include + + #include +@@ -59,6 +58,7 @@ + #endif + + #include "weston-launch.h" ++#include "weston-error.h" + + #define DRM_MAJOR 226 + diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch new file mode 100644 index 000000000..5bbc1ad44 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch @@ -0,0 +1,172 @@ +From 8ff6ed03ec4079f32e9b34085414e57be4730e04 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein +Date: Wed, 22 Feb 2017 15:53:30 +0200 +Subject: [PATCH] weston-launch: Provide a default version that doesn't require + PAM + +weston-launch requires PAM for starting weston as a non-root user. + +Since starting weston as root is a valid use case by itself, if +PAM is not available, provide a default version of weston-launch +without non-root-user support. + +Upstream-Status: Pending + +Signed-off-by: Tom Hochstein +Signed-off-by: Jussi Kukkonen +--- + configure.ac | 9 +++++++-- + libweston/weston-launch.c | 20 ++++++++++++++++++++ + 2 files changed, 27 insertions(+), 2 deletions(-) + +Index: git/configure.ac +=================================================================== +--- git.orig/configure.ac 2018-02-08 14:04:40.807286171 -0600 ++++ git/configure.ac 2018-02-08 14:04:40.807286171 -0600 +@@ -472,13 +472,17 @@ + AS_IF([test "x$enable_resize_optimization" = "xyes"], + [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])]) + ++AC_ARG_WITH(pam, ++ AS_HELP_STRING([--with-pam], [Use PAM]), ++ [use_pam=$withval], [use_pam=yes]) + AC_ARG_ENABLE(weston-launch, [ --enable-weston-launch],, enable_weston_launch=yes) + AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch = xyes) +-if test x$enable_weston_launch = xyes; then ++if test x$enable_weston_launch = xyes -a x$use_pam = xyes; then + WESTON_SEARCH_LIBS([PAM], [pam], [pam_open_session], [have_pam=yes], [have_pam=no]) + if test x$have_pam = xno; then +- AC_ERROR([weston-launch requires pam]) ++ AC_ERROR([PAM support is explicitly requested, but libpam couldn't be found]) + fi ++ AC_DEFINE([HAVE_PAM], [1], [Define if PAM is available]) + fi + + AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes") +@@ -744,6 +748,7 @@ + Enable developer documentation ${enable_devdocs} + + weston-launch utility ${enable_weston_launch} ++ PAM support ${use_pam} + systemd-login support ${have_systemd_login} + systemd notify support ${enable_systemd_notify} + +Index: git/libweston/weston-launch.c +=================================================================== +--- git.orig/libweston/weston-launch.c 2018-02-08 14:04:40.807286171 -0600 ++++ git/libweston/weston-launch.c 2018-02-08 14:08:10.000000000 -0600 +@@ -51,7 +51,9 @@ + + #include + #include ++#ifdef HAVE_PAM + #include ++#endif + + #ifdef HAVE_SYSTEMD_LOGIN + #include +@@ -101,8 +103,10 @@ + #endif + + struct weston_launch { ++#ifdef HAVE_PAM + struct pam_conv pc; + pam_handle_t *ph; ++#endif + int tty; + int ttynr; + int sock[2]; +@@ -189,6 +193,7 @@ + return false; + } + ++#ifdef HAVE_PAM + static int + pam_conversation_fn(int msg_count, + const struct pam_message **messages, +@@ -229,6 +234,7 @@ + + return 0; + } ++#endif + + static int + setup_launcher_socket(struct weston_launch *wl) +@@ -422,6 +428,7 @@ + close(wl->signalfd); + close(wl->sock[0]); + ++#ifdef HAVE_PAM + if (wl->new_user) { + err = pam_close_session(wl->ph, 0); + if (err) +@@ -429,6 +436,7 @@ + err, pam_strerror(wl->ph, err)); + pam_end(wl->ph, err); + } ++#endif + + if (ioctl(wl->tty, KDSKBMUTE, 0) && + ioctl(wl->tty, KDSKBMODE, wl->kb_mode)) +@@ -608,6 +616,7 @@ + setenv("HOME", wl->pw->pw_dir, 1); + setenv("SHELL", wl->pw->pw_shell, 1); + ++#ifdef HAVE_PAM + env = pam_getenvlist(wl->ph); + if (env) { + for (i = 0; env[i]; ++i) { +@@ -616,6 +625,7 @@ + } + free(env); + } ++#endif + + /* + * We open a new session, so it makes sense +@@ -683,8 +693,10 @@ + help(const char *name) + { + fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name); ++#ifdef HAVE_PAM + fprintf(stderr, " -u, --user Start session as specified username,\n" + " e.g. -u joe, requires root.\n"); ++#endif + 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"); +@@ -698,7 +710,9 @@ + int i, c; + char *tty = NULL; + struct option opts[] = { ++#ifdef HAVE_PAM + { "user", required_argument, NULL, 'u' }, ++#endif + { "tty", required_argument, NULL, 't' }, + { "verbose", no_argument, NULL, 'v' }, + { "help", no_argument, NULL, 'h' }, +@@ -710,9 +724,13 @@ + while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) { + switch (c) { + case 'u': ++#ifdef HAVE_PAM + wl.new_user = optarg; + if (getuid() != 0) + error(1, 0, "Permission denied. -u allowed for root only"); ++#else ++ error(1, 0, "-u is unsupported in this weston-launch build"); ++#endif + break; + case 't': + tty = optarg; +@@ -753,8 +771,10 @@ + if (setup_tty(&wl, tty) < 0) + exit(EXIT_FAILURE); + ++#ifdef HAVE_PAM + if (wl.new_user && setup_pam(&wl) < 0) + exit(EXIT_FAILURE); ++#endif + + if (setup_launcher_socket(&wl) < 0) + exit(EXIT_FAILURE); diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston.ini.in-Modify-paths-to-point-to-right-directo.patch b/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston.ini.in-Modify-paths-to-point-to-right-directo.patch new file mode 100644 index 000000000..80e6dbf70 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston/0001-weston.ini.in-Modify-paths-to-point-to-right-directo.patch @@ -0,0 +1,155 @@ +From b9c05520c4ff688c6488d8ca1e1defc592449d49 Mon Sep 17 00:00:00 2001 +From: Neena Busireddy +Date: Wed, 2 May 2018 11:51:45 -0500 +Subject: [PATCH] weston.ini.in: Modify paths to point to right directories + +Signed-off-by: Neena Busireddy +--- + Makefile.am | 2 ++ + ivi-shell/weston.ini.in | 56 ++++++++++++++++++++++++------------------------- + 2 files changed, 30 insertions(+), 28 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index 870e347..427cb5b 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -27,6 +27,7 @@ ivi-shell/weston.ini : $(srcdir)/ivi-shell/weston.ini.in + -e 's|@abs_top_builddir[@]|$(abs_top_builddir)|g' \ + -e 's|@abs_top_srcdir[@]|$(abs_top_srcdir)|g' \ + -e 's|@libexecdir[@]|$(libexecdir)|g' \ ++ -e 's|@datadir[@]|$(datadir)|g' \ + -e 's|@plugin_prefix[@]||g' \ + $< > $@ + +@@ -43,6 +44,7 @@ AM_CPPFLAGS = \ + -I$(top_builddir)/protocol \ + -DLIBWESTON_MODULEDIR='"$(libweston_moduledir)"' \ + -DLIBEXECDIR='"$(libexecdir)"' \ ++ -DDATADIR='"$(datadir)"' \ + -DBINDIR='"$(bindir)"' + + CLEANFILES = weston.ini \ +diff --git a/ivi-shell/weston.ini.in b/ivi-shell/weston.ini.in +index 3f11e1c..d0efd03 100644 +--- a/ivi-shell/weston.ini.in ++++ b/ivi-shell/weston.ini.in +@@ -3,7 +3,7 @@ shell=@plugin_prefix@ivi-shell.so + modules=@plugin_prefix@hmi-controller.so + + [ivi-shell] +-ivi-shell-user-interface=@abs_top_builddir@/weston-ivi-shell-user-interface ++ivi-shell-user-interface=@libexecdir@/weston-ivi-shell-user-interface + + #developermode=true + +@@ -19,20 +19,20 @@ application-layer-id=4000 + + transition-duration=300 + +-background-image=@abs_top_srcdir@/data/background.png ++background-image=@datadir@/weston/background.png + background-id=1001 +-panel-image=@abs_top_srcdir@/data/panel.png ++panel-image=@datadir@/weston/panel.png + panel-id=1002 + surface-id-offset=10 +-tiling-image=@abs_top_srcdir@/data/tiling.png ++tiling-image=@datadir@/weston/tiling.png + tiling-id=1003 +-sidebyside-image=@abs_top_srcdir@/data/sidebyside.png ++sidebyside-image=@datadir@/weston/sidebyside.png + sidebyside-id=1004 +-fullscreen-image=@abs_top_srcdir@/data/fullscreen.png ++fullscreen-image=@datadir@/weston/fullscreen.png + fullscreen-id=1005 +-random-image=@abs_top_srcdir@/data/random.png ++random-image=@datadir@/weston/random.png + random-id=1006 +-home-image=@abs_top_srcdir@/data/home.png ++home-image=@datadir@/weston/home.png + home-id=1007 + workspace-background-color=0x99000000 + workspace-background-id=2001 +@@ -43,59 +43,59 @@ path=@libexecdir@/weston-keyboard + [ivi-launcher] + workspace-id=0 + icon-id=4001 +-icon=@abs_top_srcdir@/data/icon_ivi_flower.png +-path=@abs_top_builddir@/weston-flower ++icon=@datadir@/weston/icon_ivi_flower.png ++path=@bindir@/weston-flower + + [ivi-launcher] + workspace-id=0 + icon-id=4002 +-icon=@abs_top_srcdir@/data/icon_ivi_clickdot.png +-path=@abs_top_builddir@/weston-clickdot ++icon=@datadir@/weston/icon_ivi_clickdot.png ++path=@bindir@/weston-clickdot + + [ivi-launcher] + workspace-id=1 + icon-id=4003 +-icon=@abs_top_srcdir@/data/icon_ivi_simple-egl.png +-path=@abs_top_builddir@/weston-simple-egl ++icon=@datadir@/weston/icon_ivi_simple-egl.png ++path=@bindir@/weston-simple-egl + + [ivi-launcher] + workspace-id=1 + icon-id=4004 +-icon=@abs_top_srcdir@/data/icon_ivi_simple-shm.png +-path=@abs_top_builddir@/weston-simple-shm ++icon=@datadir@/weston/icon_ivi_simple-shm.png ++path=@bindir@/weston-simple-shm + + [ivi-launcher] + workspace-id=2 + icon-id=4005 +-icon=@abs_top_srcdir@/data/icon_ivi_smoke.png +-path=@abs_top_builddir@/weston-smoke ++icon=@datadir@/weston/icon_ivi_smoke.png ++path=@bindir@/weston-smoke + + [ivi-launcher] + workspace-id=3 + icon-id=4006 +-icon=@abs_top_srcdir@/data/icon_ivi_flower.png +-path=@abs_top_builddir@/weston-flower ++icon=@datadir@/weston/icon_ivi_flower.png ++path=@bindir@/weston-flower + + [ivi-launcher] + workspace-id=3 + icon-id=4007 +-icon=@abs_top_srcdir@/data/icon_ivi_clickdot.png +-path=@abs_top_builddir@/weston-clickdot ++icon=@datadir@/weston/icon_ivi_clickdot.png ++path=@bindir@/weston-clickdot + + [ivi-launcher] + workspace-id=3 + icon-id=4008 +-icon=@abs_top_srcdir@/data/icon_ivi_simple-egl.png +-path=@abs_top_builddir@/weston-simple-egl ++icon=@datadir@/weston/icon_ivi_simple-egl.png ++path=@bindir@/weston-simple-egl + + [ivi-launcher] + workspace-id=3 + icon-id=4009 +-icon=@abs_top_srcdir@/data/icon_ivi_simple-shm.png +-path=@abs_top_builddir@/weston-simple-shm ++icon=@datadir@/weston/icon_ivi_simple-shm.png ++path=@bindir@/weston-simple-shm + + [ivi-launcher] + workspace-id=3 + icon-id=4010 +-icon=@abs_top_srcdir@/data/icon_ivi_smoke.png +-path=@abs_top_builddir@/weston-smoke ++icon=@datadir@/weston/icon_ivi_smoke.png ++path=@bindir@/weston-smoke +-- +1.9.1 + diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch b/meta-digi-dey/recipes-graphics/wayland/weston/weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch new file mode 100644 index 000000000..b3e1d06f5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston/weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch @@ -0,0 +1,55 @@ +Multi-plane sub-sampled textures have partial width/height, e.g. +YUV420/I420 has a full-size Y plane, followed by a half-width/height U +plane, and a half-width/height V plane. + +zwp_linux_dmabuf_v1 allows clients to pass an explicit pitch for each +plane, but for wl_shm this must be inferred. gl-renderer was correctly +accounting for the width and height when subsampling, but the pitch was +being taken as the pitch for the first plane. + +This does not match the requirements for GStreamer's waylandsink, in +particular, as well as other clients. Fix the SHM upload path to +correctly set the pitch for each plane, according to subsampling. + +Tested with: + $ gst-launch-1.0 videotestsrc ! waylandsink + +Upstream-Status: Backport [https://patchwork.freedesktop.org/patch/180767/] + +Signed-off-by: Daniel Stone +Fixes: fdeefe42418 ("gl-renderer: add support of WL_SHM_FORMAT_YUV420") +Reported-by: Fabien Lahoudere +Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103063 + +--- + libweston/gl-renderer.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c +index 244ce309..40bf0bb6 100644 +--- a/libweston/gl-renderer.c ++++ b/libweston/gl-renderer.c +@@ -1445,14 +1445,13 @@ gl_renderer_flush_damage(struct weston_surface *surface) + goto done; + } + +- glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch); +- + if (gs->needs_full_upload) { + glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0); + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0); + wl_shm_buffer_begin_access(buffer->shm_buffer); + for (j = 0; j < gs->num_textures; j++) { + glBindTexture(GL_TEXTURE_2D, gs->textures[j]); ++ glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch / gs->hsub[j]); + glTexImage2D(GL_TEXTURE_2D, 0, + gs->gl_format[j], + gs->pitch / gs->hsub[j], +@@ -1477,6 +1476,7 @@ gl_renderer_flush_damage(struct weston_surface *surface) + glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, r.y1); + for (j = 0; j < gs->num_textures; j++) { + glBindTexture(GL_TEXTURE_2D, gs->textures[j]); ++ glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch / gs->hsub[j]); + glTexSubImage2D(GL_TEXTURE_2D, 0, + r.x1 / gs->hsub[j], + r.y1 / gs->vsub[j], diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/weston.desktop b/meta-digi-dey/recipes-graphics/wayland/weston/weston.desktop new file mode 100644 index 000000000..1086ae8bf --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston/weston.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=Weston +Comment=Wayland Compostitor +Exec=weston +Icon=weston +Terminal=false +Categories=Utility; diff --git a/meta-digi-dey/recipes-graphics/wayland/weston/weston.png b/meta-digi-dey/recipes-graphics/wayland/weston/weston.png new file mode 100644 index 0000000000000000000000000000000000000000..ea8b7e0e233c86301a88e5bc925f09b3de2f9dec GIT binary patch literal 2383 zcmV-V39$BwP)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;(K){{a7>y{D4^000SaNLh0L00vqB00vqCV0pn~000Od zNklxQqBu<>r2)6lHU)*YGzD6ustAQm;suEZ zhy*;Kma`z8lfl}Zs zt(P8+CIeqHN%sZD!;$E}D=->`wJ4A{*-ZKJL!lV-N%25gfT6XP%v!n#FS3o9;k$el zEw@6~y|s39h@#XAXucVg0ZW%aSL#DjK(fo5S{d|YSh)e1F0G!WRlt)hzVZG*NdkI5 z15N8gicM(04cdm>n3{&%QE--6R?H@77?5XY$sl)Z6)5!lt3D_jSY$*2q=0V$cTzkZ zbwTT`kn9Y_lnM4C*!e(lq7zo`f|f1r49k!^0hMem6S^$f=)Y@ltl+)tUPyMy^Xv%B zzBojZFQY3;9}=c~E`YBhg%g%8L=7qvdLD*Eb8QCtFK&aj!6{1pY8wJ09mH6&4LU#O z_OoDSKRA{Gz61;c7@=ijJ8*}u-Bp=3hxMW$`r+! zjnKSFK9{dT?sc#8YTywsra*%IA;JM~=b|oWlBP{-2sUX7u0202?EA<0ylV|`hAvyK#*9d29WHCbRpF%B?F|=_k9k`2FX+- zCF~dt0@7@Tj-b*|7=y|}*un{?r4zhnEMz(sO*4BP=#OKx0xL%eajTmqLu-m;X*{V{|`$$li(87AM z6WVTzx~?!5cgS09$n@!suwgVxWsa*sO&fyQc6}TY?eaXc4=(&vo;&V_)@?!Q&_LUV z#EqWhPe5fpj;T%$RN%ViO|pj7TTh$TLHb5W_dwTu(q=Eh#51sPRBBJM6Z$?2h8c`& z{h$QAC&kmXiR1==;m#u{x0MAbjJq?mYlkFzgo*A?2K6TU56F%}aa^`60NoD=s~RxV z(0of&Pu;y2mbdE+{8Ty@d@f(99ij|a`>6Zu2Ke-TsN|t|O2G9zEE(9n6Bgfs^bL?1 z40KeokbkQlsGP^t`Pk2;v+=8bs!x6%vkR}eZd`(^e{`1=1uMS@P49!2ZQ^p@?7ty* zyxvX5gjc6dBAfX{n=3QPG?l-=AhaZRdEmXr-oO9eMlQMOZEP+W-9_@-A9 zP5@V6djYZ)|`OK z9lZv%3aLU)+{c%JF+=U}8}dOBK{D{W zNWcX$b5JrYEOxPeW@^NEcx`ivaBdIePgVzb3HT9mC`RoFfeNwp3h)?Sl~+jMp80-s zLuO5j>*7QqZV!K-ABE|C)qrf^7f9In7$Qtnx$!$bFf>d)2jjbgLYX@v?A5#MwdSGV zUQgILnE085LLe33IpBLhA!NJ8eIBq1@HDU+_ehPl1laKh;p`IM;*?=-ME);6 zEA9*?kOzJOd=r=p1M-ND759{*kWevaII={P{KphDM+LD?Pgu2mQSKH>guL3XT(c-1&a zK^y}P0DFNqfJ!|u%Yjlr7cd9d{uSdP-&}^)&6_Bm*?_&c205a&x)WIht^lWzg?`-C zqn88oZkY0~$Z9TQrB4E|smyC$?(h~gMd+&X-GW#aR1B~%z*x0&tFCOWlNI>MZcDkiHCXvpcpM70000bbVXQnWMOn=I&E)cX=Zr/dev/null 2>/dev/null; then + mkdir -p /tmp/.X11-unix + + add_weston_argument "--modules=xwayland.so" +fi diff --git a/meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bb b/meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bb new file mode 100644 index 000000000..a24f667f5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bb @@ -0,0 +1,116 @@ +SUMMARY = "Weston, a Wayland compositor" +DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" +HOMEPAGE = "http://wayland.freedesktop.org" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ + file://libweston/compositor.c;endline=26;md5=e342df749174a8ee11065583157c7a38" + +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ + file://weston.png \ + file://weston.desktop \ + file://0001-make-error-portable.patch \ + file://xwayland.weston-start \ + file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \ + file://weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch \ + file://fix-missing-header.patch \ +" +SRC_URI[md5sum] = "33709aa4d5916f89643fca0fc0064b39" +SRC_URI[sha256sum] = "a0fc0ae7ef83dfbed12abfe9b8096a24a7dd00705e86fa0db1e619ded18b4b58" + +inherit autotools pkgconfig useradd distro_features_check +# depends on virtual/egl +REQUIRED_DISTRO_FEATURES = "opengl" + +DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg" +DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" + +EXTRA_OECONF = "--enable-setuid-install \ + --disable-rdp-compositor \ + " +EXTRA_OECONF_append_qemux86 = "\ + WESTON_NATIVE_BACKEND=fbdev-backend.so \ + " +EXTRA_OECONF_append_qemux86-64 = "\ + WESTON_NATIVE_BACKEND=fbdev-backend.so \ + " +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + clients launch" +# +# Compositor choices +# +# Weston on KMS +PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev virtual/mesa mtdev" +# Weston on Wayland (nested Weston) +PACKAGECONFIG[wayland] = "--enable-wayland-compositor,--disable-wayland-compositor,virtual/mesa" +# Weston on X11 +PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo" +# Headless Weston +PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compositor" +# Weston on framebuffer +PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev" +# weston-launch +PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,drm" +# VA-API desktop recorder +PACKAGECONFIG[vaapi] = "--enable-vaapi-recorder,--disable-vaapi-recorder,libva" +# Weston with EGL support +PACKAGECONFIG[egl] = "--enable-egl --enable-simple-egl-clients,--disable-egl --disable-simple-egl-clients,virtual/egl" +# Weston with cairo glesv2 support +PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo" +# Weston with lcms support +PACKAGECONFIG[lcms] = "--enable-lcms,--disable-lcms,lcms" +# Weston with webp support +PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp" +# Weston with unwinding support +PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind" +# Weston with systemd-login support +PACKAGECONFIG[systemd] = "--enable-systemd-login,--disable-systemd-login,systemd dbus" +# Weston with Xwayland support (requires X11 and Wayland) +PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland" +# colord CMS support +PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord" +# Clients support +PACKAGECONFIG[clients] = "--enable-clients --enable-simple-clients --enable-demo-clients-install,--disable-clients --disable-simple-clients" +# Weston with PAM support +PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam" + +do_install_append() { + # Weston doesn't need the .la files to load modules, so wipe them + rm -f ${D}/${libdir}/libweston-4/*.la + + # If X11, ship a desktop file to launch it + if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" ]; then + install -d ${D}${datadir}/applications + install ${WORKDIR}/weston.desktop ${D}${datadir}/applications + + install -d ${D}${datadir}/icons/hicolor/48x48/apps + install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps + fi + + if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then + install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland + fi +} + +PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ + libweston-4 ${PN}-examples" + +FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}" + +FILES_libweston-4 = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-4/*.so" +SUMMARY_libweston-4 = "Helper library for implementing 'wayland window managers'." + +FILES_${PN}-examples = "${bindir}/*" + +FILES_${PN}-xwayland = "${libdir}/libweston-4/xwayland.so" +RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland" + +RDEPENDS_${PN} += "xkeyboard-config" +RRECOMMENDS_${PN} = "liberation-fonts" +RRECOMMENDS_${PN}-dev += "wayland-protocols" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system weston-launch" diff --git a/meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bbappend b/meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bbappend new file mode 100644 index 000000000..c1bd077a2 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/wayland/weston_4.0.0.bbappend @@ -0,0 +1,52 @@ +SUMMARY_append = " (with i.MX support)" + +DEPENDS_append_imxgpu2d = " virtual/libg2d" + +# Use i.MX fork of weston for customizations. +SRC_URI_remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz" +SRC_URI_remove = "file://weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch" +SRC_URI_remove = "file://fix-missing-header.patch" +SRC_URI += "file://0001-weston.ini.in-Modify-paths-to-point-to-right-directo.patch" +WESTON_SRC ?= "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https" +SRCBRANCH = "weston-imx-4.0" +SRC_URI_prepend = "${WESTON_SRC};branch=${SRCBRANCH} " +SRCREV = "a400f041e68b25da8ef9f6376d30209e43b507fb" +S = "${WORKDIR}/git" + +EXTRA_OECONF_append_imxfbdev = " WESTON_NATIVE_BACKEND=fbdev-backend.so" + +# Disable OpenGL for parts with GPU support for 2D but not 3D +IMX_REQUIRED_DISTRO_FEATURES_REMOVE = "" +IMX_REQUIRED_DISTRO_FEATURES_REMOVE_imxgpu2d = "opengl" +IMX_REQUIRED_DISTRO_FEATURES_REMOVE_imxgpu3d = "" +REQUIRED_DISTRO_FEATURES_remove = "${IMX_REQUIRED_DISTRO_FEATURES_REMOVE}" +IMX_EXTRA_OECONF_OPENGL = "" +IMX_EXTRA_OECONF_OPENGL_imxgpu2d = " --disable-opengl" +IMX_EXTRA_OECONF_OPENGL_imxgpu3d = "" +EXTRA_OECONF_append = "${IMX_EXTRA_OECONF_OPENGL}" + +# Disable G2D for parts without GPU support for 2D +IMX_EXTRA_OECONF_G2D = " --disable-imxg2d" +IMX_EXTRA_OECONF_G2D_imxgpu2d = "" +EXTRA_OECONF_append = "${IMX_EXTRA_OECONF_G2D}" + +# drm is not supported on mx6/mx7 +PACKAGECONFIG_remove_mx6 = "kms" +PACKAGECONFIG_remove_mx7 = "kms" + +PACKAGECONFIG_append_imxgpu3d = " cairo-glesv2" + +do_install_append() { + if [ "${@bb.utils.filter('BBFILE_COLLECTIONS', 'ivi', d)}" ]; then + WESTON_INI_SRC=${B}/ivi-shell/weston.ini + else + WESTON_INI_SRC=${B}/weston.ini + fi + WESTON_INI_DEST_DIR=${D}${sysconfdir}/xdg/weston + install -d ${WESTON_INI_DEST_DIR} + install -m 0644 ${WESTON_INI_SRC} ${WESTON_INI_DEST_DIR} +} + +FILES_${PN} += "${sysconfdir}/xdg/weston" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxdrm/xorg.conf b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxdrm/xorg.conf new file mode 100644 index 000000000..ec12ed9bc --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxdrm/xorg.conf @@ -0,0 +1,15 @@ +Section "Device" + Identifier "i.MX Accelerated DRM Device" + Driver "vivante" + Option "kmsdev" "/dev/dri/card0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" + Option "Xinerama" "off" + Option "Clone" "on" + Option "SWcursor" "true" +EndSection diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxfbdev/xorg.conf b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxfbdev/xorg.conf new file mode 100644 index 000000000..b89bed60f --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/imxfbdev/xorg.conf @@ -0,0 +1,14 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "vivante" + Option "fbdev" "/dev/fb0" + Option "vivante_fbdev" "/dev/fb0" + Option "HWcursor" "false" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf new file mode 100755 index 000000000..79b6c0fc1 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx6sll/xorg.conf @@ -0,0 +1,12 @@ +Section "Device" + Identifier "Kernel Framebuffer Device" + Driver "fbdev" + Option "fbdev" "/dev/fb0" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf new file mode 100755 index 000000000..de6307a3a --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config/mx7ulp/xorg.conf @@ -0,0 +1,15 @@ +Section "Device" + Identifier "i.MX Accelerated Framebuffer Device" + Driver "vivante" + Option "fbdev" "/dev/fb0" + Option "vivante_fbdev" "/dev/fb0" + Option "HWcursor" "false" + Option "VivCacheMem" "false" +EndSection + +Section "ServerFlags" + Option "BlankTime" "0" + Option "StandbyTime" "0" + Option "SuspendTime" "0" + Option "OffTime" "0" +EndSection diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend new file mode 100644 index 000000000..ceb438e37 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xf86-config_%.bbappend @@ -0,0 +1,2 @@ +# Append path for freescale layer to include bsp xorg.conf +FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:" diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-Use-CFLAGS-for-EGL-and-GBM.patch b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-Use-CFLAGS-for-EGL-and-GBM.patch new file mode 100644 index 000000000..2ae278cd0 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0001-glamor-Use-CFLAGS-for-EGL-and-GBM.patch @@ -0,0 +1,30 @@ +From 8360595a2c350d985db38e2bc9eff5c80893d660 Mon Sep 17 00:00:00 2001 +From: Tom Hochstein +Date: Mon, 17 Jul 2017 16:44:23 -0500 +Subject: [PATCH] glamor: Use CFLAGS for EGL and GBM + +Glamor uses both EGL and GBM, so use CFLAGS for these. + +Upstream-Status: Pending + +Signed-off-by: Tom Hochstein +--- + glamor/Makefile.am | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/glamor/Makefile.am b/glamor/Makefile.am +index 8c79994..3f0f592 100644 +--- a/glamor/Makefile.am ++++ b/glamor/Makefile.am +@@ -2,7 +2,7 @@ noinst_LTLIBRARIES = libglamor.la libglamor_egl_stubs.la + + libglamor_la_LIBADD = $(GLAMOR_LIBS) + +-AM_CFLAGS = $(CWARNFLAGS) $(DIX_CFLAGS) $(GLAMOR_CFLAGS) ++AM_CFLAGS = $(CWARNFLAGS) $(DIX_CFLAGS) $(EGL_CFLAGS) $(GBM_CFLAGS) $(GLAMOR_CFLAGS) + + libglamor_la_SOURCES = \ + glamor.c \ +-- +1.9.1 + diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor_egl-Automatically-choose-a-GLES2-context-if-d.patch b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor_egl-Automatically-choose-a-GLES2-context-if-d.patch new file mode 100644 index 000000000..aae37ffad --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg/0002-glamor_egl-Automatically-choose-a-GLES2-context-if-d.patch @@ -0,0 +1,262 @@ +From 1c99ec67c526b21f6cde697c8efece82a7884a15 Mon Sep 17 00:00:00 2001 +From: Prabhu Sundararaj +Date: Tue, 18 Jul 2017 09:49:06 -0500 +Subject: [PATCH] glamor_egl: Automatically choose a GLES2 context if desktop + GL fails. + +Backport from xserver 1.19.x for Pyro + +GLES2 support has been requested multiple times, and we've had this +code laying around trying to implement it. The GLES2 implementation +is not quite there yet (some pixel transfer failures), but it +shouldn't take much fixing at this point. + +Upstream-Status: Inappropriate + +Reviewed-by: Adam Jackson +Signed-off-by: Eric Anholt +Signed-off-by: Prabhu Sundararaj +--- + glamor/glamor_egl.c | 143 ++++++++++++++++++++++++++-------------------------- + 1 file changed, 71 insertions(+), 72 deletions(-) + +diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c +index 4bde637..d6fd9c5 100644 +--- a/glamor/glamor_egl.c ++++ b/glamor/glamor_egl.c +@@ -73,7 +73,7 @@ struct glamor_egl_screen_private { + #endif + int has_gem; + int gl_context_depth; +- int dri3_capable; ++ + + CloseScreenProcPtr saved_close_screen; + DestroyPixmapProcPtr saved_destroy_pixmap; +@@ -307,7 +307,7 @@ glamor_egl_create_textured_pixmap_from_gbm_bo(PixmapPtr pixmap, + glamor_make_current(glamor_priv); + + image = eglCreateImageKHR(glamor_egl->display, +- glamor_egl->context, ++ EGL_NO_CONTEXT, + EGL_NATIVE_PIXMAP_KHR, bo, NULL); + if (image == EGL_NO_IMAGE_KHR) { + glamor_set_pixmap_type(pixmap, GLAMOR_DRM_ONLY); +@@ -447,6 +447,7 @@ glamor_egl_dri3_fd_name_from_tex(ScreenPtr screen, + glamor_get_name_from_bo(glamor_egl->fd, bo, &fd); + } + else { ++ /*fixed from Xserver 1.19.x*/ + fd = gbm_bo_get_fd(bo); + } + *stride = pixmap->devKind; +@@ -477,9 +478,6 @@ glamor_back_pixmap_from_fd(PixmapPtr pixmap, + + glamor_egl = glamor_egl_get_screen_private(scrn); + +- if (!glamor_egl->dri3_capable) +- return FALSE; +- + if (bpp != 32 || !(depth == 24 || depth == 32) || width == 0 || height == 0) + return FALSE; + +@@ -669,7 +667,7 @@ glamor_egl_screen_init(ScreenPtr screen, struct glamor_context *glamor_ctx) + glamor_ctx->make_current = glamor_egl_make_current; + + #ifdef DRI3 +- if (glamor_egl->dri3_capable) { ++ { + glamor_screen_private *glamor_priv = glamor_get_screen_private(screen); + /* Tell the core that we have the interfaces for import/export + * of pixmaps. +@@ -733,25 +731,8 @@ Bool + glamor_egl_init(ScrnInfoPtr scrn, int fd) + { + struct glamor_egl_screen_private *glamor_egl; +- const char *version; + +- EGLint config_attribs[] = { +-#ifdef GLAMOR_GLES2 +- EGL_CONTEXT_CLIENT_VERSION, 2, +-#endif +- EGL_NONE +- }; +- static const EGLint config_attribs_core[] = { +- EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, +- EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, +- EGL_CONTEXT_MAJOR_VERSION_KHR, +- GLAMOR_GL_CORE_VER_MAJOR, +- EGL_CONTEXT_MINOR_VERSION_KHR, +- GLAMOR_GL_CORE_VER_MINOR, +- EGL_NONE +- }; + +- glamor_identify(0); + glamor_egl = calloc(sizeof(*glamor_egl), 1); + if (glamor_egl == NULL) + return FALSE; +@@ -760,41 +741,26 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd) + + scrn->privates[xf86GlamorEGLPrivateIndex].ptr = glamor_egl; + glamor_egl->fd = fd; +-#ifdef GLAMOR_HAS_GBM ++ + glamor_egl->gbm = gbm_create_device(glamor_egl->fd); + if (glamor_egl->gbm == NULL) { + ErrorF("couldn't get display device\n"); + goto error; + } + +- glamor_egl->display = glamor_egl_get_display(EGL_PLATFORM_GBM_MESA, +- glamor_egl->gbm); ++ glamor_egl->display = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_KHR, glamor_egl->gbm, NULL); + if (!glamor_egl->display) { + xf86DrvMsg(scrn->scrnIndex, X_ERROR, "eglGetDisplay() failed\n"); + goto error; + } +-#else +- glamor_egl->display = eglGetDisplay((EGLNativeDisplayType) (intptr_t) fd); +-#endif + +- glamor_egl->has_gem = glamor_egl_check_has_gem(fd); ++ if (!eglInitialize(glamor_egl->display, NULL, NULL)) { + +- if (!eglInitialize +- (glamor_egl->display, &glamor_egl->major, &glamor_egl->minor)) { + xf86DrvMsg(scrn->scrnIndex, X_ERROR, "eglInitialize() failed\n"); + glamor_egl->display = EGL_NO_DISPLAY; + goto error; + } + +-#ifndef GLAMOR_GLES2 +- eglBindAPI(EGL_OPENGL_API); +-#else +- eglBindAPI(EGL_OPENGL_ES_API); +-#endif +- +- version = eglQueryString(glamor_egl->display, EGL_VERSION); +- xf86Msg(X_INFO, "%s: EGL version %s:\n", glamor_name, version); +- + #define GLAMOR_CHECK_EGL_EXTENSION(EXT) \ + if (!epoxy_has_egl_extension(glamor_egl->display, "EGL_" #EXT)) { \ + ErrorF("EGL_" #EXT " required.\n"); \ +@@ -808,30 +774,66 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd) + goto error; \ + } + +- GLAMOR_CHECK_EGL_EXTENSION(MESA_drm_image); +- GLAMOR_CHECK_EGL_EXTENSION(KHR_gl_renderbuffer_image); +-#ifdef GLAMOR_GLES2 +- GLAMOR_CHECK_EGL_EXTENSIONS(KHR_surfaceless_context, KHR_surfaceless_gles2); +-#else +- GLAMOR_CHECK_EGL_EXTENSIONS(KHR_surfaceless_context, +- KHR_surfaceless_opengl); +-#endif ++ GLAMOR_CHECK_EGL_EXTENSION(KHR_surfaceless_context); ++ ++ if (eglBindAPI(EGL_OPENGL_API)) { ++ static const EGLint config_attribs_core[] = { ++ EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR, ++ EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR, ++ EGL_CONTEXT_MAJOR_VERSION_KHR, ++ GLAMOR_GL_CORE_VER_MAJOR, ++ EGL_CONTEXT_MINOR_VERSION_KHR, ++ GLAMOR_GL_CORE_VER_MINOR, ++ EGL_NONE ++ }; ++ static const EGLint config_attribs[] = { ++ EGL_NONE ++ }; + +-#ifndef GLAMOR_GLES2 +- glamor_egl->context = eglCreateContext(glamor_egl->display, +- NULL, EGL_NO_CONTEXT, +- config_attribs_core); +-#else +- glamor_egl->context = NULL; +-#endif +- if (!glamor_egl->context) { + glamor_egl->context = eglCreateContext(glamor_egl->display, + NULL, EGL_NO_CONTEXT, +- config_attribs); +- if (glamor_egl->context == EGL_NO_CONTEXT) { +- xf86DrvMsg(scrn->scrnIndex, X_ERROR, "Failed to create EGL context\n"); ++ config_attribs_core); ++ ++ ++ if (glamor_egl->context == EGL_NO_CONTEXT) ++ glamor_egl->context = eglCreateContext(glamor_egl->display, ++ NULL, EGL_NO_CONTEXT, ++ config_attribs); ++ } ++ if (glamor_egl->context == EGL_NO_CONTEXT) { ++ static const EGLint context_attribs[] = { ++ EGL_CONTEXT_CLIENT_VERSION, 2, ++ EGL_NONE ++ }; ++ EGLint numconfigs; ++ EGLBoolean ret; ++ EGLConfig eglConfig; ++ static const EGLint config_attribs[] = { ++ EGL_SURFACE_TYPE, EGL_WINDOW_BIT, ++ EGL_RED_SIZE, 1, ++ EGL_GREEN_SIZE, 1, ++ EGL_BLUE_SIZE, 1, ++ EGL_ALPHA_SIZE, 1, ++ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, ++ EGL_NONE ++ }; ++ ++ if (!eglBindAPI(EGL_OPENGL_ES_API)) { ++ xf86DrvMsg(scrn->scrnIndex, X_ERROR, ++ "glamor: Failed to bind either GL or GLES APIs.\n"); + goto error; + } ++ ++ ret = eglChooseConfig(glamor_egl->display, config_attribs, &eglConfig, 1, &numconfigs); ++ ++ glamor_egl->context = eglCreateContext(glamor_egl->display, ++ eglConfig, EGL_NO_CONTEXT, ++ context_attribs); ++ } ++ if (glamor_egl->context == EGL_NO_CONTEXT) { ++ xf86DrvMsg(scrn->scrnIndex, X_ERROR, ++ "glamor: Failed to create GL or GLES2 contexts\n"); ++ goto error; + } + + if (!eglMakeCurrent(glamor_egl->display, +@@ -845,21 +847,18 @@ glamor_egl_init(ScrnInfoPtr scrn, int fd) + * (in case of multiple GPUs using glamor) + */ + lastGLContext = NULL; +-#ifdef GLAMOR_HAS_GBM +- if (epoxy_has_egl_extension(glamor_egl->display, +- "EGL_KHR_gl_texture_2D_image") && +- epoxy_has_gl_extension("GL_OES_EGL_image")) +- glamor_egl->dri3_capable = TRUE; +-#endif ++ ++ if (!epoxy_has_gl_extension("GL_OES_EGL_image")) { ++ xf86DrvMsg(scrn->scrnIndex, X_ERROR, ++ "glamor acceleration requires GL_OES_EGL_image\n"); ++ goto error; ++ } ++ ++ xf86DrvMsg(scrn->scrnIndex, X_INFO, "glamor X acceleration enabled on %s\n", ++ glGetString(GL_RENDERER)); + + glamor_egl->saved_free_screen = scrn->FreeScreen; + scrn->FreeScreen = glamor_egl_free_screen; +-#ifdef GLAMOR_GLES2 +- xf86DrvMsg(scrn->scrnIndex, X_INFO, "Using GLES2.\n"); +- xf86DrvMsg(scrn->scrnIndex, X_WARNING, +- "Glamor is using GLES2 but GLX needs GL. " +- "Indirect GLX may not work correctly.\n"); +-#endif + return TRUE; + + error: +-- +2.7.4 + diff --git a/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend new file mode 100644 index 000000000..c56d27d0d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/xorg-xserver/xserver-xorg_%.bbappend @@ -0,0 +1,11 @@ +# REPLACE meta-nxp-mx8 +FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" + +SRC_URI += "file://0001-glamor-Use-CFLAGS-for-EGL-and-GBM.patch \ + file://0002-glamor_egl-Automatically-choose-a-GLES2-context-if-d.patch" +SRC_URI_remove = "file://0002-configure.ac-Fix-wayland-scanner-and-protocols-locat.patch" + +PACKAGECONFIG_append_mx8 = " glamor" +PACKAGECONFIG_append_imxgpu = " dri3 xshmfence dri glx" + +EXTRA_OECONF_remove = "WAYLAND_PROTOCOLS_SYSROOT_DIR=${RECIPE_SYSROOT}"