weston: Upgrade 1.11.1 -> 2.0.0, separate libweston
* Drop two patches that are upstream. Rebase other patches. * Separate libweston into its own package, modify the recipe as needed because files have changed location. * Remove "--disable-rpi-compositor": the backend does not exist anymore. Libweston is already at version 2 and is likely to have new major versions. The versions should be parallel installable (but weston itself will not be). (From OE-Core rev: 44068f2ba74228b78268efa58ca5f2bc85449f14) Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
13d50280a1
commit
adb0b6ae82
|
@ -1,112 +0,0 @@
|
|||
From 75b7197f4e072a4e2de124ddbe93b85cffb1c0f8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Daniel=20D=C3=ADaz?= <daniel.diaz@linaro.org>
|
||||
Date: Fri, 21 Oct 2016 14:03:13 -0500
|
||||
Subject: [PATCH] Add configuration option for no input device.
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
As it has been discussed in the past [1], running Weston
|
||||
without any input device at launch might be beneficial for
|
||||
some use cases.
|
||||
|
||||
Certainly, it's best for the vast majority of users (and
|
||||
the project) to require an input device to be present, as
|
||||
to avoid frustration and hassle, but for those brave souls
|
||||
that so prefer, this patch lets them run without any input
|
||||
device at all.
|
||||
|
||||
This introduces a simple configuration in weston.ini:
|
||||
[core]
|
||||
require-input=true
|
||||
|
||||
True is the default, so no behavioral change is introduced.
|
||||
|
||||
[1] https://lists.freedesktop.org/archives/wayland-devel/2015-November/025193.html
|
||||
|
||||
Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
|
||||
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Reviewed-by: Daniel Stone <daniels@collabora.com>
|
||||
|
||||
Upstream-Status: backport from
|
||||
https://cgit.freedesktop.org/wayland/weston/commit/?id=75b7197f
|
||||
---
|
||||
man/weston.ini.man | 5 +++++
|
||||
src/compositor.h | 3 +++
|
||||
src/libinput-seat.c | 6 ++++++
|
||||
src/main.c | 5 +++++
|
||||
weston.ini.in | 1 +
|
||||
5 files changed, 20 insertions(+)
|
||||
|
||||
--- a/src/main.c
|
||||
+++ b/src/main.c
|
||||
@@ -1298,6 +1298,7 @@ int main(int argc, char *argv[])
|
||||
struct wl_client *primary_client;
|
||||
struct wl_listener primary_client_destroyed;
|
||||
struct weston_seat *seat;
|
||||
+ int require_input;
|
||||
|
||||
const struct weston_option core_options[] = {
|
||||
{ WESTON_OPTION_STRING, "backend", 'B', &backend },
|
||||
@@ -1373,6 +1374,10 @@ int main(int argc, char *argv[])
|
||||
if (weston_compositor_init_config(ec, config) < 0)
|
||||
goto out;
|
||||
|
||||
+ weston_config_section_get_bool(section, "require-input",
|
||||
+ &require_input, true);
|
||||
+ ec->require_input = require_input;
|
||||
+
|
||||
if (load_backend(ec, backend, &argc, argv, config) < 0) {
|
||||
weston_log("fatal: failed to create compositor backend\n");
|
||||
goto out;
|
||||
--- a/src/compositor.h
|
||||
+++ b/src/compositor.h
|
||||
@@ -803,6 +803,9 @@ struct weston_compositor {
|
||||
|
||||
void *user_data;
|
||||
void (*exit)(struct weston_compositor *c);
|
||||
+
|
||||
+ /* Whether to let the compositor run without any input device. */
|
||||
+ bool require_input;
|
||||
};
|
||||
|
||||
struct weston_buffer {
|
||||
--- a/src/libinput-seat.c
|
||||
+++ b/src/libinput-seat.c
|
||||
@@ -255,6 +255,12 @@ udev_input_enable(struct udev_input *inp
|
||||
devices_found = 1;
|
||||
}
|
||||
|
||||
+ if (devices_found == 0 && !c->require_input) {
|
||||
+ weston_log("warning: no input devices found, but none required "
|
||||
+ "as per configuration.\n");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if (devices_found == 0) {
|
||||
weston_log(
|
||||
"warning: no input devices on entering Weston. "
|
||||
--- a/man/weston.ini.man
|
||||
+++ b/man/weston.ini.man
|
||||
@@ -169,6 +169,11 @@ time, the one specified in the command-l
|
||||
hand, if none of these sets the value, default idle timeout will be
|
||||
set to 300 seconds.
|
||||
.RS
|
||||
+.PP
|
||||
+.RE
|
||||
+.TP 7
|
||||
+.BI "require-input=" true
|
||||
+require an input device for launch
|
||||
|
||||
.SH "LIBINPUT SECTION"
|
||||
The
|
||||
--- a/weston.ini.in
|
||||
+++ b/weston.ini.in
|
||||
@@ -2,6 +2,7 @@
|
||||
#modules=xwayland.so,cms-colord.so
|
||||
#shell=desktop-shell.so
|
||||
#gbm-format=xrgb2101010
|
||||
+#require-input=true
|
||||
|
||||
[shell]
|
||||
background-image=/usr/share/backgrounds/gnome/Aqua.jpg
|
|
@ -21,7 +21,7 @@ Upstream-Status: Inappropriate [embedded specific]
|
|||
@@ -187,7 +187,7 @@ PKG_CHECK_MODULES(LIBINPUT_BACKEND, [lib
|
||||
PKG_CHECK_MODULES(COMPOSITOR, [$COMPOSITOR_MODULES])
|
||||
|
||||
PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.2],
|
||||
PKG_CHECK_MODULES(WAYLAND_PROTOCOLS, [wayland-protocols >= 1.7],
|
||||
- [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)
|
||||
|
|
|
@ -10,9 +10,9 @@ 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 +-
|
||||
configure.ac | 2 ++
|
||||
libweston/weston-error.h | 20 ++++++++++++++++++++
|
||||
libweston/weston-launch.c | 2 +-
|
||||
3 files changed, 23 insertions(+), 1 deletion(-)
|
||||
create mode 100644 src/weston-error.h
|
||||
|
||||
|
@ -28,7 +28,7 @@ Upstream-Status: Submitted
|
|||
|
||||
COMPOSITOR_MODULES="wayland-server >= $WAYLAND_PREREQ_VERSION pixman-1 >= 0.25.2"
|
||||
--- /dev/null
|
||||
+++ b/src/weston-error.h
|
||||
+++ b/libweston/weston-error.h
|
||||
@@ -0,0 +1,20 @@
|
||||
+#ifndef _WESTON_ERROR_H
|
||||
+#define _WESTON_ERROR_H
|
||||
|
@ -50,8 +50,8 @@ Upstream-Status: Submitted
|
|||
+
|
||||
+#endif
|
||||
+
|
||||
--- a/src/weston-launch.c
|
||||
+++ b/src/weston-launch.c
|
||||
--- a/libweston/weston-launch.c
|
||||
+++ b/libweston/weston-launch.c
|
||||
@@ -33,7 +33,6 @@
|
||||
#include <poll.h>
|
||||
#include <errno.h>
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
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(+)
|
||||
|
||||
--- a/shared/xalloc.h
|
||||
+++ b/shared/xalloc.h
|
||||
@@ -30,6 +30,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
From d02226b3d5872b184c1d50c7f4706ac9467ffb81 Mon Sep 17 00:00:00 2001
|
||||
From 8ff6ed03ec4079f32e9b34085414e57be4730e04 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
Date: Fri, 15 Jul 2016 11:00:15 +0300
|
||||
Date: Wed, 22 Feb 2017 15:53:30 +0200
|
||||
Subject: [PATCH] weston-launch: Provide a default version that doesn't require
|
||||
PAM
|
||||
|
||||
|
@ -13,14 +13,17 @@ without non-root-user support.
|
|||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
|
||||
---
|
||||
configure.ac | 9 +++++++--
|
||||
src/weston-launch.c | 20 ++++++++++++++++++++
|
||||
configure.ac | 9 +++++++--
|
||||
libweston/weston-launch.c | 20 ++++++++++++++++++++
|
||||
2 files changed, 27 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 46cb2c7..bb45f46 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -416,13 +416,17 @@ AC_ARG_ENABLE(resize-optimization,
|
||||
@@ -435,13 +435,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])])
|
||||
|
||||
|
@ -28,11 +31,11 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
+ 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
|
||||
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
|
||||
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
|
||||
|
@ -40,7 +43,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes")
|
||||
@@ -673,6 +677,7 @@ AC_MSG_RESULT([
|
||||
@@ -701,6 +705,7 @@ AC_MSG_RESULT([
|
||||
Enable developer documentation ${enable_devdocs}
|
||||
|
||||
weston-launch utility ${enable_weston_launch}
|
||||
|
@ -48,8 +51,10 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
systemd-login support ${have_systemd_login}
|
||||
systemd notify support ${enable_systemd_notify}
|
||||
|
||||
--- a/src/weston-launch.c
|
||||
+++ b/src/weston-launch.c
|
||||
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
|
||||
index 0491896..07e7469 100644
|
||||
--- a/libweston/weston-launch.c
|
||||
+++ b/libweston/weston-launch.c
|
||||
@@ -51,7 +51,9 @@
|
||||
|
||||
#include <pwd.h>
|
||||
|
@ -71,7 +76,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
int tty;
|
||||
int ttynr;
|
||||
int sock[2];
|
||||
@@ -181,6 +185,7 @@ weston_launch_allowed(struct weston_laun
|
||||
@@ -181,6 +185,7 @@ weston_launch_allowed(struct weston_launch *wl)
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -87,7 +92,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
|
||||
static int
|
||||
setup_launcher_socket(struct weston_launch *wl)
|
||||
@@ -414,6 +420,7 @@ quit(struct weston_launch *wl, int statu
|
||||
@@ -414,6 +420,7 @@ quit(struct weston_launch *wl, int status)
|
||||
close(wl->signalfd);
|
||||
close(wl->sock[0]);
|
||||
|
||||
|
@ -95,7 +100,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
if (wl->new_user) {
|
||||
err = pam_close_session(wl->ph, 0);
|
||||
if (err)
|
||||
@@ -421,6 +428,7 @@ quit(struct weston_launch *wl, int statu
|
||||
@@ -421,6 +428,7 @@ quit(struct weston_launch *wl, int status)
|
||||
err, pam_strerror(wl->ph, err));
|
||||
pam_end(wl->ph, err);
|
||||
}
|
||||
|
@ -103,7 +108,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
|
||||
if (ioctl(wl->tty, KDSKBMUTE, 0) &&
|
||||
ioctl(wl->tty, KDSKBMODE, wl->kb_mode))
|
||||
@@ -600,6 +608,7 @@ setup_session(struct weston_launch *wl)
|
||||
@@ -600,6 +608,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
|
||||
setenv("HOME", wl->pw->pw_dir, 1);
|
||||
setenv("SHELL", wl->pw->pw_shell, 1);
|
||||
|
||||
|
@ -111,15 +116,15 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
env = pam_getenvlist(wl->ph);
|
||||
if (env) {
|
||||
for (i = 0; env[i]; ++i) {
|
||||
@@ -608,6 +617,7 @@ setup_session(struct weston_launch *wl)
|
||||
@@ -608,6 +617,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
|
||||
}
|
||||
free(env);
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -665,7 +675,9 @@ static void
|
||||
/*
|
||||
* We open a new session, so it makes sense
|
||||
@@ -675,7 +685,9 @@ static void
|
||||
help(const char *name)
|
||||
{
|
||||
fprintf(stderr, "Usage: %s [args...] [-- [weston args..]]\n", name);
|
||||
|
@ -129,7 +134,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
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[])
|
||||
@@ -688,7 +700,9 @@ main(int argc, char *argv[])
|
||||
int i, c;
|
||||
char *tty = NULL;
|
||||
struct option opts[] = {
|
||||
|
@ -139,7 +144,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
{ "tty", required_argument, NULL, 't' },
|
||||
{ "verbose", no_argument, NULL, 'v' },
|
||||
{ "help", no_argument, NULL, 'h' },
|
||||
@@ -690,9 +704,13 @@ main(int argc, char *argv[])
|
||||
@@ -700,9 +714,13 @@ main(int argc, char *argv[])
|
||||
while ((c = getopt_long(argc, argv, "u:t::vh", opts, &i)) != -1) {
|
||||
switch (c) {
|
||||
case 'u':
|
||||
|
@ -153,7 +158,7 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
break;
|
||||
case 't':
|
||||
tty = optarg;
|
||||
@@ -732,8 +750,10 @@ main(int argc, char *argv[])
|
||||
@@ -740,8 +758,10 @@ main(int argc, char *argv[])
|
||||
if (setup_tty(&wl, tty) < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
|
@ -164,3 +169,6 @@ Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
|||
|
||||
if (setup_launcher_socket(&wl) < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
--
|
||||
2.1.4
|
||||
|
||||
|
|
|
@ -3,20 +3,18 @@ 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=26;md5=e342df749174a8ee11065583157c7a38"
|
||||
file://libweston/compositor.c;endline=26;md5=e342df749174a8ee11065583157c7a38"
|
||||
|
||||
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://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
|
||||
file://0001-Add-configuration-option-for-no-input-device.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "c5fdc02ab67d33c0fca8f72d341facdf"
|
||||
SRC_URI[sha256sum] = "548973496a5c8613d6690f9120f21066946a544df65ce4fe0ef153a8dc0bf6de"
|
||||
SRC_URI[md5sum] = "15f38945942bf2a91fe2687145fb4c7d"
|
||||
SRC_URI[sha256sum] = "b4e446ac27f118196f1609dab89bb3cb3e81652d981414ad860e733b355365d8"
|
||||
|
||||
inherit autotools pkgconfig useradd distro_features_check
|
||||
# depends on virtual/egl
|
||||
|
@ -26,7 +24,6 @@ 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=${RECIPE_SYSROOT} \
|
||||
"
|
||||
|
@ -80,7 +77,7 @@ 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
|
||||
rm -f ${D}/${libdir}/libweston-2/*.la
|
||||
|
||||
# If X11, ship a desktop file to launch it
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then
|
||||
|
@ -96,13 +93,17 @@ do_install_append() {
|
|||
fi
|
||||
}
|
||||
|
||||
PACKAGE_BEFORE_PN += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)}"
|
||||
PACKAGES += "${PN}-examples"
|
||||
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
|
||||
libweston-2 ${PN}-examples"
|
||||
|
||||
FILES_${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so ${datadir}"
|
||||
|
||||
FILES_libweston-2 = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-2/*.so"
|
||||
SUMMARY_libweston-2 = "Helper library for implementing 'wayland window managers'."
|
||||
|
||||
FILES_${PN}-examples = "${bindir}/*"
|
||||
|
||||
FILES_${PN}-xwayland = "${libdir}/${BPN}/xwayland.so"
|
||||
FILES_${PN}-xwayland = "${libdir}/libweston-2/xwayland.so"
|
||||
RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
|
||||
|
||||
RDEPENDS_${PN} += "xkeyboard-config"
|
Loading…
Reference in New Issue