From: Zac Medico Date: Wed, 4 Feb 2009 04:51:33 +0000 (-0000) Subject: Fix Scheduler._find_system_deps() so that it only traverses runtime deps. X-Git-Tag: v2.2_rc24~221 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=d3c5ad679c754276047dfa96926ea8fe6390bcb5;p=portage.git Fix Scheduler._find_system_deps() so that it only traverses runtime deps. svn path=/main/trunk/; revision=12581 --- diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 4bd268244..b78095832 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -9991,14 +9991,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