diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-01-10 23:46:57 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-01-10 23:46:57 +0000 |
commit | 0421f17a9f6bacf90210ee4fe14d63399cc5e968 (patch) | |
tree | 57ec09bc24528c2bb037711e2bd87466fe94fee0 | |
parent | 21dce179d858c6c71216ce6670cbc236dbe1d319 (diff) | |
download | portage-0421f17a9f6bacf90210ee4fe14d63399cc5e968.tar.gz portage-0421f17a9f6bacf90210ee4fe14d63399cc5e968.tar.bz2 portage-0421f17a9f6bacf90210ee4fe14d63399cc5e968.zip |
Don't allow slot collision nodes to block other packages since blocker validation is only able to account for one package per slot.
svn path=/main/trunk/; revision=5535
-rwxr-xr-x | bin/emerge | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge index ffbb214f7..c7c43f4bd 100755 --- a/bin/emerge +++ b/bin/emerge @@ -1012,6 +1012,9 @@ class depgraph: self.blocker_digraph = digraph() self.blocker_parents = {} self._slot_collision_info = [] + # Slot collision nodes are not allowed to block other packages since + # blocker validation is only able to account for one package per slot. + self._slot_collision_nodes = set() self._altlist_cache = {} self._pprovided_args = [] @@ -1095,7 +1098,8 @@ class depgraph: if mytype == "blocks": if myparent and \ "--buildpkgonly" not in self.myopts and \ - "--nodeps" not in self.myopts: + "--nodeps" not in self.myopts and \ + myparent not in self._slot_collision_nodes: mybigkey[1] = myparent[1] self.blocker_parents.setdefault( tuple(mybigkey), set()).add(myparent) @@ -1189,6 +1193,7 @@ class depgraph: myparents.append(myparent) self._slot_collision_info.append( ((jbigkey, myparents), (existing_node, e_parents))) + self._slot_collision_nodes.add(jbigkey) slot_collision = True if slot_collision: |