1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
#!/bin/mksh
set -e
# This maintainer script can be called the following ways:
#
# * new-preinst "install" [$old_version]
# * new-preinst "install" [$old_version $new_version] # 1.18.5, stretch
# * new-preinst "upgrade" [$old_version]
# * new-preinst "upgrade" $old_version $new_version # 1.18.5, stretch
# * old-preinst "abort-upgrade" $new_version
# Essential packages and Pre-Depends are available. Pre-Depends have
# been configured once, but may be unpacked or Half-Configured only,
# or, for "abort-upgrade", Half-Installed if their upgrade failed.
function stripcomments {
set -o noglob
while read _line; do
_line=${_line%%#*}
[[ -z $_line ]] || print -r -- $_line
done
}
function domigrate {
local m m1=$1 m2=$2 p=$3
[[ -e $p ]] || return 0
print -ru2 "I: rng-tools: migrating old init script"
m=$(md5sum <"$p")
if [[ $m = "$m1"* || $m = "$m2"* ]]; then
# identical to shipped files, 2-unofficial-mt.14-1 or 5-1
rm -- "$p"
print -ru2 "I: rng-tools: old init script pruned (unmodified)"
return 0
fi
m=$(stripcomments <"$p")
if [[ -z $m ]]; then
# empty, other than, perhaps, comments
rm -- "$p"
print -ru2 "I: rng-tools: old init script pruned (empty)"
return 0
fi
mv -- "$p" "$p.dpkg-bak"
p=$p.dpkg-bak
print -ru2 "W: local changes saved as ${p@Q}"
}
case $1 in
(install|upgrade)
# avoid insserv issue by unregistring the previous initscript
(update-rc.d rng-tools remove >/dev/null 2>&1 || :)
# move this away early, so rng-tools-debian installation works
domigrate 5bdcb7480d7195b858d67d5d8e7e582d 738e334933bd5584a150040d955f4137 \
/etc/init.d/rng-tools
;;
(abort-upgrade)
;;
(*)
echo >&2 "E: preinst called with unknown subcommand '$1'"
exit 1
;;
esac
# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.
#DEBHELPER#
exit 0
|