Conversation
|
Although we don't have the symlinks yet, I can actually already test this in the container - it will just create the symlinks in What I did: Works as intended. After implementing the variant symlinks, we should retest, try to use the |
|
Tested in the container using EESSI 2025.06 and without having configured the variant symlinks: With the variant symlink reconfigured as Wiping that dir and doing it again using Also checked the symlinks, and the pointed to the expected locations. |
| msg="${msg} the EESSI_NVIDIA_OVERRIDE_DEFAULT variant symlink in your local CVMFS configuration to point to" | ||
| msg="${msg} writeable location. This will change the target of symlink ${target1}.\n" | ||
| msg="${msg}If you want to symlink the drivers only for this version of EESSI (${EESSI_VERSION}), please define" | ||
| msg="${msg} the EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE variant symlink in your local CVMFS configuration to point to" |
There was a problem hiding this comment.
| msg="${msg} the EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE variant symlink in your local CVMFS configuration to point to" | |
| msg="${msg} the EESSI_${EESSI_VERSION//./}_NVIDIA_OVERRIDE variant symlink in your local CVMFS configuration to point to" |
| fatal_error "${msg}" | ||
| fi | ||
| else | ||
| msg="$target1 does not seem to be a CVMFS variant symlink, suggesting that EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE" |
There was a problem hiding this comment.
| msg="$target1 does not seem to be a CVMFS variant symlink, suggesting that EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE" | |
| msg="$target1 does not seem to be a CVMFS variant symlink, suggesting that EESSI_${EESSI_VERSION//./}_NVIDIA_OVERRIDE" |
| nvidia_trusted_dir="${EESSI_EPREFIX}/lib/nvidia" | ||
| if [[ -L "$nvidia_trusted_dir" ]]; then | ||
| target1=$(readlink "$nvidia_trusted_dir") | ||
| log_verbose "$nvidia_trusted_dir is a CVMFS variant symlink (EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE) currently pointing to $target1" |
There was a problem hiding this comment.
| log_verbose "$nvidia_trusted_dir is a CVMFS variant symlink (EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE) currently pointing to $target1" | |
| log_verbose "$nvidia_trusted_dir is a CVMFS variant symlink (EESSI_${EESSI_VERSION//./}_NVIDIA_OVERRIDE) currently pointing to $target1" |
| log_verbose "${msg}" | ||
|
|
||
| # Check if target2 isn't /dev/null (the default target of the EESSI_NVIDIA_OVERRIDE_DEFAULT variant symlink) | ||
| # If it is, suggest setting EESSI_NVIDIA_OVERRIDE_DEFAULT or EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE |
There was a problem hiding this comment.
| # If it is, suggest setting EESSI_NVIDIA_OVERRIDE_DEFAULT or EESSI_${ESSSI_VERSION//./}_NVIDIA_OVERRIDE | |
| # If it is, suggest setting EESSI_NVIDIA_OVERRIDE_DEFAULT or EESSI_${EESSI_VERSION//./}_NVIDIA_OVERRIDE |
| # Do some checks on existence of links and that we don't end up at /dev/null (the default), so we can print some informative information | ||
| # One downside is that we can't explicitely check if something is a variant symlink, so we'll just assume that if it's a link AND it | ||
| # lives in our CVMFS repository, it must be a variant symlink | ||
| nvidia_trusted_dir="${EESSI_EPREFIX}/lib/nvidia" |
There was a problem hiding this comment.
Does this mean that the script will no longer work for 2023.06?
We'll need the following variant symlinks to be in place before this script can work as intended:
And then:
This can then be quite easily tested from within the container:
This should error out stating that the variant symlink resolves to
/dev/null. Then, you can change/etc/cvmfs/default.localto set e.g.EESSI_NVIDIA_OVERRIDE_DEFAULT(e.g. to/opt/eessi/nvidia) and run the linking script again - this should the install the symlinks.