Bug #202036 - In case of blockers, bail out earlier so that later
authorZac Medico <zmedico@gentoo.org>
Thu, 13 Dec 2007 01:24:08 +0000 (01:24 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 13 Dec 2007 01:24:08 +0000 (01:24 -0000)
code can assume there are no blockers. (trunk r8889)

svn path=/main/branches/2.1.2/; revision=8890

bin/emerge

index 0c29b187b40d02581a30880571174ddd4c98db24..aee37cea58bb74e933348f0854338739d5b78cb6 100755 (executable)
@@ -3689,19 +3689,6 @@ class MergeTask(object):
                ldpath_mtimes = mtimedb["ldpath"]
                xterm_titles = "notitles" not in self.settings.features
 
-               #check for blocking dependencies
-               if "--fetchonly" not in self.myopts and \
-                       "--fetch-all-uri" not in self.myopts and \
-                       "--buildpkgonly" not in self.myopts:
-                       for x in mylist:
-                               if x[0]=="blocks":
-                                       print "\n!!! Error: the "+x[2]+" package conflicts with another package;"
-                                       print   "!!!        the two packages cannot be installed on the same system together."
-                                       print   "!!!        Please use 'emerge --pretend' to determine blockers."
-                                       if "--quiet" not in self.myopts:
-                                               show_blocker_docs_link()
-                                       return 1
-
                if "--resume" in self.myopts:
                        # We're resuming.
                        print colorize("GOOD", "*** Resuming merge...")
@@ -6043,13 +6030,27 @@ def action_build(settings, trees, mtimedb,
                                                        ("--pretend" in myopts),
                                                        mydbapi=trees[pkgline[1]]["porttree"].dbapi,
                                                        tree="porttree")
-                       if "--fetchonly" in myopts or "--fetch-all-uri" in myopts:
-                               pkglist = []
-                               for pkg in mydepgraph.altlist():
-                                       if pkg[0] != "blocks":
-                                               pkglist.append(pkg)
+
+                       pkglist = mydepgraph.altlist()
+
+                       if fetchonly or "--buildpkgonly"  in myopts:
+                               pkglist = [pkg for pkg in pkglist if pkg[0] != "blocks"]
                        else:
-                               pkglist = mydepgraph.altlist()
+                               for x in pkglist:
+                                       if x[0] != "blocks":
+                                               continue
+                                       msg = "Error: the " + x[2] + " package conflicts " + \
+                                       "with another package; the two packages cannot " + \
+                                       "be installed on the same system together. " + \
+                                       "Please use 'emerge --pretend' to determine blockers."
+                                       prefix = red(" * ")
+                                       from textwrap import wrap
+                                       for line in wrap(msg, 70):
+                                               print prefix + line
+                                       if "--quiet" not in myopts:
+                                               show_blocker_docs_link()
+                                       return 1
+
                        if favorites:
                                mydepgraph.saveNomergeFavorites()
                        del mydepgraph