aboutsummaryrefslogtreecommitdiff
path: root/ports-mgmt/portlint/src/portlint.1
blob: fe4a36a545015a4b45eb5dfef56d94fd66484ff7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
.\" $FreeBSD$
.\"  $MCom: portlint/portlint.1,v 1.9 2006/05/30 04:47:45 marcus Exp $
.\"
.\" Copyright (c) 1997 by Jun-ichiro Hagino <itojun@itojun.org>.
.\" All Rights Reserved.  Absolutely no warranty.
.\"
.Dd May 30, 2006
.Dt PORTLINT 1
.Sh NAME
.Nm portlint
.Nd a verifier for port directories
.Sh SYNOPSIS
.Nm portlint
.Op Fl abcghvtACNV
.Op Fl M Ar ENV
.Op Fl B Ar n
.Op Ar dir
.Sh DESCRIPTION
.Nm
tries to verify the content of a port directory.
The purpose of
.Nm
can be separated into two parts:
.Pq 1
to let the submitters easily polish their own port directory, and
.Pq 2
to decrease the labor of the committers.
.Pp
.Nm
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
.Pa Makefile Ns No s .
.Pp
.Sy Options
.Bl -tag -width Fl
.It Fl a
Perform additional checks for extra files, such as
.Pa scripts/*
and
.Pa pkg-* .
.It Fl b
Warn the use of
.Pa $(VARIABLE) .
Some of the committers prefer
.Pa ${VARIABLE}
instead of
.Pa $(VARIABLE) ,
even though they are semantically same.
.It Fl 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.
.It Fl 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
.Fl v
is specified.
.It Fl h
Show the summary of command line options, then exit.
.It Fl v
Be verbose.
Show the progress report for items that are being checked.
.It Fl t
Nit pick about use of spaces.
.It Fl A
Turn on all additional checks.
.It Fl C
Pedantic committer flag.  This is equivalent to
.Fl abct .
.It Fl 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.
.It Fl V
Print the portlint version and exit.
.It Fl M Ar ENV
Set make variables to
.Pa ENV
(ex. PORTSDIR=/usr/ports.work).
.It Fl B Ar n
Set the number of contiguous blank lines allowed in
.Pa Makefile
to
.Ar n .
(by default,
.Ar n
is 1)
.It dir
The port directory to be checked.
If omitted, check will be performed over the current directory.
.El
.Sh DIAGNOSTICS
Messages will be sent to standard output, not standard error output.
.Bl -tag -width WARN: foobaa
.It 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.
.\"If a submitter submits it without update, committers will need to rewrite
.\"on behalf of the submitters, which may result in delay of
.\"the development of operating system itself.
.It WARN: ...
This type of error message suggests that some files may (or may not)
need some fix.
Basically, warnings are produced when
.Nm
is not completely sure about the result.
For example, complex
.Pa Makefile Ns No s
may need some statements that can match the regular expression
.Nm
uses for sanity checks.
In those cases, the user should evaluate the result manually,
and obey/ignore the result.
.It OK: ...
This types of message is used in verbose mode
.Pq Fl v .
.El
.Sh ENVIRONMENT
The following environment variables affect the execution of
.Nm :
.Bl -tag -width ".Ev PL_CVS_IGNORE"
.It Ev PL_CVS_IGNORE
Set to a Perl-compatible regular expression, of patterns
to ignore when checking to see if files are in the CVS
repository.  For example,
.Li '^\ed+$|^pr-patch$' .
.It Ev PORTSDIR
The fully-qualified path to the ports tree.
For example,
.Dq Li /usr/ports .
.El
.Sh FILES
.Bl -tag -width bsd.port.mkxx -compact
.It Pa bsd.port.mk
master Makefile for ports
.Po
.Pa bsd.pkg.mk
on
.Nx
/
.Ox
.Pc
.It Pa /usr/ports/*
ports collection
.Po
.Pa /usr/pkgsrc/*
on
.Nx
/
.Ox
.Pc ;
can be overriden by setting the
.Va PORTSDIR
environment variable.

.Sh AUTHORS
.An Joe Marcus Clarke Aq marcus@FreeBSD.org
.An Michael Haro Aq mharo@FreeBSD.org
.An Jun-ichiro Hagino Aq itojun@itojun.org
and
.An Yoshishige Arai Aq ryo2@on.rim.or.jp .
.Pp
Many people have contributed patches and comments/suggestions.
.Sh BUGS
.Nm
is not a magic wand, as described above.