# ------------------------------------------------------------------------- # This is the default spack configuration file. # # Settings here are versioned with Spack and are intended to provide # sensible defaults out of the box. Spack maintainers should edit this # file to keep it current. # # Users can override these settings by editing the following files. # # Per-spack-instance settings (overrides defaults): # $SPACK_ROOT/etc/spack/config.yaml # # Per-user settings (overrides default and site settings): # ~/.spack/config.yaml # ------------------------------------------------------------------------- config: # This is the path to the root of the Spack install tree. # You can use $spack here to refer to the root of the spack instance. install_tree: $spack/opt/spack # Locations where templates should be found template_dirs: - $spack/share/spack/templates # Default directory layout install_path_scheme: "${ARCHITECTURE}/${COMPILERNAME}-${COMPILERVER}/${PACKAGE}-${VERSION}-${HASH}" # Locations where different types of modules should be installed. module_roots: tcl: $spack/share/spack/modules lmod: $spack/share/spack/lmod # Temporary locations Spack can try to use for builds. # # Recommended options are given below. # # Builds can be faster in temporary directories on some (e.g., HPC) systems. # Specifying `$tempdir` will ensure use of the default temporary directory # (i.e., ``$TMP` or ``$TMPDIR``). # # Another option that prevents conflicts and potential permission issues is # to specify `~/.spack/stage`, which ensures each user builds in their home # directory. # # A more traditional path uses the value of `$spack/var/spack/stage`, which # builds directly inside Spack's instance without staging them in a # temporary space. Problems with specifying a path inside a Spack instance # are that it precludes its use as a system package and its ability to be # pip installable. # # In any case, if the username is not already in the path, Spack will append # the value of `$user` in an attempt to avoid potential conflicts between # users in shared temporary spaces. # # The build stage can be purged with `spack clean --stage` and # `spack clean -a`, so it is important that the specified directory uniquely # identifies Spack staging to avoid accidentally wiping out non-Spack work. build_stage: - $tempdir/$user/spack-stage - ~/.spack/stage # - $spack/var/spack/stage # Cache directory for already downloaded source tarballs and archived # repositories. This can be purged with `spack clean --downloads`. source_cache: $spack/var/spack/cache # Cache directory for miscellaneous files, like the package index. # This can be purged with `spack clean --misc-cache` misc_cache: ~/.spack/cache # Timeout in seconds used for downloading sources etc. This only applies # to the connection phase and can be increased for slow connections or # servers. 0 means no timeout. connect_timeout: 10 # If this is false, tools like curl that use SSL will not verify # certifiates. (e.g., curl will use use the -k option) verify_ssl: true # Suppress gpg warnings from binary package verification # Only suppresses warnings, gpg failure will still fail the install # Potential rationale to set True: users have already explicitly trusted the # gpg key they are using, and may not want to see repeated warnings that it # is self-signed or something of the sort. suppress_gpg_warnings: false # If set to true, Spack will attempt to build any compiler on the spec # that is not already available. If set to False, Spack will only use # compilers already configured in compilers.yaml install_missing_compilers: False # If set to true, Spack will always check checksums after downloading # archives. If false, Spack skips the checksum step. checksum: true # If set to true, `spack install` and friends will NOT clean # potentially harmful variables from the build environment. Use wisely. dirty: false # The language the build environment will use. This will produce English # compiler messages by default, so the log parser can highlight errors. # If set to C, it will use English (see man locale). # If set to the empty string (''), it will use the language from the # user's environment. build_language: C # When set to true, concurrent instances of Spack will use locks to # avoid modifying the install tree, database file, etc. If false, Spack # will disable all locking, but you must NOT run concurrent instances # of Spack. For filesystems that don't support locking, you should set # this to false and run one Spack at a time, but otherwise we recommend # enabling locks. locks: true # The maximum number of jobs to use when running `make` in parallel, # always limited by the number of cores available. For instance: # - If set to 16 on a 4 cores machine `spack install` will run `make -j4` # - If set to 16 on a 18 cores machine `spack install` will run `make -j16` # If not set, Spack will use all available cores up to 16. # build_jobs: 16 # If set to true, Spack will use ccache to cache C compiles. ccache: false # How long to wait to lock the Spack installation database. This lock is used # when Spack needs to manage its own package metadata and all operations are # expected to complete within the default time limit. The timeout should # therefore generally be left untouched. db_lock_timeout: 3 # How long to wait when attempting to modify a package (e.g. to install it). # This value should typically be 'null' (never time out) unless the Spack # instance only ever has a single user at a time, and only if the user # anticipates that a significant delay indicates that the lock attempt will # never succeed. package_lock_timeout: null # Control whether Spack embeds RPATH or RUNPATH attributes in ELF binaries. # Has no effect on macOS. DO NOT MIX these within the same install tree. # See the Spack documentation for details. shared_linking: 'rpath' # Set to 'false' to allow installation on filesystems that doesn't allow setgid bit # manipulation by unprivileged user (e.g. AFS) allow_sgid: true