pkgcheck.checks.codingstyle module¶
Various line-based checks.
- class pkgcheck.checks.codingstyle.AbsoluteSymlink(cmd, **kwargs)[source]¶
Bases:
LineResult
,Warning
Ebuild uses dosym with absolute paths instead of relative.
- property desc¶
Result description.
- name = 'AbsoluteSymlink'¶
- class pkgcheck.checks.codingstyle.AbsoluteSymlinkCheck(*args)[source]¶
Bases:
Check
Scan ebuild for dosym absolute path usage instead of relative.
- DIRS = ('bin', 'etc', 'lib', 'opt', 'sbin', 'srv', 'usr', 'var')¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.AbsoluteSymlink'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.BadCommandsCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuild for various deprecated and banned command usage.
- extra_banned_commands = frozenset({'gpasswd', 'groupadd', 'groupdel', 'groupmod', 'useradd', 'userdel', 'usermod'})¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.BannedEapiCommand'>, <class 'pkgcheck.checks.codingstyle.BannedPhaseCall'>, <class 'pkgcheck.checks.codingstyle.DeprecatedEapiCommand'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.BannedEapiCommand(*args, eapi, **kwargs)[source]¶
Bases:
_EapiCommandResult
,Error
Ebuild uses a banned EAPI command.
- name = 'BannedEapiCommand'¶
- class pkgcheck.checks.codingstyle.BannedPhaseCall(line, lineno, **kwargs)[source]¶
Bases:
Error
,LineResult
Ebuild calls a phase function directly.
- property desc¶
Result description.
- name = 'BannedPhaseCall'¶
- class pkgcheck.checks.codingstyle.BetterCompressionCheck(*args)[source]¶
Bases:
Check
Scan ebuild for URIs with better compression.
- REGEXPS = (('.*\\b(?P<uri>https?://[^/]*?gitlab[^/]*?/.*/-/archive/.*?/\\S*\\.(?:tar\\.gz|tar(?!.bz2)|zip))', '.tar.bz2'),)¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.BetterCompressionUri'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.BetterCompressionUri(replacement, **kwargs)[source]¶
Bases:
LineResult
,Style
URI provider has better compression suggestion.
The URI used to fetch distfile doesn’t use the best compression available from the provider. Using better compression can save bandwidth for the users and mirrors.
- property desc¶
Result description.
- name = 'BetterCompressionUri'¶
- class pkgcheck.checks.codingstyle.DeclarationShadowedCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuilds for shadowed variable assignments in global scope.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.DuplicateFunctionDefinition'>, <class 'pkgcheck.checks.codingstyle.VariableShadowed'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.DeprecatedEapiCommand(*args, eapi, **kwargs)[source]¶
Bases:
_EapiCommandResult
,Warning
Ebuild uses a deprecated EAPI command.
- name = 'DeprecatedEapiCommand'¶
- class pkgcheck.checks.codingstyle.DeprecatedInsinto(cmd, **kwargs)[source]¶
Bases:
LineResult
,Warning
Ebuild uses insinto where more compact commands exist.
- property desc¶
Result description.
- name = 'DeprecatedInsinto'¶
- class pkgcheck.checks.codingstyle.DoCompressedFilesCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuild for compressed files passed to
do*
ornew**
.- compresion_extentions = ('.Z', '.gz', '.bz2', '.lzma', '.lz', '.lzo', '.lz4', '.xz', '.zst')¶
- functions = {'doman': <class 'pkgcheck.checks.codingstyle.InstallCompressedManpage'>, 'newman': <class 'pkgcheck.checks.codingstyle.InstallCompressedManpage'>, 'doinfo': <class 'pkgcheck.checks.codingstyle.InstallCompressedInfo'>}¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.InstallCompressedInfo'>, <class 'pkgcheck.checks.codingstyle.InstallCompressedManpage'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.DoublePrefixInPath(match, **kwargs)[source]¶
Bases:
LinesResult
,Error
Ebuild uses two consecutive paths including EPREFIX.
Ebuild combines two path variables (or a variable and a getter), both of which include EPREFIX, resulting in double prefixing. This is the case when combining many pkg-config-based or alike getters with ED or EROOT.
For example,
${ED}$(python_get_sitedir)
should be replaced with${D}$(python_get_sitedir)
.- property desc¶
Result description.
- name = 'DoublePrefixInPath'¶
- class pkgcheck.checks.codingstyle.DuplicateFunctionDefinition(func_name, *args, **kwargs)[source]¶
Bases:
LinesResult
,Error
Function is defined multiple times. This is a definetly typo.
- property desc¶
Result description.
- name = 'DuplicateFunctionDefinition'¶
- class pkgcheck.checks.codingstyle.EbuildUnquotedVariable(variable, **kwargs)[source]¶
Bases:
UnquotedVariable
,VersionResult
Variable is used unquoted in a context where it should be quoted.
Variables like D, FILESDIR, etc may not be safe to use unquoted in some contexts.
- name = 'UnquotedVariable'¶
- class pkgcheck.checks.codingstyle.EbuildUnquotedVariablesCheck(options, **kwargs)[source]¶
Bases:
_UnquotedVariablesCheck
Scan ebuild for variables that should be quoted like D, FILESDIR, etc.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EbuildUnquotedVariable'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.EbuildVariableScope(variable, func, **kwargs)[source]¶
Bases:
VariableScope
,VersionResult
Ebuild using variable outside its defined scope.
- name = 'VariableScope'¶
- class pkgcheck.checks.codingstyle.EclassUnquotedVariable(variable, **kwargs)[source]¶
Bases:
UnquotedVariable
,EclassResult
Variable is used unquoted in a context where it should be quoted.
Variables like D, FILESDIR, etc may not be safe to use unquoted in some contexts.
- property desc¶
Result description.
- name = 'UnquotedVariable'¶
- class pkgcheck.checks.codingstyle.EclassUnquotedVariablesCheck(options, **kwargs)[source]¶
Bases:
_UnquotedVariablesCheck
Scan eclass for variables that should be quoted like D, FILESDIR, etc.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EclassUnquotedVariable'>})¶
- required_addons = (<class 'pkgcheck.addons.eclass.EclassAddon'>,)¶
- scope = <LocationScope desc='eclass' @0x7fc9bedc9610>¶
- class pkgcheck.checks.codingstyle.EendMissingArg(line, lineno, **kwargs)[source]¶
Bases:
LineResult
,Warning
Ebuild calls eend with no arguments.
- property desc¶
Result description.
- name = 'EendMissingArg'¶
- class pkgcheck.checks.codingstyle.EendMissingArgCheck(options, **kwargs)[source]¶
Bases:
Check
Scan an ebuild for calls to eend with no arguments.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EendMissingArg'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.EmptyGlobalAssignment(line, lineno, **kwargs)[source]¶
Bases:
LineResult
,Style
Global scope useless empty assignment.
- property desc¶
Result description.
- name = 'EmptyGlobalAssignment'¶
- class pkgcheck.checks.codingstyle.ExcessiveLineLength(lines, *args, **kwargs)[source]¶
Bases:
LinesResult
,Style
Line is longer than 120 characters.
- property desc¶
Result description.
- line_length = 120¶
- name = 'ExcessiveLineLength'¶
- word_length = 110¶
- class pkgcheck.checks.codingstyle.GlobCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuilds for unsafe glob usage.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.GlobDistdir'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.GlobDistdir(line, lineno, **kwargs)[source]¶
Bases:
LineResult
,Warning
Filename expansion with
${DISTDIR}
is unsafe.Filename expansion could accidentally match irrelevant files in
${DISTDIR}
, e.g. from other packages or other versions of the same package.- property desc¶
Result description.
- name = 'GlobDistdir'¶
- class pkgcheck.checks.codingstyle.HomepageInSrcUri(pkg, **kwargs)[source]¶
Bases:
VersionResult
,Style
${HOMEPAGE} is referenced in SRC_URI.
SRC_URI is built on top of ${HOMEPAGE}. This is discouraged since HOMEPAGE is multi-valued by design, and is subject to potential changes that should not accidentally affect SRC_URI.
- property desc¶
Result description.
- name = 'HomepageInSrcUri'¶
- class pkgcheck.checks.codingstyle.IndirectInherits(eclass, lineno, usage, **kwargs)[source]¶
Bases:
VersionResult
,Warning
Ebuild uses function from indirectly inherited eclass.
That doesn’t allow indirect inherit usage via the @INDIRECT_INHERITS eclass doc tag in a parent eclass.
- property desc¶
Result description.
- name = 'IndirectInherits'¶
- class pkgcheck.checks.codingstyle.InheritsCheck(*args, eclass_addon)[source]¶
Bases:
Check
Scan for ebuilds with missing or unused eclass inherits.
Note that this requires using
pmaint regen
to generate repo metadata in order for direct inherits to be correct.- get_eclass(export, pkg)[source]¶
Return the eclass related to a given exported variable or function name.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.IndirectInherits'>, <class 'pkgcheck.checks.codingstyle.InternalEclassUsage'>, <class 'pkgcheck.checks.codingstyle.MissingInherits'>, <class 'pkgcheck.checks.codingstyle.UnusedInherits'>})¶
- required_addons = (<class 'pkgcheck.addons.eclass.EclassAddon'>,)¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.InsintoCheck(*args)[source]¶
Bases:
Check
Scan ebuild for deprecated insinto usage.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.DeprecatedInsinto'>})¶
- path_mapping = {'/etc/conf.d': 'doconfd or newconfd', '/etc/env.d': 'doenvd or newenvd', '/etc/init.d': 'doinitd or newinitd', '/etc/pam.d': 'dopamd or newpamd from pam.eclass', '/usr/share/applications': 'domenu or newmenu from desktop.eclass'}¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.InstallCompressedInfo(func, **kwargs)[source]¶
Bases:
LineResult
,Warning
Compressed manpages are not supported by
doinfo
.- property desc¶
Result description.
- name = 'InstallCompressedInfo'¶
- class pkgcheck.checks.codingstyle.InstallCompressedManpage(func, **kwargs)[source]¶
Bases:
LineResult
,Warning
Compressed manpages are not supported by
doman
ornewman
.- property desc¶
Result description.
- name = 'InstallCompressedManpage'¶
- class pkgcheck.checks.codingstyle.InternalEclassUsage(eclass, lineno, usage, **kwargs)[source]¶
Bases:
VersionResult
,Warning
Ebuild uses internal functions or variables from eclass.
- property desc¶
Result description.
- name = 'InternalEclassUsage'¶
- class pkgcheck.checks.codingstyle.InvalidSandboxCall(line, lineno, **kwargs)[source]¶
Bases:
LineResult
,Error
Invalid call to a sandbox function.
According to PMS and the Devmanual [1], only a single item is allowed as argument for
addread
,addwrite
,adddeny
, andaddpredict
. Multiple path items should not be passed as a colon-separated list.- property desc¶
Result description.
- name = 'InvalidSandboxCall'¶
- class pkgcheck.checks.codingstyle.LineLengthCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuild for lines with excessive length.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ExcessiveLineLength'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.MetadataVarCheck(options, **kwargs)[source]¶
Bases:
Check
Scan various globally assigned metadata variables for issues.
- empty_vars_whitelist = frozenset({'KEYWORDS'})¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EmptyGlobalAssignment'>, <class 'pkgcheck.checks.codingstyle.HomepageInSrcUri'>, <class 'pkgcheck.checks.codingstyle.MultipleKeywordsLines'>, <class 'pkgcheck.checks.codingstyle.ReferenceInMetadataVar'>, <class 'pkgcheck.checks.codingstyle.SelfAssignment'>, <class 'pkgcheck.checks.codingstyle.StaticSrcUri'>})¶
- known_variables = {'HOMEPAGE': <function MetadataVarCheck._raw_text>, 'KEYWORDS': <function MetadataVarCheck._raw_text>, 'LICENSE': <function MetadataVarCheck._raw_text_license>, 'SRC_URI': <function MetadataVarCheck._src_uri>}¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.MissingInherits(eclass, lineno, usage, **kwargs)[source]¶
Bases:
VersionResult
,Warning
Ebuild uses function from eclass that isn’t inherited.
- property desc¶
Result description.
- name = 'MissingInherits'¶
- class pkgcheck.checks.codingstyle.MissingSlash(match, **kwargs)[source]¶
Bases:
LinesResult
,Error
Ebuild uses a path variable missing a trailing slash.
- property desc¶
Result description.
- name = 'MissingSlash'¶
- class pkgcheck.checks.codingstyle.MultipleKeywordsLines(lines, *args, **kwargs)[source]¶
Bases:
LinesResult
,Style
KEYWORDS is specified across multiple lines in global scope.
Due to limitations of ekeyword it’s advised to specify KEYWORDS once on a single line in global scope [2].
[2] https://projects.gentoo.org/qa/policy-guide/ebuild-format.html#pg0105
- property desc¶
Result description.
- name = 'MultipleKeywordsLines'¶
- class pkgcheck.checks.codingstyle.NonPosixCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuild for non-posix usage, code which might be not portable.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.NonPosixHeadTailUsage'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.NonPosixHeadTailUsage(command, **kwargs)[source]¶
Bases:
LineResult
,Warning
Using of non-POSIX compliant
head
ortail
.The numeric argument to
head
ortail
without-n
(for examplehead -10
) is deprecated and not POSIX compliant. To fix, prepand-n
before the number [3].[3] https://devmanual.gentoo.org/tools-reference/head-and-tail/index.html
- property desc¶
Result description.
- name = 'NonPosixHeadTailUsage'¶
- class pkgcheck.checks.codingstyle.ObsoleteUri(line, uri, replacement, **kwargs)[source]¶
Bases:
VersionResult
,Style
URI used is obsolete.
The URI used to fetch distfile is obsolete and can be replaced by something more modern. Note that the modern replacement usually results in different file contents, so you need to rename it (to avoid mirror collisions with the old file) and update the ebuild (for example, by removing no longer necessary vcs-snapshot.eclass).
- property desc¶
Result description.
- name = 'ObsoleteUri'¶
- class pkgcheck.checks.codingstyle.ObsoleteUriCheck(*args)[source]¶
Bases:
Check
Scan ebuild for obsolete URIs.
- REGEXPS = (('.*\\b(?P<uri>(?P<prefix>https?://github\\.com/.*?/.*?/)(?:tar|zip)ball(?P<ref>\\S*))', '\\g<prefix>archive\\g<ref>.tar.gz'), ('.*\\b(?P<uri>(?P<prefix>https?://gitlab\\.com/.*?/(?P<pkg>.*?)/)repository/archive\\.(?P<format>tar|tar\\.gz|tar\\.bz2|zip)\\?ref=(?P<ref>\\S*))', '\\g<prefix>-/archive/\\g<ref>/\\g<pkg>-\\g<ref>.\\g<format>'))¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ObsoleteUri'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.PathVariablesCheck(*args)[source]¶
Bases:
Check
Scan ebuild for path variables with various issues.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.DoublePrefixInPath'>, <class 'pkgcheck.checks.codingstyle.MissingSlash'>, <class 'pkgcheck.checks.codingstyle.UnnecessarySlashStrip'>})¶
- prefixed_dir_functions = ('insinto', 'exeinto', 'dodir', 'keepdir', 'fowners', 'fperms', 'java-pkg_jarinto', 'java-pkg_sointo', 'python_scriptinto', 'python_moduleinto')¶
- prefixed_getters = ('get_bashcompdir', 'get_bashhelpersdir', 'db_includedir', 'get_golibdir_gopath', 'get_llvm_prefix', 'python_get_sitedir', 'python_get_includedir', 'python_get_library_path', 'python_get_scriptdir', 'qt4_get_bindir', 'qt5_get_bindir', 's6_get_servicedir', 'systemd_get_systemunitdir', 'systemd_get_userunitdir', 'systemd_get_utildir', 'systemd_get_systemgeneratordir')¶
- prefixed_rhs_variables = ('EPREFIX', 'PYTHON', 'PYTHON_SITEDIR', 'PYTHON_INCLUDEDIR', 'PYTHON_LIBPATH', 'PYTHON_CONFIG', 'PYTHON_SCRIPTDIR')¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.ReadonlyVariable(variable, **kwargs)[source]¶
Bases:
LineResult
,Warning
Ebuild globally assigning value to a readonly variable.
- property desc¶
Result description.
- name = 'ReadonlyVariable'¶
- class pkgcheck.checks.codingstyle.ReadonlyVariableCheck(options, **kwargs)[source]¶
Bases:
Check
Scan for read-only variables that are globally assigned in an ebuild.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ReadonlyVariable'>})¶
- readonly_vars = frozenset({'A', 'BROOT', 'CATEGORY', 'D', 'DISTDIR', 'ED', 'EPREFIX', 'EROOT', 'ESYSROOT', 'FILESDIR', 'HOME', 'MERGE_TYPE', 'P', 'PF', 'PN', 'PR', 'PV', 'PVR', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'ROOT', 'SYSROOT', 'T', 'WORKDIR'})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.RedundantDodir(cmd, **kwargs)[source]¶
Bases:
LineResult
,Style
Ebuild using a redundant dodir call.
- property desc¶
Result description.
- name = 'RedundantDodir'¶
- class pkgcheck.checks.codingstyle.RedundantDodirCheck(*args)[source]¶
Bases:
Check
Scan ebuild for redundant dodir usage.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.RedundantDodir'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.ReferenceInMetadataVar(variable, refs, **kwargs)[source]¶
Bases:
VersionResult
,Style
Metadata variable limited to raw text includes variable reference.
The HOMEPAGE ebuild variable entry in the devmanual [4] states only raw text should be used.
KEYWORDS must be a simple string with literal content as stated by the QA policy guide [5].
LICENSE must specify all license names verbatim, without referring to any variables. The only exception is the LICENSE variable itself, ie appending is allowed [6].
[4] https://devmanual.gentoo.org/ebuild-writing/variables/#ebuild-defined-variables
[5] https://projects.gentoo.org/qa/policy-guide/ebuild-format.html#pg0105
[6] https://projects.gentoo.org/qa/policy-guide/ebuild-format.html#pg0106
- property desc¶
Result description.
- name = 'ReferenceInMetadataVar'¶
- class pkgcheck.checks.codingstyle.SandboxCallCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuilds for correct sandbox funcitons usage.
- functions = frozenset({'adddeny', 'addpredict', 'addread', 'addwrite'})¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.InvalidSandboxCall'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- class pkgcheck.checks.codingstyle.SelfAssignment(line, lineno, **kwargs)[source]¶
Bases:
LineResult
,Warning
Global scope useless empty assignment.
- property desc¶
Result description.
- name = 'SelfAssignment'¶
- class pkgcheck.checks.codingstyle.StaticSrcUri(static_str: str, replacement: str, **kwargs)[source]¶
Bases:
VersionResult
,Style
SRC_URI contains static value instead of the dynamic equivalent.
For example, using static text to relate to the package version in SRC_URI instead of ${P} or ${PV} where relevant.
- property desc¶
Result description.
- name = 'StaticSrcUri'¶
- class pkgcheck.checks.codingstyle.UnnecessarySlashStrip(match, **kwargs)[source]¶
Bases:
LinesResult
,Style
Ebuild uses a path variable that strips a nonexistent slash.
- property desc¶
Result description.
- name = 'UnnecessarySlashStrip'¶
- class pkgcheck.checks.codingstyle.UnquotedVariable(variable, **kwargs)[source]¶
Bases:
BaseLinesResult
,AliasResult
,Warning
Variable is used unquoted in a context where it should be quoted.
Variables like D, FILESDIR, etc may not be safe to use unquoted in some contexts.
- property desc¶
Result description.
- name = 'UnquotedVariable'¶
- class pkgcheck.checks.codingstyle.UnusedInherits(eclasses, **kwargs)[source]¶
Bases:
VersionResult
,Warning
Ebuild inherits eclasses that are unused.
- property desc¶
Result description.
- name = 'UnusedInherits'¶
- class pkgcheck.checks.codingstyle.VariableOrderCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuilds for variables defined in a different order than skel.ebuild dictates.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.VariableOrderWrong'>})¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- variable_order = ('DESCRIPTION', 'HOMEPAGE', 'SRC_URI', 'S', 'LICENSE', 'SLOT', 'KEYWORDS', 'IUSE', 'RESTRICT')¶
- class pkgcheck.checks.codingstyle.VariableOrderWrong(first_var, second_var, *args, **kwargs)[source]¶
Bases:
VersionResult
,Style
Variable were defined in an unexpected error.
- property desc¶
Result description.
- name = 'VariableOrderWrong'¶
- class pkgcheck.checks.codingstyle.VariableScope(variable, func, **kwargs)[source]¶
Bases:
BaseLinesResult
,AliasResult
,Warning
Variable used outside its defined scope.
- property desc¶
Result description.
- name = 'VariableScope'¶
- class pkgcheck.checks.codingstyle.VariableScopeCheck(options, **kwargs)[source]¶
Bases:
Check
Scan ebuilds for variables that are only allowed in certain scopes.
- allowed_scopes = ('pkg_prerm', 'pkg_postrm')¶
- eapi = <pkgcore.ebuild.eapi.EAPI object>¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EbuildVariableScope'>})¶
- not_global_scope = frozenset({'A', 'AA', 'BROOT', 'D', 'DESTTREE', 'ECLASSDIR', 'ED', 'EROOT', 'ESYSROOT', 'INSDESTTREE', 'MERGE_TYPE', 'PORTDIR', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'ROOT', 'SYSROOT'})¶
- phase = 'pkg_pretend'¶
- scope = <PackageScope desc='version' @0x7fc9bedc9290>¶
- scoped_vars = {<pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_pretend': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_pretend': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_pretend': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_pretend': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'S', 'D', 'ED', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'PORTDIR'}, 'pkg_config': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_info': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_prerm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postrm': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_preinst': {'DISTDIR', 'S', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_postinst': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'ESYSROOT', 'PORTDIR'}, 'pkg_pretend': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'A', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'AA', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'pkg_nofetch': {'DISTDIR', 'S', 'D', 'ED', 'SYSROOT', 'ECLASSDIR', 'FILESDIR', 'DESTTREE', 'WORKDIR', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'BROOT', 'ESYSROOT', 'PORTDIR'}, 'src_unpack': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_compile': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_test': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_install': {'MERGE_TYPE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'ROOT'}, 'src_prepare': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}, 'src_configure': {'ED', 'D', 'MERGE_TYPE', 'DESTTREE', 'EROOT', 'REPLACING_VERSIONS', 'REPLACED_BY_VERSION', 'INSDESTTREE', 'ROOT'}}}¶
- variable = 'REPLACED_BY_VERSION'¶
- variable_map = {'A': ('src_', 'pkg_nofetch'), 'AA': ('src_', 'pkg_nofetch'), 'FILESDIR': 'src_', 'DISTDIR': 'src_', 'WORKDIR': 'src_', 'S': 'src_', 'PORTDIR': 'src_', 'ECLASSDIR': 'src_', 'ROOT': 'pkg_', 'EROOT': 'pkg_', 'SYSROOT': ('src_', 'pkg_setup'), 'ESYSROOT': ('src_', 'pkg_setup'), 'BROOT': ('src_', 'pkg_setup', 'pkg_preinst', 'pkg_prerm', 'pkg_post'), 'D': ('src_install', 'pkg_preinst'), 'ED': ('src_install', 'pkg_preinst'), 'DESTTREE': 'src_install', 'INSDESTTREE': 'src_install', 'MERGE_TYPE': 'pkg_', 'REPLACING_VERSIONS': 'pkg_', 'REPLACED_BY_VERSION': ('pkg_prerm', 'pkg_postrm')}¶