diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-07-10 16:53:51 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-07-10 16:53:51 +0000 |
commit | 53992354a2266ad4b883b95a512c0300925188ef (patch) | |
tree | 7b092c1928099671b59c08bcc56bbbed071efd31 | |
parent | 0faee684dacb942137c2635a7cc6254030d9ce48 (diff) | |
download | portage-53992354a2266ad4b883b95a512c0300925188ef.tar.gz portage-53992354a2266ad4b883b95a512c0300925188ef.tar.bz2 portage-53992354a2266ad4b883b95a512c0300925188ef.zip |
For bug #184806, account for the fact the metadata is not cached for slot_collision_nodes.
svn path=/main/trunk/; revision=7214
-rw-r--r-- | pym/emerge/__init__.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py index 6395b0d5c..63ad741ef 100644 --- a/pym/emerge/__init__.py +++ b/pym/emerge/__init__.py @@ -1747,6 +1747,9 @@ class depgraph(object): # Update old-style virtuals if this package provides any. # These are needed for dep_virtual calls inside dep_check. p_db = self.mydbapi[p_root] # contains cached metadata + if myparent in self._slot_collision_nodes: + # The metadata isn't cached due to the slot collision. + p_db = self.trees[p_root][self.pkg_tree_map[p_type]].dbapi try: self.pkgsettings[p_root].setinst(p_key, p_db) # For consistency, also update the global virtuals. @@ -2739,6 +2742,7 @@ class depgraph(object): for mylist_index in xrange(len(mylist)): x, depth, ordered = mylist[mylist_index] + pkg_node = tuple(x) pkg_type = x[0] myroot = x[1] pkg_key = x[2] @@ -2770,14 +2774,16 @@ class depgraph(object): addl += bad(" (is blocking %s)") % block_parents blockers.append(addl) else: - mydbapi = self.trees[myroot][self.pkg_tree_map[pkg_type]].dbapi pkg_status = x[3] pkg_merge = ordered and pkg_status != "nomerge" binary_package = pkg_type != "ebuild" + if pkg_node in self._slot_collision_nodes: + # The metadata isn't cached due to the slot collision. + mydbapi = self.trees[myroot][self.pkg_tree_map[pkg_type]].dbapi + else: + mydbapi = self.mydbapi[myroot] # contains cached metadata metadata = dict(izip(self._mydbapi_keys, - self.mydbapi[myroot].aux_get( - pkg_key, self._mydbapi_keys))) - mydbapi = self.mydbapi[myroot] # use the cached metadata + mydbapi.aux_get(pkg_key, self._mydbapi_keys))) if pkg_key not in self.useFlags[myroot]: """If this is a --resume then the USE flags need to be fetched from the appropriate locations here.""" |