diff --git a/EESSI-install-software.sh b/EESSI-install-software.sh index a304a00f..74f7c9d1 100755 --- a/EESSI-install-software.sh +++ b/EESSI-install-software.sh @@ -327,7 +327,7 @@ echo "Going to install full CUDA SDK and cu* libraries under host_injections if temp_install_storage=${TMPDIR}/temp_install_storage mkdir -p ${temp_install_storage} if [ -z "${skip_cuda_install}" ] || [ ! "${skip_cuda_install}" ]; then - ${EESSI_PREFIX}/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh \ + ${TOPDIR}/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh \ -t ${temp_install_storage} \ --accept-cuda-eula \ --accept-cudnn-eula @@ -339,7 +339,7 @@ fi if nvidia_gpu_available; then echo "Installing NVIDIA drivers for use in prefix shell..." # Site installs override EESSI_CVMFS_REPO, but link_nvidia_host_libraries should always use the usptream EESSI CVMFS repo - EESSI_CVMFS_REPO=/cvmfs/software.eessi.io ${EESSI_PREFIX}/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh + EESSI_CVMFS_REPO=/cvmfs/software.eessi.io ${TOPDIR}/scripts/gpu_support/nvidia/link_nvidia_host_libraries.sh fi # Now that we are done with all installs that should go the /cvmfs/software.eessi.io diff --git a/init/eessi_defaults b/init/eessi_defaults index 410d900f..99fff4c9 100644 --- a/init/eessi_defaults +++ b/init/eessi_defaults @@ -19,7 +19,11 @@ else export EESSI_SOFTWARE_LAYER_VERSION_SUFFIX="" fi -# use different defaults for RISC-V clients +# Set defaults for EESSI_CVMFS_REPO and EESSI_INIT_PREFIX +export EESSI_CVMFS_REPO="${EESSI_CVMFS_REPO_OVERRIDE:=/cvmfs/software.eessi.io}" +export EESSI_INIT_PREFIX="${EESSI_CVMFS_REPO}/versions/${EESSI_VERSION}/init" + +# Overwrite with different defaults for RISC-V clients if they use EESSI version 2023.06, 20240402 or 2025.06 if [[ $(uname -m) == "riscv64" ]]; then if [[ "${EESSI_VERSION}" == "2023.06" ]] || [[ "${EESSI_VERSION}" == "20240402" ]]; then export EESSI_CVMFS_REPO="${EESSI_CVMFS_REPO_OVERRIDE:=/cvmfs/riscv.eessi.io}" @@ -39,10 +43,8 @@ if [[ $(uname -m) == "riscv64" ]]; then echo "software installations are provided by the EESSI development repository at ${EESSI_CVMFS_REPO}." fi fi -else - export EESSI_CVMFS_REPO="${EESSI_CVMFS_REPO_OVERRIDE:=/cvmfs/software.eessi.io}" - export EESSI_INIT_PREFIX="${EESSI_CVMFS_REPO}/versions/${EESSI_VERSION}/init" fi + # use archdetect by default, unless otherwise specified export EESSI_USE_ARCHDETECT="${EESSI_USE_ARCHDETECT:=1}" export EESSI_USE_ARCHSPEC="${EESSI_USE_ARCHSPEC:=0}" diff --git a/init/modules/EESSI/2023.06.lua b/init/modules/EESSI/2023.06.lua index 04724ba6..9f10d4c2 100644 --- a/init/modules/EESSI/2023.06.lua +++ b/init/modules/EESSI/2023.06.lua @@ -54,6 +54,11 @@ if ( LmodError("The EESSI development repository dev.eessi.io is not mounted on your system.\n" .. "This is required for RISC-V systems.") end + -- RISCV and EESSI 2026.06 or later + else + if not os.getenv("EESSI_INIT_RISCV_SUPPRESS_SUPPORT_WARNING") then + LmodWarning("You are loading EESSI " .. eessi_version .. " on a system with RISC-V CPU. The RISC-V target is only partially supported by this EESSI version. You may find that some modules which are available for other targets are not available for this target. (set EESSI_INIT_RISCV_SUPPRESS_SUPPORT_WARNING=1 in your environment to suppress this warning)") + end end end setenv("EESSI_VERSION_DEFAULT", eessi_version) diff --git a/init/modules/EESSI/2026.06.lua b/init/modules/EESSI/2026.06.lua new file mode 120000 index 00000000..cbf80d1f --- /dev/null +++ b/init/modules/EESSI/2026.06.lua @@ -0,0 +1 @@ +2023.06.lua \ No newline at end of file diff --git a/install_scripts.sh b/install_scripts.sh index 004ac075..48745a3d 100755 --- a/install_scripts.sh +++ b/install_scripts.sh @@ -80,8 +80,8 @@ compare_and_copy() { else echo "File has changed in the PR" fi - # Use cat to retain existing permissions, set umask to world readable in case the target file does not yet exist. - (umask 022 && cat "$source_file" > "$destination_file") + # Use cp --preserve=mode to preserve the permissions as they are defined in the GH repo + cp --preserve=mode "$source_file" "$destination_file" echo "File $source_file copied to $destination_file" else case $? in diff --git a/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh b/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh index 9cb4d9f0..34027bf2 100755 --- a/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh +++ b/scripts/gpu_support/nvidia/install_cuda_and_libraries.sh @@ -295,7 +295,7 @@ if [ ${#PROCESSED_EASYSTACK_FILES[@]} -gt 0 ]; then echo_green "- ${EASYSTACK_FILE}" done else - fatal_error "Error: No matching CUDA easystack files were successfully found/processed in ${NVIDIA_EASYSTACKS_DIRECTORY}!" + echo_yellow "Warning: No matching CUDA easystack files were successfully found/processed in ${NVIDIA_EASYSTACKS_DIRECTORY}!" fi # Remove the temporary directory