Changes since 5.6.11:
* In buildlink3.mk files, print the paths relative
to the line, not to the pkgsrc root.
* When explaining that a variable cannot be set/used because of wrong
permissions, list the permissions. This provides more transparency
than just stating that the desired action is not allowed.
* When pkglint checks a pkgsrc-wip package, don't warn about malformed
lines in doc/CHANGES-* since pkgsrc-wip users typically cannot do
anything about these errors.
* In profiling mode, not only the code coverage and the performance
statistics are dumped, the whole heap is also dumped to see which
parts of pkglint consume the most heap memory. Pkglint now needs
less heap memory than before, which mainly affects full scans.
* The checks for absolute pathnames have gone. They were of questionable
value since pkglint has failed to give proper advice on how to fix
them properly, at least for the last 12 years.
* The check that pkgsrc-wip packages should only use exact CVS Ids
(the unexpanded variant) has been disabled again. It occurred about
16000 times but even fixing it wouldn't improve anything since it
was mostly a formatting issue without any practical consequences.
* Warn about trailing variable modifiers like in ${VAR:S,from,to,extra}.
* Properly parse ${VAR:!command!}.
* Suggest to replace SUBST_SED with SUBST_VARS where possible, even
with complicated shell quoting. Pkglint can autofix most of these
overly verbose cases.
* Load builtin.mk whenever the corresponding buildlink3.mk file is
included. This fixes several warnings about undefined variables
(especially for packages using OpenSSL).
* Parse .for lines like bmake does since 2015, splitting words like
in brk_string.
* Optionally show a warning even if it cannot be autofixed by pkglint.
This is useful for the SUBST_VARS replacement since even when
pkglint cannot automatically replace the code, there are still cases
where it can warn at least.
* As always, several refactorings.