bootstrap: account for platform specific configuration scopes (#22489)
This change accounts for platform specific configuration scopes, like ~/.spack/linux, during bootstrapping. These scopes were previously not accounted for and that was causing issues e.g. when searching for compilers.
This commit is contained in:
parent
3d0adf3a8a
commit
413c422e53
@ -171,16 +171,27 @@ def _raise_error(executable, exe_spec):
|
|||||||
_raise_error(exe, spec)
|
_raise_error(exe, spec)
|
||||||
|
|
||||||
|
|
||||||
|
def _bootstrap_config_scopes():
|
||||||
|
config_scopes = []
|
||||||
|
for name, path in spack.config.configuration_paths:
|
||||||
|
platform = spack.architecture.platform().name
|
||||||
|
platform_scope = spack.config.ConfigScope(
|
||||||
|
'/'.join([name, platform]), os.path.join(path, platform)
|
||||||
|
)
|
||||||
|
generic_scope = spack.config.ConfigScope(name, path)
|
||||||
|
config_scopes.extend([generic_scope, platform_scope])
|
||||||
|
msg = '[BOOSTRAP CONFIG SCOPE] name={0}, path={1}'
|
||||||
|
tty.debug(msg.format(generic_scope.name, generic_scope.path))
|
||||||
|
tty.debug(msg.format(platform_scope.name, platform_scope.path))
|
||||||
|
return config_scopes
|
||||||
|
|
||||||
|
|
||||||
@contextlib.contextmanager
|
@contextlib.contextmanager
|
||||||
def ensure_bootstrap_configuration():
|
def ensure_bootstrap_configuration():
|
||||||
# Default configuration scopes excluding command
|
|
||||||
# line and builtin
|
|
||||||
config_scopes = [
|
|
||||||
spack.config.ConfigScope(name, path)
|
|
||||||
for name, path in spack.config.configuration_paths
|
|
||||||
]
|
|
||||||
|
|
||||||
with spack.architecture.use_platform(spack.architecture.real_platform()):
|
with spack.architecture.use_platform(spack.architecture.real_platform()):
|
||||||
|
# Default configuration scopes excluding command line and builtin
|
||||||
|
# but accounting for platform specific scopes
|
||||||
|
config_scopes = _bootstrap_config_scopes()
|
||||||
with spack.config.use_configuration(*config_scopes):
|
with spack.config.use_configuration(*config_scopes):
|
||||||
with spack.repo.use_repositories(spack.paths.packages_path):
|
with spack.repo.use_repositories(spack.paths.packages_path):
|
||||||
with spack.store.use_store(spack.paths.user_bootstrap_store):
|
with spack.store.use_store(spack.paths.user_bootstrap_store):
|
||||||
|
Loading…
Reference in New Issue
Block a user