Changes since 19.3.5:
Improved indentation and alignment of multi-line variable assignments.
Improved indentation of multi-line shell commands.
Added warning for adding unquoted words to PKG_FAIL_REASON, which is a
list of messages, one per line.
Lines that start with tabs followed by a # are not shell commands, they
are comments. Bmake treats them in the same way.
Change the type of BROKEN to be a list of messages, instead of a single
message. This allows at least a bit of formatting in the error messages.
Changes since 19.3.4:
Variable uses in parentheses (such as $(VAR) instead of ${VAR}) are
treated the same. The ones in parentheses had less support before.
Improved the checks for options.mk files, adding support for options
that are defined using .for loops and those referring to other
variables.
Packages that set DISTFILES to an empty list no longer require a
distinfo file.
Patches whose filename contains the word CVE may patch more than one
target file.
Changes since 19.3.3:
In cases where the conditions for including buildlink3.mk files differ
between the package itself and its own buildlink3.mk file, explain how
to determine PKG_OPTIONS for dependencies.
Don't issue wrong warnings in options.mk files when the options are
handled in a .for loop.
Changes since 19.3.3:
The code that handles license names is the same for Python and Perl
modules.
Python packages that use distutils.extension can be handled. An example
package is devel/py-pysha3.
The DESCR file is filled from the package's README file.
The PLIST is generated with some comments providing further assistance.
Changes since 19.3.2:
The rationale for variables like BROKEN, GCC_REQD and for direct
inclusion of builtin.mk files may span multiple lines, and it may end
with an empty comment line.
Changes since 19.3.1:
* Pkglint no longer warns about a missing :Q modifier if there is also
a :D modifier, since the latter hides the original variable value
from the expression value.
* Variable names like .CURDIR are now allowed in the _VARGROUPS section.
* In dependency lines like "${_COOKIE.extract}:", pkglint no longer
warns about the unknown target. No matter whether this is a file name
or even a list of other targets, there's no chance for a typo here.
* If some dependencies are included conditionally, and the package
Makefile and buildlink3.mk disagree, and the conditions depend on
PKG_OPTIONS, pkglint outputs a helpful explanation.
* The check for including builtin.mk directly can be disabled by giving
a reason in a comment at the end of the line.
Placing the code into a main function allows the tests to source the file
without any side effects.
The LC_ALL=C environment variable is necessary on NetBSD/x86_64 8.0 in
the en_US.UTF-8 locale since otherwise R dumps core in the source(...)
call, deep inside towctrans.
Before, it was difficult to edit the R code since all dollars,
backslashes and backticks had to be escaped. Separating the code also
makes the R part testable on its own.
Changes since 0.6:
* Run properly even if TMPDIR is not set.
* Quote variables to prevent unintended interpolation.
* Write error messages to stderr instead of stdout.
Changes since 19.3.0:
* In buildlink3.mk files, the package identifier doesn't have to match
the PKGBASE from the package Makefile exactly. The PKGBASE may have a
leading "lib" (for libiconv and libgettext), as well as a trailing
number (for emacs20 and netatalk22).
* GITHUB_RELEASE is added to the variables that should appear in a fixed
order in the package Makefile.
* In the MASTER_SITE URLs, the transport protocol is irrelevant for
matching direct URLs to the predefined MASTER_SITE_* variables.