[Piuparts-commits] [SCM] piuparts git repository branch, bikeshed, updated. 0.53-17-g6cee1ba
Holger Levsen
holger at layer-acht.org
Sun Jul 7 11:41:41 UTC 2013
The following commit has been merged in the bikeshed branch:
commit 26aa858ad2bf4f627b0b6c77509f51d0422799e2
Author: David Steele <dsteele at gmail.com>
Date: Sun Apr 7 23:20:20 2013 -0400
packagesdb.py - Use get_package() in get_rdep_dict() to resolve virtual pkgs.
Along with some associated cleanup.
diff --git a/debian/changelog b/debian/changelog
index 18832ee..f044be4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -45,6 +45,10 @@ piuparts (0.53) unstable; urgency=low
* Update python Requires to 2.7 (for argparse)
* Edit piuparts_slave_* man pages for more information and format.
* Specify the manpage doctype for AsciiDoc man sources.
+ * pupartslib/packagesdb.py
+ - The dependency calculation for rdeps is reworked to match that used
+ elsewhere, to allow package reserve() to drive waiting-for-dep to
+ drive to 0 more quickly.
[ Holger Levsen ]
* piuparts.1.txt, README.txt and README_pejacevic.txt: proof-read and
diff --git a/piupartslib/packagesdb.py b/piupartslib/packagesdb.py
index c2f1fa6..6622bed 100644
--- a/piupartslib/packagesdb.py
+++ b/piupartslib/packagesdb.py
@@ -763,16 +763,21 @@ class PackagesDB:
"""Return dict of one-level reverse dependencies by package"""
if self._rdeps is None:
- self._find_all_packages() # populate _packages
self._rdeps = {}
- for pkg_name in self._packages.keys():
- # use the Packages dependencies() method for a conservative count
- for dep in self._packages[pkg_name].dependencies():
- if dep in self._rdeps:
- self._rdeps[dep].append( pkg_name )
- else:
- self._rdeps[dep] = [pkg_name]
+
+ for pkg in self.get_all_package_names():
+ pkg_obj = self.get_package(pkg)
+
+ for dep in pkg_obj.dependencies():
+ dep_pkg = self.get_package(dep, resolve_virtual=True)
+
+ if dep_pkg is not None:
+ dep = dep_pkg["Package"]
+
+ if not dep in self._rdeps:
+ self._rdeps[dep] = set()
+ self._rdeps[dep].add(pkg)
return( self._rdeps )
--
piuparts git repository
More information about the Piuparts-commits
mailing list