From 905dccdd26da40cb2b3225b79936ea5e494e2a2e Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Tue, 2 Dec 2025 11:07:35 +0100 Subject: [PATCH 1/6] fix: use CNB_TARGET_* environment variables --- buildpacks/python-dependency-manager/bin/build | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/buildpacks/python-dependency-manager/bin/build b/buildpacks/python-dependency-manager/bin/build index df36812..4e7f5aa 100755 --- a/buildpacks/python-dependency-manager/bin/build +++ b/buildpacks/python-dependency-manager/bin/build @@ -3,6 +3,15 @@ set -eou pipefail echo -e "=== 🔧 \033[1mRenku Python dependency manager buildpack\033[0m ===" +echo "DEBUG: CNB_TARGET configuration" +echo "===" +echo "CNB_TARGET_OS=${CNB_TARGET_OS}" +echo "CNB_TARGET_ARCH=${CNB_TARGET_ARCH}" +echo "CNB_TARGET_ARCH_VARIANT=${CNB_TARGET_ARCH_VARIANT}" +echo "CNB_TARGET_DISTRO_NAME=${CNB_TARGET_DISTRO_NAME}" +echo "CNB_TARGET_DISTRO_VERSION=${CNB_TARGET_DISTRO_VERSION}" +echo "===" + layer_dir="${CNB_LAYERS_DIR}/deps" execd_dir="${layer_dir}"/exec.d mkdir -p "${execd_dir}" From a6430b684e9670f1d6262ed0ad1788bb32e2a0a2 Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Tue, 2 Dec 2025 12:49:34 +0100 Subject: [PATCH 2/6] wip --- .../python-dependency-manager/bin/build | 13 +++++++----- buildpacks/renku-variables/bin/build | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/buildpacks/python-dependency-manager/bin/build b/buildpacks/python-dependency-manager/bin/build index 4e7f5aa..eba38bd 100755 --- a/buildpacks/python-dependency-manager/bin/build +++ b/buildpacks/python-dependency-manager/bin/build @@ -5,11 +5,14 @@ echo -e "=== 🔧 \033[1mRenku Python dependency manager buildpack\033[0m ===" echo "DEBUG: CNB_TARGET configuration" echo "===" -echo "CNB_TARGET_OS=${CNB_TARGET_OS}" -echo "CNB_TARGET_ARCH=${CNB_TARGET_ARCH}" -echo "CNB_TARGET_ARCH_VARIANT=${CNB_TARGET_ARCH_VARIANT}" -echo "CNB_TARGET_DISTRO_NAME=${CNB_TARGET_DISTRO_NAME}" -echo "CNB_TARGET_DISTRO_VERSION=${CNB_TARGET_DISTRO_VERSION}" +echo "CNB_TARGET_OS=${CNB_TARGET_OS:-}" +echo "CNB_TARGET_ARCH=${CNB_TARGET_ARCH:-}" +echo "CNB_TARGET_ARCH_VARIANT=${CNB_TARGET_ARCH_VARIANT:-}" +echo "CNB_TARGET_DISTRO_NAME=${CNB_TARGET_DISTRO_NAME:-}" +echo "CNB_TARGET_DISTRO_VERSION=${CNB_TARGET_DISTRO_VERSION:-}" +echo "===" +echo "DEBUG: uname" +uname -a echo "===" layer_dir="${CNB_LAYERS_DIR}/deps" diff --git a/buildpacks/renku-variables/bin/build b/buildpacks/renku-variables/bin/build index b2103b2..ecefff7 100755 --- a/buildpacks/renku-variables/bin/build +++ b/buildpacks/renku-variables/bin/build @@ -3,6 +3,26 @@ 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="amd64" +case "$(uname -m)" in + 'aarch64') + ARCH='arm64' + ;; + 'arm64') + ARCH='arm64' + ;; + 'x86_64') + ARCH='amd64' + *) ;; +esac +if [ -n "${CNB_TARGET_ARCH:-}" ]; then + if [ "${CNB_TARGET_ARCH}" != "${CURRENT_ARCH}" ]; then + echo "WARNING: current architecture ${CURRENT_ARCH} does not match target architecture ${CNB_TARGET_ARCH}!" + echo + fi +fi + layers_dir="$1" layer_dir="${layers_dir}"/renku-env env_dir="${layer_dir}"/env.launch From c258e381156d8aa52719f1178636766e7dad41ad Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Tue, 2 Dec 2025 14:15:18 +0100 Subject: [PATCH 3/6] wip --- buildpacks/conda-nodefaults/bin/build | 10 ++----- .../python-dependency-manager/bin/build | 12 -------- buildpacks/renku-variables/bin/build | 29 ++++++++++++------- buildpacks/rstudio/bin/build | 8 +---- buildpacks/ttyd/bin/build | 8 ++++- buildpacks/vscodium/bin/build | 10 +++---- 6 files changed, 32 insertions(+), 45 deletions(-) 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/python-dependency-manager/bin/build b/buildpacks/python-dependency-manager/bin/build index eba38bd..df36812 100755 --- a/buildpacks/python-dependency-manager/bin/build +++ b/buildpacks/python-dependency-manager/bin/build @@ -3,18 +3,6 @@ set -eou pipefail echo -e "=== 🔧 \033[1mRenku Python dependency manager buildpack\033[0m ===" -echo "DEBUG: CNB_TARGET configuration" -echo "===" -echo "CNB_TARGET_OS=${CNB_TARGET_OS:-}" -echo "CNB_TARGET_ARCH=${CNB_TARGET_ARCH:-}" -echo "CNB_TARGET_ARCH_VARIANT=${CNB_TARGET_ARCH_VARIANT:-}" -echo "CNB_TARGET_DISTRO_NAME=${CNB_TARGET_DISTRO_NAME:-}" -echo "CNB_TARGET_DISTRO_VERSION=${CNB_TARGET_DISTRO_VERSION:-}" -echo "===" -echo "DEBUG: uname" -uname -a -echo "===" - layer_dir="${CNB_LAYERS_DIR}/deps" execd_dir="${layer_dir}"/exec.d mkdir -p "${execd_dir}" diff --git a/buildpacks/renku-variables/bin/build b/buildpacks/renku-variables/bin/build index ecefff7..1e16601 100755 --- a/buildpacks/renku-variables/bin/build +++ b/buildpacks/renku-variables/bin/build @@ -4,25 +4,32 @@ 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="amd64" +CURRENT_ARCH="unknown" case "$(uname -m)" in - 'aarch64') - ARCH='arm64' - ;; - 'arm64') - ARCH='arm64' - ;; - 'x86_64') - ARCH='amd64' + "aarch64"|"arm64") CURRENT_ARCH="arm64" ;; + "amd64"|"x86_64") CURRENT_ARCH="amd64" ;; *) ;; esac + if [ -n "${CNB_TARGET_ARCH:-}" ]; then if [ "${CNB_TARGET_ARCH}" != "${CURRENT_ARCH}" ]; then - echo "WARNING: current architecture ${CURRENT_ARCH} does not match target architecture ${CNB_TARGET_ARCH}!" - echo + >&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 +echo "DEBUG: CNB_TARGET configuration" +echo "===" +echo "CNB_TARGET_OS=${CNB_TARGET_OS:-}" +echo "CNB_TARGET_ARCH=${CNB_TARGET_ARCH:-}" +echo "CNB_TARGET_ARCH_VARIANT=${CNB_TARGET_ARCH_VARIANT:-}" +echo "CNB_TARGET_DISTRO_NAME=${CNB_TARGET_DISTRO_NAME:-}" +echo "CNB_TARGET_DISTRO_VERSION=${CNB_TARGET_DISTRO_VERSION:-}" +echo "===" +echo "DEBUG: uname" +uname -a +echo "===" + 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..ce80f55 100755 --- a/buildpacks/ttyd/bin/build +++ b/buildpacks/ttyd/bin/build @@ -12,7 +12,13 @@ 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..b034e5f 100755 --- a/buildpacks/vscodium/bin/build +++ b/buildpacks/vscodium/bin/build @@ -22,12 +22,10 @@ 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" From 5466c16f1f82bf333323bbaac6bddbe0e5318eef Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Tue, 2 Dec 2025 14:25:20 +0100 Subject: [PATCH 4/6] format --- buildpacks/renku-variables/bin/build | 6 +++--- buildpacks/ttyd/bin/build | 1 - buildpacks/vscodium/bin/build | 1 - scripts/install_shellcheck.sh | 14 +++----------- 4 files changed, 6 insertions(+), 16 deletions(-) diff --git a/buildpacks/renku-variables/bin/build b/buildpacks/renku-variables/bin/build index 1e16601..b25c5aa 100755 --- a/buildpacks/renku-variables/bin/build +++ b/buildpacks/renku-variables/bin/build @@ -4,11 +4,11 @@ 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="unknown" -case "$(uname -m)" in +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 diff --git a/buildpacks/ttyd/bin/build b/buildpacks/ttyd/bin/build index ce80f55..b1c9631 100755 --- a/buildpacks/ttyd/bin/build +++ b/buildpacks/ttyd/bin/build @@ -16,7 +16,6 @@ ARCH="${CNB_TARGET_ARCH:-unknown}" case "$(ARCH)" in "arm64") ARCH="aarch64" ;; "amd64") ARCH="x86_64" ;; - *) ;; esac TTYD_VERSION="1.7.7" diff --git a/buildpacks/vscodium/bin/build b/buildpacks/vscodium/bin/build index b034e5f..5264108 100755 --- a/buildpacks/vscodium/bin/build +++ b/buildpacks/vscodium/bin/build @@ -25,7 +25,6 @@ mkdir -p "${cache_layer_dir}" 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 From a3e5c1647a293584bf304ebe263f8698a19ab3e6 Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Tue, 2 Dec 2025 14:26:05 +0100 Subject: [PATCH 5/6] remove debug --- buildpacks/renku-variables/bin/build | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/buildpacks/renku-variables/bin/build b/buildpacks/renku-variables/bin/build index b25c5aa..ef024b0 100755 --- a/buildpacks/renku-variables/bin/build +++ b/buildpacks/renku-variables/bin/build @@ -18,17 +18,6 @@ if [ -n "${CNB_TARGET_ARCH:-}" ]; then fi fi -echo "DEBUG: CNB_TARGET configuration" -echo "===" -echo "CNB_TARGET_OS=${CNB_TARGET_OS:-}" -echo "CNB_TARGET_ARCH=${CNB_TARGET_ARCH:-}" -echo "CNB_TARGET_ARCH_VARIANT=${CNB_TARGET_ARCH_VARIANT:-}" -echo "CNB_TARGET_DISTRO_NAME=${CNB_TARGET_DISTRO_NAME:-}" -echo "CNB_TARGET_DISTRO_VERSION=${CNB_TARGET_DISTRO_VERSION:-}" -echo "===" -echo "DEBUG: uname" -uname -a -echo "===" layers_dir="$1" layer_dir="${layers_dir}"/renku-env From 3a43b509799f44a51f164df8e8692b78bbac9149 Mon Sep 17 00:00:00 2001 From: Flora Thiebaut Date: Tue, 2 Dec 2025 15:20:57 +0100 Subject: [PATCH 6/6] fix typo --- buildpacks/ttyd/bin/build | 2 +- buildpacks/vscodium/bin/build | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildpacks/ttyd/bin/build b/buildpacks/ttyd/bin/build index b1c9631..574d9c5 100755 --- a/buildpacks/ttyd/bin/build +++ b/buildpacks/ttyd/bin/build @@ -13,7 +13,7 @@ ttyd_bin_dir="${ttyd_layer_dir}"/bin mkdir -p "${ttyd_bin_dir}" ARCH="${CNB_TARGET_ARCH:-unknown}" -case "$(ARCH)" in +case "${ARCH}" in "arm64") ARCH="aarch64" ;; "amd64") ARCH="x86_64" ;; esac diff --git a/buildpacks/vscodium/bin/build b/buildpacks/vscodium/bin/build index 5264108..56a558d 100755 --- a/buildpacks/vscodium/bin/build +++ b/buildpacks/vscodium/bin/build @@ -23,7 +23,7 @@ mkdir -p "${cache_layer_dir}" ARCH="${CNB_TARGET_ARCH:-unknown}" -case "$(ARCH)" in +case "${ARCH}" in "amd64") ARCH="x64" ;; esac