weston: Upgrade 9.0.0.imx -> 10.0.0.imx

Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
This commit is contained in:
Tom Hochstein 2022-08-25 16:26:16 -05:00
parent 576292c800
commit 96f0ad1126
8 changed files with 51 additions and 424 deletions

View File

@ -471,7 +471,7 @@ PREFERRED_PROVIDER_opencl-headers:imxgpu ?= "imx-gpu-viv"
PREFERRED_PROVIDER_opencl-icd-loader:imxgpu ?= "imx-gpu-viv"
PREFERRED_PROVIDER_virtual/opencl-icd:imxgpu ?= "imx-gpu-viv"
PREFERRED_VERSION_weston:imx-nxp-bsp ??= "9.0.0.imx"
PREFERRED_VERSION_weston:imx-nxp-bsp ??= "10.0.0.imx"
PREFERRED_VERSION_weston:imx-mainline-bsp = ""
PREFERRED_VERSION_wayland-protocols:mx6-nxp-bsp ??= "1.25.imx"

View File

@ -0,0 +1,8 @@
# distro features required by weston recipes
inherit features_check
# requires pam enabled if started via systemd
#
REQUIRED_DISTRO_FEATURES = "wayland opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}"

View File

@ -1,4 +1,4 @@
From be066d9841a9cd5e9cc5ef3c457bd1e33b2a5fae Mon Sep 17 00:00:00 2001
From 77eba6f6b04ff21b77c41500657495b4fd12a5f6 Mon Sep 17 00:00:00 2001
From: Max Krummenacher <max.krummenacher@toradex.com>
Date: Mon, 11 Jul 2022 19:38:19 +0000
Subject: [PATCH] Revert "protocol: no found wayland-scanner with Yocto
@ -26,7 +26,7 @@ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/protocol/meson.build b/protocol/meson.build
index dc90ec2a..8290ad44 100644
index bdd322ac..e50b23bb 100644
--- a/protocol/meson.build
+++ b/protocol/meson.build
@@ -1,4 +1,4 @@
@ -34,7 +34,7 @@ index dc90ec2a..8290ad44 100644
+dep_scanner = dependency('wayland-scanner', native: true)
prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner'))
dep_wp = dependency('wayland-protocols', version: '>= 1.18')
dep_wp = dependency('wayland-protocols', version: '>= 1.24')
--
2.20.1
2.17.1

View File

