diff --git a/support/scripts/graph-depends b/support/scripts/graph-depends index d2b100f385..5a6f6930e9 100755 --- a/support/scripts/graph-depends +++ b/support/scripts/graph-depends @@ -181,6 +181,12 @@ def remove_mandatory_deps(pkg, deps): return [p for p in deps[pkg] if p not in MANDATORY_DEPS] +# This function returns all dependencies of pkg that are part of the +# mandatory dependencies: +def get_mandatory_deps(pkg, deps): + return [p for p in deps[pkg] if p in MANDATORY_DEPS] + + # This function will check that there is no loop in the dependency chain # As a side effect, it builds up the dependency cache. def check_circular_deps(deps): @@ -213,6 +219,9 @@ def check_circular_deps(deps): def remove_extra_deps(deps, rootpkg, transitive): for pkg in list(deps.keys()): if not pkg == rootpkg: + for d in get_mandatory_deps(pkg, deps): + if d not in deps[rootpkg]: + deps[rootpkg].append(d) deps[pkg] = remove_mandatory_deps(pkg, deps) for pkg in list(deps.keys()): if not transitive or pkg == rootpkg: