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' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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')¶
 - 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,- 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' @0x7fb1134c5220>¶
 
- 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' @0x7fb113484e10>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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 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: - 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/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,- 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 - domanor- 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. - known_results = frozenset({<class 'pkgcheck.checks.codingstyle.ExcessiveLineLength'>})¶
 - scope = <PackageScope desc='version' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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.NonConsistentTarUsage(line, lineno, **kwargs)[source]¶
- Bases: - LineResult,- Warning- Using of non-consistent compliant - tar.- The - tarcommand defaults to reading from stdin, unless this default is changed at compile time or the- TAPEenvironment 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: - Check- Scan 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,- Warning- Using of non-POSIX compliant - heador- tail.- The numeric argument to - heador- tailwithout- -n(for example- head -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,- 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' @0x7fb1134c5220>¶
 
- 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', '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,- 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' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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' @0x7fb1134c5220>¶
 
- 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' @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,- 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' @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')}¶