[Yum-devel] [PATCH] If X-1 and X-2 both provide/require FOO then X is a leaf node:
Seth Vidal
skvidal at fedoraproject.org
Mon Oct 12 13:50:09 UTC 2009
On Mon, 12 Oct 2009, James Antill wrote:
> Given nothing else requires what they provide.
>
> This fixes real false negatives in pkgSack, however this is unlikely to
> affect rpmdb as there is always just one version installed when we care.
>
> Also, a minor memory resource improvement.
> ---
> yum/packageSack.py | 11 +++++++----
> 1 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/yum/packageSack.py b/yum/packageSack.py
> index 45e4e2d..33fdbfe 100644
> --- a/yum/packageSack.py
> +++ b/yum/packageSack.py
> @@ -332,15 +332,18 @@ class PackageSackBase(object):
> for r in po.requires_names:
> if not req.has_key(r):
> req[r] = set()
> - req[r].add(po)
> + if len(req[r]) > 1: # We only need to know if another pkg.
> + continue # reqs. the provide. So 2 pkgs. is enough.
> + req[r].add(po.name)
>
> for po in self.returnPackages(repoid=repoid):
> preq = 0
> for p in _return_all_provides(po):
> if req.has_key(p):
> - # Don't count a package that provides its require
> - s = req[p]
> - if len(s) > 1 or po not in s:
> + # If this pkg provides something that is required by
> + # anything but itself (or another version of itself) it
> + # isn't an orphan.
> + if len(req[p]) > 1 or po.name not in req[p]:
> preq += 1
> break
>
ACK
-sv
More information about the Yum-devel
mailing list