]> code.ossystems Code Review - meta-freescale.git/commitdiff
weston: update to 9.0.0.imx
authorMax Krummenacher <max.krummenacher@toradex.com>
Thu, 28 Jan 2021 12:35:03 +0000 (13:35 +0100)
committerOtavio Salvador <otavio@ossystems.com.br>
Mon, 1 Feb 2021 14:24:43 +0000 (11:24 -0300)
NXP release imx_5.4.70_2.3.0.

0001-weston-launch-Provide-a-default-version-that-doesn-t.patch update taken
from NXP BSP.

Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch [new file with mode: 0644]
recipes-graphics/wayland/weston_9.0.0.imx.bb [moved from recipes-graphics/wayland/weston_8.0.0.imx.bb with 82% similarity]

index 62b864c134c97063f2d2ccdb59207a2fec3c0a9a..3279a728ccbc8c5b700bf1ffc771264e2e985a0a 100644 (file)
@@ -1,7 +1,8 @@
-From 5f2d71998eb77068cbaee2d468cbb296a42d5739 Mon Sep 17 00:00:00 2001
+From a1548c742bf2dedbb47282d8a00407b60bbab669 Mon Sep 17 00:00:00 2001
 From: Tom Hochstein <tom.hochstein@nxp.com>
 Date: Wed, 22 Feb 2017 15:53:30 +0200
 Subject: [PATCH] weston-launch: Provide a default version that doesn't require
+
  PAM
 
 weston-launch requires PAM for starting weston as a non-root user.
@@ -57,7 +58,7 @@ index 08d23ec..cb9fd3f 100644
                install: true
        )
 diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
-index 8a711b4..54c567a 100644
+index 521cb2c..2d42d33 100644
 --- a/libweston/weston-launch.c
 +++ b/libweston/weston-launch.c
 @@ -51,7 +51,9 @@
@@ -97,7 +98,7 @@ index 8a711b4..54c567a 100644
  
  static int
  setup_launcher_socket(struct weston_launch *wl)
-@@ -431,6 +437,7 @@ quit(struct weston_launch *wl, int status)
+@@ -466,6 +472,7 @@ quit(struct weston_launch *wl, int status)
        close(wl->signalfd);
        close(wl->sock[0]);
  
