From 47bf86a3e5d9015f504de4d64942bd17a643b4e6 Mon Sep 17 00:00:00 2001 From: Scott Murray Date: Tue, 23 Feb 2021 16:26:14 -0500 Subject: [PATCH] meta-agl-core: update weston Update weston bbappend for weston 10.0 in poky master, and remove now upstreamed patches. Bug-AGL: SPEC-3819 Signed-off-by: Scott Murray Change-Id: I5d10435ec9b7c18bb36e8a88f6853f1628e5b052 --- ...dow-Add-set_app_id-function-change-Waylan.patch | 85 ---------------------- ...enderer-Avoid-double-free-on-init-failure.patch | 33 --------- ...emove-source-repaint_timer-in-weston_comp.patch | 34 --------- ...ackend-drm-Re-order-gbm-destruction-at-DR.patch | 51 ------------- ...ston-to-start-from-a-systemd-user-session.patch | 75 ------------------- .../0005-correctly-tear-down-drm-backend.patch | 37 ---------- ...eston_8.0.%.bbappend => weston_10.0.%.bbappend} | 2 +- .../wayland/weston_10.0_aglcore.inc | 10 +++ .../wayland/weston_8.0_aglcore.inc | 24 ------ 9 files changed, 11 insertions(+), 340 deletions(-) delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0001-clients-window-Add-set_app_id-function-change-Waylan.patch delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0001-gl-renderer-Avoid-double-free-on-init-failure.patch delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Remove-source-repaint_timer-in-weston_comp.patch delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0002-Allow-weston-to-start-from-a-systemd-user-session.patch delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch rename meta-agl-core/recipes-graphics/wayland/{weston_8.0.%.bbappend => weston_10.0.%.bbappend} (70%) create mode 100644 meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc delete mode 100644 meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-clients-window-Add-set_app_id-function-change-Waylan.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-clients-window-Add-set_app_id-function-change-Waylan.patch deleted file mode 100644 index 9c5ae7dfa..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-clients-window-Add-set_app_id-function-change-Waylan.patch +++ /dev/null @@ -1,85 +0,0 @@ -From f090255f242f46e1bad5ef21afea730d93cdcb9e Mon Sep 17 00:00:00 2001 -From: Marius Vlad -Date: Fri, 14 Jan 2022 18:36:14 +0200 -Upstream-status: Submitted -Subject: [PATCH] clients/window: Add set_app_id function + change Wayland - Terminal - -Without this we can not switch to weston-terminal. - -Signed-off-by: Marius Vlad ---- - clients/terminal.c | 3 ++- - clients/window.c | 12 ++++++++++++ - clients/window.h | 3 +++ - 3 files changed, 17 insertions(+), 1 deletion(-) - -diff --git a/clients/terminal.c b/clients/terminal.c -index 66e2bf5..49c88ab 100644 ---- a/clients/terminal.c -+++ b/clients/terminal.c -@@ -2947,8 +2947,9 @@ terminal_create(struct display *display) - terminal->margin_bottom = -1; - terminal->window = window_create(display); - terminal->widget = window_frame_create(terminal->window, terminal); -- terminal->title = xstrdup("Wayland Terminal"); -+ terminal->title = xstrdup("weston-terminal"); - window_set_title(terminal->window, terminal->title); -+ window_set_app_id(terminal->window, terminal->title); - widget_set_transparent(terminal->widget, 0); - - init_state_machine(&terminal->state_machine); -diff --git a/clients/window.c b/clients/window.c -index 2bd303e..bfa1756 100644 ---- a/clients/window.c -+++ b/clients/window.c -@@ -230,6 +230,7 @@ struct window { - struct display *display; - struct wl_list window_output_list; - char *title; -+ char *app_id; - struct rectangle saved_allocation; - struct rectangle min_allocation; - struct rectangle pending_allocation; -@@ -1609,6 +1610,7 @@ window_destroy(struct window *window) - wl_list_remove(&window->link); - - free(window->title); -+ free(window->app_id); - free(window); - } - -@@ -4812,6 +4814,16 @@ window_set_title(struct window *window, const char *title) - xdg_toplevel_set_title(window->xdg_toplevel, title); - } - -+void -+window_set_app_id(struct window *window, const char *app_id) -+{ -+ free(window->app_id); -+ window->app_id = strdup(app_id); -+ -+ if (window->xdg_toplevel) -+ xdg_toplevel_set_app_id(window->xdg_toplevel, window->app_id); -+} -+ - const char * - window_get_title(struct window *window) - { -diff --git a/clients/window.h b/clients/window.h -index c66dd06..7a1a076 100644 ---- a/clients/window.h -+++ b/clients/window.h -@@ -500,6 +500,9 @@ window_set_locked_pointer_motion_handler( - void - window_set_title(struct window *window, const char *title); - -+void -+window_set_app_id(struct window *window, const char *app_id); -+ - const char * - window_get_title(struct window *window); - --- -2.33.0 - diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-gl-renderer-Avoid-double-free-on-init-failure.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-gl-renderer-Avoid-double-free-on-init-failure.patch deleted file mode 100644 index 582a33161..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-gl-renderer-Avoid-double-free-on-init-failure.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d76947b6668e0fabe0a4551ac6c2c978f93768cd Mon Sep 17 00:00:00 2001 -From: Daniel Stone -Upstream-Status: Backport -Date: Mon, 3 Feb 2020 20:01:21 +0000 -Subject: [PATCH] gl-renderer: Avoid double-free on init failure - -If gl-renderer fails its initialisation, we return to compositor -teardown, which will try to free the renderer if ec->renderer was set. -This is unfortunate when we've already torn it down whilst failing -gl-renderer init, so just clear the renderer member so we don't try to -tear down twice. - -Signed-off-by: Daniel Stone -Reported-by: Emil Velikov ---- - libweston/renderer-gl/gl-renderer.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c -index a40db3607..79285c008 100644 ---- a/libweston/renderer-gl/gl-renderer.c -+++ b/libweston/renderer-gl/gl-renderer.c -@@ -3596,6 +3596,7 @@ fail_terminate: - eglTerminate(gr->egl_display); - fail: - free(gr); -+ ec->renderer = NULL; - return -1; - } - --- -2.33.0 - diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Remove-source-repaint_timer-in-weston_comp.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Remove-source-repaint_timer-in-weston_comp.patch deleted file mode 100644 index bdcc249e2..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Remove-source-repaint_timer-in-weston_comp.patch +++ /dev/null @@ -1,34 +0,0 @@ -From d4b46cdd3cf0b7e9eaa415fc87a4281695f2349c Mon Sep 17 00:00:00 2001 -From: Lujin Wang -Date: Mon, 12 Aug 2019 12:03:29 -0700 -Subject: [PATCH] libweston: Remove source repaint_timer in - weston_compositor_shutdown - -Fixes a definitely lost: -== 56 bytes in 1 blocks are definitely lost in loss record 16 of 45 -== at 0x48450F8: malloc (vg_replace_malloc.c:309) -== by 0x4B55E93: wl_event_loop_add_timer (event-loop.c:197) -== by 0x4126CF: weston_compositor_create (in /usr/local/bin/weston) -== by 0x409997: main (in /usr/local/bin/weston) - -Signed-off-by: Lujin Wang -Signed-off-by: Pekka Paalanen ---- - libweston/compositor.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/libweston/compositor.c b/libweston/compositor.c -index c2da3a48c..90321e860 100644 ---- a/libweston/compositor.c -+++ b/libweston/compositor.c -@@ -7733,6 +7733,7 @@ weston_compositor_shutdown(struct weston_compositor *ec) - struct weston_output *output, *next; - - wl_event_source_remove(ec->idle_source); -+ wl_event_source_remove(ec->repaint_timer); - - /* Destroy all outputs associated with this compositor */ - wl_list_for_each_safe(output, next, &ec->output_list, link) --- -GitLab - diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch deleted file mode 100644 index e8e324c32..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch +++ /dev/null @@ -1,51 +0,0 @@ -From d171c7b3ba346c4d0bd6494f45ebf0be3c3cc5fb Mon Sep 17 00:00:00 2001 -From: Marius Vlad -Upstream-Status: Backport -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 -Suggested-by: Daniel Stone ---- - 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 c780c1c16..abfcabd3b 100644 ---- a/libweston/backend-drm/drm.c -+++ b/libweston/backend-drm/drm.c -@@ -3203,10 +3203,6 @@ err_drm_source: - err_udev_input: - udev_input_destroy(&b->input); - err_sprite: --#ifdef BUILD_DRM_GBM -- if (b->gbm) -- gbm_device_destroy(b->gbm); --#endif - destroy_sprites(b); - err_create_crtc_list: - drmModeFreeResources(res); -@@ -3218,6 +3214,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.33.0 - diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0002-Allow-weston-to-start-from-a-systemd-user-session.patch b/meta-agl-core/recipes-graphics/wayland/weston/0002-Allow-weston-to-start-from-a-systemd-user-session.patch deleted file mode 100644 index d45f93a9b..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0002-Allow-weston-to-start-from-a-systemd-user-session.patch +++ /dev/null @@ -1,75 +0,0 @@ -From b6c891774e23762d6289447ab588bf739a55f628 Mon Sep 17 00:00:00 2001 -From: Derek Foreman -Date: Thu, 15 Jul 2021 12:22:49 -0500 -Subject: [PATCH] launcher-logind: Try the user's primary session if not in a - session - -If we're not in a session we can fall back to sd_uid_get_display() to -find the user's primary session. - -This allows launching weston from an ssh session or as a systemd -user service if a viable session is available. - -It also more closely follows how libseat finds the session. The libseat -launcher can already do these things, so this change makes these -features common to both launchers. - -Based on a patch by Sjoerd Simons - -Upstream-Status: Accepted (to be released with weston 10.0.0) - -Signed-off-by: Derek Foreman ---- - libweston/launcher-logind.c | 29 +++++++++++++++++++++++++---- - 1 file changed, 25 insertions(+), 4 deletions(-) - -diff --git a/libweston/launcher-logind.c b/libweston/launcher-logind.c -index 993d8e1a2..3fca1dff6 100644 ---- a/libweston/launcher-logind.c -+++ b/libweston/launcher-logind.c -@@ -734,6 +734,29 @@ launcher_logind_activate(struct launcher_logind *wl) - return 0; - } - -+static int -+launcher_logind_get_session(char **session) -+{ -+ int r; -+ -+ r = sd_pid_get_session(getpid(), session); -+ if (r < 0) { -+ if (r != -ENODATA) { -+ weston_log("logind: not running in a systemd session: %d\n", r); -+ return r; -+ } -+ } else { -+ return r; -+ } -+ -+ /* When not inside a systemd session look if there is a suitable one */ -+ r = sd_uid_get_display(getuid(), session); -+ if (r < 0) -+ weston_log("logind: cannot find systemd session for uid: %d %d\n", getuid(), r); -+ -+ return r; -+} -+ - static int - launcher_logind_connect(struct weston_launcher **out, struct weston_compositor *compositor, - int tty, const char *seat_id, bool sync_drm) -@@ -759,11 +782,9 @@ launcher_logind_connect(struct weston_launcher **out, struct weston_compositor * - goto err_wl; - } - -- r = sd_pid_get_session(getpid(), &wl->sid); -- if (r < 0) { -- weston_log("logind: not running in a systemd session\n"); -+ r = launcher_logind_get_session(&wl->sid); -+ if (r < 0) - goto err_seat; -- } - - t = NULL; - r = sd_session_get_seat(wl->sid, &t); --- -GitLab diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch b/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch deleted file mode 100644 index cb122590b..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston/0005-correctly-tear-down-drm-backend.patch +++ /dev/null @@ -1,37 +0,0 @@ -commit 5130a8c21a9deea54e8f7c96a3a5049e2d60a210 -Author: Marius Vlad -Date: Thu Jul 30 14:47:32 2020 +0300 - -backend-drm: Correctly tear down the DRM backend - -It seem that we skipped to put back in TEXT mode the tty, in case a DRM -device node wasn't present at that time, or it isn't present at all. This -orders the destroy part correctly as to handle that case as well. - -As a side effect, as the tty will still be set to GRAPHICS mode we will -require a manual change of the tty number, which might be not possible -on all systems. Properly putting back the tty to TEXT mode should avoid -that, and allows to re-use the same tty no in case the DRM device has -been created at a later point in time. - -Upstream-Status: Backport -Signed-off-by: Marius Vlad -Signed-off-by: Scott Murray - -diff --git a/libweston/backend-drm/drm.c b/libweston/backend-drm/drm.c -index 980a12da..1cf61a33 100644 ---- a/libweston/backend-drm/drm.c -+++ b/libweston/backend-drm/drm.c -@@ -3031,10 +3031,10 @@ err_sprite: - destroy_sprites(b); - err_udev_dev: - udev_device_unref(drm_device); --err_launcher: -- weston_launcher_destroy(compositor->launcher); - err_udev: - udev_unref(b->udev); -+err_launcher: -+ weston_launcher_destroy(compositor->launcher); - err_compositor: - weston_compositor_shutdown(compositor); - free(b); diff --git a/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend b/meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend similarity index 70% rename from meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend rename to meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend index f627f5cb2..685894116 100644 --- a/meta-agl-core/recipes-graphics/wayland/weston_8.0.%.bbappend +++ b/meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend @@ -1 +1 @@ -require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_8.0_aglcore.inc', '', d)} +require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_10.0_aglcore.inc', '', d)} diff --git a/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc new file mode 100644 index 000000000..90ccbc8fa --- /dev/null +++ b/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc @@ -0,0 +1,10 @@ +FILESEXTRAPATHS:append := ":${THISDIR}/weston" + +# Workaround for incorrect upstream definition +PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[headless] = "-Dbackend-headless=true" +PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}" +PACKAGECONFIG:append = "${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', ' remoting', '', d)}" + +# seat management is only for waltham-transmitter-plugin +SRC_URI:append = "${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', 'file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch', '', d)}" diff --git a/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc deleted file mode 100644 index c73015024..000000000 --- a/meta-agl-core/recipes-graphics/wayland/weston_8.0_aglcore.inc +++ /dev/null @@ -1,24 +0,0 @@ -FILESEXTRAPATHS:append := ":${THISDIR}/weston" - -SRC_URI:append = "\ - file://0002-Allow-weston-to-start-from-a-systemd-user-session.patch \ - file://0005-correctly-tear-down-drm-backend.patch \ - file://0001-clients-window-Add-set_app_id-function-change-Waylan.patch \ - file://0001-libweston-backend-drm-Re-order-gbm-destruction-at-DR.patch \ - file://0001-gl-renderer-Avoid-double-free-on-init-failure.patch \ - file://0001-libweston-Remove-source-repaint_timer-in-weston_comp.patch \ - file://0001-libweston-desktop-rename-weston_desktop_client_destr.patch \ - file://0002-libweston-desktop-introduce-weston_desktop_client_de.patch \ - file://0003-libweston-desktop-add-weston_desktop_xwayland_fini.patch \ - file://0001-libweston-add-weston_layer_fini.patch \ - " - -# Workaround for incorrect upstream definition -PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[headless] = "-Dbackend-headless=true" -PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}" -PACKAGECONFIG:append = "${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', ' remoting', '', d)}" - -# seat management is only for waltham-transmitter-plugin -SRC_URI:append = "${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', 'file://0001-libweston-Migrate-weston_seat_init-release-to-public.patch', '', d)}" -- 2.16.6