summaryrefslogtreecommitdiffstats
path: root/debian/initramfs-tools.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/initramfs-tools.postinst')
-rw-r--r--debian/initramfs-tools.postinst47
1 files changed, 47 insertions, 0 deletions
diff --git a/debian/initramfs-tools.postinst b/debian/initramfs-tools.postinst
new file mode 100644
index 0000000..4e35c79
--- /dev/null
+++ b/debian/initramfs-tools.postinst
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+set -e
+
+mvverbose=-v
+
+# from dpkg-maintscript-helper, modified
+ensure_package_owns_file() {
+ local PACKAGE="$1"
+ local FILE="$2"
+
+ dpkg-query -L "$PACKAGE" | grep -F -q -x "$FILE"
+}
+
+# from dpkg-maintscript-helper, modified
+finish_mv_conffile() {
+ local CONFFILE="$1"
+ local PACKAGE="$2"
+
+ rm $mvverbose -f "$CONFFILE.dpkg-remove"
+
+ [ -e "$CONFFILE.dpkg-backup" ] || return 0
+ ensure_package_owns_file "$PACKAGE" "$CONFFILE" || return 0
+
+ echo "Preserving user changes to $CONFFILE (now owned by $PACKAGE)..."
+ if [ -e "$CONFFILE" ]; then
+ mv $mvverbose -f "$CONFFILE" "$CONFFILE.dpkg-new"
+ fi
+ mv $mvverbose -f "$CONFFILE.dpkg-backup" "$CONFFILE"
+}
+
+# If initramfs-tools-core was fully upgraded to 0.123 before our
+# preinst ran, we need to move initramfs.conf back into place.
+if [ "$1" = configure ] && [ -n "$2" ] && dpkg --compare-versions "$2" lt 0.123~; then
+ finish_mv_conffile /etc/initramfs-tools/initramfs.conf initramfs-tools-core
+fi
+
+# Regenerate initramfs whenever we go to dpkg state `installed'
+if [ "x$1" != xtriggered ]; 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#