summaryrefslogtreecommitdiffstats
path: root/debian/postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/postinst')
-rw-r--r--debian/postinst105
1 files changed, 105 insertions, 0 deletions
diff --git a/debian/postinst b/debian/postinst
new file mode 100644
index 0000000..258bb2c
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,105 @@
+#!/bin/sh
+# postinst script for procps
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+# quoting from the policy:
+# Any necessary prompting should almost always be confined to the
+# post-installation script, and should be protected with a conditional
+# so that unnecessary prompting doesn't happen if a package's
+# installation fails and the `postinst' is called with `abort-upgrade',
+# `abort-remove' or `abort-deconfigure'.
+
+# Move a conffile without triggering a dpkg question
+mv_conffile() {
+ OLDCONFFILE="$1"
+ NEWCONFFILE="$2"
+
+ if [ -e "$OLDCONFFILE" ]; then
+ echo "Preserving user changes to $NEWCONFFILE ..."
+ mv -f "$NEWCONFFILE" "$NEWCONFFILE".dpkg-new
+ mv -f "$OLDCONFFILE" "$NEWCONFFILE"
+ fi
+}
+
+# update alternative, if it exists
+check_alternatives() {
+ BINNAME="$1"
+ BINPATH="$2"
+ MANSEC="$3"
+ if [ -e "$BINPATH"/"$BINNAME".procps ] ; then
+ update-alternatives --install "$BINPATH"/"$BINNAME" "$BINNAME" \
+ "$BINPATH"/"$BINNAME".procps 50 \
+ --slave /usr/share/man/man"$MANSEC"/"$BINNAME"."$MANSEC".gz "$BINNAME"."$MANSEC".gz \
+ /usr/share/man/man"$MANSEC"/"$BINNAME".procps."$MANSEC".gz
+ fi
+}
+case "$1" in
+ configure|abort-remove|abort-deconfigure)
+ if [ -e /etc/psdevtab ] ; then
+ rm -f /etc/psdevtab
+ fi
+ if [ -e /etc/psdatabase ]
+ then
+ rm -f /etc/psdatabase
+ fi
+ # Remove old procps init.d script, if it exists Closes: #55137
+ if [ -L /etc/rcS.d/S30procps.sh ]
+ then
+ update-rc.d -f procps.sh remove >/dev/null
+ fi
+ # and if that didn't work Closes: #92184 (#234306 with -L )
+ if [ -L /etc/rcS.d/S30procps.sh ]
+ then
+ rm -f /etc/rcS.d/S30procps.sh
+ fi
+ # Remove moved procps.sh file, if it is there
+ if dpkg --compare-versions "$2" le "1:3.2.7-3"; then
+ mv_conffile "/etc/init.d/procps.sh" "/etc/init.d/procps"
+ fi
+
+ # Remove the old w alternative as procps is the only one
+ if dpkg --compare-versions "$2" le "2:3.3.17-4"; then
+ update-alternatives --remove w /usr/bin/w.procps
+ fi
+
+
+ # Do alternatives for uptime kill vmstat and ps, if required
+ check_alternatives "uptime" "/usr/bin" "1"
+ check_alternatives "kill" "/usr/bin" "1"
+ check_alternatives "vmstat" "/usr/bin" "8"
+ check_alternatives "ps" "/bin" "1"
+
+ ;;
+
+ abort-upgrade)
+ # Nothing to do
+ ;;
+
+ *)
+ 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.
+
+#DEBHELPER#
+
+exit 0
+
+