From e1b7dcba97af663b8589c01e6245f4875621c9fd Mon Sep 17 00:00:00 2001 From: Fabian Groffen Date: Sun, 30 Jan 2011 21:52:50 +0100 Subject: repoman: add check for using offset vars with helpers New check: NoOffsetWithHelpers. Checks whether helper functions, such as dodir and insinto, are used with offset variables either referring to the installation image (D, ED), the alternate root location (ROOT, EROOT), or the offset prefix (EPREFIX). --- pym/repoman/checks.py | 13 +++++++++++-- pym/repoman/errors.py | 3 ++- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'pym') diff --git a/pym/repoman/checks.py b/pym/repoman/checks.py index baa7a3812..d00e6d59d 100644 --- a/pym/repoman/checks.py +++ b/pym/repoman/checks.py @@ -1,5 +1,5 @@ # repoman: Checks -# Copyright 2007, 2010 Gentoo Foundation +# Copyright 2007, 2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 """This module contains functions used in Repoman to ascertain the quality @@ -327,6 +327,15 @@ class EprefixifyDefined(LineCheck): elif self._inherit_prefix_re.search(line) is not None: self._prefix_inherited = True +class NoOffsetWithHelpers(LineCheck): + """ Check that the image location, the alternate root offset, and the + offset prefix (D, ROOT, ED, EROOT and EPREFIX) are not used with + helpers """ + + repoman_check_name = 'variable.usedwithhelpers' + re = re.compile(r'.*\b(dodir|dohard|exeinto|insinto|into)\s+"?\$\{?(D|ROOT|ED|EROOT|EPREFIX)\}?.*') + error = errors.EPREFIX_WITH_HELPERS + class ImplicitRuntimeDeps(LineCheck): """ Detect the case where DEPEND is set and RDEPEND is unset in the ebuild, @@ -622,7 +631,7 @@ _constant_checks = tuple((c() for c in ( ImplicitRuntimeDeps, InheritAutotools, InheritDeprecated, IUseUndefined, EMakeParallelDisabled, EMakeParallelDisabledViaMAKEOPTS, NoAsNeeded, DeprecatedBindnowFlags, SrcUnpackPatches, WantAutoDefaultValue, - SrcCompileEconf, Eapi3DeprecatedFuncs, + SrcCompileEconf, Eapi3DeprecatedFuncs, NoOffsetWithHelpers, Eapi4IncompatibleFuncs, Eapi4GoneVars, BuiltWithUse, PreserveOldLib, SandboxAddpredict))) diff --git a/pym/repoman/errors.py b/pym/repoman/errors.py index 5ad6be31f..a19e8c5c0 100644 --- a/pym/repoman/errors.py +++ b/pym/repoman/errors.py @@ -1,5 +1,5 @@ # repoman: Error Messages -# Copyright 2007-2010 Gentoo Foundation +# Copyright 2007-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 COPYRIGHT_ERROR = 'Invalid Gentoo Copyright on line: %d' @@ -20,4 +20,5 @@ NO_AS_NEEDED = 'Upstream asneeded linking bug (no-as-needed on line: %d)' PRESERVE_OLD_LIB = 'Upstream ABI change workaround on line: %d' BUILT_WITH_USE = 'built_with_use on line: %d' EPREFIXIFY_MISSING_INHERIT = "prefix.eclass is not inherited, but eprefixify is used on line: %d" +NO_OFFSET_WITH_HELPERS = "Helper function is used with D, ROOT, ED, EROOT or EPREFIX on line :%d" SANDBOX_ADDPREDICT = 'Ebuild calls addpredict on line: %d' -- cgit v1.2.3-1-g7c22