summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-03 02:14:08 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-03 02:14:08 +0000
commitf3c2222b5132e4d6981dfd0307f29c0d97ef4447 (patch)
tree79d9eda0eef5f610b3509940c8e417317b77af0d
parent7e0b8b6e6cb4c927faa7ffe04e5a67e88d2b451e (diff)
downloadportage-f3c2222b5132e4d6981dfd0307f29c0d97ef4447.tar.gz
portage-f3c2222b5132e4d6981dfd0307f29c0d97ef4447.tar.bz2
portage-f3c2222b5132e4d6981dfd0307f29c0d97ef4447.zip
Fix --resume mode to check for unsatisfied blockers and bail out when
necessary. svn path=/main/trunk/; revision=10115
-rw-r--r--pym/_emerge/__init__.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index e1b078602..61c4aed7d 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -7637,6 +7637,10 @@ def action_build(settings, trees, mtimedb,
mysettings.lock()
del myroot, mysettings
+ favorites = mtimedb["resume"].get("favorites")
+ if not isinstance(favorites, list):
+ favorites = []
+
# "myopts" is a list for backward compatibility.
resume_opts = mtimedb["resume"].get("myopts", [])
if isinstance(resume_opts, list):
@@ -7664,6 +7668,21 @@ def action_build(settings, trees, mtimedb,
if show_spinner:
print "\b\b... done!"
+ if success:
+ mymergelist = mydepgraph.altlist()
+ if mymergelist and \
+ (isinstance(mymergelist[-1], Blocker) and \
+ not mymergelist[-1].satisfied):
+ if not fetchonly and not pretend:
+ mydepgraph.display(
+ mydepgraph.altlist(reversed=tree),
+ favorites=favorites)
+ print "\n!!! Error: The above package list contains packages which cannot be installed"
+ print "!!! at the same time on the same system."
+ if not quiet:
+ show_blocker_docs_link()
+ return 1
+
if not success:
mydepgraph.display_problems()