Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2023-06-12 15:25:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Mon Jun 12 15:25:00 2023 rev:392 rq:1090446 version:253.5 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd.changes 2023-05-24 20:21:30.699875179 +0200 +++ /work/SRC/openSUSE:Factory/.systemd.new.15902/systemd.changes 2023-06-12 15:25:28.578705862 +0200 @@ -1,0 +2,20 @@ +Thu Jun 1 15:58:24 UTC 2023 - Franck Bui <f...@suse.com> + +- Import commit 07bb12a282b0ea378850934c4a76008b448b8bad (merge of v253.5) + + For a complete list of changes, visit: + https://github.com/openSUSE/systemd/compare/25aec157888f7aa9a36726962fcbbf2c74ead440...07bb12a282b0ea378850934c4a76008b448b8bad + +------------------------------------------------------------------- +Thu Jun 1 15:21:54 UTC 2023 - Franck Bui <f...@suse.com> + +- Reexecute user managers on package updates. + + For now we send signal to user instances to trigger their reexecution. It's + asynchronous but it shouldn't cause any problem in practice and it's probably + safer than triggering reexecution with "systemctl --user -M 1000@ + daemon-reexec" command. The latter command creates a new PAM session behind + the scene bringing with it the known issue (upstream issue #8598) with + "(sd-pam)" helper process when the PAM session is being closed. + +------------------------------------------------------------------- Old: ---- systemd-v253.4+suse.28.g25aec15788.tar.xz New: ---- systemd-v253.5+suse.29.g07bb12a282.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.HwHXju/_old 2023-06-12 15:25:30.682718310 +0200 +++ /var/tmp/diff_new_pack.HwHXju/_new 2023-06-12 15:25:30.702718429 +0200 @@ -19,7 +19,7 @@ %global flavor @BUILD_FLAVOR@%{nil} %define min_kernel_version 4.5 -%define archive_version +suse.28.g25aec15788 +%define archive_version +suse.29.g07bb12a282 %define _testsuitedir %{_systemd_util_dir}/tests %define xinitconfdir %{?_distconfdir}%{!?_distconfdir:%{_sysconfdir}}/X11/xinit @@ -73,7 +73,7 @@ Name: systemd%{?mini} URL: http://www.freedesktop.org/wiki/Software/systemd -Version: 253.4 +Version: 253.5 Release: 0 Summary: A System and Session Manager License: LGPL-2.1-or-later @@ -976,14 +976,18 @@ fi %post -# Make /etc/machine-id an empty file during package installation. On the first -# boot, machine-id is initialized and either committed (if /etc/ is writable) or -# the system/image runs with a transient machine ID, that changes on each boot -# (if the image is read-only). This is especially important for appliance builds -# to avoid an identical machine ID in all images. if [ $1 -eq 1 ]; then + # Make /etc/machine-id an empty file during package installation. On the + # first boot, machine-id is initialized and either committed (if /etc/ + # is writable) or the system/image runs with a transient machine ID, + # that changes on each boot (if the image is read-only). This is + # important for appliance builds to avoid an identical machine ID in all + # images. touch %{_sysconfdir}/machine-id chmod 444 %{_sysconfdir}/machine-id + + # Persistent journal is the default + mkdir -p %{_localstatedir}/log/journal fi %if %{without bootstrap} @@ -993,25 +997,8 @@ %endif systemctl daemon-reexec || : - -# Reexecute user manager instances (if any). It is asynchronous but it shouldn't -# be a problem in practice: a problem would arise only if the new version of a -# user service has a brand new option that is only understood by the latest -# version of the user manager and the user service is started before the user -# manager get reexecuted. But this case is very unlikely especially since we -# don't restart any user service for now. -# -# Before doing this, we unfortunately have to wait until users will reexec their -# user manager (by either rebooting or restarting their session) to a version -# that supports SIGRTMIN+25 otherwise sending the signal to an old version will -# kill the manager which means tearing down the user session. -# -# systemctl kill --kill-who=main --signal=SIGRTMIN+25 "user@*.service" || : - -if [ $1 -eq 1 ]; then - # Persistent journal is the default - mkdir -p %{_localstatedir}/log/journal -fi +# Reexecute the user managers (if any) +%{_systemd_util_dir}/systemd-update-helper user-reexec || : %if %{without filetriggers} # During package installation, the followings are for config files shipped by ++++++ systemd-update-helper ++++++ --- /var/tmp/diff_new_pack.HwHXju/_old 2023-06-12 15:25:31.330722143 +0200 +++ /var/tmp/diff_new_pack.HwHXju/_new 2023-06-12 15:25:31.330722143 +0200 @@ -121,7 +121,7 @@ fi ;; - user-reload-restart|user-reload|user-restart|user-reexec) + user-reexec) if [ -n "$*" ]; then echo >&2 "Unexpected arguments for '$command': $*" exit 2 @@ -129,16 +129,25 @@ [ -d /run/systemd/system ] || exit 0 - users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 's/.*user@([0-9]+).service.*/\1/p') + # Reexecute user manager instances (if any). It is asynchronous but it + # shouldn't be a problem in practice because systemd main package is not + # shipping any user services currently. A problem would arise only if a + # new version of a user service relied on an option that would be only + # understood by the latest version of the user manager and the user unit + # would be restarted before the user manager get reexecuted. + systemctl kill --kill-who=main --signal=SIGRTMIN+25 "user@*.service" + ;; - if [[ "$command" =~ reexec ]]; then - for user in $users; do - SYSTEMD_BUS_TIMEOUT=15s \ - systemctl --user -M "$user@" daemon-reexec & - done - wait + user-reload-restart|user-reload|user-restart) + if [ -n "$*" ]; then + echo >&2 "Unexpected arguments for '$command': $*" + exit 2 fi + [ -d /run/systemd/system ] || exit 0 + + users=$(systemctl list-units 'user@*' --legend=no | sed -n -r 's/.*user@([0-9]+).service.*/\1/p') + if [[ "$command" =~ reload ]]; then for user in $users; do SYSTEMD_BUS_TIMEOUT=15s \ ++++++ systemd-v253.4+suse.28.g25aec15788.tar.xz -> systemd-v253.5+suse.29.g07bb12a282.tar.xz ++++++ /work/SRC/openSUSE:Factory/systemd/systemd-v253.4+suse.28.g25aec15788.tar.xz /work/SRC/openSUSE:Factory/.systemd.new.15902/systemd-v253.5+suse.29.g07bb12a282.tar.xz differ: char 26, line 1 ++++++ triggers.systemd ++++++ --- /var/tmp/diff_new_pack.HwHXju/_old 2023-06-12 15:25:31.450722853 +0200 +++ /var/tmp/diff_new_pack.HwHXju/_new 2023-06-12 15:25:31.450722853 +0200 @@ -1,4 +1,4 @@ -# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- */ +# -*- Mode: rpm-spec; indent-tabs-mode: nil -*- # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd.