diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-04-28 21:16:37 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-04-28 21:16:37 +0000 |
commit | fc5025c5cd9e9bdcd8ec4eb4c1787b002416d98a (patch) | |
tree | 4a2d5e087f98e74c8066ba625345f422a0b12d73 | |
parent | bf42d7e09798773fc848be57adf176342c162f6c (diff) | |
download | portage-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-x | bin/emerge | 16 |
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: |