From b42c1656671c4418c1f2ec1d093e35938a1abef2 Mon Sep 17 00:00:00 2001 From: Tim Toomey Date: Tue, 22 Aug 2023 23:52:37 +1200 Subject: [PATCH] [Fix] gracefully handle GNU tar on MacOS during `nvm install` GNU tar doesn't support using the -J flag required to unpack xz-compressed tarballs when xv isn't installed. Check for this scenario and fallback to using gzip-compressed tarballs. Fixes #3034 --- nvm.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/nvm.sh b/nvm.sh index 626e4f7c78..33f2d8ad95 100644 --- a/nvm.sh +++ b/nvm.sh @@ -4325,7 +4325,11 @@ nvm_supports_xz() { if [ "_${NVM_OS}" = '_darwin' ]; then local MACOS_VERSION MACOS_VERSION="$(sw_vers -productVersion)" - if nvm_version_greater "10.9.0" "${MACOS_VERSION}"; then + if tar --version | command grep -q GNU && ! command which xz >/dev/null 2>&1; then + # On macOS with GNU tar in use, and no xv on the path, xv-compressed + # tarballs aren't supported + return 1 + elif nvm_version_greater "10.9.0" "${MACOS_VERSION}"; then # macOS 10.8 and earlier doesn't support extracting xz-compressed tarballs with tar return 1 fi