73 lines
3.2 KiB
Bash
Executable file
73 lines
3.2 KiB
Bash
Executable file
#!/bin/sh
|
|
# see: dh_installdeb(1)
|
|
|
|
set -e
|
|
|
|
# summary of how this script can be called:
|
|
# * <new-preinst> `install'
|
|
# * <new-preinst> `install' <old-version>
|
|
# * <new-preinst> `upgrade' <old-version>
|
|
# * <old-preinst> `abort-upgrade' <new-version>
|
|
# for details, see http://www.debian.org/doc/debian-policy/ or
|
|
# the debian-policy package
|
|
|
|
|
|
case "$1" in
|
|
install|upgrade)
|
|
for cmd in halt poweroff reboot shutdown coldreboot ; do
|
|
# DEP17 M18 duplicated diversion. Once trixie is released,
|
|
# remove the aliased diversion in postinst and only have
|
|
# the canonical one with --rename here.
|
|
truename="$(dpkg-divert --truename "/sbin/$cmd")"
|
|
if test "$(dpkg-divert --truename "/usr/sbin/$cmd")" != "/usr/sbin/$cmd"; then
|
|
: # Canonically diverted already. Nothing to rename.
|
|
elif test "$truenam" = "/sbin/$cmd.no-molly-guard.usr-is-merged"; then
|
|
: # Aliased diversion as expected. Nothing to rename.
|
|
elif test "$truename" != "/sbin/$cmd"; then
|
|
# Aliased diversion with earlier target. Fix target.
|
|
dpkg-divert --remove --no-rename "/sbin/$cmd"
|
|
if test -e "$DPKG_ROOT$truename" -o -h "$DPKG_ROOT$truename"; then
|
|
mv "$DPKG_ROOT$truename" "$DPKG_ROOT/sbin/$cmd.no-molly-guard.usr-is-merged"
|
|
fi
|
|
elif dpkg -S "/sbin/$cmd" >/dev/null 2>&1; then
|
|
# Not diverted yet. Installed as aliased.
|
|
mv "$DPKG_ROOT/sbin/$cmd" "$DPKG_ROOT/sbin/$cmd.no-molly-guard.usr-is-merged"
|
|
elif test -e "$DPKG_ROOT/usr/sbin/$cmd" -o -h "$DPKG_ROOT/usr/sbin/$cmd"; then
|
|
# Not diverted yet. Installed as canonical.
|
|
mv "$DPKG_ROOT/usr/sbin/$cmd" "$DPKG_ROOT/usr/sbin/$cmd.no-molly-guard"
|
|
fi
|
|
# All necessary moving has been done. Hence --no-rename.
|
|
dpkg-divert --add --no-rename --divert "/sbin/$cmd.no-molly-guard.usr-is-merged" "/sbin/$cmd"
|
|
dpkg-divert --add --no-rename --divert "/usr/sbin/$cmd.no-molly-guard" "/usr/sbin/$cmd"
|
|
done
|
|
|
|
for cmd in pm-hibernate pm-suspend pm-suspend-hybrid ; do
|
|
truename="$(dpkg-divert --truename "/usr/sbin/$cmd")"
|
|
if test "$truename" = "/usr/sbin/$cmd"; then
|
|
dpkg-divert --package molly-guard --divert "/usr/sbin/$cmd.no-molly-guard" --rename "/usr/sbin/$cmd"
|
|
elif test "$truename" != "/usr/sbin/$cmd.no-molly-guard"; then
|
|
# Upgrading from pre-trixie. Update the diversion target from aliased to canonical.
|
|
dpkg-divert --package molly-guard --no-rename --remove "/usr/sbin/$cmd"
|
|
dpkg-divert --package molly-guard --divert "/usr/sbin/$cmd.no-molly-guard" --no-rename --add "/usr/sbin/$cmd"
|
|
if test -e "$truename" -o -h "$truename"; then
|
|
mv "$truename" "/usr/sbin/$cmd.no-molly-guard"
|
|
fi
|
|
fi
|
|
done
|
|
;;
|
|
|
|
abort-upgrade)
|
|
;;
|
|
|
|
*)
|
|
echo "preinst 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
|