systemd/debian/systemd.preinst
Jon Severinsson bb8785d8c4 Do not force-enable default-on services on every upgrade.
Also drops the systemd-networkd, systemd-resolved and systemd-timesyncd
from the set of default services.
2014-08-10 11:04:26 +02:00

63 lines
2.2 KiB
Bash

#! /bin/sh
set -e
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt "44-3"; then
rm -f /lib/lsb/init-functions
dpkg-divert --remove --package systemd --rename \
--divert /lib/lsb/init-functions.systemd /lib/lsb/init-functions
fi
# This function copies a unit file to /run/systemd/system/ (unless the target
# path already exists).
# This is necessary at least for certain .mount units when upgrading from 44 to
# 204, see http://bugs.debian.org/723936
preserve_unit() {
if [ ! -e /run/systemd/system/$1 ]; then
cp /lib/systemd/system/$1 /run/systemd/system/$1
fi
}
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt "204-1" && [ -d /run/systemd/system ]; then
preserve_unit "var-lock.mount"
preserve_unit "var-run.mount"
fi
# When the [Install] section of an enabled unit changes `systemctl enable` has
# to be re-run in postinst. As systemctl is-enabled will use the new unit files
# in postinst we must run it before unpacking it and remember the results.
save_is_enabled() {
if systemctl --quiet is-enabled $1 2>/dev/null ; then
echo $1 >>/run/systemd/was-enabled
fi
}
if [ "$1" = "install" ] || [ "$1" = "upgrade" ] && dpkg --compare-versions "$2" ge "204"; then
[ -d /run/systemd ] || mkdir /run/systemd
rm -f /run/systemd/was-enabled
save_is_enabled console-getty.service
save_is_enabled console-shell.service
save_is_enabled debug-shell.service
save_is_enabled getty@tty1.service
save_is_enabled remote-fs.target
save_is_enabled rescue.target
save_is_enabled systemd-readahead-collect.service
save_is_enabled systemd-readahead-replay.service
if dpkg --compare-versions "$2" ge "204-8~" ; then
save_is_enabled tmp.mount
fi
if dpkg --compare-versions "$2" ge "209" ; then
save_is_enabled systemd-networkd.service
fi
if dpkg --compare-versions "$2" ge "211" ; then
save_is_enabled systemd-networkd-wait-online.service
fi
if dpkg --compare-versions "$2" ge "213" ; then
save_is_enabled systemd-resolved.service
save_is_enabled systemd-timesyncd.service
fi
fi
#DEBHELPER#