Skip to content

{2023.06}[system,a64fx] circumvent fusemount issue, improve module use, and add some packages #1025

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion EESSI-install-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,23 @@ function copy_build_log() {
fi
}

function safe_module_use {
# add a given non-empty directory to $MODULEPATH if and only if it is not yet in
directory=${1}

if [[ -z ${directory+x} ]]; then
echo "safe_module_use: given directory unset or empty; not adding it to \$MODULEPATH (${MODULEPATH})"
return
fi
if [[ ":${MODULEPATH}:" == *":${directory}:"* ]]; then
echo "safe_module_use: directory '${directory}' is already in \$MODULEPATH (${MODULEPATH}); not adding it again"
return
else
echo "safe_module_use: directory '${directory}' is not yet in \$MODULEPATH (${MODULEPATH}); adding it"
module use ${directory}
fi
}

POSITIONAL_ARGS=()

while [[ $# -gt 0 ]]; do
Expand Down Expand Up @@ -251,7 +268,9 @@ export EESSI_CVMFS_INSTALL=1
# NOTE 3, we have to set a default for EASYBUILD_INSTALLPATH here in cases the
# EESSI-extend module itself needs to be installed.
export EASYBUILD_INSTALLPATH=${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}
echo "DEBUG: before loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'"
source load_eessi_extend_module.sh ${EESSI_VERSION}
echo "DEBUG: after loading EESSI-extend // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'"

# Install full CUDA SDK and cu* libraries in host_injections
# Hardcode this for now, see if it works
Expand Down Expand Up @@ -305,7 +324,10 @@ if [[ "${EESSI_CVMFS_REPO}" == /cvmfs/dev.eessi.io ]]; then
module use /cvmfs/software.eessi.io/versions/$EESSI_VERSION/software/${EESSI_OS_TYPE}/${EESSI_SOFTWARE_SUBDIR_OVERRIDE}/modules/all
fi

module use $EASYBUILD_INSTALLPATH/modules/all
echo "DEBUG: adding path '$EASYBUILD_INSTALLPATH/modules/all' to MODULEPATH='${MODULEPATH}'"
#module use $EASYBUILD_INSTALLPATH/modules/all
safe_module_use $EASYBUILD_INSTALLPATH/modules/all
echo "DEBUG: after adding module path // MODULEPATH='${MODULEPATH}'"

if [[ -z ${MODULEPATH} ]]; then
fatal_error "Failed to set up \$MODULEPATH?!"
Expand Down Expand Up @@ -373,8 +395,10 @@ else
done
fi

echo "DEBUG: before creating/updating lmod config files // EASYBUILD_INSTALLPATH='${EASYBUILD_INSTALLPATH}'"
export LMOD_CONFIG_DIR="${EASYBUILD_INSTALLPATH}/.lmod"
lmod_rc_file="$LMOD_CONFIG_DIR/lmodrc.lua"
echo "DEBUG: lmod_rc_file='${lmod_rc_file}'"
if [[ ! -z ${EESSI_ACCELERATOR_TARGET} ]]; then
# EESSI_ACCELERATOR_TARGET is set, so let's remove the accelerator path from $lmod_rc_file
lmod_rc_file=$(echo ${lmod_rc_file} | sed "s@/accel/${EESSI_ACCELERATOR_TARGET}@@")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
easyconfigs:
- EasyBuild-4.8.2.eb
- EasyBuild-4.9.0.eb
- EasyBuild-4.9.1.eb
- EasyBuild-4.9.2.eb
- EasyBuild-4.9.3.eb
- EasyBuild-4.9.4.eb:
options:
# see https://github.com/easybuilders/easybuild-easyconfigs/pull/21465
from-commit: 39cdebd7bd2cb4a9c170ee22439401316b2e7a25
- Nextflow-23.10.0.eb
- ReFrame-4.3.3.eb:
options:
# see https://github.com/easybuilders/easybuild-easyconfigs/pull/22183
from-commit: 2b2fe53c885799cbf13b77ddfa9532c48b296e9d
- ReFrame-4.6.2.eb
- Pandoc-3.6.2.eb:
options:
# see https://github.com/easybuilders/easybuild-easyconfigs/pull/22493
from-commit: da8ed20bad0dd1c6533c568f6c4fbb7c3d15342e
8 changes: 6 additions & 2 deletions eessi_container.sh
Original file line number Diff line number Diff line change
Expand Up @@ -735,8 +735,12 @@ fi

declare -a EESSI_FUSE_MOUNTS=()

# always mount cvmfs-config repo (to get access to EESSI repositories such as software.eessi.io)
EESSI_FUSE_MOUNTS+=("--fusemount" "container:cvmfs2 cvmfs-config.cern.ch /cvmfs/cvmfs-config.cern.ch")
# mount cvmfs-config repo (to get access to EESSI repositories such as software.eessi.io) unless env var
# EESSI_DO_NOT_MOUNT_CVMFS_CONFIG_CERN_CH is defined
if [ -z ${EESSI_DO_NOT_MOUNT_CVMFS_CONFIG_CERN_CH+x} ]; then
EESSI_FUSE_MOUNTS+=("--fusemount" "container:cvmfs2 cvmfs-config.cern.ch /cvmfs/cvmfs-config.cern.ch")
fi


# iterate over REPOSITORIES and either use repository-specific access mode or global setting (possibly a global default)
for cvmfs_repo in "${REPOSITORIES[@]}"
Expand Down