- Added checks for TOOL_* variables.
- Added {pre,do,post}-extract to the list of valid stages.
- Fixed the regular expression for detecting tool names.
- Added a check for invalid syntax in tool names.
- Improved the diagnostic for enumerations.
- Added many of the variables found in pkgsrc/mk/* to makevars.map.
- Added the function log_fatal, whose output goes to stderr instead of
stdout.
- All files in pkgsrc/mk/ are excluded from checking, as they may use
private variables and do other questionable things.
- Removed the Language type, as it is a simple enumeration.
- Added the Userdefined type to distinguish user-definable and read-only
variables.
Implemented checking for enumeration types. Added new types Filemask,
Filename, Language, Option, Pathmask, Pathname, Stage, Varname and
WrksrcSubdirectory. Made the check for URLs stricter. Added some
variables to the makevars.map file.
Removed the -Wworkdir option. Added an --import option that replaces
-Wworkdir. Changed the warning about uncleaned work* directories into an
error. Updated the man page.
Fixed the --autofix handling of category Makefiles. Added an --import
option that helps importing packages from pkgsrc-wip. When checked with
--import, the package is checked as if it weren't part of pkgsrc-wip.
Fixed undefined behavior when reading a file that ends in a continuation
line. Any use of ${WRKSRC}/.. is considered an error, as ${WRKSRC} is
meant to point to the top of the build directories. A proper combination
of WRKSRC, CONFIGURE_DIRS and BUILD_DIRS should be used instead. Sorted
the makevars.map file and added SUBST_CLASSES.
checking routines don't use physical lines anymore, so there's no need
to distinguish them. Removed deprecated "@" line checks from the PLIST
checker. These lines are all reported as "Unknown PLIST directive" now.
The --autofix support has been rewritten to be more easily usable.
Automatic fixes are currently restricted to the sort order of SUBDIR
entries in category Makefiles. It had been the complete category
Makefile before. Added a new diagnostic, prefixed with "NOTE:", that is
used for important informational diagnostics, for example autofixed
files.
one backslash reach the argument to sed(1), the backticks are replaced
with a call to open("... |"). Now the first argument to sed(1) contains
\$ instead of a simple $.
possible and base all other checks on the logical lines. The physical
source lines are saved literally to make implementing the --autofix
option easier.
Changed the names of the datatypes (Yes_Or_Undefined => Yes, Boolean =>
YesNo, Integer => PkgRevision) in makevars.map. It is now an error if
PKGREVISION appears outside a package Makefile. Improved detection of
Makefile.common. Improved wording of the warning for relative
directories in the form ../package.
Rewrote the typechecking code for Makefile variables. The variable
definitions are extracted from logical lines instead of physical lines,
comments are separated from actual values, for Lists of something, each
something is checked. All URLs are subject to MASTER_SITES expansion.
MASTER_SITES is checked to be a List of URLs.
Added CONFLICT to the list of deprecated variables (actually it's a
typo). Added PLIST_SUBST to makevars.map as a List. Allow comments after
a YES/yes/NO/no value of variables.
Fixed the detection of list variables that are modified with operators
other than "+=". Added *_SKIP to the list of plural variable names.
Removed some unused variables from main(). (This change include
white-space changes.)
Added a data type Readonly for variables that must not be given any
value at all by the package Makefile. Marked PKGBASE and PKGVERSION
read-only, because leaving them read-write would make the way PKGNAME is
calculated too complex. Made the check for the "+=" operator independent
of the data type. Added more patterns for accepted variable names for
lists.
Added support to typecheck "List of Something" in Makefile variables.
DEPENDS and BUILD_DEPENDS are of type List of Dependency, CFLAGS are
simply a List.
Improved heuristics for packages that use some common Makefiles,
reducing the number of false diagnostics in -Wvague mode. Moved checks
for SVR4_PKGNAME out of -Wvague mode. Added check for misspelled
NO_{SRC,BIN}_ON_{FTP,CDROM}.
Unbreak url2pkg on sourceforge hosted packages -- the MASTER_SITES
did not contain the trailing slash, thus breaking the download.
XXX: prdownloads.sf.net is not recognized as a sourceforge "mirror"
since the previous version of url2pkg.
verifypc is a tool that sanity checks the dependencies of a package based on
the results of a successful build, assuming the package uses pkg-config to
detect dependencies.
verifypc will warn you if the configuration script requests an uninstalled
or unavailable package (not specified as a direct dependency) or if the
requested package does not match the version specification in the packages'
dependencies.
+ Implement defining tag groups in pkgchk.conf. For example
"mailserver = tll gta tycoon jeeves iris"
+ If the first tag on a line starts with a '-', there is now an
implicit '*' before it
+ -B no longer implies -i
The last change introduced some false positive diagnostics. If a
distinfo file contains the checksum for a patch that does not exist,
this is not considered to be an error, but only a warning, as the
additional checksums do not influence the package.
Changed the file name pattern for patch files to avoid false positives
for DISTFILES that start with "patch-" (requested by salo). Added a
warning for invalid patch file names.
Changes since 4.20 include:
- In the diagnostics, FATAL is replaced with ERROR.
- The command line option -g changes the format of the diagnostics to be
similar to the one of gcc.
- Removed false warnings when checking if PLISTS are ordered.
- Removed the check for contiguous blank lines.
- Added a check to PLISTs that man pages are not installed in share/man.
- pkglint -r allows to recursively check directories.
- The pkgsrc root directory can be checked.
- Removed false warnings for patches that contain "---" lines.
- Switched to checking logical lines instead of physical lines.
Diagnostics for logical lines contain the range of physical lines
instead of a single line number.
- Some ../.. path components are stripped from the diagnostics.
- When checking for the direct use of tool names, only the context of the
use, not the whole shell command is output.
- Patches that contain RCS Ids should not have the -ko CVS mode anymore.
- Variables that are modified using the "+=" operator are considered to be
lists, so they should have a name indicating a plural.
Patch by pancake <pancake@phreaker.net> that permits url2pkg to scan
bsd.sites.mk and recreate the MASTER_SITE string. He has tested a bit
against GNU, GNOME, SOURCEFORGE master sites, and seems to do the things
fine.
beginning are stripped to make the output less verbose. The beginning is
needed to have a reference from which package the file is included, so
it is not stripped.
interpreted as "logical lines", that is, lines ending in a backslash are
continued on the next line. This led to a false warning for
PKG_FAIL_REASON, which is suppressed.
pkglint does not catch the important facts correctly it shouldn't be
nitpicking about white-space. I doubt that anyone has used the -B# and
the -Wwhitespace options at all, so there's no harm removing them.
- Very much code cleanup
- Introduction of the --autofix flag for category Makefiles
- Rewrite of the code to check the DISTNAME section in package Makefiles
- Rewrite of the code to check category Makefiles
that these directories will be conditionally removed (based on reference
counts), regardless of the value of PKG_CONFIG. Bump the PKGREVISION
for packages that were modified as a result.
comment. Instead, allow arbitrary comments at the beginning of the file.
This change required a major rewrite of the code, which had been quite
inflexible before.
code, I had forgotten one assumption I made. It was that in the ifelse
chain the case ( && ) couldn't occur because
the outer loop already cought that. And then I had inserted code that
violated exactly this assumption. Fixed.
The new code, which is not as nice as the old code, will hopefully allow
the --autofix option to be implemented really easily. If that will not
become true, I will probably revert to the old code. There's an
indentation FIXME in the code to keep this patch small. I will remove
that FIXME in a minute.