mirror of
https://git.yoctoproject.org/poky
synced 2026-05-01 06:32:11 +02:00
weston: upgrade to 4.0.0
Official announcement: https://lists.freedesktop.org/archives/wayland-devel/2018-April/037768.html Dropped previously backported fix-missing-header.patch and weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch Refresh remaining local patches. Modify 0001-weston-launch-Provide-a-default-version-that-doesn-t.patch with changes to apply against the new code base. Support for libunwind was dropped in bb707dc0fe331c9af112a0552b7aa6fde755dd83: https://cgit.freedesktop.org/wayland/weston/commit/?id=bb707dc0fe331c9af112a0552b7aa6fde755dd83 Extract major version for referring to libweston-4 helper libraries. (From OE-Core rev: 0cc82a9158f58a37865f3ccc56156c987706f735) Signed-off-by: Denys Dmytriyenko <denys@ti.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
8097bf7012
commit
1b0340b3b8
@@ -1,26 +1,27 @@
|
||||
From c22e90365d89346258394833cbcad03ff32b2e27 Mon Sep 17 00:00:00 2001
|
||||
From ad1d2161c811cff25d1684c33611f300adb753bc 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
|
||||
Subject: [PATCH] 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 ++
|
||||
libweston/weston-error.h | 20 ++++++++++++++++++++
|
||||
libweston/weston-launch.c | 2 +-
|
||||
3 files changed, 23 insertions(+), 1 deletion(-)
|
||||
create mode 100644 src/weston-error.h
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
|
||||
Index: weston-3.0.0/configure.ac
|
||||
===================================================================
|
||||
--- weston-3.0.0.orig/configure.ac
|
||||
+++ weston-3.0.0/configure.ac
|
||||
@@ -103,6 +103,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
|
||||
---
|
||||
configure.ac | 2 ++
|
||||
libweston/weston-error.h | 20 ++++++++++++++++++++
|
||||
libweston/weston-launch.c | 2 +-
|
||||
3 files changed, 23 insertions(+), 1 deletion(-)
|
||||
create mode 100644 libweston/weston-error.h
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 7aebbdb..dc9c802 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -109,6 +109,8 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
|
||||
[[#include <time.h>]])
|
||||
AC_CHECK_HEADERS([execinfo.h])
|
||||
|
||||
@@ -29,10 +30,11 @@ Index: weston-3.0.0/configure.ac
|
||||
AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate])
|
||||
|
||||
# check for libdrm as a build-time dependency only
|
||||
Index: weston-3.0.0/libweston/weston-error.h
|
||||
===================================================================
|
||||
diff --git a/libweston/weston-error.h b/libweston/weston-error.h
|
||||
new file mode 100644
|
||||
index 0000000..2089d02
|
||||
--- /dev/null
|
||||
+++ weston-3.0.0/libweston/weston-error.h
|
||||
+++ b/libweston/weston-error.h
|
||||
@@ -0,0 +1,20 @@
|
||||
+#ifndef _WESTON_ERROR_H
|
||||
+#define _WESTON_ERROR_H
|
||||
@@ -54,10 +56,10 @@ Index: weston-3.0.0/libweston/weston-error.h
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
Index: weston-3.0.0/libweston/weston-launch.c
|
||||
===================================================================
|
||||
--- weston-3.0.0.orig/libweston/weston-launch.c
|
||||
+++ weston-3.0.0/libweston/weston-launch.c
|
||||
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
|
||||
index 1adcf21..166bf3b 100644
|
||||
--- a/libweston/weston-launch.c
|
||||
+++ b/libweston/weston-launch.c
|
||||
@@ -33,7 +33,6 @@
|
||||
#include <poll.h>
|
||||
#include <errno.h>
|
||||
@@ -66,7 +68,7 @@ Index: weston-3.0.0/libweston/weston-launch.c
|
||||
#include <getopt.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
@@ -60,6 +59,7 @@
|
||||
@@ -59,6 +58,7 @@
|
||||
#endif
|
||||
|
||||
#include "weston-launch.h"
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
From 8ff6ed03ec4079f32e9b34085414e57be4730e04 Mon Sep 17 00:00:00 2001
|
||||
From b98b9dbda902225cdd972b5bff6a641c36cc7e90 Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
Date: Wed, 22 Feb 2017 15:53:30 +0200
|
||||
Subject: [PATCH] weston-launch: Provide a default version that doesn't require
|
||||
PAM
|
||||
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.
|
||||
|
||||
@@ -14,16 +13,18 @@ Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
|
||||
Signed-off-by: Denys Dmytriyenko <denys@ti.com>
|
||||
|
||||
---
|
||||
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
|
||||
index dc9c802..48cf5cb 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -435,13 +435,17 @@ AC_ARG_ENABLE(resize-optimization,
|
||||
@@ -451,13 +451,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])])
|
||||
|
||||
@@ -43,7 +44,7 @@ index 46cb2c7..bb45f46 100644
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(HAVE_PANGO, test "x$have_pango" = "xyes")
|
||||
@@ -701,6 +705,7 @@ AC_MSG_RESULT([
|
||||
@@ -702,6 +706,7 @@ AC_MSG_RESULT([
|
||||
Enable developer documentation ${enable_devdocs}
|
||||
|
||||
weston-launch utility ${enable_weston_launch}
|
||||
@@ -52,7 +53,7 @@ index 46cb2c7..bb45f46 100644
|
||||
systemd notify support ${enable_systemd_notify}
|
||||
|
||||
diff --git a/libweston/weston-launch.c b/libweston/weston-launch.c
|
||||
index 0491896..07e7469 100644
|
||||
index 166bf3b..6fb9232 100644
|
||||
--- a/libweston/weston-launch.c
|
||||
+++ b/libweston/weston-launch.c
|
||||
@@ -51,7 +51,9 @@
|
||||
@@ -65,7 +66,7 @@ index 0491896..07e7469 100644
|
||||
|
||||
#ifdef HAVE_SYSTEMD_LOGIN
|
||||
#include <systemd/sd-login.h>
|
||||
@@ -93,8 +95,10 @@ drmSetMaster(int drm_fd)
|
||||
@@ -101,8 +103,10 @@ drmSetMaster(int drm_fd)
|
||||
#endif
|
||||
|
||||
struct weston_launch {
|
||||
@@ -76,7 +77,7 @@ index 0491896..07e7469 100644
|
||||
int tty;
|
||||
int ttynr;
|
||||
int sock[2];
|
||||
@@ -181,6 +185,7 @@ weston_launch_allowed(struct weston_launch *wl)
|
||||
@@ -189,6 +193,7 @@ weston_launch_allowed(struct weston_launch *wl)
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -84,7 +85,7 @@ index 0491896..07e7469 100644
|
||||
static int
|
||||
pam_conversation_fn(int msg_count,
|
||||
const struct pam_message **messages,
|
||||
@@ -221,6 +226,7 @@ setup_pam(struct weston_launch *wl)
|
||||
@@ -229,6 +234,7 @@ setup_pam(struct weston_launch *wl)
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -92,7 +93,7 @@ index 0491896..07e7469 100644
|
||||
|
||||
static int
|
||||
setup_launcher_socket(struct weston_launch *wl)
|
||||
@@ -414,6 +420,7 @@ quit(struct weston_launch *wl, int status)
|
||||
@@ -422,6 +428,7 @@ quit(struct weston_launch *wl, int status)
|
||||
close(wl->signalfd);
|
||||
close(wl->sock[0]);
|
||||
|
||||
@@ -100,7 +101,7 @@ index 0491896..07e7469 100644
|
||||
if (wl->new_user) {
|
||||
err = pam_close_session(wl->ph, 0);
|
||||
if (err)
|
||||
@@ -421,6 +428,7 @@ quit(struct weston_launch *wl, int status)
|
||||
@@ -429,6 +436,7 @@ quit(struct weston_launch *wl, int status)
|
||||
err, pam_strerror(wl->ph, err));
|
||||
pam_end(wl->ph, err);
|
||||
}
|
||||
@@ -108,7 +109,7 @@ index 0491896..07e7469 100644
|
||||
|
||||
if (ioctl(wl->tty, KDSKBMUTE, 0) &&
|
||||
ioctl(wl->tty, KDSKBMODE, wl->kb_mode))
|
||||
@@ -600,6 +608,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
|
||||
@@ -608,6 +616,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
|
||||
setenv("HOME", wl->pw->pw_dir, 1);
|
||||
setenv("SHELL", wl->pw->pw_shell, 1);
|
||||
|
||||
@@ -116,7 +117,7 @@ index 0491896..07e7469 100644
|
||||
env = pam_getenvlist(wl->ph);
|
||||
if (env) {
|
||||
for (i = 0; env[i]; ++i) {
|
||||
@@ -608,6 +617,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
|
||||
@@ -616,6 +625,7 @@ setup_session(struct weston_launch *wl, char **child_argv)
|
||||
}
|
||||
free(env);
|
||||
}
|
||||
@@ -124,17 +125,18 @@ index 0491896..07e7469 100644
|
||||
|
||||
/*
|
||||
* We open a new session, so it makes sense
|
||||
@@ -675,7 +685,9 @@ static void
|
||||
@@ -683,8 +693,10 @@ 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");
|
||||
fprintf(stderr, " -u, --user Start session as specified username,\n"
|
||||
" e.g. -u joe, requires root.\n");
|
||||
+#endif
|
||||
fprintf(stderr, " -t, --tty Start session on alternative tty\n");
|
||||
fprintf(stderr, " -t, --tty Start session on alternative tty,\n"
|
||||
" e.g. -t /dev/tty4, requires -u option.\n");
|
||||
fprintf(stderr, " -v, --verbose Be verbose\n");
|
||||
fprintf(stderr, " -h, --help Display this help message\n");
|
||||
@@ -688,7 +700,9 @@ main(int argc, char *argv[])
|
||||
@@ -698,7 +710,9 @@ main(int argc, char *argv[])
|
||||
int i, c;
|
||||
char *tty = NULL;
|
||||
struct option opts[] = {
|
||||
@@ -144,8 +146,8 @@ index 0491896..07e7469 100644
|
||||
{ "tty", required_argument, NULL, 't' },
|
||||
{ "verbose", no_argument, NULL, 'v' },
|
||||
{ "help", no_argument, NULL, 'h' },
|
||||
@@ -700,9 +714,13 @@ main(int argc, char *argv[])
|
||||
while ((c = getopt_long(argc, argv, "u:t::vh", opts, &i)) != -1) {
|
||||
@@ -710,9 +724,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
|
||||
@@ -158,7 +160,7 @@ index 0491896..07e7469 100644
|
||||
break;
|
||||
case 't':
|
||||
tty = optarg;
|
||||
@@ -740,8 +758,10 @@ main(int argc, char *argv[])
|
||||
@@ -753,8 +771,10 @@ main(int argc, char *argv[])
|
||||
if (setup_tty(&wl, tty) < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
|
||||
@@ -169,6 +171,3 @@ index 0491896..07e7469 100644
|
||||
|
||||
if (setup_launcher_socket(&wl) < 0)
|
||||
exit(EXIT_FAILURE);
|
||||
--
|
||||
2.1.4
|
||||
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
On the musl C library, tests/timespec-text.c does not build, with the
|
||||
following error:
|
||||
|
||||
In file included from tests/timespec-test.c:36:0:
|
||||
./shared/timespec-util.h:41:21: warning: ‘struct timespec’ declared
|
||||
inside parameter list will not be visible outside of this definition
|
||||
or declaration
|
||||
timespec_sub(struct timespec *r,
|
||||
^~~~~~~~
|
||||
[...]
|
||||
|
||||
Indeed, struct timespec is defined in time.h, so we must include it.
|
||||
|
||||
Upstream-Status: Backport [fa41bdfbc0b962fd73b89f01aab1a5370c9c28eb]
|
||||
|
||||
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
|
||||
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
|
||||
|
||||
Index: weston-3.0.0/shared/timespec-util.h
|
||||
===================================================================
|
||||
--- weston-3.0.0.orig/shared/timespec-util.h
|
||||
+++ weston-3.0.0/shared/timespec-util.h
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
#include <stdint.h>
|
||||
#include <assert.h>
|
||||
+#include <time.h>
|
||||
|
||||
#define NSEC_PER_SEC 1000000000
|
||||
|
||||
@@ -1,55 +0,0 @@
|
||||
Multi-plane sub-sampled textures have partial width/height, e.g.
|
||||
YUV420/I420 has a full-size Y plane, followed by a half-width/height U
|
||||
plane, and a half-width/height V plane.
|
||||
|
||||
zwp_linux_dmabuf_v1 allows clients to pass an explicit pitch for each
|
||||
plane, but for wl_shm this must be inferred. gl-renderer was correctly
|
||||
accounting for the width and height when subsampling, but the pitch was
|
||||
being taken as the pitch for the first plane.
|
||||
|
||||
This does not match the requirements for GStreamer's waylandsink, in
|
||||
particular, as well as other clients. Fix the SHM upload path to
|
||||
correctly set the pitch for each plane, according to subsampling.
|
||||
|
||||
Tested with:
|
||||
$ gst-launch-1.0 videotestsrc ! waylandsink
|
||||
|
||||
Upstream-Status: Backport [https://patchwork.freedesktop.org/patch/180767/]
|
||||
|
||||
Signed-off-by: Daniel Stone <daniels@collabora.com>
|
||||
Fixes: fdeefe42418 ("gl-renderer: add support of WL_SHM_FORMAT_YUV420")
|
||||
Reported-by: Fabien Lahoudere <fabien.lahoudere@collabora.co.uk>
|
||||
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103063
|
||||
|
||||
---
|
||||
libweston/gl-renderer.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
|
||||
index 244ce309..40bf0bb6 100644
|
||||
--- a/libweston/gl-renderer.c
|
||||
+++ b/libweston/gl-renderer.c
|
||||
@@ -1445,14 +1445,13 @@ gl_renderer_flush_damage(struct weston_surface *surface)
|
||||
goto done;
|
||||
}
|
||||
|
||||
- glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch);
|
||||
-
|
||||
if (gs->needs_full_upload) {
|
||||
glPixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, 0);
|
||||
glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, 0);
|
||||
wl_shm_buffer_begin_access(buffer->shm_buffer);
|
||||
for (j = 0; j < gs->num_textures; j++) {
|
||||
glBindTexture(GL_TEXTURE_2D, gs->textures[j]);
|
||||
+ glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch / gs->hsub[j]);
|
||||
glTexImage2D(GL_TEXTURE_2D, 0,
|
||||
gs->gl_format[j],
|
||||
gs->pitch / gs->hsub[j],
|
||||
@@ -1477,6 +1476,7 @@ gl_renderer_flush_damage(struct weston_surface *surface)
|
||||
glPixelStorei(GL_UNPACK_SKIP_ROWS_EXT, r.y1);
|
||||
for (j = 0; j < gs->num_textures; j++) {
|
||||
glBindTexture(GL_TEXTURE_2D, gs->textures[j]);
|
||||
+ glPixelStorei(GL_UNPACK_ROW_LENGTH_EXT, gs->pitch / gs->hsub[j]);
|
||||
glTexSubImage2D(GL_TEXTURE_2D, 0,
|
||||
r.x1 / gs->hsub[j],
|
||||
r.y1 / gs->vsub[j],
|
||||
@@ -11,11 +11,9 @@ SRC_URI = "https://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
|
||||
file://0001-make-error-portable.patch \
|
||||
file://xwayland.weston-start \
|
||||
file://0001-weston-launch-Provide-a-default-version-that-doesn-t.patch \
|
||||
file://weston-gl-renderer-Set-pitch-correctly-for-subsampled-textures.patch \
|
||||
file://fix-missing-header.patch \
|
||||
"
|
||||
SRC_URI[md5sum] = "9c42a4c51a1b9f35d040fa9d45ada36d"
|
||||
SRC_URI[sha256sum] = "cde1d55e8dd70c3cbb3d1ec72f60e60000041579caa1d6a262bd9c35e93723a5"
|
||||
SRC_URI[md5sum] = "33709aa4d5916f89643fca0fc0064b39"
|
||||
SRC_URI[sha256sum] = "a0fc0ae7ef83dfbed12abfe9b8096a24a7dd00705e86fa0db1e619ded18b4b58"
|
||||
|
||||
inherit autotools pkgconfig useradd distro_features_check
|
||||
# depends on virtual/egl
|
||||
@@ -24,6 +22,8 @@ REQUIRED_DISTRO_FEATURES = "opengl"
|
||||
DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0 jpeg"
|
||||
DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
|
||||
|
||||
WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
|
||||
|
||||
EXTRA_OECONF = "--enable-setuid-install \
|
||||
--disable-rdp-compositor \
|
||||
"
|
||||
@@ -62,8 +62,6 @@ PACKAGECONFIG[cairo-glesv2] = "--with-cairo-glesv2,--with-cairo=image,cairo"
|
||||
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)
|
||||
@@ -77,7 +75,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}/libweston-3/*.la
|
||||
rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la
|
||||
|
||||
# If X11, ship a desktop file to launch it
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then
|
||||
@@ -94,16 +92,16 @@ do_install_append() {
|
||||
}
|
||||
|
||||
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
|
||||
libweston-3 ${PN}-examples"
|
||||
libweston-${WESTON_MAJOR_VERSION} ${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-3 = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-3/*.so"
|
||||
SUMMARY_libweston-3 = "Helper library for implementing 'wayland window managers'."
|
||||
FILES_libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so"
|
||||
SUMMARY_libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'."
|
||||
|
||||
FILES_${PN}-examples = "${bindir}/*"
|
||||
|
||||
FILES_${PN}-xwayland = "${libdir}/libweston-3/xwayland.so"
|
||||
FILES_${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so"
|
||||
RDEPENDS_${PN}-xwayland += "xserver-xorg-xwayland"
|
||||
|
||||
RDEPENDS_${PN} += "xkeyboard-config"
|
||||
Reference in New Issue
Block a user