summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2021-04-20 04:25:51 +0200
committerAllan McRae <allan@archlinux.org>2021-04-23 01:48:08 +0200
commit8fe552070945561a0cd4dc24d3fcb22ed377f1a0 (patch)
tree0aeb8603acc06caf1caadf6f13447be3a19104c4
parent079b9d44e2faadd83856de07f890bae5cc51c5a4 (diff)
downloadpacman-8fe552070945561a0cd4dc24d3fcb22ed377f1a0.tar.gz
pacman-8fe552070945561a0cd4dc24d3fcb22ed377f1a0.tar.xz
meson: make our symlinking script more portable
We do not need the --relative case as it is dead code (we only ever link a filename without directory components). For the rest, GNU-specific ln -T does two things: - if the link name is an existing directory, ln fails instead of creating a surprising link inside the directory - if the link name is a symlink to a directory, ln treats it as a file, and due to -f, unlinks it The second case can be portably solved by ln -n, and both cases can be solved by doing what the original autotools Makefile did: rm -f && ln -s If the file exists, it will be removed. If it cannot be removed, it must be an ordinary directory, and the script aborts with an error. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--build-aux/meson-make-symlink.sh8
1 files changed, 3 insertions, 5 deletions
diff --git a/build-aux/meson-make-symlink.sh b/build-aux/meson-make-symlink.sh
index 501cd43d..3e3aa7ba 100644
--- a/build-aux/meson-make-symlink.sh
+++ b/build-aux/meson-make-symlink.sh
@@ -5,8 +5,6 @@ set -eu
# and we need to create the target directory...
mkdir -vp "$(dirname "${DESTDIR:-}$2")"
-if [ "$(dirname $1)" = . ]; then
- ln -vfs -T "$1" "${DESTDIR:-}$2"
-else
- ln -vfs -T --relative "${DESTDIR:-}$1" "${DESTDIR:-}$2"
-fi
+
+rm -f "${DESTDIR:-}$2"
+ln -vs "$1" "${DESTDIR:-}$2"