@@ -105,15 +106,15 @@ index 8a711b4..54c567a 100644
        if (wl->new_user) {
                err = pam_close_session(wl->ph, 0);
                if (err)
-@@ -438,6 +445,7 @@ quit(struct weston_launch *wl, int status)
+@@ -473,6 +480,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))
-@@ -666,6 +674,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
+       /*
+        * Get a fresh handle to the tty as the previous one is in
+@@ -710,6 +718,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
        setenv("HOME", wl->pw->pw_dir, 1);
        setenv("SHELL", wl->pw->pw_shell, 1);
  
@@ -121,7 +122,7 @@ index 8a711b4..54c567a 100644
        env = pam_getenvlist(wl->ph);
        if (env) {
                for (i = 0; env[i]; ++i) {
-@@ -674,6 +683,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
+@@ -718,6 +727,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
                }
                free(env);
        }
@@ -129,7 +130,7 @@ index 8a711b4..54c567a 100644
  
        /*
         * We open a new session, so it makes sense
-@@ -745,8 +755,10 @@ static void
+@@ -789,8 +799,10 @@ static void
  help(const char *name)
  {
        fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
@@ -140,7 +141,7 @@ index 8a711b4..54c567a 100644
        fprintf(stderr, "  -t, --tty       Start session on alternative tty,\n"
                        "                  e.g. -t /dev/tty4, requires -u option.\n");
        fprintf(stderr, "  -v, --verbose   Be verbose\n");
-@@ -760,7 +772,9 @@ main(int argc, char *argv[])
+@@ -804,7 +816,9 @@ main(int argc, char *argv[])
        int i, c;
        char *tty = NULL;
        struct option opts[] = {
@@ -150,7 +151,7 @@ index 8a711b4..54c567a 100644
                { "tty",     required_argument, NULL, 't' },
                { "verbose", no_argument,       NULL, 'v' },
                { "help",    no_argument,       NULL, 'h' },
-@@ -772,11 +786,16 @@ main(int argc, char *argv[])
+@@ -816,11 +830,16 @@ main(int argc, char *argv[])
        while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) {
                switch (c) {
                case 'u':
@@ -167,7 +168,7 @@ index 8a711b4..54c567a 100644
                        break;
                case 't':
                        tty = optarg;
-@@ -828,8 +847,10 @@ main(int argc, char *argv[])
+@@ -872,8 +891,10 @@ main(int argc, char *argv[])
        if (setup_tty(&wl, tty) < 0)
                exit(EXIT_FAILURE);
  
@@ -179,7 +180,7 @@ index 8a711b4..54c567a 100644
        if (setup_launcher_socket(&wl) < 0)
                exit(EXIT_FAILURE);
 diff --git a/meson_options.txt b/meson_options.txt
-index c862ecc..73ef2c3 100644
+index 239bd2d..99e4ec3 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
 @@ -73,6 +73,13 @@ option(
diff --git a/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch b/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch
new file mode 100644 (file)
index 0000000..a4444e5
--- /dev/null
@@ -0,0 +1,23 @@
+Fix atomic modesetting with musl
+
+atomic modesetting seems to fail with drm weston backend and this patch fixes
+it, below errors are seen before weston exits
+
+atomic: couldn't commit new state: Invalid argument
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/issues/158]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/libweston/backend-drm/kms.c
++++ b/libweston/backend-drm/kms.c
+@@ -1168,8 +1168,8 @@ drm_pending_state_apply_atomic(struct dr
+               wl_list_for_each(plane, &b->plane_list, link) {
+                       drm_debug(b, "\t\t[atomic] starting with plane %lu disabled\n",
+                                 (unsigned long) plane->plane_id);
+-                      plane_add_prop(req, plane, WDRM_PLANE_CRTC_ID, 0);
+-                      plane_add_prop(req, plane, WDRM_PLANE_FB_ID, 0);
++                      //plane_add_prop(req, plane, WDRM_PLANE_CRTC_ID, 0);
++                      //plane_add_prop(req, plane, WDRM_PLANE_FB_ID, 0);
+               }
+               flags |= DRM_MODE_ATOMIC_ALLOW_MODESET;
similarity index 82%
rename from recipes-graphics/wayland/weston_8.0.0.imx.bb
rename to recipes-graphics/wayland/weston_9.0.0.imx.bb
index ba2e9f939992edb612e10487688e29fa4283bed3..825a1b1c38f17f1e620c8670b6281ba35c55b883 100644 (file)
@@ -3,7 +3,7 @@
 # recipe. The second section customizes the recipe for i.MX.
 
 ########### OE-core copy ##################
-# Upstream hash: 9b1d30810eeecb46b977c8eed68be69aef891312
+# Upstream hash: 0a882490fe75915c7a119f3498df6750be25f8e0
 
 SUMMARY = "Weston, a Wayland compositor"
 DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
@@ -17,19 +17,25 @@ SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
            file://weston.desktop \
            file://xwayland.weston-start \
            file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
+           file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \
 "
-SRC_URI[md5sum] = "53e4810d852df0601d01fd986a5b22b3"
-SRC_URI[sha256sum] = "7518b49b2eaa1c3091f24671bdcc124fd49fc8f1af51161927afa4329c027848"
+
+SRC_URI_append_libc-musl = " file://dont-use-plane-add-prop.patch "
+
+SRC_URI[sha256sum] = "5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe"
 
 UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
 
 inherit meson pkgconfig useradd features_check
 # depends on virtual/egl
-REQUIRED_DISTRO_FEATURES = "opengl"
+# weston-init requires pam enabled if started via systemd
+REQUIRED_DISTRO_FEATURES = "opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}"
 
-DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg"
+DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
 DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
 
+LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}"
+
 WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
 
 EXTRA_OEMESON += "-Dbackend-default=auto -Dbackend-rdp=false -Dpipewire=false"
@@ -38,7 +44,13 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
                    ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \
                    ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
-                   launch"
+                   launch \
+                   image-jpeg \
+                   screenshare \
+                   shell-desktop \
+                   shell-fullscreen \
+                   shell-ivi"
+
 #
 # Compositor choices
 #
@@ -65,15 +77,25 @@ PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp"
 # Weston with systemd-login support
 PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus"
 # Weston with Xwayland support (requires X11 and Wayland)
-PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcursor"
+PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false"
 # colord CMS support
 PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord"
 # Clients support
 PACKAGECONFIG[clients] = "-Dsimple-clients=all -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
 # Virtual remote output with GStreamer on DRM backend
-PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer-1.0"
+PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0"
 # Weston with PAM support
 PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam"
+# Weston with screen-share support
+PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false"
+# Traditional desktop shell
+PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false"
+# Fullscreen shell
+PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false"
+# In-Vehicle Infotainment (IVI) shell
+PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
+# JPEG image loading support
+PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
 
 do_install_append() {
        # Weston doesn't need the .la files to load modules, so wipe them
@@ -126,14 +148,14 @@ SUMMARY = "Weston, a Wayland compositor, i.MX fork"
 
 DEFAULT_PREFERENCE = "-1"
 
-SRCBRANCH = "weston-imx-8.0"
+SRCBRANCH = "weston-imx-9.0"
 SRC_URI = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} \
            file://weston.png \
            file://weston.desktop \
            file://xwayland.weston-start \
            file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
 "
-SRCREV = "f13d40a3a0504a00baf2f28abe83b65dab8b2e10"
+SRCREV = "a1823f20a1d6e24d2f56e98c5576eda34a94f567"
 S = "${WORKDIR}/git"
 
 # Disable OpenGL for parts with GPU support for 2D but not 3D
@@ -155,6 +177,7 @@ PACKAGECONFIG_append_imxgpu2d = " imxg2d"
 # Clients support
 SIMPLE_CLIENTS = "all"
 SIMPLE_CLIENTS_imxfbdev = "damage,im,egl,shm,touch,dmabuf-v4l"
+PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcursor"
 PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLE_CLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
 # Weston with i.MX GPU support
 PACKAGECONFIG[imxgpu] = "-Dimxgpu=true,-Dimxgpu=false,virtual/egl"