summaryrefslogtreecommitdiffstats
path: root/meta-agl-core/recipes-graphics
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-core/recipes-graphics')
-rw-r--r--meta-agl-core/recipes-graphics/libsdl2/libsdl2_%.bbappend1
-rw-r--r--meta-agl-core/recipes-graphics/libsdl2/libsdl2_aglcore.inc3
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb45
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-autologin11
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.service72
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.socket10
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb25
-rw-r--r--meta-agl-core/recipes-graphics/wayland/agl-shell-activator_git.bb22
-rw-r--r--meta-agl-core/recipes-graphics/wayland/native-shell-client_git.bb16
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham-transmitter-plugin.bb19
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch51
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch55
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch70
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend7
-rw-r--r--meta-agl-core/recipes-graphics/wayland/waltham_git.bb16
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb62
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/grpc-proxy.cfg4
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-0.cfg5
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-180.cfg6
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-270.cfg6
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-90.cfg6
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg.in (renamed from meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg)2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/transmitter-output.cfg.in5
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch30
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch60
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch106
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc10
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_13.0.%.bbappend (renamed from meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend)2
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc29
32 files changed, 365 insertions, 397 deletions
diff --git a/meta-agl-core/recipes-graphics/libsdl2/libsdl2_%.bbappend b/meta-agl-core/recipes-graphics/libsdl2/libsdl2_%.bbappend
new file mode 100644
index 000000000..48e50788e
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/libsdl2/libsdl2_%.bbappend
@@ -0,0 +1 @@
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'libsdl2_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/libsdl2/libsdl2_aglcore.inc b/meta-agl-core/recipes-graphics/libsdl2/libsdl2_aglcore.inc
new file mode 100644
index 000000000..7652e1843
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/libsdl2/libsdl2_aglcore.inc
@@ -0,0 +1,3 @@
+# Make sure opengl is disabled, as using wayland implies gles2 in the
+# libsdl2 PACKAGECONFIG definitions.
+PACKAGECONFIG:remove = "opengl"
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb
index 0cdf4d5d6..d8baf91f9 100644
--- a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init.bb
@@ -1,10 +1,19 @@
-SUMMARY = "Startup systemd unit drop-in file for the AGL Wayland compositor"
+SUMMARY = "Startup systemd unit for the AGL Wayland compositor"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+inherit systemd
+
+# Reuse include file from upstream weston since we have the same requirements
+require recipes-graphics/wayland/required-distro-features.inc
+
PACKAGE_ARCH = "${MACHINE_ARCH}"
-SRC_URI = "file://agl-compositor.conf.in"
+SRC_URI = "file://agl-compositor.service \
+ file://agl-compositor.socket \
+ file://agl-compositor-autologin \
+ file://agl-compositor.conf.in \
+"
S = "${WORKDIR}"
@@ -15,7 +24,14 @@ AGL_COMPOSITOR_ARGS:append = " ${@bb.utils.contains("DISTRO_FEATURES", "agl-deve
AGL_COMPOSITOR_ARGS:append = " ${@bb.utils.contains("WESTON_USE_PIXMAN", "1", " --use-pixman", "",d)}"
do_install() {
- # Process ".in" files
+ # Install systemd service
+ install -D -p -m0644 ${WORKDIR}/agl-compositor.service ${D}${systemd_system_unitdir}/agl-compositor.service
+ install -D -p -m0644 ${WORKDIR}/agl-compositor.socket ${D}${systemd_system_unitdir}/agl-compositor.socket
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}" ]; then
+ install -D -p -m0644 ${WORKDIR}/agl-compositor-autologin ${D}${sysconfdir}/pam.d/agl-compositor-autologin
+ fi
+
+ # Install systemd service drop-in with extra configuration
files=agl-compositor.conf.in
for f in ${files}; do
g=${f%.in}
@@ -24,17 +40,22 @@ do_install() {
${WORKDIR}/${f} > ${WORKDIR}/${g}
fi
done
-
- # Install Weston systemd service drop-in
- install -d ${D}${systemd_system_unitdir}/weston.service.d
- install -m644 ${WORKDIR}/agl-compositor.conf ${D}/${systemd_system_unitdir}/weston.service.d/agl-compositor.conf
+ install -d ${D}${systemd_system_unitdir}/agl-compositor.service.d
+ install -m644 ${WORKDIR}/agl-compositor.conf ${D}/${systemd_system_unitdir}/agl-compositor.service.d/agl-compositor.conf
}
FILES:${PN} += "\
- ${systemd_system_unitdir}/weston.service.d \
+ ${systemd_system_unitdir}/agl-compositor.service \
+ ${systemd_system_unitdir}/agl-compositor.socket \
+ ${systemd_system_unitdir}/agl-compositor.service.d \
+ ${sysconfdir}/default/agl-compositor \
+ ${sysconfdir}/pam.d/ \
"
-RDEPENDS:${PN} = " \
- agl-compositor \
- weston-init \
-"
+CONFFILES:${PN} += "${sysconfdir}/default/agl-compositor"
+
+RDEPENDS:${PN} = "agl-users agl-compositor weston-ini"
+
+RCONFLICTS:${PN} = "weston-init"
+
+SYSTEMD_SERVICE:${PN} = "agl-compositor.service agl-compositor.socket"
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-autologin b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-autologin
new file mode 100644
index 000000000..f6e6d106d
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor-autologin
@@ -0,0 +1,11 @@
+auth required pam_nologin.so
+auth required pam_unix.so try_first_pass nullok
+
+account required pam_nologin.so
+account required pam_unix.so
+
+session required pam_env.so
+session required pam_unix.so
+-session optional pam_systemd.so type=wayland class=user desktop=weston
+-session optional pam_loginuid.so
+
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.service b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.service
new file mode 100644
index 000000000..4ee14de27
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.service
@@ -0,0 +1,72 @@
+# This is a system unit for launching AGL compositor with auto-login as the
+# user configured here.
+#
+# AGL compositor and Weston must be built with systemd support, and your
+# weston.ini must load the plugin systemd-notify.so.
+#
+# Attention:
+# If you will add new tty dependency setting, you need to update
+# agl-compositor-guest.conf.
+[Unit]
+Description=AGL compositor
+Documentation=man:weston(1) man:weston.ini(5)
+Documentation=http://wayland.freedesktop.org/
+
+# Make sure we are started after logins are permitted.
+Requires=systemd-user-sessions.service
+After=systemd-user-sessions.service
+
+# D-Bus is necessary for contacting logind. Logind is required.
+Wants=dbus.socket
+After=dbus.socket
+
+# Ensure the socket is present
+Requires=agl-compositor.socket
+
+# Since we are part of the graphical session, make sure we are started before
+# it is complete.
+Before=graphical.target
+
+# Prevent starting on systems without virtual consoles, Weston requires one
+# for now.
+ConditionPathExists=/dev/tty0
+
+[Service]
+# Requires systemd-notify.so Weston plugin.
+Type=notify
+EnvironmentFile=-/etc/default/agl-compositor
+ExecStart=/usr/bin/agl-compositor --modules=systemd-notify.so
+
+# Watchdog setup
+TimeoutStartSec=60
+WatchdogSec=20
+
+# The user to run as.
+User=agl-driver
+Group=agl-driver
+
+# Make sure the working directory is the users home directory
+WorkingDirectory=/home/agl-driver
+
+# Set up a full user session for the user
+PAMName=agl-compositor-autologin
+
+# A virtual terminal is needed.
+TTYPath=/dev/tty7
+TTYReset=yes
+TTYVHangup=yes
+TTYVTDisallocate=yes
+
+# Fail to start if not controlling the tty.
+StandardInput=tty-fail
+StandardOutput=journal
+StandardError=journal
+
+# Log this user with utmp, letting it show up with commands 'w' and 'who'.
+UtmpIdentifier=tty7
+UtmpMode=user
+
+[Install]
+# Note: If you only want weston to start on-demand, remove this line with a
+# service drop file
+WantedBy=graphical.target
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.socket b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.socket
new file mode 100644
index 000000000..ef9769ff7
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor-init/agl-compositor.socket
@@ -0,0 +1,10 @@
+#
+# Weston must be built with systemd support, and your weston.ini must load
+# the plugin systemd-notify.so.
+
+[Unit]
+Description=agl-compositor, a Wayland compositor, as a systemd user service
+Documentation=https://docs.automotivelinux.org/en/master/#5_Component_Documentation/1_agl-compositor/
+
+[Socket]
+ListenStream=%t/wayland-0
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
index 5f2c8a8c0..41240309b 100644
--- a/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
+++ b/meta-agl-core/recipes-graphics/wayland/agl-compositor_git.bb
@@ -8,33 +8,46 @@ SECTION = "x11"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=fac6abe0003c4d142ff8fa1f18316df0"
-DEPENDS = "wayland wayland-protocols wayland-native weston \
- ${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', 'waltham waltham-transmitter-plugin', '', d)}"
+DEPENDS = "wayland wayland-protocols wayland-native weston"
SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-compositor.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "1304d412eb2bcefd4733539213ecb9b6ca39a605"
+SRCREV = "18e93caca8ad397d504215d673765871b2c88f25"
AGL_BRANCH:aglnext = "next"
SRCREV:aglnext = "${AUTOREV}"
-PV = "0.0.10+git${SRCPV}"
+AGL_COMPOSITOR_VERSION = "0.0.24"
+
+PV = "${AGL_COMPOSITOR_VERSION}+git${SRCPV}"
S = "${WORKDIR}/git"
PACKAGECONFIG ?= ""
PACKAGECONFIG[policy-rba] = "-Dpolicy-default=rba,,librba,librba rba-config"
PACKAGECONFIG[policy-deny-all] = "-Dpolicy-default=deny-all,,"
+PACKAGECONFIG[grpc-proxy] = "-Dgrpc-proxy=true,-Dgrpc-proxy=false,grpc grpc-native,grpc agl-shell-grpc-server"
inherit meson pkgconfig python3native
+# Reuse include file from upstream weston since we have the same requirements
+require recipes-graphics/wayland/required-distro-features.inc
+
+PACKAGES =+ "agl-shell-grpc-server"
+
+LDFLAGS:append:riscv64 = " -Wl,--no-as-needed -latomic -Wl,--as-needed"
+
FILES:${PN} = " \
${bindir}/agl-compositor \
${bindir}/agl-screenshooter \
${libdir}/agl-compositor/libexec_compositor.so.0 \
- ${libdir}/agl-compositor/libexec_compositor.so.0.0.0 \
+ ${libdir}/agl-compositor/libexec_compositor.so.${AGL_COMPOSITOR_VERSION} \
+"
+
+FILES:agl-shell-grpc-server = " \
+ ${libdir}/agl-compositor/agl-shell-grpc-server \
"
RDEPENDS:${PN} += " \
agl-compositor-init \
- ${@bb.utils.contains('AGL_FEATURES', 'waltham-remoting', 'waltham waltham-transmitter-plugin', '', d)} \
+ xkeyboard-config \
"
FILES:${PN}-dev += " \
diff --git a/meta-agl-core/recipes-graphics/wayland/agl-shell-activator_git.bb b/meta-agl-core/recipes-graphics/wayland/agl-shell-activator_git.bb
deleted file mode 100644
index d6a271dbb..000000000
--- a/meta-agl-core/recipes-graphics/wayland/agl-shell-activator_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = " Application that switches/activates other application's windows "
-DESCRIPTION = " A wayland client and a script that talks with the agl-compositor \
-an tells it to display a specific application. Relies on the appid being \
-started (already) by afm-util or the client shell (homescreen/WAM)"
-
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/q/project:src%252Fagl-shell-activator"
-SECTION = "x11"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e978448a0d41d826d73890d9c22caf75"
-
-DEPENDS = "wayland wayland-protocols wayland-native agl-compositor"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/agl-shell-activator.git;protocol=https;branch=${AGL_BRANCH}"
-SRCREV = "0b21156c3b4f049325dbc7937aabb1f689ed945d"
-
-PV = "0.0.10+git${SRCPV}"
-S = "${WORKDIR}/git"
-
-
-inherit meson pkgconfig python3native
-
-FILES:${PN} = " ${bindir}/agl-shell-activator"
diff --git a/meta-agl-core/recipes-graphics/wayland/native-shell-client_git.bb b/meta-agl-core/recipes-graphics/wayland/native-shell-client_git.bb
new file mode 100644
index 000000000..c0c31e029
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/native-shell-client_git.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Minimal agl-shell Wayland protocol client"
+
+HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/q/project:src%252Fnative-shell-client"
+SECTION = "x11"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3b90ee643ce04400848a8f0deb492a4a"
+
+DEPENDS = "wayland wayland-protocols wayland-native agl-compositor"
+
+SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/native-shell-client.git;protocol=https;branch=${AGL_BRANCH}"
+SRCREV = "099e06f532eff7c56bf00eb58420f14c95a8e554"
+
+PV = "0.0.1+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
diff --git a/meta-agl-core/recipes-graphics/wayland/waltham-transmitter-plugin.bb b/meta-agl-core/recipes-graphics/wayland/waltham-transmitter-plugin.bb
deleted file mode 100644
index 734fadf6f..000000000
--- a/meta-agl-core/recipes-graphics/wayland/waltham-transmitter-plugin.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Waltham transmitter is a libweston plug-in that adds support for receiving input events from a surface streamed on a remote output"
-HOMEPAGE = "https://gerrit.automotivelinux.org/gerrit/src/waltham-transmitter-plugin.git"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f21c9af4de068fb53b83f0b37d262ec3"
-
-DEPENDS += "wayland wayland-native waltham weston"
-
-SRC_URI = "git://gerrit.automotivelinux.org/gerrit/src/waltham-transmitter-plugin.git;protocol=https;branch=${AGL_BRANCH}"
-AGL_BRANCH:aglnext = "next"
-SRCREV = "d64b99a999fcc17322393782fe802122fd963ced"
-SRCREV:aglnext = "${AUTOREV}"
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig python3native
-
-FILES:${PN} += "${libdir}/*"
-FILES:${PN} += "${bindir}/*"
diff --git a/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
deleted file mode 100644
index 32c2df3c4..000000000
--- a/meta-agl-core/recipes-graphics/wayland/waltham/0001-Use-python3-instead-of-2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 6ecdf10a10929164f3cbdb754ae91d27576e5036 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Fri, 16 Oct 2020 18:57:38 +0300
-Subject: [PATCH] Use python3 instead of 2
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- configure.ac | 2 +-
- tools/gen.py | 6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5f65a6b..94b8644 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -32,7 +32,7 @@ AC_SUBST(VERSION_INFO)
- # Check for programs
- AC_PROG_CC
- AC_PROG_CC_STDC
--AC_CHECK_PROGS([PYTHON2], [python2 python])
-+AC_CHECK_PROGS([PYTHON3], [python3 python])
- PKG_PROG_PKG_CONFIG()
-
- AC_ARG_ENABLE(gprof,
-diff --git a/tools/gen.py b/tools/gen.py
-index 19e8baa..64c5870 100755
---- a/tools/gen.py
-+++ b/tools/gen.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python2
-+#!/usr/bin/env python3
- # -*- coding: utf-8 -*-
-
- # Copyright © 2013-2014 Collabora, Ltd.
-@@ -562,11 +562,11 @@ try:
- opts, args = getopt.getopt(sys.argv[1:], "hp:i:o:t:m:",
- ["preamble=", "input=", "output=", "type=", "mode="])
- except getopt.GetoptError:
-- print 'gen.py -p <preamblefile> -i <inputfile> -o <outputfile> -t <type> -m <mode>'
-+ print('gen.py -p <preamblefile> -i <inputfile> -o <outputfile> -t <type> -m <mode>')
- sys.exit(2)
- for opt, arg in opts:
- if opt == '-h':
-- print 'gen.py -p <preamblefile> -i <inputfile> -o <outputfile> -t <type> -m <mode>'
-+ print('gen.py -p <preamblefile> -i <inputfile> -o <outputfile> -t <type> -m <mode>')
- sys.exit()
- elif opt in ("-p", "--preamble"):
- preamble_files.append(arg)
---
-2.28.0
-
diff --git a/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
deleted file mode 100644
index 354bcbc15..000000000
--- a/meta-agl-core/recipes-graphics/wayland/waltham/0001-waltham-Fix-compile-build-error.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From cc87dddc2cdc0c20b053e3da1197efd671b4f50c Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Wed, 23 Sep 2020 22:33:50 +0300
-Subject: [PATCH 1/2] waltham: Fix compile build error
-
-Newer compilers will complain about the fact debug_message is declared
-multiple times:
-
-multiple definition of `debug_message';
-.libs/marshaller.o:/home/mvlad/src/native-agl-weston8/waltham/waltham/src/waltham/marshaller_log.h:35:
-first defined here multiple definition of `debug_message';
-.libs/marshaller.o:/home/mvlad/src/native-agl-weston8/waltham/waltham/src/waltham/marshaller_log.h:35:
-first defined here /usr/bin/ld:
-.libs/client-serialice.o:/home/mvlad/src/native-agl-weston8/waltham/waltham/src/waltham/marshaller_log.h:35:
-multiple definition of `debug_message';
-.libs/marshaller.o:/home/mvlad/src/native-agl-weston8/waltham/waltham/src/waltham/marshaller_log.h:35:
-first defined here
-
-Bug-AGL: SPEC-3649
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- src/waltham/marshaller_log.h | 2 +-
- src/waltham/waltham-util.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/waltham/marshaller_log.h b/src/waltham/marshaller_log.h
-index 8254914..ffa87c1 100644
---- a/src/waltham/marshaller_log.h
-+++ b/src/waltham/marshaller_log.h
-@@ -32,7 +32,7 @@
- /* Comment/uncomment to disable/enable debugging log */
- #define DEBUG
- //#define PROFILE
--int debug_message;
-+extern int debug_message;
-
- #ifdef DEBUG
- static inline void DEBUG_STAMP (void) {
-diff --git a/src/waltham/waltham-util.c b/src/waltham/waltham-util.c
-index 410b114..8f898f8 100644
---- a/src/waltham/waltham-util.c
-+++ b/src/waltham/waltham-util.c
-@@ -34,7 +34,7 @@
- #include "waltham-connection.h"
- #include "waltham-private.h"
-
--int debug_message;
-+extern int debug_message;
-
- static void
- wth_pfx_print(const char *pfx, const char *fmt, va_list argp)
---
-2.28.0
-
diff --git a/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch b/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
deleted file mode 100644
index 5aefb922b..000000000
--- a/meta-agl-core/recipes-graphics/wayland/waltham/0002-commandxml-Add-support-wthp_app_id-interface.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From d30005429fe92daa14151c2a6175d5cf19506cac Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Wed, 7 Oct 2020 16:36:38 +0300
-Subject: [PATCH 2/2] commandxml: Add support wthp_app_id interface
-
-With it, we hang off the app_id which we can use to pass it to the
-receiver side.
-
-Bug-AGL: SPEC-3601
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- data/command.xml | 29 +++++++++++++++++++++++++++++
- src/waltham/header-preamble.txt | 1 +
- 2 files changed, 30 insertions(+)
-
-diff --git a/data/command.xml b/data/command.xml
-index a03082b..cb53f75 100644
---- a/data/command.xml
-+++ b/data/command.xml
-@@ -1814,6 +1814,35 @@
-
- </interface>
-
-+ <interface name="wthp_ivi_app_id" version="1">
-+ <description summary="create ivi-style surfaces">
-+ This interface is exposed as a global singleton.
-+ This interface is implemented by servers that provide IVI-style user interfaces.
-+ It allows clients to associate an ivi_surface with wthp_surface.
-+ </description>
-+
-+ <enum name="error">
-+ <entry name="role" value="0" summary="given wthp_surface has another role"/>
-+ </enum>
-+
-+ <request name="surface_create">
-+ <description summary="create ivi_surface with app_id in ivi compositor">
-+ This request gives the wthp_surface the role of an IVI Surface. Creating more than
-+ one ivi_surface for a wthp_surface is not allowed. Note, that this still allows the
-+ following example:
-+
-+ 1. create a wthp_surface
-+ 2. create ivi_surface for the wthp_surface
-+ 3. destroy the ivi_surface
-+
-+ </description>
-+ <arg name="app_id" type="string"/>
-+ <arg name="surface" type="object" interface="wthp_surface"/>
-+ <arg name="id" type="new_id" interface="wthp_ivi_surface"/>
-+ </request>
-+
-+ </interface>
-+
- <interface name="dummy" version="1">
- <request name="dummy_request">
- </request>
-diff --git a/src/waltham/header-preamble.txt b/src/waltham/header-preamble.txt
-index df765cc..2409859 100644
---- a/src/waltham/header-preamble.txt
-+++ b/src/waltham/header-preamble.txt
-@@ -50,5 +50,6 @@ struct wthp_touch;
-
- struct wthp_ivi_surface;
- struct wthp_ivi_application;
-+struct wthp_ivi_app_id;
-
- struct dummy;
---
-2.28.0
-
diff --git a/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend b/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend
deleted file mode 100644
index 302eba4d2..000000000
--- a/meta-agl-core/recipes-graphics/wayland/waltham_%.bbappend
+++ /dev/null
@@ -1,7 +0,0 @@
-FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
-
-SRC_URI:append = "\
- file://0001-waltham-Fix-compile-build-error.patch \
- file://0002-commandxml-Add-support-wthp_app_id-interface.patch \
- file://0001-Use-python3-instead-of-2.patch \
- "
diff --git a/meta-agl-core/recipes-graphics/wayland/waltham_git.bb b/meta-agl-core/recipes-graphics/wayland/waltham_git.bb
deleted file mode 100644
index da092a5e7..000000000
--- a/meta-agl-core/recipes-graphics/wayland/waltham_git.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Waltham is a network IPC library designed to resemble Wayland both protocol and protocol-API wise"
-HOMEPAGE = "https://github.com/waltham/waltham"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = " \
- file://LICENSE;md5=e8ad01a5182f2c1b3a2640e9ea268264 \
-"
-SRCREV = "1de58c3ff746ddaba7584d760c5454243723d3ca"
-SRC_URI = "git://github.com/wmizuno/waltham.git;branch=master;protocol=https \
- "
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-DEPENDS += "libdrm virtual/kernel wayland"
-RDEPENDS:${PN} += "libdrm" \ No newline at end of file
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
index c04ff6568..0611ec5b4 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
@@ -9,12 +9,16 @@ SRC_URI = " \
file://hdmi-a-1-90.cfg \
file://hdmi-a-1-180.cfg \
file://hdmi-a-1-270.cfg \
- file://remote-output.cfg \
- file://transmitter-output.cfg.in \
+ file://hdmi-a-2-0.cfg \
+ file://hdmi-a-2-90.cfg \
+ file://hdmi-a-2-180.cfg \
+ file://hdmi-a-2-270.cfg \
+ file://remote-output.cfg.in \
file://virtual-0.cfg \
file://virtual-90.cfg \
file://virtual-180.cfg \
file://virtual-270.cfg \
+ file://grpc-proxy.cfg \
"
S = "${WORKDIR}"
@@ -27,22 +31,21 @@ WESTON_DISPLAYS ?= "hdmi-a-1-90"
# Configuration fragments to use in weston.ini.*
# Note that some may be replaced/removed when building the landscape
# configuration.
-WESTON_FRAGMENTS = "core shell ${WESTON_DISPLAYS}"
+WESTON_FRAGMENTS = "core shell grpc-proxy ${WESTON_DISPLAYS}"
# On-target weston.ini directory
weston_ini_dir = "${sysconfdir}/xdg/weston"
# Options for the user to change in local.conf
-# e.g. TRANSMITTER_OUTPUT_MODE = "1080x1488"
-TRANSMITTER_OUTPUT_MODE ??= "640x720@30"
-TRANSMITTER_OUTPUT_HOST ??= "192.168.20.99"
-TRANSMITTER_OUTPUT_PORT ??= "5005"
+# e.g. REMOTING_OUTPUT_MODE = "1080x1488"
+REMOTING_OUTPUT_MODE ??= "640x720@30"
+REMOTING_OUTPUT_HOST ??= "192.168.10.3"
+REMOTING_OUTPUT_PORT ??= "5005"
do_configure() {
- sed -e "s#mode=.*#mode=${TRANSMITTER_OUTPUT_MODE}#" \
- -e "s#host=.*#host=${TRANSMITTER_OUTPUT_HOST}#" \
- -e "s#port=.*#port=${TRANSMITTER_OUTPUT_PORT}#" \
- ${WORKDIR}/transmitter-output.cfg.in > ${WORKDIR}/transmitter-output.cfg
+ sed -e "s#host=.*#host=${REMOTING_OUTPUT_HOST}#" \
+ -e "s#port=.*#port=${REMOTING_OUTPUT_PORT}#" \
+ ${WORKDIR}/remote-output.cfg.in > ${WORKDIR}/remote-output.cfg
}
do_compile() {
@@ -55,15 +58,21 @@ do_compile() {
done
sed -i -e '$ d' ${WORKDIR}/weston.ini.default
+ cat ${WORKDIR}/weston.ini.default > ${WORKDIR}/weston.ini.default-no-activate
+
# Do it again, but filter fragments to configure for landscape
# and a corresponding landscape-inverted that is 180 degrees
# rotated.
rm -f ${WORKDIR}/weston.ini.landscape
+ rm -f ${WORKDIR}/weston.ini.landscape-inverted
for F in ${WESTON_FRAGMENTS}; do
INVF=$F
if echo $F | grep '^hdmi-a-1-\(90\|270\)$'; then
F="hdmi-a-1-0"
INVF="hdmi-a-1-180"
+ elif echo $F | grep '^hdmi-a-2-\(90\|270\)$'; then
+ F="hdmi-a-2-0"
+ INVF="hdmi-a-2-180"
elif echo $F | grep '^virtual-90$'; then
F="virtual-0"
INVF="virtual-180"
@@ -75,11 +84,15 @@ do_compile() {
done
sed -i -e '$ d' ${WORKDIR}/weston.ini.landscape
sed -i -e '$ d' ${WORKDIR}/weston.ini.landscape-inverted
+
+ cat ${WORKDIR}/weston.ini.landscape > ${WORKDIR}/weston.ini.landscape-no-activate
}
do_install:append() {
install -d ${D}${weston_ini_dir}
install -m 0644 ${WORKDIR}/weston.ini.default ${D}${weston_ini_dir}/
+ install -m 0644 ${WORKDIR}/weston.ini.default-no-activate ${D}${weston_ini_dir}/
+ install -m 0644 ${WORKDIR}/weston.ini.landscape-no-activate ${D}${weston_ini_dir}/
install -m 0644 ${WORKDIR}/weston.ini.landscape ${D}${weston_ini_dir}/
install -m 0644 ${WORKDIR}/weston.ini.landscape-inverted ${D}${weston_ini_dir}/
}
@@ -95,7 +108,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
ALTERNATIVE_LINK_NAME[weston.ini] = "${weston_ini_dir}/weston.ini"
-RDEPENDS:${PN} = "weston-init"
RPROVIDES:${PN} = "weston-ini"
RCONFLICTS:${PN} = "${PN}-landscape"
ALTERNATIVE:${PN} = "weston.ini"
@@ -105,7 +117,6 @@ PACKAGE_BEFORE_PN += "${PN}-landscape"
FILES:${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape"
-RDEPENDS:${PN}-landscape = "weston-init"
RPROVIDES:${PN}-landscape = "weston-ini"
RCONFLICTS:${PN}-landscape = "${PN}"
ALTERNATIVE:${PN}-landscape = "weston.ini"
@@ -115,8 +126,31 @@ PACKAGE_BEFORE_PN += "${PN}-landscape-inverted"
FILES:${PN}-landscape-inverted = "${weston_ini_dir}/weston.ini.landscape-inverted"
-RDEPENDS:${PN}-landscape-inverted = "weston-init"
RPROVIDES:${PN}-landscape-inverted = "weston-ini"
RCONFLICTS:${PN}-landscape-inverted = "${PN}"
ALTERNATIVE:${PN}-landscape-inverted = "weston.ini"
ALTERNATIVE_TARGET_${PN}-landscape-inverted = "${weston_ini_dir}/weston.ini.landscape-inverted"
+
+# no activation by default
+PACKAGE_BEFORE_PN += "${PN}-no-activate"
+
+FILES:${PN}-no-activate = "${weston_ini_dir}/weston.ini.default-no-activate"
+
+RPROVIDES:${PN}-no-activate = "weston-ini"
+RCONFLICTS:${PN}-no-activate = "${PN}"
+ALTERNATIVE:${PN}-no-activate = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-no-activate = "${weston_ini_dir}/weston.ini.default-no-activate"
+
+# landscape, no activation by default
+PACKAGE_BEFORE_PN += "${PN}-landscape-no-activate"
+
+FILES:${PN}-landscape-no-activate = "${weston_ini_dir}/weston.ini.landscape-no-activate"
+
+RPROVIDES:${PN}-landscape-no-activate = "weston-ini"
+RCONFLICTS:${PN}-landscape-no-activate = "${PN}"
+ALTERNATIVE:${PN}-landscape-no-activate = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-landscape-no-activate = "${weston_ini_dir}/weston.ini.landscape-no-activate"
+
+# This is a settings-only package, we do not need a development package
+# (and its fixed dependency to ${PN} being installed)
+PACKAGES:remove = "${PN}-dev ${PN}-staticdev"
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
index d441d6577..746bde339 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
@@ -3,10 +3,10 @@ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
WESTON_DISPLAYS:append = "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", " remote-output", "", d)}"
-WESTON_DISPLAYS:append = "${@bb.utils.contains("AGL_FEATURES", "waltham-remoting", " transmitter-output", "", d)}"
# For virtual machines and intel-corei7-64 we want to support both the HDMI-A-1
# and Virtual-1 outputs. This allows us to run virtual images on real hardware
# and vice versa.
WESTON_DISPLAYS:append:qemuall = " virtual-90"
WESTON_DISPLAYS:append:intel-corei7-64 = " virtual-90"
+WESTON_DISPLAYS:append:virtio-aarch64 = " virtual-90"
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
index 90774ed79..28f90752d 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/core.cfg
@@ -1,4 +1,6 @@
[core]
backend=drm-backend.so
require-input=false
+idle-time=0
modules=systemd-notify.so
+activate-by-default=false
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/grpc-proxy.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/grpc-proxy.cfg
new file mode 100644
index 000000000..14805b969
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/grpc-proxy.cfg
@@ -0,0 +1,4 @@
+
+[shell-client-ext]
+command=/usr/lib/agl-compositor/agl-shell-grpc-server
+
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-0.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-0.cfg
new file mode 100644
index 000000000..4d5d51c03
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-0.cfg
@@ -0,0 +1,5 @@
+# A display is connected to HDMI-A-1 and needs to be rotated 90 degrees
+# to have a proper orientation of the homescreen. For example, the 'eGalax'
+# display used in some instances.
+[output]
+name=HDMI-A-2
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-180.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-180.cfg
new file mode 100644
index 000000000..ffdc5fe60
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-180.cfg
@@ -0,0 +1,6 @@
+# A display is connected to HDMI-A-1 and needs to be rotated 90 degrees
+# to have a proper orientation of the homescreen. For example, the 'eGalax'
+# display used in some instances.
+[output]
+name=HDMI-A-2
+transform=rotate-180
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-270.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-270.cfg
new file mode 100644
index 000000000..76fc77acd
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-270.cfg
@@ -0,0 +1,6 @@
+# A display is connected to HDMI-A-1 and needs to be rotated 90 degrees
+# to have a proper orientation of the homescreen. For example, the 'eGalax'
+# display used in some instances.
+[output]
+name=HDMI-A-2
+transform=rotate-270
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-90.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-90.cfg
new file mode 100644
index 000000000..9172a1c6a
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-2-90.cfg
@@ -0,0 +1,6 @@
+# A display is connected to HDMI-A-1 and needs to be rotated 90 degrees
+# to have a proper orientation of the homescreen. For example, the 'eGalax'
+# display used in some instances.
+[output]
+name=HDMI-A-2
+transform=rotate-90
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg.in
index f69a2e096..940cbdd0c 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/remote-output.cfg.in
@@ -1,5 +1,5 @@
[remote-output]
name=remote-1
mode=640x720@30
-host=192.168.20.99
+host=192.168.10.3
port=5005
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
index 975e539e6..8d16ba5d7 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/shell.cfg
@@ -1,3 +1,3 @@
[shell]
-locking=true
+locking=false
panel-position=none
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/transmitter-output.cfg.in b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/transmitter-output.cfg.in
deleted file mode 100644
index e77f74ec0..000000000
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/transmitter-output.cfg.in
+++ /dev/null
@@ -1,5 +0,0 @@
-[transmitter-output]
-name=transmitter-1
-mode=640x720@30
-host=192.168.20.99
-port=5005
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch
new file mode 100644
index 000000000..202333a5e
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch
@@ -0,0 +1,30 @@
+From 6a847464de9e773f6d1490916d0df48a0f90eeba Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Thu, 5 Oct 2023 16:27:34 +0300
+Subject: [PATCH] clients: Handle missing pointer_surface is there's no pointer
+ event
+
+Upstream-Status: Pending
+
+Bug-AGL: SPEC-4916
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ clients/window.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clients/window.c b/clients/window.c
+index 30f6410..882e9d5 100644
+--- a/clients/window.c
++++ b/clients/window.c
+@@ -3818,7 +3818,7 @@ pointer_surface_frame_callback(void *data, struct wl_callback *callback,
+ force_frame = false;
+ }
+
+- if (!input->pointer)
++ if (!input->pointer || !input->pointer_surface)
+ return;
+
+ if (input_set_pointer_special(input))
+--
+2.35.1
+
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch
new file mode 100644
index 000000000..19eadcf7f
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Add-paint-node-destruction-into-weston_lay.patch
@@ -0,0 +1,60 @@
+From cfde02d47a503cbfd0629bbfe0cb776686af8a91 Mon Sep 17 00:00:00 2001
+From: Marius Vlad <marius.vlad@collabora.com>
+Date: Tue, 9 Apr 2024 18:34:22 +0300
+Subject: [PATCH] libweston: Add paint node destruction into
+ weston_layer_entry_remove()
+
+This prevents a potential crash where users of
+weston_layer_entry_insert/layer_entry_remove() would see when moving
+views into a NULL layer (effectively unmapping the surface/view).
+
+Users that have migrated to the weston_view_move_to_layer() are immune
+to this issue because that takes care paint node destruction.
+
+Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
+---
+ libweston/compositor.c | 17 ++++++++++-------
+ 1 file changed, 10 insertions(+), 7 deletions(-)
+
+diff --git a/libweston/compositor.c b/libweston/compositor.c
+index bb29b83b5..ea257bb90 100644
+--- a/libweston/compositor.c
++++ b/libweston/compositor.c
+@@ -3980,17 +3980,10 @@ weston_view_move_to_layer(struct weston_view *view,
+ struct weston_layer_entry *layer)
+ {
+ bool was_mapped = view->is_mapped;
+- struct weston_paint_node *pnode, *pntmp;
+
+ if (layer == &view->layer_link)
+ return;
+
+- /* Remove all paint nodes because we have no idea what a layer change
+- * does to view visibility on any output.
+- */
+- wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link)
+- weston_paint_node_destroy(pnode);
+-
+ view->surface->compositor->view_list_needs_rebuild = true;
+
+ /* Damage the view's old region, and remove it from the layer. */
+@@ -4020,6 +4013,16 @@ weston_view_move_to_layer(struct weston_view *view,
+ WL_EXPORT void
+ weston_layer_entry_remove(struct weston_layer_entry *entry)
+ {
++ struct weston_paint_node *pnode, *pntmp;
++ struct weston_view *view;
++
++ /* Remove all paint nodes because we have no idea what a layer change
++ * does to view visibility on any output.
++ */
++ view = container_of(entry, struct weston_view, layer_link);
++ wl_list_for_each_safe(pnode, pntmp, &view->paint_node_list, view_link)
++ weston_paint_node_destroy(pnode);
++
+ wl_list_remove(&entry->link);
+ wl_list_init(&entry->link);
+ entry->layer = NULL;
+--
+2.43.0
+
diff --git a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch b/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
deleted file mode 100644
index 02af7cbaf..000000000
--- a/meta-agl-core/recipes-graphics/wayland/weston/0001-libweston-Migrate-weston_seat_init-release-to-public.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 4534fcab54409b08faf4445ed6780136b58afb63 Mon Sep 17 00:00:00 2001
-From: Marius Vlad <marius.vlad@collabora.com>
-Date: Mon, 28 Sep 2020 22:51:00 +0300
-Subject: [PATCH 1/2] libweston: Migrate weston_seat_init/release to public
- headers
-
-weston_seat_init/release needed for creating weston plug-ins that want
-manage seat/input on their own.
-
-Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
----
- include/libweston/libweston.h | 25 +++++++++++++++++++++++++
- libweston/libweston-internal.h | 31 +++----------------------------
- 2 files changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/include/libweston/libweston.h b/include/libweston/libweston.h
-index 54ea008..59541f2 100644
---- a/include/libweston/libweston.h
-+++ b/include/libweston/libweston.h
-@@ -2053,6 +2053,31 @@ void
- weston_timeline_refresh_subscription_objects(struct weston_compositor *wc,
- void *object);
-
-+/* input, seat */
-+void
-+weston_seat_init(struct weston_seat *seat, struct weston_compositor *ec,
-+ const char *seat_name);
-+void
-+weston_seat_release(struct weston_seat *seat);
-+
-+void
-+weston_seat_init_pointer(struct weston_seat *seat);
-+
-+int
-+weston_seat_init_keyboard(struct weston_seat *seat, struct xkb_keymap *keymap);
-+
-+void
-+weston_seat_init_touch(struct weston_seat *seat);
-+
-+void
-+weston_seat_release_keyboard(struct weston_seat *seat);
-+
-+void
-+weston_seat_release_pointer(struct weston_seat *seat);
-+
-+void
-+weston_seat_release_touch(struct weston_seat *seat);
-+
- #ifdef __cplusplus
- }
- #endif
-diff --git a/libweston/libweston-internal.h b/libweston/libweston-internal.h
-index 66c38e8..f5c4c2c 100644
---- a/libweston/libweston-internal.h
-+++ b/libweston/libweston-internal.h
-@@ -168,44 +168,19 @@ weston_plane_init(struct weston_plane *plane,
- void
- weston_plane_release(struct weston_plane *plane);
-
--/* weston_seat */
--
- struct clipboard *
- clipboard_create(struct weston_seat *seat);
-
--void
--weston_seat_init(struct weston_seat *seat, struct weston_compositor *ec,
-- const char *seat_name);
--
--void
--weston_seat_repick(struct weston_seat *seat);
-+/* weston_seat */
-
- void
--weston_seat_release(struct weston_seat *seat);
-+weston_seat_update_keymap(struct weston_seat *seat, struct xkb_keymap *keymap);
-
- void
- weston_seat_send_selection(struct weston_seat *seat, struct wl_client *client);
-
- void
--weston_seat_init_pointer(struct weston_seat *seat);
--
--int
--weston_seat_init_keyboard(struct weston_seat *seat, struct xkb_keymap *keymap);
--
--void
--weston_seat_init_touch(struct weston_seat *seat);
--
--void
--weston_seat_release_keyboard(struct weston_seat *seat);
--
--void
--weston_seat_release_pointer(struct weston_seat *seat);
--
--void
--weston_seat_release_touch(struct weston_seat *seat);
--
--void
--weston_seat_update_keymap(struct weston_seat *seat, struct xkb_keymap *keymap);
-+weston_seat_repick(struct weston_seat *seat);
-
- void
- wl_data_device_set_keyboard_focus(struct weston_seat *seat);
---
-2.28.0
-
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
deleted file mode 100644
index 90ccbc8fa..000000000
--- a/meta-agl-core/recipes-graphics/wayland/weston_10.0_aglcore.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-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_10.0.%.bbappend b/meta-agl-core/recipes-graphics/wayland/weston_13.0.%.bbappend
index 685894116..87cad12a0 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston_10.0.%.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/weston_13.0.%.bbappend
@@ -1 +1 @@
-require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_10.0_aglcore.inc', '', d)}
+require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', 'weston_13.0_aglcore.inc', '', d)}
diff --git a/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc
new file mode 100644
index 000000000..843a068b4
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston_13.0_aglcore.inc
@@ -0,0 +1,29 @@
+FILESEXTRAPATHS:append := ":${THISDIR}/weston"
+
+PACKAGECONFIG:append = "${@bb.utils.contains('DISTRO_FEATURES', 'weston-remoting', ' remoting', '', d)}"
+
+SRC_URI:append = " \
+ file://0001-clients-Handle-missing-pointer_surface-is-there-s-no.patch \
+ file://0001-libweston-Add-paint-node-destruction-into-weston_lay.patch \
+"
+
+
+# Split weston-terminal out of the main package to allow installing it
+# separately for use with other compositors. The icons, etc. that end
+# up in /usr/share/weston are also split out into a separate package
+# since they are required for weston-terminal and some of the programs
+# packaged in weston-examples in addition to ivi-shell in the main
+# package.
+
+PACKAGE_BEFORE_PN += "${PN}-data ${PN}-terminal"
+
+FILES:${PN}-data = "${datadir}/weston"
+
+FILES:${PN}-terminal = "${bindir}/weston-terminal"
+RDEPENDS:${PN}-terminal += "weston-data liberation-fonts"
+
+RDEPENDS:${PN}-examples += "weston-data"
+
+FILES:${PN}:remove = "weston-terminal"
+RDEPENDS:${PN}:remove = "liberation-fonts"
+RDEPENDS:${PN} += "weston-data weston-terminal"