From 0f4e2fd68bbef75f668288d996e8c51381693937 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Sat, 29 Mar 2025 08:57:34 +0100 Subject: [PATCH 1/5] add capability to pass through arguments to container launch --- eessi_container.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/eessi_container.sh b/eessi_container.sh index 1cbc6c1c8d..c82d6b9936 100755 --- a/eessi_container.sh +++ b/eessi_container.sh @@ -89,6 +89,8 @@ display_help() { echo " -n | --nvidia MODE - configure the container to work with NVIDIA GPUs," echo " MODE==install for a CUDA installation, MODE==run to" echo " attach a GPU, MODE==all for both [default: false]" + echo " -p | --pass-through ARG - argument to pass through to the launch of the" + echo " container; can be given multiple times [default: not set]" echo " -r | --repository CFG - configuration file or identifier defining the" echo " repository to use; can be given multiple times;" echo " CFG may include a suffix ',access={ro,rw}' to" @@ -126,6 +128,7 @@ VERBOSE=0 STORAGE= LIST_REPOS=0 MODE="shell" +PASS_THROUGH=() SETUP_NVIDIA=0 REPOSITORIES=() RESUME= @@ -182,6 +185,10 @@ while [[ $# -gt 0 ]]; do NVIDIA_MODE="$2" shift 2 ;; + -p|--pass-through) + PASS_THROUGH+=("$2") + shift 2 + ;; -r|--repository) REPOSITORIES+=("$2") shift 2 @@ -842,6 +849,11 @@ if [ ! -z ${EESSI_SOFTWARE_SUBDIR_OVERRIDE} ]; then export APPTAINERENV_EESSI_SOFTWARE_SUBDIR_OVERRIDE=${EESSI_SOFTWARE_SUBDIR_OVERRIDE} fi +# add pass through arguments +for arg in "${PASS_THROUGH[@]}"; do + ADDITIONAL_CONTAINER_OPTIONS+=(${arg}) +done + echo "Launching container with command (next line):" echo "singularity ${RUN_QUIET} ${MODE} ${ADDITIONAL_CONTAINER_OPTIONS[@]} ${EESSI_FUSE_MOUNTS[@]} ${CONTAINER} $@" singularity ${RUN_QUIET} ${MODE} "${ADDITIONAL_CONTAINER_OPTIONS[@]}" "${EESSI_FUSE_MOUNTS[@]}" ${CONTAINER} "$@" From ff6c525d5a1c9f8318f467d4bc410ba739ac9371 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Sat, 29 Mar 2025 09:00:22 +0100 Subject: [PATCH 2/5] add extra bind paths --- bot/build.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bot/build.sh b/bot/build.sh index ab28be4124..c755256e80 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -184,6 +184,11 @@ if [[ "${REPOSITORY_NAME}" == "dev.eessi.io" ]]; then COMMON_ARGS+=("--repository" "software.eessi.io,access=ro") fi +# add $software_layer_dir and /dev as extra bind paths +# - $software_layer_dir is needed because it is used as prefix for running scripts +# - /dev is needed to access /dev/fuse +COMMON_ARGS+=("--extra-bind-paths" "${software_layer_dir},/dev") + # make sure to use the same parent dir for storing tarballs of tmp PREVIOUS_TMP_DIR=${PWD}/previous_tmp From 96f68263f80ff926eb849dbb5a18a0923262a4ec Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Sat, 29 Mar 2025 09:03:01 +0100 Subject: [PATCH 3/5] pass through --contain --- bot/build.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bot/build.sh b/bot/build.sh index c755256e80..2b35c63551 100755 --- a/bot/build.sh +++ b/bot/build.sh @@ -189,6 +189,10 @@ fi # - /dev is needed to access /dev/fuse COMMON_ARGS+=("--extra-bind-paths" "${software_layer_dir},/dev") +# pass through '--contain' to avoid leaking in scripts into the container session +# note, --pass-through can be used multiple times if needed +COMMON_ARGS+=("--pass-through" "--contain") + # make sure to use the same parent dir for storing tarballs of tmp PREVIOUS_TMP_DIR=${PWD}/previous_tmp From 3c617db4fdf0116ba24ea58ac11b0503699604c4 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Sat, 29 Mar 2025 09:14:03 +0100 Subject: [PATCH 4/5] {2023.06}[2023b,grace] apps originally built with EB 4.9.2 --- .../grace/eessi-2023.06-eb-4.9.4-2023b.yml | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml b/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml index 991769ea9f..75ed7694f0 100644 --- a/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml +++ b/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml @@ -105,3 +105,41 @@ easyconfigs: # options: # from-pr: 20792 - Valgrind-3.23.0-gompi-2023b.eb +# from here on easyconfigs were originally built with EB 4.9.2 + - IPython-8.17.2-GCCcore-13.2.0.eb + - dlb-3.4-gompi-2023b.eb +# originally built with EB 4.9.2, PR 20889 was included since EB 4.9.3 +# - pystencils-1.3.4-gfbf-2023b.eb: +# options: +# # see https://github.com/easybuilders/easybuild-easyconfigs/pull/20889 +# from-commit: c66c4788a17f7e4f55aa23f9fdb782aad97c9ce7 + - pystencils-1.3.4-gfbf-2023b.eb +# originally built with EB 4.9.2, PR 21017 was included since EB 4.9.3, PR 3393 +# was included since EB 4.9.3 +# - Extrae-4.2.0-gompi-2023b.eb: +# options: +# # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21017 +# from-commit: 120f4d56efebd2bc61382db4c84a664a339c66cf +# # see https://github.com/easybuilders/easybuild-easyblocks/pull/3393 +# include-easyblocks-from-commit: c4951c78d62fa5cf8e9f6fe0ead212d2a4d7cb9c + - Extrae-4.2.0-gompi-2023b.eb +# originally built with EB 4.9.2, PR 21034 was included since EB 4.9.3 +# - pyMBE-0.8.0-foss-2023b.eb: +# options: +# # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21034 +# from-commit: 76e7fc6657bab64bfbec826540a3a8f0040258f2 + - pyMBE-0.8.0-foss-2023b.eb +# originally built with EB 4.9.2, PR 21200 was included since EB 4.9.3 +# - STAR-2.7.11b-GCC-13.2.0.eb: +# options: +# # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21200 +# from-commit: 765ba900daf5953e306c4dad896febe52fdd6c00 + - STAR-2.7.11b-GCC-13.2.0.eb + - HPL-2.3-foss-2023b.eb +# originally built with EB 4.9.2, PR 21366 was included since EB 4.9.3 +# - R-bundle-CRAN-2024.06-foss-2023b.eb: +# options: +# # see https://github.com/easybuilders/easybuild-easyconfigs/pull/21366 +# # we use a commit from the Brunsli PR here to get rid of the Highway dependency +# from-commit: 1736a123b1685836452587a5c51793257570bb2d + - R-bundle-CRAN-2024.06-foss-2023b.eb From 5165d3478ef275a4e8115dfcb2759c23a59cff43 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Sat, 29 Mar 2025 10:32:54 +0100 Subject: [PATCH 5/5] need to use from-commit for Boost.MPI --- .../2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml b/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml index 75ed7694f0..4e8179a513 100644 --- a/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml +++ b/easystacks/software.eessi.io/2023.06/grace/eessi-2023.06-eb-4.9.4-2023b.yml @@ -123,6 +123,12 @@ easyconfigs: # # see https://github.com/easybuilders/easybuild-easyblocks/pull/3393 # include-easyblocks-from-commit: c4951c78d62fa5cf8e9f6fe0ead212d2a4d7cb9c - Extrae-4.2.0-gompi-2023b.eb + - Boost.MPI-1.83.0-gompi-2023b.eb: + options: + # source URLs for Boost.* have changed, corresponding PR is + # https://github.com/easybuilders/easybuild-easyconfigs/pull/22240 + # Boost.MPI is a dependency of pyMBE + from-commit: e610fe1ac5393d1de668a466fdaaea74c580ee03 # originally built with EB 4.9.2, PR 21034 was included since EB 4.9.3 # - pyMBE-0.8.0-foss-2023b.eb: # options: