diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-01-18 23:15:47 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-01-18 23:15:47 +0000 |
commit | 2acca867498d5f260c41f531a029ec4cb31b7435 (patch) | |
tree | 87a3eef2ca30af9b5108aa29840b07cac7a30da6 | |
parent | 42eb4ea70259dc0e24a5767a4d8f815d632ba228 (diff) | |
download | portage-2acca867498d5f260c41f531a029ec4cb31b7435.tar.gz portage-2acca867498d5f260c41f531a029ec4cb31b7435.tar.bz2 portage-2acca867498d5f260c41f531a029ec4cb31b7435.zip |
Bug #255358 - Add new RDEPEND.implicit warning to detect the caes where DEPENDv2.2_rc23
is set and RDEPEND is unset in the ebuild, since this triggers implicit
RDEPEND=$DEPEND assignment.
svn path=/main/trunk/; revision=12529
-rwxr-xr-x | bin/repoman | 2 | ||||
-rw-r--r-- | man/repoman.1 | 4 | ||||
-rw-r--r-- | pym/repoman/checks.py | 29 |
3 files changed, 34 insertions, 1 deletions
diff --git a/bin/repoman b/bin/repoman index 05d6d99c2..0a8166c65 100755 --- a/bin/repoman +++ b/bin/repoman @@ -305,6 +305,7 @@ qahelp={ "IUSE.undefined":"This ebuild does not define IUSE (style guideline says to define IUSE even when empty)", "LICENSE.invalid":"This ebuild is listing a license that doesnt exist in portages license/ dir.", "KEYWORDS.invalid":"This ebuild contains KEYWORDS that are not listed in profiles/arch.list or for which no valid profile was found", + "RDEPEND.implicit":"RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND assignment", "RDEPEND.suspect":"RDEPEND contains a package that usually only belongs in DEPEND.", "RESTRICT.invalid":"This ebuild contains invalid RESTRICT values.", "digestentry.unused":"Some files listed in the Manifest aren't referenced in SRC_URI", @@ -343,6 +344,7 @@ qawarnings = set(( "KEYWORDS.stupid", "KEYWORDS.missing", "IUSE.undefined", +"RDEPEND.implicit", "RDEPEND.suspect", "RESTRICT.invalid", "SRC_URI.mirror", diff --git a/man/repoman.1 b/man/repoman.1 index 754214049..5b5aec6ff 100644 --- a/man/repoman.1 +++ b/man/repoman.1 @@ -168,6 +168,10 @@ Masked ebuilds with RDEPEND settings (matched against *all* ebuilds) .B RDEPEND.badmaskedindev Masked ebuilds with RDEPEND settings (matched against *all* ebuilds) in developing arch .TP +.B RDEPEND.implicit +RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND +assignment +.TP .B RDEPEND.suspect RDEPEND contains a package that usually only belongs in DEPEND .TP 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): |