@ -1,102 +0,0 @@
From b719011b7c015e2d6f0108c9d0709b98d21d6a89 Mon Sep 17 00:00:00 2001
From: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
Date: Mon, 21 Mar 2022 12:37:18 +0100
Subject: [PATCH] g2d-renderer: Add vsync to cloned displays.
When using g2d clone mode allocates additional surfaces according to
FB_MULTI_BUFFER for each cloned display. The g2d blit from the main screen
to the cloned displays is done using inactive surface. The FBIOPAN_DISPLAY
ioctl to the surface is done afterwards.
Signed-off-by: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
---
libweston/renderer-g2d/g2d-renderer.c | 33 +++++++++++++++++++++------
1 file changed, 26 insertions(+), 7 deletions(-)
diff --git a/libweston/renderer-g2d/g2d-renderer.c b/libweston/renderer-g2d/g2d-renderer.c
index 34a077b7..3e6395d6 100644
--- a/libweston/renderer-g2d/g2d-renderer.c
+++ b/libweston/renderer-g2d/g2d-renderer.c
@@ -525,6 +525,7 @@ g2d_blit_surface(void *handle, struct g2d_surfaceEx * srcG2dSurface, struct g2d_
static void
g2d_flip_surface(struct weston_output *output)
{
+ int i;
struct g2d_output_state *go = get_output_state(output);
go->fb_info.varinfo.yoffset = go->activebuffer * go->fb_info.y_resolution;
@@ -532,6 +533,16 @@ g2d_flip_surface(struct weston_output *output)
{
weston_log("FBIOPAN_DISPLAY Failed\n");
}
+
+ for (i = 0; i < go->clone_display_num; i++)
+ {
+ go->mirror_fb_info[i].varinfo.yoffset = go->activebuffer * go->mirror_fb_info[i].y_resolution;
+ if(ioctl(go->mirror_fb_info[i].fb_fd, FBIOPAN_DISPLAY, &(go->mirror_fb_info[i].varinfo)) < 0)
+ {
+ weston_log("FBIOPAN_DISPLAY clone %d Failed\n", i);
+ }
+ }
+
go->activebuffer = (go->activebuffer + 1) % go->nNumBuffers;
}
@@ -571,17 +582,18 @@ copy_to_framebuffer(struct weston_output *output, pixman_region32_t* output_dama
int i = 0;
for(i = 0; i < go->clone_display_num; i++)
{
+ int idx = i * go->nNumBuffers + go->activebuffer;
g2dRECT srcRect = {0, 0, go->renderSurf[go->activebuffer].base.width, go->renderSurf[go->activebuffer].base.height};
- g2dRECT dstrect = {0, 0, go->mirrorSurf[i].base.width, go->mirrorSurf[i].base.height};
+ g2dRECT dstrect = {0, 0, go->mirrorSurf[idx].base.width, go->mirrorSurf[idx].base.height};
if(go->directBlit || go->nNumBuffers > 1)
{
g2d_blit_surface(gr->handle, &go->renderSurf[go->activebuffer],
- &go->mirrorSurf[i], &srcRect, &dstrect);
+ &go->mirrorSurf[idx], &srcRect, &dstrect);
}
else
{
g2d_blit_surface(gr->handle, &go->offscreenSurface,
- &go->mirrorSurf[i], &srcRect, &dstrect);
+ &go->mirrorSurf[idx], &srcRect, &dstrect);
}
}
}
@@ -2113,6 +2125,7 @@ g2d_fbdev_renderer_output_create(struct weston_output *output,
int clone_display_num = 0;
int count = 0;
int k=0, dispCount = 0;
+ int offset = 0;
char displays[5][32];
weston_log("g2d_renderer_output_create device=%s\n", device);
count = strlen(device);
@@ -2166,7 +2179,7 @@ g2d_fbdev_renderer_output_create(struct weston_output *output,
if(go->clone_display_num)
{
- go->mirrorSurf = zalloc(sizeof(struct g2d_surfaceEx) * clone_display_num);
+ go->mirrorSurf = zalloc(sizeof(struct g2d_surfaceEx) * clone_display_num * go->nNumBuffers);
go->mirror_fb_info = zalloc(sizeof(struct fb_screeninfo) * clone_display_num);
if(go->mirrorSurf == NULL || go->mirror_fb_info == NULL)
return -1;
@@ -2178,9 +2191,15 @@ g2d_fbdev_renderer_output_create(struct weston_output *output,
weston_log("Open frame buffer failed.\n");
return -1;
}
- get_G2dSurface_from_screeninfo(&go->mirror_fb_info[i], &go->mirrorSurf[i]);
- go->mirrorSurf[i].base.planes[0] = go->mirror_fb_info[i].physical;
- g2d_clear(gr->handle, &go->mirrorSurf[i].base);
+
+ offset = go->mirror_fb_info[i].stride_bytes * go->mirror_fb_info[i].y_resolution;
+ for(k = 0; k < go->nNumBuffers; k++)
+ {
+ int idx = i * go->nNumBuffers + k;
+ get_G2dSurface_from_screeninfo(&go->mirror_fb_info[i], &go->mirrorSurf[idx]);
+ go->mirrorSurf[idx].base.planes[0] = go->mirror_fb_info[i].physical + (offset * k);
+ g2d_clear(gr->handle, &go->mirrorSurf[idx].base);
+ }
}
}
g2d_finish(gr->handle);

View File

@ -1,52 +0,0 @@
From 4be82f75a47bd456452ab713d7d57a75d844f42a Mon Sep 17 00:00:00 2001
From: Marius Vlad <marius.vlad@collabora.com>
Date: Thu, 1 Apr 2021 00:12:00 +0300
Subject: [PATCH] libweston/backend-drm: Re-order gbm destruction at
DRM-backend tear down
Tearing down the drm-backend when there are no input devices, would call
for the gbm device destruction before compositor shutdown. The latter
would call into the renderer detroy function and assume that the
EGLDisplay, which was created using the before-mentioned gbm device, is
still available. This patch re-orders the gbm destruction after the
compositor shutdown when no one would make use of it.
Fixes: #314
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Suggested-by: Daniel Stone <daniel.stone@collabora.com>
Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/weston/-/commit/d171c7b3ba346c4d0bd6494f45ebf0be3c3cc5fb]
---
libweston/backend-drm/drm.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c
index 9d3b5dcc..67834d3e 100644
--- a/libweston/backend-drm/drm.c
+++ b/libweston/backend-drm/drm.c
@@ -3402,10 +3402,6 @@ err_drm_source:
wl_event_source_remove(b->drm_source);
err_udev_input:
udev_input_destroy(&b->input);
-#ifdef BUILD_DRM_GBM
- if (b->gbm)
- gbm_device_destroy(b->gbm);
-#endif
destroy_sprites(b);
err_udev_dev:
udev_device_unref(drm_device);
@@ -3415,6 +3411,10 @@ err_launcher:
weston_launcher_destroy(compositor->launcher);
err_compositor:
weston_compositor_shutdown(compositor);
+#ifdef BUILD_DRM_GBM
+ if (b->gbm)
+ gbm_device_destroy(b->gbm);
+#endif
free(b);
return NULL;
}
--
2.17.1

