From f4101550d134c697c98d25ca27054ee04ebac0a9 Mon Sep 17 00:00:00 2001 From: scheibelp Date: Fri, 12 Jan 2018 10:53:11 -0800 Subject: 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. --- lib/spack/spack/spec.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') 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) -- cgit v1.2.3-70-g09d2