summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-28 21:16:37 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-28 21:16:37 +0000
commitfc5025c5cd9e9bdcd8ec4eb4c1787b002416d98a (patch)
tree4a2d5e087f98e74c8066ba625345f422a0b12d73
parentbf42d7e09798773fc848be57adf176342c162f6c (diff)
downloadportage-fc5025c5cd9e9bdcd8ec4eb4c1787b002416d98a.tar.gz
portage-fc5025c5cd9e9bdcd8ec4eb4c1787b002416d98a.tar.bz2
portage-fc5025c5cd9e9bdcd8ec4eb4c1787b002416d98a.zip
When a package scheduled for uninstall isn't installed anymore, move
on to the next task. (trunk r10030) svn path=/main/branches/2.1.2/; revision=10031
-rwxr-xr-xbin/emerge16
1 files changed, 12 insertions, 4 deletions
diff --git a/bin/emerge b/bin/emerge
index 70cadb8aa..20bb8dd7e 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -5325,6 +5325,8 @@ class MergeTask(object):
myroot=x[1]
pkg_key = x[2]
pkgindex=2
+ built = pkg_type != "ebuild"
+ installed = pkg_type == "installed"
portdb = self.trees[myroot]["porttree"].dbapi
bindb = self.trees[myroot]["bintree"].dbapi
vartree = self.trees[myroot]["vartree"]
@@ -5347,10 +5349,16 @@ class MergeTask(object):
mydbapi = vardb
else:
raise AssertionError("Package type: '%s'" % pkg_type)
- metadata.update(izip(metadata_keys,
- mydbapi.aux_get(pkg_key, metadata_keys)))
- built = pkg_type != "ebuild"
- installed = pkg_type == "installed"
+ try:
+ metadata.update(izip(metadata_keys,
+ mydbapi.aux_get(pkg_key, metadata_keys)))
+ except KeyError:
+ if not installed:
+ raise
+ # A package scheduled for uninstall apparently
+ # isn't installed anymore. Since it's already
+ # been uninstalled, move on to the next task.
+ continue
if installed:
pkg_constructor = Uninstall
else: