diff options
-rw-r--r-- | debian/initramfs-tools.postinst | 11 | ||||
-rw-r--r-- | debian/initramfs-tools.triggers | 1 | ||||
-rwxr-xr-x | update-initramfs | 13 |
3 files changed, 23 insertions, 2 deletions
diff --git a/debian/initramfs-tools.postinst b/debian/initramfs-tools.postinst index 2f36f3f..6ecfe2e 100644 --- a/debian/initramfs-tools.postinst +++ b/debian/initramfs-tools.postinst @@ -6,9 +6,16 @@ if [ ! -e /etc/initramfs-tools/modules ]; then cp /usr/share/initramfs-tools/modules /etc/initramfs-tools/ fi -# Regenerate initramfs on upgrade -if [ "$1" = "configure" ] && [ -n "$2" ]; then +# Regenerate initramfs whenever we go to dpkg state `installed' + +if [ "x$1" != xtriggered ] && \ + dpkg --compare-versions "$DPKG_RUNNING_VERSION" ge '1.14.5ubuntu10~~' +then + # this activates the trigger, if triggers are working update-initramfs -u +else + # force it to actually happen + DPKG_MAINTSCRIPT_PACKAGE='' update-initramfs -u fi #DEBHELPER# diff --git a/debian/initramfs-tools.triggers b/debian/initramfs-tools.triggers new file mode 100644 index 0000000..860c664 --- /dev/null +++ b/debian/initramfs-tools.triggers @@ -0,0 +1 @@ +interest update-initramfs diff --git a/update-initramfs b/update-initramfs index 42f2831..6e8e7aa 100755 --- a/update-initramfs +++ b/update-initramfs @@ -4,6 +4,7 @@ STATEDIR=/var/lib/initramfs-tools BOOTDIR=/boot CONF=/etc/initramfs-tools/update-initramfs.conf KPKGCONF=/etc/kernel-img.conf +USETRIGGERS=true mode="" version="" @@ -11,6 +12,18 @@ set -e [ -r ${CONF} ] && . ${CONF} +if $USETRIGGERS \ + && [ x"$DPKG_MAINTSCRIPT_PACKAGE" != x ] \ + && [ $# = 1 ] \ + && [ x"$1" = x-u ] \ + && dpkg-trigger --check-supported 2>/dev/null +then + if dpkg-trigger --no-await update-initramfs; then + echo "update-initramfs: deferring update (trigger activated)" + exit 0 + fi +fi + usage() { if [ -n "${1}" ]; then |