Make sure that everything except Package nodes is ignored when doing
authorZac Medico <zmedico@gentoo.org>
Thu, 10 Apr 2008 08:41:28 +0000 (08:41 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 10 Apr 2008 08:41:28 +0000 (08:41 -0000)
the --buildpkgonly digraph.hasallzeros() check.

svn path=/main/trunk/; revision=9797

pym/_emerge/__init__.py

index 0e5a64f9d6e125e2220cbd2cc32bddb6f92b1170..6eae62d11bdcb593ed9849a073910fb8ebf3ba02 100644 (file)
@@ -7130,14 +7130,22 @@ def action_build(settings, trees, mtimedb,
                                favorites=favorites)
                        if retval != os.EX_OK:
                                return retval
-                       if "--buildpkgonly" in myopts and \
-                               not mydepgraph.digraph.hasallzeros(ignore_priority=DepPriority.MEDIUM):
+                       if "--buildpkgonly" in myopts:
+                               graph_copy = mydepgraph.digraph.clone()
+                               for node in graph_copy.order:
+                                       if not isinstance(node, Package):
+                                               graph_copy.remove(node)
+                               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"
                                        return 1
        else:
-               if ("--buildpkgonly" in myopts):
-                       if not mydepgraph.digraph.hasallzeros(ignore_priority=DepPriority.MEDIUM):
+               if "--buildpkgonly" in myopts:
+                       graph_copy = mydepgraph.digraph.clone()
+                       for node in graph_copy.order:
+                               if not isinstance(node, Package):
+                                       graph_copy.remove(node)
+                       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"
                                return 1