From 8a78eb8c286bd5450cf6703e089d1e7f1431b4bd Mon Sep 17 00:00:00 2001 From: Massimiliano Culpo Date: Mon, 11 Nov 2024 12:24:17 +0100 Subject: [PATCH] spack audit: account for % new semantic Since % means "direct build dependency", we need to exclude it from the check in audits. --- lib/spack/spack/audit.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/spack/spack/audit.py b/lib/spack/spack/audit.py index 77e85172d72..b1f0850e020 100644 --- a/lib/spack/spack/audit.py +++ b/lib/spack/spack/audit.py @@ -55,6 +55,7 @@ def _search_duplicate_compilers(error_cls): import spack.builder import spack.config +import spack.deptypes import spack.fetch_strategy import spack.patch import spack.repo @@ -1014,7 +1015,14 @@ def _issues_in_depends_on_directive(pkgs, error_cls): # depends_on('foo+bar ^fee+baz') # # but we'd like to have two dependencies listed instead. - nested_dependencies = dep.spec.dependencies() + nested_dependencies = dep.spec.edges_to_dependencies() + # Filter out pure build dependencies, like: + # + # depends_on('foo+bar%gcc') + # + nested_dependencies = [ + x for x in nested_dependencies if x.depflag != spack.deptypes.BUILD + ] if nested_dependencies: summary = f"{pkg_name}: nested dependency declaration '{dep.spec}'" ndir = len(nested_dependencies) + 1