From 57e6452831ff8bc0088b55069642c8204b0b76fb Mon Sep 17 00:00:00 2001 From: Harmen Stoppels Date: Tue, 2 Aug 2022 18:54:41 +0200 Subject: Document that reuse is higher priority than preferences in packages.yaml (#31864) Resurrect Known issues, since users ask frequently about that. --- lib/spack/docs/index.rst | 1 + lib/spack/docs/known_issues.rst | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 lib/spack/docs/known_issues.rst diff --git a/lib/spack/docs/index.rst b/lib/spack/docs/index.rst index b755f2f376..3a5e07ed18 100644 --- a/lib/spack/docs/index.rst +++ b/lib/spack/docs/index.rst @@ -56,6 +56,7 @@ or refer to the full manual below. basic_usage Tutorial: Spack 101 replace_conda_homebrew + known_issues .. toctree:: :maxdepth: 2 diff --git a/lib/spack/docs/known_issues.rst b/lib/spack/docs/known_issues.rst new file mode 100644 index 0000000000..d60641187e --- /dev/null +++ b/lib/spack/docs/known_issues.rst @@ -0,0 +1,34 @@ +.. Copyright 2013-2022 Lawrence Livermore National Security, LLC and other + Spack Project Developers. See the top-level COPYRIGHT file for details. + + SPDX-License-Identifier: (Apache-2.0 OR MIT) + +============ +Known Issues +============ + +This is a list of known issues in Spack. It provides ways of getting around these +problems if you encounter them. + +------------------------------------------------ +Spack does not seem to respect ``packages.yaml`` +------------------------------------------------ + +A common problem in Spack v0.18 and above is that package, compiler and target +preferences specified in ``packages.yaml`` do not seem to be respected. Spack picks the +"wrong" compilers and their versions, package versions and variants, and +micro-architectures. + +This is however not a bug. In order to reduce the number of builds of the same +packages, the concretizer values reuse of installed packages higher than preferences +set in ``packages.yaml``. Note that ``packages.yaml`` specifies only preferences, not +hard constraints. + +There are multiple workarounds: + +1. Disable reuse during concretization: ``spack install --fresh `` when installing + from the command line, or ``spack concretize --fresh --force`` when using + environments. +2. Turn preferences into constrains, by moving them to the input spec. For example, + use ``spack spec zlib%gcc@12`` when you want to force GCC 12 even if ``zlib`` was + already installed with GCC 10. -- cgit v1.2.3-70-g09d2