SHA256
1
0
forked from pool/systemd
systemd/fixlet-upgrade-from-sysvinit.sh
Franck Bui 932bbabfac - Make use of %_systemd_util_dir in the spec file.
- Rename the SUSE specific scripts used to fix up the system where systemd is
  installed on. Also rename the directory where these scripts are stored.

OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=1385
2023-05-04 10:06:44 +00:00

35 lines
1.2 KiB
Bash

#! /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.
#
# All hacks can potentially break the admin settings since they work in /etc...
#
#
# 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.
#
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