From 081331dfc5a38efb42dd24afabbd3bdb93462754 Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Tue, 8 Jul 2025 16:40:17 +0200 Subject: [PATCH 1/4] Remove configure_easybuild script --- bot/inspect.sh | 12 +++---- check_missing_installations.sh | 3 +- configure_easybuild | 65 ---------------------------------- load_eessi_extend_module.sh | 2 +- 4 files changed, 8 insertions(+), 74 deletions(-) delete mode 100644 configure_easybuild diff --git a/bot/inspect.sh b/bot/inspect.sh index 6ffd227b..aa606b7c 100755 --- a/bot/inspect.sh +++ b/bot/inspect.sh @@ -382,15 +382,12 @@ else fatal_error "Failed to initialize Lmod?! (see output in ${ml_version_out}" fi -echo ">> Configuring EasyBuild..." -source $TOPDIR/configure_easybuild - echo ">> Setting up \$MODULEPATH..." # make sure no modules are loaded module --force purge # ignore current $MODULEPATH entirely module unuse $MODULEPATH -module use $EASYBUILD_INSTALLPATH/modules/all +module use $EESSI_SOFTWARE_PATH/modules/all if [[ -z ${MODULEPATH} ]]; then fatal_error "Failed to set up \$MODULEPATH?!" else @@ -405,14 +402,15 @@ echo " - job directory is $HOME (\$HOME), check for slurm-*.out file" echo " - temporary data of the job is available at /tmp" echo " - note, the prefix $EESSI_PREFIX is writable" echo -echo "You may want to load an EasyBuild module. The inspect.sh script does not load" -echo "that automatically, because multiple versions might have been used by the job." +echo "You may want to load an EasyBuild/EESSI-extend modules. The inspect.sh script does not" +echo "load those automatically, because multiple versions might have been used by the job." echo "Choose an EasyBuild version (see installed versions with 'module avail EasyBuild')" echo "and simply run" echo echo "module load EasyBuild/_VERSION_" +echo "module load EEESSI-extend" echo -echo "Replace _VERSION_ with the version you want to use." +echo "Replace _VERSION_ with the EasyBuild version you want/need to use." echo EOF diff --git a/check_missing_installations.sh b/check_missing_installations.sh index 79f6acc7..fd4ffb9c 100755 --- a/check_missing_installations.sh +++ b/check_missing_installations.sh @@ -27,7 +27,8 @@ LOCAL_TMPDIR=$(mktemp -d) source $TOPDIR/scripts/utils.sh -source $TOPDIR/configure_easybuild +# configure EasyBuild via EESSI-extend +module load EESSI-extend echo ">> Active EasyBuild configuration when checking for missing installations:" ${EB:-eb} --show-config diff --git a/configure_easybuild b/configure_easybuild deleted file mode 100644 index 5c4958cf..00000000 --- a/configure_easybuild +++ /dev/null @@ -1,65 +0,0 @@ -# if $WORKDIR is not defined, use a local temporary directory -if [ -z ${WORKDIR} ]; then - WORKDIR=$(mktemp -d) -fi - -export EASYBUILD_PREFIX=${WORKDIR}/easybuild -export EASYBUILD_INSTALLPATH=${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR} -export EASYBUILD_SOURCEPATH=${WORKDIR}/easybuild/sources:${EESSI_SOURCEPATH} - -# take into account accelerator target (if specified via $EESSI_ACCELERATOR_TARGET) -if [ ! -z ${EESSI_ACCELERATOR_TARGET} ]; then - if [[ "${EESSI_ACCELERATOR_TARGET}" =~ ^nvidia/cc[0-9][0-9]$ ]]; then - # tweak path to installation directories used by EasyBuild - export EASYBUILD_INSTALLPATH=${EASYBUILD_INSTALLPATH}/accel/${EESSI_ACCELERATOR_TARGET} - # nvidia/cc80 should result in setting $EASYBUILD_CUDA_COMPUTE_CAPABILITIES to '8.0' - export EASYBUILD_CUDA_COMPUTE_CAPABILITIES=$(echo ${EESSI_ACCELERATOR_TARGET} | cut -f2 -d/ | sed 's/^cc\([0-9]\)\([0-9]\)/\1.\2/g') - else - fatal_error "Incorrect value for \$EESSI_ACCELERATOR_TARGET: ${EESSI_ACCELERATOR_TARGET}" - fi -else - echo_yellow "(configure_easybuild) \$EESSI_ACCELERATOR_TARGET not defined" -fi - -# just ignore OS dependencies for now, see https://github.com/easybuilders/easybuild-framework/issues/3430 -export EASYBUILD_IGNORE_OSDEPS=1 - -export EASYBUILD_SYSROOT=${EPREFIX} - -export EASYBUILD_DEBUG=1 -export EASYBUILD_TRACE=1 -export EASYBUILD_ZIP_LOGS=bzip2 - -export EASYBUILD_RPATH=1 -export EASYBUILD_FILTER_ENV_VARS=LD_LIBRARY_PATH -export EASYBUILD_READ_ONLY_INSTALLDIR=1 - -# assume that eb_hooks.py is located in same directory as this script (configure_easybuild) -TOPDIR=$(dirname $(realpath $BASH_SOURCE)) -export EASYBUILD_HOOKS=$(realpath ${TOPDIR}/eb_hooks.py) -# make sure hooks are available, so we can produce a clear error message -if [ ! -f $EASYBUILD_HOOKS ]; then - fatal_error "$EASYBUILD_HOOKS does not exist!" -fi - -# note: filtering Bison may break some installations, like Qt5 (see https://github.com/EESSI/software-layer/issues/49) -# filtering pkg-config breaks R-bundle-Bioconductor installation (see also https://github.com/easybuilders/easybuild-easyconfigs/pull/11104) -DEPS_TO_FILTER=Autoconf,Automake,Autotools,binutils,bzip2,DBus,flex,gettext,gperf,help2man,intltool,libreadline,libtool,M4,makeinfo,ncurses,ParMETIS,util-linux,XZ,zlib -# For aarch64 we need to also filter out Yasm. -# See https://github.com/easybuilders/easybuild-easyconfigs/issues/11190 -if [[ "$EESSI_CPU_FAMILY" == "aarch64" ]]; then - DEPS_TO_FILTER="${DEPS_TO_FILTER},Yasm" -fi - -# Version 23.06 of EESSI ships PSM2 in the compat layer, so we can filter this out while retaining support for OFA fabric -# (longer term this is probably not the right move as PSM2 should be configured with accelerator support, hence the restricted version) -if [[ "$EESSI_VERSION" == "2023.06" ]]; then - DEPS_TO_FILTER="${DEPS_TO_FILTER},PSM2" -fi - -export EASYBUILD_FILTER_DEPS=$DEPS_TO_FILTER - -export EASYBUILD_MODULE_EXTENSIONS=1 - -# need to enable use of experimental features, since we're using easystack files -export EASYBUILD_EXPERIMENTAL=1 diff --git a/load_eessi_extend_module.sh b/load_eessi_extend_module.sh index 969e9e18..05188613 100755 --- a/load_eessi_extend_module.sh +++ b/load_eessi_extend_module.sh @@ -96,7 +96,7 @@ if [ "${install_eessi_extend}" = true ] || [ "${rebuild_eessi_extend}" = true ]; ORIG_PATH=${PATH} ORIG_PYTHONPATH=${PYTHONPATH} - # source configure_easybuild to use correct eb settings + # minimally configure easybuild to get EESSI-extend in the right place ( export EASYBUILD_PREFIX=${TMPDIR}/easybuild export EASYBUILD_READ_ONLY_INSTALLDIR=1 From 454b35881565767acf770db8ea1e3511cc12aa8c Mon Sep 17 00:00:00 2001 From: ocaisa Date: Tue, 8 Jul 2025 16:46:45 +0200 Subject: [PATCH 2/4] Update bot/inspect.sh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bob Dröge --- bot/inspect.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot/inspect.sh b/bot/inspect.sh index aa606b7c..948762b7 100755 --- a/bot/inspect.sh +++ b/bot/inspect.sh @@ -402,7 +402,7 @@ echo " - job directory is $HOME (\$HOME), check for slurm-*.out file" echo " - temporary data of the job is available at /tmp" echo " - note, the prefix $EESSI_PREFIX is writable" echo -echo "You may want to load an EasyBuild/EESSI-extend modules. The inspect.sh script does not" +echo "You may want to load an EasyBuild/EESSI-extend module. The inspect.sh script does not" echo "load those automatically, because multiple versions might have been used by the job." echo "Choose an EasyBuild version (see installed versions with 'module avail EasyBuild')" echo "and simply run" From a05281739239d61172eca116906ae6c0915b102f Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Tue, 8 Jul 2025 17:03:22 +0200 Subject: [PATCH 3/4] Load explicit version of EESSI-extend --- check_missing_installations.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check_missing_installations.sh b/check_missing_installations.sh index fd4ffb9c..88a6464e 100755 --- a/check_missing_installations.sh +++ b/check_missing_installations.sh @@ -28,7 +28,7 @@ LOCAL_TMPDIR=$(mktemp -d) source $TOPDIR/scripts/utils.sh # configure EasyBuild via EESSI-extend -module load EESSI-extend +module load EESSI-extend/${EESSI_VERSION}-easybuild echo ">> Active EasyBuild configuration when checking for missing installations:" ${EB:-eb} --show-config From 8ac397a1986ba04b9e3f933a49af7e492902e18e Mon Sep 17 00:00:00 2001 From: Alan O'Cais Date: Tue, 8 Jul 2025 17:10:02 +0200 Subject: [PATCH 4/4] `create_tarball.sh` not consistent with archdetect --- create_tarball.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/create_tarball.sh b/create_tarball.sh index b17698ce..2fe15531 100755 --- a/create_tarball.sh +++ b/create_tarball.sh @@ -5,7 +5,7 @@ set -e base_dir=$(dirname $(realpath $0)) if [ $# -ne 5 ]; then - echo "ERROR: Usage: $0 " >&2 + echo "ERROR: Usage: $0 " >&2 exit 1 fi eessi_tmpdir=$1 @@ -63,7 +63,7 @@ if [ -d ${eessi_version}/init ]; then fi # consider both CPU-only and accelerator subdirectories -for subdir in ${cpu_arch_subdir} ${cpu_arch_subdir}/accel/${accel_subdir}; do +for subdir in ${cpu_arch_subdir} ${cpu_arch_subdir}/${accel_subdir}; do if [ -d ${eessi_version}/software/${os}/${subdir}/modules ]; then # module files