Merged from trunk 8456:8457
authorFabian Groffen <grobian@gentoo.org>
Thu, 8 Nov 2007 19:25:03 +0000 (19:25 -0000)
committerFabian Groffen <grobian@gentoo.org>
Thu, 8 Nov 2007 19:25:03 +0000 (19:25 -0000)
   | 8457    | For unsatisfied dependencies, shorten the per-package EAPI   |
   | zmedico | mask output and show an informative message whenever an EAPI |
   |         | mask is encountered.                                         |

svn path=/main/branches/prefix/; revision=8459

pym/_emerge/__init__.py
pym/portage/__init__.py

index 530780c6899100657600b061e88e4bcaa84c52a7..d650041e6ce2169eae02f902d7933c7d7d9f51a5 100644 (file)
@@ -2083,6 +2083,8 @@ class depgraph(object):
                                red(' [%s]' % myparent[0]) + ')'
                masked_packages = []
                missing_licenses = []
+               from textwrap import wrap
+               have_eapi_mask = False
                pkgsettings = self.pkgsettings[root]
                portdb = self.roots[root].trees["porttree"].dbapi
                dbs = self._filtered_trees[root]["dbs"]
@@ -2128,6 +2130,8 @@ class depgraph(object):
                                                mreasons.append("EPREFIX: '%s' too small" % metadata["EPREFIX"])
                                missing_licenses = []
                                if metadata:
+                                       if not portage.eapi_is_supported(metadata["EAPI"]):
+                                               have_eapi_mask = True
                                        try:
                                                missing_licenses = \
                                                        pkgsettings.getMissingLicenses(
@@ -2164,6 +2168,18 @@ class depgraph(object):
                                        print msg
                                        print
                                        shown_licenses.add(l)
+                       if have_eapi_mask:
+                               if portage.const.EAPIPREFIX:
+                                       p = portage.const.EAPIPREFIX + " "
+                               else:
+                                       p = ''
+                               print
+                               msg = ("The current version of portage supports " + \
+                                       "EAPI '%s%s'. You must upgrade to a newer version" + \
+                                       " of portage before EAPI masked packages can" + \
+                                       " be installed.") % (p, portage.const.EAPI)
+                               for line in wrap(msg, 75):
+                                       print line
                        print
                        print "For more information, see MASKED PACKAGES section in the emerge man page or "
                        print "refer to the Gentoo Handbook."
index 8aa264e8e0c2173ff0b6e6986a47ef2b78b92f83..1917279393a9eb844de246cb478007f3b2bc0131 100644 (file)
@@ -5324,8 +5324,7 @@ def getmaskingstatus(mycpv, metadata=None, settings=None, portdb=None):
        if eapi.startswith("-"):
                eapi = eapi[1:]
        if not eapi_is_supported(eapi):
-               return ["ebuild requires EAPI %s, portage supports EAPI %s %s" %
-                               (eapi, portage.const.EAPIPREFIX, portage.const.EAPI)]
+               return ["EAPI %s" % eapi]
        egroups = settings.configdict["backupenv"].get(
                "ACCEPT_KEYWORDS", "").split()
        mygroups = mygroups.split()