summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/repoman2
-rw-r--r--man/repoman.13
-rw-r--r--pym/repoman/checks.py21
3 files changed, 25 insertions, 1 deletions
diff --git a/bin/repoman b/bin/repoman
index a67fae8d..ba9feabc 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -288,6 +288,7 @@ qahelp={
"DESCRIPTION.missing":"Ebuilds that have a missing or empty DESCRIPTION variable",
"DESCRIPTION.toolong":"DESCRIPTION is over %d characters" % max_desc_len,
"EAPI.definition":"EAPI is defined after an inherit call (must be defined before)",
+ "EAPI.deprecated":"Ebuilds that use features that are deprecated in the current EAPI",
"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.invalid":"Ebuilds that have a missing or invalid SLOT variable value",
@@ -368,6 +369,7 @@ qawarnings = set((
"DEPEND.badmaskedindev","RDEPEND.badmaskedindev","PDEPEND.badmaskedindev",
"DEPEND.badtilde", "RDEPEND.badtilde", "PDEPEND.badtilde",
"DESCRIPTION.toolong",
+"EAPI.deprecated",
"HOMEPAGE.virtual",
"LICENSE.virtual",
"KEYWORDS.dropped",
diff --git a/man/repoman.1 b/man/repoman.1
index 129ffd00..9d8f299d 100644
--- a/man/repoman.1
+++ b/man/repoman.1
@@ -110,6 +110,9 @@ Ebuilds that have a missing or empty DESCRIPTION variable
.B EAPI.definition
EAPI is defined after an inherit call (must be defined before)
.TP
+.B EAPI.deprecated
+Ebuilds that use features that are deprecated in the current EAPI
+.TP
.B EAPI.incompatible
Ebuilds that use features that are only available with a different EAPI
.TP
diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py
index 36e074c9..941cb418 100644
--- a/pym/repoman/checks.py
+++ b/pym/repoman/checks.py
@@ -438,6 +438,24 @@ class BuiltWithUse(LineCheck):
re = re.compile('^.*built_with_use')
error = errors.BUILT_WITH_USE
+# EAPI-3 checks
+class Eapi3DeprecatedFuncs(LineCheck):
+ repoman_check_name = 'EAPI.deprecated'
+ ignore_line = re.compile(r'(^\s*#)')
+ deprecated_commands_re = re.compile(r'^\s*(check_license)\b')
+
+ def new(self, pkg):
+ self.eapi = pkg.metadata['EAPI']
+
+ def check_eapi(self, eapi):
+ return self.eapi not in ('0', '1', '2')
+
+ def check(self, num, line):
+ m = self.deprecated_commands_re.match(line)
+ if m is not None:
+ return ("'%s'" % m.group(1)) + \
+ " has been deprecated in EAPI=3 on line: %d"
+
# EAPI-4 checks
class Eapi4IncompatibleFuncs(LineCheck):
repoman_check_name = 'EAPI.incompatible'
@@ -481,7 +499,8 @@ _constant_checks = tuple((c() for c in (
IUseUndefined, InheritAutotools,
EMakeParallelDisabled, EMakeParallelDisabledViaMAKEOPTS, NoAsNeeded,
DeprecatedBindnowFlags, SrcUnpackPatches, WantAutoDefaultValue,
- SrcCompileEconf, Eapi4IncompatibleFuncs, Eapi4GoneVars, BuiltWithUse)))
+ SrcCompileEconf, Eapi3DeprecatedFuncs,
+ Eapi4IncompatibleFuncs, Eapi4GoneVars, BuiltWithUse)))
_here_doc_re = re.compile(r'.*\s<<[-]?(\w+)$')