diff options
Diffstat (limited to 'debian/postinst')
-rw-r--r-- | debian/postinst | 105 |
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 + + |