summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-15 03:49:35 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-15 03:49:35 +0000
commit2326c8e24628a026ab078713dff1810d08f2f0ac (patch)
tree25e3c173a95fcecfd74643a617fe22d5fb084f6f
parentbf0015144f5904ab8236b6465f907d5ec12efddf (diff)
downloadportage-2326c8e24628a026ab078713dff1810d08f2f0ac.tar.gz
portage-2326c8e24628a026ab078713dff1810d08f2f0ac.tar.bz2
portage-2326c8e24628a026ab078713dff1810d08f2f0ac.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. svn path=/main/trunk/; revision=9900
-rw-r--r--pym/_emerge/__init__.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index e0382570f..e6a8f3dc0 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -1605,11 +1605,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