summaryrefslogtreecommitdiffstats
path: root/meta-agl-profile-graphical/recipes-graphics/wayland
diff options
context:
space:
mode:
authorJan-Simon Möller <jsmoeller@linuxfoundation.org>2020-02-21 16:37:55 +0100
committerJan-Simon Möller <jsmoeller@linuxfoundation.org>2020-02-21 16:37:55 +0100
commitdf4ed283e18f3dfe9f42f0012b12cb0af57bcdbb (patch)
tree40ad4b148e24c47d319bbbd23bbfc4af75a36e94 /meta-agl-profile-graphical/recipes-graphics/wayland
parentd40e55dbb362c455f0ee863b23c21ac2628cf3f8 (diff)
parent47aa65ba73e1b29459171de24fb0ee0040cbb39c (diff)
Merge remote-tracking branch 'agl/next'
* agl/next: meta-agl-bsp: Add CONFIG_LSM workaround for 5.1+ kernels meta-agl-profile-cluster-qt5: disable qtbase patches zeus updates for dragonboard-410c meta-security: activates dbus-cynagora recipes-graphics/wayland/weston: Expose weston_output_damage() meta-agl-profile-core: tweak udisks2 configuration for AGL meta-agl-bsp/meta-arago: update weston bbappend [RCAR] Update rcar driver weston 7 bsp 3.21.0 [RCAR] Update rcar driver weston 7 bsp 3.21.0 [RCAR] Split ADSP path for ulcb and ulcb-kf Fix nss-localuser post install meta-agl-bsp: meta-raspberrypi: handle zeus upgrade meta-agl-profile-core: add patch for systemd-udevd SECLABEL crash meta-security: disable dbus-cynara patches meta-agl-bsp: handle ptest-runner upgrade meta-agl-distro: Add inc file for next branch over-rides meta-agl-distro: BBMASK problematic upstream meta-security bbappend meta-agl-distro: prefer linux-yocto 4.19 LTS kernel meta-agl-profile-graphical-qt5: enable qt5location services meta-agl-profile-core: update most recipe meta-agl-profile-core: update neardal recipe Update base local.conf.sample meta-agl-profile-graphical: don't always build agl-compositor meta-agl-profile-graphical: update weston and weston-init meta-agl-profile-graphical: update wayland-ivi-extension for weston 7.0.0 meta-agl-distro: add polkit to DISTRO_FEATURES meta-agl-profile-core: update fontconfig bbappend meta-agl-profile-core: switch to udisks2 meta-security: handle systemd upgrade meta-agl-profile-graphical-qt5: handle qtwayland upgrade meta-agl-profile-core: handle freetype upgrade meta-agl-bsp meta-agl-profile-core: upgrade to opencv 4.x meta-agl-profile-core: update rtl-sdr recipe for zeus meta-security meta-app-framework: handle xmlsec1 upgrade meta-agl-profile-graphical: upgrade to gstreamer 1.16 meta-agl-profile-core: remove libmicrohttpd backport meta-agl-profile-core: remove backported curl and nghttp2 recipes meta-agl-profile-core: remove libnfc recipe meta-agl-profile-core: remove connman backport meta-agl-profile-graphical: remove weston 5.0.0 patches meta-agl-profile-core: remove old glibc patch meta-agl-bsp/meta-intel: remove linux-firmware_git.bbappend meta-agl-bsp: remove weston and wayland-protocols backports meta-app-framework: remove libzip recipe meta-security: remove keyutils recipe Declare layer compatibility with zeus Change-Id: Ie8ee1e37958279e7cf2d503c54ffacb46ba0c31c
Diffstat (limited to 'meta-agl-profile-graphical/recipes-graphics/wayland')
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch6
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch13
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend37
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in17
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in1
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch39
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch51
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch57
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch30
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch2
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-removed-assert.patch11
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0003-ivi-shell-introduction-of-IVI_INVALID_ID.patch20
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0004-layout-interface-added-interface-to-change-surface-id.patch73
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch74
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0006-ivi-layout-introcuded-surface_create_and_configure.patch117
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0007-ivi-shell-linked-libweston-desktop-and-added-structs.patch74
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0008-ivi-layout-use-libweston-desktop-api-for-views.patch30
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0009-ivi-shell-added-libweston-desktop-api_implementation.patch166
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0010-ivi-shell-remove-surface_destroy_listener.patch24
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0011-ivi-shell-create-weston-desktop-in_wet_shell_init.patch30
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch133
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0013-simple-egl-remove-ivi-application-support.patch165
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0014-simple-shm-remove-ivi-application-support.patch107
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0015-window-client-remove-ivi-application-support.patch130
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch254
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-compositor-drm-introduce-drm_get_dmafd_from_view.patch109
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-drm-get-stride-from-drm_get_dma_fd_from_view.patch59
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend4
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_5.0.0.bbappend27
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend10
-rw-r--r--meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend15
35 files changed, 140 insertions, 1751 deletions
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
index 7deb01e99..d86e1f22e 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0002-ivi-id-agent-added-ivi-id-agent.patch
@@ -73,7 +73,7 @@ index 0000000..7354a7e
+pkg_check_modules(WAYLAND_SERVER wayland-server REQUIRED)
+pkg_check_modules(WESTON weston>=5.0.0 REQUIRED)
+pkg_check_modules(PIXMAN pixman-1 REQUIRED)
-+pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-6 REQUIRED)
++pkg_check_modules(LIBWESTON_DESKTOP libweston-desktop-7 REQUIRED)
+
+find_package(Threads REQUIRED)
+
@@ -149,8 +149,8 @@ index 0000000..9bc115d
+#include <limits.h>
+
+#include <weston.h>
-+#include <libweston-desktop.h>
-+#include "config-parser.h"
++#include <libweston-desktop/libweston-desktop.h>
++#include "libweston/config-parser.h"
+#include <weston/ivi-layout-export.h>
+
+#ifndef INVALID_ID
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch
new file mode 100644
index 000000000..dddbfd370
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension/0006-fix-plugin-registry-include.patch
@@ -0,0 +1,13 @@
+diff --git a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
+index a0bfc48..257a1dc 100644
+--- a/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
++++ b/ivi-input-modules/ivi-input-controller/src/ivi-input-controller.c
+@@ -31,7 +31,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+
+-#include "plugin-registry.h"
++#include <libweston/plugin-registry.h>
+ #include "ilm_types.h"
+
+ #include "ivi-input-server-protocol.h"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
index 3935929a5..68fc694a8 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/wayland-ivi-extension_git.bb
@@ -12,6 +12,7 @@ SRC_URI = "git://github.com/GENIVI/${BPN}.git;protocol=http \
file://0002-add-LayerManagerControl-error-status.patch \
file://0004-ivi-ilmcontrol-added-focus-notification.patch \
file://0005-disable-EGLWLMockNavigation-example-build.patch \
+ file://0006-fix-plugin-registry-include.patch \
"
SRC_URI_append_wandboard = " file://wandboard_fix_build.patch"
SRCREV = "736fb654ac81230cf4f9e51a5772d3a02d7639bf"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
index 247aeeee3..c71402fed 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init.bbappend
@@ -2,17 +2,14 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
inherit agl-graphical
-
WESTONSTART ??= "${@bb.utils.contains("DISTRO_FEATURES", "agl-compositor", "/usr/bin/agl-compositor", "/usr/bin/weston",d)} ${WESTONARGS}"
WESTONSTART_append = " ${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", " --log=${DISPLAY_XDG_RUNTIME_DIR}/weston.log", "",d)}"
-DROPIN_NAME = "weston-init"
-
WIFILES = " \
file://weston.conf.in \
file://tmpfiles.conf.in \
file://zz-dri.rules.in \
- file://zz-input.rules \
+ file://zz-input.rules.in \
file://zz-tty.rules.in \
"
@@ -23,37 +20,34 @@ WIFILES_append_imx = " \
SRC_URI_append = " ${WIFILES}"
do_install_append() {
+ # Remove upstream weston.ini to avoid conflict with weston-ini-conf package
+ rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
- # files
- files=$(echo ${WIFILES} | sed s,file://,,g)
+ # Remove upstream weston udev rules just to be safe
+ rm -f ${D}${sysconfdir}/udev/rules.d/71-weston-drm.rules
- # process ".in" files
+ # Process ".in" files
+ files=$(echo ${WIFILES} | sed s,file://,,g)
for f in ${files}; do
g=${f%.in}
if [ "${f}" != "${g}" ]; then
sed -e "s,@WESTONUSER@,${WESTONUSER},g" \
-e "s,@WESTONGROUP@,${WESTONGROUP},g" \
-e "s,@XDG_RUNTIME_DIR@,${DISPLAY_XDG_RUNTIME_DIR},g" \
- -e "s,@WESTONTTY@,${WESTONTTY},g" \
-e "s,@WESTONSTART@,${WESTONSTART},g" \
${WORKDIR}/${f} > ${WORKDIR}/${g}
fi
done
- # removes any unexpected entry from weston.service
- for x in Group User ExecStart PAMName; do
- sed -i "/^ *$x *=/d" ${D}${systemd_system_unitdir}/weston.service
- done
-
- # install weston drop-in
- install -d ${D}${systemd_system_unitdir}/weston.service.d
- install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston.service.d/${DROPIN_NAME}.conf
+ # Install weston drop-in
+ install -d ${D}${systemd_system_unitdir}/weston@.service.d
+ install -m644 ${WORKDIR}/weston.conf ${D}/${systemd_system_unitdir}/weston@.service.d/weston-init.conf
- # install tmpfiles drop-in
+ # Install tmpfiles drop-in
install -d ${D}${libdir}/tmpfiles.d
- install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/${DROPIN_NAME}.conf
+ install -m644 ${WORKDIR}/tmpfiles.conf ${D}${libdir}/tmpfiles.d/weston-init.conf
- # install udev rules
+ # Install udev rules
install -d ${D}${sysconfdir}/udev/rules.d
for f in ${files}; do
g=${f%.in}
@@ -65,8 +59,9 @@ do_install_append() {
}
FILES_${PN} += " \
- ${libdir}/tmpfiles.d/*.conf \
- ${systemd_system_unitdir}/weston.service.d/${DROPIN_NAME}.conf \
+ ${libdir}/tmpfiles.d/ \
+ ${systemd_system_unitdir}/weston@.service.d/ \
"
+SYSTEMD_AUTO_ENABLE = "enable"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
index 89c436695..211136cc9 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.conf.in
@@ -1,17 +1,14 @@
-[Unit]
-Conflicts=getty@tty@WESTONTTY@.service
[Service]
Type=notify
-User=@WESTONUSER@
-Group=@WESTONGROUP@
Environment="XDG_RUNTIME_DIR=@XDG_RUNTIME_DIR@"
Environment="XDG_RUNTIMESHARE_DIR=@XDG_RUNTIME_DIR@/share"
ExecStartPre=/bin/mkdir -p @XDG_RUNTIME_DIR@/share
ExecStartPre=+/usr/bin/chsmack -a User::App-Shared -t @XDG_RUNTIME_DIR@/share
+# Note that clearing PAMName (thus not having PAMName=login) disables
+# logind support for the session, which allows setting XDG_RUNTIME_DIR
+# to something other than /run/user/% (as is done above).
+# Without systemd-logind support, weston needs to be patched to allow
+# its direct launcher to work for non-root users in this scenario.
+PAMName=
+ExecStart=
ExecStart=@WESTONSTART@
-TTYPath=/dev/tty@WESTONTTY@
-StandardInput=tty
-TTYReset=yes
-TTYVHangup=yes
-TTYVTDisallocate=yes
-UtmpIdentifier=tty@WESTONTTY@
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
index 707d12e28..51c68c303 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-dri.rules.in
@@ -1 +1 @@
-SUBSYSTEM=="drm", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
+SUBSYSTEM=="drm", MODE="0660", GROUP="@WESTONGROUP@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules
deleted file mode 100644
index c0842135a..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules
+++ /dev/null
@@ -1 +0,0 @@
-SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
new file mode 100644
index 000000000..fb3e677f4
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-input.rules.in
@@ -0,0 +1 @@
+SUBSYSTEM=="input", MODE="0660", GROUP="input", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
index bfdf55b81..e5ce4b553 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/zz-tty.rules.in
@@ -1 +1 @@
-SUBSYSTEM=="tty", KERNEL=="tty@WESTONTTY@", OWNER="@WESTONUSER@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston.service"
+SUBSYSTEM=="tty", KERNEL=="tty7", OWNER="@WESTONUSER@", SECLABEL{smack}="*", TAG+="systemd", ENV{SYSTEMD_WANTS}="weston@@WESTONUSER@.service"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch
deleted file mode 100644
index 3a59ba0c8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_2.0.0.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 6c145cea35f0b77613d6e3f48679c976b9839d7c Mon Sep 17 00:00:00 2001
-From: Ronan Le Martret <ronan.lemartret@iot.bzh>
-Date: Wed, 31 May 2017 22:48:18 +0000
-Subject: [PATCH] Allow regular users to launch Weston
-
-Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
-
-diff --git a/configure.ac b/configure.ac
-index 50f8e013..2043b9b0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -156,6 +156,12 @@ PKG_CHECK_MODULES(XKBCOMMON_COMPOSE, [xkbcommon >= 0.5.0],
- [AC_DEFINE(HAVE_XKBCOMMON_COMPOSE, 1,
- [Define if xkbcommon is 0.5.0 or newer])],true)
-
-+AC_ARG_ENABLE(sys-uid, [ --enable-sys-uid],,
-+ enable_sys_uid=no)
-+if test x$enable_sys_uid = xyes; then
-+ AC_DEFINE(ENABLE_SYS_UID, [1], [Allow regular users to launch Weston])
-+fi
-+
- AC_ARG_ENABLE(setuid-install, [ --enable-setuid-install],,
- enable_setuid_install=yes)
- AM_CONDITIONAL(ENABLE_SETUID_INSTALL, test x$enable_setuid_install = xyes)
-diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c
-index e0ce6d63..d0db9bb5 100644
---- a/libweston/launcher-direct.c
-+++ b/libweston/launcher-direct.c
-@@ -283,8 +283,10 @@ launcher_direct_connect(struct weston_launcher **out, struct weston_compositor *
- {
- struct launcher_direct *launcher;
-
-+#ifndef ENABLE_SYS_UID
- if (geteuid() != 0)
- return -EINVAL;
-+#endif
-
- launcher = zalloc(sizeof(*launcher));
- if (launcher == NULL)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
new file mode 100644
index 000000000..362f6b064
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-Allow-regular-users-to-launch-Weston_7.0.0.patch
@@ -0,0 +1,51 @@
+Allow regular users to launch Weston
+
+Signed-off-by: Ronan Le Martret <ronan.lemartret@iot.bzh>
+[Reworked for Weston 7.0.0 switch to meson]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+diff --git a/libweston/launcher-direct.c b/libweston/launcher-direct.c
+index 9fa329b6..8e218804 100644
+--- a/libweston/launcher-direct.c
++++ b/libweston/launcher-direct.c
+@@ -291,8 +291,10 @@ launcher_direct_connect(struct weston_launcher **out, struct weston_compositor *
+ {
+ struct launcher_direct *launcher;
+
++#ifndef ENABLE_USER_START
+ if (geteuid() != 0)
+ return -EINVAL;
++#endif
+
+ launcher = zalloc(sizeof(*launcher));
+ if (launcher == NULL)
+diff --git a/libweston/meson.build b/libweston/meson.build
+index d8d3fc07..0d39ebf1 100644
+--- a/libweston/meson.build
++++ b/libweston/meson.build
+@@ -216,6 +216,10 @@ if get_option('weston-launch')
+ meson.add_install_script('echo', 'REMINDER: You are installing weston-launch, please make it setuid-root.')
+ endif
+
++if get_option('enable-user-start')
++ config_h.set('ENABLE_USER_START', '1')
++endif
++
+ subdir('renderer-gl')
+ subdir('backend-drm')
+ subdir('backend-fbdev')
+diff --git a/meson_options.txt b/meson_options.txt
+index d5bf1d54..c93f31d1 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -217,3 +217,10 @@ option(
+ value: false,
+ description: 'Generate documentation'
+ )
++
++option(
++ 'enable-user-start',
++ type: 'boolean',
++ value: true,
++ description: 'Tests: enable start as non-root user'
++)
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch
deleted file mode 100644
index b1e0b8a59..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
-index 58f53bc5..34cdce27 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -484,13 +484,14 @@ wet_shell_init(struct weston_compositor *compositor,
- int *argc, char *argv[])
- {
- struct ivi_shell *shell;
-- int retval = -1;
-
- shell = zalloc(sizeof *shell);
- if (shell == NULL)
-- return -1;
-+ goto err_shell;
-
- init_ivi_shell(compositor, shell);
-+ /* TODO deinit_ivi_shell should be implemented, since init_ivi_shell is
-+ * initializing multiple lists. */
-
- shell->destroy_listener.notify = shell_destroy;
- wl_signal_add(&compositor->destroy_signal, &shell->destroy_listener);
-@@ -499,22 +500,29 @@ wet_shell_init(struct weston_compositor *compositor,
- wl_signal_add(&compositor->wake_signal, &shell->wake_listener);
-
- if (input_panel_setup(shell) < 0)
-- goto out;
-+ goto err_shell;
-
- shell->text_backend = text_backend_init(compositor);
- if (!shell->text_backend)
-- goto out;
-+ goto err_shell;
-
- if (wl_global_create(compositor->wl_display,
- &ivi_application_interface, 1,
- shell, bind_ivi_application) == NULL)
-- goto out;
-+ goto err_text_backend;
-
- ivi_layout_init_with_compositor(compositor);
-+ /* TODO ivi_layout_destroy should be implemented, since multiple lists
-+ * and signals are initialized.*/
- shell_add_bindings(compositor, shell);
-
-- retval = 0;
-+ return IVI_SUCCEEDED;
-
--out:
-- return retval;
-+err_text_backend:
-+ text_backend_destroy(shell->text_backend);
-+
-+err_shell:
-+ free(shell);
-+
-+ return IVI_FAILED;
- }
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
new file mode 100644
index 000000000..32755c4b3
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0001-libweston-Expose-weston_output_damage-in-libweston.patch
@@ -0,0 +1,30 @@
+From 7e5fb58591a29d60657158262a0772796bfd3461 Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Wed, 12 Feb 2020 13:18:19 +0200
+Subject: [PATCH] libweston: Expose weston_output_damage() in libweston
+
+We have weston_compositor_damage_all() exported and declared but users
+might need weston_output_damage() to refer to an individual output. The
+symbol already exported so just declare it.
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ include/libweston/libweston.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/include/libweston/libweston.h b/include/libweston/libweston.h
+index 1439775e..9fac5be0 100644
+--- a/include/libweston/libweston.h
++++ b/include/libweston/libweston.h
+@@ -1604,6 +1604,8 @@ weston_compositor_schedule_repaint(struct weston_compositor *compositor);
+ void
+ weston_compositor_damage_all(struct weston_compositor *compositor);
+ void
++weston_output_damage(struct weston_output *woutput);
++void
+ weston_compositor_wake(struct weston_compositor *compositor);
+ void
+ weston_compositor_sleep(struct weston_compositor *compositor);
+--
+2.20.1
+
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch
index 51779cf45..05ce7de30 100644
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch
@@ -40,7 +40,7 @@ index 2c450f3..1fbfeeb 100644
#include "ivi-layout-private.h"
#include "ivi-layout-shell.h"
-
-+#include "plugin-registry.h"
++#include <libweston/plugin-registry.h>
#include "shared/helpers.h"
#include "shared/os-compatibility.h"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-removed-assert.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-removed-assert.patch
deleted file mode 100644
index 4507e769c..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0002-ivi-shell-removed-assert.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-index e9ddf9a4..f3156d35 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -114,7 +114,6 @@ shell_surface_send_configure(struct weston_surface *surface,
- struct ivi_shell_surface *shsurf;
-
- shsurf = get_ivi_shell_surface(surface);
-- assert(shsurf);
- if (!shsurf)
- return;
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0003-ivi-shell-introduction-of-IVI_INVALID_ID.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0003-ivi-shell-introduction-of-IVI_INVALID_ID.patch
deleted file mode 100644
index 9f696d8a2..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0003-ivi-shell-introduction-of-IVI_INVALID_ID.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/ivi-shell/ivi-layout-export.h b/ivi-shell/ivi-layout-export.h
-index 016d8b5c..02bfb2cb 100644
---- a/ivi-shell/ivi-layout-export.h
-+++ b/ivi-shell/ivi-layout-export.h
-@@ -56,6 +56,7 @@ extern "C" {
- #endif /* __cplusplus */
-
- #include <stdint.h>
-+#include <limits.h>
-
- #include "stdbool.h"
- #include "compositor.h"
-@@ -63,6 +64,7 @@ extern "C" {
-
- #define IVI_SUCCEEDED (0)
- #define IVI_FAILED (-1)
-+#define IVI_INVALID_ID UINT_MAX
-
- struct ivi_layout_layer;
- struct ivi_layout_screen;
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0004-layout-interface-added-interface-to-change-surface-id.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0004-layout-interface-added-interface-to-change-surface-id.patch
deleted file mode 100644
index 6401c5b81..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0004-layout-interface-added-interface-to-change-surface-id.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-index e1e897ed..5b1f12f0 100644
---- a/ivi-shell/ivi-layout-export.h
-+++ b/ivi-shell/ivi-layout-export.h
-@@ -320,6 +320,12 @@ struct ivi_layout_interface {
- struct ivi_layout_surface *ivisurf,
- uint32_t duration);
-
-+ /**
-+ * \brief set id of ivi_layout_surface
-+ */
-+ int32_t (*surface_set_id)(struct ivi_layout_surface *ivisurf,
-+ uint32_t id_surface);
-+
- /**
- * layer controller interface
- */
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index 298e18ea..fa8e75f6 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -1901,6 +1901,44 @@ ivi_layout_surface_set_transition_duration(struct ivi_layout_surface *ivisurf,
- return 0;
- }
-
-+/*
-+ * This interface enables e.g. an id agent to set the id of an ivi-layout
-+ * surface, that has been created by a desktop application. This can only be
-+ * done once as long as the initial surface id equals IVI_INVALID_ID. Afterwards
-+ * two events are emitted, namely surface_created and surface_configured.
-+ */
-+static int32_t
-+ivi_layout_surface_set_id(struct ivi_layout_surface *ivisurf,
-+ uint32_t id_surface)
-+{
-+ struct ivi_layout *layout = get_instance();
-+ struct ivi_layout_surface *search_ivisurf = NULL;
-+
-+ if (!ivisurf) {
-+ weston_log("%s: invalid argument\n", __func__);
-+ return IVI_FAILED;
-+ }
-+
-+ if (ivisurf->id_surface != IVI_INVALID_ID) {
-+ weston_log("surface id can only be set once\n");
-+ return IVI_FAILED;
-+ }
-+
-+ search_ivisurf = get_surface(&layout->surface_list, id_surface);
-+ if (search_ivisurf) {
-+ weston_log("id_surface(%d) is already created\n", id_surface);
-+ return IVI_FAILED;
-+ }
-+
-+ ivisurf->id_surface = id_surface;
-+
-+ wl_signal_emit(&layout->surface_notification.created, ivisurf);
-+ wl_signal_emit(&layout->surface_notification.configure_changed,
-+ ivisurf);
-+
-+ return IVI_SUCCEEDED;
-+}
-+
- static int32_t
- ivi_layout_surface_set_transition(struct ivi_layout_surface *ivisurf,
- enum ivi_layout_transition_type type,
-@@ -2058,6 +2096,7 @@ static struct ivi_layout_interface ivi_layout_interface = {
- .surface_get_weston_surface = ivi_layout_surface_get_weston_surface,
- .surface_set_transition = ivi_layout_surface_set_transition,
- .surface_set_transition_duration = ivi_layout_surface_set_transition_duration,
-+ .surface_set_id = ivi_layout_surface_set_id,
-
- /**
- * layer controller interfaces
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch
deleted file mode 100644
index ddd949e35..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0005-ivi-layout-introcuded-configure_desktop_changed.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-index 5b1f12f0..dd0997aa 100644
---- a/ivi-shell/ivi-layout-export.h
-+++ b/ivi-shell/ivi-layout-export.h
-@@ -187,6 +187,16 @@ struct ivi_layout_interface {
- */
- int32_t (*add_listener_configure_surface)(struct wl_listener *listener);
-
-+ /**
-+ * \brief add a listener for notification when desktop_surface is configured
-+ *
-+ * When an desktop_surface is configured, a signal is emitted
-+ * to the listening controller plugins.
-+ * The pointer of the configured desktop_surface is sent as the void *data argument
-+ * to the wl_listener::notify callback function of the listener.
-+ */
-+ int32_t (*add_listener_configure_desktop_surface)(struct wl_listener *listener);
-+
- /**
- * \brief Get all ivi_surfaces which are currently registered and managed
- * by the services
-diff --git a/ivi-shell/ivi-layout-private.h b/ivi-shell/ivi-layout-private.h
-index 2b8bd472..fe5be01a 100644
---- a/ivi-shell/ivi-layout-private.h
-+++ b/ivi-shell/ivi-layout-private.h
-@@ -104,6 +104,7 @@ struct ivi_layout {
- struct wl_signal created;
- struct wl_signal removed;
- struct wl_signal configure_changed;
-+ struct wl_signal configure_desktop_changed;
- } surface_notification;
-
- struct weston_layer layout_layer;
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index fa8e75f6..690af742 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -1040,6 +1040,21 @@ ivi_layout_add_listener_configure_surface(struct wl_listener *listener)
- return IVI_SUCCEEDED;
- }
-
-+static int32_t
-+ivi_layout_add_listener_configure_desktop_surface(struct wl_listener *listener)
-+{
-+ struct ivi_layout *layout = get_instance();
-+
-+ if (!listener) {
-+ weston_log("ivi_layout_add_listener_configure_desktop_surface: invalid argument\n");
-+ return IVI_FAILED;
-+ }
-+
-+ wl_signal_add(&layout->surface_notification.configure_desktop_changed, listener);
-+
-+ return IVI_SUCCEEDED;
-+}
-+
- uint32_t
- ivi_layout_get_id_of_surface(struct ivi_layout_surface *ivisurf)
- {
-@@ -2057,6 +2072,7 @@ ivi_layout_init_with_compositor(struct weston_compositor *ec)
- wl_signal_init(&layout->surface_notification.created);
- wl_signal_init(&layout->surface_notification.removed);
- wl_signal_init(&layout->surface_notification.configure_changed);
-+ wl_signal_init(&layout->surface_notification.configure_desktop_changed);
-
- /* Add layout_layer at the last of weston_compositor.layer_list */
- weston_layer_init(&layout->layout_layer, ec);
-@@ -2081,6 +2097,7 @@ static struct ivi_layout_interface ivi_layout_interface = {
- .add_listener_create_surface = ivi_layout_add_listener_create_surface,
- .add_listener_remove_surface = ivi_layout_add_listener_remove_surface,
- .add_listener_configure_surface = ivi_layout_add_listener_configure_surface,
-+ .add_listener_configure_desktop_surface = ivi_layout_add_listener_configure_desktop_surface,
- .get_surface = shell_get_ivi_layout_surface,
- .get_surfaces = ivi_layout_get_surfaces,
- .get_id_of_surface = ivi_layout_get_id_of_surface,
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0006-ivi-layout-introcuded-surface_create_and_configure.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0006-ivi-layout-introcuded-surface_create_and_configure.patch
deleted file mode 100644
index 04461a1d4..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0006-ivi-layout-introcuded-surface_create_and_configure.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-index 68ca68ba..c86cbb11 100644
---- a/ivi-shell/ivi-layout-shell.h
-+++ b/ivi-shell/ivi-layout-shell.h
-@@ -39,6 +39,14 @@ struct weston_view;
- struct weston_surface;
- struct ivi_layout_surface;
-
-+void
-+ivi_layout_desktop_surface_configure(struct ivi_layout_surface *ivisurf,
-+ int32_t width, int32_t height);
-+
-+struct ivi_layout_surface*
-+ivi_layout_desktop_surface_create(struct weston_surface *wl_surface,
-+ uint32_t id_surface);
-+
- void
- ivi_layout_surface_configure(struct ivi_layout_surface *ivisurf,
- int32_t width, int32_t height);
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index 690af742..086d0fd2 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -1995,20 +1995,8 @@ ivi_layout_surface_dump(struct weston_surface *surface,
- * methods of interaction between ivi-shell with ivi-layout
- */
-
--void
--ivi_layout_surface_configure(struct ivi_layout_surface *ivisurf,
-- int32_t width, int32_t height)
--{
-- struct ivi_layout *layout = get_instance();
--
-- /* emit callback which is set by ivi-layout api user */
-- wl_signal_emit(&layout->surface_notification.configure_changed,
-- ivisurf);
--}
--
--struct ivi_layout_surface*
--ivi_layout_surface_create(struct weston_surface *wl_surface,
-- uint32_t id_surface)
-+static struct ivi_layout_surface*
-+surface_create(struct weston_surface *wl_surface, uint32_t id_surface)
- {
- struct ivi_layout *layout = get_instance();
- struct ivi_layout_surface *ivisurf = NULL;
-@@ -2018,14 +2006,6 @@ ivi_layout_surface_create(struct weston_surface *wl_surface,
- return NULL;
- }
-
-- ivisurf = get_surface(&layout->surface_list, id_surface);
-- if (ivisurf != NULL) {
-- if (ivisurf->surface != NULL) {
-- weston_log("id_surface(%d) is already created\n", id_surface);
-- return NULL;
-- }
-- }
--
- ivisurf = calloc(1, sizeof *ivisurf);
- if (ivisurf == NULL) {
- weston_log("fails to allocate memory\n");
-@@ -2049,7 +2029,55 @@ ivi_layout_surface_create(struct weston_surface *wl_surface,
-
- wl_list_insert(&layout->surface_list, &ivisurf->link);
-
-- wl_signal_emit(&layout->surface_notification.created, ivisurf);
-+ return ivisurf;
-+}
-+
-+void
-+ivi_layout_desktop_surface_configure(struct ivi_layout_surface *ivisurf,
-+ int32_t width, int32_t height)
-+{
-+ struct ivi_layout *layout = get_instance();
-+
-+ /* emit callback which is set by ivi-layout api user */
-+ wl_signal_emit(&layout->surface_notification.configure_desktop_changed,
-+ ivisurf);
-+}
-+
-+struct ivi_layout_surface*
-+ivi_layout_desktop_surface_create(struct weston_surface *wl_surface,
-+ uint32_t id_surface)
-+{
-+ return surface_create(wl_surface, id_surface);
-+}
-+
-+void
-+ivi_layout_surface_configure(struct ivi_layout_surface *ivisurf,
-+ int32_t width, int32_t height)
-+{
-+ struct ivi_layout *layout = get_instance();
-+
-+ /* emit callback which is set by ivi-layout api user */
-+ wl_signal_emit(&layout->surface_notification.configure_changed,
-+ ivisurf);
-+}
-+
-+struct ivi_layout_surface*
-+ivi_layout_surface_create(struct weston_surface *wl_surface,
-+ uint32_t id_surface)
-+{
-+ struct ivi_layout *layout = get_instance();
-+ struct ivi_layout_surface *ivisurf = NULL;
-+
-+ ivisurf = get_surface(&layout->surface_list, id_surface);
-+ if (ivisurf) {
-+ weston_log("id_surface(%d) is already created\n", id_surface);
-+ return NULL;
-+ }
-+
-+ ivisurf = surface_create(wl_surface, id_surface);
-+
-+ if (ivisurf)
-+ wl_signal_emit(&layout->surface_notification.created, ivisurf);
-
- return ivisurf;
- }
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0007-ivi-shell-linked-libweston-desktop-and-added-structs.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0007-ivi-shell-linked-libweston-desktop-and-added-structs.patch
deleted file mode 100644
index 9286ba00b..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0007-ivi-shell-linked-libweston-desktop-and-added-structs.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index cdf82ab4..d990d400 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -993,6 +993,7 @@ ivi_shell_la_LDFLAGS = -module -avoid-version
- ivi_shell_la_LIBADD = \
- libshared.la \
- libweston-@LIBWESTON_MAJOR@.la \
-+ libweston-desktop-@LIBWESTON_MAJOR@.la \
- $(COMPOSITOR_LIBS)
- ivi_shell_la_CFLAGS = $(AM_CFLAGS) $(COMPOSITOR_CFLAGS)
- ivi_shell_la_SOURCES = \
-diff --git a/ivi-shell/ivi-layout-private.h b/ivi-shell/ivi-layout-private.h
-index fe5be01a..c054130b 100644
---- a/ivi-shell/ivi-layout-private.h
-+++ b/ivi-shell/ivi-layout-private.h
-@@ -30,6 +30,7 @@
-
- #include "compositor.h"
- #include "ivi-layout-export.h"
-+#include "libweston-desktop/libweston-desktop.h"
-
- struct ivi_layout_view {
- struct wl_list link; /* ivi_layout::view_list */
-@@ -52,6 +53,7 @@ struct ivi_layout_surface {
-
- struct ivi_layout *layout;
- struct weston_surface *surface;
-+ struct weston_desktop_surface *weston_desktop_surface;
-
- struct ivi_layout_surface_properties prop;
-
-diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
-index f3156d35..84db2c97 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -44,7 +44,7 @@
-
- #include "ivi-shell.h"
- #include "ivi-application-server-protocol.h"
--#include "ivi-layout-export.h"
-+#include "ivi-layout-private.h"
- #include "ivi-layout-shell.h"
- #include "shared/helpers.h"
- #include "compositor/weston.h"
-@@ -271,6 +271,8 @@ application_surface_create(struct wl_client *client,
- return;
- }
-
-+ layout_surface->weston_desktop_surface = NULL;
-+
- ivisurf = zalloc(sizeof *ivisurf);
- if (ivisurf == NULL) {
- wl_resource_post_no_memory(resource);
-diff --git a/ivi-shell/ivi-shell.h b/ivi-shell/ivi-shell.h
-index e35f75f2..be430853 100644
---- a/ivi-shell/ivi-shell.h
-+++ b/ivi-shell/ivi-shell.h
-@@ -30,6 +30,7 @@
- #include <stdint.h>
-
- #include "compositor.h"
-+#include "libweston-desktop/libweston-desktop.h"
-
- struct ivi_shell
- {
-@@ -37,6 +38,7 @@ struct ivi_shell
-
- struct weston_compositor *compositor;
-
-+ struct weston_desktop *desktop;
- struct wl_list ivi_surface_list; /* struct ivi_shell_surface::link */
-
- struct text_backend *text_backend;
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0008-ivi-layout-use-libweston-desktop-api-for-views.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0008-ivi-layout-use-libweston-desktop-api-for-views.patch
deleted file mode 100644
index e53a8c458..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0008-ivi-layout-use-libweston-desktop-api-for-views.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-index 086d0fd2..6b854503 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -153,7 +153,10 @@ ivi_view_destroy(struct ivi_layout_view *ivi_view)
- wl_list_remove(&ivi_view->pending_link);
- wl_list_remove(&ivi_view->order_link);
-
-- weston_view_destroy(ivi_view->view);
-+ if (weston_surface_is_desktop_surface(ivi_view->ivisurf->surface))
-+ weston_desktop_surface_unlink_view(ivi_view->view);
-+ else
-+ weston_view_destroy(ivi_view->view);
-
- free(ivi_view);
- }
-@@ -170,7 +173,13 @@ ivi_view_create(struct ivi_layout_layer *ivilayer,
- return NULL;
- }
-
-- ivi_view->view = weston_view_create(ivisurf->surface);
-+ if (weston_surface_is_desktop_surface(ivisurf->surface)) {
-+ ivi_view->view = weston_desktop_surface_create_view(
-+ ivisurf->weston_desktop_surface);
-+ } else {
-+ ivi_view->view = weston_view_create(ivisurf->surface);
-+ }
-+
- if (ivi_view->view == NULL) {
- weston_log("fails to allocate memory\n");
- free(ivi_view);
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0009-ivi-shell-added-libweston-desktop-api_implementation.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0009-ivi-shell-added-libweston-desktop-api_implementation.patch
deleted file mode 100644
index 6a72f15d8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0009-ivi-shell-added-libweston-desktop-api_implementation.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-index 84db2c97..e797e4f9 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -489,6 +489,162 @@ shell_add_bindings(struct weston_compositor *compositor,
- shell);
- }
-
-+/*
-+ * libweston-desktop
-+ */
-+
-+static void
-+desktop_surface_ping_timeout(struct weston_desktop_client *client,
-+ void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_ping_timeout is not supported\n");
-+}
-+
-+static void
-+desktop_surface_pong(struct weston_desktop_client *client,
-+ void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_pong is not supported\n");
-+}
-+
-+static void
-+desktop_surface_added(struct weston_desktop_surface *surface,
-+ void *user_data)
-+{
-+ struct ivi_shell *shell = (struct ivi_shell *) user_data;
-+ struct ivi_layout_surface *layout_surface;
-+ struct ivi_shell_surface *ivisurf;
-+ struct weston_surface *weston_surf =
-+ weston_desktop_surface_get_surface(surface);
-+
-+ layout_surface = ivi_layout_desktop_surface_create(weston_surf,
-+ IVI_INVALID_ID);
-+ if (!layout_surface) {
-+ return;
-+ }
-+
-+ layout_surface->weston_desktop_surface = surface;
-+
-+ ivisurf = zalloc(sizeof *ivisurf);
-+ if (!ivisurf) {
-+ return;
-+ }
-+
-+ ivisurf->shell = shell;
-+ ivisurf->id_surface = IVI_INVALID_ID;
-+
-+ ivisurf->width = 0;
-+ ivisurf->height = 0;
-+ ivisurf->layout_surface = layout_surface;
-+ ivisurf->surface = weston_surf;
-+
-+ weston_desktop_surface_set_user_data(surface, ivisurf);
-+}
-+
-+static void
-+desktop_surface_removed(struct weston_desktop_surface *surface,
-+ void *user_data)
-+{
-+ struct ivi_shell_surface *ivisurf = (struct ivi_shell_surface *)
-+ weston_desktop_surface_get_user_data(surface);
-+
-+ assert(ivisurf != NULL);
-+
-+ if (ivisurf->layout_surface)
-+ layout_surface_cleanup(ivisurf);
-+}
-+
-+static void
-+desktop_surface_committed(struct weston_desktop_surface *surface,
-+ int32_t sx, int32_t sy, void *user_data)
-+{
-+ struct ivi_shell_surface *ivisurf = (struct ivi_shell_surface *)
-+ weston_desktop_surface_get_user_data(surface);
-+ struct weston_surface *weston_surf =
-+ weston_desktop_surface_get_surface(surface);
-+
-+ if(!ivisurf)
-+ return;
-+
-+ if (weston_surf->width == 0 || weston_surf->height == 0)
-+ return;
-+
-+ if (ivisurf->width != weston_surf->width ||
-+ ivisurf->height != weston_surf->height) {
-+ ivisurf->width = weston_surf->width;
-+ ivisurf->height = weston_surf->height;
-+
-+ ivi_layout_desktop_surface_configure(ivisurf->layout_surface,
-+ weston_surf->width,
-+ weston_surf->height);
-+ }
-+}
-+
-+static void
-+desktop_surface_move(struct weston_desktop_surface *surface,
-+ struct weston_seat *seat, uint32_t serial, void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_move is not supported\n");
-+}
-+
-+static void
-+desktop_surface_resize(struct weston_desktop_surface *surface,
-+ struct weston_seat *seat, uint32_t serial,
-+ enum weston_desktop_surface_edge edges, void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_resize is not supported\n");
-+}
-+
-+static void
-+desktop_surface_fullscreen_requested(struct weston_desktop_surface *surface,
-+ bool fullscreen,
-+ struct weston_output *output,
-+ void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_fullscreen_requested is not supported\n");
-+}
-+
-+static void
-+desktop_surface_maximized_requested(struct weston_desktop_surface *surface,
-+ bool maximized, void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_maximized_requested is not supported\n");
-+}
-+
-+static void
-+desktop_surface_minimized_requested(struct weston_desktop_surface *surface,
-+ void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_minimized_requested is not supported\n");
-+}
-+
-+static void
-+desktop_surface_set_xwayland_position(struct weston_desktop_surface *surface,
-+ int32_t x, int32_t y, void *user_data)
-+{
-+ weston_log("ivi-shell: desktop_surface_set_xwayland_position is not supported\n");
-+}
-+
-+static const struct weston_desktop_api shell_desktop_api = {
-+ .struct_size = sizeof(struct weston_desktop_api),
-+ .ping_timeout = desktop_surface_ping_timeout,
-+ .pong = desktop_surface_pong,
-+ .surface_added = desktop_surface_added,
-+ .surface_removed = desktop_surface_removed,
-+ .committed = desktop_surface_committed,
-+
-+ .move = desktop_surface_move,
-+ .resize = desktop_surface_resize,
-+ .fullscreen_requested = desktop_surface_fullscreen_requested,
-+ .maximized_requested = desktop_surface_maximized_requested,
-+ .minimized_requested = desktop_surface_minimized_requested,
-+ .set_xwayland_position = desktop_surface_set_xwayland_position,
-+};
-+
-+/*
-+ * end of libweston-desktop
-+ */
-+
- /*
- * Initialization of ivi-shell.
- */
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0010-ivi-shell-remove-surface_destroy_listener.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0010-ivi-shell-remove-surface_destroy_listener.patch
deleted file mode 100644
index b76c35d4f..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0010-ivi-shell-remove-surface_destroy_listener.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-index e797e4f9..5f64e72d 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -162,6 +162,10 @@ layout_surface_cleanup(struct ivi_shell_surface *ivisurf)
- {
- assert(ivisurf->layout_surface != NULL);
-
-+ /* destroy weston_surface destroy signal. */
-+ if (!ivisurf->layout_surface->weston_desktop_surface)
-+ wl_list_remove(&ivisurf->surface_destroy_listener.link);
-+
- ivi_layout_surface_destroy(ivisurf->layout_surface);
- ivisurf->layout_surface = NULL;
-
-@@ -169,9 +173,6 @@ layout_surface_cleanup(struct ivi_shell_surface *ivisurf)
- ivisurf->surface->committed_private = NULL;
- weston_surface_set_label_func(ivisurf->surface, NULL);
- ivisurf->surface = NULL;
--
-- // destroy weston_surface destroy signal.
-- wl_list_remove(&ivisurf->surface_destroy_listener.link);
- }
-
- /*
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0011-ivi-shell-create-weston-desktop-in_wet_shell_init.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0011-ivi-shell-create-weston-desktop-in_wet_shell_init.patch
deleted file mode 100644
index f6256f782..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0011-ivi-shell-create-weston-desktop-in_wet_shell_init.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/ivi-shell/ivi-shell.c b/ivi-shell/ivi-shell.c
-index b0a2a2b9..a889afdb 100644
---- a/ivi-shell/ivi-shell.c
-+++ b/ivi-shell/ivi-shell.c
-@@ -664,10 +664,14 @@ wet_shell_init(struct weston_compositor *compositor,
- if (!shell->text_backend)
- goto err_shell;
-
-+ shell->desktop = weston_desktop_create(compositor, &shell_desktop_api, shell);
-+ if (!shell->desktop)
-+ goto err_text_backend;
-+
- if (wl_global_create(compositor->wl_display,
- &ivi_application_interface, 1,
- shell, bind_ivi_application) == NULL)
-- goto err_text_backend;
-+ goto err_desktop;
-
- ivi_layout_init_with_compositor(compositor);
- /* TODO ivi_layout_destroy should be implemented, since multiple lists
-@@ -676,6 +680,9 @@ wet_shell_init(struct weston_compositor *compositor,
-
- return IVI_SUCCEEDED;
-
-+err_desktop:
-+ weston_desktop_destroy(shell->desktop);
-+
- err_text_backend:
- text_backend_destroy(shell->text_backend);
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch
deleted file mode 100644
index 447cff4f8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0012-hmi-controller-register-for-desktop_surface_configured.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-diff --git a/ivi-shell/hmi-controller.c b/ivi-shell/hmi-controller.c
-index a0e49ba0..340d1915 100644
---- a/ivi-shell/hmi-controller.c
-+++ b/ivi-shell/hmi-controller.c
-@@ -129,9 +129,9 @@ struct hmi_controller {
- struct weston_compositor *compositor;
- struct wl_listener destroy_listener;
-
-- struct wl_listener surface_created;
- struct wl_listener surface_removed;
- struct wl_listener surface_configured;
-+ struct wl_listener desktop_surface_configured;
-
- struct wl_client *user_interface;
- struct ui_setting ui_setting;
-@@ -576,28 +576,6 @@ create_layer(struct weston_output *output,
- /**
- * Internal set notification
- */
--static void
--set_notification_create_surface(struct wl_listener *listener, void *data)
--{
-- struct hmi_controller *hmi_ctrl =
-- wl_container_of(listener, hmi_ctrl,
-- surface_created);
-- struct ivi_layout_surface *ivisurf = data;
-- struct hmi_controller_layer *layer_link =
-- wl_container_of(hmi_ctrl->application_layer_list.prev,
-- layer_link,
-- link);
-- struct ivi_layout_layer *application_layer = layer_link->ivilayer;
-- int32_t ret = 0;
--
-- /* skip ui widgets */
-- if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
-- return;
--
-- ret = hmi_ctrl->interface->layer_add_surface(application_layer, ivisurf);
-- assert(!ret);
--}
--
- static void
- set_notification_remove_surface(struct wl_listener *listener, void *data)
- {
-@@ -665,6 +643,42 @@ set_notification_configure_surface(struct wl_listener *listener, void *data)
- switch_mode(hmi_ctrl, hmi_ctrl->layout_mode);
- }
-
-+static void
-+set_notification_configure_desktop_surface(struct wl_listener *listener, void *data)
-+{
-+ struct hmi_controller *hmi_ctrl =
-+ wl_container_of(listener, hmi_ctrl,
-+ desktop_surface_configured);
-+ struct ivi_layout_surface *ivisurf = data;
-+ struct hmi_controller_layer *layer_link =
-+ wl_container_of(hmi_ctrl->application_layer_list.prev,
-+ layer_link,
-+ link);
-+ struct ivi_layout_layer *application_layer = layer_link->ivilayer;
-+ struct weston_surface *surface;
-+ int32_t ret = 0;
-+
-+ /* skip ui widgets */
-+ if (is_surf_in_ui_widget(hmi_ctrl, ivisurf))
-+ return;
-+
-+ ret = hmi_ctrl->interface->layer_add_surface(application_layer, ivisurf);
-+ assert(!ret);
-+
-+ /*
-+ * if application changes size of wl_buffer. The source rectangle shall be
-+ * fit to the size.
-+ */
-+ surface = hmi_ctrl->interface->surface_get_weston_surface(ivisurf);
-+ if (surface) {
-+ hmi_ctrl->interface->surface_set_source_rectangle(ivisurf, 0,
-+ 0, surface->width, surface->height);
-+ }
-+
-+ hmi_ctrl->interface->commit_changes();
-+ switch_mode(hmi_ctrl, hmi_ctrl->layout_mode);
-+}
-+
- /**
- * A hmi_controller used 4 ivi_layers to manage ivi_surfaces. The IDs of
- * corresponding ivi_layer are defined in weston.ini. Default scene graph
-@@ -868,6 +882,9 @@ hmi_controller_create(struct weston_compositor *ec)
- hmi_ctrl->surface_configured.notify = set_notification_configure_surface;
- hmi_ctrl->interface->add_listener_configure_surface(&hmi_ctrl->surface_configured);
-
-+ hmi_ctrl->desktop_surface_configured.notify = set_notification_configure_desktop_surface;
-+ hmi_ctrl->interface->add_listener_configure_desktop_surface(&hmi_ctrl->desktop_surface_configured);
-+
- hmi_ctrl->destroy_listener.notify = hmi_controller_destroy;
- wl_signal_add(&hmi_ctrl->compositor->destroy_signal,
- &hmi_ctrl->destroy_listener);
-@@ -1289,12 +1306,6 @@ ivi_hmi_controller_UI_ready(struct wl_client *client,
-
- ivi_hmi_controller_add_launchers(hmi_ctrl, 256);
-
-- /* Add surface_created listener after the initialization of launchers.
-- * Otherwise, surfaces of the launchers will be added to application
-- * layer too.*/
-- hmi_ctrl->surface_created.notify = set_notification_create_surface;
-- hmi_ctrl->interface->add_listener_create_surface(&hmi_ctrl->surface_created);
--
- hmi_ctrl->is_initialized = 1;
- }
-
-diff --git a/ivi-shell/ivi-layout.c b/ivi-shell/ivi-layout.c
-index b06bf309..ef354d49 100644
---- a/ivi-shell/ivi-layout.c
-+++ b/ivi-shell/ivi-layout.c
-@@ -715,9 +715,15 @@ commit_surface_list(struct ivi_layout *layout)
- ivisurf->pending.prop.transition_type = IVI_LAYOUT_TRANSITION_NONE;
-
- if (configured && !is_surface_transition(ivisurf)) {
-- shell_surface_send_configure(ivisurf->surface,
-- ivisurf->prop.dest_width,
-- ivisurf->prop.dest_height);
-+ if (ivisurf->weston_desktop_surface) {
-+ weston_desktop_surface_set_size(ivisurf->weston_desktop_surface,
-+ ivisurf->prop.dest_width,
-+ ivisurf->prop.dest_height);
-+ } else {
-+ shell_surface_send_configure(ivisurf->surface,
-+ ivisurf->prop.dest_width,
-+ ivisurf->prop.dest_height);
-+ }
- }
- } else {
- configured = 0;
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0013-simple-egl-remove-ivi-application-support.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0013-simple-egl-remove-ivi-application-support.patch
deleted file mode 100644
index 036b14cbc..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0013-simple-egl-remove-ivi-application-support.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 17c053e6..e0d3cb78 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -609,9 +609,7 @@ demo_clients += weston-simple-egl
- weston_simple_egl_SOURCES = clients/simple-egl.c
- nodist_weston_simple_egl_SOURCES = \
- protocol/xdg-shell-unstable-v6-protocol.c \
-- protocol/xdg-shell-unstable-v6-client-protocol.h \
-- protocol/ivi-application-protocol.c \
-- protocol/ivi-application-client-protocol.h
-+ protocol/xdg-shell-unstable-v6-client-protocol.h
- weston_simple_egl_CFLAGS = $(AM_CFLAGS) $(SIMPLE_EGL_CLIENT_CFLAGS)
- weston_simple_egl_LDADD = $(SIMPLE_EGL_CLIENT_LIBS) -lm
- endif
-diff --git a/clients/simple-egl.c b/clients/simple-egl.c
-index a1e57aef..936e015e 100644
---- a/clients/simple-egl.c
-+++ b/clients/simple-egl.c
-@@ -45,8 +45,6 @@
- #include "xdg-shell-unstable-v6-client-protocol.h"
- #include <sys/types.h>
- #include <unistd.h>
--#include "ivi-application-client-protocol.h"
--#define IVI_SURFACE_ID 9000
-
- #include "shared/helpers.h"
- #include "shared/platform.h"
-@@ -74,7 +72,6 @@ struct display {
- EGLConfig conf;
- } egl;
- struct window *window;
-- struct ivi_application *ivi_application;
-
- PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC swap_buffers_with_damage;
- };
-@@ -97,7 +94,6 @@ struct window {
- struct wl_surface *surface;
- struct zxdg_surface_v6 *xdg_surface;
- struct zxdg_toplevel_v6 *xdg_toplevel;
-- struct ivi_surface *ivi_surface;
- EGLSurface egl_surface;
- struct wl_callback *callback;
- int fullscreen, maximized, opaque, buffer_size, frame_sync, delay;
-@@ -359,27 +355,22 @@ static const struct zxdg_toplevel_v6_listener xdg_toplevel_listener = {
- };
-
- static void
--handle_ivi_surface_configure(void *data, struct ivi_surface *ivi_surface,
-- int32_t width, int32_t height)
-+create_surface(struct window *window)
- {
-- struct window *window = data;
--
-- wl_egl_window_resize(window->native, width, height, 0, 0);
--
-- window->geometry.width = width;
-- window->geometry.height = height;
-+ struct display *display = window->display;
-+ EGLBoolean ret;
-
-- if (!window->fullscreen)
-- window->window_size = window->geometry;
--}
-+ window->surface = wl_compositor_create_surface(display->compositor);
-
--static const struct ivi_surface_listener ivi_surface_listener = {
-- handle_ivi_surface_configure,
--};
-+ window->native =
-+ wl_egl_window_create(window->surface,
-+ window->geometry.width,
-+ window->geometry.height);
-+ window->egl_surface =
-+ weston_platform_create_egl_surface(display->egl.dpy,
-+ display->egl.conf,
-+ window->native, NULL);
-
--static void
--create_xdg_surface(struct window *window, struct display *display)
--{
- window->xdg_surface = zxdg_shell_v6_get_xdg_surface(display->shell,
- window->surface);
- zxdg_surface_v6_add_listener(window->xdg_surface,
-@@ -394,50 +385,6 @@ create_xdg_surface(struct window *window, struct display *display)
-
- window->wait_for_configure = true;
- wl_surface_commit(window->surface);
--}
--
--static void
--create_ivi_surface(struct window *window, struct display *display)
--{
-- uint32_t id_ivisurf = IVI_SURFACE_ID + (uint32_t)getpid();
-- window->ivi_surface =
-- ivi_application_surface_create(display->ivi_application,
-- id_ivisurf, window->surface);
--
-- if (window->ivi_surface == NULL) {
-- fprintf(stderr, "Failed to create ivi_client_surface\n");
-- abort();
-- }
--
-- ivi_surface_add_listener(window->ivi_surface,
-- &ivi_surface_listener, window);
--}
--
--static void
--create_surface(struct window *window)
--{
-- struct display *display = window->display;
-- EGLBoolean ret;
--
-- window->surface = wl_compositor_create_surface(display->compositor);
--
-- window->native =
-- wl_egl_window_create(window->surface,
-- window->geometry.width,
-- window->geometry.height);
-- window->egl_surface =
-- weston_platform_create_egl_surface(display->egl.dpy,
-- display->egl.conf,
-- window->native, NULL);
--
--
-- if (display->shell) {
-- create_xdg_surface(window, display);
-- } else if (display->ivi_application ) {
-- create_ivi_surface(window, display);
-- } else {
-- assert(0);
-- }
-
- ret = eglMakeCurrent(window->display->egl.dpy, window->egl_surface,
- window->egl_surface, window->display->egl.ctx);
-@@ -469,8 +416,6 @@ destroy_surface(struct window *window)
- zxdg_toplevel_v6_destroy(window->xdg_toplevel);
- if (window->xdg_surface)
- zxdg_surface_v6_destroy(window->xdg_surface);
-- if (window->display->ivi_application)
-- ivi_surface_destroy(window->ivi_surface);
- wl_surface_destroy(window->surface);
-
- if (window->callback)
-@@ -825,10 +770,6 @@ registry_handle_global(void *data, struct wl_registry *registry,
- fprintf(stderr, "unable to load default left pointer\n");
- // TODO: abort ?
- }
-- } else if (strcmp(interface, "ivi_application") == 0) {
-- d->ivi_application =
-- wl_registry_bind(registry, name,
-- &ivi_application_interface, 1);
- }
- }
-
-@@ -943,9 +884,6 @@ main(int argc, char **argv)
- if (display.shell)
- zxdg_shell_v6_destroy(display.shell);
-
-- if (display.ivi_application)
-- ivi_application_destroy(display.ivi_application);
--
- if (display.compositor)
- wl_compositor_destroy(display.compositor);
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0014-simple-shm-remove-ivi-application-support.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0014-simple-shm-remove-ivi-application-support.patch
deleted file mode 100644
index 495e50ca2..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0014-simple-shm-remove-ivi-application-support.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-index f9c8010b..c37cd00b 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -574,9 +574,7 @@ nodist_weston_simple_shm_SOURCES = \
- protocol/xdg-shell-unstable-v6-protocol.c \
- protocol/xdg-shell-unstable-v6-client-protocol.h \
- protocol/fullscreen-shell-unstable-v1-protocol.c \
-- protocol/fullscreen-shell-unstable-v1-client-protocol.h \
-- protocol/ivi-application-protocol.c \
-- protocol/ivi-application-client-protocol.h
-+ protocol/fullscreen-shell-unstable-v1-client-protocol.h
- weston_simple_shm_CFLAGS = $(AM_CFLAGS) $(SIMPLE_CLIENT_CFLAGS)
- weston_simple_shm_LDADD = $(SIMPLE_CLIENT_LIBS) libshared.la
-
-diff --git a/clients/simple-shm.c b/clients/simple-shm.c
-index 9fa2e214..fc2ef001 100644
---- a/clients/simple-shm.c
-+++ b/clients/simple-shm.c
-@@ -40,10 +40,6 @@
- #include "xdg-shell-unstable-v6-client-protocol.h"
- #include "fullscreen-shell-unstable-v1-client-protocol.h"
-
--#include <sys/types.h>
--#include "ivi-application-client-protocol.h"
--#define IVI_SURFACE_ID 9000
--
- struct display {
- struct wl_display *display;
- struct wl_registry *registry;
-@@ -52,7 +48,6 @@ struct display {
- struct zwp_fullscreen_shell_v1 *fshell;
- struct wl_shm *shm;
- bool has_xrgb;
-- struct ivi_application *ivi_application;
- };
-
- struct buffer {
-@@ -67,7 +62,6 @@ struct window {
- struct wl_surface *surface;
- struct zxdg_surface_v6 *xdg_surface;
- struct zxdg_toplevel_v6 *xdg_toplevel;
-- struct ivi_surface *ivi_surface;
- struct buffer buffers[2];
- struct buffer *prev_buffer;
- struct wl_callback *callback;
-@@ -165,17 +159,6 @@ static const struct zxdg_toplevel_v6_listener xdg_toplevel_listener = {
- handle_xdg_toplevel_close,
- };
-
--static void
--handle_ivi_surface_configure(void *data, struct ivi_surface *ivi_surface,
-- int32_t width, int32_t height)
--{
-- /* Simple-shm is resizable */
--}
--
--static const struct ivi_surface_listener ivi_surface_listener = {
-- handle_ivi_surface_configure,
--};
--
- static struct window *
- create_window(struct display *display, int width, int height)
- {
-@@ -213,19 +196,6 @@ create_window(struct display *display, int width, int height)
- window->surface,
- ZWP_FULLSCREEN_SHELL_V1_PRESENT_METHOD_DEFAULT,
- NULL);
-- } else if (display->ivi_application ) {
-- uint32_t id_ivisurf = IVI_SURFACE_ID + (uint32_t)getpid();
-- window->ivi_surface =
-- ivi_application_surface_create(display->ivi_application,
-- id_ivisurf, window->surface);
-- if (window->ivi_surface == NULL) {
-- fprintf(stderr, "Failed to create ivi_client_surface\n");
-- abort();
-- }
--
-- ivi_surface_add_listener(window->ivi_surface,
-- &ivi_surface_listener, window);
--
- } else {
- assert(0);
- }
-@@ -407,11 +377,6 @@ registry_handle_global(void *data, struct wl_registry *registry,
- id, &wl_shm_interface, 1);
- wl_shm_add_listener(d->shm, &shm_listener, d);
- }
-- else if (strcmp(interface, "ivi_application") == 0) {
-- d->ivi_application =
-- wl_registry_bind(registry, id,
-- &ivi_application_interface, 1);
-- }
- }
-
- static void
-@@ -555,11 +520,6 @@ main(int argc, char **argv)
-
- fprintf(stderr, "simple-shm exiting\n");
-
-- if (window->display->ivi_application) {
-- ivi_surface_destroy(window->ivi_surface);
-- ivi_application_destroy(window->display->ivi_application);
-- }
--
- destroy_window(window);
- destroy_display(display);
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0015-window-client-remove-ivi-application-support.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0015-window-client-remove-ivi-application-support.patch
deleted file mode 100644
index f3d2fe47f..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0015-window-client-remove-ivi-application-support.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-index c37cd00b..f30ddbe9 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -665,8 +665,6 @@ nodist_libtoytoolkit_la_SOURCES = \
- protocol/viewporter-client-protocol.h \
- protocol/xdg-shell-unstable-v6-protocol.c \
- protocol/xdg-shell-unstable-v6-client-protocol.h \
-- protocol/ivi-application-protocol.c \
-- protocol/ivi-application-client-protocol.h \
- protocol/pointer-constraints-unstable-v1-protocol.c \
- protocol/pointer-constraints-unstable-v1-client-protocol.h \
- protocol/relative-pointer-unstable-v1-protocol.c \
-diff --git a/clients/window.c b/clients/window.c
-index 95796d46..aac43abd 100644
---- a/clients/window.c
-+++ b/clients/window.c
-@@ -82,10 +82,6 @@ typedef void *EGLContext;
-
- #include "window.h"
-
--#include <sys/types.h>
--#include "ivi-application-client-protocol.h"
--#define IVI_SURFACE_ID 9000
--
- #define ZWP_RELATIVE_POINTER_MANAGER_V1_VERSION 1
- #define ZWP_POINTER_CONSTRAINTS_V1_VERSION 1
-
-@@ -107,7 +103,6 @@ struct display {
- struct wl_data_device_manager *data_device_manager;
- struct text_cursor_position *text_cursor_position;
- struct zxdg_shell_v6 *xdg_shell;
-- struct ivi_application *ivi_application; /* ivi style shell */
- struct zwp_relative_pointer_manager_v1 *relative_pointer_manager;
- struct zwp_pointer_constraints_v1 *pointer_constraints;
- EGLDisplay dpy;
-@@ -269,8 +264,6 @@ struct window {
- struct window *parent;
- struct window *last_parent;
-
-- struct ivi_surface *ivi_surface;
--
- struct window_frame *frame;
-
- /* struct surface::link, contains also main_surface */
-@@ -1441,19 +1434,6 @@ window_get_display(struct window *window)
- return window->display;
- }
-
--static void
--handle_ivi_surface_configure(void *data, struct ivi_surface *ivi_surface,
-- int32_t width, int32_t height)
--{
-- struct window *window = data;
--
-- window_schedule_resize(window, width, height);
--}
--
--static const struct ivi_surface_listener ivi_surface_listener = {
-- handle_ivi_surface_configure,
--};
--
- static void
- surface_create_surface(struct surface *surface, uint32_t flags)
- {
-@@ -1604,9 +1584,6 @@ window_destroy(struct window *window)
- if (window->xdg_surface)
- zxdg_surface_v6_destroy(window->xdg_surface);
-
-- if (window->ivi_surface)
-- ivi_surface_destroy(window->ivi_surface);
--
- surface_destroy(window->main_surface);
-
- wl_list_remove(&window->link);
-@@ -5200,7 +5177,7 @@ window_create_internal(struct display *display, int custom)
- surface = surface_create(window);
- window->main_surface = surface;
-
-- assert(custom || display->xdg_shell || display->ivi_application);
-+ assert(custom || display->xdg_shell);
-
- window->custom = custom;
- window->preferred_format = WINDOW_PREFERRED_FORMAT_NONE;
-@@ -5220,7 +5197,6 @@ struct window *
- window_create(struct display *display)
- {
- struct window *window;
-- uint32_t id_ivisurf;
-
- window = window_create_internal(display, 0);
-
-@@ -5243,16 +5219,6 @@ window_create(struct display *display)
- window_inhibit_redraw(window);
-
- wl_surface_commit(window->main_surface->surface);
-- } else if (display->ivi_application) {
-- /* auto generation of ivi_id based on process id + basement of id */
-- id_ivisurf = IVI_SURFACE_ID + (uint32_t)getpid();
-- window->ivi_surface =
-- ivi_application_surface_create(display->ivi_application,
-- id_ivisurf, window->main_surface->surface);
-- fail_on_null(window->ivi_surface, 0, __FILE__, __LINE__);
--
-- ivi_surface_add_listener(window->ivi_surface,
-- &ivi_surface_listener, window);
- }
-
- return window;
-@@ -6013,11 +5979,6 @@ registry_handle_global(void *data, struct wl_registry *registry, uint32_t id,
- wl_registry_bind(registry, id,
- &wl_subcompositor_interface, 1);
- }
-- else if (strcmp(interface, "ivi_application") == 0) {
-- d->ivi_application =
-- wl_registry_bind(registry, id,
-- &ivi_application_interface, 1);
-- }
-
- if (d->global_handler)
- d->global_handler(d, id, interface, version, d->user_data);
-@@ -6316,9 +6277,6 @@ display_destroy(struct display *display)
- if (display->xdg_shell)
- zxdg_shell_v6_destroy(display->xdg_shell);
-
-- if (display->ivi_application)
-- ivi_application_destroy(display->ivi_application);
--
- if (display->shm)
- wl_shm_destroy(display->shm);
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch
deleted file mode 100644
index 6b93b06e8..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From 8ea60075d5310101bebedf09c94902e9d41432ac Mon Sep 17 00:00:00 2001
-From: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
-Date: Mon, 29 Jul 2019 17:04:12 +0900
-Subject: [PATCH 1/3] compositor: add output type to weston_output
-
-This enables weston to use multiple types of backend
-Each backends have own output structure for each functions
-To avoid invalid member access, type identifier is needed
-
-Signed-off-by: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
----
- libweston/compositor-drm.c | 78 +++++++++++++++++++++++------------------
- libweston/compositor-fbdev.c | 2 +-
- libweston/compositor-headless.c | 2 +-
- libweston/compositor-rdp.c | 2 +-
- libweston/compositor-wayland.c | 2 +-
- libweston/compositor-x11.c | 2 +-
- libweston/compositor.h | 12 ++++++-
- 7 files changed, 60 insertions(+), 40 deletions(-)
-
-diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
-index 3891176..26a480c 100644
---- a/libweston/compositor-drm.c
-+++ b/libweston/compositor-drm.c
-@@ -843,8 +843,9 @@ drm_output_find_by_crtc(struct drm_backend *b, uint32_t crtc_id)
- struct drm_output *output;
-
- wl_list_for_each(output, &b->compositor->output_list, base.link) {
-- if (output->crtc_id == crtc_id)
-- return output;
-+ if(output->base.output_type == OUTPUT_DRM)
-+ if (output->crtc_id == crtc_id)
-+ return output;
- }
-
- return NULL;
-@@ -859,7 +860,8 @@ drm_head_find_by_connector(struct drm_backend *backend, uint32_t connector_id)
- wl_list_for_each(base,
- &backend->compositor->head_list, compositor_link) {
- head = to_drm_head(base);
-- if (head->connector_id == connector_id)
-+ if(base->output->output_type == OUTPUT_DRM)
-+ if (head->connector_id == connector_id)
- return head;
- }
-
-@@ -5728,6 +5730,7 @@ drm_output_enable(struct weston_output *base)
- drmModeRes *resources;
- int ret;
-
-+ output->base.output_type = OUTPUT_DRM;
- resources = drmModeGetResources(b->drm.fd);
- if (!resources) {
- weston_log("drmModeGetResources failed\n");
-@@ -6188,23 +6191,25 @@ drm_backend_update_heads(struct drm_backend *b, struct udev_device *drm_device)
- /* Remove connectors that have disappeared. */
- wl_list_for_each_safe(base, next,
- &b->compositor->head_list, compositor_link) {
-- bool removed = true;
-+ if (base->output->output_type == OUTPUT_DRM) {
-+ bool removed = true;
-
-- head = to_drm_head(base);
-+ head = to_drm_head(base);
-
-- for (i = 0; i < resources->count_connectors; i++) {
-- if (resources->connectors[i] == head->connector_id) {
-- removed = false;
-- break;
-- }
-- }
-+ for (i = 0; i < resources->count_connectors; i++) {
-+ if (resources->connectors[i] == head->connector_id) {
-+ removed = false;
-+ break;
-+ }
-+ }
-
-- if (!removed)
-- continue;
-+ if (!removed)
-+ continue;
-
-- weston_log("DRM: head '%s' (connector %d) disappeared.\n",
-- head->base.name, head->connector_id);
-- drm_head_destroy(head);
-+ weston_log("DRM: head '%s' (connector %d) disappeared.\n",
-+ head->base.name, head->connector_id);
-+ drm_head_destroy(head);
-+ }
- }
-
- drm_backend_update_unused_outputs(b, resources);
-@@ -6309,23 +6314,26 @@ session_notify(struct wl_listener *listener, void *data)
- * pending frame callbacks. */
-
- wl_list_for_each(output, &compositor->output_list, base.link) {
-- output->base.repaint_needed = false;
-- if (output->cursor_plane)
-- drmModeSetCursor(b->drm.fd, output->crtc_id,
-- 0, 0, 0);
-+ if(output->base.output_type == OUTPUT_DRM) {
-+ output->base.repaint_needed = false;
-+ if (output->cursor_plane)
-+ drmModeSetCursor(b->drm.fd, output->crtc_id,
-+ 0, 0, 0);
-+ }
- }
--
-- output = container_of(compositor->output_list.next,
-- struct drm_output, base.link);
--
-- wl_list_for_each(plane, &b->plane_list, link) {
-- if (plane->type != WDRM_PLANE_TYPE_OVERLAY)
-- continue;
--
-- drmModeSetPlane(b->drm.fd,
-- plane->plane_id,
-- output->crtc_id, 0, 0,
-- 0, 0, 0, 0, 0, 0, 0, 0);
-+ if(output->base.output_type == OUTPUT_DRM) {
-+ output = container_of(compositor->output_list.next,
-+ struct drm_output, base.link);
-+
-+ wl_list_for_each(plane, &b->plane_list, link) {
-+ if (plane->type != WDRM_PLANE_TYPE_OVERLAY)
-+ continue;
-+
-+ drmModeSetPlane(b->drm.fd,
-+ plane->plane_id,
-+ output->crtc_id, 0, 0,
-+ 0, 0, 0, 0, 0, 0, 0, 0);
-+ }
- }
- }
- }
-@@ -6649,7 +6657,8 @@ switch_to_gl_renderer(struct drm_backend *b)
- }
-
- wl_list_for_each(output, &b->compositor->output_list, base.link)
-- pixman_renderer_output_destroy(&output->base);
-+ if(output->base.output_type == OUTPUT_DRM)
-+ pixman_renderer_output_destroy(&output->base);
-
- b->compositor->renderer->destroy(b->compositor);
-
-@@ -6661,7 +6670,8 @@ switch_to_gl_renderer(struct drm_backend *b)
- }
-
- wl_list_for_each(output, &b->compositor->output_list, base.link)
-- drm_output_init_egl(output, b);
-+ if(output->base.output_type == OUTPUT_DRM)
-+ drm_output_init_egl(output, b);
-
- b->use_pixman = 0;
-
-diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c
-index a71b7bd..8edb50b 100644
---- a/libweston/compositor-fbdev.c
-+++ b/libweston/compositor-fbdev.c
-@@ -501,7 +501,7 @@ fbdev_output_enable(struct weston_output *base)
- struct fbdev_head *head;
- int fb_fd;
- struct wl_event_loop *loop;
--
-+ output->base.output_type = OUTPUT_FBDEV;
- head = fbdev_output_get_head(output);
-
- /* Create the frame buffer. */
-diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c
-index 61a5bd9..f633cd7 100644
---- a/libweston/compositor-headless.c
-+++ b/libweston/compositor-headless.c
-@@ -159,7 +159,7 @@ headless_output_enable(struct weston_output *base)
- loop = wl_display_get_event_loop(b->compositor->wl_display);
- output->finish_frame_timer =
- wl_event_loop_add_timer(loop, finish_frame_handler, output);
--
-+ output->base.output_type = OUTPUT_HEADLESS;
- if (b->use_pixman) {
- output->image_buf = malloc(output->base.current_mode->width *
- output->base.current_mode->height * 4);
-diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c
-index 134e729..429370c 100644
---- a/libweston/compositor-rdp.c
-+++ b/libweston/compositor-rdp.c
-@@ -554,7 +554,7 @@ rdp_output_enable(struct weston_output *base)
- struct rdp_output *output = to_rdp_output(base);
- struct rdp_backend *b = to_rdp_backend(base->compositor);
- struct wl_event_loop *loop;
--
-+ output->base.output_type = OUTPUT_RDP;
- output->shadow_surface = pixman_image_create_bits(PIXMAN_x8r8g8b8,
- output->base.current_mode->width,
- output->base.current_mode->height,
-diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c
-index e80ecc1..808fc8f 100644
---- a/libweston/compositor-wayland.c
-+++ b/libweston/compositor-wayland.c
-@@ -1221,7 +1221,7 @@ wayland_output_enable(struct weston_output *base)
- struct wayland_backend *b = to_wayland_backend(base->compositor);
- enum mode_status mode_status;
- int ret = 0;
--
-+ output->base.output_type = OUTPUT_WAYLAND;
- weston_log("Creating %dx%d wayland output at (%d, %d)\n",
- output->base.current_mode->width,
- output->base.current_mode->height,
-diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c
-index 4a9d068..afbaa73 100644
---- a/libweston/compositor-x11.c
-+++ b/libweston/compositor-x11.c
-@@ -933,7 +933,7 @@ x11_output_enable(struct weston_output *base)
- XCB_EVENT_MASK_STRUCTURE_NOTIFY,
- 0
- };
--
-+ output->base.output_type = OUTPUT_X11;
- if (!b->no_input)
- values[0] |=
- XCB_EVENT_MASK_KEY_PRESS |
-diff --git a/libweston/compositor.h b/libweston/compositor.h
-index 8b7a102..60feda3 100644
---- a/libweston/compositor.h
-+++ b/libweston/compositor.h
-@@ -169,6 +169,16 @@ enum dpms_enum {
- WESTON_DPMS_OFF
- };
-
-+/* bit compatible with drm definitions. */
-+enum output_type {
-+ OUTPUT_DRM,
-+ OUTPUT_FBDEV,
-+ OUTPUT_HEADLESS,
-+ OUTPUT_RDP,
-+ OUTPUT_WAYLAND,
-+ OUTPUT_X11,
-+ OUTPUT_WALTHAM
-+};
- /** Represents a monitor
- *
- * This object represents a monitor (hardware backends like DRM) or a window
-@@ -201,7 +211,7 @@ struct weston_head {
- struct weston_output {
- uint32_t id;
- char *name;
--
-+ enum output_type output_type;
- /** Matches the lifetime from the user perspective */
- struct wl_signal user_destroy_signal;
-
---
-2.7.4
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-compositor-drm-introduce-drm_get_dmafd_from_view.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-compositor-drm-introduce-drm_get_dmafd_from_view.patch
deleted file mode 100644
index 6fb963fb1..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0017-compositor-drm-introduce-drm_get_dmafd_from_view.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 020508b35b2bf6c89d62961eb95e2f81d6381ab5 Mon Sep 17 00:00:00 2001
-From: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
-Date: Mon, 29 Jul 2019 17:07:00 +0900
-Subject: [PATCH 2/3] compositor-drm: introduce drm_get_dmafd_from_view
-
-This API enables to get dmafd from weston_view
-
-Signed-off-by: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
----
- libweston/compositor-drm.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++
- libweston/compositor-drm.h | 7 ++++++
- 2 files changed, 64 insertions(+)
-
-diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
-index 26a480c..2b99db5 100644
---- a/libweston/compositor-drm.c
-+++ b/libweston/compositor-drm.c
-@@ -5420,6 +5420,62 @@ drm_output_set_seat(struct weston_output *base,
- }
-
- static int
-+drm_get_dma_fd_from_view(struct weston_output *base,
-+ struct weston_view *ev)
-+{
-+ struct drm_backend *b = to_drm_backend(base->compositor);
-+ struct weston_buffer *buffer = ev->surface->buffer_ref.buffer;
-+ struct gbm_bo *bo;
-+ struct drm_fb *current;
-+ struct linux_dmabuf_buffer *dmabuf;
-+ bool is_opaque = drm_view_is_opaque(ev);
-+ uint32_t format;
-+ int fd, ret;
-+
-+ if(!buffer) {
-+ weston_log("buffer is NULL\n");
-+ return -1;
-+ }
-+
-+ if(dmabuf = linux_dmabuf_buffer_get(buffer->resource)) {
-+ current = drm_fb_get_from_dmabuf(dmabuf, b, is_opaque);
-+ if (!current)
-+ {
-+ fprintf(stderr, "failed to get drm_fb from dmabuf\n");
-+ return -1;
-+ }
-+ }
-+ else if(ev->surface->buffer_ref.buffer->legacy_buffer) {
-+ bo = gbm_bo_import(b->gbm, GBM_BO_IMPORT_WL_BUFFER,
-+ buffer->resource, GBM_BO_USE_SCANOUT);
-+ if (!bo) {
-+ weston_log("failed to get gbm_bo\n");
-+ return -1;
-+ }
-+ current = drm_fb_get_from_bo(bo, b, is_opaque, BUFFER_CLIENT);
-+
-+ if (!current) {
-+ weston_log("failed to get drm_fb from bo\n");
-+ return -1;
-+ }
-+
-+ }
-+ else {
-+ weston_log("Buffer is not supported\n");
-+ return -1;
-+ }
-+
-+ ret = drmPrimeHandleToFD(b->drm.fd, current->handles[0],
-+ DRM_CLOEXEC, &fd);
-+ free(current);
-+ if (ret) {
-+ weston_log("failed to create prime fd for front buffer\n");
-+ return -1;
-+ }
-+
-+ return fd;
-+}
-+static int
- drm_output_init_gamma_size(struct drm_output *output)
- {
- struct drm_backend *backend = to_drm_backend(output->base.compositor);
-@@ -6696,6 +6752,7 @@ static const struct weston_drm_output_api api = {
- drm_output_set_mode,
- drm_output_set_gbm_format,
- drm_output_set_seat,
-+ drm_get_dma_fd_from_view,
- };
-
- static struct drm_backend *
-diff --git a/libweston/compositor-drm.h b/libweston/compositor-drm.h
-index 9c37c15..a82a2a9 100644
---- a/libweston/compositor-drm.h
-+++ b/libweston/compositor-drm.h
-@@ -78,6 +78,13 @@ struct weston_drm_output_api {
- */
- void (*set_seat)(struct weston_output *output,
- const char *seat);
-+
-+ /** Get the dma fd from drm view.
-+ *
-+ * The dma fd is got from weston_view.
-+ * Returns fd on success, -1 on failure.
-+ */
-+ int (*get_dma_fd_from_view)(struct weston_output *output, struct weston_view *view);
- };
-
- static inline const struct weston_drm_output_api *
---
-2.7.4
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-drm-get-stride-from-drm_get_dma_fd_from_view.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-drm-get-stride-from-drm_get_dma_fd_from_view.patch
deleted file mode 100644
index e2655d120..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0018-compositor-drm-get-stride-from-drm_get_dma_fd_from_view.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 0dac780379228396a19048544b9e53d5aa407583 Mon Sep 17 00:00:00 2001
-From: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
-Date: Mon, 29 Jul 2019 17:08:31 +0900
-Subject: [PATCH 3/3] compositor-drm: get stride from drm_get_dma_fd_from_view
-
-Modify drm_get_dma_fd_from_view to get buffer stride.
-
-Signed-off-by: Veeresh Kadasani <external.vkadasani@jp.adit-jv.com>
----
- libweston/compositor-drm.c | 5 +++--
- libweston/compositor-drm.h | 2 +-
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
-index 2b99db5..ec2765f 100644
---- a/libweston/compositor-drm.c
-+++ b/libweston/compositor-drm.c
-@@ -5421,7 +5421,7 @@ drm_output_set_seat(struct weston_output *base,
-
- static int
- drm_get_dma_fd_from_view(struct weston_output *base,
-- struct weston_view *ev)
-+ struct weston_view *ev, int *buf_stride)
- {
- struct drm_backend *b = to_drm_backend(base->compositor);
- struct weston_buffer *buffer = ev->surface->buffer_ref.buffer;
-@@ -5444,6 +5444,7 @@ drm_get_dma_fd_from_view(struct weston_output *base,
- fprintf(stderr, "failed to get drm_fb from dmabuf\n");
- return -1;
- }
-+ *buf_stride=current->strides[0];
- }
- else if(ev->surface->buffer_ref.buffer->legacy_buffer) {
- bo = gbm_bo_import(b->gbm, GBM_BO_IMPORT_WL_BUFFER,
-@@ -5458,7 +5459,7 @@ drm_get_dma_fd_from_view(struct weston_output *base,
- weston_log("failed to get drm_fb from bo\n");
- return -1;
- }
--
-+ *buf_stride=current->strides[0];
- }
- else {
- weston_log("Buffer is not supported\n");
-diff --git a/libweston/compositor-drm.h b/libweston/compositor-drm.h
-index a82a2a9..c2461b3 100644
---- a/libweston/compositor-drm.h
-+++ b/libweston/compositor-drm.h
-@@ -84,7 +84,7 @@ struct weston_drm_output_api {
- * The dma fd is got from weston_view.
- * Returns fd on success, -1 on failure.
- */
-- int (*get_dma_fd_from_view)(struct weston_output *output, struct weston_view *view);
-+ int (*get_dma_fd_from_view)(struct weston_output *output, struct weston_view *view, int *buf_stride);
- };
-
- static inline const struct weston_drm_output_api *
---
-2.7.4
-
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend
deleted file mode 100644
index bcfe11b17..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_%.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-PACKAGECONFIG[notify] = "--enable-systemd-notify,--disable-systemd-notify,systemd"
-PACKAGECONFIG_append = " notify"
-
-RRECOMMENDS_${PN}_remove = "weston-conf"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_5.0.0.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_5.0.0.bbappend
deleted file mode 100644
index 108cca83f..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_5.0.0.bbappend
+++ /dev/null
@@ -1,27 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-SRC_URI_append = "\
- file://0001-Allow-regular-users-to-launch-Weston_2.0.0.patch \
- file://0001-ivi-shell-rework-goto-labels-to-avoid-memory-leaks.patch \
- file://0002-ivi-shell-removed-assert.patch \
- file://0003-ivi-shell-introduction-of-IVI_INVALID_ID.patch \
- file://0004-layout-interface-added-interface-to-change-surface-id.patch \
- file://0005-ivi-layout-introcuded-configure_desktop_changed.patch \
- file://0006-ivi-layout-introcuded-surface_create_and_configure.patch \
- file://0007-ivi-shell-linked-libweston-desktop-and-added-structs.patch \
- file://0008-ivi-layout-use-libweston-desktop-api-for-views.patch \
- file://0009-ivi-shell-added-libweston-desktop-api_implementation.patch \
- file://0010-ivi-shell-remove-surface_destroy_listener.patch \
- file://0011-ivi-shell-create-weston-desktop-in_wet_shell_init.patch \
- file://0012-hmi-controller-register-for-desktop_surface_configured.patch \
- file://0013-simple-egl-remove-ivi-application-support.patch \
- file://0014-simple-shm-remove-ivi-application-support.patch \
- file://0015-window-client-remove-ivi-application-support.patch \
- file://use-XDG_RUNTIMESHARE_DIR.patch \
- file://0016-compositor-add-output-type-to-weston_output.patch \
- file://0017-compositor-drm-introduce-drm_get_dmafd_from_view.patch \
- file://0018-compositor-drm-get-stride-from-drm_get_dma_fd_from_view.patch \
- "
-
-
-EXTRA_OECONF_append = " --enable-sys-uid"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend
deleted file mode 100644
index 67442bd6b..000000000
--- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_6.0.0.bbappend
+++ /dev/null
@@ -1,10 +0,0 @@
-FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
-
-SRC_URI_append = "\
- file://0001-Allow-regular-users-to-launch-Weston_2.0.0.patch \
- file://use-XDG_RUNTIMESHARE_DIR.patch \
- file://0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch \
- file://0003-compositor-drm-introduce-drm_get_dmafd_from_view.patch \
- file://0001-config-parser-Export-get_full_path-and-destroy.patch \
- "
-EXTRA_OECONF_append = " --enable-sys-uid"
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend
new file mode 100644
index 000000000..67ce0ba5e
--- /dev/null
+++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_7.0.0.bbappend
@@ -0,0 +1,15 @@
+FILESEXTRAPATHS_append := ":${THISDIR}/${PN}"
+
+# NOTE:
+# file://0003-compositor-drm-introduce-drm_get_dmafd_from_view.patch
+# has been removed until someone more familiar with weston internals
+# and waltham can take a look and update it.
+SRC_URI_append = "\
+ file://0001-Allow-regular-users-to-launch-Weston_7.0.0.patch \
+ file://use-XDG_RUNTIMESHARE_DIR.patch \
+ file://0002-ivi-shell-Fix-crash-due-no-transmitter-screen.patch \
+ file://0001-config-parser-Export-get_full_path-and-destroy.patch \
+ file://0001-libweston-Expose-weston_output_damage-in-libweston.patch \
+ "
+
+EXTRA_OEMESON_append = " -Denable-user-start=true"