pkgcheck.checks.codingstyle module

Various line-based checks.

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')
feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.AbsoluteSymlink'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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'})
feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.BannedEapiCommand'>, <class 'pkgcheck.checks.codingstyle.BannedPhaseCall'>, <class 'pkgcheck.checks.codingstyle.DeprecatedEapiCommand'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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'),)
feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.BetterCompressionUri'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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.

feed(pkg: ParseTree)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.DuplicateFunctionDefinition'>, <class 'pkgcheck.checks.codingstyle.VariableShadowed'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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* or new**.

compresion_extentions = ('.Z', '.gz', '.bz2', '.lzma', '.lz', '.lzo', '.lz4', '.xz', '.zst')
feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
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.

feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EbuildUnquotedVariable'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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.

feed(eclass)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EclassUnquotedVariable'>})
required_addons = (<class 'pkgcheck.addons.eclass.EclassAddon'>,)
scope = <LocationScope desc='eclass' @0x7f4ee7e9ac10>
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.

feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EendMissingArg'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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.

feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.GlobDistdir'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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.

feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
class pkgcheck.checks.codingstyle.InsintoCheck(*args)[source]

Bases: Check

Scan ebuild for deprecated insinto usage.

feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
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 or newman.

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, and addpredict. 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.

feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ExcessiveLineLength'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
class pkgcheck.checks.codingstyle.MetadataVarCheck(options, **kwargs)[source]

Bases: Check

Scan various globally assigned metadata variables for issues.

build_src_uri_variants_regex(pkg)[source]
canonicalize_assign(value: str)[source]
feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
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].

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.

check_head_tail(pkg, call_node, call_name)[source]
feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.NonPosixHeadTailUsage'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
class pkgcheck.checks.codingstyle.NonPosixHeadTailUsage(command, **kwargs)[source]

Bases: LineResult, Warning

Using of non-POSIX compliant head or tail.

The numeric argument to head or tail without -n (for example head -10) is deprecated and not POSIX compliant. To fix, prepand -n before the number [3].

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>'))
feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ObsoleteUri'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
class pkgcheck.checks.codingstyle.PathVariablesCheck(*args)[source]

Bases: Check

Scan ebuild for path variables with various issues.

feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
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.

feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
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.

feed(pkg)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.RedundantDodir'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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].

property desc

Result description.

name = 'ReferenceInMetadataVar'
class pkgcheck.checks.codingstyle.SandboxCallCheck(options, **kwargs)[source]

Bases: Check

Scan ebuilds for correct sandbox funcitons usage.

feed(pkg: ParseTree)[source]

Handle functionality against the passed in item.

functions = frozenset({'adddeny', 'addpredict', 'addread', 'addwrite'})
known_results = frozenset({<class 'pkgcheck.checks.codingstyle.InvalidSandboxCall'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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.

feed(pkg: ParseTree)[source]

Handle functionality against the passed in item.

known_results = frozenset({<class 'pkgcheck.checks.codingstyle.VariableOrderWrong'>})
scope = <PackageScope desc='version' @0x7f4ee7e995d0>
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>
feed(pkg)[source]

Handle functionality against the passed in item.

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' @0x7f4ee7e995d0>
scoped_vars = {<pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_pretend': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_pretend': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_pretend': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_pretend': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'DISTDIR', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_config': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_info': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_prerm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postrm': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_preinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_postinst': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_pretend': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'FILESDIR', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'AA', 'A'}, 'pkg_nofetch': {'DISTDIR', 'SYSROOT', 'ESYSROOT', 'BROOT', 'ED', 'INSDESTTREE', 'ECLASSDIR', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'S', 'PORTDIR', 'WORKDIR', 'FILESDIR'}, 'src_unpack': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_compile': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_test': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_install': {'ROOT', 'EROOT', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'REPLACED_BY_VERSION'}, 'src_prepare': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}, 'src_configure': {'ROOT', 'EROOT', 'ED', 'REPLACING_VERSIONS', 'MERGE_TYPE', 'DESTTREE', 'REPLACED_BY_VERSION', 'D', 'INSDESTTREE'}}}
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')}
class pkgcheck.checks.codingstyle.VariableShadowed(var_name, *args, **kwargs)[source]

Bases: LinesResult, Warning

Variable is shadowed or repeatedly declared. This is a possible typo.

property desc

Result description.

name = 'VariableShadowed'
pkgcheck.checks.codingstyle.verify_vars(*variables)[source]

Decorator to register raw variable verification methods.