[Piuparts-commits] [SCM] piuparts git repository branch, piatti, updated. 0.49-135-g41bea98
Andreas Beckmann
anbe at debian.org
Sun Mar 3 17:22:22 UTC 2013
The following commit has been merged in the piatti branch:
commit 63b979b0b66061d20d860b87868d96678a275cfa
Author: Andreas Beckmann <debian at abeckmann.de>
Date: Sun Mar 3 17:58:12 2013 +0100
lib/db: lookup package state recursively
for packages that do not exist in the current db try the
dependency dbs before falling back to does-not-exist
only recurse one level to avoid infinite loops
Signed-off-by: Andreas Beckmann <debian at abeckmann.de>
diff --git a/debian/changelog b/debian/changelog
index d4e1387..ad90635 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -36,6 +36,7 @@ piuparts (0.50) UNRELEASED; urgency=low
- Add Package.waiting_count() and friends, populated in calc_rrdep_count.
- Optimize reserve() and skip unavailable candidates.
- Add method: set_dependency_databases().
+ - Lookup missing packages, states, ... in the dependency_databases.
* piuparts-master.py:
- Sort packages to be tested by importance, i.e. descending waiting_count.
- Use piuparts.conf global proxy setting as http_proxy.
diff --git a/piupartslib/packagesdb.py b/piupartslib/packagesdb.py
index ee28e4a..35d2b6e 100644
--- a/piupartslib/packagesdb.py
+++ b/piupartslib/packagesdb.py
@@ -632,7 +632,7 @@ class PackagesDB:
else:
return self._packages[package_name][header]
- def get_package_state(self, package_name, resolve_virtual=True):
+ def get_package_state(self, package_name, resolve_virtual=True, recurse=True):
if package_name in self._package_state:
return self._package_state[package_name]
if package_name in self._virtual_packages:
@@ -641,6 +641,11 @@ class PackagesDB:
return self._package_state[provider]
else:
return "virtual"
+ if recurse:
+ for db in self._dependency_databases:
+ state = db.get_package_state(package_name, resolve_virtual=resolve_virtual, recurse=False)
+ if state != "does-not-exist":
+ return state
if package_name in ["ia32-libs-i386", "ia32-libs-gtk-i386"]:
# HACK! these are arch=i386 packages needed on amd64
return "essential-required"
--
piuparts git repository
More information about the Piuparts-commits
mailing list