summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-12-13 01:24:08 +0000
committerZac Medico <zmedico@gentoo.org>2007-12-13 01:24:08 +0000
commitf74cdc93a623f02936a5b3f94d016f874ceb350f (patch)
tree78f9d671b4ff37baafec603e698f8b41f283ec07 /bin/emerge
parentInstead of calling sys.exit when a ParseError occurs in the config (diff)
downloadportage-multirepo-f74cdc93a623f02936a5b3f94d016f874ceb350f.tar.gz
portage-multirepo-f74cdc93a623f02936a5b3f94d016f874ceb350f.tar.bz2
portage-multirepo-f74cdc93a623f02936a5b3f94d016f874ceb350f.zip
Bug #202036 - In case of blockers, bail out earlier so that later
code can assume there are no blockers. (trunk r8889) svn path=/main/branches/2.1.2/; revision=8890
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge39
1 files changed, 20 insertions, 19 deletions
diff --git a/bin/emerge b/bin/emerge
index 0c29b187..aee37cea 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -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