summaryrefslogtreecommitdiffstats
path: root/pym/_emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-02 20:30:01 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-02 20:30:01 +0000
commit75689d1acf4efc1253f7ea9e12a9a2db687e67d5 (patch)
tree119a450875f00391328849804d60a16ef02a7c32 /pym/_emerge
parent2425262f4aa130ee9941befce29cccb59e49aa96 (diff)
downloadportage-75689d1acf4efc1253f7ea9e12a9a2db687e67d5.tar.gz
portage-75689d1acf4efc1253f7ea9e12a9a2db687e67d5.tar.bz2
portage-75689d1acf4efc1253f7ea9e12a9a2db687e67d5.zip
When searching for a "sys-apps/portage" installation task, use match_pkgs()
instead of sequential search. svn path=/main/trunk/; revision=10104
Diffstat (limited to 'pym/_emerge')
-rw-r--r--pym/_emerge/__init__.py18
1 files changed, 10 insertions, 8 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 303743f9e..b306f1085 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -3430,7 +3430,7 @@ class depgraph(object):
complete = "complete" in self.myparams
myblocker_parents = self._blocker_parents.copy()
asap_nodes = []
- portage_node = None
+
def get_nodes(**kwargs):
"""
Returns leaf nodes excluding Uninstall instances
@@ -3441,13 +3441,15 @@ class depgraph(object):
node.operation != "uninstall"]
# sys-apps/portage needs special treatment if ROOT="/"
- for node in mygraph.order:
- if isinstance(node, Package) and \
- "sys-apps/portage" == node.cp and \
- "/" == node.root:
- portage_node = node
- asap_nodes.append(node)
- break
+ portage_node = self.mydbapi["/"].match_pkgs("sys-apps/portage")
+ if portage_node:
+ portage_node = portage_node[0]
+ else:
+ portage_node = None
+ if portage_node is not None and \
+ (not mygraph.contains(portage_node) or \
+ portage_node.operation == "nomerge"):
+ portage_node = None
ignore_priority_soft_range = [None]
ignore_priority_soft_range.extend(