summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-11-20 19:30:17 +0000
committerZac Medico <zmedico@gentoo.org>2007-11-20 19:30:17 +0000
commitae66b19d3a06cefb7a765f5e7af2d16026bfdcc9 (patch)
treef7250bed00b853f58b03fac416a915e203d8c740 /bin/emerge
parent85ecff2a9d2c37bbddf7b630699642b34b3078ee (diff)
downloadportage-ae66b19d3a06cefb7a765f5e7af2d16026bfdcc9.tar.gz
portage-ae66b19d3a06cefb7a765f5e7af2d16026bfdcc9.tar.bz2
portage-ae66b19d3a06cefb7a765f5e7af2d16026bfdcc9.zip
For unsatisfied dependencies, shorten the per-package EAPI mask
output and show an informative message whenever an EAPI mask is encountered. (trunk r8457) svn path=/main/branches/2.1.2/; revision=8544
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge27
1 files changed, 23 insertions, 4 deletions
diff --git a/bin/emerge b/bin/emerge
index 7eb9fbeab..70bb6403e 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -1981,6 +1981,8 @@ class depgraph:
green('"%s"' % myparent[2]) + \
red(' [%s]' % myparent[0]) + ')'
alleb = portdb.xmatch("match-all", x)
+ from textwrap import wrap
+ have_eapi_mask = False
if alleb:
if "--usepkgonly" not in self.myopts:
print "\n!!! "+red("All ebuilds that could satisfy ")+green(xinfo)+red(" have been masked.")
@@ -1996,6 +1998,24 @@ class depgraph:
print filename+":"
print comment
oldcomment = comment
+ try:
+ aux_keys = list(portdb._aux_cache_keys)
+ metadata = dict(izip(aux_keys,
+ portdb.aux_get(p, aux_keys)))
+ except KeyError:
+ pass
+ else:
+ if not portage.eapi_is_supported(
+ metadata["EAPI"]):
+ have_eapi_mask = True
+ if have_eapi_mask:
+ print
+ msg = ("The current version of portage supports " + \
+ "EAPI '%s'. You must upgrade to a newer version" + \
+ " of portage before EAPI masked packages can" + \
+ " be installed.") % 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."
@@ -2014,10 +2034,9 @@ class depgraph:
metadata["CHOST"])
if not portage.eapi_is_supported(
metadata["EAPI"]):
- mreasons.append(("required EAPI %s" + \
- ", supported EAPI %s") % \
- (metadata["EAPI"],
- portage_const.EAPI))
+ have_eapi_mask = True
+ mreasons.append(
+ "EAPI %s" % metadata["EAPI"])
print "- "+p+" (masked by: "+", ".join(mreasons)+")"
print "!!! "+red("There are no packages available to satisfy: ")+green(xinfo)
print "!!! Either add a suitable binary package or compile from an ebuild."