diff --git a/bot/inspect.sh b/bot/inspect.sh index 6ffd227b..948762b7 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 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" 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..88a6464e 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/${EESSI_VERSION}-easybuild 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/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 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