summaryrefslogtreecommitdiffstats
path: root/pym/repoman/checks.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-01-18 23:43:54 +0000
committerZac Medico <zmedico@gentoo.org>2009-01-18 23:43:54 +0000
commit851a9149d4bb61727fb71ecb8145f6b26e9090fb (patch)
tree9454c4e1bfe4b69d5e1a4b96fe4ffdd41aa5cdba /pym/repoman/checks.py
parentdbe3b2cf7aeef1e2560147b03516912660c05603 (diff)
downloadportage-851a9149d4bb61727fb71ecb8145f6b26e9090fb.tar.gz
portage-851a9149d4bb61727fb71ecb8145f6b26e9090fb.tar.bz2
portage-851a9149d4bb61727fb71ecb8145f6b26e9090fb.zip
Bug #255358 - Add new RDEPEND.implicit warning to detect the caes where DEPENDv2.1.6.7
is set and RDEPEND is unset in the ebuild, since this triggers implicit RDEPEND=$DEPEND assignment. (trunk r12529) svn path=/main/branches/2.1.6/; revision=12537
Diffstat (limited to 'pym/repoman/checks.py')
-rw-r--r--pym/repoman/checks.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py
index 7565039f2..c9ef91cfc 100644
--- a/pym/repoman/checks.py
+++ b/pym/repoman/checks.py
@@ -230,6 +230,33 @@ class EbuildQuotedA(LineCheck):
if match:
return "Quoted \"${A}\" on line: %d"
+class ImplicitRuntimeDeps(LineCheck):
+ """
+ Detect the case where DEPEND is set and RDEPEND is unset in the ebuild,
+ since this triggers implicit RDEPEND=$DEPEND assignment.
+ """
+
+ repoman_check_name = 'RDEPEND.implicit'
+ _assignment_re = re.compile(r'^\s*(R?DEPEND)=')
+
+ def new(self, pkg):
+ self._rdepend = False
+ self._depend = False
+
+ def check(self, num, line):
+ if not self._rdepend:
+ m = self._assignment_re.match(line)
+ if m is None:
+ pass
+ elif m.group(1) == "RDEPEND":
+ self._rdepend = True
+ elif m.group(1) == "DEPEND":
+ self._depend = True
+
+ def end(self):
+ if self._depend and not self._rdepend:
+ yield 'RDEPEND is not explicitly assigned'
+
class InheritAutotools(LineCheck):
"""
Make sure appropriate functions are called in
@@ -306,7 +333,7 @@ _constant_checks = tuple((c() for c in (
EbuildAssignment, EbuildUselessDodoc,
EbuildUselessCdS, EbuildNestedDie,
EbuildPatches, EbuildQuotedA,
- IUseUndefined, InheritAutotools,
+ IUseUndefined, ImplicitRuntimeDeps, InheritAutotools,
EMakeParallelDisabled, DeprecatedBindnowFlags)))
def run_checks(contents, pkg):