Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2022-03-09 18:47:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new.2349 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Wed Mar 9 18:47:02 2022 rev:351 rq:960154 version:249.10 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd.changes 2022-02-26 17:02:27.291539448 +0100 +++ /work/SRC/openSUSE:Factory/.systemd.new.2349/systemd.changes 2022-03-11 11:36:31.570285575 +0100 @@ -1,0 +2,16 @@ +Tue Mar 8 07:41:41 UTC 2022 - Franck Bui <f...@suse.com> + +- Fix the default target when it's been incorrectly set to one of the runlevel + targets (bsc#1196567) + + The script 'upgrade-from-pre-210.sh' used to initialize the default target + during migration from sysvinit to systemd. However it created symlinks to + runlevel targets, which are deprecated and might be missing when + systemd-sysvcompat package is not installed. If such symlinks are found the + script now renames them to point to 'true' systemd target units. + +- When migrating from sysvinit to systemd (it probably won't happen anymore), + let's use the default systemd target, which is the graphical.target one. In + most cases it will do the right thing anyway. + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ scripts-systemd-upgrade-from-pre-210.sh ++++++ --- /var/tmp/diff_new_pack.4H8AiW/_old 2022-03-11 11:36:33.702288076 +0100 +++ /var/tmp/diff_new_pack.4H8AiW/_new 2022-03-11 11:36:33.706288081 +0100 @@ -1,31 +1,35 @@ #! /bin/bash # -# This script is supposed to be executed from the %post section. It -# contains all hacks needed to update a system which was running -# systemd < v210. This also includes systems migrating from SysV. +# This script is supposed to be executed from the %post section. It contains all +# hacks needed to update a system which was running systemd < v210. This also +# includes systems migrating from SysV. +# +# All hacks can potentially break the admin settings since they work in /etc... # -# All hacks can potentially break the admin settings since they work -# in /etc... -# Try to read default runlevel from the old inittab if it exists. If -# it fails fallback to runlevel 3 which should still be better than -# the rescue shell. -# -# Note: /etc/inittab was part of the aaa_base package which can be -# upgraded before systemd is. Therefore this file is likely to be -# missing. -if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then - runlevel=$(sed -n -r "s/^id:([[:digit:]]):initdefault:/\1/p" /etc/inittab) - : ${runlevel:=3} - echo "Initializing default.target to runlevel${runlevel}.target" - ln -s /usr/lib/systemd/system/runlevel${runlevel}.target /etc/systemd/system/default.target +# +# During migration from sysvinit to systemd, we used to set the systemd default +# target to one of the 'runlevel*.target' after reading the default runlevel +# from /etc/inittab. We don't do that anymore because in most cases using the +# graphical.target target, which is the default, will do the right +# thing. Moreover the runlevel targets are considered as deprecated, so we +# convert them into "true" systemd targets instead here. +# +if target=$(readlink /etc/systemd/system/default.target); then + target=$(basename $target) + case "$target" in + runlevel?.target) + echo "Default systemd target is '$target' but use of runlevels is deprecated" + systemctl --no-reload set-default $target + esac fi -# migrate any symlink which may refer to the old path +# +# Migrate any symlink which may refer to the old path. +# for f in $(find /etc/systemd/system -type l -xtype l); do new_target="/usr$(readlink $f)" [ -f "$new_target" ] && ln -s -f $new_target $f done -