Changes since 20.1.1:
Ensure that relative paths to other packages have the canonical form
../../category/package.
Add notes about pathname patters that mention ${WRKSRC} even though they
are already defined to be relative to WRKSRC.
Fix check for redundantly added categories. The check had previously
reported that the included file would be redundant, which was wrong.
It's always the including file that provides the redundancy.
The changes since version 1.99.4 appear to be:
- Fix pkg register issues with some version of libarchive:
* hardlinks not being made hardlinks sometime
* issues when PREFIX is a symlink to another directory
- Use portable mechanism to find the number of CPUs which allows pkg repo to be
faster on linux
Changes since 20.1.0:
In UNLIMIT_RESOURCES, the recently added virtualsize is allowed.
Packages that have distfiles without any digit in their name should
define DIST_SUBDIR to avoid polluting the global namespace. The
top-level distfiles directory should only contain versioned filenames.
Changes since 19.4.13:
It is an error to have TODO lines in DESCR files. These are typically
generated by url2pkg and should be replaced with proper text before
committing the package.
Changes since 19.4.12:
Files that are mentioned redundantly in PLIST files generate an error.
Missing DESCR files generate an error.
Hard-coded /usr/pkg in patches generates an error.
Changes since 19.4.11:
Redundant additions to BUILDLINK_API_DEPENDS and BUILDLINK_ABI_DEPENDS
get warnings since they may have been needed in the past but the
dependent package has increased its required version numbers over time.
Changes since 19.4.10:
The use of PKG_OPTIONS and PKG_BUILD_OPTIONS in buildlink3.mk and other
files is checked for common mistakes.
Checking the indentation of a continuation line no longer crashes in edge
cases.
Changes since 19.4.0:
* Makefile.am and Makefile.in are checked even though they don't start
with a #! line.
* Only shell programs with an interpreter that is clearly a POSIX shell
are checked. Before, there was a blacklist of interpreters to be
skipped.
* Lots of refactorings and code cleanups.
* Some additional test files.
Checks whether the given files use features of programming languages that
are not portable to a wide range of platforms.
See mk/check/check-portability.mk.
https://mail-index.netbsd.org/tech-pkg/2020/03/10/msg022787.html
This new check is not active by default, and the package is not forced to
be installed. This will be done after getting some experience in
practical cases.
The code has been tested by extracting about 1.7 GB of pkgsrc distfiles
and scanning for lines containing both "[[" and "]]".
The function make.df.depends() constructs a dataframe for DEPENDS lines in
the updated Makefile. That dataframe is combined with other dataframes for
different portions of the Makefile. Consequently, all the dataframes must
have the same fields or combining with rbind() fails. Previously, the
dataframe had the wrong set of fields; this explicitly selects the correct
set that matches the other dataframes so that they can all be combined
correctly.
Changes since 19.4.9:
In continuation lines with long values, pkglint no longer suggests to
move the continuation backslash in the middle of the variable value, as
that would be impossible.
Warn when a shell command is assigned to a variable that only takes
pathnames. Shell commands can contain command line options, and these
are not pathnames.
The TOOLS_PLATFORM.tool variables are not defined on every platform.
When these variables are used outside an OPSYS check, a warning lists
the platforms where the tool is undefined or only defined conditionally.
In order for recursive calls of R2pkg to work, they must receive the same
set of arguments as the original. Previous argument handling stripped the
hyphen (-) from each argument; this explicitly restores it.
Changes since 19.4.8:
Packages that include omf-scrollkeeper.mk even though their PLIST doesn't
contain any .omf files will generate an error message, suggesting that
the .include line be removed.
Changes since 0.5:
mktemp does not use a file pattern anymore. That file pattern had the
effect that all temporary files had the same name: /tmp/pkg_regress.
Changes since 19.4.7:
The diagnostic for homepages using FTP is simpler now.
When running pkglint recursively on the top-level directory, the
inter-package checks (distfile hashes, unused licenses) are enabled
implicitly. This way, the only effect of the -Cglobal option is now
whether the pkgsrc infrastructure files are checked as well.
The check for removed packages that have not been recorded in
doc/CHANGES prints the correct lines when pkglint is run with the
--source option.
Fatal technical errors are no longer treated as diagnostics since they
are none. That was an early conceptual mistake, but since these fatal
error didn't happen often, it didn't matter.
In diagnostics, when referring to other lines, the previously used words
before/after have been replaced with above/below to avoid any confusion
whether space or time is meant.
In CONF_FILES, spaces and quotes are allowed.
See https://gnats.netbsd.org/42191.
Fixed unintended side-effects when running pkglint --autofix --only.
Before, all fixes were applied to the file, whether or not they matched
the --only option.
Fixed resolution of relative paths of the form ../../category/package
when they appeared in an infrastructure file.
Lots of refactorings and housekeeping, as usual.
Changes since 19.4.6:
HOMEPAGE definitions that use http no longer get a warning that they
should migrate to https. Those that could be migrated have been migrated,
and the remaining homepages are not yet ready, so there's no benefit in
having this warning by default. Only in --network mode and when the https
site is indeed reachable, the warning is shown.
In long continued lines, the continuation backslash should be preceded by
a single space. Pkglint had wrongly removed that space in a few cases
before.
pkglint -r --network --only "migrate"
As a side-effect of migrating the homepages, pkglint also fixed a few
indentations in unrelated lines. These and the new homepages have been
checked manually.
Changes since 19.4.5:
Added the --network option, which allows pkglint to use HTTP calls for
determining whether the homepage of a package is reachable.
Added migration from http URLs to the corresponding https URLs. This is
only done if the https URL is indeed reachable or well-known to support
https.
Added migration from https SourceForge URLs back to http URLs since a
previous pkglint run had migrated URLs to non-working https URLs. See
https://mail-index.netbsd.org/pkgsrc-changes/2020/01/18/msg205146.html.
Added a warning for HOMEPAGE that uses ftp:// since that is not
user-friendly. In the same way, download-only host names on SourceForge
are not suitable as a homepage since they usually only generate a 404.