168 lines
7.0 KiB
Bash
Executable File
168 lines
7.0 KiB
Bash
Executable File
#!/bin/sh
|
|
# see: dh_installdeb(1)
|
|
|
|
set -e
|
|
|
|
# Do debconf stuff here
|
|
. /usr/share/debconf/confmodule
|
|
|
|
# summary of how this script can be called:
|
|
# * <postinst> `configure' <most-recently-configured-version>
|
|
# * <old-postinst> `abort-upgrade' <new version>
|
|
# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
|
|
# <new-version>
|
|
# * <postinst> `abort-remove'
|
|
# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
|
|
# <failed-install-package> <version> `removing'
|
|
# <conflicting-package> <version>
|
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
|
|
rm_known () {
|
|
if [ -e "$1" ]; then
|
|
if egrep -q "^$(md5sum $1 | cut -d' ' -f1)" "$2"; then
|
|
rm "$1"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
# ensure the right permissions for the logdir (#757438)
|
|
if [ -d /var/log/unattended-upgrades ]; then
|
|
chown root:adm /var/log/unattended-upgrades || true
|
|
chmod 0750 /var/log/unattended-upgrades
|
|
fi
|
|
|
|
uu_running() {
|
|
python3 -c 'import apt; import apt_pkg; import sys; sys.exit(1 if apt_pkg.get_lock("/var/run/unattended-upgrades.lock") >= 0 else 0)'
|
|
}
|
|
|
|
case "$1" in
|
|
configure)
|
|
# *sigh* typo in filename in version 0.51ubuntu1
|
|
if [ -e /etc/pm/sleep.d/10_unatteded-upgrades-hibernate ]; then
|
|
rm -f /etc/pm/sleep.d/10_unatteded-upgrades-hibernate
|
|
fi
|
|
|
|
db_get unattended-upgrades/enable_auto_updates || true
|
|
CONFIG="/etc/apt/apt.conf.d/20auto-upgrades"
|
|
if [ "${RET}" = "true" ]; then
|
|
NEWFILE="/usr/share/unattended-upgrades/20auto-upgrades"
|
|
ucf --three-way --debconf-ok "$NEWFILE" "$CONFIG"
|
|
ucfr unattended-upgrades "$CONFIG"
|
|
elif [ "${RET}" = "false" ] && [ -e "$CONFIG" ]; then
|
|
# disable again
|
|
NEWFILE="/usr/share/unattended-upgrades/20auto-upgrades-disabled"
|
|
ucf --three-way --debconf-ok "$NEWFILE" "$CONFIG"
|
|
ucfr unattended-upgrades "$CONFIG"
|
|
fi
|
|
|
|
CONFIG="/etc/apt/apt.conf.d/50unattended-upgrades"
|
|
NEWFILE="/usr/share/unattended-upgrades/50unattended-upgrades"
|
|
dpkg-maintscript-helper rm_conffile $CONFIG 0.86.4~ -- "$@"
|
|
# also fix conffile which was not properly migrated to ucf earlier
|
|
if dpkg --compare-versions "$2" lt "1.8~" \
|
|
&& [ -e $CONFIG.ucftmp ]; then
|
|
dpkg-maintscript-helper rm_conffile $CONFIG -- "$@"
|
|
mv $CONFIG.ucftmp $CONFIG
|
|
rm_known "$CONFIG.dpkg-bak" "$NEWFILE.md5sum"
|
|
rm_known "$CONFIG.ucf-old" "$NEWFILE.md5sum"
|
|
fi
|
|
ucf --three-way --debconf-ok "$NEWFILE" "$CONFIG"
|
|
ucfr unattended-upgrades "$CONFIG"
|
|
|
|
# Recover from broken dh_installinit override in versions < 0.93.1+nmu1 (or < 0.93.1ubuntu3 in Ubuntu)
|
|
if ([ "$(lsb_release -i -s)" != "Ubuntu" ] \
|
|
&& ( dpkg --compare-versions "$2" lt "0.93.1+nmu1" \
|
|
|| (dpkg --compare-versions "$2" ge "1.5~" \
|
|
&& dpkg --compare-versions "$2" lt "1.7~" ) ) ) || \
|
|
([ "$(lsb_release -i -s)" = "Ubuntu" ] \
|
|
&& ( dpkg --compare-versions "$2" lt "0.93.1ubuntu3" \
|
|
|| (dpkg --compare-versions "$2" ge "1.5ubuntu1~" \
|
|
&& dpkg --compare-versions "$2" lt "1.5ubuntu4~" ) \
|
|
|| (dpkg --compare-versions "$2" ge "1.7~" \
|
|
&& dpkg --compare-versions "$2" lt "1.7ubuntu1~" ) ) ); then
|
|
if [ -f /etc/rc0.d/K[0-9][0-9]unattended-upgrades ] \
|
|
&& [ -f /etc/rc6.d/K[0-9][0-9]unattended-upgrades ] ; then
|
|
update-rc.d -f unattended-upgrades remove
|
|
fi
|
|
# If running systemd, explicitely disable the service otherwise
|
|
# the shutdown.target symlink will remain (See Debian Bug #797108)
|
|
if [ -d /run/systemd/system ]; then
|
|
if deb-systemd-helper --quiet was-enabled unattended-upgrades.service \
|
|
|| (dpkg --compare-versions "$2" ge "1.7~" \
|
|
&& dpkg --compare-versions "$2" lt "1.7ubuntu1~"); then
|
|
deb-systemd-helper disable unattended-upgrades.service >/dev/null || true
|
|
fi
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
abort-upgrade|abort-remove|abort-deconfigure)
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
# dh_installdeb will replace this with shell code automatically
|
|
# generated by other debhelper scripts.
|
|
|
|
# Automatically added by dh_systemd_enable/13.13ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
# The following line should be removed in trixie or trixie+1
|
|
deb-systemd-helper unmask 'unattended-upgrades.service' >/dev/null || true
|
|
|
|
# was-enabled defaults to true, so new installations run enable.
|
|
if deb-systemd-helper --quiet was-enabled 'unattended-upgrades.service'; then
|
|
# Enables the unit on first installation, creates new
|
|
# symlinks on upgrades if the unit file has changed.
|
|
deb-systemd-helper enable 'unattended-upgrades.service' >/dev/null || true
|
|
else
|
|
# Update the statefile to add new symlinks (if any), which need to be
|
|
# cleaned up on purge. Also remove old symlinks.
|
|
deb-systemd-helper update-state 'unattended-upgrades.service' >/dev/null || true
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
# Automatically added by dh_installinit/13.13ubuntu1
|
|
if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
|
|
if [ -x "/etc/init.d/unattended-upgrades" ]; then
|
|
update-rc.d unattended-upgrades defaults >/dev/null || exit 1
|
|
fi
|
|
fi
|
|
# End automatically added section
|
|
|
|
|
|
# Explicitly enable and start the service. Debian Bug #797108 for
|
|
# deb-systemd-helper fails to correctly enable the unit. It checks for
|
|
# enablement using the content of the WantedBy= which has changed so it
|
|
# sees the service as disable and will not enable it.
|
|
case "$1" in
|
|
configure)
|
|
if ( ([ "$(lsb_release -i -s)" != "Ubuntu" ] \
|
|
&& ( dpkg --compare-versions "$2" lt "0.93.1+nmu1" \
|
|
|| (dpkg --compare-versions "$2" ge "1.5~" \
|
|
&& dpkg --compare-versions "$2" lt "1.7~" ) ) ) || \
|
|
([ "$(lsb_release -i -s)" = "Ubuntu" ] \
|
|
&& ( dpkg --compare-versions "$2" lt "0.93.1ubuntu3" \
|
|
|| (dpkg --compare-versions "$2" ge "1.5ubuntu1~" \
|
|
&& dpkg --compare-versions "$2" lt "1.5ubuntu4~" ) \
|
|
|| (dpkg --compare-versions "$2" ge "1.7~" \
|
|
&& dpkg --compare-versions "$2" lt "1.7ubuntu1~" ) ) ) ) \
|
|
&& [ -d /run/systemd/system ]; then
|
|
# workaround systemd bug with enable --now which
|
|
# fails to start the unit
|
|
systemctl enable unattended-upgrades >&2 || true
|
|
if uu_running; then
|
|
echo "Skipping starting unattended-upgrades.service because unattended-upgrades is running" >&2
|
|
else
|
|
deb-systemd-invoke start unattended-upgrades.service >&2 || true
|
|
fi
|
|
fi
|
|
;;
|
|
esac
|
|
exit 0
|