diff options
14 files changed, 530 insertions, 123 deletions
diff --git a/meta-xilinx-core/recipes-graphics/wayland/files/0001-libweston-GL_EXT_unpack_subimage-not-supported-for-G.patch b/meta-xilinx-core/recipes-graphics/wayland/files/0001-libweston-GL_EXT_unpack_subimage-not-supported-for-G.patch deleted file mode 100644 index e2e7dd95..00000000 --- a/meta-xilinx-core/recipes-graphics/wayland/files/0001-libweston-GL_EXT_unpack_subimage-not-supported-for-G.patch +++ /dev/null | |||
| @@ -1,33 +0,0 @@ | |||
| 1 | From 354bbf9657385519dceeff6a890a71f9d53e6a8f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Parth Gajjar <parth.gajjar@amd.com> | ||
| 3 | Date: Tue, 17 Jan 2023 02:04:32 -0800 | ||
| 4 | Subject: [PATCH] libweston: GL_EXT_unpack_subimage not supported for GLES2.0 | ||
| 5 | |||
| 6 | Removing GL_EXT_unpack_subimage as not supported by GLES2.0 | ||
| 7 | |||
| 8 | Signed-off-by: Parth Gajjar <parth.gajjar@amd.com> | ||
| 9 | --- | ||
| 10 | libweston/renderer-gl/gl-renderer.c | 2 ++ | ||
| 11 | 1 file changed, 2 insertions(+) | ||
| 12 | |||
| 13 | diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c | ||
| 14 | index 613ddf4..046a26f 100644 | ||
| 15 | --- a/libweston/renderer-gl/gl-renderer.c | ||
| 16 | +++ b/libweston/renderer-gl/gl-renderer.c | ||
| 17 | @@ -3941,11 +3941,13 @@ gl_renderer_setup(struct weston_compositor *ec, EGLSurface egl_surface) | ||
| 18 | else | ||
| 19 | ec->read_format = PIXMAN_a8b8g8r8; | ||
| 20 | |||
| 21 | +#if 0 | ||
| 22 | if (gr->gl_version < gr_gl_version(3, 0) && | ||
| 23 | !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) { | ||
| 24 | weston_log("GL_EXT_unpack_subimage not available.\n"); | ||
| 25 | return -1; | ||
| 26 | } | ||
| 27 | +#endif | ||
| 28 | |||
| 29 | if (gr->gl_version >= gr_gl_version(3, 0) || | ||
| 30 | weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV")) | ||
| 31 | -- | ||
| 32 | 2.34.1 | ||
| 33 | |||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/files/0002-libmali-does-not-support-gles3.patch b/meta-xilinx-core/recipes-graphics/wayland/files/0002-libmali-does-not-support-gles3.patch deleted file mode 100644 index d4dadc7c..00000000 --- a/meta-xilinx-core/recipes-graphics/wayland/files/0002-libmali-does-not-support-gles3.patch +++ /dev/null | |||
| @@ -1,77 +0,0 @@ | |||
| 1 | libmali does not support libgles3 | ||
| 2 | |||
| 3 | Build in compatible ifdefs where necessary to workaround slight differences | ||
| 4 | between GLES2 (mali) and GLES3 (mesa) that Weston is expecting. | ||
| 5 | |||
| 6 | Signed-off-by: Mark Hatle <mark.hatle@amd.com> | ||
| 7 | |||
| 8 | diff -urN a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c | ||
| 9 | --- a/libweston/renderer-gl/gl-renderer.c 2022-07-26 03:22:25.000000000 -0700 | ||
| 10 | +++ b/libweston/renderer-gl/gl-renderer.c 2022-10-26 16:25:13.497247422 -0700 | ||
| 11 | @@ -29,7 +29,7 @@ | ||
| 12 | |||
| 13 | #include <GLES2/gl2.h> | ||
| 14 | #include <GLES2/gl2ext.h> | ||
| 15 | -#include <GLES3/gl3.h> | ||
| 16 | +/*#include <GLES3/gl3.h>*/ | ||
| 17 | |||
| 18 | #include <stdbool.h> | ||
| 19 | #include <stdint.h> | ||
| 20 | @@ -1822,7 +1822,13 @@ | ||
| 21 | return GL_RED_EXT; | ||
| 22 | case GL_RG8_EXT: | ||
| 23 | return GL_RG_EXT; | ||
| 24 | +#ifndef GL_RGBA16F | ||
| 25 | +#define GL_RGBA16F GL_RGBA16F_EXT | ||
| 26 | +#endif | ||
| 27 | case GL_RGBA16F: | ||
| 28 | +#ifndef GL_RGB10_A2 | ||
| 29 | +#define GL_RGB10_A2 GL_RGB10_A2_EXT | ||
| 30 | +#endif | ||
| 31 | case GL_RGB10_A2: | ||
| 32 | return GL_RGBA; | ||
| 33 | default: | ||
| 34 | @@ -2023,6 +2029,9 @@ | ||
| 35 | gs->shader_variant = SHADER_VARIANT_RGBA; | ||
| 36 | pitch = wl_shm_buffer_get_stride(shm_buffer) / 8; | ||
| 37 | gl_format[0] = GL_RGBA16F; | ||
| 38 | +#ifndef GL_HALF_FLOAT | ||
| 39 | +#define GL_HALF_FLOAT GL_HALF_FLOAT_OES | ||
| 40 | +#endif | ||
| 41 | gl_pixel_type = GL_HALF_FLOAT; | ||
| 42 | es->is_opaque = false; | ||
| 43 | break; | ||
| 44 | diff -urN a/libweston/renderer-gl/gl-shader-config-color-transformation.c b/libweston/renderer-gl/gl-shader-config-color-transformation.c | ||
| 45 | --- a/libweston/renderer-gl/gl-shader-config-color-transformation.c 2022-07-26 03:22:25.000000000 -0700 | ||
| 46 | +++ b/libweston/renderer-gl/gl-shader-config-color-transformation.c 2022-07-26 03:22:25.000000000 -0700 | ||
| 47 | @@ -25,7 +25,8 @@ | ||
| 48 | |||
| 49 | #include "config.h" | ||
| 50 | |||
| 51 | -#include <GLES3/gl3.h> | ||
| 52 | +#include <GLES2/gl2.h> | ||
| 53 | +/*#include <GLES3/gl3.h>*/ | ||
| 54 | #include <GLES2/gl2ext.h> | ||
| 55 | |||
| 56 | #include <assert.h> | ||
| 57 | @@ -138,6 +139,9 @@ | ||
| 58 | glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, 0); | ||
| 59 | glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0); | ||
| 60 | glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0); | ||
| 61 | +#ifndef GL_R32F | ||
| 62 | +#define GL_R32F GL_R32F_EXT | ||
| 63 | +#endif | ||
| 64 | glTexImage2D(GL_TEXTURE_2D, 0, GL_R32F, lut_len, nr_rows, 0, | ||
| 65 | GL_RED_EXT, GL_FLOAT, lut); | ||
| 66 | |||
| 67 | diff -ur a/shared/weston-egl-ext.h b/shared/weston-egl-ext.h | ||
| 68 | --- a/shared/weston-egl-ext.h 2022-07-26 03:22:25.000000000 -0700 | ||
| 69 | +++ b/shared/weston-egl-ext.h 2022-10-26 17:11:28.501107772 -0700 | ||
| 70 | @@ -150,6 +150,7 @@ | ||
| 71 | #define EGL_NO_DEVICE_EXT EGL_CAST(EGLDeviceEXT,0) | ||
| 72 | #define EGL_BAD_DEVICE_EXT 0x322B | ||
| 73 | #define EGL_DEVICE_EXT 0x322C | ||
| 74 | +#define EGLAttrib EGLAttribKHR | ||
| 75 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICEATTRIBEXTPROC) (EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); | ||
| 76 | typedef const char *(EGLAPIENTRYP PFNEGLQUERYDEVICESTRINGEXTPROC) (EGLDeviceEXT device, EGLint name); | ||
| 77 | typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYDEVICESEXTPROC) (EGLint max_devices, EGLDeviceEXT *devices, EGLint *num_devices); | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch new file mode 100644 index 00000000..f8f75894 --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch | |||
| @@ -0,0 +1,50 @@ | |||
| 1 | From c8bfa1f8d576cdc6d515dbbac36c48c6166be0d5 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Marius Vlad <marius.vlad@collabora.com> | ||
| 3 | Date: Thu, 1 Apr 2021 00:12:00 +0300 | ||
| 4 | Subject: [PATCH] libweston/backend-drm: Re-order gbm destruction at DRM-backend tear down | ||
| 5 | |||
| 6 | Tearing down the drm-backend when there are no input devices, would call | ||
| 7 | for the gbm device destruction before compositor shutdown. The latter | ||
| 8 | would call into the renderer detroy function and assume that the | ||
| 9 | EGLDisplay, which was created using the before-mentioned gbm device, is | ||
| 10 | still available. This patch re-orders the gbm destruction after the | ||
| 11 | compositor shutdown when no one would make use of it. | ||
| 12 | |||
| 13 | Fixes: #314 | ||
| 14 | |||
| 15 | Signed-off-by: Marius Vlad <marius.vlad@collabora.com> | ||
| 16 | Suggested-by: Daniel Stone <daniel.stone@collabora.com> | ||
| 17 | |||
| 18 | Upstream-Status: Backport [https://gitlab.freedesktop.org/wayland/weston/-/commit/d171c7b3ba346c4d0bd6494f45ebf0be3c3cc5fb] | ||
| 19 | --- | ||
| 20 | libweston/backend-drm/drm.c | 8 ++++---- | ||
| 21 | 1 file changed, 4 insertions(+), 4 deletions(-) | ||
| 22 | |||
| 23 | diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c | ||
| 24 | index 2780f3b..fbcfeca 100644 | ||
| 25 | --- a/libweston/backend-drm/drm.c | ||
| 26 | +++ b/libweston/backend-drm/drm.c | ||
| 27 | @@ -3025,10 +3025,6 @@ err_drm_source: | ||
| 28 | err_udev_input: | ||
| 29 | udev_input_destroy(&b->input); | ||
| 30 | err_sprite: | ||
| 31 | -#ifdef BUILD_DRM_GBM | ||
| 32 | - if (b->gbm) | ||
| 33 | - gbm_device_destroy(b->gbm); | ||
| 34 | -#endif | ||
| 35 | destroy_sprites(b); | ||
| 36 | err_udev_dev: | ||
| 37 | udev_device_unref(drm_device); | ||
| 38 | @@ -3038,6 +3034,10 @@ err_launcher: | ||
| 39 | weston_launcher_destroy(compositor->launcher); | ||
| 40 | err_compositor: | ||
| 41 | weston_compositor_shutdown(compositor); | ||
| 42 | +#ifdef BUILD_DRM_GBM | ||
| 43 | + if (b->gbm) | ||
| 44 | + gbm_device_destroy(b->gbm); | ||
| 45 | +#endif | ||
| 46 | free(b); | ||
| 47 | return NULL; | ||
| 48 | } | ||
| 49 | -- | ||
| 50 | 2.33.0 | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch new file mode 100644 index 00000000..06e0f7ba --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-meson.build-fix-incorrect-header.patch | |||
| @@ -0,0 +1,32 @@ | |||
| 1 | From a2ba4714a6872e547621d29d9ddcb0f374b88cf6 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Chen Qi <Qi.Chen@windriver.com> | ||
| 3 | Date: Tue, 20 Apr 2021 20:42:18 -0700 | ||
| 4 | Subject: [PATCH] meson.build: fix incorrect header | ||
| 5 | |||
| 6 | The wayland.c actually include 'xdg-shell-client-protocol.h' instead of | ||
| 7 | the server one, so fix it. Otherwise, it's possible to get build failure | ||
| 8 | due to race condition. | ||
| 9 | |||
| 10 | Upstream-Status: Pending | ||
| 11 | |||
| 12 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
| 13 | --- | ||
| 14 | libweston/backend-wayland/meson.build | 2 +- | ||
| 15 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 16 | |||
| 17 | diff --git a/libweston/backend-wayland/meson.build b/libweston/backend-wayland/meson.build | ||
| 18 | index 7e82513..29270b5 100644 | ||
| 19 | --- a/libweston/backend-wayland/meson.build | ||
| 20 | +++ b/libweston/backend-wayland/meson.build | ||
| 21 | @@ -10,7 +10,7 @@ srcs_wlwl = [ | ||
| 22 | fullscreen_shell_unstable_v1_protocol_c, | ||
| 23 | presentation_time_protocol_c, | ||
| 24 | presentation_time_server_protocol_h, | ||
| 25 | - xdg_shell_server_protocol_h, | ||
| 26 | + xdg_shell_client_protocol_h, | ||
| 27 | xdg_shell_protocol_c, | ||
| 28 | ] | ||
| 29 | |||
| 30 | -- | ||
| 31 | 2.30.2 | ||
| 32 | |||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch new file mode 100644 index 00000000..6fe86ff3 --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch | |||
| @@ -0,0 +1,47 @@ | |||
| 1 | From 58760e09eed662a72da939ff4802d605489cff8e Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Denys Dmytriyenko <denys@ti.com> | ||
| 3 | Date: Tue, 8 Sep 2020 19:37:42 -0400 | ||
| 4 | Subject: [PATCH] tests: include fcntl.h for open(), O_RDWR, O_CLOEXEC and | ||
| 5 | O_CREAT | ||
| 6 | |||
| 7 | musl libc (unlike glibc) requires explicitly incuding fcntl.h to define open(), | ||
| 8 | O_RDWR, O_CLOEXEC and O_CREAT. Otherwise the build fails with the errors: | ||
| 9 | |||
| 10 | | ../weston-9.0.0/tests/weston-test-fixture-compositor.c: In function 'wait_for_lock': | ||
| 11 | | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:7: warning: implicit declaration of function 'open'; did you mean 'popen'? [-Wimplicit-function-declaration] | ||
| 12 | | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | ||
| 13 | | | ^~~~ | ||
| 14 | | | popen | ||
| 15 | | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:23: error: 'O_RDWR' undeclared (first use in this function) | ||
| 16 | | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | ||
| 17 | | | ^~~~~~ | ||
| 18 | | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:23: note: each undeclared identifier is reported only once for each function it appears in | ||
| 19 | | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:32: error: 'O_CLOEXEC' undeclared (first use in this function) | ||
| 20 | | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | ||
| 21 | | | ^~~~~~~~~ | ||
| 22 | | ../weston-9.0.0/tests/weston-test-fixture-compositor.c:135:44: error: 'O_CREAT' undeclared (first use in this function) | ||
| 23 | | 135 | fd = open(lock_path, O_RDWR | O_CLOEXEC | O_CREAT, 00700); | ||
| 24 | | | ^~~~~~~ | ||
| 25 | |||
| 26 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/493/diffs?commit_id=b10c0e843dcb8148bbe869bb15261955b94ac98c] | ||
| 27 | |||
| 28 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
| 29 | --- | ||
| 30 | tests/weston-test-fixture-compositor.c | 1 + | ||
| 31 | 1 file changed, 1 insertion(+) | ||
| 32 | |||
| 33 | diff --git a/tests/weston-test-fixture-compositor.c b/tests/weston-test-fixture-compositor.c | ||
| 34 | index 0c9855f..e0e32c9 100644 | ||
| 35 | --- a/tests/weston-test-fixture-compositor.c | ||
| 36 | +++ b/tests/weston-test-fixture-compositor.c | ||
| 37 | @@ -31,6 +31,7 @@ | ||
| 38 | #include <unistd.h> | ||
| 39 | #include <sys/file.h> | ||
| 40 | #include <errno.h> | ||
| 41 | +#include <fcntl.h> | ||
| 42 | |||
| 43 | #include "shared/helpers.h" | ||
| 44 | #include "weston-test-fixture-compositor.h" | ||
| 45 | -- | ||
| 46 | 2.7.4 | ||
| 47 | |||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch new file mode 100644 index 00000000..f6ebfd8f --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch | |||
| @@ -0,0 +1,199 @@ | |||
| 1 | From a1548c742bf2dedbb47282d8a00407b60bbab669 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Tom Hochstein <tom.hochstein@nxp.com> | ||
| 3 | Date: Wed, 22 Feb 2017 15:53:30 +0200 | ||
| 4 | Subject: [PATCH] weston-launch: Provide a default version that doesn't require | ||
| 5 | |||
| 6 | PAM | ||
| 7 | |||
| 8 | weston-launch requires PAM for starting weston as a non-root user. | ||
| 9 | |||
| 10 | Since starting weston as root is a valid use case by itself, if | ||
| 11 | PAM is not available, provide a default version of weston-launch | ||
| 12 | without non-root-user support. | ||
| 13 | |||
| 14 | Upstream-Status: Denied [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/725] | ||
| 15 | |||
| 16 | Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com> | ||
| 17 | Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> | ||
| 18 | Signed-off-by: Denys Dmytriyenko <denys@ti.com> | ||
| 19 | Signed-off-by: Ming Liu <ming.liu@toradex.com> | ||
| 20 | |||
| 21 | --- | ||
| 22 | libweston/meson.build | 16 ++++++++++++---- | ||
| 23 | libweston/weston-launch.c | 21 +++++++++++++++++++++ | ||
| 24 | meson_options.txt | 7 +++++++ | ||
| 25 | 3 files changed, 40 insertions(+), 4 deletions(-) | ||
| 26 | |||
| 27 | diff --git a/libweston/meson.build b/libweston/meson.build | ||
| 28 | index 08d23ec..cb9fd3f 100644 | ||
| 29 | --- a/libweston/meson.build | ||
| 30 | +++ b/libweston/meson.build | ||
| 31 | @@ -216,16 +216,24 @@ dep_vertex_clipping = declare_dependency( | ||
| 32 | ) | ||
| 33 | |||
| 34 | if get_option('weston-launch') | ||
| 35 | - dep_pam = cc.find_library('pam') | ||
| 36 | + deps_weston_launch = [systemd_dep, dep_libdrm] | ||
| 37 | |||
| 38 | - if not cc.has_function('pam_open_session', dependencies: dep_pam) | ||
| 39 | - error('pam_open_session not found for weston-launch') | ||
| 40 | + if get_option('pam') | ||
| 41 | + dep_pam = cc.find_library('pam') | ||
| 42 | + if not cc.has_function('pam_open_session', dependencies: dep_pam) | ||
| 43 | + error('pam_open_session not found for weston-launch') | ||
| 44 | + endif | ||
| 45 | + | ||
| 46 | + if dep_pam.found() | ||
| 47 | + deps_weston_launch += dep_pam | ||
| 48 | + config_h.set('HAVE_PAM', '1') | ||
| 49 | + endif | ||
| 50 | endif | ||
| 51 | |||
| 52 | executable( | ||
| 53 | 'weston-launch', | ||
| 54 | 'weston-launch.c', | ||
| 55 | - dependencies: [dep_pam, systemd_dep, dep_libdrm], | ||
| 56 | + dependencies: deps_weston_launch, | ||
| 57 | include_directories: common_inc, | ||
| 58 | install: true | ||
| 59 | ) | ||
| 60 | diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c | ||
| 61 | index 521cb2c..2d42d33 100644 | ||
| 62 | --- a/libweston/weston-launch.c | ||
| 63 | +++ b/libweston/weston-launch.c | ||
| 64 | @@ -51,7 +51,9 @@ | ||
| 65 | |||
| 66 | #include <pwd.h> | ||
| 67 | #include <grp.h> | ||
| 68 | +#ifdef HAVE_PAM | ||
| 69 | #include <security/pam_appl.h> | ||
| 70 | +#endif | ||
| 71 | |||
| 72 | #ifdef HAVE_SYSTEMD_LOGIN | ||
| 73 | #include <systemd/sd-login.h> | ||
| 74 | @@ -100,8 +102,10 @@ drmSetMaster(int drm_fd) | ||
| 75 | #endif | ||
| 76 | |||
| 77 | struct weston_launch { | ||
| 78 | +#ifdef HAVE_PAM | ||
| 79 | struct pam_conv pc; | ||
| 80 | pam_handle_t *ph; | ||
| 81 | +#endif | ||
| 82 | int tty; | ||
| 83 | int ttynr; | ||
| 84 | int sock[2]; | ||
| 85 | @@ -192,6 +196,7 @@ weston_launch_allowed(struct weston_launch *wl) | ||
| 86 | return false; | ||
| 87 | } | ||
| 88 | |||
| 89 | +#ifdef HAVE_PAM | ||
| 90 | static int | ||
| 91 | pam_conversation_fn(int msg_count, | ||
| 92 | const struct pam_message **messages, | ||
| 93 | @@ -232,6 +237,7 @@ setup_pam(struct weston_launch *wl) | ||
| 94 | |||
| 95 | return 0; | ||
| 96 | } | ||
| 97 | +#endif | ||
| 98 | |||
| 99 | static int | ||
| 100 | setup_launcher_socket(struct weston_launch *wl) | ||
| 101 | @@ -466,6 +472,7 @@ quit(struct weston_launch *wl, int status) | ||
| 102 | close(wl->signalfd); | ||
| 103 | close(wl->sock[0]); | ||
| 104 | |||
| 105 | +#ifdef HAVE_PAM | ||
| 106 | if (wl->new_user) { | ||
| 107 | err = pam_close_session(wl->ph, 0); | ||
| 108 | if (err) | ||
| 109 | @@ -473,6 +480,7 @@ quit(struct weston_launch *wl, int status) | ||
| 110 | err, pam_strerror(wl->ph, err)); | ||
| 111 | pam_end(wl->ph, err); | ||
| 112 | } | ||
| 113 | +#endif | ||
| 114 | |||
| 115 | /* | ||
| 116 | * Get a fresh handle to the tty as the previous one is in | ||
| 117 | @@ -710,6 +718,7 @@ setup_session(struct weston_launch *wl, char **child_argv) | ||
| 118 | setenv("HOME", wl->pw->pw_dir, 1); | ||
| 119 | setenv("SHELL", wl->pw->pw_shell, 1); | ||
| 120 | |||
| 121 | +#ifdef HAVE_PAM | ||
| 122 | env = pam_getenvlist(wl->ph); | ||
| 123 | if (env) { | ||
| 124 | for (i = 0; env[i]; ++i) { | ||
| 125 | @@ -718,6 +727,7 @@ setup_session(struct weston_launch *wl, char **child_argv) | ||
| 126 | } | ||
| 127 | free(env); | ||
| 128 | } | ||
| 129 | +#endif | ||
| 130 | |||
| 131 | /* | ||
| 132 | * We open a new session, so it makes sense | ||
| 133 | @@ -789,8 +799,10 @@ static void | ||
| 134 | help(const char *name) | ||
| 135 | { | ||
| 136 | fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name); | ||
| 137 | +#ifdef HAVE_PAM | ||
| 138 | fprintf(stderr, " -u, --user Start session as specified username,\n" | ||
| 139 | " e.g. -u joe, requires root.\n"); | ||
| 140 | +#endif | ||
| 141 | fprintf(stderr, " -t, --tty Start session on alternative tty,\n" | ||
| 142 | " e.g. -t /dev/tty4, requires -u option.\n"); | ||
| 143 | fprintf(stderr, " -v, --verbose Be verbose\n"); | ||
| 144 | @@ -804,7 +816,9 @@ main(int argc, char *argv[]) | ||
| 145 | int i, c; | ||
| 146 | char *tty = NULL; | ||
| 147 | struct option opts[] = { | ||
| 148 | +#ifdef HAVE_PAM | ||
| 149 | { "user", required_argument, NULL, 'u' }, | ||
| 150 | +#endif | ||
| 151 | { "tty", required_argument, NULL, 't' }, | ||
| 152 | { "verbose", no_argument, NULL, 'v' }, | ||
| 153 | { "help", no_argument, NULL, 'h' }, | ||
| 154 | @@ -816,11 +830,16 @@ main(int argc, char *argv[]) | ||
| 155 | while ((c = getopt_long(argc, argv, "u:t:vh", opts, &i)) != -1) { | ||
| 156 | switch (c) { | ||
| 157 | case 'u': | ||
| 158 | +#ifdef HAVE_PAM | ||
| 159 | wl.new_user = optarg; | ||
| 160 | if (getuid() != 0) { | ||
| 161 | fprintf(stderr, "weston: Permission denied. -u allowed for root only\n"); | ||
| 162 | exit(EXIT_FAILURE); | ||
| 163 | } | ||
| 164 | +#else | ||
| 165 | + fprintf(stderr, "weston: -u is unsupported in this weston-launch build\n"); | ||
| 166 | + exit(EXIT_FAILURE); | ||
| 167 | +#endif | ||
| 168 | break; | ||
| 169 | case 't': | ||
| 170 | tty = optarg; | ||
| 171 | @@ -872,8 +891,10 @@ main(int argc, char *argv[]) | ||
| 172 | if (setup_tty(&wl, tty) < 0) | ||
| 173 | exit(EXIT_FAILURE); | ||
| 174 | |||
| 175 | +#ifdef HAVE_PAM | ||
| 176 | if (wl.new_user && setup_pam(&wl) < 0) | ||
| 177 | exit(EXIT_FAILURE); | ||
| 178 | +#endif | ||
| 179 | |||
| 180 | if (setup_launcher_socket(&wl) < 0) | ||
| 181 | exit(EXIT_FAILURE); | ||
| 182 | diff --git a/meson_options.txt b/meson_options.txt | ||
| 183 | index 239bd2d..99e4ec3 100644 | ||
| 184 | --- a/meson_options.txt | ||
| 185 | +++ b/meson_options.txt | ||
| 186 | @@ -73,6 +73,13 @@ option( | ||
| 187 | ) | ||
| 188 | |||
| 189 | option( | ||
| 190 | + 'pam', | ||
| 191 | + type: 'boolean', | ||
| 192 | + value: true, | ||
| 193 | + description: 'Define if PAM is available' | ||
| 194 | +) | ||
| 195 | + | ||
| 196 | +option( | ||
| 197 | 'xwayland', | ||
| 198 | type: 'boolean', | ||
| 199 | value: true, | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch b/meta-xilinx-core/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch new file mode 100644 index 00000000..a4444e5d --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/dont-use-plane-add-prop.patch | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | Fix atomic modesetting with musl | ||
| 2 | |||
| 3 | atomic modesetting seems to fail with drm weston backend and this patch fixes | ||
| 4 | it, below errors are seen before weston exits | ||
| 5 | |||
| 6 | atomic: couldn't commit new state: Invalid argument | ||
| 7 | |||
| 8 | Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/issues/158] | ||
| 9 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 10 | |||
| 11 | --- a/libweston/backend-drm/kms.c | ||
| 12 | +++ b/libweston/backend-drm/kms.c | ||
| 13 | @@ -1168,8 +1168,8 @@ drm_pending_state_apply_atomic(struct dr | ||
| 14 | wl_list_for_each(plane, &b->plane_list, link) { | ||
| 15 | drm_debug(b, "\t\t[atomic] starting with plane %lu disabled\n", | ||
| 16 | (unsigned long) plane->plane_id); | ||
| 17 | - plane_add_prop(req, plane, WDRM_PLANE_CRTC_ID, 0); | ||
| 18 | - plane_add_prop(req, plane, WDRM_PLANE_FB_ID, 0); | ||
| 19 | + //plane_add_prop(req, plane, WDRM_PLANE_CRTC_ID, 0); | ||
| 20 | + //plane_add_prop(req, plane, WDRM_PLANE_FB_ID, 0); | ||
| 21 | } | ||
| 22 | |||
| 23 | flags |= DRM_MODE_ATOMIC_ALLOW_MODESET; | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/systemd-notify.weston-start b/meta-xilinx-core/recipes-graphics/wayland/weston/systemd-notify.weston-start new file mode 100644 index 00000000..a97e7b38 --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/systemd-notify.weston-start | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | # SPDX-FileCopyrightText: Huawei Inc. | ||
| 4 | # SPDX-License-Identifier: Apache-2.0 | ||
| 5 | |||
| 6 | |||
| 7 | if [[ -x "/usr/lib/weston/systemd-notify.so" ]]; then | ||
| 8 | add_weston_module "systemd-notify.so" | ||
| 9 | fi | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/weston.desktop b/meta-xilinx-core/recipes-graphics/wayland/weston/weston.desktop new file mode 100644 index 00000000..1086ae8b --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/weston.desktop | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | [Desktop Entry] | ||
| 2 | Encoding=UTF-8 | ||
| 3 | Type=Application | ||
| 4 | Name=Weston | ||
| 5 | Comment=Wayland Compostitor | ||
| 6 | Exec=weston | ||
| 7 | Icon=weston | ||
| 8 | Terminal=false | ||
| 9 | Categories=Utility; | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/weston.png b/meta-xilinx-core/recipes-graphics/wayland/weston/weston.png new file mode 100644 index 00000000..ea8b7e0e --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/weston.png | |||
| Binary files differ | |||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston/xwayland.weston-start b/meta-xilinx-core/recipes-graphics/wayland/weston/xwayland.weston-start new file mode 100644 index 00000000..db384b1a --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston/xwayland.weston-start | |||
| @@ -0,0 +1,5 @@ | |||
| 1 | #!/bin/sh | ||
| 2 | |||
| 3 | if type Xwayland >/dev/null 2>/dev/null; then | ||
| 4 | mkdir -p /tmp/.X11-unix | ||
| 5 | fi | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston_%.bbappend b/meta-xilinx-core/recipes-graphics/wayland/weston_%.bbappend index bb6413a8..edb77fc5 100644 --- a/meta-xilinx-core/recipes-graphics/wayland/weston_%.bbappend +++ b/meta-xilinx-core/recipes-graphics/wayland/weston_%.bbappend | |||
| @@ -9,19 +9,6 @@ DEFAULT_PACKAGE_ARCH:zynqmp = "${SOC_FAMILY_ARCH}" | |||
| 9 | PACKAGE_ARCH = "${DEFAULT_PACKAGE_ARCH}" | 9 | PACKAGE_ARCH = "${DEFAULT_PACKAGE_ARCH}" |
| 10 | 10 | ||
| 11 | 11 | ||
| 12 | # mali400 specific items | ||
| 13 | LIBMALI_SRC_URI = " \ | ||
| 14 | file://0001-libweston-GL_EXT_unpack_subimage-not-supported-for-G.patch \ | ||
| 15 | file://0002-libmali-does-not-support-gles3.patch \ | ||
| 16 | " | ||
| 17 | MALI_SRC_URI = "${@bb.utils.contains('DISTRO_FEATURES', 'libmali', '${LIBMALI_SRC_URI}', '', d)}" | ||
| 18 | SRC_URI:append = "${@bb.utils.contains('MACHINE_FEATURES', 'mali400', ' ${MALI_SRC_URI}', '', d)}" | ||
| 19 | |||
| 20 | # Skip dmabuf-feedback, as it requires gbm >= 21.1.1, mali-xlnx only provides 17.3 | ||
| 21 | DEFAULT_SIMPLECLIENTS := "${SIMPLECLIENTS}" | ||
| 22 | MALI_SIMPLECLIENTS = "${@bb.utils.contains('DISTRO_FEATURES', 'libmali', 'damage,im,egl,shm,touch,dmabuf-v4l,dmabuf-egl', '${DEFAULT_SIMPLECLIENTS}', d)}" | ||
| 23 | SIMPLECLIENTS = "${@bb.utils.contains('MACHINE_FEATURES', 'mali400', '${MALI_SIMPLECLIENTS}', '${DEFAULT_SIMPLECLIENTS}', d)}" | ||
| 24 | |||
| 25 | # Links to libmali-xlnx, so it becomes MACHINE_ARCH specific | 12 | # Links to libmali-xlnx, so it becomes MACHINE_ARCH specific |
| 26 | DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}" | 13 | DEFAULT_PACKAGE_ARCH := "${PACKAGE_ARCH}" |
| 27 | MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}" | 14 | MALI_PACKAGE_ARCH = "${@'${MACHINE_ARCH}' if d.getVar('PREFERRED_PROVIDER_virtual/libgles1') == 'libmali-xlnx' else '${DEFAULT_PACKAGE_ARCH}'}" |
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston_10.0.2.bbappend b/meta-xilinx-core/recipes-graphics/wayland/weston_10.0.2.bbappend new file mode 100644 index 00000000..18396c5e --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston_10.0.2.bbappend | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | ZYNQMP_WARN_DEFAULT = "0" | ||
| 2 | ZYNQMP_WARN_DEFAULT:zynqmp = "${@bb.utils.contains('DISTRO_FEATURES', 'libmali', '1', '0', d)}" | ||
| 3 | ZYNQMP_WARN = "${@bb.utils.contains('MACHINE_FEATURES', 'mali400', '${ZYNQMP_WARN_DEFAULT}', '0', d)}" | ||
| 4 | |||
| 5 | python() { | ||
| 6 | if d.getVar('ZYNQMP_WARN') == "1": | ||
| 7 | raise bb.parse.SkipRecipe("Weston 10.0.0.2 requires GLES 3 interfaces which are not available when libmali enabled. Use Weston 9.0.0.0 instead.") | ||
| 8 | } | ||
diff --git a/meta-xilinx-core/recipes-graphics/wayland/weston_9.0.0.bb b/meta-xilinx-core/recipes-graphics/wayland/weston_9.0.0.bb new file mode 100644 index 00000000..a534b1b7 --- /dev/null +++ b/meta-xilinx-core/recipes-graphics/wayland/weston_9.0.0.bb | |||
| @@ -0,0 +1,148 @@ | |||
| 1 | SUMMARY = "Weston, a Wayland compositor" | ||
| 2 | DESCRIPTION = "Weston is the reference implementation of a Wayland compositor" | ||
| 3 | HOMEPAGE = "http://wayland.freedesktop.org" | ||
| 4 | LICENSE = "MIT" | ||
| 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ | ||
| 6 | file://libweston/compositor.c;endline=27;md5=6c53bbbd99273f4f7c4affa855c33c0a" | ||
| 7 | |||
| 8 | # We want this version to be "newer" then 10, only if libmali and mali400 are both enabled | ||
| 9 | ORIG_PE := "${PE}" | ||
| 10 | MALI_PE = "${@bb.utils.contains('DISTRO_FEATURES', 'libmali', '1', '${ORIG_PE}', d)}" | ||
| 11 | PE = "${@bb.utils.contains('MACHINE_FEATURES', 'mali400', '${MALI_PE}', '${ORIG_PE}', d)}" | ||
| 12 | |||
| 13 | SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ | ||
| 14 | file://weston.png \ | ||
| 15 | file://weston.desktop \ | ||
| 16 | file://xwayland.weston-start \ | ||
| 17 | file://systemd-notify.weston-start \ | ||
| 18 | file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \ | ||
| 19 | file://0001-tests-include-fcntl.h-for-open-O_RDWR-O_CLOEXEC-and-.patch \ | ||
| 20 | file://0001-meson.build-fix-incorrect-header.patch \ | ||
| 21 | file://0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch \ | ||
| 22 | " | ||
| 23 | |||
| 24 | SRC_URI:append:libc-musl = " file://dont-use-plane-add-prop.patch " | ||
| 25 | |||
| 26 | SRC_URI[sha256sum] = "5cf5d6ce192e0eb15c1fc861a436bf21b5bb3b91dbdabbdebe83e1f83aa098fe" | ||
| 27 | |||
| 28 | UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html" | ||
| 29 | |||
| 30 | inherit meson pkgconfig useradd features_check | ||
| 31 | # depends on virtual/egl | ||
| 32 | # weston-init requires pam enabled if started via systemd | ||
| 33 | REQUIRED_DISTRO_FEATURES = "opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}" | ||
| 34 | |||
| 35 | DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0" | ||
| 36 | DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" | ||
| 37 | |||
| 38 | LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}" | ||
| 39 | |||
| 40 | WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}" | ||
| 41 | |||
| 42 | EXTRA_OEMESON += "-Dbackend-default=auto -Dpipewire=false" | ||
| 43 | |||
| 44 | PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl clients', '', d)} \ | ||
| 45 | ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \ | ||
| 46 | ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd x11', d)} \ | ||
| 47 | ${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \ | ||
| 48 | launch \ | ||
| 49 | image-jpeg \ | ||
| 50 | screenshare \ | ||
| 51 | shell-desktop \ | ||
| 52 | shell-fullscreen \ | ||
| 53 | shell-ivi" | ||
| 54 | |||
| 55 | # | ||
| 56 | # Compositor choices | ||
| 57 | # | ||
| 58 | # Weston on KMS | ||
| 59 | PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev" | ||
| 60 | # Weston on Wayland (nested Weston) | ||
| 61 | PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2" | ||
| 62 | # Weston on X11 | ||
| 63 | PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcb libxcursor cairo" | ||
| 64 | # Headless Weston | ||
| 65 | PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false" | ||
| 66 | # Weston on framebuffer | ||
| 67 | PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev" | ||
| 68 | # Weston on RDP | ||
| 69 | PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp" | ||
| 70 | # weston-launch | ||
| 71 | PACKAGECONFIG[launch] = "-Dweston-launch=true,-Dweston-launch=false,drm" | ||
| 72 | # VA-API desktop recorder | ||
| 73 | PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva" | ||
| 74 | # Weston with EGL support | ||
| 75 | PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl" | ||
| 76 | # Weston with lcms support | ||
| 77 | PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms" | ||
| 78 | # Weston with webp support | ||
| 79 | PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp" | ||
| 80 | # Weston with systemd-login support | ||
| 81 | PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus" | ||
| 82 | # Weston with Xwayland support (requires X11 and Wayland) | ||
| 83 | PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false" | ||
| 84 | # colord CMS support | ||
| 85 | PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord" | ||
| 86 | # Clients support | ||
| 87 | PACKAGECONFIG[clients] = "-Dsimple-clients=all -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false" | ||
| 88 | # Virtual remote output with GStreamer on DRM backend | ||
| 89 | PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" | ||
| 90 | # Weston with PAM support | ||
| 91 | PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam" | ||
| 92 | # Weston with screen-share support | ||
| 93 | PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false" | ||
| 94 | # Traditional desktop shell | ||
| 95 | PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false" | ||
| 96 | # Fullscreen shell | ||
| 97 | PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false" | ||
| 98 | # In-Vehicle Infotainment (IVI) shell | ||
| 99 | PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false" | ||
| 100 | # JPEG image loading support | ||
| 101 | PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg" | ||
| 102 | |||
| 103 | do_install:append() { | ||
| 104 | # Weston doesn't need the .la files to load modules, so wipe them | ||
| 105 | rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la | ||
| 106 | |||
| 107 | # If X11, ship a desktop file to launch it | ||
| 108 | if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then | ||
| 109 | install -d ${D}${datadir}/applications | ||
| 110 | install ${WORKDIR}/weston.desktop ${D}${datadir}/applications | ||
| 111 | |||
| 112 | install -d ${D}${datadir}/icons/hicolor/48x48/apps | ||
| 113 | install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps | ||
| 114 | fi | ||
| 115 | |||
| 116 | if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then | ||
| 117 | install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland | ||
| 118 | fi | ||
| 119 | |||
| 120 | if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then | ||
| 121 | install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify | ||
| 122 | fi | ||
| 123 | |||
| 124 | if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then | ||
| 125 | chmod u+s ${D}${bindir}/weston-launch | ||
| 126 | fi | ||
| 127 | } | ||
| 128 | |||
| 129 | PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \ | ||
| 130 | libweston-${WESTON_MAJOR_VERSION} ${PN}-examples" | ||
| 131 | |||
| 132 | FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so" | ||
| 133 | FILES:${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}" | ||
| 134 | |||
| 135 | FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so" | ||
| 136 | SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'." | ||
| 137 | |||
| 138 | FILES:${PN}-examples = "${bindir}/*" | ||
| 139 | |||
| 140 | FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so" | ||
| 141 | RDEPENDS:${PN}-xwayland += "xwayland" | ||
| 142 | |||
| 143 | RDEPENDS:${PN} += "xkeyboard-config" | ||
| 144 | RRECOMMENDS:${PN} = "weston-init liberation-fonts" | ||
| 145 | RRECOMMENDS:${PN}-dev += "wayland-protocols" | ||
| 146 | |||
| 147 | USERADD_PACKAGES = "${PN}" | ||
| 148 | GROUPADD_PARAM:${PN} = "--system weston-launch" | ||
