summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--abuild.in8
1 files changed, 6 insertions, 2 deletions
diff --git a/abuild.in b/abuild.in
index cb5d286..3879b5e 100644
--- a/abuild.in
+++ b/abuild.in
@@ -1176,12 +1176,16 @@ scan_shared_objects() {
# find which package provides file that symlink points to
scan_symlink_targets() {
local name="$1" dir="$2" datadir="$3"
- local symfile
+ local symfile= targetpath=
cd "$datadir"
for symfile in "$pkgbasedir"/.control.*/.symlinks; do
[ -e "$symfile" ] || continue
while read symlink target; do
- if [ -e "${symlink%/*}"/"$target" ]; then
+ case "$target" in
+ /*) targetpath="${datadir}/$target";;
+ *) targetpath="${symlink%/*}/$target";;
+ esac
+ if [ -e "$targetpath" ] || [ -L "$targetpath" ]; then
local d="${symfile%/.symlinks}"
echo "$name=$pkgver-r$pkgrel" \
>> "$d"/.symlinks-needs