From 05c09a1edb081156fd19a8355086e51ccfa6b93e Mon Sep 17 00:00:00 2001 From: Piotr Rogoza Date: Fri, 7 Mar 2025 14:39:35 +0100 Subject: [PATCH 1/4] Add realpath for relative symlinks --- libexec/basher-_link-bins | 2 +- libexec/basher-_link-completions | 6 +++--- libexec/basher-_link-man | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libexec/basher-_link-bins b/libexec/basher-_link-bins index a4dedce..02aae7c 100755 --- a/libexec/basher-_link-bins +++ b/libexec/basher-_link-bins @@ -27,6 +27,6 @@ do name="${name%%.*}" fi mkdir -p "$BASHER_INSTALL_BIN" - ln -sf "$BASHER_PACKAGES_PATH/$package/$bin" "$BASHER_INSTALL_BIN/${name}" + ln -sf $(realpath -s --relative-to="$BASHER_INSTALL_BIN" "$BASHER_PACKAGES_PATH/$package/$bin") "$BASHER_INSTALL_BIN/${name}" chmod +x "$BASHER_INSTALL_BIN/${name}" done diff --git a/libexec/basher-_link-completions b/libexec/basher-_link-completions index 63f398a..cddb92c 100755 --- a/libexec/basher-_link-completions +++ b/libexec/basher-_link-completions @@ -15,7 +15,7 @@ IFS=: read -ra zsh_completions <<< "$ZSH_COMPLETIONS" for completion in "${bash_completions[@]}" do mkdir -p "$BASHER_PREFIX/completions/bash" - ln -sf "$BASHER_PACKAGES_PATH/$package/$completion" "$BASHER_PREFIX/completions/bash/${completion##*/}" + ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/bash" "$BASHER_PACKAGES_PATH/$package/$completion") "$BASHER_PREFIX/completions/bash/${completion##*/}" done for completion in "${zsh_completions[@]}" @@ -23,9 +23,9 @@ do target="$BASHER_PACKAGES_PATH/$package/$completion" if grep -q "#compdef" "$target"; then mkdir -p "$BASHER_PREFIX/completions/zsh/compsys" - ln -sf "$target" "$BASHER_PREFIX/completions/zsh/compsys/${completion##*/}" + ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/zsh/compsys" "$target") "$BASHER_PREFIX/completions/zsh/compsys/${completion##*/}" else mkdir -p "$BASHER_PREFIX/completions/zsh/compctl" - ln -sf "$target" "$BASHER_PREFIX/completions/zsh/compctl/${completion##*/}" + ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/zsh/compctl" "$target") "$BASHER_PREFIX/completions/zsh/compctl/${completion##*/}" fi done diff --git a/libexec/basher-_link-man b/libexec/basher-_link-man index 8ba1761..67590dd 100755 --- a/libexec/basher-_link-man +++ b/libexec/basher-_link-man @@ -16,6 +16,6 @@ do if [[ "$file" =~ $pattern ]]; then n="${BASH_REMATCH[1]}" mkdir -p "${BASHER_INSTALL_MAN}/man${n}" - ln -sf "$BASHER_PACKAGES_PATH/$package/man/$file" "$BASHER_INSTALL_MAN/man${n}/${file}" + ln -sf $(realpath -s --relative-to="$BASHER_INSTALL_MAN/man${n}" "$BASHER_PACKAGES_PATH/$package/man/$file") "$BASHER_INSTALL_MAN/man${n}/${file}" fi done From cf336fd101022f7efb362f58ab3686d2bb716075 Mon Sep 17 00:00:00 2001 From: Piotr Rogoza Date: Tue, 11 Mar 2025 11:08:20 +0100 Subject: [PATCH 2/4] Convert coreutils realpath to perl relpath --- libexec/basher-_link-bins | 2 +- libexec/basher-_link-completions | 6 +++--- libexec/basher-_link-man | 2 +- libexec/basher-install | 5 +++++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/libexec/basher-_link-bins b/libexec/basher-_link-bins index 02aae7c..2d0849e 100755 --- a/libexec/basher-_link-bins +++ b/libexec/basher-_link-bins @@ -27,6 +27,6 @@ do name="${name%%.*}" fi mkdir -p "$BASHER_INSTALL_BIN" - ln -sf $(realpath -s --relative-to="$BASHER_INSTALL_BIN" "$BASHER_PACKAGES_PATH/$package/$bin") "$BASHER_INSTALL_BIN/${name}" + ln -sf $(relpath "$BASHER_INSTALL_BIN" "$BASHER_PACKAGES_PATH/$package/$bin") "$BASHER_INSTALL_BIN/${name}" chmod +x "$BASHER_INSTALL_BIN/${name}" done diff --git a/libexec/basher-_link-completions b/libexec/basher-_link-completions index cddb92c..00d5f73 100755 --- a/libexec/basher-_link-completions +++ b/libexec/basher-_link-completions @@ -15,7 +15,7 @@ IFS=: read -ra zsh_completions <<< "$ZSH_COMPLETIONS" for completion in "${bash_completions[@]}" do mkdir -p "$BASHER_PREFIX/completions/bash" - ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/bash" "$BASHER_PACKAGES_PATH/$package/$completion") "$BASHER_PREFIX/completions/bash/${completion##*/}" + ln -sf $(relpath "$BASHER_PREFIX/completions/bash" "$BASHER_PACKAGES_PATH/$package/$completion") "$BASHER_PREFIX/completions/bash/${completion##*/}" done for completion in "${zsh_completions[@]}" @@ -23,9 +23,9 @@ do target="$BASHER_PACKAGES_PATH/$package/$completion" if grep -q "#compdef" "$target"; then mkdir -p "$BASHER_PREFIX/completions/zsh/compsys" - ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/zsh/compsys" "$target") "$BASHER_PREFIX/completions/zsh/compsys/${completion##*/}" + ln -sf $(relpath "$BASHER_PREFIX/completions/zsh/compsys" "$target") "$BASHER_PREFIX/completions/zsh/compsys/${completion##*/}" else mkdir -p "$BASHER_PREFIX/completions/zsh/compctl" - ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/zsh/compctl" "$target") "$BASHER_PREFIX/completions/zsh/compctl/${completion##*/}" + ln -sf $(relpath "$BASHER_PREFIX/completions/zsh/compctl" "$target") "$BASHER_PREFIX/completions/zsh/compctl/${completion##*/}" fi done diff --git a/libexec/basher-_link-man b/libexec/basher-_link-man index 67590dd..7985603 100755 --- a/libexec/basher-_link-man +++ b/libexec/basher-_link-man @@ -16,6 +16,6 @@ do if [[ "$file" =~ $pattern ]]; then n="${BASH_REMATCH[1]}" mkdir -p "${BASHER_INSTALL_MAN}/man${n}" - ln -sf $(realpath -s --relative-to="$BASHER_INSTALL_MAN/man${n}" "$BASHER_PACKAGES_PATH/$package/man/$file") "$BASHER_INSTALL_MAN/man${n}/${file}" + ln -sf $(relpath "$BASHER_INSTALL_MAN/man${n}" "$BASHER_PACKAGES_PATH/$package/man/$file") "$BASHER_INSTALL_MAN/man${n}/${file}" fi done diff --git a/libexec/basher-install b/libexec/basher-install index bc0acdc..83003c6 100755 --- a/libexec/basher-install +++ b/libexec/basher-install @@ -6,6 +6,11 @@ set -e +relpath() { + perl -e 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])' "$2" "$1" +} +export -f relpath + use_ssh="false" case $1 in From 706d98b8b55c72940f351b06d1bca949fbb4a7d0 Mon Sep 17 00:00:00 2001 From: Piotr Rogoza Date: Tue, 11 Mar 2025 11:16:30 +0100 Subject: [PATCH 3/4] Revert "Convert coreutils realpath to perl relpath" This reverts commit cf336fd101022f7efb362f58ab3686d2bb716075. --- libexec/basher-_link-bins | 2 +- libexec/basher-_link-completions | 6 +++--- libexec/basher-_link-man | 2 +- libexec/basher-install | 5 ----- 4 files changed, 5 insertions(+), 10 deletions(-) diff --git a/libexec/basher-_link-bins b/libexec/basher-_link-bins index 2d0849e..02aae7c 100755 --- a/libexec/basher-_link-bins +++ b/libexec/basher-_link-bins @@ -27,6 +27,6 @@ do name="${name%%.*}" fi mkdir -p "$BASHER_INSTALL_BIN" - ln -sf $(relpath "$BASHER_INSTALL_BIN" "$BASHER_PACKAGES_PATH/$package/$bin") "$BASHER_INSTALL_BIN/${name}" + ln -sf $(realpath -s --relative-to="$BASHER_INSTALL_BIN" "$BASHER_PACKAGES_PATH/$package/$bin") "$BASHER_INSTALL_BIN/${name}" chmod +x "$BASHER_INSTALL_BIN/${name}" done diff --git a/libexec/basher-_link-completions b/libexec/basher-_link-completions index 00d5f73..cddb92c 100755 --- a/libexec/basher-_link-completions +++ b/libexec/basher-_link-completions @@ -15,7 +15,7 @@ IFS=: read -ra zsh_completions <<< "$ZSH_COMPLETIONS" for completion in "${bash_completions[@]}" do mkdir -p "$BASHER_PREFIX/completions/bash" - ln -sf $(relpath "$BASHER_PREFIX/completions/bash" "$BASHER_PACKAGES_PATH/$package/$completion") "$BASHER_PREFIX/completions/bash/${completion##*/}" + ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/bash" "$BASHER_PACKAGES_PATH/$package/$completion") "$BASHER_PREFIX/completions/bash/${completion##*/}" done for completion in "${zsh_completions[@]}" @@ -23,9 +23,9 @@ do target="$BASHER_PACKAGES_PATH/$package/$completion" if grep -q "#compdef" "$target"; then mkdir -p "$BASHER_PREFIX/completions/zsh/compsys" - ln -sf $(relpath "$BASHER_PREFIX/completions/zsh/compsys" "$target") "$BASHER_PREFIX/completions/zsh/compsys/${completion##*/}" + ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/zsh/compsys" "$target") "$BASHER_PREFIX/completions/zsh/compsys/${completion##*/}" else mkdir -p "$BASHER_PREFIX/completions/zsh/compctl" - ln -sf $(relpath "$BASHER_PREFIX/completions/zsh/compctl" "$target") "$BASHER_PREFIX/completions/zsh/compctl/${completion##*/}" + ln -sf $(realpath -s --relative-to="$BASHER_PREFIX/completions/zsh/compctl" "$target") "$BASHER_PREFIX/completions/zsh/compctl/${completion##*/}" fi done diff --git a/libexec/basher-_link-man b/libexec/basher-_link-man index 7985603..67590dd 100755 --- a/libexec/basher-_link-man +++ b/libexec/basher-_link-man @@ -16,6 +16,6 @@ do if [[ "$file" =~ $pattern ]]; then n="${BASH_REMATCH[1]}" mkdir -p "${BASHER_INSTALL_MAN}/man${n}" - ln -sf $(relpath "$BASHER_INSTALL_MAN/man${n}" "$BASHER_PACKAGES_PATH/$package/man/$file") "$BASHER_INSTALL_MAN/man${n}/${file}" + ln -sf $(realpath -s --relative-to="$BASHER_INSTALL_MAN/man${n}" "$BASHER_PACKAGES_PATH/$package/man/$file") "$BASHER_INSTALL_MAN/man${n}/${file}" fi done diff --git a/libexec/basher-install b/libexec/basher-install index 83003c6..bc0acdc 100755 --- a/libexec/basher-install +++ b/libexec/basher-install @@ -6,11 +6,6 @@ set -e -relpath() { - perl -e 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])' "$2" "$1" -} -export -f relpath - use_ssh="false" case $1 in From dff3ab8817903376210baf8c06b590b5b43a3974 Mon Sep 17 00:00:00 2001 From: Piotr Rogoza Date: Tue, 11 Mar 2025 11:18:02 +0100 Subject: [PATCH 4/4] Add proper PATH to macos tests --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ed5e94a..1c583b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -52,6 +52,7 @@ jobs: - name: Run tests run: | + PATH=$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH bash --version git config --global user.email "user@example.com" git config --global user.name "User Name"