diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-02 20:31:33 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-02 20:31:33 +0000 |
commit | 970ef193b6456215800800ea8aa285370d4f0725 (patch) | |
tree | 03d74bcc38ddb3ae13b6aba0a028f4b6a3e1c613 | |
parent | 0fb4e3ffd952dd7079fec55339ff6b0d427fdbd0 (diff) | |
download | portage-970ef193b6456215800800ea8aa285370d4f0725.tar.gz portage-970ef193b6456215800800ea8aa285370d4f0725.tar.bz2 portage-970ef193b6456215800800ea8aa285370d4f0725.zip |
When searching for a "sys-apps/portage" installation task, use match_pkgs()
instead of sequential search. (trunk r10104)
svn path=/main/branches/2.1.2/; revision=10105
-rwxr-xr-x | bin/emerge | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/bin/emerge b/bin/emerge index 38997c2e0..2eb370f02 100755 --- a/bin/emerge +++ b/bin/emerge @@ -3577,7 +3577,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 @@ -3588,13 +3588,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( |