New Checks:
- MakeDefaultsUnquoted: a
make.defaultsentry whose value isn't double quoted as required by PMS (@arthurzam, #692) - MetadataVarCheck: flag NonArrayPatches,
PATCHESdefined as a plain string instead of a bash array, and SwitchInPatches, aPATCHESentry that looks like a patch/eapply switch (e.g.-p1) rather than a patch file (@arthurzam, #174)
Fixes:
- GitAddon: force git error output to use the C locale, fixing
--commits/--stagedref resolution error detection under a translated git locale (@arthurzam) - RequiredUseUnsatisfiableCheck: cache REQUIRED_USE satisfiability for the whole run rather than per version, cutting solver calls by ~2.8x (@arthurzam)
- RequiredUseUnsatisfiableCheck: use
pkgcore'srequired_use.iter_flagsinstead of a local copy of the same restriction walk (@arthurzam) - RepoProfilesCheck: don't flag a directory-form
package.useand similar as an unused profile directory (@arthurzam, #560) - VisibilityCheck: walk the dep tree instead of enumerating its CNF form, which was exponential in the number of all-of blocks nested inside an any-of block. Scanning a package using
python_gen_any_depwith a handful of implementations, e.g.dev-python/clickwithdistutils_enable_sphinx, drops from 21s to 4s, and each further implementation no longer multiplies the runtime by the size of the any-of block (@arthurzam, #782)