summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@debian.org>2008-04-02 15:26:52 -0400
committermaximilian attems <max@stro.at>2008-04-02 21:52:03 +0200
commit5dfdae9ae274c271943c9bee9ddc3db7fd255695 (patch)
tree5f212ae947554b64c399a0021e162ffc9bac9cd2
parente5f8a9faad64438852a6657ed1afcc0d45f30926 (diff)
downloadinitramfs-tools-5dfdae9ae274c271943c9bee9ddc3db7fd255695.tar.gz
initramfs-tools-5dfdae9ae274c271943c9bee9ddc3db7fd255695.zip
update-initramfs: use dpkg-trigger
This is a lightly modified version of Ian Jackson's original patch, incorporating maximilian attems's comments. dh_installdeb automatically installs the triggers file, so the rules file does not need to be changed.
-rw-r--r--debian/initramfs-tools.postinst11
-rw-r--r--debian/initramfs-tools.triggers1
-rwxr-xr-xupdate-initramfs13
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