From 0fcaacb48872afd97d8f7276609e4f52bdb0d61a Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Tue, 19 May 2026 17:23:06 +0200 Subject: [PATCH 1/8] Update site package behavior to allow specifying a custom EESSI_SITE_SOFTWARE_PREFIX, rather than only supporting the default under host_injections --- init/modules/EESSI/2023.06.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index fca0d69c..dafd3051 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -125,7 +125,16 @@ local eessi_modules_subdir = pathJoin("modules", "all") -- eessi_module_path is the location of the _CPU_ module files, e.g., -- /cvmfs/software.eessi.io/versions//software/linux/x86_64/amd/zen3/modules/all local eessi_module_path = pathJoin(eessi_software_path, eessi_modules_subdir) -local eessi_site_software_path = string.gsub(eessi_software_path, "versions", "host_injections") +local eessi_site_software_path +-- If EESSI_SITE_SOFTWARE_PREFIX is defined, replace /cvmfs/software.eessi.io (or more generally EESSI_CVMFS_REPO) +-- by that prefix. This ensures that the directory still contains the os/vendor/arch/micro-arch/accelerator etc +-- If it is not defined, default to a site installation prefix under host_injections +site_prefix = os.getenv("EESSI_SITE_SOFTWARE_PREFIX") +if site_prefix then + eessi_site_software_path = string.gsub(eessi_software_path, os.getenv("EESSI_CVMFS_REPO"), site_prefix) +else + eessi_site_software_path = string.gsub(eessi_software_path, "versions", "host_injections") +end -- Site module path is the same as the EESSI one, but with `versions` changed to `host_injections`, e.g., -- /cvmfs/software.eessi.io/host_injections//software/linux/x86_64/amd/zen3/modules/all local eessi_site_module_path = pathJoin(eessi_site_software_path, eessi_modules_subdir) @@ -160,8 +169,14 @@ if ( mode() ~= "spider" ) then prepend_path("MODULEPATH", eessi_module_path) eessiDebug("Adding " .. eessi_module_path .. " to MODULEPATH") end + +-- Make sure the EESSI cache is found, this is specified in the lmodrc.lua in the eessi_software_path prepend_path("LMOD_RC", pathJoin(eessi_software_path, ".lmod", "lmodrc.lua")) eessiDebug("Adding " .. pathJoin(eessi_software_path, ".lmod", "lmodrc.lua") .. " to LMOD_RC") +-- Make sure that a cache for site installations can also be found +prepend_path("LMOD_RC", pathJoin(eessi_site_software_path , ".lmod", "lmodrc.lua")) +eessiDebug("Adding " .. pathJoin(eessi_site_software_path , ".lmod", "lmodrc.lua") .. " to LMOD_RC") + -- Use pushenv for LMOD_PACKAGE_PATH as this may be set locally by the site pushenv("LMOD_PACKAGE_PATH", pathJoin(eessi_software_path, ".lmod")) eessiDebug("Setting LMOD_PACKAGE_PATH to " .. pathJoin(eessi_software_path, ".lmod")) From a226976273e07c2e2bb1863a5324029d29fb16b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 22 May 2026 09:27:26 +0200 Subject: [PATCH 2/8] use eessi_repo variable instead of os.getenv("EESSI_CVMFS_REPO") --- init/modules/EESSI/2023.06.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 6c420381..cb14e3bd 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -140,7 +140,7 @@ local eessi_site_software_path -- If it is not defined, default to a site installation prefix under host_injections site_prefix = os.getenv("EESSI_SITE_SOFTWARE_PREFIX") if site_prefix then - eessi_site_software_path = string.gsub(eessi_software_path, os.getenv("EESSI_CVMFS_REPO"), site_prefix) + eessi_site_software_path = string.gsub(eessi_software_path, eessi_repo, site_prefix) else eessi_site_software_path = string.gsub(eessi_software_path, "versions", "host_injections") end From 81519429640de1b4fd56d272795cdfdcaac12da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 22 May 2026 10:02:48 +0200 Subject: [PATCH 3/8] take EESSI_SITE_SOFTWARE_PREFIX into account, and add site's Lmod RC file to LMOD_RC --- init/eessi_environment_variables | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/init/eessi_environment_variables b/init/eessi_environment_variables index bd5b2c4b..4bc1f884 100644 --- a/init/eessi_environment_variables +++ b/init/eessi_environment_variables @@ -119,7 +119,20 @@ if [ -d $EESSI_PREFIX ]; then if [ ! -z $EESSI_BASIC_ENV ]; then show_msg "Only setting up basic environment, so we're done" elif [ -d $EESSI_SOFTWARE_PATH ]; then - export EESSI_SITE_SOFTWARE_PATH=${EESSI_SOFTWARE_PATH/versions/host_injections} + if [ -z ${EESSI_SITE_SOFTWARE_PREFIX} ]; then + site_software_path=${EESSI_SOFTWARE_PATH/versions/host_injections} + else + site_software_path=${EESSI_SOFTWARE_PATH/$EESSI_SITE_SOFTWARE_PREFIX/$EESSI_CVMFS_REPO} + fi + export EESSI_SITE_SOFTWARE_PATH=${site_software_path} + # Prepend site's lmodrc.lua path to $LMOD_RC + show_msg "Adding Lmod site configuration file path ($site_lmod_rc_file) to $LMOD_RC" + site_lmod_rc_file="$EESSI_SITE_SOFTWARE_PATH/.lmod/lmodrc.lua" + if [ -z ${LMOD_RC} ]; then + export LMOD_RC=$site_lmod_rc_file + else + export LMOD_RC=$site_lmod_rc_file:$LMOD_RC + fi show_msg "Using ${EESSI_SITE_SOFTWARE_PATH} as the site extension directory for installations." EESSI_SITE_ACCEL_SOFTWARE_PATH=${EESSI_ACCEL_SOFTWARE_PATH/versions/host_injections} show_msg "Using ${EESSI_SITE_ACCEL_SOFTWARE_PATH} as the site extension directory for accelerated installations." From dc32c97a5398808f210a0c6f801273739fb279c1 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Fri, 22 May 2026 14:47:21 +0200 Subject: [PATCH 4/8] Add proper quoting everywhere. Most of these never went wrong because they are always set (by sourceing early), but it's bad style / practice --- init/eessi_environment_variables | 72 ++++++++++++++++---------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/init/eessi_environment_variables b/init/eessi_environment_variables index 4bc1f884..2e961678 100644 --- a/init/eessi_environment_variables +++ b/init/eessi_environment_variables @@ -18,11 +18,11 @@ function show_msg { # set up minimal environment: $EESSI_PREFIX, $EESSI_VERSION, $EESSI_OS_TYPE, $EESSI_CPU_FAMILY, $EPREFIX source $EESSI_INIT_DIR_PATH/minimal_eessi_env -if [ -d $EESSI_PREFIX ]; then +if [ -d "$EESSI_PREFIX" ]; then show_msg "Found EESSI repo @ $EESSI_PREFIX!" - export EESSI_EPREFIX=$EPREFIX - if [ -d $EESSI_EPREFIX ]; then + export EESSI_EPREFIX="$EPREFIX" + if [ -d "$EESSI_EPREFIX" ]; then # determine subdirectory in software layer if [ "$EESSI_USE_ARCHDETECT" == "1" ]; then @@ -32,8 +32,8 @@ if [ -d $EESSI_PREFIX ]; then # under $EESSI_PREFIX/software/$EESSI_OS_TYPE; if so use the architecture as best match IFS=: read -r -a archs <<< "${all_cpupaths}" for arch in "${archs[@]}"; do - if [ -d ${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${arch} ]; then - export EESSI_SOFTWARE_SUBDIR=${arch} + if [ -d "${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${arch}" ]; then + export EESSI_SOFTWARE_SUBDIR="${arch}" show_msg "archdetect says ${EESSI_SOFTWARE_SUBDIR}" break fi @@ -58,23 +58,23 @@ if [ -d $EESSI_PREFIX ]; then set -e fi - if [[ $accelpath_exit_code -eq 0 ]]; then + if [[ "$accelpath_exit_code" -eq 0 ]]; then export EESSI_ACCEL_SUBDIR=$(tail -n 1 $tmpout && rm -f $tmpout) - if [ -z ${EESSI_ACCEL_SUBDIR} ]; then + if [ -z "${EESSI_ACCEL_SUBDIR}" ]; then error "accelerator detection with archdetect worked, but no result was returned?!" else # allow specifying different parent directory for accel/* subdirectory via $EESSI_ACCEL_SOFTWARE_SUBDIR_OVERRIDE - EESSI_ACCEL_SOFTWARE_SUBDIR=${EESSI_ACCEL_SOFTWARE_SUBDIR_OVERRIDE:-$EESSI_SOFTWARE_SUBDIR} + EESSI_ACCEL_SOFTWARE_SUBDIR="${EESSI_ACCEL_SOFTWARE_SUBDIR_OVERRIDE:-$EESSI_SOFTWARE_SUBDIR}" # path to where accel/* subdirectory is located - EESSI_ACCEL_SOFTWARE_PATH=${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_ACCEL_SOFTWARE_SUBDIR} - if [ ! -d $EESSI_ACCEL_SOFTWARE_PATH/${EESSI_ACCEL_SUBDIR} ]; then + EESSI_ACCEL_SOFTWARE_PATH="${EESSI_PREFIX}/software/${EESSI_OS_TYPE}/${EESSI_ACCEL_SOFTWARE_SUBDIR}" + if [ ! -d "$EESSI_ACCEL_SOFTWARE_PATH/${EESSI_ACCEL_SUBDIR}" ]; then # We should try to use the fallback compute capability EESSI_ACCELERATOR_TARGET="${EESSI_ACCEL_SUBDIR::-1}0" show_msg "archdetect found no supported accelerator ${EESSI_ACCEL_SUBDIR}, falling back to ${EESSI_ACCELERATOR_TARGET}" else EESSI_ACCELERATOR_TARGET="${EESSI_ACCEL_SUBDIR}" fi - if [ -d $EESSI_ACCEL_SOFTWARE_PATH/${EESSI_ACCELERATOR_TARGET} ]; then + if [ -d "$EESSI_ACCEL_SOFTWARE_PATH/${EESSI_ACCELERATOR_TARGET}" ]; then show_msg "archdetect found supported accelerator for CPU target ${EESSI_ACCEL_SOFTWARE_SUBDIR}: ${EESSI_ACCELERATOR_TARGET}" export EESSI_ACCELERATOR_TARGET else @@ -83,7 +83,7 @@ if [ -d $EESSI_PREFIX ]; then fi else show_msg "archdetect could not detect any accelerators" - rm -f $tmpout + rm -f "$tmpout" fi elif [ "$EESSI_USE_ARCHSPEC" == "1" ]; then # note: eessi_software_subdir_for_host.py will pick up value from $EESSI_SOFTWARE_SUBDIR_OVERRIDE if it's defined! @@ -93,15 +93,15 @@ if [ -d $EESSI_PREFIX ]; then else error "Don't know how to detect host CPU, giving up!" fi - if [ ! -z $EESSI_SOFTWARE_SUBDIR ]; then + if [ ! -z "$EESSI_SOFTWARE_SUBDIR" ]; then show_msg "Using ${EESSI_SOFTWARE_SUBDIR} as software subdirectory." - export EESSI_SOFTWARE_PATH=$EESSI_PREFIX/software/$EESSI_OS_TYPE/$EESSI_SOFTWARE_SUBDIR + export EESSI_SOFTWARE_PATH="$EESSI_PREFIX/software/$EESSI_OS_TYPE/$EESSI_SOFTWARE_SUBDIR" # Configure our LMOD export LMOD_CONFIG_DIR="$EESSI_SOFTWARE_PATH/.lmod" lmod_rc_file="$LMOD_CONFIG_DIR/lmodrc.lua" - if [ -f $lmod_rc_file ]; then + if [ -f "$lmod_rc_file" ]; then show_msg "Found Lmod configuration file at $lmod_rc_file" export LMOD_RC="$lmod_rc_file" else @@ -110,31 +110,31 @@ if [ -d $EESSI_PREFIX ]; then export LMOD_PACKAGE_PATH="$EESSI_SOFTWARE_PATH/.lmod" lmod_sitepackage_file="$LMOD_PACKAGE_PATH/SitePackage.lua" - if [ -f $lmod_sitepackage_file ]; then + if [ -f "$lmod_sitepackage_file" ]; then show_msg "Found Lmod SitePackage.lua file at $lmod_sitepackage_file" else error "Lmod SitePackage.lua file not found at $lmod_sitepackage_file" fi - if [ ! -z $EESSI_BASIC_ENV ]; then + if [ ! -z "$EESSI_BASIC_ENV" ]; then show_msg "Only setting up basic environment, so we're done" - elif [ -d $EESSI_SOFTWARE_PATH ]; then - if [ -z ${EESSI_SITE_SOFTWARE_PREFIX} ]; then - site_software_path=${EESSI_SOFTWARE_PATH/versions/host_injections} + elif [ -d "$EESSI_SOFTWARE_PATH" ]; then + if [ -z "${EESSI_SITE_SOFTWARE_PREFIX}" ]; then + site_software_path="${EESSI_SOFTWARE_PATH/versions/host_injections}" else - site_software_path=${EESSI_SOFTWARE_PATH/$EESSI_SITE_SOFTWARE_PREFIX/$EESSI_CVMFS_REPO} + site_software_path="${EESSI_SOFTWARE_PATH/$EESSI_SITE_SOFTWARE_PREFIX/$EESSI_CVMFS_REPO}" fi - export EESSI_SITE_SOFTWARE_PATH=${site_software_path} + export EESSI_SITE_SOFTWARE_PATH="${site_software_path}" # Prepend site's lmodrc.lua path to $LMOD_RC show_msg "Adding Lmod site configuration file path ($site_lmod_rc_file) to $LMOD_RC" site_lmod_rc_file="$EESSI_SITE_SOFTWARE_PATH/.lmod/lmodrc.lua" - if [ -z ${LMOD_RC} ]; then - export LMOD_RC=$site_lmod_rc_file + if [ -z "${LMOD_RC}" ]; then + export LMOD_RC="$site_lmod_rc_file" else - export LMOD_RC=$site_lmod_rc_file:$LMOD_RC + export LMOD_RC="$site_lmod_rc_file:$LMOD_RC" fi show_msg "Using ${EESSI_SITE_SOFTWARE_PATH} as the site extension directory for installations." - EESSI_SITE_ACCEL_SOFTWARE_PATH=${EESSI_ACCEL_SOFTWARE_PATH/versions/host_injections} + EESSI_SITE_ACCEL_SOFTWARE_PATH="${EESSI_ACCEL_SOFTWARE_PATH/versions/host_injections}" show_msg "Using ${EESSI_SITE_ACCEL_SOFTWARE_PATH} as the site extension directory for accelerated installations." # Allow for use of alternative module tree shipped with EESSI if [ -z ${EESSI_MODULE_SUBDIR+x} ]; then @@ -145,26 +145,26 @@ if [ -d $EESSI_PREFIX ]; then if [ -z ${EESSI_CUSTOM_MODULEPATH+x} ]; then # EESSI_CUSTOM_MODULEPATH not set so we use our defaults - EESSI_MODULEPATH=$EESSI_SOFTWARE_PATH/$EESSI_MODULE_SUBDIR + EESSI_MODULEPATH="$EESSI_SOFTWARE_PATH/$EESSI_MODULE_SUBDIR" else show_msg "Using defined environment variable \$EESSI_CUSTOM_MODULEPATH to set EESSI_MODULEPATH." - EESSI_MODULEPATH=$EESSI_CUSTOM_MODULEPATH + EESSI_MODULEPATH="$EESSI_CUSTOM_MODULEPATH" fi - if [ -d $EESSI_MODULEPATH ]; then - export EESSI_MODULEPATH=$EESSI_MODULEPATH + if [ -d "$EESSI_MODULEPATH" ]; then + export EESSI_MODULEPATH="$EESSI_MODULEPATH" show_msg "Using ${EESSI_MODULEPATH} as the directory to be added to MODULEPATH." - export EESSI_SITE_MODULEPATH=$EESSI_SITE_SOFTWARE_PATH/$EESSI_MODULE_SUBDIR + export EESSI_SITE_MODULEPATH="$EESSI_SITE_SOFTWARE_PATH/$EESSI_MODULE_SUBDIR" show_msg "Using ${EESSI_SITE_MODULEPATH} as the site extension directory to be added to MODULEPATH." else error "EESSI module path at $EESSI_MODULEPATH not found!" false fi - if [ -d ${EESSI_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR} ]; then - export EESSI_MODULEPATH_ACCEL=${EESSI_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR} + if [ -d "${EESSI_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" ]; then + export EESSI_MODULEPATH_ACCEL="${EESSI_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" show_msg "Using ${EESSI_MODULEPATH_ACCEL} as additional directory (for accelerators) to be added to MODULEPATH." - export EESSI_SITE_MODULEPATH_ACCEL=${EESSI_SITE_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR} + export EESSI_SITE_MODULEPATH_ACCEL="${EESSI_SITE_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" show_msg "Using ${EESSI_SITE_MODULEPATH_ACCEL} as additional site extension directory (for accelerators) to be added to MODULEPATH." fi @@ -173,9 +173,9 @@ if [ -d $EESSI_PREFIX ]; then # curl as a module file we could instead do this via a `modluafooter` in an EasyBuild # hook (or via an Lmod hook) rhel_libcurl_file="/etc/pki/tls/certs/ca-bundle.crt" - if [ -f $rhel_libcurl_file ]; then + if [ -f "$rhel_libcurl_file" ]; then show_msg "Found libcurl CAs file at RHEL location, setting CURL_CA_BUNDLE" - export CURL_CA_BUNDLE=$rhel_libcurl_file + export CURL_CA_BUNDLE="$rhel_libcurl_file" fi else From 22c9c9bc1184a16f0eb121da978a9f6d3e669386 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Fri, 22 May 2026 15:02:07 +0200 Subject: [PATCH 5/8] Add verbosito for EESSI_SITE_SOFTWARE_PATH --- init/eessi_environment_variables | 1 + 1 file changed, 1 insertion(+) diff --git a/init/eessi_environment_variables b/init/eessi_environment_variables index 2e961678..fb3eee69 100644 --- a/init/eessi_environment_variables +++ b/init/eessi_environment_variables @@ -125,6 +125,7 @@ if [ -d "$EESSI_PREFIX" ]; then site_software_path="${EESSI_SOFTWARE_PATH/$EESSI_SITE_SOFTWARE_PREFIX/$EESSI_CVMFS_REPO}" fi export EESSI_SITE_SOFTWARE_PATH="${site_software_path}" + show_msg "Set the site software path to $EESSI_SITE_SOFTWARE_PATH" # Prepend site's lmodrc.lua path to $LMOD_RC show_msg "Adding Lmod site configuration file path ($site_lmod_rc_file) to $LMOD_RC" site_lmod_rc_file="$EESSI_SITE_SOFTWARE_PATH/.lmod/lmodrc.lua" From 3af956c72f0aac52c46f68544670c73238c98cf9 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Fri, 22 May 2026 15:07:03 +0200 Subject: [PATCH 6/8] Make sure to also handle the EESSI_SITE_ACCEL_SOFTWARE_PATH --- init/eessi_environment_variables | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/init/eessi_environment_variables b/init/eessi_environment_variables index fb3eee69..cceee54f 100644 --- a/init/eessi_environment_variables +++ b/init/eessi_environment_variables @@ -121,11 +121,16 @@ if [ -d "$EESSI_PREFIX" ]; then elif [ -d "$EESSI_SOFTWARE_PATH" ]; then if [ -z "${EESSI_SITE_SOFTWARE_PREFIX}" ]; then site_software_path="${EESSI_SOFTWARE_PATH/versions/host_injections}" + site_software_accel_path="${EESSI_ACCEL_SOFTWARE_PATH/versions/host_injections}" else site_software_path="${EESSI_SOFTWARE_PATH/$EESSI_SITE_SOFTWARE_PREFIX/$EESSI_CVMFS_REPO}" + site_software_accel_path="${EESSI_ACCEL_SOFTWARE_PATH/$EESSI_SITE_SOFTWARE_PREFIX/$EESSI_CVMFS_REPO}" fi export EESSI_SITE_SOFTWARE_PATH="${site_software_path}" - show_msg "Set the site software path to $EESSI_SITE_SOFTWARE_PATH" + EESSI_SITE_ACCEL_SOFTWARE_PATH="${site_software_accel_path}" + show_msg "Using ${EESSI_SITE_SOFTWARE_PATH} as the site extension directory for installations." + show_msg "Using ${EESSI_SITE_ACCEL_SOFTWARE_PATH} as the site extension directory for accelerated installations." + # Prepend site's lmodrc.lua path to $LMOD_RC show_msg "Adding Lmod site configuration file path ($site_lmod_rc_file) to $LMOD_RC" site_lmod_rc_file="$EESSI_SITE_SOFTWARE_PATH/.lmod/lmodrc.lua" @@ -134,9 +139,6 @@ if [ -d "$EESSI_PREFIX" ]; then else export LMOD_RC="$site_lmod_rc_file:$LMOD_RC" fi - show_msg "Using ${EESSI_SITE_SOFTWARE_PATH} as the site extension directory for installations." - EESSI_SITE_ACCEL_SOFTWARE_PATH="${EESSI_ACCEL_SOFTWARE_PATH/versions/host_injections}" - show_msg "Using ${EESSI_SITE_ACCEL_SOFTWARE_PATH} as the site extension directory for accelerated installations." # Allow for use of alternative module tree shipped with EESSI if [ -z ${EESSI_MODULE_SUBDIR+x} ]; then # EESSI_MODULE_SUBDIR not set From 2ed0a522667dac01297217c2bfba0263aa2fd56c Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Fri, 22 May 2026 15:16:58 +0200 Subject: [PATCH 7/8] Also make sure to respect the EESSI_SITE_SOFTWARE_PREFIX for the site's accelerator path --- init/modules/EESSI/2023.06.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index cb14e3bd..4cd1347c 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -225,8 +225,17 @@ end -- prepend the site module path last so it has priority prepend_path("MODULEPATH", eessi_site_module_path) eessiDebug("Adding " .. eessi_site_module_path .. " to MODULEPATH") -if isDir(eessi_module_path_accel) then + +-- If EESSI_SITE_SOFTWARE_PREFIX is defined, replace /cvmfs/software.eessi.io (or more generally EESSI_CVMFS_REPO) +-- by that prefix to get the site accelerator path. This ensures that the directory still contains the +-- os/vendor/arch/micro-arch/accelerator etc. If it is not defined, default to a site installation prefix under +-- host_injections +if site_prefix then + eessi_module_path_site_accel = string.gsub(eessi_module_path_accel, eessi_repo, site_prefix) +else eessi_module_path_site_accel = string.gsub(eessi_module_path_accel, "versions", "host_injections") +end +if isDir(eessi_module_path_site_accel) then setenv("EESSI_SITE_MODULEPATH_ACCEL", eessi_module_path_site_accel) prepend_path("MODULEPATH", eessi_module_path_site_accel) eessiDebug("Using site accelerator modules at: " .. eessi_module_path_site_accel) From 0e95025a753d80a70cbf598bbe62d203f74dbcc7 Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Fri, 22 May 2026 15:29:31 +0200 Subject: [PATCH 8/8] Make addition of EESSI_SITE_MODULEPATH_ACCEL conditional on whether the dir exists - just like in the module --- init/eessi_environment_variables | 2 ++ 1 file changed, 2 insertions(+) diff --git a/init/eessi_environment_variables b/init/eessi_environment_variables index cceee54f..9f2085c6 100644 --- a/init/eessi_environment_variables +++ b/init/eessi_environment_variables @@ -167,6 +167,8 @@ if [ -d "$EESSI_PREFIX" ]; then if [ -d "${EESSI_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" ]; then export EESSI_MODULEPATH_ACCEL="${EESSI_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" show_msg "Using ${EESSI_MODULEPATH_ACCEL} as additional directory (for accelerators) to be added to MODULEPATH." + fi + if [ -d "${EESSI_SITE_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" ]; then export EESSI_SITE_MODULEPATH_ACCEL="${EESSI_SITE_ACCEL_SOFTWARE_PATH}/${EESSI_ACCELERATOR_TARGET}/${EESSI_MODULE_SUBDIR}" show_msg "Using ${EESSI_SITE_MODULEPATH_ACCEL} as additional site extension directory (for accelerators) to be added to MODULEPATH." fi