Environment¶
Read from the task¶
Variable |
Role |
|---|---|
|
CPU target recorded at load. Unset means EESSI is not loaded, and the guard returns silently. |
|
Accelerator subdirectory recorded at load. Empty means no accelerator. |
|
Absolute EESSI prefix. The software walk is |
|
Relative OS subdirectory. An absolute path fails the check. |
|
Absolute directory that contains |
|
Exported by the EESSI module. The reload name is the |
|
CPU info file. Unset selects |
|
Dropped for a waitpkg-fallback reload so it cannot outrank the pin. |
|
Colon-separated module names. Exactly one must match |
|
Part of the cache key. The reload replaces it. |
|
Executable Lmod. Required once the targets differ. |
|
Part of the cache key. The helper sees |
|
Required for the cache file. Unset means every task computes its own result. |
|
Cache component. Unset is stored as |
|
|
|
Cache directory when it is absolute and exists. In strict mode it must be private and owned by the invoking user, or an existing configured private state directory is selected. Omitted from the delta. |
Controls¶
Variable |
Effect |
|---|---|
|
Silent opt-out. Place it in the submitting environment. |
|
Silent when no candidate has a software directory. |
|
Skip and match reasons go to stderr. |
|
Set on entry: skip detection. Set by a waitpkg fallback during the reload. |
|
Set on entry: skip detection. |
|
Skip the accelerator comparison. The CPU walk still runs. |
|
Existing private directory owned by the invoking user for restore temporaries. The parent creates a private child and removes that child. The configured base is never created or chmodded. |
Written by the guard¶
Variable |
Value |
|---|---|
|
|
|
|
Plus the restore delta: every changed name that passes the prolog rules. See What the guard emits.
Module names¶
A loaded name has to match:
^[A-Za-z0-9_][A-Za-z0-9._+-]*(/[A-Za-z0-9_][A-Za-z0-9._+-]*)+$
or be a four-digit ASCII year alias such as 2026, and be at most 256 characters. Ordinary unversioned package names remain rejected. The EESSI entry has to match ^EESSI/<segment>$ and appear once. Anything else is ->unsafe-module-name (a name that fails the grammar) or ->restore-failed (the list has no single EESSI/<version> entry). The restore does not start.
Prolog names match ^[A-Za-z_][A-Za-z0-9_]*$.
Accelerator stdout¶
^accel/(?:nvidia/cc[0-9]+|amd/gfx[0-9a-f]+)$
Helper process environment¶
PATH=/usr/bin:/bin, LANG=C, LC_ALL=C, and HOME, TMPDIR and EESSI_ARCH_GUARD_WORKDIR naming the fresh private helper directory. The task environment travels in the JSON body.
The configured work directory takes priority over TMPDIR. Strict mode accepts only an existing private owned directory, with fallback to an existing eessi-arch-guard directory below XDG_STATE_HOME or HOME/.local/state. It refuses when none is available; it does not create those base directories or use the system temporary fallback. Default TaskProlog mode retains the standard temporary-directory fallback when the scheduler has not created TMPDIR.