Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package seatd for openSUSE:Factory checked in at 2026-01-20 21:03:45 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seatd (Old) and /work/SRC/openSUSE:Factory/.seatd.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seatd" Tue Jan 20 21:03:45 2026 rev:12 rq:1328188 version:0.9.2 Changes: -------- --- /work/SRC/openSUSE:Factory/seatd/seatd.changes 2024-11-22 23:52:20.043420740 +0100 +++ /work/SRC/openSUSE:Factory/.seatd.new.1928/seatd.changes 2026-01-20 21:03:53.726443943 +0100 @@ -1,0 +2,12 @@ +Tue Jan 20 08:11:19 UTC 2026 - Michael Vetter <[email protected]> + +- Update to 0.9.2: + * libseat/seatd: Remove read_and_execute + * libseat/seatd: Read remaining events after processing responses + * libseat/seatd: Cleanup of request error handling + * libseat/seatd: Set EINVAL if target session is invalid + * libseat/seatd: Set backend error if poll fails + * seatd: Add validation of device path libseat/seatd: Add validation of seat_name + * seatd: Add strict message size comparison + +------------------------------------------------------------------- Old: ---- seatd-0.9.1.obscpio New: ---- seatd-0.9.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seatd.spec ++++++ --- /var/tmp/diff_new_pack.je2t8I/_old 2026-01-20 21:03:54.378470931 +0100 +++ /var/tmp/diff_new_pack.je2t8I/_new 2026-01-20 21:03:54.382471097 +0100 @@ -1,7 +1,7 @@ # # spec file for package seatd # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: seatd -Version: 0.9.1 +Version: 0.9.2 Release: 0 Summary: Seat management daemon License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.je2t8I/_old 2026-01-20 21:03:54.442473580 +0100 +++ /var/tmp/diff_new_pack.je2t8I/_new 2026-01-20 21:03:54.462474407 +0100 @@ -3,7 +3,7 @@ <service name="obs_scm" mode="disabled"> <param name="url">https://git.sr.ht/~kennylevinsen/seatd</param> <param name="scm">git</param> - <param name="revision">0.9.1</param> + <param name="revision">0.9.2</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ seatd-0.9.1.obscpio -> seatd-0.9.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/.builds/alpine.yml new/seatd-0.9.2/.builds/alpine.yml --- old/seatd-0.9.1/.builds/alpine.yml 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/.builds/alpine.yml 2026-01-05 10:44:28.000000000 +0100 @@ -10,7 +10,7 @@ - https://git.sr.ht/~kennylevinsen/seatd tasks: - prepare: | - meson -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled -Dexamples=enabled build seatd + meson setup -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled -Dexamples=enabled build seatd - build: | ninja -C build sudo ninja -C build install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/.builds/archlinux.yml new/seatd-0.9.2/.builds/archlinux.yml --- old/seatd-0.9.1/.builds/archlinux.yml 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/.builds/archlinux.yml 2026-01-05 10:44:28.000000000 +0100 @@ -9,7 +9,7 @@ - https://git.sr.ht/~kennylevinsen/seatd tasks: - prepare: | - meson -Db_sanitize=address -Dlibseat-logind=auto -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dexamples=enabled build seatd + meson setup -Db_sanitize=address -Dlibseat-logind=auto -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dexamples=enabled build seatd - build: | ninja -C build sudo ninja -C build install diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/.builds/freebsd.yml new/seatd-0.9.2/.builds/freebsd.yml --- old/seatd-0.9.1/.builds/freebsd.yml 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/.builds/freebsd.yml 2026-01-05 10:44:28.000000000 +0100 @@ -5,14 +5,14 @@ - https://git.sr.ht/~kennylevinsen/seatd tasks: - prepare: | - meson -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled build seatd + meson setup -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled build seatd - build: | ninja -C build - unittest: | ninja -C build test - smoketest: | rm -rf build - meson -Db_lundef=false -Db_sanitize=address -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dexamples=enabled -Dlibseat-logind=disabled build seatd + meson setup -Db_lundef=false -Db_sanitize=address -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dexamples=enabled -Dlibseat-logind=disabled build seatd ninja -C build sudo ninja -C build install timeout -s KILL 30s sudo ./build/seatd-launch -l debug -- ./build/simpletest /dev/input/event0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/.builds/netbsd.yml new/seatd-0.9.2/.builds/netbsd.yml --- old/seatd-0.9.1/.builds/netbsd.yml 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/.builds/netbsd.yml 2026-01-05 10:44:28.000000000 +0100 @@ -9,14 +9,14 @@ sudo /etc/rc.d/wscons start sudo /etc/rc.d/ttys restart - prepare: | - meson -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled build seatd + meson setup -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled build seatd - build: | ninja -C build - unittest: | ninja -C build test - smoketest: | rm -rf build - meson -Db_lundef=false -Db_sanitize=address -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dexamples=enabled -Dlibseat-logind=disabled build seatd + meson setup -Db_lundef=false -Db_sanitize=address -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dexamples=enabled -Dlibseat-logind=disabled build seatd ninja -C build sudo ninja -C build install timeout -s SIGKILL 30s sudo SEATD_LOGLEVEL=debug ./build/seatd-launch ./build/simpletest /dev/wskbd diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/README.md new/seatd-0.9.2/README.md --- old/seatd-0.9.1/README.md 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/README.md 2026-01-05 10:44:28.000000000 +0100 @@ -29,9 +29,9 @@ ## Why not (e)logind? -systemd-logind is not portable, and being part of the systemd project, it cannot be used in an environment not based on systemd. Furthermore, "simple" is definitely not within the set of adjectives that can be used to describe logind. For those in the dark, [take a glance at its API](https://www.freedesktop.org/wiki/Software/systemd/logind/). Plus, competition is healthy. +systemd-logind is not portable, and being part of the systemd project, it cannot be used in an environment not based on or compatible with systemd. -elogind tries to isolate systemd-logind form systemd through brute-force. This requires actively fighting against upstream design decisions for deep integration, and the efforts must be repeated every time one syncs with upstream. And even after all this work, one is left with nothing but a hackjob. +elogind tries to isolate systemd-logind from systemd through brute-force. This requires actively fighting against upstream design decisions for deep integration, and the efforts must be repeated every time one syncs with upstream. And even after all this work, one is left with nothing but a hackjob. Why spend time isolating logind and keeping up with upstream when we could instead create something better with less work? diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/common/evdev.c new/seatd-0.9.2/common/evdev.c --- old/seatd-0.9.1/common/evdev.c 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/common/evdev.c 2026-01-05 10:44:28.000000000 +0100 @@ -23,7 +23,7 @@ } int evdev_revoke(int fd) { - return ioctl(fd, EVIOCREVOKE, NULL); + return ioctl(fd, (int)EVIOCREVOKE, NULL); } #else int path_is_evdev(const char *path) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/libseat/backend/logind.c new/seatd-0.9.2/libseat/backend/logind.c --- old/seatd-0.9.1/libseat/backend/logind.c 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/libseat/backend/logind.c 2026-01-05 10:44:28.000000000 +0100 @@ -429,6 +429,7 @@ } if (strcmp(s, "Active") == 0) { int ret; + const char *field = "Active"; ret = sd_bus_message_enter_container(msg, 'v', "b"); if (ret < 0) { goto error; @@ -440,7 +441,7 @@ goto error; } - log_debugf("%s state changed: %d", s, value); + log_debugf("%s state changed: %d", field, value); set_active(session, value); ret = sd_bus_message_exit_container(msg); if (ret < 0) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/libseat/backend/seatd.c new/seatd-0.9.2/libseat/backend/seatd.c --- old/seatd-0.9.1/libseat/backend/seatd.c 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/libseat/backend/seatd.c 2026-01-05 10:44:28.000000000 +0100 @@ -83,8 +83,7 @@ static void cleanup(struct backend_seatd *backend) { if (backend->connection.fd != -1) { - close(backend->connection.fd); - backend->connection.fd = -1; + shutdown(backend->connection.fd, SHUT_RDWR); } connection_close_fds(&backend->connection); while (!linked_list_empty(&backend->pending_events)) { @@ -95,6 +94,11 @@ } static void destroy(struct backend_seatd *backend) { + if (backend->connection.fd != -1) { + close(backend->connection.fd); + backend->connection.fd = -1; + } + cleanup(backend); free(backend); } @@ -155,12 +159,12 @@ } if (header.opcode != expected_opcode) { struct proto_server_error msg; - if (header.opcode != SERVER_ERROR) { - log_errorf("Unexpected response: expected opcode %d, received opcode %d", - expected_opcode, header.opcode); + if (header.opcode != SERVER_ERROR || header.size != sizeof msg) { + log_errorf("Unexpected response: expected opcode %d of length %zd, received opcode %d of length %d", + expected_opcode, sizeof msg, header.opcode, header.size); set_error(backend); errno = EBADMSG; - } else if (header.size != sizeof msg || conn_get(backend, &msg, sizeof msg) == -1) { + } else if (conn_get(backend, &msg, sizeof msg) == -1) { set_error(backend); errno = EBADMSG; } else { @@ -338,7 +342,8 @@ // caller might be waiting for the result. However, we'd also // like to read anything pending. int read = 0; - if (predispatch > 0 || timeout == 0) { + bool immediate_read = predispatch > 0 || timeout == 0; + if (immediate_read) { read = connection_read(&backend->connection); } else { read = poll_connection(backend, timeout); @@ -347,7 +352,8 @@ if (read == 0) { return predispatch; } else if (read == -1 && errno != EAGAIN) { - log_errorf("Could not read from connection: %s", strerror(errno)); + log_errorf("Could not %s from connection: %s", immediate_read ? "read" : "poll", + strerror(errno)); goto error; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.9.1/meson.build new/seatd-0.9.2/meson.build --- old/seatd-0.9.1/meson.build 2024-10-30 20:43:26.000000000 +0100 +++ new/seatd-0.9.2/meson.build 2026-01-05 10:44:28.000000000 +0100 @@ -1,7 +1,7 @@ project( 'seatd', 'c', - version: '0.9.1', + version: '0.9.2', license: 'MIT', meson_version: '>=0.60.0', default_options: [ @@ -46,12 +46,16 @@ '-Wmissing-include-dirs', '-Wold-style-definition', # nop '-Wpointer-arith', + '-Wstrict-aliasing', '-Wstrict-prototypes', '-Wimplicit-fallthrough', '-Wmissing-prototypes', '-Wno-unknown-warning-option', '-Wno-unused-command-line-argument', '-Wvla', + # GCC warns if hardened is used without optimization + '-Wno-hardened', + '-fhardened', ]), language: 'c', ) @@ -63,10 +67,6 @@ language: 'c', ) -if ['debugoptimized', 'release', 'minsize'].contains(get_option('buildtype')) - add_project_arguments('-D_FORTIFY_SOURCE=2', language: 'c') -endif - if get_option('buildtype').startswith('debug') add_project_arguments('-DDEBUG', language : 'c') endif ++++++ seatd.obsinfo ++++++ --- /var/tmp/diff_new_pack.je2t8I/_old 2026-01-20 21:03:54.746486164 +0100 +++ /var/tmp/diff_new_pack.je2t8I/_new 2026-01-20 21:03:54.762486825 +0100 @@ -1,5 +1,5 @@ name: seatd -version: 0.9.1 -mtime: 1730317406 -commit: 566ffeb032af42865dc1210e48cec08368059bb9 +version: 0.9.2 +mtime: 1767606268 +commit: a3c56c324c3a84474cc1615d94ccd6a6255d0c10
