summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-12-21 00:32:10 +0000
committerZac Medico <zmedico@gentoo.org>2006-12-21 00:32:10 +0000
commit4873e71dd032f3f1fc00cb98f9d17ea9d3b1b390 (patch)
treea784cf6c662f34ab4933340757c801616341c2fa /bin/emerge
parentFor bug #158558, ignore invalid depstrings for packages that are being replac... (diff)
downloadportage-multirepo-4873e71dd032f3f1fc00cb98f9d17ea9d3b1b390.tar.gz
portage-multirepo-4873e71dd032f3f1fc00cb98f9d17ea9d3b1b390.tar.bz2
portage-multirepo-4873e71dd032f3f1fc00cb98f9d17ea9d3b1b390.zip
When a removal phase fails, tell the user where the ebuild is and advise them that the ebuild can be removed in order to skip the removal phases.
svn path=/main/trunk/; revision=5340
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge21
1 files changed, 21 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index 744db7b9..8d310da4 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3230,11 +3230,32 @@ def unmerge(settings, myopts, vartree, unmerge_action, unmerge_files,
vartree=vartree, ldpath_mtimes=ldpath_mtimes)
if retval != os.EX_OK:
emergelog(xterm_titles, " !!! unmerge FAILURE: "+y)
+ ebuild = vartree.dbapi.findname(y)
+ show_unmerge_failure_message(y, ebuild, retval)
+ sys.exit(retval)
else:
clean_world(vartree.dbapi, y)
emergelog(xterm_titles, " >>> unmerge success: "+y)
return 1
+def show_unmerge_failure_message(pkg, ebuild, retval):
+
+ from formatter import AbstractFormatter, DumbWriter
+ f = AbstractFormatter(DumbWriter(maxcol=72))
+
+ msg = []
+ msg.append("A removal phase of the '%s' package " % pkg)
+ msg.append("has failed with exit value %s. " % retval)
+ msg.append("The problem occurred while executing ")
+ msg.append("the ebuild located at '%s'. " % ebuild)
+ msg.append("If necessary, manually remove the ebuild " )
+ msg.append("in order to skip the execution of removal phases.")
+
+ print
+ for x in msg:
+ f.add_flowing_data(x)
+ f.end_paragraph(1)
+
def chk_updated_info_files(root, infodirs, prev_mtimes, retval):
print