View File

@ -1,32 +0,0 @@
From a2ba4714a6872e547621d29d9ddcb0f374b88cf6 Mon Sep 17 00:00:00 2001
From: Chen Qi <Qi.Chen@windriver.com>
Date: Tue, 20 Apr 2021 20:42:18 -0700
Subject: [PATCH] meson.build: fix incorrect header
The wayland.c actually include 'xdg-shell-client-protocol.h' instead of
the server one, so fix it. Otherwise, it's possible to get build failure
due to race condition.
Upstream-Status: Pending
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
libweston/backend-wayland/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libweston/backend-wayland/meson.build b/libweston/backend-wayland/meson.build
index 7e82513..29270b5 100644
--- a/libweston/backend-wayland/meson.build
+++ b/libweston/backend-wayland/meson.build
@@ -10,7 +10,7 @@ srcs_wlwl = [
fullscreen_shell_unstable_v1_protocol_c,
presentation_time_protocol_c,
presentation_time_server_protocol_h,
- xdg_shell_server_protocol_h,
+ xdg_shell_client_protocol_h,
xdg_shell_protocol_c,
]
--
2.30.2

View File

@ -1,199 +0,0 @@
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.
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: Denied [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/725]
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Ming Liu <ming.liu@toradex.com>
---
libweston/meson.build | 16 ++++++++++++----
libweston/weston-launch.c | 21 +++++++++++++++++++++
meson_options.txt | 7 +++++++
3 files changed, 40 insertions(+), 4 deletions(-)
diff --git a/libweston/meson.build b/libweston/meson.build
index 08d23ec..cb9fd3f 100644
--- a/libweston/meson.build
+++ b/libweston/meson.build
@@ -216,16 +216,24 @@ dep_vertex_clipping = declare_dependency(
)
if get_option('weston-launch')
- dep_pam = cc.find_library('pam')
+ deps_weston_launch = [systemd_dep, dep_libdrm]
- if not cc.has_function('pam_open_session', dependencies: dep_pam)
- error('pam_open_session not found for weston-launch')
+ if get_option('pam')
+ dep_pam = cc.find_library('pam')
+ if not cc.has_function('pam_open_session', dependencies: dep_pam)
+ error('pam_open_session not found for weston-launch')
+ endif
+
+ if dep_pam.found()
+ deps_weston_launch += dep_pam
+ config_h.set('HAVE_PAM', '1')
+ endif
endif
executable(
'weston-launch',
'weston-launch.c',
- dependencies: [dep_pam, systemd_dep, dep_libdrm],
+ dependencies: deps_weston_launch,
include_directories: common_inc,
install: true
)
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
index 521cb2c..2d42d33 100644
--- a/libweston/weston-launch.c
+++ b/libweston/weston-launch.c
@@ -51,7 +51,9 @@
#include <pwd.h>
#include <grp.h>
+#ifdef HAVE_PAM
#include <security/pam_appl.h>
+#endif
#ifdef HAVE_SYSTEMD_LOGIN
#include <systemd/sd-login.h>
@@ -100,8 +102,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];
@@ -192,6 +196,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,
@@ -232,6 +237,7 @@ setup_pam(struct weston_launch *wl)
return 0;
}
+#endif
static int
setup_launcher_socket(struct weston_launch *wl)
@@ -466,6 +472,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)
@@ -473,6 +480,7 @@ quit(struct weston_launch *wl, int status)
err, pam_strerror(wl->ph, err));
pam_end(wl->ph, err);
}
+#endif
/*
* 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);
+#ifdef HAVE_PAM
env = pam_getenvlist(wl->ph);
if (env) {
for (i = 0; env[i]; ++i) {
@@ -718,6 +727,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
}
free(env);
}
+#endif
/*
* We open a new session, so it makes sense
@@ -789,8 +799,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");
@@ -804,7 +816,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' },
@@ -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':
+#ifdef HAVE_PAM
wl.new_user = optarg;
if (getuid() != 0) {
fprintf(stderr, "weston: Permission denied. -u allowed for root only\n");
exit(EXIT_FAILURE);
}
+#else
+ fprintf(stderr, "weston: -u is unsupported in this weston-launch build\n");
+ exit(EXIT_FAILURE);
+#endif
break;
case 't':
tty = optarg;
@@ -872,8 +891,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/meson_options.txt b/meson_options.txt
index 239bd2d..99e4ec3 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -73,6 +73,13 @@ option(
)
option(
+ 'pam',
+ type: 'boolean',
+ value: true,
+ description: 'Define if PAM is available'
+)
+
+option(
'xwayland',
type: 'boolean',
value: true,

View File

@ -3,37 +3,34 @@
# recipe. The second section customizes the recipe for i.MX.
########### OE-core copy ##################
# Upstream hash: c8aa0222ce2be647911114aaebcbb0d55d7caf87
# Upstream hash: 400aae43d08f0b9f787ac0d21cb3c97058d76748
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=27;md5=6c53bbbd99273f4f7c4affa855c33c0a"
file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \
"
SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://weston.png \
file://weston.desktop \
file://xwayland.weston-start \
file://systemd-notify.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 \
file://0001-meson.build-fix-incorrect-header.patch \
file://0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch \
file://0001-g2d-renderer-Add-vsync-to-cloned-displays.patch \
"
"
SRC_URI:append:libc-musl = " file://dont-use-plane-add-prop.patch "
SRC_URI[sha256sum] = "5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe"
SRC_URI[sha256sum] = "5c23964112b90238bed39e5dd1e41cd71a79398813cdc3bbb15a9fdc94e547ae"
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
inherit meson pkgconfig useradd features_check
inherit meson pkgconfig useradd
# depends on virtual/egl
# weston-init requires pam enabled if started via systemd
REQUIRED_DISTRO_FEATURES = "opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}"
#
require ${THISDIR}/required-distro-features.inc
DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
@ -42,19 +39,22 @@ LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '',
WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
EXTRA_OEMESON += "-Dbackend-default=auto -Dpipewire=false"
EXTRA_OEMESON += "-Dpipewire=false"
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl clients', '', d)} \
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \
${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
launch \
${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \
image-jpeg \
screenshare \
shell-desktop \
shell-fullscreen \
shell-ivi"
# Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all'
SIMPLECLIENTS ?= "all"
#
# Compositor choices
#
@ -67,11 +67,11 @@ PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libx
# Headless Weston
PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false"
# Weston on framebuffer
PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev"
PACKAGECONFIG[fbdev] = "-Ddeprecated-backend-fbdev=true,-Ddeprecated-backend-fbdev=false,udev mtdev"
# Weston on RDP
PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp"
# weston-launch
PACKAGECONFIG[launch] = "-Dweston-launch=true,-Dweston-launch=false,drm"
PACKAGECONFIG[launch] = "-Ddeprecated-weston-launch=true,-Ddeprecated-weston-launch=false,drm"
# VA-API desktop recorder
PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva"
# Weston with EGL support
@ -87,11 +87,9 @@ 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"
PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
# Virtual remote output with GStreamer on DRM backend
PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
# 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
@ -102,6 +100,8 @@ PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=fa
PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
# JPEG image loading support
PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
# support libseat based launch
PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd"
do_install:append() {
# Weston doesn't need the .la files to load modules, so wipe them
@ -158,14 +158,12 @@ SUMMARY = "Weston, a Wayland compositor, i.MX fork"
DEFAULT_PREFERENCE = "-1"
SRCBRANCH = "weston-imx-9.0"
SRC_URI:remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \
"
SRC_URI:prepend = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} \
file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch \
"
SRCREV = "7859a762617682bd804e210ad3bda6bdcd3ea24a"
SRC_URI:remove = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
SRC_URI:prepend = "git://source.codeaurora.org/external/imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} "
SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch"
SRCBRANCH = "weston-imx-10.0"
SRCREV = "c8c6e3106b03441db1037afa995f95fcb2f9f17d"
S = "${WORKDIR}/git"
# Disable OpenGL for parts with GPU support for 2D but not 3D
@ -177,18 +175,19 @@ PACKAGECONFIG_OPENGL:imxgpu2d = ""
PACKAGECONFIG_OPENGL:imxgpu3d = "opengl"
PACKAGECONFIG:remove = "wayland x11"
PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}"
PACKAGECONFIG:append = " \
rdp \
${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}"
PACKAGECONFIG:remove:imxfbdev = "kms"
PACKAGECONFIG:append:imxfbdev = " fbdev clients"
PACKAGECONFIG:append:imxgpu = " imxgpu"
PACKAGECONFIG:append:imxgpu2d = " imxg2d"
# Clients support
SIMPLE_CLIENTS = "all"
SIMPLE_CLIENTS:imxfbdev = "damage,im,egl,shm,touch,dmabuf-v4l"
SIMPLECLIENTS:imxfbdev = "damage,im,egl,shm,touch,dmabuf-v4l"
# Override
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"
# Weston with i.MX G2D renderer
@ -196,6 +195,11 @@ PACKAGECONFIG[imxg2d] = "-Drenderer-g2d=true,-Drenderer-g2d=false,virtual/libg2d
# Weston with OpenGL support
PACKAGECONFIG[opengl] = "-Dopengl=true,-Dopengl=false"
PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev"
EXTRA_OEMESON:append:imxfbdev = " -Dbackend-default=fbdev"
EXTRA_OEMESON += "-Ddeprecated-wl-shell=true"
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)"