summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-15 06:17:54 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-15 06:17:54 +0000
commit7e7449b67bc628f57d5fa5dcbc4ddf8a269b8dd3 (patch)
tree83aa3cc1645c1b2f34b9706a70ee39c511bd32af
parent4b78895332047d68ba45030d37bbed14357658d1 (diff)
downloadportage-7e7449b67bc628f57d5fa5dcbc4ddf8a269b8dd3.tar.gz
portage-7e7449b67bc628f57d5fa5dcbc4ddf8a269b8dd3.tar.bz2
portage-7e7449b67bc628f57d5fa5dcbc4ddf8a269b8dd3.zip
Revert part of atom selection consistency improvement from r9873 since it
in some cases it triggers unresolvable direct circular dependencies. For example, this happens with gwydion-dylan which depends on either itself or gwydion-dylan-bin. In case gwydion-dylan is not yet installed, gwydion-dylan-bin needs to be selected in order to avoid a an unresolvable direct circular dependency. (trunk r9900) svn path=/main/branches/2.1.2/; revision=9902
-rwxr-xr-xbin/emerge13
1 files changed, 12 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge
index 8cfc847e4..d0903559b 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1744,11 +1744,22 @@ class depgraph(object):
# have already been made.
self._graph_trees[myroot]["porttree"] = graph_tree
self._graph_trees[myroot]["vartree"] = graph_tree
- self._filtered_trees[myroot]["vartree"] = graph_tree
def filtered_tree():
pass
filtered_tree.dbapi = self._dep_check_composite_db(self, myroot)
self._filtered_trees[myroot]["porttree"] = filtered_tree
+
+ # Passing in graph_tree as the vartree here could lead to better
+ # atom selections in some cases by causing atoms for packages that
+ # have been added to the graph to be preferred over other choices.
+ # However, it can trigger atom selections that result in
+ # unresolvable direct circular dependencies. For example, this
+ # happens with gwydion-dylan which depends on either itself or
+ # gwydion-dylan-bin. In case gwydion-dylan is not yet installed,
+ # gwydion-dylan-bin needs to be selected in order to avoid a
+ # an unresolvable direct circular dependency.
+ self._filtered_trees[myroot]["vartree"] = self.trees[myroot]["vartree"]
+
dbs = []
portdb = self.trees[myroot]["porttree"].dbapi
bindb = self.trees[myroot]["bintree"].dbapi