From d64982db95e1b8b2dbc10873f3933c27ce92b542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 15:19:02 +0200 Subject: [PATCH 01/20] combine builds for different accelerators --- bot/build.sh | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/bot/build.sh b/bot/build.sh index 5c9f1af0..dc07ea10 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -161,16 +161,6 @@ EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_SOFTWARE_SUBDIR_OVERRIDE:-${CPU_TARGET}} export EESSI_SOFTWARE_SUBDIR_OVERRIDE echo "bot/build.sh: EESSI_SOFTWARE_SUBDIR_OVERRIDE='${EESSI_SOFTWARE_SUBDIR_OVERRIDE}'" -# determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} -ACCEL_OVERRIDE=$(cfg_get_value "architecture" "accelerator") -if [[ -n "$ACCEL_OVERRIDE" ]]; then - # bot job config does not include accel subdirectory - export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE" -else - export EESSI_ACCELERATOR_TARGET_OVERRIDE="" -fi -echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${EESSI_ACCELERATOR_TARGET_OVERRIDE}'" - # Log the full lscpu and os-release info: lscpu > _bot_job${SLURM_JOB_ID}.lscpu cat /etc/os-release > _bot_job${SLURM_JOB_ID}.os @@ -259,11 +249,33 @@ fi # create tmp file for output of build step build_outerr=$(mktemp build.outerr.XXXX) -echo "Executing command to build software:" -echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}" -echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}" -$software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${BUILD_STEP_ARGS[@]}" \ - -- $software_layer_dir/install_software_layer.sh "${INSTALL_SCRIPT_ARGS[@]}" "$@" 2>&1 | tee -a ${build_outerr} +# determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} +ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") +if [[ -n "$ACCEL_OVERRIDE" ]]; then + for accel_override in ${ACCEL_OVERRIDES//,/ } + do + # bot job config does not include accel subdirectory + export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE" + echo "Executing command to build software:" + echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}" + echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}" + $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${BUILD_STEP_ARGS[@]}" \ + -- $software_layer_dir/install_software_layer.sh "${INSTALL_SCRIPT_ARGS[@]}" "$@" 2>&1 | tee -a ${build_outerr} + + # determine temporary directory to resume from for the next accelerator, + # as we want to combine all accelerator builds into a single tarball in the end + BUILD_TMPDIR=$(grep ' as tmp directory ' ${build_outerr} | cut -d ' ' -f 2) + BUILD_STEP_ARGS+=("--resume" "${BUILD_TMPDIR}") + done +else + export EESSI_ACCELERATOR_TARGET_OVERRIDE="" + echo "Executing command to build software:" + echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}" + echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}" + $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${BUILD_STEP_ARGS[@]}" \ + -- $software_layer_dir/install_software_layer.sh "${INSTALL_SCRIPT_ARGS[@]}" "$@" 2>&1 | tee -a ${build_outerr} +fi +echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${EESSI_ACCELERATOR_TARGET_OVERRIDE}'" # prepare directory to store tarball of tmp for tarball step TARBALL_TMP_TARBALL_STEP_DIR=${PREVIOUS_TMP_DIR}/tarball_step @@ -291,14 +303,15 @@ else fi # to set EESSI_VERSION we need to source init/eessi_defaults now source $software_layer_dir/init/eessi_defaults -# Note: if ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we +# Note: if ${EESSI_DEV_PROJECT} is defined (building for dev.eessi.io), then we # append the project (subdirectory) name to the end tarball name. This is information # then used at the ingestion stage. If ${EESSI_DEV_PROJECT} is not defined, nothing is # appended if [[ -z ${EESSI_ACCELERATOR_TARGET_OVERRIDE} ]]; then export TARBALL=$(printf "eessi-%s-software-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp}) else - export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_ACCELERATOR_TARGET_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp}) + #export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} ${EESSI_ACCELERATOR_TARGET_OVERRIDE//\//-} ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp}) + export TARBALL=$(printf "eessi-%s-software-%s-%s-%s-%b%d.${tarball_extension}" ${EESSI_VERSION} ${EESSI_OS_TYPE} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE//\//-} accel ${EESSI_DEV_PROJECT:+$EESSI_DEV_PROJECT-} ${timestamp}) fi # Export EESSI_DEV_PROJECT to use it (if needed) when making tarball From 8b113045004b337e3db3ae0a582734c0ff1d780a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 15:41:25 +0200 Subject: [PATCH 02/20] split accelerators by + --- bot/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index dc07ea10..d9f8b603 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -252,7 +252,7 @@ build_outerr=$(mktemp build.outerr.XXXX) # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") if [[ -n "$ACCEL_OVERRIDE" ]]; then - for accel_override in ${ACCEL_OVERRIDES//,/ } + for accel_override in ${ACCEL_OVERRIDES//+/ } do # bot job config does not include accel subdirectory export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE" From 6f97503cad0c559af0bb419d55e85876df953bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 15:43:11 +0200 Subject: [PATCH 03/20] add easystack --- .../2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb diff --git a/easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb b/easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb new file mode 100644 index 00000000..66a4a1f9 --- /dev/null +++ b/easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb @@ -0,0 +1,2 @@ +easyconfigs: + - pmt-1.3.1-GCCcore-13.3.0-CUDA-12.6.0.eb From bbc6c66e571955b80b2be497bf2202536d830211 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 15:54:18 +0200 Subject: [PATCH 04/20] correct file extension --- .../{eessi-2025.06-eb-5.3.0.eb => eessi-2025.06-eb-5.3.0.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename easystacks/software.eessi.io/2025.06/accel/nvidia/{eessi-2025.06-eb-5.3.0.eb => eessi-2025.06-eb-5.3.0.yml} (100%) diff --git a/easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb b/easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.yml similarity index 100% rename from easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.eb rename to easystacks/software.eessi.io/2025.06/accel/nvidia/eessi-2025.06-eb-5.3.0.yml From 41a45d7c899af19962a02577f73f423d47b4ed7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 15:57:37 +0200 Subject: [PATCH 05/20] fix variable name --- bot/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index d9f8b603..914dfd9e 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -251,7 +251,7 @@ build_outerr=$(mktemp build.outerr.XXXX) # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") -if [[ -n "$ACCEL_OVERRIDE" ]]; then +if [[ -n "$ACCEL_OVERRIDES" ]]; then for accel_override in ${ACCEL_OVERRIDES//+/ } do # bot job config does not include accel subdirectory From 1d2cbed9676b97194b8ade871b5ece1321393c65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:04:42 +0200 Subject: [PATCH 06/20] fix another var name --- bot/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index 914dfd9e..08af5423 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -252,7 +252,7 @@ build_outerr=$(mktemp build.outerr.XXXX) # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") if [[ -n "$ACCEL_OVERRIDES" ]]; then - for accel_override in ${ACCEL_OVERRIDES//+/ } + for ACCEL_OVERRIDE in ${ACCEL_OVERRIDES//+/ } do # bot job config does not include accel subdirectory export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE" From 5f02c6c91d78a0c08436abc4ad2101953b74def3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:10:02 +0200 Subject: [PATCH 07/20] add echo --- bot/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index 08af5423..93541e2f 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -255,7 +255,8 @@ if [[ -n "$ACCEL_OVERRIDES" ]]; then for ACCEL_OVERRIDE in ${ACCEL_OVERRIDES//+/ } do # bot job config does not include accel subdirectory - export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/$ACCEL_OVERRIDE" + export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/${ACCEL_OVERRIDE}" + echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='accel/${ACCEL_OVERRIDE}'" echo "Executing command to build software:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}" echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}" From f2f4587f1982c0853a7f67ec2d03a688d9ec7dab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:17:09 +0200 Subject: [PATCH 08/20] use array --- bot/build.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index 93541e2f..65ec9b8e 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -252,7 +252,8 @@ build_outerr=$(mktemp build.outerr.XXXX) # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") if [[ -n "$ACCEL_OVERRIDES" ]]; then - for ACCEL_OVERRIDE in ${ACCEL_OVERRIDES//+/ } + IFS='+' read -ra ACCEL_OVERRIDES_ARRAY <<< "$ACCEL_OVERRIDES" + for ACCEL_OVERRIDE in "${ACCEL_OVERRIDES_ARRAY[@]}"; do do # bot job config does not include accel subdirectory export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/${ACCEL_OVERRIDE}" From 29a419d4037ee7036f07833593819fee30e0fe1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:21:41 +0200 Subject: [PATCH 09/20] remove second do --- bot/build.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index 65ec9b8e..30d950ec 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -254,7 +254,6 @@ ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") if [[ -n "$ACCEL_OVERRIDES" ]]; then IFS='+' read -ra ACCEL_OVERRIDES_ARRAY <<< "$ACCEL_OVERRIDES" for ACCEL_OVERRIDE in "${ACCEL_OVERRIDES_ARRAY[@]}"; do - do # bot job config does not include accel subdirectory export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/${ACCEL_OVERRIDE}" echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='accel/${ACCEL_OVERRIDE}'" From a1d1e913a5915540f442d720ac7c1eba60c15230 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:36:38 +0200 Subject: [PATCH 10/20] try passing all accel subdirs to create_tarball script --- bot/build.sh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/bot/build.sh b/bot/build.sh index 30d950ec..d036bd68 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -251,12 +251,15 @@ build_outerr=$(mktemp build.outerr.XXXX) # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") +IFS='+' read -ra ACCEL_OVERRIDES_ARRAY <<< "$ACCEL_OVERRIDES" +EESSI_ACCELERATOR_TARGET_OVERRIDE=("${ACCEL_OVERRIDES_ARRAY[@]/#/accel/}") if [[ -n "$ACCEL_OVERRIDES" ]]; then - IFS='+' read -ra ACCEL_OVERRIDES_ARRAY <<< "$ACCEL_OVERRIDES" for ACCEL_OVERRIDE in "${ACCEL_OVERRIDES_ARRAY[@]}"; do # bot job config does not include accel subdirectory - export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/${ACCEL_OVERRIDE}" - echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='accel/${ACCEL_OVERRIDE}'" + #export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/${ACCEL_OVERRIDE}" + #echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='accel/${ACCEL_OVERRIDE}'" + export EESSI_ACCELERATOR_TARGET_OVERRIDE="${ACCEL_OVERRIDE}" + echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='${ACCEL_OVERRIDE}'" echo "Executing command to build software:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${BUILD_STEP_ARGS[@]}" echo " -- $software_layer_dir/install_software_layer.sh \"${INSTALL_SCRIPT_ARGS[@]}\" \"$@\" 2>&1 | tee -a ${build_outerr}" @@ -328,6 +331,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDE}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${EESSI_ACCELERATOR_TARGET_OVERRIDE}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${ACCEL_OVERRIDES_ARRAY[@]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0 From f585d447454334128156793693b78ce07c64fe6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:41:41 +0200 Subject: [PATCH 11/20] use new vars --- bot/build.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bot/build.sh b/bot/build.sh index d036bd68..ddb22f79 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -252,9 +252,10 @@ build_outerr=$(mktemp build.outerr.XXXX) # determine accelerator target (if any) from .architecture in ${JOB_CFG_FILE} ACCEL_OVERRIDES=$(cfg_get_value "architecture" "accelerator") IFS='+' read -ra ACCEL_OVERRIDES_ARRAY <<< "$ACCEL_OVERRIDES" -EESSI_ACCELERATOR_TARGET_OVERRIDE=("${ACCEL_OVERRIDES_ARRAY[@]/#/accel/}") +# prepend accel/ to all array elements +EESSI_ACCELERATOR_TARGET_OVERRIDES=("${ACCEL_OVERRIDES_ARRAY[@]/#/accel/}") if [[ -n "$ACCEL_OVERRIDES" ]]; then - for ACCEL_OVERRIDE in "${ACCEL_OVERRIDES_ARRAY[@]}"; do + for ACCEL_OVERRIDE in "${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}"; do # bot job config does not include accel subdirectory #export EESSI_ACCELERATOR_TARGET_OVERRIDE="accel/${ACCEL_OVERRIDE}" #echo "bot/build.sh: EESSI_ACCELERATOR_TARGET_OVERRIDE='accel/${ACCEL_OVERRIDE}'" @@ -331,6 +332,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDE}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${ACCEL_OVERRIDES_ARRAY[@]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0 From 06ba06dbc5f6a949d68b30150db897da1765ea73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 16:46:36 +0200 Subject: [PATCH 12/20] fix comment --- bot/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index ddb22f79..c65c4ddf 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -330,7 +330,7 @@ export EESSI_DEV_PROJECT=${EESSI_DEV_PROJECT} TMP_IN_CONTAINER=/tmp echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" -echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDE}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" +echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} From cee46efed85c3ae3c5cbd2bda7f054dad6121a3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 17:01:10 +0200 Subject: [PATCH 13/20] use quotes for create_tarball --- bot/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index c65c4ddf..8be534a0 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -332,6 +332,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0 From d1eb9792995bea3277aae997a20700542d76c11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 20:23:33 +0200 Subject: [PATCH 14/20] pass list of accelerators to create_tarball --- bot/build.sh | 2 +- create_tarball.sh | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/bot/build.sh b/bot/build.sh index 8be534a0..2de7ded1 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -332,6 +332,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${EESSI_ACCELERATOR_TARGET_OVERRIDES[*]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0 diff --git a/create_tarball.sh b/create_tarball.sh index d3251ba1..3867a992 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -11,7 +11,7 @@ fi eessi_tmpdir=$1 eessi_version=$2 cpu_arch_subdir=$3 -accel_subdir=$4 +accel_subdirs=$4 target_tarball=$5 tmpdir=`mktemp -d` @@ -64,8 +64,12 @@ fi # consider both CPU-only and accelerator subdirectories (if an accelerator was configured) sw_subdirs=${cpu_arch_subdir} -if [ -n "${accel_subdir}" ]; then - sw_subdirs="${sw_subdirs} ${cpu_arch_subdir}/${accel_subdir}" +if [ -n "${accel_subdirs}" ]; then + # convert accel_subdirs into an array... + read -r -a accel_subdirs <<< ${accel_subdirs} + # and prepend the cpu_arch_subdir to all elements + accel_subdirs="${accel_subdirs[@]/#/${cpu_arch_subdir}/}" + sw_subdirs="${sw_subdirs} ${accel_subdirs[@]}" fi for subdir in ${sw_subdirs}; do From e532c96a26418fd543371143ba852e3282315495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 20:40:23 +0200 Subject: [PATCH 15/20] use newlines as delimiter --- bot/build.sh | 2 +- create_tarball.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bot/build.sh b/bot/build.sh index 2de7ded1..750f1966 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -332,6 +332,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "${EESSI_ACCELERATOR_TARGET_OVERRIDES[*]}" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "$(printf '%s\n' \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\")" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0 diff --git a/create_tarball.sh b/create_tarball.sh index 3867a992..0d5a192b 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -66,7 +66,8 @@ fi sw_subdirs=${cpu_arch_subdir} if [ -n "${accel_subdirs}" ]; then # convert accel_subdirs into an array... - read -r -a accel_subdirs <<< ${accel_subdirs} + #read -r -a accel_subdirs <<< ${accel_subdirs} + mapfile -t accel_subdirs <<< "$accel_subdirs" # and prepend the cpu_arch_subdir to all elements accel_subdirs="${accel_subdirs[@]/#/${cpu_arch_subdir}/}" sw_subdirs="${sw_subdirs} ${accel_subdirs[@]}" From 90f01bae6f63a127efedc320ed28c94049f31410 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 21:01:28 +0200 Subject: [PATCH 16/20] use eval --- create_tarball.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/create_tarball.sh b/create_tarball.sh index 0d5a192b..c23bd834 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -11,7 +11,7 @@ fi eessi_tmpdir=$1 eessi_version=$2 cpu_arch_subdir=$3 -accel_subdirs=$4 +accel_subdirs="$4" target_tarball=$5 tmpdir=`mktemp -d` @@ -67,7 +67,8 @@ sw_subdirs=${cpu_arch_subdir} if [ -n "${accel_subdirs}" ]; then # convert accel_subdirs into an array... #read -r -a accel_subdirs <<< ${accel_subdirs} - mapfile -t accel_subdirs <<< "$accel_subdirs" + #mapfile -t accel_subdirs <<< "$accel_subdirs" + eval "accel_subdirs=(${accel_subdirs})" # and prepend the cpu_arch_subdir to all elements accel_subdirs="${accel_subdirs[@]/#/${cpu_arch_subdir}/}" sw_subdirs="${sw_subdirs} ${accel_subdirs[@]}" From 27050bdaa14ae6a6c357c9b365023d8ce3e12ba0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 23:40:51 +0200 Subject: [PATCH 17/20] debug --- create_tarball.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/create_tarball.sh b/create_tarball.sh index c23bd834..5f8dc8aa 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -64,17 +64,21 @@ fi # consider both CPU-only and accelerator subdirectories (if an accelerator was configured) sw_subdirs=${cpu_arch_subdir} +echo "accel_subdirs 1: ${accel_subdirs}" if [ -n "${accel_subdirs}" ]; then # convert accel_subdirs into an array... #read -r -a accel_subdirs <<< ${accel_subdirs} #mapfile -t accel_subdirs <<< "$accel_subdirs" eval "accel_subdirs=(${accel_subdirs})" + echo "accel_subdirs 2: ${accel_subdirs}" # and prepend the cpu_arch_subdir to all elements accel_subdirs="${accel_subdirs[@]/#/${cpu_arch_subdir}/}" + echo "accel_subdirs 3: ${accel_subdirs}" sw_subdirs="${sw_subdirs} ${accel_subdirs[@]}" fi for subdir in ${sw_subdirs}; do + echo "subdir: ${subdir}" if [ -d ${eessi_version}/software/${os}/${subdir}/modules ]; then # module files find ${eessi_version}/software/${os}/${subdir}/modules -type f \! -name '.wh.*' >> ${files_list} From d034d0de9637f3efa29698f56dd0320a81fe612e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Tue, 21 Apr 2026 23:55:51 +0200 Subject: [PATCH 18/20] use mapfile --- create_tarball.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/create_tarball.sh b/create_tarball.sh index 5f8dc8aa..745bcb04 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -68,8 +68,8 @@ echo "accel_subdirs 1: ${accel_subdirs}" if [ -n "${accel_subdirs}" ]; then # convert accel_subdirs into an array... #read -r -a accel_subdirs <<< ${accel_subdirs} - #mapfile -t accel_subdirs <<< "$accel_subdirs" - eval "accel_subdirs=(${accel_subdirs})" + mapfile -t accel_subdirs <<< "$accel_subdirs" + #eval "accel_subdirs=(${accel_subdirs})" echo "accel_subdirs 2: ${accel_subdirs}" # and prepend the cpu_arch_subdir to all elements accel_subdirs="${accel_subdirs[@]/#/${cpu_arch_subdir}/}" From d030bc8cce3e227612c1d1481fc6b447187ecba4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 22 Apr 2026 00:02:47 +0200 Subject: [PATCH 19/20] use %q --- bot/build.sh | 2 +- create_tarball.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bot/build.sh b/bot/build.sh index 750f1966..8bc4cf0c 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -332,6 +332,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "$(printf '%s\n' \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\")" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "$(printf '%q ' \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\")" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0 diff --git a/create_tarball.sh b/create_tarball.sh index 745bcb04..5f8dc8aa 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -68,8 +68,8 @@ echo "accel_subdirs 1: ${accel_subdirs}" if [ -n "${accel_subdirs}" ]; then # convert accel_subdirs into an array... #read -r -a accel_subdirs <<< ${accel_subdirs} - mapfile -t accel_subdirs <<< "$accel_subdirs" - #eval "accel_subdirs=(${accel_subdirs})" + #mapfile -t accel_subdirs <<< "$accel_subdirs" + eval "accel_subdirs=(${accel_subdirs})" echo "accel_subdirs 2: ${accel_subdirs}" # and prepend the cpu_arch_subdir to all elements accel_subdirs="${accel_subdirs[@]/#/${cpu_arch_subdir}/}" From e18733a55da5dfba6cb79de79fa404bd0d612438 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Wed, 22 Apr 2026 00:08:21 +0200 Subject: [PATCH 20/20] remove quotes --- bot/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/build.sh b/bot/build.sh index 8bc4cf0c..e6879e86 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -332,6 +332,6 @@ echo "Executing command to create tarball:" echo "$software_layer_dir/eessi_container.sh ${COMMON_ARGS[@]} ${TARBALL_STEP_ARGS[@]}" echo " -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr}" $software_layer_dir/eessi_container.sh "${COMMON_ARGS[@]}" "${TARBALL_STEP_ARGS[@]}" \ - -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} "$(printf '%q ' \"${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}\")" /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} + -- $software_layer_dir/create_tarball.sh ${TMP_IN_CONTAINER} ${EESSI_VERSION}${EESSI_SOFTWARE_LAYER_VERSION_SUFFIX} ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} $(printf '%q ' "${EESSI_ACCELERATOR_TARGET_OVERRIDES[@]}") /eessi_bot_job/${TARBALL} 2>&1 | tee -a ${tar_outerr} exit 0