"file.name":"File/dir name must be composed of only the following chars: %s " % allowed_filename_chars,
"file.UTF8":"File is not UTF8 compliant",
"inherit.autotools":"Ebuild inherits autotools but does not call eautomake, eautoconf or eautoreconf",
+ "inherit.deprecated":"Ebuild inherits a deprecated eclass",
"java.eclassesnotused":"With virtual/jdk in DEPEND you must inherit a java eclass",
"KEYWORDS.dropped":"Ebuilds that appear to have dropped KEYWORDS for some arch",
"KEYWORDS.missing":"Ebuilds that have a missing or empty KEYWORDS variable",
"ebuild.patches",
"file.size",
"inherit.autotools",
+"inherit.deprecated",
"java.eclassesnotused",
"metadata.warning",
"virtual.versioned",
if self._depend and not self._rdepend:
yield 'RDEPEND is not explicitly assigned'
+class InheritDeprecated(LineCheck):
+ """Check if ebuild inherits a deprecated eclass"""
+
+ repoman_check_name = 'inherit.deprecated'
+
+ # deprecated eclass : new eclass (0 if no new eclass)
+ deprecated_classes = {
+ "gems": "ruby-fakegem",
+ "php-pear": "php-pear-r1",
+ "qt3": 0,
+ "qt4": "qt4-r2",
+ "ruby": "ruby-ng",
+ "ruby-gnome2": "ruby-ng-gnome2"
+ }
+
+ def new(self, pkg):
+ self.matched_eclasses = frozenset(self.deprecated_classes.keys()).intersection(pkg.inherited)
+
+ def check(self, num, line):
+ pass
+
+ def end(self):
+ for i in self.matched_eclasses:
+ if self.deprecated_classes[i] == 0:
+ yield i + ": deprecated eclass"
+ else:
+ yield "uses deprecated eclass '"+ i +"'. please migrate to '"+ \
+ self.deprecated_classes[i] +"'"
+
class InheritAutotools(LineCheck):
"""
Make sure appropriate functions are called in
EbuildAssignment, Eapi3EbuildAssignment, EbuildUselessDodoc,
EbuildUselessCdS, EbuildNestedDie,
EbuildPatches, EbuildQuotedA, EapiDefinition, EprefixifyDefined,
- ImplicitRuntimeDeps, InheritAutotools, IUseUndefined,
+ ImplicitRuntimeDeps, InheritAutotools, InheritDeprecated, IUseUndefined,
EMakeParallelDisabled, EMakeParallelDisabledViaMAKEOPTS, NoAsNeeded,
DeprecatedBindnowFlags, SrcUnpackPatches, WantAutoDefaultValue,
SrcCompileEconf, Eapi3DeprecatedFuncs,