From 4827f2de62ec604fbf3a6dafbcfbe2c180481efe Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 22 Jun 2009 20:02:48 +0000 Subject: Bug #275047 - Split _emerge/__init__.py into smaller pieces (part 4). Thanks to Sebastian Mingramm (few) for this patch. svn path=/main/trunk/; revision=13669 --- pym/_emerge/show_invalid_depstring_notice.py | 39 ++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 pym/_emerge/show_invalid_depstring_notice.py (limited to 'pym/_emerge/show_invalid_depstring_notice.py') diff --git a/pym/_emerge/show_invalid_depstring_notice.py b/pym/_emerge/show_invalid_depstring_notice.py new file mode 100644 index 000000000..4eaca0e68 --- /dev/null +++ b/pym/_emerge/show_invalid_depstring_notice.py @@ -0,0 +1,39 @@ +import logging +import os +import textwrap + +try: + import portage +except ImportError: + from os import path as osp + import sys + sys.path.insert(0, osp.join(osp.dirname(osp.dirname(osp.realpath(__file__))), "pym")) + import portage + +from portage.util import writemsg_level + +def show_invalid_depstring_notice(parent_node, depstring, error_msg): + + msg1 = "\n\n!!! Invalid or corrupt dependency specification: " + \ + "\n\n%s\n\n%s\n\n%s\n\n" % (error_msg, parent_node, depstring) + p_type, p_root, p_key, p_status = parent_node + msg = [] + if p_status == "nomerge": + category, pf = portage.catsplit(p_key) + pkg_location = os.path.join(p_root, portage.VDB_PATH, category, pf) + msg.append("Portage is unable to process the dependencies of the ") + msg.append("'%s' package. " % p_key) + msg.append("In order to correct this problem, the package ") + msg.append("should be uninstalled, reinstalled, or upgraded. ") + msg.append("As a temporary workaround, the --nodeps option can ") + msg.append("be used to ignore all dependencies. For reference, ") + msg.append("the problematic dependencies can be found in the ") + msg.append("*DEPEND files located in '%s/'." % pkg_location) + else: + msg.append("This package can not be installed. ") + msg.append("Please notify the '%s' package maintainer " % p_key) + msg.append("about this problem.") + + msg2 = "".join("%s\n" % line for line in textwrap.wrap("".join(msg), 72)) + writemsg_level(msg1 + msg2, level=logging.ERROR, noiselevel=-1) + -- cgit v1.2.3-1-g7c22