diff options
Diffstat (limited to 'debian.preinst')
-rwxr-xr-x | debian.preinst | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/debian.preinst b/debian.preinst new file mode 100755 index 000000000..b7a3b21bf --- /dev/null +++ b/debian.preinst @@ -0,0 +1,86 @@ +#!/bin/sh - + +if [ "$1" != "upgrade" ]; then exit 0; fi + +set -e +# i386elf: dpkg --assert-support-predepends + +oldver="$2" + +case "$oldver" in + 0.93.[01234]* | - ) ;; + * ) exit 0 ;; +esac + +echo ' +contemplating upgrade of dpkg from pre-0.93.50 version ...' + +trap 'es=$?; rm -f /tmp/bp.$$; exit $es' 0 + +perl -000 -ne 'print $x if m/^Package:\s+(\S+\n)/im && + ($x=$1) ne "dpkg\n" && + m/^Status:.*(unpacked|postinst)/im' \ + /var/lib/dpkg/status >/tmp/bp.$$ + +if test -s /tmp/bp.$$ +then + echo ' + +WARNING - have you read the release notes for this upgrade ? + +The following packages have been unpacked but not yet configured:' + echo '' `cat /tmp/bp.$$` + echo -n ' +If you proceed with the dpkg upgrade with these packages in this state +you will LOSE ANY CONFIGURATION CHANGES that have been made to their +configuration files. I recommend that you back out of the upgrade +now (see below) and then configure each of these packages using: + dpkg --configure --force-hold <package> + +If you do this and it fails for some packages they are broken anyway, in +which case you probably don'"'"'t have that much to lose by going ahead +with the upgrade. + +Type "yes" to confirm that you really want to do the upgrade in +spite of my warning above; if you give any other response we'"'"'ll back +off the upgrade to give you a chance to fix things. + +Continue with upgrade despite probable loss of config data ? ' + read response + case "$response" in + [Yy][Ye][Ss] ) echo OK ... ;; + * ) echo 'Aborting dpkg upgrade.'; exit 1 ;; + esac +fi + +echo -n ' +IMPORTANT - you must install this upgrade on its own, not together in +the same dpkg run as any other packages. Otherwise you risk losing +configuration information. + +If you say "no" to the question below we'"'"'ll back off the upgrade now, +and you can then do it later using: + dpkg --install dpkg-0.93.51.deb +If you'"'"'re not sure what to do, say "no", and then run that command +(with the appropriate dpkg-*.deb filename) from a root shell prompt. + +Are you installing only the dpkg upgrade in this dpkg run ? [y/n] ' +read response +case "$response" in +[yY]* | '' ) + echo 'OK, going ahead.' + ;; +* ) + echo ' +Aborting dpkg upgrade (you will see error messages from dpkg about this).' + exit 1 + ;; +esac + +if [ -d /usr/lib/dpkg/methods/hd ] +then + echo 'Removing obsolete /usr/lib/dpkg/methods/hd ...' + rm -r /usr/lib/dpkg/methods/hd +fi + +exit 0 |