Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package seatd for openSUSE:Factory checked in at 2021-09-16 23:14:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/seatd (Old) and /work/SRC/openSUSE:Factory/.seatd.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "seatd" Thu Sep 16 23:14:55 2021 rev:5 rq:919491 version:0.6.2 Changes: -------- --- /work/SRC/openSUSE:Factory/seatd/seatd.changes 2021-09-12 20:09:34.920086587 +0200 +++ /work/SRC/openSUSE:Factory/.seatd.new.1899/seatd.changes 2021-09-16 23:17:38.935983233 +0200 @@ -1,0 +2,18 @@ +Thu Sep 16 07:40:50 UTC 2021 - Michael Vetter <[email protected]> + +- Update to 0.6.2: + * seatd-launch: Specify exact environment to seatd + * seatd-launch: Use absolute path for seatd + +------------------------------------------------------------------- +Wed Sep 15 07:35:12 UTC 2021 - Michael Vetter <[email protected]> + +- Update to 0.6.1: + * seatd-launch: print unlink/kill errors + * seatd-launch: exit with status >128 if child is signalled + * man/seatd-launch: Make mssage about root clearer + * seatd-launch: Use optind to find the command + * seatd-launch: respect PATH when looking for command + * man: Add seatd-launch(1) to SEE ALSO of seatd(1) + +------------------------------------------------------------------- Old: ---- seatd-0.6.0.obscpio New: ---- seatd-0.6.2.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ seatd.spec ++++++ --- /var/tmp/diff_new_pack.JHEcS3/_old 2021-09-16 23:17:39.411983725 +0200 +++ /var/tmp/diff_new_pack.JHEcS3/_new 2021-09-16 23:17:39.415983730 +0200 @@ -17,7 +17,7 @@ Name: seatd -Version: 0.6.0 +Version: 0.6.2 Release: 0 Summary: Seat management daemon License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.JHEcS3/_old 2021-09-16 23:17:39.443983759 +0200 +++ /var/tmp/diff_new_pack.JHEcS3/_new 2021-09-16 23:17:39.443983759 +0200 @@ -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.6.0</param> + <param name="revision">0.6.2</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-replacement">\1</param> ++++++ seatd-0.6.0.obscpio -> seatd-0.6.2.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/.builds/alpine.yml new/seatd-0.6.2/.builds/alpine.yml --- old/seatd-0.6.0/.builds/alpine.yml 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/.builds/alpine.yml 2021-09-16 01:07:42.000000000 +0200 @@ -13,6 +13,7 @@ meson -Dlibseat-seatd=enabled -Dlibseat-builtin=enabled -Dlibseat-logind=disabled -Dexamples=enabled build seatd - build: | ninja -C build + sudo ninja -C build install - unittest: | ninja -C build test - scan-build: | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/.builds/archlinux.yml new/seatd-0.6.2/.builds/archlinux.yml --- old/seatd-0.6.0/.builds/archlinux.yml 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/.builds/archlinux.yml 2021-09-16 01:07:42.000000000 +0200 @@ -12,6 +12,7 @@ meson -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 - unittest: | ninja -C build test - scan-build: | diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/.builds/freebsd.yml new/seatd-0.6.2/.builds/freebsd.yml --- old/seatd-0.6.0/.builds/freebsd.yml 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/.builds/freebsd.yml 2021-09-16 01:07:42.000000000 +0200 @@ -14,6 +14,7 @@ rm -rf build meson -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 ./seatd/.builds/smoketest-seatd.sh - smoketest-builtin: | timeout -s KILL 30s ./seatd/.builds/smoketest-builtin.sh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/.builds/smoketest-seatd.sh new/seatd-0.6.2/.builds/smoketest-seatd.sh --- old/seatd-0.6.0/.builds/smoketest-seatd.sh 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/.builds/smoketest-seatd.sh 2021-09-16 01:07:42.000000000 +0200 @@ -13,7 +13,6 @@ fi export SEATD_LOGLEVEL=debug -export PATH=$(pwd)/build:$PATH # # Run simpletest a few times # @@ -21,7 +20,7 @@ while [ "$cnt" -lt 2 ] do echo "Simpletest run $((cnt+1))" - if ! sudo -E seatd-launch ./build/simpletest $file + if ! sudo -E ./build/seatd-launch ./build/simpletest $file then echo "Simpletest failed" exit 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/man/seatd-launch.1.scd new/seatd-0.6.2/man/seatd-launch.1.scd --- old/seatd-0.6.0/man/seatd-launch.1.scd 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/man/seatd-launch.1.scd 2021-09-16 01:07:42.000000000 +0200 @@ -27,20 +27,28 @@ also terminated. seatd requires root privileges to perform its tasks. This can be achieved -through SUID of seatd-launch, *sudo(8)*/*doas(1)*, or by running seatd-launch -as root. seatd-launch will drop privileges from the effective user to the real -user before running the specified command. If the real user is root, this is -simply a noop - only run directly as root if you intend for the specified -command to run as root as well. +through SUID of seatd-launch or by running seatd-launch as root. seatd-launch +will drop privileges from the effective user to the real user before running +the specified command. If the real user is root, this is simply a noop. You +should only run seatd-launch as root if you intend for the specified command to +run as root as well. seatd-launch serves a similar purpose to the libseat "builtin" backend, but is superior to it for two reasons: . The specified command never runs as root . The standard seatd executable and libseat backend is used +# EXIT STATUS + +seatd-launch exits with the status of its child. When the child terminates on +a signal _N_, seatd-launch exits with the status 128 + _N_. + +If seatd-launch fails because of another error, it exits with a non-zero +status. + # SEE ALSO -The libseat library, *<libseat.h>*, *seatd(1)* +The libseat library, *<libseat.h>*, *seatd*(1) # AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/man/seatd.1.scd new/seatd-0.6.2/man/seatd.1.scd --- old/seatd-0.6.0/man/seatd.1.scd 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/man/seatd.1.scd 2021-09-16 01:07:42.000000000 +0200 @@ -52,7 +52,7 @@ # SEE ALSO -The libseat library, *<libseat.h>* +The libseat library, *<libseat.h>*, *seatd-launch*(1) # AUTHORS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/meson.build new/seatd-0.6.2/meson.build --- old/seatd-0.6.0/meson.build 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/meson.build 2021-09-16 01:07:42.000000000 +0200 @@ -1,7 +1,7 @@ project( 'seatd', 'c', - version: '0.6.0', + version: '0.6.2', license: 'MIT', meson_version: '>=0.56.0', default_options: [ @@ -22,6 +22,8 @@ endif endif +seatdpath = '@0@/@1@/seatd'.format(get_option('prefix'), get_option('bindir')) + cc = meson.get_compiler('c') add_project_arguments(cc.get_supported_arguments( [ @@ -41,7 +43,8 @@ '-D_XOPEN_SOURCE=700', '-D__BSD_VISIBLE', '-DSEATD_VERSION="@0@"'.format(meson.project_version()), - '-DSEATD_DEFAULTPATH="@0@"'.format(defaultpath) + '-DSEATD_DEFAULTPATH="@0@"'.format(defaultpath), + '-DSEATD_INSTALLPATH="@0@"'.format(seatdpath), ]), language: 'c', ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/seatd-0.6.0/seatd-launch/seatd-launch.c new/seatd-0.6.2/seatd-launch/seatd-launch.c --- old/seatd-0.6.0/seatd-launch/seatd-launch.c 2021-09-11 14:02:44.000000000 +0200 +++ new/seatd-0.6.2/seatd-launch/seatd-launch.c 2021-09-16 01:07:42.000000000 +0200 @@ -41,6 +41,12 @@ } } + if (optind >= argc) { + fprintf(stderr, "A command must be specified\n\n%s", usage); + return 1; + } + char **command = &argv[optind]; + char sockbuf[256]; if (sockpath == NULL) { sprintf(sockbuf, "/tmp/seatd.%d.sock", getpid()); @@ -62,10 +68,19 @@ } else if (seatd_child == 0) { close(fds[0]); - char pipebuf[8]; - sprintf(pipebuf, "%d", fds[1]); + char pipebuf[16] = {0}; + snprintf(pipebuf, sizeof pipebuf, "%d", fds[1]); + + char *env[2] = {NULL, NULL}; + char loglevelbuf[32] = {0}; + char *cur_loglevel = getenv("SEATD_LOGLEVEL"); + if (cur_loglevel != NULL) { + snprintf(loglevelbuf, sizeof loglevelbuf, "SEATD_LOGLEVEL=%s", cur_loglevel); + env[0] = loglevelbuf; + } - execlp("seatd", "seatd", "-n", pipebuf, "-s", sockpath, NULL); + char *command[] = {"seatd", "-n", pipebuf, "-s", sockpath, NULL}; + execve(SEATD_INSTALLPATH, command, env); perror("Could not start seatd"); _exit(1); } @@ -139,7 +154,7 @@ goto error_seatd; } else if (child == 0) { setenv("SEATD_SOCK", sockpath, 1); - execv(argv[1], &argv[1]); + execvp(command[0], command); perror("Could not start target"); _exit(1); } @@ -155,13 +170,19 @@ } } - unlink(sockpath); - kill(seatd_child, SIGTERM); + if (unlink(sockpath) != 0) { + perror("Could not unlink socket"); + } + if (kill(seatd_child, SIGTERM) != 0) { + perror("Could not kill seatd"); + } if (WIFEXITED(status)) { return WEXITSTATUS(status); + } else if (WIFSIGNALED(status)) { + return 128 + WTERMSIG(status); } else { - return 1; + abort(); // unreachable } error_seatd: ++++++ seatd.obsinfo ++++++ --- /var/tmp/diff_new_pack.JHEcS3/_old 2021-09-16 23:17:39.563983883 +0200 +++ /var/tmp/diff_new_pack.JHEcS3/_new 2021-09-16 23:17:39.563983883 +0200 @@ -1,5 +1,5 @@ name: seatd -version: 0.6.0 -mtime: 1631361764 -commit: 3ad9164a896eacffd27588f5b1fd6ea3e0bcd92d +version: 0.6.2 +mtime: 1631747262 +commit: 0f20175752b7b11a5c66070b2dedc4cf8716d107
