From a3eb17e5c0aaf65d8f78064b717c236bb26f0fb9 Mon Sep 17 00:00:00 2001 From: Owen W. Taylor Date: Jan 30 2018 22:53:10 +0000 Subject: When tracking package dependencies, look at pre-requires, not just normal reqs package.lookup_deparray(solv.SOLVABLE_REQUIRES) only returns normal Requires:, to get pre-requires, you need to pass in marker=1 (default is marker=-1) --- diff --git a/src/_fedmod/_depchase.py b/src/_fedmod/_depchase.py index 6665cb1..93f8733 100644 --- a/src/_fedmod/_depchase.py +++ b/src/_fedmod/_depchase.py @@ -72,12 +72,18 @@ def get_sourcepkg(p, s=None, only_name=False): assert len(solvables) == 1 return solvables[0] +def _iterate_all_requires(package): + for dep in package.lookup_deparray(solv.SOLVABLE_REQUIRES, 1): # pre-requires + yield dep + for dep in package.lookup_deparray(solv.SOLVABLE_REQUIRES, -1): # requires + yield dep + def _get_dependency_details(pool, transaction): candq = transaction.newpackages() result = {} for p in candq: pkg_details = {} - for dep in p.lookup_deparray(solv.SOLVABLE_REQUIRES): + for dep in _iterate_all_requires(p): matches = set(s for s in candq if s.matchesdep(solv.SOLVABLE_PROVIDES, dep)) if not matches and str(dep).startswith("/"): # Append provides by files