diff --git a/debian/preinst b/debian/preinst index b657de5..3e8b0cd 100644 --- a/debian/preinst +++ b/debian/preinst @@ -2,17 +2,29 @@ set -e if [ "$1" = "install" ] || [ "$1" = "upgrade" ]; then + msg= for d in bin lib lib32 lib64 libo32 lib64 sbin; do - if [ -d "$DPKG_ROOT/$d" ] && [ ! -L "$DPKG_ROOT/$d" ]; then + if [ -L "$DPKG_ROOT/$d" ]; then + if [ "$(readlink "$DPKG_ROOT/$d")" != "usr/$d" ]; then + msg="/$d is a symbolic link and not pointing at usr/$d exactly" + elif [ ! -d "$DPKG_ROOT/usr/$d" ]; then + msg="/$d is a dangling symbolic link" + fi + msg2="This is an unexpected situation. Cannot proceed with the upgrade" + elif [ -d "$DPKG_ROOT/$d" ]; then + msg="/$d is a directory, but should be a symbolic link" + msg2="Please install the usrmerge package to convert this system to merged-/usr" + fi + if [ -n "$msg" ]; then cat <