summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-05-30 02:00:50 -0700
committerZac Medico <zmedico@gentoo.org>2010-05-30 02:00:50 -0700
commit9834be8b6d77c735afcf7bd55b26db9aeb441d1a (patch)
treec48015c833016cc5e9731f9565f86280f087e62d
parentMove imports to the top and use textwrap.wrap() instead of the formatter (diff)
downloadportage-idfetch-9834be8b6d77c735afcf7bd55b26db9aeb441d1a.tar.gz
portage-idfetch-9834be8b6d77c735afcf7bd55b26db9aeb441d1a.tar.bz2
portage-idfetch-9834be8b6d77c735afcf7bd55b26db9aeb441d1a.zip
Make depgraph._serialize_tasks show a debug message when it
enables 'complete' mode due to an uninstall, and fix the Package.__str__ method to display uninstall tasks properly.
-rw-r--r--pym/_emerge/Package.py6
-rw-r--r--pym/_emerge/depgraph.py12
2 files changed, 14 insertions, 4 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py
index 963bfd9f..845d3077 100644
--- a/pym/_emerge/Package.py
+++ b/pym/_emerge/Package.py
@@ -159,15 +159,13 @@ class Package(Task):
if self.type_name == "installed":
if self.root != "/":
s += " in '%s'" % self.root
+ if self.operation == "uninstall":
+ s += " scheduled for uninstall"
else:
if self.operation == "merge":
s += " scheduled for merge"
if self.root != "/":
s += " to '%s'" % self.root
- elif self.operation == "uninstall":
- s += " scheduled for uninstall"
- if self.root != "/":
- s += " from '%s'" % self.root
s += ")"
return s
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 5180c2de..a466e7d8 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -4014,6 +4014,18 @@ class depgraph(object):
not complete and \
not unsolvable_blockers:
self._dynamic_config.myparams["complete"] = True
+ if '--debug' in self._frozen_config.myopts:
+ msg = []
+ msg.append("enabling 'complete' depgraph mode " + \
+ "due to uninstall task(s):")
+ msg.append("")
+ for node in retlist:
+ if isinstance(node, Package) and \
+ node.operation == 'uninstall':
+ msg.append("\t%s" % (node,))
+ writemsg_level("\n%s\n" % \
+ "".join("%s\n" % line for line in msg),
+ level=logging.DEBUG, noiselevel=-1)
raise self._serialize_tasks_retry("")
# Set satisfied state on blockers, but not before the