#!/bin/sh # see: dh_installdeb(1) set -e # Do debconf stuff here . /usr/share/debconf/confmodule # summary of how this script can be called: # * `configure' # * `abort-upgrade' # * `abort-remove' `in-favour' # # * `abort-remove' # * `abort-deconfigure' `in-favour' # `removing' # # 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.11.10 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.11.10 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