pkgcheck.checks.codingstyle module¶
Various line-based checks.
- class pkgcheck.checks.codingstyle.AbsoluteSymlink(cmd, **kwargs)[source]¶
Bases:
LineResult,WarningEbuild uses dosym with absolute paths instead of relative.
- property desc¶
Result description.
- name = 'AbsoluteSymlink'¶
- class pkgcheck.checks.codingstyle.AbsoluteSymlinkCheck(*args)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.BadCommandsCheck(options, **kwargs)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.BannedEapiCommand(*args, eapi, **kwargs)[source]¶
Bases:
_EapiCommandResult,ErrorEbuild uses a banned EAPI command.
- name = 'BannedEapiCommand'¶
- class pkgcheck.checks.codingstyle.BannedPhaseCall(line, lineno, **kwargs)[source]¶
Bases:
Error,LineResultEbuild calls a phase function directly.
- property desc¶
Result description.
- name = 'BannedPhaseCall'¶
- class pkgcheck.checks.codingstyle.BetterCompressionCheck(*args)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.BetterCompressionUri(replacement, **kwargs)[source]¶
Bases:
LineResult,StyleURI 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:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.DeprecatedEapiCommand(*args, eapi, **kwargs)[source]¶
Bases:
_EapiCommandResult,WarningEbuild uses a deprecated EAPI command.
- name = 'DeprecatedEapiCommand'¶
- class pkgcheck.checks.codingstyle.DeprecatedInsinto(cmd, **kwargs)[source]¶
Bases:
LineResult,WarningEbuild uses insinto where more compact commands exist.
- property desc¶
Result description.
- name = 'DeprecatedInsinto'¶
- class pkgcheck.checks.codingstyle.DoCompressedFilesCheck(options, **kwargs)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.DoublePrefixInPath(match, **kwargs)[source]¶
Bases:
LinesResult,ErrorEbuild 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,ErrorFunction 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,VersionResultVariable 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:
_UnquotedVariablesCheckScan ebuild for variables that should be quoted like D, FILESDIR, etc.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EbuildUnquotedVariable'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.EbuildVariableScope(variable, func, **kwargs)[source]¶
Bases:
VariableScope,VersionResultEbuild using variable outside its defined scope.
- name = 'VariableScope'¶
- class pkgcheck.checks.codingstyle.EclassUnquotedVariable(variable, **kwargs)[source]¶
Bases:
UnquotedVariable,EclassResultVariable 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:
_UnquotedVariablesCheckScan 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' @0x7fb113484e10>¶
- class pkgcheck.checks.codingstyle.EendMissingArg(line, lineno, **kwargs)[source]¶
Bases:
LineResult,WarningEbuild calls eend with no arguments.
- property desc¶
Result description.
- name = 'EendMissingArg'¶
- class pkgcheck.checks.codingstyle.EendMissingArgCheck(options, **kwargs)[source]¶
Bases:
CheckScan an ebuild for calls to eend with no arguments.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.EendMissingArg'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.EmptyGlobalAssignment(line, lineno, **kwargs)[source]¶
Bases:
LineResult,StyleGlobal scope useless empty assignment.
- property desc¶
Result description.
- name = 'EmptyGlobalAssignment'¶
- class pkgcheck.checks.codingstyle.ExcessiveLineLength(lines, *args, **kwargs)[source]¶
Bases:
LinesResult,StyleLine 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:
CheckScan ebuilds for unsafe glob usage.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.GlobDistdir'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.GlobDistdir(line, lineno, **kwargs)[source]¶
Bases:
LineResult,WarningFilename 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,WarningEbuild 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:
CheckScan for ebuilds with missing or unused eclass inherits.
Note that this requires using
pmaint regento 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.InsintoCheck(*args)[source]¶
Bases:
CheckScan 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/lib/systemd/system': 'systemd_dounit or systemd_newunit from systemd.eclass', '/usr/lib/systemd/user': 'systemd_douserunit or systemd_newuserunit from systemd.eclass', '/usr/share/applications': 'domenu or newmenu from desktop.eclass', '/usr/share/fish/vendor_completions.d': 'dofishcomp or newfishcomp from shell-completion.eclass', '/usr/share/zsh/site-functions': 'dozshcomp or newzshcomp from shell-completion.eclass'}¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.InstallCompressedInfo(func, **kwargs)[source]¶
Bases:
LineResult,WarningCompressed manpages are not supported by
doinfo.- property desc¶
Result description.
- name = 'InstallCompressedInfo'¶
- class pkgcheck.checks.codingstyle.InstallCompressedManpage(func, **kwargs)[source]¶
Bases:
LineResult,WarningCompressed manpages are not supported by
domanornewman.- property desc¶
Result description.
- name = 'InstallCompressedManpage'¶
- class pkgcheck.checks.codingstyle.InternalEclassUsage(eclass, lineno, usage, **kwargs)[source]¶
Bases:
VersionResult,WarningEbuild uses internal functions or variables from eclass.
- property desc¶
Result description.
- name = 'InternalEclassUsage'¶
- class pkgcheck.checks.codingstyle.InvalidSandboxCall(line, lineno, **kwargs)[source]¶
Bases:
LineResult,ErrorInvalid 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:
CheckScan ebuild for lines with excessive length.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ExcessiveLineLength'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.MetadataVarCheck(options, **kwargs)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.MissingInherits(eclass, lineno, usage, **kwargs)[source]¶
Bases:
VersionResult,WarningEbuild uses function from eclass that isn’t inherited.
- property desc¶
Result description.
- name = 'MissingInherits'¶
- class pkgcheck.checks.codingstyle.MissingSlash(match, **kwargs)[source]¶
Bases:
LinesResult,ErrorEbuild 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,StyleKEYWORDS 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.NonConsistentTarUsage(line, lineno, **kwargs)[source]¶
Bases:
LineResult,WarningUsing of non-consistent compliant
tar.The
tarcommand defaults to reading from stdin, unless this default is changed at compile time or theTAPEenvironment variable is set.To ensure consistent behavior, the
-for--fileoption should always be given to ensure the input device is chosen explicitly.- property desc¶
Result description.
- name = 'NonConsistentTarUsage'¶
- class pkgcheck.checks.codingstyle.NonPosixCheck(options, **kwargs)[source]¶
Bases:
CheckScan ebuild for non-posix usage, code which might be not portable.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.NonConsistentTarUsage'>, <class 'pkgcheck.checks.codingstyle.NonPosixHeadTailUsage'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.NonPosixHeadTailUsage(command, **kwargs)[source]¶
Bases:
LineResult,WarningUsing of non-POSIX compliant
headortail.The numeric argument to
headortailwithout-n(for examplehead -10) is deprecated and not POSIX compliant. To fix, prepand-nbefore 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,StyleURI 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:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.PathVariablesCheck(*args)[source]¶
Bases:
CheckScan 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', 'qt6_get_bindir', 's6_get_servicedir', 'get_fishcompdir', 'get_zshcompdir', 'systemd_get_systemunitdir', 'systemd_get_userunitdir', 'systemd_get_utildir', 'systemd_get_systemgeneratordir', 'systemd_get_systempresetdir', 'systemd_get_sleepdir')¶
- prefixed_rhs_variables = ('EPREFIX', 'PYTHON', 'PYTHON_SITEDIR', 'PYTHON_INCLUDEDIR', 'PYTHON_LIBPATH', 'PYTHON_CONFIG', 'PYTHON_SCRIPTDIR')¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.ReadonlyVariable(variable, **kwargs)[source]¶
Bases:
LineResult,WarningEbuild globally assigning value to a readonly variable.
- property desc¶
Result description.
- name = 'ReadonlyVariable'¶
- class pkgcheck.checks.codingstyle.ReadonlyVariableCheck(options, **kwargs)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.RedundantDodir(cmd, **kwargs)[source]¶
Bases:
LineResult,StyleEbuild using a redundant dodir call.
- property desc¶
Result description.
- name = 'RedundantDodir'¶
- class pkgcheck.checks.codingstyle.RedundantDodirCheck(*args)[source]¶
Bases:
CheckScan ebuild for redundant dodir usage.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.RedundantDodir'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.ReferenceInMetadataVar(variable, refs, **kwargs)[source]¶
Bases:
VersionResult,StyleMetadata 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:
CheckScan ebuilds for correct sandbox funcitons usage.
- functions = frozenset({'adddeny', 'addpredict', 'addread', 'addwrite'})¶
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.InvalidSandboxCall'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- class pkgcheck.checks.codingstyle.SelfAssignment(line, lineno, **kwargs)[source]¶
Bases:
LineResult,WarningGlobal scope useless empty assignment.
- property desc¶
Result description.
- name = 'SelfAssignment'¶
- class pkgcheck.checks.codingstyle.StaticSrcUri(static_str: str, replacement: str, **kwargs)[source]¶
Bases:
VersionResult,StyleSRC_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,StyleEbuild 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,WarningVariable 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,WarningEbuild inherits eclasses that are unused.
- property desc¶
Result description.
- name = 'UnusedInherits'¶
- class pkgcheck.checks.codingstyle.VariableOrderCheck(options, **kwargs)[source]¶
Bases:
CheckScan ebuilds for variables defined in a different order than skel.ebuild dictates.
- known_results = frozenset({<class 'pkgcheck.checks.codingstyle.VariableOrderWrong'>})¶
- scope = <PackageScope desc='version' @0x7fb1134c5220>¶
- 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,StyleVariable were defined in an unexpected error.
- property desc¶
Result description.
- name = 'VariableOrderWrong'¶
- class pkgcheck.checks.codingstyle.VariableScope(variable, func, **kwargs)[source]¶
Bases:
BaseLinesResult,AliasResult,WarningVariable used outside its defined scope.
- property desc¶
Result description.
- name = 'VariableScope'¶
- class pkgcheck.checks.codingstyle.VariableScopeCheck(options, **kwargs)[source]¶
Bases:
CheckScan 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' @0x7fb1134c5220>¶
- scoped_vars = {<pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_pretend': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_pretend': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_pretend': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_pretend': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_pretend': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}}, <pkgcore.ebuild.eapi.EAPI object>: {'pkg_setup': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'REPLACED_BY_VERSION', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_config': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_info': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_prerm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_postrm': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_preinst': {'ECLASSDIR', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'INSDESTTREE', 'AA'}, 'pkg_postinst': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'INSDESTTREE', 'AA'}, 'pkg_pretend': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'A', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT', 'AA'}, 'pkg_nofetch': {'ECLASSDIR', 'D', 'DISTDIR', 'S', 'FILESDIR', 'SYSROOT', 'REPLACED_BY_VERSION', 'ESYSROOT', 'INSDESTTREE', 'WORKDIR', 'PORTDIR', 'DESTTREE', 'ED', 'BROOT'}, 'src_unpack': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_compile': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_test': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_install': {'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT'}, 'src_prepare': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', 'INSDESTTREE'}, 'src_configure': {'D', 'MERGE_TYPE', 'REPLACED_BY_VERSION', 'REPLACING_VERSIONS', 'EROOT', 'ROOT', 'DESTTREE', 'ED', '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')}¶