PORTLINT(1)

NAME
portlint - a verifier for port directories

SYNOPSIS
portlint [-abcghvtACNV] [-M ENV] [-B n] [dir]

DESCRIPTION
portlint tries to verify the content of a port directory. The purpose of portlint can be separated into two parts: (1) to let the submitters easily polish their own port directory, and (2) to decrease the labor of the committers.

portlint uses very simple regular-expression matching for verifying files that make up a port directory. Note that it does NOT implement a complete parser for those files. Because of this the user may see some extra warnings, especially when checking complex Makefiles.

Options

-a  Perform additional checks for extra files, such as scripts/* and pkg-*.

-b  Warn the use of $(VARIABLE). Some of the committers prefer ${VARIABLE} instead of $(VARIABLE), even though they are semantically the same.

-c  Committer flag. It will add several checks useful only for committers. If you are a committer and performing check just before committing a port, use this option.

-g  Group and consolidate errors so that redundant error messages are rolled up into one line with a list of all affected line numbers (where appropriate). This option is disabled if -v is specified.

-h  Show the summary of command line options, then exit.

-m  Adds checks for $PORTSDIR/MOVED, $PORTSDIR/UIDs, and $PORTSDIR/GIDs.

-v  Be verbose. Show the progress report for items that are being checked.

-t  Nit pick about use of spaces.

-A  Turn on all additional checks. This is equivalent to -abcmNt.

-C  Pedantic committer flag. This is equivalent to -abcmt.

-N  New port flag. Adds several checks specific to newly submitted port. If you are willing to submit the directory to be checked as a new port, use this option.

-V  Print the portlint version and exit.

-M ENV
    Set make variables to ENV (ex. PORTSDIR=/usr/ports.work).

-B n
    Set the number of contiguous blank lines allowed in Makefile to n. (by default, n is 1)

dir The port directory to be checked. If omitted, check will be performed over the current directory.

ENVIRONMENT
The following environment variables affect the execution of portlint:

PL_GIT_IGNORE
    Set to a Perl-compatible regular expression, of patterns to ignore when checking to see if files are in the git repository. For example, '^\d+$|^pr-patch$'.

PORTSDIR
    The fully-qualified path to the ports tree. For example, “/usr/ports”.

FILES
bsd.port.mk
    master Makefile for ports ( bsd.pkg.mk on NetBSD / OpenBSD)
/usr/ports/*
    ports collection ( /usr/pkgsrc/* on NetBSD / OpenBSD); can be overriden by setting the PORTSDIR environment variable.

DIAGNOSTICS
Messages will be sent to standard output, not standard error output.

FATAL: ...
    This type of error message suggests that there is some fatal error in the port directory. For example, if some files need a rewrite, or if some inevitable files are missing, this message will show up. This kind of errors should be avoided BEFORE submitting a port via send-pr to the committers.

WARN: ...
    This type of error message suggests that some files may (or may not) need some fix. Basically, warnings are produced when portlint is not completely sure about the result. For example, complex Makefiles may need some statements that can match the regular expression portlint uses for sanity checks. In those cases, the user should evaluate the result manually, and obey/ignore the result.

OK: ...
    This types of message is used in verbose mode (-v).

AUTHORS
Joe Marcus Clarke <marcus@FreeBSD.org> Michael Haro <mharo@FreeBSD.org> Jun-ichiro Hagino <itojun@itojun.org> and Yoshishige Arai <ryo2@on.rim.or.jp>.

Many people have contributed patches and comments/suggestions.

BUGS
portlint is not a magic wand, as described above.