spack/Move-site-config-scope-before-system-scope.patch
Christian Goll f3e15f0c28 Accepting request 1174817 from home:eeich:branches:network:cluster
- Give 'site' scope a lower precedence than 'system' scope.
  The 'site wide' config scope was meant to be per Spack
  installation. A single system may have multiple Spack
  installations, so was is meant for overriding the
  'system' wide setting per installation.
  The Spack package is OS-vendor provided. The vendor provides
  pr generates a configuration which a local admin may want to
  override. This can now be done from within the 'system' scope.
  Previously the vendor-supplied configuration was mixed with
  the 'system' scope - local modifications collided with
  vendor autoconfiguration.
- Add a build-dependency package which will cause build tools
  and libraries used frequently by Spack to be installed.
  All these packages are recommended by the main Spack package
  already. This package may be used in environments where the
  installation of recommended packages is disabled by default.

- Update Spack to version 0.22.0
  * New features:
    - Compiler dependencies:
      Spack is in the process of making compilers proper dependencies.
      For this, compiler dependencies are moving from `compilers.yaml`
      to `packages.yaml` to make this consistent with other externals.
      For this, dependency graphs will not show the compiler runtime
      libraries like `gcc-runtime` or `libgfortran`.
      To minimize disruption, an existing `compilers.yaml` file will
      continue to work, however, users are encourage to migrate
      before v0.23.
      + Packages compiled with `%gcc` now depend on a new package
        `gcc-runtime`, which contains a copy of the shared compiler

OBS-URL: https://build.opensuse.org/request/show/1174817
OBS-URL: https://build.opensuse.org/package/show/network:cluster/spack?expand=0&rev=104
2024-06-11 07:38:05 +00:00

47 lines
2.0 KiB
Diff

From: Egbert Eich <eich@suse.com>
Date: Thu May 16 18:34:42 2024 +0200
Subject: Move 'site' config scope before 'system' scope
Patch-mainline: Not yet
Git-commit: 55febdb317328ac0e60cb486eac27fe1371cf120
References:
For spack, the 'site' scope if meant for the Spack installation
which a system may have multiple of. Therefore, it lives in
the Spack installation it is meant for. It should override the
'system-wide' settings from the 'system' scope which is usually
located in /etc/spack.
Our Spack package is meant to be system wide, the site scope
will therefore host vendor provided or generated configs which
a local admin should therefore be able to override.
It must therefore have a lower priority that the system scope.
Signed-off-by: Egbert Eich <eich@suse.com>
Signed-off-by: Egbert Eich <eich@suse.de>
---
lib/spack/spack/config.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/spack/spack/config.py b/lib/spack/spack/config.py
index 2a2f180f..3eac8542 100644
--- a/lib/spack/spack/config.py
+++ b/lib/spack/spack/config.py
@@ -832,15 +832,15 @@ def create() -> Configuration:
disable_local_config = "SPACK_DISABLE_LOCAL_CONFIG" in os.environ
+ # Site configuration is per spack instance, for sites or projects
+ # No site-level configs should be checked into spack by default.
+ configuration_paths.append(("site", os.path.join(spack.paths.etc_path)))
+
# System configuration is per machine.
# This is disabled if user asks for no local configuration.
if not disable_local_config:
configuration_paths.append(("system", spack.paths.system_config_path))
- # Site configuration is per spack instance, for sites or projects
- # No site-level configs should be checked into spack by default.
- configuration_paths.append(("site", os.path.join(spack.paths.etc_path)))
-
# Python package's can register configuration scopes via entry_points
configuration_paths.extend(config_paths_from_entry_points())