aboutsummaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen3/recipes-graphics/wayland
diff options
context:
space:
mode:
authorTakamitsu Honda <takamitsu.honda.pv@renesas.com>2017-01-27 11:47:06 +0900
committerTakamitsu Honda <takamitsu.honda.pv@renesas.com>2017-01-27 11:47:06 +0900
commit3613b2780a6b5d5d70ea6802be5060a8214cbdb5 (patch)
treefab60ccb7b38da7e8558a2879885f06e5b0662d2 /meta-rcar-gen3/recipes-graphics/wayland
Renesas BSP v3.5.1 (kernel v4.9 stable) [Environment] poky: yocto-2.1.2 (cca8dd15c8096626052f6d8d25ff1e9a606104a3) meta-openembedded: 55c8a76da5dc099a7bc3838495c672140cedb78e meta-linaro: 2f51d38048599d9878f149d6d15539fb97603f8f [Information] - U-boot: Changed load address from H'49000000 to H'50000000 - XDG_RUNTIME_DIR has been changed from "/run/user/root" to "/run/user/0" - Change location of include directory, which stores common user header files, to $(INCSHARED) - In BSP Only, core-image-weston is not supported even though local-wayland.conf is provided. - Please set Salvator-x SW7 Pin-1. In after Yocto BSP v2.12.0, it is  necessary to enable BKUP_TRG signal for Suspend to RAM. - The dtb filename was changed in R-Car H3. Only "Image-r8a7795-es1-salvator-x.dtb" is supported in this version. Please use "Image-r8a7795-es1-salvator-x.dtb" It supports R-Car H3 WS1.0 and WS1.1. - Please update your local.conf and bblayers.conf corresponding to Yocto v2.16.0 package. You can refer to meta-rcargen3/docs/sample/conf/ for updated contents. - You have to re-compile out-of-recipe software like user application by v2.16.0 SDK toolchains. - In some boards, the resuming from System Suspend to RAM may cause unstable operation or failed to resume. Signed-off-by: Takamitsu Honda <takamitsu.honda.pv@renesas.com>
Diffstat (limited to 'meta-rcar-gen3/recipes-graphics/wayland')
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/libgbm.bb35
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch72
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/libinput_1.4.1.bb23
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/wayland-kms_1.6.0.bb25
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bb20
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bbappend10
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch30
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/wayland_1.11.0.bb43
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston-init.bbappend30
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston-init/init53
-rwxr-xr-xmeta-rcar-gen3/recipes-graphics/wayland/weston-init/weston-start74
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston.service11
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston.inc36
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch34
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/0001-make-error-portable.patch80
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch28
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch173
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch33
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/weston.desktop9
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/weston.ini2
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/weston.pngbin0 -> 2383 bytes
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/weston_v4l2.ini6
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston/xwayland.weston-start7
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bb117
-rw-r--r--meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bbappend44
25 files changed, 995 insertions, 0 deletions
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/libgbm.bb b/meta-rcar-gen3/recipes-graphics/wayland/libgbm.bb
new file mode 100644
index 0000000..64b0681
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/libgbm.bb
@@ -0,0 +1,35 @@
+SUMMARY = "gbm library"
+LICENSE = "MIT"
+SECTION = "libs"
+
+LIC_FILES_CHKSUM = " \
+ file://gbm.c;beginline=4;endline=22;md5=5cdaac262c876e98e47771f11c7036b5"
+
+SRCREV = "bc04aefc9d5322f8b2dc1ecb15d0713bbab684b8"
+SRC_URI = "git://github.com/renesas-rcar/libgbm;branch=rcar-gen3"
+
+S = "${WORKDIR}/git"
+
+COMPATIBLE_MACHINE = "(r8a7795|r8a7796)"
+DEPENDS = "wayland-kms"
+
+inherit autotools pkgconfig
+
+PACKAGES = " \
+ ${PN} \
+ ${PN}-dev \
+ ${PN}-dbg \
+ ${PN}-staticdev \
+"
+
+FILES_${PN} = " \
+ ${libdir}/libgbm.so.* \
+ ${libdir}/gbm/libgbm_kms.so.* \
+ ${libdir}/gbm/*.so \
+ ${libdir}/*.so \
+"
+FILES_${PN}-dev += "${libdir}/gbm/*.la"
+FILES_${PN}-dbg += "${libdir}/gbm/.debug/*"
+FILES_${PN}-staticdev += "${libdir}/gbm/*.a"
+
+INSANE_SKIP_${PN} += "dev-so"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch b/meta-rcar-gen3/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch
new file mode 100644
index 0000000..b52b496
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch
@@ -0,0 +1,72 @@
+This is a workaround upstream suggests for use with kernel 4.1.
+
+Upstream-Status: Inappropriate [temporary work-around]
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+
+
+
+From: Peter Hutterer <peter.hutterer@who-t.net>
+Date: Mon Aug 3 18:23:12 PDT 2015
+Subject: [PATCH v3 libinput] touchpad: serial synaptics need to fake new touches on TRIPLETAP
+
+On the 4.1 kernels synaptics pretends to have 3 slots (the serial fw only does
+2). This was added to avoid cursor jumps but has since been reverted for 4.2
+(kernel commit dbf3c37086, 4.1.3 is still buggy). In some cases a TRIPLETAP
+may be triggered without slot 2 ever activating.
+
+While there are still those kernels out there, work around this bug by opening
+a new touch point where none exists if the fake finger count exceeds the slot
+count.
+
+Reported-by: Jan Alexander Steffens <jan.steffens at gmail.com>
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Tested-by: Jan Alexander Steffens <jan.steffens at gmail.com>
+Reviewed-by: Hans de Goede <hdegoede at redhat.com>
+---
+Changes to v2:
+- split out the handling instead of having a tmp state variable, see Hans'
+ comments from v2
+
+Mainly sending this to the list again so I have a link to point people to.
+If you're on 4.1.x add this patch to your distribution package.
+
+ src/evdev-mt-touchpad.c | 22 ++++++++++++++++------
+ 1 file changed, 16 insertions(+), 6 deletions(-)
+
+diff --git a/src/evdev-mt-touchpad.c b/src/evdev-mt-touchpad.c
+index a683d9a..5ef03d5 100644
+--- a/src/evdev-mt-touchpad.c
++++ b/src/evdev-mt-touchpad.c
+@@ -369,13 +369,23 @@ tp_restore_synaptics_touches(struct tp_dispatch *tp,
+ for (i = 0; i < tp->num_slots; i++) {
+ struct tp_touch *t = tp_get_touch(tp, i);
+
+- if (t->state != TOUCH_END)
++ switch(t->state) {
++ case TOUCH_HOVERING:
++ case TOUCH_BEGIN:
++ case TOUCH_UPDATE:
+ continue;
+-
+- /* new touch, move it through begin to update immediately */
+- tp_new_touch(tp, t, time);
+- tp_begin_touch(tp, t, time);
+- t->state = TOUCH_UPDATE;
++ case TOUCH_NONE:
++ /* new touch, move it through to begin immediately */
++ tp_new_touch(tp, t, time);
++ tp_begin_touch(tp, t, time);
++ break;
++ case TOUCH_END:
++ /* touch just ended ,we need need to restore it to update */
++ tp_new_touch(tp, t, time);
++ tp_begin_touch(tp, t, time);
++ t->state = TOUCH_UPDATE;
++ break;
++ }
+ }
+ }
+
+--
+2.4.3
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/libinput_1.4.1.bb b/meta-rcar-gen3/recipes-graphics/wayland/libinput_1.4.1.bb
new file mode 100644
index 0000000..c3905f3
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/libinput_1.4.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Library to handle input devices in Wayland compositors"
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/libinput/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2184aef38ff137ed33ce9a63b9d1eb8f"
+
+DEPENDS = "libevdev udev mtdev"
+
+SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BP}.tar.xz \
+ file://touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch \
+"
+SRC_URI[md5sum] = "2e7ba577ed74d8d1baeb07dbd4fb912a"
+SRC_URI[sha256sum] = "26e7b3ab499358caba499705680ea7e5851af2bd37dc32f2be64181610d6392a"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+PACKAGECONFIG[libwacom] = "--enable-libwacom,--disable-libwacom,libwacom"
+PACKAGECONFIG[gui] = "--enable-event-gui,--disable-event-gui,cairo gtk+3"
+
+FILES_${PN} += "${libdir}/udev/"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/wayland-kms_1.6.0.bb b/meta-rcar-gen3/recipes-graphics/wayland/wayland-kms_1.6.0.bb
new file mode 100644
index 0000000..23ffcca
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/wayland-kms_1.6.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "KMS library for Wayland"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = " \
+ file://wayland-kms.c;beginline=6;endline=24;md5=5cdaac262c876e98e47771f11c7036b5"
+
+PV_append = "+git${SRCREV}"
+
+SRCREV = "a1539fe24125d581c53a18e1e6b6d4958f672a77"
+SRC_URI = "git://github.com/renesas-rcar/wayland-kms.git;branch=rcar-gen3"
+
+COMPATIBLE_MACHINE = "(r8a7795|r8a7796)"
+S = "${WORKDIR}/git"
+DEPENDS = "libdrm wayland gles-user-module"
+
+inherit autotools pkgconfig
+
+FILES_${PN} = "${libdir}/libwayland-kms.so.*"
+FILES_${PN}-dev = " \
+ ${libdir}/libwayland-kms.la \
+ ${libdir}/libwayland-kms.so \
+ ${libdir}/pkgconfig/* \
+ ${includedir}/* \
+"
+FILES_${PN}-staticdev += "${libdir}/libwayland-kms.a"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bb b/meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bb
new file mode 100644
index 0000000..1d2f0db
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Collection of additional Wayland protocols"
+DESCRIPTION = "Wayland protocols that add functionality not \
+available in the Wayland core protocol. Such protocols either add \
+completely new functionality, or extend the functionality of some other \
+protocol either in Wayland core, or some other protocol in \
+wayland-protocols."
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c7b12b6702da38ca028ace54aae3d484 \
+ file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ "
+SRC_URI[md5sum] = "9acfc9556f7cfedc44d97af60da66a5f"
+SRC_URI[sha256sum] = "635f2a937d318f1fecb97b54074ca211486e38af943868dd0fa82ea38d091c1f"
+
+inherit allarch autotools pkgconfig
+
+PACKAGES = "${PN}"
+FILES_${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bbappend b/meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bbappend
new file mode 100644
index 0000000..561dfd9
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/wayland-protocols_1.7.bbappend
@@ -0,0 +1,10 @@
+# In YP2.1.2, /sysroot/usr/share/pkgconfig is not included in PKG_CONFIG_PATH.
+# An Installation directory is moved to /usr/lib from /usr/share
+# In latest master branch, this problem was fixed by e0bcf333.
+do_install_append () {
+ install -d ${D}/${libdir}/pkgconfig
+ install -m 0644 ${D}/${datadir}/pkgconfig/wayland-protocols.pc ${D}/${libdir}/pkgconfig/
+ rm -rf ${D}/${datadir}/pkgconfig
+}
+
+FILES_${PN} += "${libdir}/pkgconfig/wayland-protocols.pc"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch b/meta-rcar-gen3/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch
new file mode 100644
index 0000000..dece95c
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch
@@ -0,0 +1,30 @@
+From 5516d32e694badca35b6c71b02a3f08f650308bf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Jul 2016 16:23:48 -0700
+Subject: [PATCH] scanner: Use unit32_t instead of uint
+
+uint32_t is C99 defined stdint type
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted
+---
+ src/scanner.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/scanner.c b/src/scanner.c
+index 5f06e8e..10a4023 100644
+--- a/src/scanner.c
++++ b/src/scanner.c
+@@ -808,7 +808,7 @@ find_enumeration(struct protocol *protocol,
+ struct interface *i;
+ struct enumeration *e;
+ char *enum_name;
+- uint idx = 0, j;
++ uint32_t idx = 0, j;
+
+ for (j = 0; j + 1 < strlen(enum_attribute); j++) {
+ if (enum_attribute[j] == '.') {
+--
+2.1.4
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/wayland_1.11.0.bb b/meta-rcar-gen3/recipes-graphics/wayland/wayland_1.11.0.bb
new file mode 100644
index 0000000..3413406
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/wayland_1.11.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Wayland, a protocol between a compositor and clients"
+DESCRIPTION = "Wayland is a protocol for a compositor to talk to its clients \
+as well as a C library implementation of that protocol. The compositor can be \
+a standalone display server running on Linux kernel modesetting and evdev \
+input devices, an X application, or a wayland client itself. The clients can \
+be traditional applications, X servers (rootless or fullscreen) or other \
+display servers."
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \
+ file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://0001-scanner-Use-unit32_t-instead-of-uint.patch \
+ "
+SRC_URI[md5sum] = "fccf680be066e234729d5b69e0bd0fa9"
+SRC_URI[sha256sum] = "9540925f7928becfdf5e3b84c70757f6589bf1ceef09bea78784d8e4772c0db0"
+
+EXTRA_OECONF_class-native = "--disable-documentation --disable-libraries"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
+
+DEPENDS = "expat libxml2 libffi wayland-native"
+
+EXTRA_OECONF = "--disable-documentation --with-host-scanner"
+
+# Wayland installs a M4 macro for other projects to use, which uses the target
+# pkg-config to find files. Replace pkg-config with pkg-config-native.
+do_install_append_class-native() {
+ sed -e 's,PKG_CHECK_MODULES(.*),,g' \
+ -e 's,$PKG_CONFIG,pkg-config-native,g' \
+ -i ${D}/${datadir}/aclocal/wayland-scanner.m4
+}
+
+sysroot_stage_all_append_class-target () {
+ rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
+ cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
+}
+
+FILES_${PN} = "${libdir}/*${SOLIBS}"
+FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston-init.bbappend b/meta-rcar-gen3/recipes-graphics/wayland/weston-init.bbappend
new file mode 100644
index 0000000..07dab05
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston-init.bbappend
@@ -0,0 +1,30 @@
+require include/gles-control.inc
+require include/multimedia-control.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+SRC_URI = " \
+ file://init \
+ file://weston.service \
+ file://weston-start \
+"
+
+do_install_append() {
+ # Install weston-start script
+ install -Dm755 ${WORKDIR}/weston-start ${D}${bindir}/weston-start
+ sed -i 's,@DATADIR@,${datadir},g' ${D}${bindir}/weston-start
+ sed -i 's,@LOCALSTATEDIR@,${localstatedir},g' ${D}${bindir}/weston-start
+
+ if [ "X${USE_GLES}" = "X1" ]; then
+ sed -e "/RequiresMountsFor=\/run/a Wants=rc.pvr.service" \
+ -e "/RequiresMountsFor=\/run/a After=rc.pvr.service" \
+ -e "s/\$OPTARGS/--idle-time=0 \$OPTARGS/" \
+ -i ${D}/${systemd_system_unitdir}/weston.service
+ fi
+
+ if [ "X${USE_MULTIMEDIA}" = "X1" ]; then
+ if [ "X${USE_V4L2_RENDERER}" = "X1" ]; then
+ sed -e "s/\$OPTARGS/--use-v4l2 \$OPTARGS/" \
+ -i ${D}/${systemd_system_unitdir}/weston.service
+ fi
+ fi
+}
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston-init/init b/meta-rcar-gen3/recipes-graphics/wayland/weston-init/init
new file mode 100644
index 0000000..d3e87c6
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston-init/init
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: weston
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+
+if test -e /etc/default/weston ; then
+ . /etc/default/weston
+fi
+
+killproc() {
+ pid=`/bin/pidof $1`
+ [ "$pid" != "" ] && kill $pid
+}
+
+read CMDLINE < /proc/cmdline
+for x in $CMDLINE; do
+ case $x in
+ weston=false)
+ echo "Weston disabled"
+ exit 0;
+ ;;
+ esac
+done
+
+case "$1" in
+ start)
+ . /etc/profile
+
+ weston-start -- $OPTARGS
+ ;;
+
+ stop)
+ echo "Stopping Weston"
+ killproc weston
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 { start | stop | restart }"
+ ;;
+esac
+
+exit 0
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston-start b/meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston-start
new file mode 100755
index 0000000..4657513
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston-start
@@ -0,0 +1,74 @@
+#!/bin/sh
+# Copyright (C) 2016 O.S. Systems Software LTDA.
+# Copyright (C) 2016 Freescale Semiconductor
+
+export PATH="/sbin:/usr/sbin:/bin:/usr/bin"
+
+usage() {
+ cat <<EOF
+ $0 <openvt arguments> -- <weston options>
+EOF
+}
+
+## Module support
+modules_dir=@DATADIR@/weston-start
+
+# Add weston extra argument
+add_weston_argument() {
+ weston_args="$weston_args $1"
+}
+
+# Add openvt extra argument
+add_openvt_argument() {
+ openvt_args="$openvt_args $1"
+}
+
+if test $# -lt 2; then
+ usage
+ exit 1
+fi
+
+if [ -n "$WAYLAND_DISPLAY" ]; then
+ echo "ERROR: A Wayland compositor is already running, nested Weston instance is not supported yet."
+ exit 1
+fi
+if [ -n "$DISPLAY" ]; then
+ launcher="weston"
+else
+ launcher="weston-launch -u root --"
+fi
+
+openvt_args="-s"
+while [ -n "$1" ]; do
+ if [ "$1" = "--" ]; then
+ shift
+ break
+ fi
+ openvt_args="$openvt_args $1"
+ shift
+done
+
+weston_args=$*
+
+# Load and run modules
+if [ -d "$modules_dir" ]; then
+ for m in "$modules_dir"/*; do
+ # Skip backup files
+ if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then
+ continue
+ fi
+
+ # process module
+ . $m
+ done
+fi
+
+if test -z "$XDG_RUNTIME_DIR"; then
+ export XDG_RUNTIME_DIR=/run/user/`id -u`
+ if ! test -d "$XDG_RUNTIME_DIR"; then
+ mkdir --parents $XDG_RUNTIME_DIR
+ chmod 0700 $XDG_RUNTIME_DIR
+ fi
+fi
+
+exec openvt $openvt_args -- $launcher $weston_args --log=@LOCALSTATEDIR@/log/weston.log
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston.service b/meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston.service
new file mode 100644
index 0000000..295ffd7
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston-init/weston.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Weston Wayland compositor
+After=dbus.service rc.pvr.service
+
+[Service]
+ExecStart=/usr/bin/weston-launch -u root -- $OPTARGS
+ExecStop=/usr/bin/killall -s KILL weston
+Type=simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston.inc b/meta-rcar-gen3/recipes-graphics/wayland/weston.inc
new file mode 100644
index 0000000..68fd83e
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston.inc
@@ -0,0 +1,36 @@
+require include/gles-control.inc
+require include/multimedia-control.inc
+
+PACKAGECONFIG_remove_virtclass-multilib-lib32 = "launch"
+DEPENDS_append = " \
+ ${@base_conditional('USE_GLES', '1', ' libgbm', '', d)}"
+
+RDEPENDS_${PN}_append = " \
+ ${@base_conditional('USE_GLES', '1', ' libgbm', '', d)} \
+ ${@base_conditional('USE_MULTIMEDIA', '1', ' media-ctl', '', d)} \
+"
+RDEPENDS_${PN}-examples_append = " \
+ ${@base_conditional('USE_GLES', '1', ' libgbm', '', d)}"
+
+EXTRA_OECONF_append = " \
+ ${@base_conditional('USE_GLES', '1', '', \
+ ' WESTON_NATIVE_BACKEND="fbdev-backend.so"', d)}"
+
+PACKAGES_prepend = "${PN}-bin "
+
+FILES_${PN}-bin = " \
+ ${bindir}/weston \
+ ${bindir}/weston-terminal \
+ ${bindir}/weston-info \
+ ${bindir}/weston-launch \
+ ${bindir}/wcap-decode \
+"
+
+FILES_${PN} = " \
+ ${libdir}/weston \
+ ${datadir} \
+ ${libexecdir} \
+"
+
+USERADD_PACKAGES = "${PN}-bin"
+GROUPADD_PARAM_${PN}-bin = "--system weston-launch"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch
new file mode 100644
index 0000000..00118d7
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch
@@ -0,0 +1,34 @@
+From 1cfc1434a5d385a74de593ec7601674dba39e2fe Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Wed, 11 May 2016 16:16:30 +0300
+Subject: [PATCH] configure.ac: Fix wayland-protocols path
+
+The wayland-protocols directory is used during build: Fix the path
+to point to sysroot specified in recipe.
+
+Normally PKG_CONFIG_SYSROOT_DIR could be used in configure.ac but that
+breaks multilib weston as it would point to multilib sysroot when the
+(allarch) wayland-protocols is actually in the machine sysroot.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index bc7c329..15a05d3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,7 +187,7 @@ PKG_CHECK_MODULES(LIBINPUT_BACKEND, [libinput >= 0.8.0])
+ PKG_CHECK_MODULES(COMPOSITOR, [$COMPOSITOR_MODULES])
+
+ PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.2],
+- [ac_wayland_protocols_pkgdatadir=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
++ [ac_wayland_protocols_pkgdatadir=${WAYLAND_PROTOCOLS_SYSROOT_DIR}`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`])
+ AC_SUBST(WAYLAND_PROTOCOLS_DATADIR, $ac_wayland_protocols_pkgdatadir)
+
+ AC_ARG_ENABLE(wayland-compositor, [ --enable-wayland-compositor],,
+--
+2.1.4
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-make-error-portable.patch b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-make-error-portable.patch
new file mode 100644
index 0000000..148848d
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-make-error-portable.patch
@@ -0,0 +1,80 @@
+From c22e90365d89346258394833cbcad03ff32b2e27 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 29 May 2015 20:56:00 -0700
+Subject: [PATCH weston] make error() portable
+
+error() is not posix but gnu extension so may not be available on all
+kind of systemsi e.g. musl.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Submitted
+
+ configure.ac | 2 ++
+ src/weston-error.h | 20 ++++++++++++++++++++
+ src/weston-launch.c | 2 +-
+ 3 files changed, 23 insertions(+), 1 deletion(-)
+ create mode 100644 src/weston-error.h
+
+diff --git a/configure.ac b/configure.ac
+index 263fc22..f52cd62 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -57,6 +57,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
+ [[#include <time.h>]])
+ AC_CHECK_HEADERS([execinfo.h])
+
++AC_CHECK_HEADERS([error.h])
++
+ AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate])
+
+ COMPOSITOR_MODULES="wayland-server >= 1.7.93 pixman-1 >= 0.25.2"
+diff --git a/src/weston-error.h b/src/weston-error.h
+new file mode 100644
+index 0000000..2089d02
+--- /dev/null
++++ b/src/weston-error.h
+@@ -0,0 +1,20 @@
++#ifndef _WESTON_ERROR_H
++#define _WESTON_ERROR_H
++
++#if defined(HAVE_ERROR_H)
++#include <error.h>
++#else
++#include <err.h>
++#include <string.h>
++#define _weston_error(S, E, F, ...) do { \
++ if (E) \
++ err(S, F ": %s", ##__VA_ARGS__, strerror(E)); \
++ else \
++ err(S, F, ##__VA_ARGS__); \
++} while(0)
++
++#define error _weston_error
++#endif
++
++#endif
++
+diff --git a/src/weston-launch.c b/src/weston-launch.c
+index 10c66de..3e6d30a 100644
+--- a/src/weston-launch.c
++++ b/src/weston-launch.c
+@@ -30,7 +30,6 @@
+ #include <poll.h>
+ #include <errno.h>
+
+-#include <error.h>
+ #include <getopt.h>
+
+ #include <sys/types.h>
+@@ -56,6 +55,7 @@
+ #endif
+
+ #include "weston-launch.h"
++#include "weston-error.h"
+
+ #define DRM_MAJOR 226
+
+--
+2.1.4
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch
new file mode 100644
index 0000000..91ef727
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch
@@ -0,0 +1,28 @@
+From ba02b8abe4e2afac2bfbf2559972d5059d75a041 Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Sat, 16 Jul 2016 22:50:19 +0300
+Subject: [PATCH weston] shared: include stdint.h for int32_t
+
+This fixes build on musl.
+
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Upstream-Status: Submitted
+---
+ shared/xalloc.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/shared/xalloc.h b/shared/xalloc.h
+index 85fccb4..484de2d 100644
+--- a/shared/xalloc.h
++++ b/shared/xalloc.h
+@@ -30,6 +30,7 @@
+ extern "C" {
+ #endif
+
++#include <stdint.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+--
+2.1.4
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
new file mode 100644
index 0000000..5542036
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch
@@ -0,0 +1,173 @@
+From d02226b3d5872b184c1d50c7f4706ac9467ffb81 Mon Sep 17 00:00:00 2001
+From: Tom Hochstein <tom.hochstein@nxp.com>
+Date: Fri, 15 Jul 2016 11:00:15 +0300
+Subject: [PATCH] weston-launch: Provide a default version that doesn't require
+ PAM
+
+weston-launch requires PAM for starting weston as a non-root user.
+
+Since starting weston as root is a valid use case by itself, if
+PAM is not available, provide a default version of weston-launch
+without non-root-user support.
+
+Upstream-Status: Pending
+
+Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
+---
+ configure.ac | 9 +++++++--
+ src/weston-launch.c | 20 ++++++++++++++++++++
+ 2 files changed, 27 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 32fdde7..240966f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -416,13 +416,17 @@ AC_ARG_ENABLE(resize-optimization,
+ AS_IF([test "x$enable_resize_optimization" = "xyes"],
+ [AC_DEFINE([USE_RESIZE_POOL], [1], [Use resize memory pool as a performance optimization])])
+
++AC_ARG_WITH(pam,
++ AS_HELP_STRING([--with-pam], [Use PAM]),
++ [use_pam=$withval], [use_pam=yes])
+ AC_ARG_ENABLE(weston-launch, [ --enable-weston-launch],, enable_weston_launch=yes)
+ AM_CONDITIONAL(BUILD_WESTON_LAUNCH, test x$enable_weston_launch == xyes)
+-if test x$enable_weston_launch == xyes; then
++if test x$enable_weston_launch = xyes -a x$use_pam = xyes; then
+ WESTON_SEARCH_LIBS([PAM], [pam], [pam_open_session], [have_pam=yes], [have_pam=no])
+ if test x$have_pam == xno; then
+- AC_ERROR([weston-launch requires pam])
++ AC_ERROR([PAM support is explicitly requested, but libpam couldn't be found])
+ fi
++ AC_DEFINE([HAVE_PAM], [1], [Define if PAM is available])
+ fi
+
+ AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes")
+@@ -673,6 +677,7 @@ AC_MSG_RESULT([
+ Enable developer documentation ${enable_devdocs}
+
+ weston-launch utility ${enable_weston_launch}
++ PAM support ${use_pam}
+ systemd-login support ${have_systemd_login}
+ systemd notify support ${enable_systemd_notify}
+
+diff --git a/src/weston-launch.c b/src/weston-launch.c
+index b8b2ba0..a865061 100644
+--- a/src/weston-launch.c
++++ b/src/weston-launch.c
+@@ -51,7 +51,9 @@
+
+ #include <pwd.h>
+ #include <grp.h>
++#ifdef HAVE_PAM
+ #include <security/pam_appl.h>
++#endif
+
+ #ifdef HAVE_SYSTEMD_LOGIN
+ #include <systemd/sd-login.h>
+@@ -93,8 +95,10 @@ drmSetMaster(int drm_fd)
+ #endif
+
+ struct weston_launch {
++#ifdef HAVE_PAM
+ struct pam_conv pc;
+ pam_handle_t *ph;
++#endif
+ int tty;
+ int ttynr;
+ int sock[2];
+@@ -181,6 +185,7 @@ weston_launch_allowed(struct weston_launch *wl)
+ return false;
+ }
+
++#ifdef HAVE_PAM
+ static int
+ pam_conversation_fn(int msg_count,
+ const struct pam_message **messages,
+@@ -221,6 +226,7 @@ setup_pam(struct weston_launch *wl)
+
+ return 0;
+ }
++#endif
+
+ static int
+ setup_launcher_socket(struct weston_launch *wl)
+@@ -414,6 +420,7 @@ quit(struct weston_launch *wl, int status)
+ close(wl->signalfd);
+ close(wl->sock[0]);
+
++#ifdef HAVE_PAM
+ if (wl->new_user) {
+ err = pam_close_session(wl->ph, 0);
+ if (err)
+@@ -421,6 +428,7 @@ quit(struct weston_launch *wl, int status)
+ err, pam_strerror(wl->ph, err));
+ pam_end(wl->ph, err);
+ }
++#endif
+
+ if (ioctl(wl->tty, KDSKBMUTE, 0) &&
+ ioctl(wl->tty, KDSKBMODE, wl->kb_mode))
+@@ -600,6 +608,7 @@ setup_session(struct weston_launch *wl)
+ setenv("HOME", wl->pw->pw_dir, 1);
+ setenv("SHELL", wl->pw->pw_shell, 1);
+
++#ifdef HAVE_PAM
+ env = pam_getenvlist(wl->ph);
+ if (env) {
+ for (i = 0; env[i]; ++i) {
+@@ -608,6 +617,7 @@ setup_session(struct weston_launch *wl)
+ }
+ free(env);
+ }
++#endif
+ }
+
+ static void
+@@ -665,7 +675,9 @@ static void
+ help(const char *name)
+ {
+ fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
++#ifdef HAVE_PAM
+ fprintf(stderr, " -u, --user Start session as specified username\n");
++#endif
+ fprintf(stderr, " -t, --tty Start session on alternative tty\n");
+ fprintf(stderr, " -v, --verbose Be verbose\n");
+ fprintf(stderr, " -h, --help Display this help message\n");
+@@ -678,7 +690,9 @@ main(int argc, char *argv[])
+ int i, c;
+ char *tty = NULL;
+ struct option opts[] = {
++#ifdef HAVE_PAM
+ { "user", required_argument, NULL, 'u' },
++#endif
+ { "tty", required_argument, NULL, 't' },
+ { "verbose", no_argument, NULL, 'v' },
+ { "help", no_argument, NULL, 'h' },
+@@ -690,9 +704,13 @@ main(int argc, char *argv[])
+ while ((c = getopt_long(argc, argv, "u:t::vh", opts, &i)) != -1) {
+ switch (c) {
+ case 'u':
++#ifdef HAVE_PAM
+ wl.new_user = optarg;
+ if (getuid() != 0)
+ error(1, 0, "Permission denied. -u allowed for root only");
++#else
++ error(1, 0, "-u is unsupported in this weston-launch build");
++#endif
+ break;
+ case 't':
+ tty = optarg;
+@@ -730,8 +748,10 @@ main(int argc, char *argv[])
+ if (setup_tty(&wl, tty) < 0)
+ exit(EXIT_FAILURE);
+
++#ifdef HAVE_PAM
+ if (wl.new_user && setup_pam(&wl) < 0)
+ exit(EXIT_FAILURE);
++#endif
+
+ if (setup_launcher_socket(&wl) < 0)
+ exit(EXIT_FAILURE);
+--
+2.1.4
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch b/meta-rcar-gen3/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch
new file mode 100644
index 0000000..0c408a4
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch
@@ -0,0 +1,33 @@
+From e8b615250f700f7854b423aaaf0a0aeea92c05a9 Mon Sep 17 00:00:00 2001
+From: Tom Hochstein <tom.hochstein@nxp.com>
+Date: Sat, 7 May 2016 08:51:58 -0300
+Subject: [PATCH] weston-launch: Handle invalid command line options
+Organization: O.S. Systems Software LTDA.
+
+Exit the program if an unrecognized command line option is found.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
+Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
+---
+
+ src/weston-launch.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/weston-launch.c b/src/weston-launch.c
+index b8dfb17..9987d8e 100644
+--- a/src/weston-launch.c
++++ b/src/weston-launch.c
+@@ -703,6 +703,8 @@ main(int argc, char *argv[])
+ case 'h':
+ help("weston-launch");
+ exit(EXIT_FAILURE);
++ default:
++ exit(EXIT_FAILURE);
+ }
+ }
+
+--
+2.8.2
+
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.desktop b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.desktop
new file mode 100644
index 0000000..1086ae8
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Weston
+Comment=Wayland Compostitor
+Exec=weston
+Icon=weston
+Terminal=false
+Categories=Utility;
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.ini b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.ini
new file mode 100644
index 0000000..f31c290
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.ini
@@ -0,0 +1,2 @@
+[core]
+repaint-window=34
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.png b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.png
new file mode 100644
index 0000000..ea8b7e0
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston.png
Binary files differ
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/weston_v4l2.ini b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston_v4l2.ini
new file mode 100644
index 0000000..8e2e70f
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/weston_v4l2.ini
@@ -0,0 +1,6 @@
+[core]
+repaint-window=34
+
+[v4l2-renderer]
+device=/dev/media1
+device-module=vsp2
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston/xwayland.weston-start b/meta-rcar-gen3/recipes-graphics/wayland/weston/xwayland.weston-start
new file mode 100644
index 0000000..b483c97
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston/xwayland.weston-start
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if type Xwayland >/dev/null 2>/dev/null; then
+ mkdir -p /tmp/.X11-unix
+
+ add_weston_argument "--modules=xwayland.so"
+fi
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bb b/meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bb
new file mode 100644
index 0000000..3ad309d
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bb
@@ -0,0 +1,117 @@
+SUMMARY = "Weston, a Wayland compositor"
+DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
+HOMEPAGE = "http://wayland.freedesktop.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \
+ file://src/compositor.c;endline=23;md5=1d535fed266cf39f6d8c0647f52ac331"
+
+SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
+ file://weston.png \
+ file://weston.desktop \
+ file://0001-make-error-portable.patch \
+ file://0001-configure.ac-Fix-wayland-protocols-path.patch \
+ file://0001-shared-include-stdint.h-for-int32_t.patch \
+ file://xwayland.weston-start \
+ file://make-weston-launch-exit-for-unrecognized-option.patch \
+ file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
+"
+SRC_URI[md5sum] = "bc6f90a2039163804aecfa663b69c4c2"
+SRC_URI[sha256sum] = "05e086e9f186a06843b9f7a5e1abf19347b1a6e4be26d7e74927abc17b6b7125"
+
+inherit autotools pkgconfig useradd distro_features_check
+# depends on virtual/egl
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg"
+DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
+
+EXTRA_OECONF = "--enable-setuid-install \
+ --disable-rpi-compositor \
+ --disable-rdp-compositor \
+ WAYLAND_PROTOCOLS_SYSROOT_DIR=${STAGING_DIR}/${MACHINE} \
+ "
+EXTRA_OECONF[vardepsexclude] = "MACHINE"
+
+EXTRA_OECONF_append_qemux86 = "\
+ WESTON_NATIVE_BACKEND=fbdev-backend.so \
+ "
+EXTRA_OECONF_append_qemux86-64 = "\
+ WESTON_NATIVE_BACKEND=fbdev-backend.so \
+ "
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms fbdev wayland egl', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
+ clients launch"
+#
+# Compositor choices
+#
+# Weston on KMS
+PACKAGECONFIG[kms] = "--enable-drm-compositor,--disable-drm-compositor,drm udev virtual/mesa mtdev"
+# Weston on Wayland (nested Weston)
+PACKAGECONFIG[wayland] = "--enable-wayland-compositor,--disable-wayland-compositor,virtual/mesa"
+# Weston on X11
+PACKAGECONFIG[x11] = "--enable-x11-compositor,--disable-x11-compositor,virtual/libx11 libxcb libxcb libxcursor cairo"
+# Headless Weston
+PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compositor"
+# Weston on framebuffer
+PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev"
+# weston-launch
+PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,drm"
+# VA-API desktop recorder
+PACKAGECONFIG[vaapi] = "--enable-vaapi-recorder,--disable-vaapi-recorder,libva"
+# Weston with EGL support
+PACKAGECONFIG[egl] = "--enable-egl --enable-simple-egl-clients,--disable-egl --disable-simple-egl-clients,virtual/egl"
+# Weston with cairo glesv2 support
+PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo"
+# Weston with lcms support
+PACKAGECONFIG[lcms] = "--enable-lcms,--disable-lcms,lcms"
+# Weston with webp support
+PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
+# Weston with unwinding support
+PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind"
+# Weston with systemd-login support
+PACKAGECONFIG[systemd] = "--enable-systemd-login,--disable-systemd-login,systemd dbus"
+# Weston with Xwayland support (requires X11 and Wayland)
+PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland"
+# colord CMS support
+PACKAGECONFIG[colord] = "--enable-colord,--disable-colord,colord"
+# Clients support
+PACKAGECONFIG[clients] = "--enable-clients --enable-simple-clients --enable-demo-clients-install,--disable-clients --disable-simple-clients"
+# Weston with PAM support
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+
+do_install_append() {
+ # Weston doesn't need the .la files to load modules, so wipe them
+ rm -f ${D}/${libdir}/weston/*.la
+
+ # If X11, ship a desktop file to launch it
+ if [ "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)}" = "x11" ]; then
+ install -d ${D}${datadir}/applications
+ install ${WORKDIR}/weston.desktop ${D}${datadir}/applications
+
+ install -d ${D}${datadir}/icons/hicolor/48x48/apps
+ install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps
+ fi
+
+ if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
+ install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland
+ fi
+}
+
+PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)}"
+PACKAGES += "${PN}-examples"
+
+FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}"
+FILES_${PN}-examples = "${bindir}/*"
+
+FILES_${PN}-xwayland = "${libdir}/${BPN}/xwayland.so"
+RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
+
+RDEPENDS_${PN} += "xkeyboard-config"
+RRECOMMENDS_${PN} = "liberation-fonts"
+RRECOMMENDS_${PN}-dev += "wayland-protocols"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM_${PN} = "--system weston-launch"
diff --git a/meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bbappend b/meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bbappend
new file mode 100644
index 0000000..48e49dc
--- /dev/null
+++ b/meta-rcar-gen3/recipes-graphics/wayland/weston_1.11.0.bbappend
@@ -0,0 +1,44 @@
+require weston.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+BRANCH = "rcar-gen3/1.11.0/gl-fallback"
+
+SRCREV = "ef4fdad7fc6549493c244b6e657ec00565408497"
+
+SRC_URI = " \
+ git://github.com/renesas-rcar/weston.git;branch=${BRANCH} \
+ file://weston.png \
+ file://weston.desktop \
+ file://0001-make-error-portable.patch \
+ file://0001-configure.ac-Fix-wayland-protocols-path.patch \
+ file://0001-shared-include-stdint.h-for-int32_t.patch \
+ file://xwayland.weston-start \
+ file://make-weston-launch-exit-for-unrecognized-option.patch \
+ file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
+ file://weston.ini \
+ file://weston_v4l2.ini \
+"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG_append = " \
+ ${@base_conditional('USE_MULTIMEDIA', '1', ' v4l2', '', d)} \
+"
+PACKAGECONFIG[v4l2] = " --enable-v4l2, --disable-v4l2,,kernel-module-vsp2driver"
+
+do_install_append() {
+ if [ "X${USE_MULTIMEDIA}" = "X1" ]; then
+ # install weston.ini as sample settings of v4l2-renderer
+ install -d ${D}/${sysconfdir}/xdg/weston
+ install -m 644 ${WORKDIR}/weston_v4l2.ini ${D}/${sysconfdir}/xdg/weston/weston.ini
+ else
+ # install weston.ini as sample settings of gl-renderer
+ install -d ${D}/${sysconfdir}/xdg/weston
+ install -m 644 ${WORKDIR}/weston.ini ${D}/${sysconfdir}/xdg/weston/
+ fi
+}
+
+FILES_${PN}_append = " \
+ ${sysconfdir}/xdg/weston/weston.ini \
+"