From 7ac58a21d2fd6e66852c7ae2e6c09f3b836b73a1 Mon Sep 17 00:00:00 2001 From: David Michael Date: Fri, 14 May 2021 10:16:57 -0400 Subject: Stop using absolute symlinks Prefixing everything with ${EROOT} produces invalid paths on the target system. All of the symlinks point to files in the same directory, so there is no reason to specify directories at all. Bug: https://bugs.gentoo.org/790305 Signed-off-by: David Michael Signed-off-by: Georgy Yakovlev --- README.md | 4 ---- rust.eselect.in | 8 ++++---- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6ae99cf..ac3a34d 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,3 @@ then `/etc/env.d/rust/provider-TARGET` should contain: ``` Note, that `/usr/bin/rustc` should not be listed, as it is always managed by eselect. - -### Notes - -**eselect-rust** automatically prepends every path with `${EROOT}` variable. diff --git a/rust.eselect.in b/rust.eselect.in index c3ee046..7ab845b 100644 --- a/rust.eselect.in +++ b/rust.eselect.in @@ -1,4 +1,4 @@ -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 DESCRIPTION="Manage the Rust compiler versions" @@ -157,7 +157,7 @@ set_symlink() { remove_symlink "${dest}" - if [[ -e ${source} ]]; then + if [[ -e ${dest%/*}/${source} ]]; then mkdir -p "$(dirname ${dest})" || die -q "directory creation failed for $(dirname ${dest})" ln -s "${source}" "${dest}" || die -q "${dest} symlink setting failed" else @@ -197,11 +197,11 @@ set_version() { unset_version - set_symlink "${BIN_DIR}/rustc-${target_postfix}" "${BIN_DIR}/rustc" + set_symlink "rustc-${target_postfix}" "${BIN_DIR}/rustc" local symlinks=( $(get_symlinks ${target}) ) for i in "${symlinks[@]}"; do - set_symlink "${EROOT%/}${i}-${target_postfix}" "${EROOT%/}${i}" + set_symlink "${i##*/}-${target_postfix}" "${EROOT%/}${i}" done cp "${ENV_D_PATH}/rust/provider-${target}" \ -- cgit v1.2.3-65-gdbad