From: Adrian Perez de Castro Date: Fri, 17 Sep 2021 18:31:32 +0000 (+0300) Subject: package/seatd: bump to version 0.6.2 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c54f85ca0d2ba7b73c899a27e62c67d3389617b8;p=buildroot.git package/seatd: bump to version 0.6.2 Update seatd to version 0.6.2, which makes the patches unnecessary (they have all been integrated in 0.6.0) and fixes a number of bugs. Some Meson build options have been renamed, so the build recipe is updated accordingly, too. Release notes: https://git.sr.ht/~kennylevinsen/seatd/refs/0.6.0 https://git.sr.ht/~kennylevinsen/seatd/refs/0.6.1 https://git.sr.ht/~kennylevinsen/seatd/refs/0.6.2 Signed-off-by: Adrian Perez de Castro Signed-off-by: Yann E. MORIN --- diff --git a/package/seatd/0001-meson-Support-building-builtin-without-seatd.patch b/package/seatd/0001-meson-Support-building-builtin-without-seatd.patch deleted file mode 100644 index fcaa355dc4..0000000000 --- a/package/seatd/0001-meson-Support-building-builtin-without-seatd.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 11bf7d5d11424749d549239540e5db06b8754bb5 Mon Sep 17 00:00:00 2001 -From: Kenny Levinsen -Date: Sun, 25 Apr 2021 20:16:19 +0200 -Subject: [PATCH] meson: Support building builtin without seatd - -The builtin backend relies on the seatd backend implementation. When -builtin was enabled without seatd, compilation would fail due to the -implementation not being included. - -Include the implementation if either seatd or builtin is enabled. - -Signed-off-by: Adrian Perez de Castro -Upstream-Status: backport [with adaptations] ---- - meson.build | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index ff56845..8cb4fc6 100644 ---- a/meson.build -+++ b/meson.build -@@ -105,8 +105,11 @@ server_files = [ - 'seatd/server.c', - ] - --if get_option('seatd').enabled() -+if get_option('seatd').enabled() or get_option('builtin').enabled() - private_files += 'libseat/backend/seatd.c' -+endif -+ -+if get_option('seatd').enabled() - add_project_arguments('-DSEATD_ENABLED=1', language: 'c') - endif - --- -2.31.1 - diff --git a/package/seatd/0002-Add-no-op-session.patch b/package/seatd/0002-Add-no-op-session.patch deleted file mode 100644 index 44798126d9..0000000000 --- a/package/seatd/0002-Add-no-op-session.patch +++ /dev/null @@ -1,223 +0,0 @@ -From 9a7824b7c3ff5c957632671e91454fc84fbcdda8 Mon Sep 17 00:00:00 2001 -From: Simon Ser -Date: Fri, 26 Mar 2021 10:05:12 +0100 -Subject: [PATCH] Add no-op session - -This is useful for headless testing, for instance with VKMS: - - modprobe vkms - export WLR_DRM_DEVICES=/dev/dri/card1 - export WLR_BACKENDS=drm - export LIBSEAT_BACKEND=noop - sway - -We don't need any of the VT handling in this case. - -[Retrieved from: -https://github.com/kennylevinsen/seatd/commit/9a7824b7c3ff5c957632671e91454fc84fbcdda8] -Signed-off-by: Fabrice Fontaine ---- - include/libseat.h | 2 + - libseat/backend/noop.c | 135 +++++++++++++++++++++++++++++++++++++++++ - libseat/libseat.c | 5 ++ - meson.build | 2 +- - 4 files changed, 143 insertions(+), 1 deletion(-) - create mode 100644 libseat/backend/noop.c - -diff --git a/include/libseat.h b/include/libseat.h -index 5375cd6..82098ea 100644 ---- a/include/libseat.h -+++ b/include/libseat.h -@@ -1,6 +1,8 @@ - #ifndef _LIBSEAT_H - #define _LIBSEAT_H - -+#include -+ - /* - * An opaque struct containing an opened seat, created by libseat_open_seat and - * destroyed by libseat_close_seat. -diff --git a/libseat/backend/noop.c b/libseat/backend/noop.c -new file mode 100644 -index 0000000..71d0224 ---- /dev/null -+++ b/libseat/backend/noop.c -@@ -0,0 +1,135 @@ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include "backend.h" -+#include "log.h" -+ -+struct backend_noop { -+ struct libseat base; -+ struct libseat_seat_listener *seat_listener; -+ void *seat_listener_data; -+ -+ bool initial_setup; -+ int sockets[2]; -+}; -+ -+extern const struct seat_impl noop_impl; -+ -+static struct backend_noop *backend_noop_from_libseat_backend(struct libseat *base) { -+ assert(base->impl == &noop_impl); -+ return (struct backend_noop *)base; -+} -+ -+static void destroy(struct backend_noop *backend) { -+ close(backend->sockets[0]); -+ close(backend->sockets[1]); -+ free(backend); -+} -+ -+static int close_seat(struct libseat *base) { -+ struct backend_noop *backend = backend_noop_from_libseat_backend(base); -+ destroy(backend); -+ return 0; -+} -+ -+static int disable_seat(struct libseat *base) { -+ (void)base; -+ return 0; -+} -+ -+static const char *seat_name(struct libseat *base) { -+ (void)base; -+ return "noop"; -+} -+ -+static int open_device(struct libseat *base, const char *path, int *fd) { -+ (void)base; -+ -+ int tmpfd = open(path, O_RDWR | O_CLOEXEC); -+ if (tmpfd < 0) { -+ log_errorf("Failed to open device: %s", strerror(errno)); -+ return -1; -+ } -+ -+ *fd = tmpfd; -+ return tmpfd; -+} -+ -+static int close_device(struct libseat *base, int device_id) { -+ (void)base; -+ (void)device_id; -+ return 0; -+} -+ -+static int switch_session(struct libseat *base, int s) { -+ (void)base; -+ (void)s; -+ log_errorf("No-op backend cannot switch to session %d", s); -+ return -1; -+} -+ -+static int get_fd(struct libseat *base) { -+ struct backend_noop *backend = backend_noop_from_libseat_backend(base); -+ return backend->sockets[0]; -+} -+ -+static int dispatch_background(struct libseat *base, int timeout) { -+ struct backend_noop *backend = backend_noop_from_libseat_backend(base); -+ -+ if (backend->initial_setup) { -+ backend->initial_setup = false; -+ backend->seat_listener->enable_seat(&backend->base, backend->seat_listener_data); -+ } -+ -+ struct pollfd fd = { -+ .fd = backend->sockets[0], -+ .events = POLLIN, -+ }; -+ if (poll(&fd, 1, timeout) < 0) { -+ if (errno == EAGAIN || errno == EINTR) { -+ return 0; -+ } else { -+ return -1; -+ } -+ } -+ -+ return 0; -+} -+ -+static struct libseat *noop_open_seat(struct libseat_seat_listener *listener, void *data) { -+ struct backend_noop *backend = calloc(1, sizeof(struct backend_noop)); -+ if (backend == NULL) { -+ return NULL; -+ } -+ -+ if (socketpair(AF_UNIX, SOCK_STREAM, 0, backend->sockets) != 0) { -+ log_errorf("socketpair() failed: %s", strerror(errno)); -+ free(backend); -+ return NULL; -+ } -+ -+ backend->seat_listener = listener; -+ backend->seat_listener_data = data; -+ backend->base.impl = &noop_impl; -+ -+ return &backend->base; -+} -+ -+const struct seat_impl noop_impl = { -+ .open_seat = noop_open_seat, -+ .disable_seat = disable_seat, -+ .close_seat = close_seat, -+ .seat_name = seat_name, -+ .open_device = open_device, -+ .close_device = close_device, -+ .switch_session = switch_session, -+ .get_fd = get_fd, -+ .dispatch = dispatch_background, -+}; -diff --git a/libseat/libseat.c b/libseat/libseat.c -index b1e8bb2..a7e079c 100644 ---- a/libseat/libseat.c -+++ b/libseat/libseat.c -@@ -13,6 +13,7 @@ - extern const struct seat_impl seatd_impl; - extern const struct seat_impl logind_impl; - extern const struct seat_impl builtin_impl; -+extern const struct seat_impl noop_impl; - - static const struct named_backend impls[] = { - #ifdef SEATD_ENABLED -@@ -24,6 +25,7 @@ static const struct named_backend impls[] = { - #ifdef BUILTIN_ENABLED - {"builtin", &builtin_impl}, - #endif -+ {"noop", &noop_impl}, - {NULL, NULL}, - }; - -@@ -62,6 +64,9 @@ struct libseat *libseat_open_seat(struct libseat_seat_listener *listener, void * - - struct libseat *backend = NULL; - for (const struct named_backend *iter = impls; iter->backend != NULL; iter++) { -+ if (iter->backend == &noop_impl) { -+ continue; -+ } - backend = iter->backend->open_seat(listener, data); - if (backend != NULL) { - log_infof("Seat opened with backend '%s'", iter->name); -diff --git a/meson.build b/meson.build -index f41b621..c3800ae 100644 ---- a/meson.build -+++ b/meson.build -@@ -145,7 +145,7 @@ symbols_file = 'libseat/libseat.syms' - symbols_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), symbols_file) - lib = library( - 'seat', # This results in the library being called 'libseat' -- [ 'libseat/libseat.c' ], -+ [ 'libseat/libseat.c', 'libseat/backend/noop.c' ], - soversion: libseat_soversion, - link_with: private_lib, - include_directories: [include_directories('.', 'include')], diff --git a/package/seatd/0003-meson.build-fix-build-with-gcc-7.patch b/package/seatd/0003-meson.build-fix-build-with-gcc-7.patch deleted file mode 100644 index 0e9f437cc3..0000000000 --- a/package/seatd/0003-meson.build-fix-build-with-gcc-7.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 0b32c33978fbe8772df6d185c9b9d646c442dc5d Mon Sep 17 00:00:00 2001 -From: Fabrice Fontaine -Date: Sun, 8 Aug 2021 19:00:35 +0200 -Subject: [PATCH] meson.build: fix build with gcc < 7 - -Test if -Wimplicit-fallthrough is available before using it as it has -been added only since gcc 7.1 and -https://github.com/gcc-mirror/gcc/commit/81fea426da8c4687bb32e6894dc26f00ae211822 -and so it will raise the following build failure with gcc < 7: - -arm-none-linux-gnueabi-gcc: error: unrecognized command line option '-Wimplicit-fallthrough' - -Fixes: - - http://autobuild.buildroot.org/results/0ee6816a7cceebdafd07612677a594bdf68e0790 - -Signed-off-by: Fabrice Fontaine -[Upstream status: https://github.com/kennylevinsen/seatd/pull/1] ---- - meson.build | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/meson.build b/meson.build -index 1131b4b..c366a59 100644 ---- a/meson.build -+++ b/meson.build -@@ -31,7 +31,6 @@ add_project_arguments( - '-Wold-style-definition', # nop - '-Wpointer-arith', - '-Wstrict-prototypes', -- '-Wimplicit-fallthrough', - '-Wmissing-prototypes', - '-Wno-unknown-warning-option', - '-Wno-unused-command-line-argument', -@@ -45,6 +44,11 @@ add_project_arguments( - language: 'c', - ) - -+cc = meson.get_compiler('c') -+if cc.has_argument('-Wimplicit-fallthrough') -+ add_project_arguments('-Wimplicit-fallthrough' , language : 'c') -+endif -+ - if ['debugoptimized', 'release', 'minsize'].contains(get_option('buildtype')) - add_project_arguments('-D_FORTIFY_SOURCE=2', language: 'c') - endif --- -2.30.2 - diff --git a/package/seatd/seatd.hash b/package/seatd/seatd.hash index 342079e958..980c0faded 100644 --- a/package/seatd/seatd.hash +++ b/package/seatd/seatd.hash @@ -1,5 +1,5 @@ # Calculated locally -sha256 274b56324fc81ca6002bc1cdd387668dee34a6e1063e5f3896805c3770948988 0.5.0.tar.gz +sha256 1e2745ea39266de40d5beb24011782da95468b81ecfa410dd0db5ff75c665727 0.6.2.tar.gz # License files sha256 282a494803d666616bd726e0279636b5f6a31387ae19a707459074050f2600d3 LICENSE diff --git a/package/seatd/seatd.mk b/package/seatd/seatd.mk index bf582f0d1d..98eea650dd 100644 --- a/package/seatd/seatd.mk +++ b/package/seatd/seatd.mk @@ -4,7 +4,7 @@ # ################################################################################ -SEATD_VERSION = 0.5.0 +SEATD_VERSION = 0.6.2 SEATD_SOURCE = $(SEATD_VERSION).tar.gz SEATD_SITE = https://git.sr.ht/~kennylevinsen/seatd/archive SEATD_LICENSE = MIT @@ -17,20 +17,20 @@ SEATD_CONF_OPTS += \ -Dwerror=false ifeq ($(BR2_PACKAGE_SYSTEMD_LOGIND),y) -SEATD_CONF_OPTS += -Dlogind=enabled +SEATD_CONF_OPTS += -Dlibseat-logind=enabled SEATD_DEPENDENCIES += systemd else -SEATD_CONF_OPTS += -Dlogind=disabled +SEATD_CONF_OPTS += -Dlibseat-logind=disabled endif ifeq ($(BR2_PACKAGE_SEATD_BUILTIN),y) -SEATD_CONF_OPTS += -Dbuiltin=enabled +SEATD_CONF_OPTS += -Dlibseat-builtin=enabled else -SEATD_CONF_OPTS += -Dbuiltin=disabled +SEATD_CONF_OPTS += -Dlibseat-builtin=disabled endif ifeq ($(BR2_PACKAGE_SEATD_DAEMON),y) -SEATD_CONF_OPTS += -Dseatd=enabled -Dserver=enabled +SEATD_CONF_OPTS += -Dlibseat-seatd=enabled -Dserver=enabled define SEATD_USERS - - video -1 - - - - - @@ -47,7 +47,7 @@ define SEATD_INSTALL_INIT_SYSTEMD endef else -SEATD_CONF_OPTS += -Dseatd=disabled -Dserver=disabled +SEATD_CONF_OPTS += -Dlibseat-seatd=disabled -Dserver=disabled endif $(eval $(meson-package))