diff options
author | Zac Medico <zmedico@gentoo.org> | 2009-04-29 19:57:46 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2009-04-29 19:57:46 +0000 |
commit | 6d3180ac087f169478f9cb650b9f16dca45e758f (patch) | |
tree | 47cc9c719b068f88ff9b30c6afbfa55e7c8ac05e | |
parent | 70456279dbe24b22a7442c1ac5c27aeebc8ee6e7 (diff) | |
download | portage-6d3180ac087f169478f9cb650b9f16dca45e758f.tar.gz portage-6d3180ac087f169478f9cb650b9f16dca45e758f.tar.bz2 portage-6d3180ac087f169478f9cb650b9f16dca45e758f.zip |
Warn about sed and epatch calls which should be moved from src_unpack to
src_prepare. Thanks to Markus Meier <maekke@g.o> for the initial patch.
svn path=/main/trunk/; revision=13413
-rw-r--r-- | pym/repoman/checks.py | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py index 732f6eb95..78875b4c0 100644 --- a/pym/repoman/checks.py +++ b/pym/repoman/checks.py @@ -229,6 +229,38 @@ class EapiDefinition(LineCheck): elif self.inherit_re.match(line) is not None: self.inherit_line = line +class SrcUnpackPatches(LineCheck): + repoman_check_name = 'ebuild.minorsyn' + + src_unpack_re = re.compile(r'^src_unpack\(\)') + func_end_re = re.compile(r'^\}$') + src_prepare_tools_re = re.compile(r'\s(e?patch|sed)\s') + + def new(self, pkg): + if pkg.metadata['EAPI'] not in ('0', '1'): + self.eapi = pkg.metadata['EAPI'] + else: + self.eapi = None + self.in_src_unpack = None + + def check(self, num, line): + + if self.eapi is not None: + + if self.in_src_unpack is None and \ + self.src_unpack_re.match(line) is not None: + self.in_src_unpack = True + + if self.in_src_unpack is True and \ + self.func_end_re.match(line) is not None: + self.in_src_unpack = False + + if self.in_src_unpack: + m = self.src_prepare_tools_re.search(line) + if m is not None: + return ("'%s'" % m.group(1)) + \ + " call should be moved to src_prepare from line: %d" + class EbuildPatches(LineCheck): """Ensure ebuilds use bash arrays for PATCHES to ensure white space safety""" repoman_check_name = 'ebuild.patches' @@ -368,7 +400,7 @@ _constant_checks = tuple((c() for c in ( EbuildPatches, EbuildQuotedA, EapiDefinition, IUseUndefined, ImplicitRuntimeDeps, InheritAutotools, EMakeParallelDisabled, EMakeParallelDisabledViaMAKEOPTS, - DeprecatedBindnowFlags, WantAutoDefaultValue))) + DeprecatedBindnowFlags, SrcUnpackPatches, WantAutoDefaultValue))) _here_doc_re = re.compile(r'.*\s<<[-]?(\w+)$') |