diff options
author | scheibelp <scheibel1@llnl.gov> | 2018-01-12 10:53:11 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-12 10:53:11 -0800 |
commit | f4101550d134c697c98d25ca27054ee04ebac0a9 (patch) | |
tree | a84ecd2753c466b9836c2a501d66416c5bca9940 | |
parent | 9e3f8c0d79d6f2c02f63599cf58527d596e1a445 (diff) | |
download | spack-f4101550d134c697c98d25ca27054ee04ebac0a9.tar.gz spack-f4101550d134c697c98d25ca27054ee04ebac0a9.tar.bz2 spack-f4101550d134c697c98d25ca27054ee04ebac0a9.tar.xz spack-f4101550d134c697c98d25ca27054ee04ebac0a9.zip |
Relax conflict checks for externals (#6907)
This updates the conflict-checking logic to require that the conflict
spec matches exactly and that all fields mentioned in the conflict
spec are present in the concretized spec in order to report a
conflict. This will automatically skip all conflict checks for
dependencies of externals (since externals strip dependencies). This
will not affect non-external packages since all fields and
dependencies are fully specified for such packages.
-rw-r--r-- | lib/spack/spack/spec.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/spack/spack/spec.py b/lib/spack/spack/spec.py index e29c1bed3c..eb40559ec5 100644 --- a/lib/spack/spack/spec.py +++ b/lib/spack/spack/spec.py @@ -1869,9 +1869,9 @@ class Spec(object): matches = [] for x in self.traverse(): for conflict_spec, when_list in x.package.conflicts.items(): - if x.satisfies(conflict_spec): + if x.satisfies(conflict_spec, strict=True): for when_spec, msg in when_list: - if x.satisfies(when_spec): + if x.satisfies(when_spec, strict=True): matches.append((x, conflict_spec, when_spec, msg)) if matches: raise ConflictsInSpecError(self, matches) |