diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-09-27 07:01:45 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-09-27 07:01:45 +0000 |
commit | 2d83c06a74d0d3db0b4f255467ada4c6a52738c6 (patch) | |
tree | 4abee140454a2714223f5717bb4f0f82c0f111cd | |
parent | cd3d635d03ebebcd5c30abf45c8c921cb86bcd34 (diff) | |
download | portage-2d83c06a74d0d3db0b4f255467ada4c6a52738c6.tar.gz portage-2d83c06a74d0d3db0b4f255467ada4c6a52738c6.tar.bz2 portage-2d83c06a74d0d3db0b4f255467ada4c6a52738c6.zip |
Make sure that all packages are in the dbapi when doing the blocker validation.
svn path=/main/trunk/; revision=4540
-rwxr-xr-x | bin/emerge | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge index 2f35603a9..8bdaca5f9 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1229,6 +1229,17 @@ class depgraph: final state of the graph. Thus, it's possible that mutually blocking packages will be installed simultaneously a some point(s) during the transition from the initial to the final state.""" + + """ It's possible that some of the nodes haven't been added to the + fakedb yet, so make sure they're all accounted for.""" + for node in self.digraph.all_nodes(): + node_split = node.split() + mytype, myroot, mykey = node_split[0:3] + if mytype in self.pkg_tree_map: + mydb = self.trees[myroot][self.pkg_tree_map[mytype]].dbapi + myslot = mydb.aux_get(mykey, ["SLOT"])[0] + self.mydbapi[myroot].cpv_inject(mykey, myslot=myslot) + all_blockers = [node for node in self.digraph.all_nodes() if node.split()[0] == "blocks"] for blocker in all_blockers: |