"metadata.missing":"Missing metadata.xml files",
"metadata.bad":"Bad metadata.xml files",
"metadata.warning":"Warnings in metadata.xml files",
- "portage.internal":"The ebuild uses an internal Portage function",
+ "portage.internal":"The ebuild uses an internal Portage function or variable",
"virtual.oldstyle":"The ebuild PROVIDEs an old-style virtual (see GLEP 37)",
"virtual.suspect":"Ebuild contains a package that usually should be pulled via virtual/, not directly.",
"usage.obsolete":"The ebuild makes use of an obsolete construct",
Warnings in metadata.xml files
.TP
.B portage.internal
-The ebuild uses an internal Portage function
+The ebuild uses an internal Portage function or variable
.TP
.B upstream.workaround
The ebuild works around an upstream bug, an upstream bug should be filed and
if m is not None:
return ("'%s'" % m.group(2)) + " called on line: %d"
+class PortageInternalVariableAssignment(LineCheck):
+
+ repoman_check_name = 'portage.internal'
+ internal_assignment = re.compile(r'\s*(export\s+)?(EXTRA_ECONF|EXTRA_EMAKE)\+?=')
+
+ def check(self, num, line):
+ match = self.internal_assignment.match(line)
+ e = None
+ if match is not None:
+ e = 'Assignment to variable %s' % match.group(2)
+ e += ' on line: %d'
+ return e
+
_constant_checks = tuple(chain((c() for c in (
EbuildHeader, EbuildWhitespace, EbuildBlankLine, EbuildQuote,
EbuildAssignment, Eapi3EbuildAssignment, EbuildUselessDodoc,
SrcCompileEconf, Eapi3DeprecatedFuncs, NoOffsetWithHelpers,
Eapi4IncompatibleFuncs, Eapi4GoneVars, BuiltWithUse,
PreserveOldLib, SandboxAddpredict, PortageInternal,
- DeprecatedUseq, DeprecatedHasq)),
+ PortageInternalVariableAssignment, DeprecatedUseq, DeprecatedHasq)),
(InheritEclass(k, **kwargs) for k, kwargs in _eclass_info.items())))
_here_doc_re = re.compile(r'.*\s<<[-]?(\w+)$')