summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hook-functions14
1 files changed, 13 insertions, 1 deletions
diff --git a/hook-functions b/hook-functions
index 48bab9b..af9d9c1 100644
--- a/hook-functions
+++ b/hook-functions
@@ -124,6 +124,11 @@ copy_file() {
[ -f "${src}" ] || return 2
+ # Canonicalise usr-merged target directories
+ case "${target}" in
+ /bin/* | /lib* | /sbin/*) target="/usr${target}" ;;
+ esac
+
if [ -d "${DESTDIR}/${target}" ]; then
target="${target}/${src##*/}"
fi
@@ -138,6 +143,14 @@ copy_file() {
# just link directly to the ultimate target
link_target="$(readlink -f "${src}")" || return $(($? + 1))
+ # Update source for the copy
+ src="${link_target}"
+
+ # Canonicalise usr-merged target directories
+ case "${link_target}" in
+ /bin/* | /lib* | /sbin/*) link_target="/usr${link_target}" ;;
+ esac
+
if [ "${link_target}" != "${target}" ]; then
[ "${verbose?}" = "y" ] && echo "Adding ${type}-link ${src}"
@@ -147,7 +160,6 @@ copy_file() {
fi
# Copy the link target if it doesn't already exist
- src="${link_target}"
target="${link_target}"
[ -e "${DESTDIR}/${target}" ] && return 0
mkdir -p "${DESTDIR}/${target%/*}"