From 61b806e168591bd9ebbb9ef4312cab86a010e868 Mon Sep 17 00:00:00 2001 From: Cheng Shao <terrorjack@type.dance> Date: Sat, 26 Apr 2025 03:03:09 +0000 Subject: [PATCH] setup.sh: always curl to a temporary file without piping 1. it's way faster 2. it's the only way --retry would actually work --- setup.sh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/setup.sh b/setup.sh index f0b27a6..3adb067 100755 --- a/setup.sh +++ b/setup.sh @@ -99,7 +99,8 @@ else fi echo "Installing wasi-sdk from $WASI_SDK_BINDIST" mkdir -p "$PREFIX/wasi-sdk" -curl -f -L --retry 5 "$WASI_SDK_BINDIST" | tar xz -C "$PREFIX/wasi-sdk" --no-same-owner --strip-components=1 +curl -f -L --retry 5 "$WASI_SDK_BINDIST" -o wasi-sdk.tar.gz +tar xzf wasi-sdk.tar.gz -C "$PREFIX/wasi-sdk" --no-same-owner --strip-components=1 curl -f -L --retry 5 "$(jq -r '."libffi-wasm".url' "$REPO"/autogen.json)" -o out.zip unzip out.zip @@ -107,14 +108,18 @@ cp -a out/libffi-wasm/include/. "$PREFIX/wasi-sdk/share/wasi-sysroot/include/was cp -a out/libffi-wasm/lib/. "$PREFIX/wasi-sdk/share/wasi-sysroot/lib/wasm32-wasi" mkdir -p "$PREFIX/nodejs" -curl -f -L --retry 5 "$(jq -r ".\"$NODEJS\".url" "$REPO"/autogen.json)" | tar xJ -C "$PREFIX/nodejs" --no-same-owner --strip-components=1 +curl -f -L --retry 5 "$(jq -r ".\"$NODEJS\".url" "$REPO"/autogen.json)" -o nodejs.tar.xz +tar xJf nodejs.tar.xz -C "$PREFIX/nodejs" --no-same-owner --strip-components=1 "$PREFIX/nodejs/bin/node" "$PREFIX/nodejs/bin/npm" install -g --prefix "$PREFIX/nodejs" puppeteer-core@^24.7.2 ws@^8.18.1 mkdir -p "$PREFIX/binaryen" -curl -f -L --retry 5 "$(jq -r ".\"$BINARYEN\".url" "$REPO"/autogen.json)" | tar xz -C "$PREFIX/binaryen" --no-same-owner --strip-components=1 +curl -f -L --retry 5 "$(jq -r ".\"$BINARYEN\".url" "$REPO"/autogen.json)" -o binaryen.tar.gz +tar xzf binaryen.tar.gz -C "$PREFIX/binaryen" --no-same-owner --strip-components=1 mkdir -p "$PREFIX/wasmtime" -curl -f -L --retry 5 "$(jq -r ".\"$WASMTIME\".url" "$REPO"/autogen.json)" | unzstd | tar x -C "$PREFIX/wasmtime" --no-same-owner --strip-components=1 +curl -f -L --retry 5 "$(jq -r ".\"$WASMTIME\".url" "$REPO"/autogen.json)" -o wasmtime.tar.zst +unzstd wasmtime.tar.zst -o wasmtime.tar +tar xf wasmtime.tar -C "$PREFIX/wasmtime" --no-same-owner --strip-components=1 mkdir -p "$PREFIX/wasm-run/bin" cp -a "$REPO"/wasm-run/*.mjs "$REPO"/wasm-run/*.sh "$PREFIX/wasm-run/bin" @@ -189,7 +194,8 @@ else GHC_BINDIST=https://gitlab.haskell.org/api/v4/projects/$UPSTREAM_GHC_PROJECT_ID/jobs/$UPSTREAM_GHC_JOB_ID/artifacts/ghc-$UPSTREAM_GHC_JOB_NAME.tar.xz fi echo "Installing wasm32-wasi-ghc from $GHC_BINDIST" -curl -f -L --retry 5 "$GHC_BINDIST" | tar xJ -C ghc --no-same-owner --strip-components=1 +curl -f -L --retry 5 "$GHC_BINDIST" -o wasm32-wasi-ghc.tar.xz +tar xJf wasm32-wasi-ghc.tar.xz -C ghc --no-same-owner --strip-components=1 pushd ghc sh -c ". $PREFIX/env && ./configure \$CONFIGURE_ARGS --prefix=$PREFIX/wasm32-wasi-ghc && RelocatableBuild=YES exec make install" if [[ "$FLAVOUR" != 9.6 ]] && [[ "$FLAVOUR" != 9.8 ]]; then @@ -203,7 +209,8 @@ fi popd mkdir -p "$PREFIX/cabal/bin" -curl -f -L --retry 5 "$(jq -r ".\"$CABAL\".url" "$REPO"/autogen.json)" | tar xJ --no-same-owner -C "$PREFIX/cabal/bin" 'cabal' +curl -f -L --retry 5 "$(jq -r ".\"$CABAL\".url" "$REPO"/autogen.json)" -o cabal.tar.xz +tar xJf cabal.tar.xz --no-same-owner -C "$PREFIX/cabal/bin" 'cabal' mkdir -p "$PREFIX/wasm32-wasi-cabal/bin" echo "#!/bin/sh" >> "$PREFIX/wasm32-wasi-cabal/bin/wasm32-wasi-cabal" -- GitLab