diff options
Diffstat (limited to 'debian/bfh-container.preinst')
-rwxr-xr-x | debian/bfh-container.preinst | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/debian/bfh-container.preinst b/debian/bfh-container.preinst index 335d160..ab15a9c 100755 --- a/debian/bfh-container.preinst +++ b/debian/bfh-container.preinst @@ -8,12 +8,47 @@ case "${1}" in 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 ;; |