From dc4a695bba8f4becb8b821515e16079453ccd135 Mon Sep 17 00:00:00 2001 From: Max Krummenacher Date: Mon, 6 May 2019 20:56:53 +0200 Subject: imx: update to 4.14.78_1.0.0_ga bsp Update the components which NXP forked or provides to the version used in the 4.14.78_1.0.0_ga BSP. Signed-off-by: Max Krummenacher --- .../wayland/wayland-protocols_1.13.imx.bbappend | 6 + .../wayland/weston/0001-make-error-portable.patch | 77 +++++++++ ...ch-Provide-a-default-version-that-doesn-t.patch | 173 +++++++++++++++++++++ ...using-argb8888-as-gbm-default-on-mscale-8.patch | 26 ++++ ...configure-desktop-shell-size-in-weston-co.patch | 28 ++++ ...h-calibrator-Advertise-the-touchscreen-ca.patch | 30 ++++ recipes-graphics/wayland/weston/weston.desktop | 9 ++ recipes-graphics/wayland/weston/weston.png | Bin 0 -> 2383 bytes .../wayland/weston/xwayland.weston-start | 7 + recipes-graphics/wayland/weston_4.0.0.imx.bbappend | 21 +++ 10 files changed, 377 insertions(+) create mode 100644 recipes-graphics/wayland/wayland-protocols_1.13.imx.bbappend create mode 100644 recipes-graphics/wayland/weston/0001-make-error-portable.patch create mode 100644 recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch create mode 100644 recipes-graphics/wayland/weston/0001-weston.ini-using-argb8888-as-gbm-default-on-mscale-8.patch create mode 100644 recipes-graphics/wayland/weston/0002-weston.ini-configure-desktop-shell-size-in-weston-co.patch create mode 100644 recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch create mode 100644 recipes-graphics/wayland/weston/weston.desktop create mode 100644 recipes-graphics/wayland/weston/weston.png create mode 100644 recipes-graphics/wayland/weston/xwayland.weston-start create mode 100644 recipes-graphics/wayland/weston_4.0.0.imx.bbappend (limited to 'recipes-graphics/wayland') diff --git a/recipes-graphics/wayland/wayland-protocols_1.13.imx.bbappend b/recipes-graphics/wayland/wayland-protocols_1.13.imx.bbappend new file mode 100644 index 0000000..7d4199e --- /dev/null +++ b/recipes-graphics/wayland/wayland-protocols_1.13.imx.bbappend @@ -0,0 +1,6 @@ +PV = "1.16.imx" +WAYLAND_PROTOCOLS_SRC ?= "git://source.codeaurora.org/external/imx/wayland-protocols-imx.git;protocol=https" +SRCBRANCH = "wayland-protocols-imx-1.16" +SRC_URI = "${WAYLAND_PROTOCOLS_SRC};branch=${SRCBRANCH} " +SRCREV = "e05c19d9520f0b1289cf0844d6e2f877114f39d5" +S = "${WORKDIR}/git" diff --git a/recipes-graphics/wayland/weston/0001-make-error-portable.patch b/recipes-graphics/wayland/weston/0001-make-error-portable.patch new file mode 100644 index 0000000..dc6fbaa --- /dev/null +++ b/recipes-graphics/wayland/weston/0001-make-error-portable.patch @@ -0,0 +1,77 @@ +From 6ef33e86557c59b31c9b731c0360ec1d404cc801 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Fri, 29 May 2015 20:56:00 -0700 +Subject: [PATCH] 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 libweston/weston-error.h + +diff --git a/configure.ac b/configure.ac +index 9d98e84..8f6b80d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -109,6 +109,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]) + + # check for libdrm as a build-time dependency only +diff --git a/libweston/weston-error.h b/libweston/weston-error.h +new file mode 100644 +index 0000000..2089d02 +--- /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 ++ +diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c +index bf73e0d..9064439 100644 +--- 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/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch new file mode 100644 index 0000000..cbb1c32 --- /dev/null +++ b/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch @@ -0,0 +1,173 @@ +From d5fb8567868866665502106def90017243a968a8 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(-) + +diff --git a/configure.ac b/configure.ac +index 8f6b80d..603fcb3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -494,13 +494,17 @@ AC_ARG_ENABLE(resize-optimization, + 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") +@@ -748,6 +752,7 @@ AC_MSG_RESULT([ + 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} + +diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c +index 9064439..c6abe92 100644 +--- a/libweston/weston-launch.c ++++ b/libweston/weston-launch.c +@@ -51,7 +51,9 @@ + + #include + #include ++#ifdef HAVE_PAM + #include ++#endif + + #ifdef HAVE_SYSTEMD_LOGIN + #include +@@ -101,8 +103,10 @@ drmSetMaster(int drm_fd) + #endif + + struct weston_launch { ++#ifdef HAVE_PAM + struct pam_conv pc; + pam_handle_t *ph; ++#endif + int tty; + int ttynr; + int sock[2]; +@@ -191,6 +195,7 @@ weston_launch_allowed(struct weston_launch *wl) + return false; + } + ++#ifdef HAVE_PAM + static int + pam_conversation_fn(int msg_count, + const struct pam_message **messages, +@@ -231,6 +236,7 @@ setup_pam(struct weston_launch *wl) + + return 0; + } ++#endif + + static int + setup_launcher_socket(struct weston_launch *wl) +@@ -424,6 +430,7 @@ quit(struct weston_launch *wl, int status) + close(wl->signalfd); + close(wl->sock[0]); + ++#ifdef HAVE_PAM + if (wl->new_user) { + err = pam_close_session(wl->ph, 0); + if (err) +@@ -431,6 +438,7 @@ quit(struct weston_launch *wl, int status) + 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)) +@@ -610,6 +618,7 @@ setup_session(struct weston_launch *wl, char **child_argv) + 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) { +@@ -618,6 +627,7 @@ setup_session(struct weston_launch *wl, char **child_argv) + } + free(env); + } ++#endif + + /* + * We open a new session, so it makes sense +@@ -685,8 +695,10 @@ static void + 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"); +@@ -700,7 +712,9 @@ main(int argc, char *argv[]) + 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' }, +@@ -712,9 +726,13 @@ main(int argc, char *argv[]) + 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; +@@ -755,8 +773,10 @@ main(int argc, char *argv[]) + 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/recipes-graphics/wayland/weston/0001-weston.ini-using-argb8888-as-gbm-default-on-mscale-8.patch b/recipes-graphics/wayland/weston/0001-weston.ini-using-argb8888-as-gbm-default-on-mscale-8.patch new file mode 100644 index 0000000..75589d3 --- /dev/null +++ b/recipes-graphics/wayland/weston/0001-weston.ini-using-argb8888-as-gbm-default-on-mscale-8.patch @@ -0,0 +1,26 @@ +From 186ec0c80410b2120b8f31c211cb44a836c84522 Mon Sep 17 00:00:00 2001 +From: Haihua Hu +Date: Wed, 4 Jul 2018 16:05:20 +0800 +Subject: [PATCH] weston.ini: using argb8888 as gbm default on mscale 850D + +mscale 850D video playback need using pixel alpha for graphic layer + +upstream status: imx specific +Signed-off-by: Haihua Hu + +--- + weston.ini.in | 1 + + 1 file changed, 1 insertion(+) + +Index: git/weston.ini.in +=================================================================== +--- git.orig/weston.ini.in ++++ git/weston.ini.in +@@ -2,6 +2,7 @@ + # i.MX: Disable idle timeout + idle-time=0 + #use-g2d=1 ++gbm-format=argb8888 + + [libinput] + touchscreen_calibrator=true diff --git a/recipes-graphics/wayland/weston/0002-weston.ini-configure-desktop-shell-size-in-weston-co.patch b/recipes-graphics/wayland/weston/0002-weston.ini-configure-desktop-shell-size-in-weston-co.patch new file mode 100644 index 0000000..4aa3256 --- /dev/null +++ b/recipes-graphics/wayland/weston/0002-weston.ini-configure-desktop-shell-size-in-weston-co.patch @@ -0,0 +1,28 @@ +From 3012798d7e9c9e624024fc962d749a960289ad8b Mon Sep 17 00:00:00 2001 +From: Haihua Hu +Date: Wed, 11 Jul 2018 17:47:47 +0800 +Subject: [PATCH] weston.ini: configure desktop shell size in weston configure + file + +mscale 850D need set desktop shell to 1080p + +upstream status: imx specific +Signed-off-by: Haihua Hu + +--- + weston.ini.in | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/weston.ini.in b/weston.ini.in +index bd8abe4..077155b 100644 +--- a/weston.ini.in ++++ b/weston.ini.in +@@ -8,6 +8,8 @@ gbm-format=argb8888 + #mode=1920x1080@60 + #transform=90 + ++[shell] ++size=1920x1080 + + #[output] + #name=HDMI-A-2 diff --git a/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch b/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch new file mode 100644 index 0000000..7ea07ed --- /dev/null +++ b/recipes-graphics/wayland/weston/0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch @@ -0,0 +1,30 @@ +From 46843c8681ddafbea6f491b7af4de6529e93f5bd Mon Sep 17 00:00:00 2001 +From: Jun Zhu +Date: Sun, 30 Sep 2018 15:31:26 +0800 +Subject: [PATCH] weston-touch-calibrator: Advertise the touchscreen calibrator + interface to all clients. [YOCIMX-2963] + +Set touchscreen_calibrator to true in the section "libinput" of the configure file + /etc/xdg/weston/weston.ini. +Otherwise, it will report that the new-added interface "weston-touch-calibration" cannot be found. + +Signed-off-by: Jun Zhu + +--- + weston.ini.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/weston.ini.in b/weston.ini.in +index 83dd56e..6e20e11 100644 +--- a/weston.ini.in ++++ b/weston.ini.in +@@ -3,6 +3,9 @@ + idle-time=0 + #use-g2d=1 + ++[libinput] ++touchscreen_calibrator=true ++ + #[output] + #name=HDMI-A-1 + #mode=1920x1080@60 diff --git a/recipes-graphics/wayland/weston/weston.desktop b/recipes-graphics/wayland/weston/weston.desktop new file mode 100644 index 0000000..1086ae8 --- /dev/null +++ b/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/recipes-graphics/wayland/weston/weston.png b/recipes-graphics/wayland/weston/weston.png new file mode 100644 index 0000000..ea8b7e0 Binary files /dev/null and b/recipes-graphics/wayland/weston/weston.png differ diff --git a/recipes-graphics/wayland/weston/xwayland.weston-start b/recipes-graphics/wayland/weston/xwayland.weston-start new file mode 100644 index 0000000..b483c97 --- /dev/null +++ b/recipes-graphics/wayland/weston/xwayland.weston-start @@ -0,0 +1,7 @@ +#!/bin/sh + +if type Xwayland >/dev/null 2>/dev/null; then + mkdir -p /tmp/.X11-unix + + add_weston_argument "--modules=xwayland.so" +fi diff --git a/recipes-graphics/wayland/weston_4.0.0.imx.bbappend b/recipes-graphics/wayland/weston_4.0.0.imx.bbappend new file mode 100644 index 0000000..7c1959e --- /dev/null +++ b/recipes-graphics/wayland/weston_4.0.0.imx.bbappend @@ -0,0 +1,21 @@ +PV = "5.0.0.imx" +LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ + file://libweston/compositor.c;endline=26;md5=f47553ae598090444273db00adfb5b66" + +FILESEXTRAPATHS_prepend := "${THISDIR}/weston:" +SRCBRANCH = "weston-imx-5.0" +SRC_URI = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} \ + 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://0003-weston-touch-calibrator-Advertise-the-touchscreen-ca.patch \ + file://weston.ini \ +" + +# Use argb8888 as gbm-format for i.MX8MQ only +SRC_URI_append_mx8mq = " file://0001-weston.ini-using-argb8888-as-gbm-default-on-mscale-8.patch \ + file://0002-weston.ini-configure-desktop-shell-size-in-weston-co.patch \ +" +SRCREV = "615567cbd9b742f6fcd534f3b1673bcbf1647c02" -- cgit v1.2.3