diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-graphics/wayland')
19 files changed, 450 insertions, 247 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch index 97c63bd37..b52b4962b 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput/touchpad-serial-synaptics-need-to-fake-new-touches-on-TRIPLETAP.patch @@ -1,7 +1,7 @@ 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> +Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.1.4.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.4.1.bb index 4167679c2..358039226 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.1.4.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/libinput_1.4.1.bb @@ -10,13 +10,16 @@ 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] = "0945318141c1a9f52857bbf65d175f32" -SRC_URI[sha256sum] = "302cb76209b9c57a5a318e178f9bc446eede8ea79386103b5291cbfaa5fab5b6" +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/" +UDEVDIR = "`pkg-config --variable=udevdir udev`" + +EXTRA_OECONF += "--with-udev-dir=${UDEVDIR}" diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland-protocols_1.7.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland-protocols_1.7.bb new file mode 100644 index 000000000..1d2f0db8f --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland/0001-scanner-Use-unit32_t-instead-of-uint.patch new file mode 100644 index 000000000..dece95c76 --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.9.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.11.0.bb index d12ac186c..3413406d0 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.9.0.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/wayland_1.11.0.bb @@ -10,9 +10,11 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=b31d8f53b6aaf2b4985d7dd7810a70d1 \ file://src/wayland-server.c;endline=24;md5=b8e046164a766bb1ede8ba38e9dcd7ce" -SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz" -SRC_URI[md5sum] = "5e141b3f2a7005d6c89d6f233c87c317" -SRC_URI[sha256sum] = "9c8770720aa0034479735f58a4dc4ca9b172ecfede28f5134312e135b7301efa" +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" @@ -20,7 +22,7 @@ inherit autotools pkgconfig BBCLASSEXTEND = "native nativesdk" -DEPENDS = "expat libffi wayland-native" +DEPENDS = "expat libxml2 libffi wayland-native" EXTRA_OECONF = "--disable-documentation --with-host-scanner" diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb index 653541e3c..291cd16b2 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init.bb @@ -3,16 +3,19 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=4d92cd373abda3937c2bc47fbc49d690" SRC_URI = "file://init \ - file://weston.service" + file://weston.service \ + file://weston-start" S = "${WORKDIR}" do_install() { - install -d ${D}/${sysconfdir}/init.d - install -m755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston + install -Dm755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/weston + install -Dm0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir}/weston.service - install -d ${D}${systemd_system_unitdir} - install -m0644 ${WORKDIR}/weston.service ${D}${systemd_system_unitdir} + # 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 } inherit allarch update-rc.d distro_features_check systemd diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init index 2e938f430..d3e87c6ce 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/init @@ -31,14 +31,7 @@ case "$1" in start) . /etc/profile - # This is all a nasty hack - if test -z "$XDG_RUNTIME_DIR"; then - export XDG_RUNTIME_DIR=/run/user/root - mkdir --parents $XDG_RUNTIME_DIR - chmod 0700 $XDG_RUNTIME_DIR - fi - - openvt -s weston -- $OPTARGS + weston-start -- $OPTARGS ;; stop) diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start new file mode 100755 index 000000000..e72fbaaac --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston-start @@ -0,0 +1,69 @@ +#!/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 [ -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 --" +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/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service index 4f1f7ff10..689ce4106 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston-init/weston.service @@ -1,14 +1,11 @@ [Unit] -Description=Weston Wayland compositor startup +Description=Weston Wayland Compositor RequiresMountsFor=/run [Service] User=root EnvironmentFile=-/etc/default/weston -Environment="XDG_RUNTIME_DIR=/run/user/root" -ExecStartPre=/bin/mkdir -p /run/user/root -ExecStartPre=/bin/chmod 0700 /run/user/root -ExecStart=/usr/bin/openvt -v -e /usr/bin/weston -- $OPTARGS +ExecStart=/usr/bin/weston-start -v -e -- $OPTARGS [Install] WantedBy=multi-user.target diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-configure.ac-Fix-wayland-protocols-path.patch new file mode 100644 index 000000000..00118d78b --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-shared-include-stdint.h-for-int32_t.patch new file mode 100644 index 000000000..91ef727d3 --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/0001-weston-launch-Provide-a-default-version-that-doesn-t.patch new file mode 100644 index 000000000..5542036be --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch deleted file mode 100644 index a40eaf186..000000000 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/explicit-enable-disable-systemd.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 8e1efcd40b3bad81c83744e2e120d70c2b567ef2 Mon Sep 17 00:00:00 2001 -From: Frederico Cadete <frederico@cadete.eu> -Date: Mon, 28 Sep 2015 00:30:10 +0200 -Subject: configure.ac: add explicit enable/disable for systemd-login support - -Otherwise, auto-enable depending on whether the system has the necessary -libraries. - -[Updated help text as per pq suggestion -- bwh] - -Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> -Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> -Tested-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> - -Upstream-Status: Backport -Backported from Weston git: -http://cgit.freedesktop.org/wayland/weston/commit/?id=8e1efc - -Signed-off-by: Joshua Lock <joshua.lock@collabora.co.uk> - -diff --git a/configure.ac b/configure.ac -index a9cd429..67e80d0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -380,18 +380,30 @@ 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])]) - --PKG_CHECK_MODULES(SYSTEMD_LOGIN, -- [libsystemd >= 209], -- [have_systemd_login_209=yes;have_systemd_login=yes], -- [have_systemd_login_209=no;have_systemd_login=no]) -- --# Older versions of systemd package systemd-login separately. Fall back on that --AS_IF([test x$have_systemd_login != xyes],[ -- PKG_CHECK_MODULES(SYSTEMD_LOGIN, -- [libsystemd-login >= 198], -- [have_systemd_login=yes], -- [have_systemd_login=no]) -- ]) -+AC_ARG_ENABLE(systemd-login, -+ AS_HELP_STRING([--enable-systemd-login], -+ [Enable logind support]),, -+ enable_systemd_login=auto) -+if test x$enable_systemd_login != xno; then -+ PKG_CHECK_MODULES(SYSTEMD_LOGIN, -+ [libsystemd >= 209], -+ [have_systemd_login_209=yes;have_systemd_login=yes], -+ [have_systemd_login_209=no;have_systemd_login=no]) -+ -+ # Older versions of systemd package systemd-login separately. Fall back on that -+ AS_IF([test x$have_systemd_login != xyes],[ -+ PKG_CHECK_MODULES(SYSTEMD_LOGIN, -+ [libsystemd-login >= 198], -+ [have_systemd_login=yes], -+ [have_systemd_login=no]) -+ ]) -+else -+ have_systemd_login=no -+fi -+ -+if test "x$have_systemd_login" = "xno" -a "x$enable_systemd_login" = "xyes"; then -+ AC_MSG_ERROR([systemd-login support explicitly enabled, but can't find libsystemd>=209 or libsystemd-login]) -+fi - - AS_IF([test "x$have_systemd_login" = "xyes"], - [AC_DEFINE([HAVE_SYSTEMD_LOGIN], [1], [Have systemd-login])]) --- -cgit v0.10.2 - diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch deleted file mode 100644 index 2d28d5689..000000000 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/libsystemd.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 5eb025a867b42f8bc7bc73279eac8de58e51a13e Mon Sep 17 00:00:00 2001 -From: Frederico Cadete <frederico@cadete.eu> -Date: Mon, 28 Sep 2015 00:30:09 +0200 -Subject: configure.ac: add support for new versions of systemd - -Starting from systemd version 209, a single libsystemd.pc is provided. -For previous versions, fall back on libsystemd-login.pc. - -Signed-off-by: Frederico Cadete <frederico@cadete.eu> -Reviewed-by: Bryce Harrington <bryce@osg.samsung.com> -Reviewed-by: Derek Foreman <derekf@osg.samsung.com> - -Upstream-Status: Backport -Backported from Weston git: -http://cgit.freedesktop.org/wayland/weston/commit/?id=5eb025 - -Signed-off-by: Joshua Lock <joshua.lock@collabora.co.uk> - -diff --git a/configure.ac b/configure.ac -index 045291c..a9cd429 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -380,14 +380,23 @@ 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])]) - --PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login >= 198], -- [have_systemd_login=yes], [have_systemd_login=no]) -+PKG_CHECK_MODULES(SYSTEMD_LOGIN, -+ [libsystemd >= 209], -+ [have_systemd_login_209=yes;have_systemd_login=yes], -+ [have_systemd_login_209=no;have_systemd_login=no]) -+ -+# Older versions of systemd package systemd-login separately. Fall back on that -+AS_IF([test x$have_systemd_login != xyes],[ -+ PKG_CHECK_MODULES(SYSTEMD_LOGIN, -+ [libsystemd-login >= 198], -+ [have_systemd_login=yes], -+ [have_systemd_login=no]) -+ ]) -+ - AS_IF([test "x$have_systemd_login" = "xyes"], - [AC_DEFINE([HAVE_SYSTEMD_LOGIN], [1], [Have systemd-login])]) - AM_CONDITIONAL(HAVE_SYSTEMD_LOGIN, test "x$have_systemd_login" = "xyes") - --PKG_CHECK_MODULES(SYSTEMD_LOGIN_209, [libsystemd-login >= 209], -- [have_systemd_login_209=yes], [have_systemd_login_209=no]) - AS_IF([test "x$have_systemd_login_209" = "xyes"], - [AC_DEFINE([HAVE_SYSTEMD_LOGIN_209], [1], [Have systemd-login >= 209])]) - --- -cgit v0.10.2 - diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch deleted file mode 100644 index 35e6d6ff5..000000000 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-lcms-explicitly-configurable.patch +++ /dev/null @@ -1,43 +0,0 @@ -weston-1.5.0/configure.ac: make lcms explicitly configurable - -The lcms package is outside of openembedded-core, so make it -explicitly configurable. Make it deterministic, so that if lcms -dependencies are missing, autoconf throws a fatal error. Follow -upstream style to make it more likely to be merged. - -Upstream-Status: Pending - -Index: weston-1.5.0/configure.ac -=================================================================== ---- weston-1.5.0.orig/configure.ac -+++ weston-1.5.0/configure.ac -@@ -491,12 +491,24 @@ AC_ARG_ENABLE(demo-clients-install, - enable_demo_clients_install=no) - AM_CONDITIONAL(INSTALL_DEMO_CLIENTS, [test "x$enable_demo_clients_install" = "xyes"]) - --PKG_CHECK_MODULES(LCMS, lcms2, -- [have_lcms=yes], [have_lcms=no]) --if test "x$have_lcms" = xyes; then -- AC_DEFINE(HAVE_LCMS, 1, [Have lcms support]) -+AC_ARG_ENABLE(lcms, -+ AS_HELP_STRING([--disable-lcms], -+ [Disable lcms support]),, -+ enable_lcms=auto) -+AM_CONDITIONAL(HAVE_LCMS, [test "x$enable_lcms" = xyes]) -+if test "x$enable_lcms" != "xno"; then -+ PKG_CHECK_MODULES(LCMS, -+ lcms2, -+ [have_lcms=yes], -+ [have_lcms=no]) -+ if test "x$have_lcms" = "xno" -a "x$enable_lcms" = "xyes"; then -+ AC_MSG_ERROR([lcms support explicitly requested, but lcms couldn't be found]) -+ fi -+ if test "x$have_lcms" = "xyes"; then -+ enable_lcms=yes -+ AC_DEFINE(HAVE_LCMS, 1, [Have lcms support]) -+ fi - fi --AM_CONDITIONAL(HAVE_LCMS, [test "x$have_lcms" = xyes]) - - AC_PATH_PROG([wayland_scanner], [wayland-scanner]) - if test x$wayland_scanner = x; then diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch deleted file mode 100644 index ad07d4fc2..000000000 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-libwebp-explicitly-configurable.patch +++ /dev/null @@ -1,37 +0,0 @@ - -The libwebp package is outside of openembedded-core, so make it -explicitly configurable. Make it deterministic, so that if libwebp -dependencies are missing, autoconf throws a fatal error. - -Upstream-Status: Pending - -Index: weston-1.5.0/configure.ac -=================================================================== ---- weston-1.5.0.orig/configure.ac -+++ weston-1.5.0/configure.ac -@@ -268,9 +268,22 @@ fi - - PKG_CHECK_MODULES(PIXMAN, [pixman-1]) - PKG_CHECK_MODULES(PNG, [libpng]) --PKG_CHECK_MODULES(WEBP, [libwebp], [have_webp=yes], [have_webp=no]) --AS_IF([test "x$have_webp" = "xyes"], -- [AC_DEFINE([HAVE_WEBP], [1], [Have webp])]) -+AC_ARG_ENABLE(webp, -+ AS_HELP_STRING([--disable-webp], -+ [Disable libwebp support]),, -+ enable_webp=auto) -+AM_CONDITIONAL(HAVE_WEBP, [test "x$enable_webp" = xyes]) -+AS_IF([test "x$enable_webp" != "xno"], -+ PKG_CHECK_MODULES(WEBP, -+ [libwebp], -+ [have_webp=yes], -+ [have_webp=no]) -+ AS_IF([test "x$have_webp" = "xno" -a "x$enable_webp" = "xyes"], -+ AC_MSG_ERROR([libwebp support explicitly request, but lipwebp could not be found])) -+ AS_IF([test "x$have_webp" = "xyes"], -+ [enable_webp=yes] -+ [AC_DEFINE([HAVE_WEBP], [1], [Have webp])]) -+) - - AC_ARG_ENABLE(vaapi-recorder, [ --enable-vaapi-recorder],, - enable_vaapi_recorder=auto) diff --git a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/make-weston-launch-exit-for-unrecognized-option.patch new file mode 100644 index 000000000..0c408a43d --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston/xwayland.weston-start new file mode 100644 index 000000000..b483c97cf --- /dev/null +++ b/import-layers/yocto-poky/meta/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/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.9.0.bb b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.11.0.bb index 16a788d2a..3ad309dab 100644 --- a/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.9.0.bb +++ b/import-layers/yocto-poky/meta/recipes-graphics/wayland/weston_1.11.0.bb @@ -5,32 +5,32 @@ LICENSE = "MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \ file://src/compositor.c;endline=23;md5=1d535fed266cf39f6d8c0647f52ac331" -SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ +SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \ file://weston.png \ file://weston.desktop \ - file://make-lcms-explicitly-configurable.patch \ - file://make-libwebp-explicitly-configurable.patch \ file://0001-make-error-portable.patch \ - file://libsystemd.patch \ - file://explicit-enable-disable-systemd.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] = "66bbba12f546570b4d97f676bc79a28e" -SRC_URI[sha256sum] = "9c1b03f3184fa0b0dfdf67e215048085156e1a2ca344af6613fed36794ac48cf" +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 libinput virtual/egl pango wayland-native" +DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native" EXTRA_OECONF = "--enable-setuid-install \ - --enable-simple-clients \ - --enable-clients \ - --enable-demo-clients-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 \ @@ -40,9 +40,10 @@ EXTRA_OECONF_append_qemux86-64 = "\ " 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', 'pam', 'launch', '', 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 # @@ -57,7 +58,7 @@ PACKAGECONFIG[headless] = "--enable-headless-compositor,--disable-headless-compo # Weston on framebuffer PACKAGECONFIG[fbdev] = "--enable-fbdev-compositor,--disable-fbdev-compositor,udev mtdev" # weston-launch -PACKAGECONFIG[launch] = "--enable-weston-launch,--disable-weston-launch,libpam drm" +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 @@ -67,15 +68,19 @@ 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] = "--enable-webp,--disable-webp,libwebp" +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 -PACKAGECONFIG[xwayland] = "--enable-xwayland,--disable-xwayland,libxcb libxcursor cairo" +# 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 @@ -88,16 +93,25 @@ do_install_append() { install -d ${D}${datadir}/icons/hicolor/48x48/apps install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps - fi + 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" |