Merged from trunk -r12347:12352
authorFabian Groffen <grobian@gentoo.org>
Thu, 8 Jan 2009 19:52:54 +0000 (19:52 -0000)
committerFabian Groffen <grobian@gentoo.org>
Thu, 8 Jan 2009 19:52:54 +0000 (19:52 -0000)
   | 12348   | Bug #252572 - Fix a loop condition inside                    |
   | zmedico | depgraph._serialize_tasks() which can cause an infinite loop |
   |         | that's triggered by unresolvable blockers.                   |

   | 12349   | Fix loop logic some more for bug #252572.                    |
   | zmedico |                                                              |

   | 12350   | Bail out earlier if the file name argument doesn't end with  |
   | zmedico | '.ebuild'. Thanks to Diego 'Flameeyes' Pettenò for          |
   |         | reporting.                                                   |

   | 12351   | Bug #252562 - Show --onlydeps in short --help output.        |
   | zmedico |                                                              |

   | 12352   | Revert r12348 since it's not really needed and the previous  |
   | zmedico | version is more efficient.                                   |

svn path=/main/branches/prefix/; revision=12390

bin/ebuild
pym/_emerge/__init__.py
pym/_emerge/help.py

index 1810c32a7dcce5eb8ab7fa2c89ff77546ef9498f..0ef80cfda388781f466888058a902241be66f8bf 100755 (executable)
@@ -85,6 +85,12 @@ if portage.settings["NOCOLOR"] in ("yes","true") or not sys.stdout.isatty():
        portage.output.nocolor()
 
 ebuild = pargs.pop(0)
+
+if not ebuild.endswith(".ebuild"):
+       portage.writemsg("'%s' does not end with '.ebuild'.\n" % \
+               (ebuild,), noiselevel=-1)
+       sys.exit(1)
+
 if not os.path.isabs(ebuild):
        mycwd = os.getcwd()
        # Try to get the non-canonical path from the PWD evironment variable, since
index 466a82fcf29d8fded39ac8df6ac2812a7fdc8396..ac7523f0cac61589d1d1c76cf71068302f1581e4 100644 (file)
@@ -7038,15 +7038,17 @@ class depgraph(object):
                                                except KeyError:
                                                        pass
                                                else:
+                                                       uninst_task = node
                                                        ignored_uninstall_tasks.add(node)
                                                        break
 
-                               # After dropping an Uninstall task, reset
-                               # the state variables for leaf node selection and
-                               # continue trying to select leaf nodes.
-                               prefer_asap = True
-                               accept_root_node = False
-                               continue
+                               if uninst_task is not None:
+                                       # After dropping an Uninstall task, reset
+                                       # the state variables for leaf node selection and
+                                       # continue trying to select leaf nodes.
+                                       prefer_asap = True
+                                       accept_root_node = False
+                                       continue
 
                        if not selected_nodes:
                                self._circular_deps_for_display = mygraph
index bea1f13c02281c58270c76feff6ef2f07ce23554..f662584d74d46524f18545cf6275464a9dd75cb4 100644 (file)
@@ -18,7 +18,8 @@ def shorthelp():
        print "          [ " + green("--color")+" < " + turquoise("y") + " | "+ turquoise("n")+" >            ] [ "+green("--columns")+"    ]"
        print "          [ "+green("--complete-graph")+"             ] [ "+green("--deep")+"       ]"
        print "          [ "+green("--jobs") + " " + turquoise("JOBS")+" ] [ "+green("--keep-going")+" ] [ " + green("--load-average")+" " + turquoise("LOAD") + "            ]"
-       print "          [ "+green("--newuse")+"    ] [ "+green("--noconfmem")+"  ] [ "+green("--nospinner")+"  ] [ "+green("--oneshot")+"     ]"
+       print "          [ "+green("--newuse")+"    ] [ "+green("--noconfmem")+"  ] [ "+green("--nospinner")+"  ]"
+       print "          [ "+green("--oneshot")+"   ] [ "+green("--onlydeps")+"   ]"
        print "          [ "+green("--reinstall ")+turquoise("changed-use")+"      ] [ " + green("--with-bdeps")+" < " + turquoise("y") + " | "+ turquoise("n")+" >         ]"
        print bold("Actions:")+"  [ "+green("--depclean")+" | "+green("--list-sets")+" | "+green("--search")+" | "+green("--sync")+" | "+green("--version")+"        ]"