summaryrefslogtreecommitdiffstats
path: root/debian/libpam-runtime.postinst
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/libpam-runtime.postinst41
1 files changed, 41 insertions, 0 deletions
diff --git a/debian/libpam-runtime.postinst b/debian/libpam-runtime.postinst
new file mode 100644
index 0000000..667b33a
--- /dev/null
+++ b/debian/libpam-runtime.postinst
@@ -0,0 +1,41 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+
+calculate_md5sum()
+{
+ configfile="$1"
+ sed -n -e'1,/# here are the per-package modules (the "Primary" block)/p;
+ /# here.s the fallback if no module succeeds/,/# and here are more per-package modules (the "Additional" block)/p;
+ /# end of pam-auth-update config/,$p' \
+ "$DPKG_ROOT"/etc/pam.d/"$configfile" | md5sum | awk '{ print $1 }'
+}
+
+# If the user has removed the config file, respect this sign of dementia
+# -- only create on package install.
+force=
+if [ -z "$2" ] || dpkg --compare-versions "$2" lt 1.0.1-11
+then
+ force=--force
+ for configfile in common-auth common-account common-session \
+ common-password
+ do
+ if [ -f "$DPKG_ROOT"/etc/pam.d/$configfile ] && \
+ ! fgrep -q $(calculate_md5sum $configfile) \
+ "$DPKG_ROOT"/usr/share/pam/$configfile.md5sums 2>/dev/null
+ then
+ force=
+ fi
+ done
+fi
+
+pam-auth-update --root "$DPKG_ROOT" --package $force
+
+if [ -n "$force" ]; then
+ rm -f "$DPKG_ROOT"/etc/pam.d/common-auth.pam-old \
+ "$DPKG_ROOT"/etc/pam.d/common-account.pam-old \
+ "$DPKG_ROOT"/etc/pam.d/common-password.pam-old \
+ "$DPKG_ROOT"/etc/pam.d/common-session.pam-old
+fi
+
+#DEBHELPER#