diff options
author | Greg Becker <becker33@llnl.gov> | 2019-08-07 18:34:41 -0700 |
---|---|---|
committer | Peter Scheibel <scheibel1@llnl.gov> | 2019-08-07 18:34:41 -0700 |
commit | 36fbd6cf4cce68424bdea92a8426ddcfce922595 (patch) | |
tree | e8b821a8f99e965b2f434d73d29b0782d7936906 | |
parent | a791234676549fa9f840315639e39de3cd5505bd (diff) | |
download | spack-36fbd6cf4cce68424bdea92a8426ddcfce922595.tar.gz spack-36fbd6cf4cce68424bdea92a8426ddcfce922595.tar.bz2 spack-36fbd6cf4cce68424bdea92a8426ddcfce922595.tar.xz spack-36fbd6cf4cce68424bdea92a8426ddcfce922595.zip |
bugfix: spack stacks mixed dependency and non-dep constraints (#12315)
Spack stacks drop invalid dependencies applied to packages by a
spec_list matrix operation
Without this fix, Spack would raise an error if orthogonal dependency
constraints and non-dependency constraints were applied to the same
package by a matrix and the dependency constraint was invalid for
that package. This is an error, fixed by this PR.
An example failing configuration:
spack:
definitions:
- packages: [libelf, hdf5+mpi]
- compilers: ['%gcc']
- mpis: [^openmpi]
specs:
- matrix:
- $packages
- $compilers
- $mpis
-rw-r--r-- | lib/spack/spack/environment.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/spack/spack/environment.py b/lib/spack/spack/environment.py index 0e59cba746..86b88b8a51 100644 --- a/lib/spack/spack/environment.py +++ b/lib/spack/spack/environment.py @@ -1346,7 +1346,7 @@ def _concretize_from_constraints(spec_constraints): for d in invalid_msg.split() if d != 'or'] invalid_deps = [c for c in spec_constraints - if any(c.satisfies(invd) + if any(c.satisfies(invd, strict=True) for invd in invalid_deps_string)] if len(invalid_deps) != len(invalid_deps_string): raise e |