diff --git a/buildpacks/conda-nodefaults/bin/build b/buildpacks/conda-nodefaults/bin/build index 5c3f218..be74f43 100755 --- a/buildpacks/conda-nodefaults/bin/build +++ b/buildpacks/conda-nodefaults/bin/build @@ -19,14 +19,8 @@ cp environment.yml "$TMPDIR/original.yml" cache_layer_dir="${CNB_LAYERS_DIR}"/cache mkdir -p "${cache_layer_dir}" -OS=$(uname -s | tr '[:upper:]' '[:lower:]') -ARCH=$(uname -m) - -case "$ARCH" in - x86_64) ARCH=amd64 ;; - arm64|aarch64) ARCH=arm64 ;; - *) >&2 echo "Unsupported architecture: $ARCH"; exit 1 ;; -esac +OS="${CNB_TARGET_OS:-unknown}" +ARCH="${CNB_TARGET_ARCH:-unknown}" YQ_FILENAME="yq_${OS}_${ARCH}" YQ_VERSION=v4.47.1 diff --git a/buildpacks/renku-variables/bin/build b/buildpacks/renku-variables/bin/build index b2103b2..ef024b0 100755 --- a/buildpacks/renku-variables/bin/build +++ b/buildpacks/renku-variables/bin/build @@ -3,6 +3,22 @@ set -eo pipefail echo -e "=== 🔧 \033[1mRenku Environment Variables buildpack\033[0m ===" +# NOTE: we run platform mismatch check here as this buildpack is always selected +CURRENT_ARCH="$(uname -m)" +case "${CURRENT_ARCH}" in + "aarch64"|"arm64") CURRENT_ARCH="arm64" ;; + "amd64"|"x86_64") CURRENT_ARCH="amd64" ;; + *) >&2 echo "ERROR: Unsupported architecture: ${CURRENT_ARCH}" ;; +esac + +if [ -n "${CNB_TARGET_ARCH:-}" ]; then + if [ "${CNB_TARGET_ARCH}" != "${CURRENT_ARCH}" ]; then + >&2 echo "WARNING: current architecture ${CURRENT_ARCH} does not match target architecture ${CNB_TARGET_ARCH}!" + >&2 echo "WARNING: the resulting image may not run as expected!" + fi +fi + + layers_dir="$1" layer_dir="${layers_dir}"/renku-env env_dir="${layer_dir}"/env.launch diff --git a/buildpacks/rstudio/bin/build b/buildpacks/rstudio/bin/build index cf5536c..a2226fb 100755 --- a/buildpacks/rstudio/bin/build +++ b/buildpacks/rstudio/bin/build @@ -18,13 +18,7 @@ RSTUDIO_VERSION="2025.09.2-418" OS_CODENAME=jammy # https://posit.co/download/rstudio-server gives jammy regardless of ubuntu version FNAME="rstudio-$RSTUDIO_VERSION.deb" -ARCH=$(uname -m) - -case "$ARCH" in - x86_64) ARCH=amd64 ;; - arm64|aarch64) ARCH=arm64 ;; - *) >&2 echo "Unsupported architecture: $ARCH"; exit 1 ;; -esac +ARCH="${CNB_TARGET_ARCH:-unknown}" if [ -f "$cache_layer_dir/$FNAME" ]; then echo "Found rstudio $RSTUDIO_VERSION in $cache_layer_dir skipping download" diff --git a/buildpacks/ttyd/bin/build b/buildpacks/ttyd/bin/build index 9c9c6b6..574d9c5 100755 --- a/buildpacks/ttyd/bin/build +++ b/buildpacks/ttyd/bin/build @@ -12,7 +12,12 @@ ttyd_layer_dir="${layers_dir}"/ttyd ttyd_bin_dir="${ttyd_layer_dir}"/bin mkdir -p "${ttyd_bin_dir}" -ARCH=$(uname -i) +ARCH="${CNB_TARGET_ARCH:-unknown}" +case "${ARCH}" in + "arm64") ARCH="aarch64" ;; + "amd64") ARCH="x86_64" ;; +esac + TTYD_VERSION="1.7.7" TTYD_URL="https://github.com/tsl0922/ttyd/releases/download/${TTYD_VERSION}/ttyd.${ARCH}" diff --git a/buildpacks/vscodium/bin/build b/buildpacks/vscodium/bin/build index 8d9d38f..56a558d 100755 --- a/buildpacks/vscodium/bin/build +++ b/buildpacks/vscodium/bin/build @@ -22,12 +22,9 @@ mkdir -p "${execd_layer_dir}" mkdir -p "${cache_layer_dir}" -ARCH=$(uname -m) - -case "$ARCH" in - x86_64) ARCH=x64 ;; - arm64|aarch64) ARCH=arm64 ;; - *) >&2 echo "Unsupported architecture: $ARCH"; exit 1 ;; +ARCH="${CNB_TARGET_ARCH:-unknown}" +case "${ARCH}" in + "amd64") ARCH="x64" ;; esac VSCODIUM_DEFAULT_VERSION="1.104.36664" diff --git a/scripts/install_shellcheck.sh b/scripts/install_shellcheck.sh index af472b9..2116cbb 100755 --- a/scripts/install_shellcheck.sh +++ b/scripts/install_shellcheck.sh @@ -8,21 +8,13 @@ LOCATION=$2 OS="linux" case "$(uname)" in - 'Darwin') - OS='darwin' - ;; - *) ;; + 'Darwin') OS='darwin' ;; esac ARCH="x86_64" case "$(uname -m)" in - 'aarch64') - ARCH='aarch64' - ;; - 'arm64') - ARCH='aarch64' - ;; - *) ;; + 'aarch64') ARCH='aarch64' ;; + 'arm64') ARCH='aarch64' ;; esac if [[ -z $VERSION ]]; then