summaryrefslogtreecommitdiffstats
path: root/debian/bfh-container.preinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/bfh-container.preinst')
-rwxr-xr-xdebian/bfh-container.preinst41
1 files changed, 38 insertions, 3 deletions
diff --git a/debian/bfh-container.preinst b/debian/bfh-container.preinst
index 335d160..2a6624f 100755
--- a/debian/bfh-container.preinst
+++ b/debian/bfh-container.preinst
@@ -4,16 +4,51 @@ set -e
case "${1}" in
install|upgrade)
- mkdir -p /lib/container/divert
+ mkdir -p /usr/lib/container/divert
for FILE in halt poweroff reboot shutdown coldreboot
do
- dpkg-divert --package bfh-container --quiet --add --rename --divert /lib/container/divert/${FILE}.orig /sbin/${FILE}
+ TRUENAME_USR="$(dpkg-divert --truename "/usr/sbin/${FILE}")"
+ TRUENAME_ALIAS="$(dpkg-divert --truename "/sbin/${FILE}")"
+ RENAME_FLAG="--no-rename"
+
+ if [ "${TRUENAME_USR}" = "/usr/sbin/${FILE}" ]
+ then
+ if [ "${TRUENAME_ALIAS}" = "/sbin/${FILE}" ]
+ then
+ RENAME_FLAG="--rename"
+ fi
+
+ dpkg-divert --package bfh-container --quiet --add "${RENAME_FLAG}" --divert "/usr/lib/container/divert/${FILE}.orig" "/usr/sbin/${FILE}"
+ fi
+
+ # DEP17 M18 duplicated diversion, can be removed after trixie.
+ if [ "${TRUENAME_ALIAS}" = "/sbin/${FILE}" ]
+ then
+ dpkg-divert --package bfh-container --quiet --add "${RENAME_FLAG}" --divert "/lib/container/divert/${FILE}.orig.usr-is-merged" "/sbin/${FILE}"
+ elif [ "${TRUENAME_ALIAS}" != "/lib/container/divert/${FILE}.orig.usr-is-merged" ]
+ then
+ dpkg-divert --package bfh-container --quiet --remove --no-rename "/sbin/${FILE}"
+ dpkg-divert --package bfh-container --quiet --add --no-rename --divert "/lib/container/divert/${FILE}.orig.usr-is-merged" "/sbin/${FILE}"
+
+ if [ -e "${TRUENAME_ALIAS}" ] || [ -h "${TRUENAME_ALIAS}" ]
+ then
+ mv "${TRUENAME_ALIAS}" "/lib/container/divert/${FILE}.orig.usr-is-merged"
+ fi
+ fi
done
for FILE in pm-hibernate pm-suspend pm-suspend-hybrid
do
- dpkg-divert --package bfh-container --quiet --add --rename --divert /lib/container/divert/${FILE}.orig /usr/sbin/${FILE}
+ TRUENAME_USR="$(dpkg-divert --truename "/usr/sbin/${FILE}")"
+
+ if [ "${TRUENAME_USR}" = "/lib/container/divert/${FILE}.orig" ]
+ then
+ dpkg-divert --package bfh-container --quiet --remove --no-rename "/usr/sbin/${FILE}"
+ dpkg-divert --package bfh-container --quiet --add --no-rename --divert "/usr/lib/container/divert/${FILE}.orig" "/usr/sbin/${FILE}"
+ else
+ dpkg-divert --package bfh-container --quiet --add --rename --divert "/usr/lib/container/divert/${FILE}.orig" "/usr/sbin/${FILE}"
+ fi
done
;;