summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-08-14 06:30:09 +0000
committerZac Medico <zmedico@gentoo.org>2007-08-14 06:30:09 +0000
commitde884c6391426c3b9092475577a9fafdccb4c971 (patch)
tree21a8fada74cca962ad82257e387eaa6b40d16992
parent90974fde01b473a9f5d68924d5d035b74980ddf6 (diff)
downloadportage-de884c6391426c3b9092475577a9fafdccb4c971.tar.gz
portage-de884c6391426c3b9092475577a9fafdccb4c971.tar.bz2
portage-de884c6391426c3b9092475577a9fafdccb4c971.zip
For bug #188782, keep "nomerge" nodes in the graph during the merge order calculation so that merge order is better in cases where installed packages have unsatisfied dependencies.
svn path=/main/trunk/; revision=7599
-rw-r--r--pym/emerge/__init__.py6
1 files changed, 2 insertions, 4 deletions
diff --git a/pym/emerge/__init__.py b/pym/emerge/__init__.py
index 847f7e575..95a4b0e73 100644
--- a/pym/emerge/__init__.py
+++ b/pym/emerge/__init__.py
@@ -2185,9 +2185,6 @@ class depgraph(object):
self._altlist_cache[reversed] = retlist[:]
return retlist
mygraph=self.digraph.copy()
- for node in mygraph.order[:]:
- if node[-1] == "nomerge":
- mygraph.remove(node)
self._merge_order_bias(mygraph)
myblockers = self.blocker_digraph.copy()
retlist=[]
@@ -2379,7 +2376,8 @@ class depgraph(object):
prefer_asap = True
for node in selected_nodes:
- retlist.append(list(node))
+ if node[-1] != "nomerge":
+ retlist.append(list(node))
mygraph.remove(node)
if not reversed and not circular_blocks and myblockers.contains(node):
"""This node may have invalidated one or more blockers."""