diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-01-18 23:43:54 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-01-18 23:43:54 +0000 |
commit | 851a9149d4bb61727fb71ecb8145f6b26e9090fb (patch) | |
tree | 9454c4e1bfe4b69d5e1a4b96fe4ffdd41aa5cdba /pym | |
parent | dbe3b2cf7aeef1e2560147b03516912660c05603 (diff) | |
download | portage-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')
-rw-r--r-- | pym/repoman/checks.py | 29 |
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): |