summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-03-28 04:07:13 +0000
committerZac Medico <zmedico@gentoo.org>2008-03-28 04:07:13 +0000
commit68b10f5dcd17618959726143dc890f2618123f7a (patch)
treed0d7fd6eb351ba9851c37b2de8bfb358a442230a
parentRemove redundant info from the KEYWORDS.dropped message. (diff)
downloadportage-multirepo-68b10f5dcd17618959726143dc890f2618123f7a.tar.gz
portage-multirepo-68b10f5dcd17618959726143dc890f2618123f7a.tar.bz2
portage-multirepo-68b10f5dcd17618959726143dc890f2618123f7a.zip
Bug #213629 - Create an EAPI.incompatible category and use it in cases
where EAPI=0 and a slot atom is encountered. svn path=/main/trunk/; revision=9524
-rwxr-xr-xbin/repoman15
-rw-r--r--man/repoman.13
2 files changed, 15 insertions, 3 deletions
diff --git a/bin/repoman b/bin/repoman
index df7c0c0e..f89e1de7 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -257,6 +257,7 @@ qahelp={
"LICENSE.missing":"Ebuilds that have a missing or empty LICENSE variable",
"DESCRIPTION.missing":"Ebuilds that have a missing or empty DESCRIPTION variable",
"DESCRIPTION.toolong":"DESCRIPTION is over %d characters" % max_desc_len,
+ "EAPI.incompatible":"Ebuilds that use features that are only available with a different EAPI",
"EAPI.unsupported":"Ebuilds that have an unsupported EAPI version (you must upgrade portage)",
"SLOT.missing":"Ebuilds that have a missing or empty SLOT variable",
"HOMEPAGE.missing":"Ebuilds that have a missing or empty HOMEPAGE variable",
@@ -974,6 +975,7 @@ for x in scanlist:
continue
myaux = ebuild_metadata[y]
+ eapi = myaux["EAPI"]
# Test for negative logic and bad words in the RESTRICT var.
#for x in myaux[allvars.index("RESTRICT")].split():
@@ -1145,15 +1147,22 @@ for x in scanlist:
if myteststr.find(token) != -1:
badsyntax.append("'%s' not separated by space" % (token))
-
if mytype in ("DEPEND", "RDEPEND", "PDEPEND"):
for token in mydepstr.split():
if token in operator_tokens or \
token.endswith("?"):
continue
- if not portage.isvalidatom(token, allow_blockers=True) or \
- ":" in token and myaux["EAPI"] == "0":
+ if not portage.isvalidatom(token, allow_blockers=True):
badsyntax.append("'%s' not a valid atom" % token)
+ else:
+ atom = token.lstrip("!")
+ if eapi == "0":
+ if portage.dep.dep_getslot(atom):
+ stats['EAPI.incompatible'] += 1
+ fails['EAPI.incompatible'].append(
+ (relative_path + ": %s slot dependency" + \
+ " not supported with EAPI='%s':" + \
+ " '%s'") % (mytype, eapi, atom))
type_list.extend([mytype] * (len(badsyntax) - len(type_list)))
diff --git a/man/repoman.1 b/man/repoman.1
index 7956ab44..f2175242 100644
--- a/man/repoman.1
+++ b/man/repoman.1
@@ -102,6 +102,9 @@ Syntax error in DEPEND (usually an extra/missing space/parenthesis)
.B DESCRIPTION.missing
Ebuilds that have a missing or empty DESCRIPTION variable
.TP
+.B EAPI.incompatible
+Ebuilds that use features that are only available with a different EAPI
+.TP
.B EAPI.unsupported
Ebuilds that have an unsupported EAPI version (you must upgrade portage)
.TP