summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-03-11 03:39:50 +0000
committerZac Medico <zmedico@gentoo.org>2009-03-11 03:39:50 +0000
commit861b535aeadc3ebd0282e3e77cc04e62212e9b00 (patch)
tree935546a0226be402489d97f982a44ae2cbcb0ed9 /pym/_emerge
parent310db5c0b9d9ea6e30c0f55b023aab5d6936cb24 (diff)
downloadportage-861b535aeadc3ebd0282e3e77cc04e62212e9b00.tar.gz
portage-861b535aeadc3ebd0282e3e77cc04e62212e9b00.tar.bz2
portage-861b535aeadc3ebd0282e3e77cc04e62212e9b00.zip
Fix Scheduler._find_system_deps() so that it only traverses runtime deps.
(trunk r12581) svn path=/main/branches/2.1.6/; revision=12862
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/__init__.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index d4a4d8134..95409e372 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -9975,14 +9975,21 @@ class Scheduler(PollScheduler):
if system_set.findAtomForPackage(node):
node_stack.append(node)
+ def ignore_priority(priority):
+ """
+ Ignore non-runtime priorities.
+ """
+ if isinstance(priority, DepPriority) and \
+ (priority.runtime or priority.runtime_post):
+ return False
+ return True
+
while node_stack:
node = node_stack.pop()
if node in deep_system_deps:
continue
deep_system_deps.add(node)
- # TODO: Only traverse runtime deps since we aren't concerned about
- # buildtime deps here.
- for child in graph.child_nodes(node):
+ for child in graph.child_nodes(node, ignore_priority=ignore_priority):
if not isinstance(child, Package) or \
child.operation == "uninstall":
continue