diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-03-11 05:08:53 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-03-11 05:08:53 +0000 |
commit | e21a364874b908e9f1e6e4cbdfbadba62bac2f2a (patch) | |
tree | 785afe1722df80b64fdfd5f304d6d81faee9cfcb /pym | |
parent | d121bd4d249997476d2287633d04c408e625e168 (diff) | |
download | portage-e21a364874b908e9f1e6e4cbdfbadba62bac2f2a.tar.gz portage-e21a364874b908e9f1e6e4cbdfbadba62bac2f2a.tar.bz2 portage-e21a364874b908e9f1e6e4cbdfbadba62bac2f2a.zip |
For the --buildpkgonly digraph.hasallzeros() check, remove "nomerge" nodes
from the graph. This makes it unnecessary to tweak the dependency priority
for onlydeps packages inside depgraph._add_pkg_dep(). (trunk r12610)
svn path=/main/branches/2.1.6/; revision=12888
Diffstat (limited to 'pym')
-rw-r--r-- | pym/_emerge/__init__.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index 4109322f9..0d94025bd 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -5088,10 +5088,6 @@ class depgraph(object): strict = mytype != "installed" try: for dep_root, dep_string, dep_priority in deps: - if pkg.onlydeps: - # Decrease priority so that --buildpkgonly - # hasallzeros() works correctly. - dep_priority = DepPriority() if not dep_string: continue if debug: @@ -13891,9 +13887,12 @@ def action_build(settings, trees, mtimedb, return retval if "--buildpkgonly" in myopts: graph_copy = mydepgraph.digraph.clone() + removed_nodes = set() for node in list(graph_copy.order): - if not isinstance(node, Package): - graph_copy.remove(node) + if not isinstance(node, Package) or \ + node.operation == "nomerge": + removed_nodes.add(node) + graph_copy.difference_update(removed_nodes) if not graph_copy.hasallzeros(ignore_priority=DepPriority.MEDIUM): print "\n!!! --buildpkgonly requires all dependencies to be merged." print "!!! You have to merge the dependencies before you can build this package.\n" @@ -13901,9 +13900,12 @@ def action_build(settings, trees, mtimedb, else: if "--buildpkgonly" in myopts: graph_copy = mydepgraph.digraph.clone() + removed_nodes = set() for node in list(graph_copy.order): - if not isinstance(node, Package): - graph_copy.remove(node) + if not isinstance(node, Package) or \ + node.operation == "nomerge": + removed_nodes.add(node) + graph_copy.difference_update(removed_nodes) if not graph_copy.hasallzeros(ignore_priority=DepPriority.MEDIUM): print "\n!!! --buildpkgonly requires all dependencies to be merged." print "!!! Cannot merge requested packages. Merge deps and try again.\n" |