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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
|
.TH "REPOMAN" "1" "Aug 2008" "Portage 2.2" "Portage"
.SH NAME
repoman \- Gentoo's program to enforce a minimal level of quality assurance in packages added to the portage tree
.SH SYNOPSIS
\fBrepoman\fR [\fIoption\fR] [\fImode\fR]
.SH DESCRIPTION
.BR "Quality is job zero."
.BR repoman
checks the quality of ebuild repositories.
Note: \fBrepoman commit\fR only works \fIinside local\fR cvs, git, or subversion repositories.
.SH OPTIONS
.TP
\fB--force\fR
Force commit to proceed, regardless of QA issues. For convenience, this option
causes the most time consuming QA checks to be skipped. The commit message will
include an indication that this option has been enabled, together with the
usual portage version stamp.
When used together with \fBmanifest\fR mode, \fB--force\fR causes existing
digests to be replaced for any files that exist in ${DISTDIR}.
Existing digests are assumed to be correct for files that would otherwise
have to be downloaded in order to recompute digests. \fBWARNING:\fR When
replacing existing digests, it is the user's responsibility to ensure that
files contained in ${DISTDIR} have the correct identities. Especially beware
of partially downloaded files.
.TP
\fB-q\fR, \fB--quiet\fR
Be less verbose about extraneous info
.TP
\fB-p\fR, \fB--pretend\fR
Don't commit or fix anything; just show what would be done
.TP
\fB-x\fR, \fB--xmlparse\fR
Forces the metadata.xml parse check to be carried out
.TP
\fB-v\fR, \fB--verbose\fR
Displays every package name while checking
.TP
\fB\-i\fR, \fB\-\-ignore\-arches\fR
Ignore arch-specific failures (where arch != host)
.TP
\fB\-I\fR, \fB\-\-ignore\-masked\fR
Ignore masked packages (not allowed with commit mode)
.TP
\fB\-d\fR, \fB\-\-include\-dev\fR
Include dev profiles in dependency checks.
.TP
\fB\-\-without\-mask\fR
Behave as if no package.mask entries exist (not allowed with commit mode)
.TP
\fB-m\fR, \fB--commitmsg\fR
Adds a commit message via the command line
.TP
\fB-M\fR, \fB--commitmsgfile\fR
Adds a commit message from the specified file
.TP
\fB-V\fR, \fB--version\fR
Show version info
.TP
\fB-h\fR, \fB--help\fR
Show this screen
.SH MODES
.TP
.B full
Scan directory tree for QA issues (full listing)
.TP
.B help
Show this screen
.TP
.B scan
Scan directory tree for QA issues (short listing)
.TP
.B fix
Fix simple QA issues (stray digests, missing digests)
.TP
.B manifest
Generate a Manifest (fetches distfiles if necessary). See the \fB\-\-force\fR
option if you would like to replace existing distfiles digests.
.TP
.B commit
Scan directory tree for QA issues; if OK, commit via cvs
.SH QA KEYWORDS
.TP
.B CVS/Entries.IO_error
Attempting to commit, and an IO error was encountered access the Entries file
.TP
.B DEPEND.bad
User-visible ebuilds with bad DEPEND settings (matched against *visible* ebuilds)
.TP
.B DEPEND.badindev
User-visible ebuilds with bad DEPEND settings (matched against *visible* ebuilds) in developing arch
.TP
.B DEPEND.badmasked
Masked ebuilds with bad DEPEND settings (matched against *all* ebuilds)
.TP
.B DEPEND.badmaskedindev
Masked ebuilds with bad DEPEND settings (matched against *all* ebuilds) in developing arch
.TP
.B DEPEND.syntax
Syntax error in DEPEND (usually an extra/missing space/parenthesis)
.TP
.B DESCRIPTION.missing
Ebuilds that have a missing or empty DESCRIPTION variable
.TP
.B EAPI.definition
EAPI is defined after an inherit call (must be defined before)
.TP
.B EAPI.incompatible
Ebuilds that use features that are only available with a different EAPI
.TP
.B EAPI.unsupported
Ebuilds that have an unsupported EAPI version (you must upgrade portage)
.TP
.B HOMEPAGE.missing
Ebuilds that have a missing or empty HOMEPAGE variable
.TP
.B IUSE.invalid
This build has a variable in IUSE that is not in the use.desc or use.local.desc file
.TP
.B IUSE.undefined
This ebuild does not define IUSE (style guideline says to define IUSE even when empty)
.TP
.B KEYWORDS.dropped
Ebuilds that appear to have dropped KEYWORDS for some arch
.TP
.B KEYWORDS.invalid
This ebuild contains KEYWORDS that are not listed in profiles/arch.list or for which no valid profile was found
.TP
.B KEYWORDS.missing
Ebuilds that have a missing or empty KEYWORDS variable
.TP
.B KEYWORDS.stable
Ebuilds that have been added directly with stable KEYWORDS
.TP
.B KEYWORDS.stupid
Ebuilds that use KEYWORDS=-* instead of package.mask
.TP
.B LICENSE.invalid
This ebuild is listing a license that doesnt exist in portages license/ dir.
.TP
.B LICENSE.missing
Ebuilds that have a missing or empty LICENSE variable
.TP
.B LICENSE.syntax
Syntax error in LICENSE (usually an extra/missing space/parenthesis)
.TP
.B LIVEVCS.stable
Ebuild is a live ebuild (cvs, git, darcs, svn, etc) checkout with stable keywords.
.TP
.B LIVEVCS.unmasked
Ebuild is a live ebuild (cvs, git, darcs, svn, etc) checkout but has keywords
and is not masked in the global package.mask.
.TP
.B PDEPEND.bad
User-visible ebuilds with bad PDEPEND settings (matched against *visible* ebuilds)
.TP
.B PDEPEND.badindev
User-visible ebuilds with bad PDEPEND settings (matched against *visible* ebuilds) in developing arch
.TP
.B PDEPEND.badmasked
Masked ebuilds with PDEPEND settings (matched against *all* ebuilds)
.TP
.B PDEPEND.badmaskedindev
Masked ebuilds with PDEPEND settings (matched against *all* ebuilds) in developing arch
.TP
.B PDEPEND.suspect
PDEPEND contains a package that usually only belongs in DEPEND
.TP
.B PDEPEND.syntax
Syntax error in PDEPEND (usually an extra/missing space/parenthesis)
.TP
.B PROVIDE.syntax
Syntax error in PROVIDE (usually an extra/missing space/parenthesis)
.TP
.B RDEPEND.bad
User-visible ebuilds with bad RDEPEND settings (matched against *visible* ebuilds)
.TP
.B RDEPEND.badindev
User-visible ebuilds with bad RDEPEND settings (matched against *visible* ebuilds) in developing arch
.TP
.B RDEPEND.badmasked
Masked ebuilds with RDEPEND settings (matched against *all* ebuilds)
.TP
.B RDEPEND.badmaskedindev
Masked ebuilds with RDEPEND settings (matched against *all* ebuilds) in developing arch
.TP
.B RDEPEND.implicit
RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND
assignment
.TP
.B RDEPEND.suspect
RDEPEND contains a package that usually only belongs in DEPEND
.TP
.B RDEPEND.syntax
Syntax error in RDEPEND (usually an extra/missing space/parenthesis)
.TP
.B PROPERTIES.syntax
Syntax error in PROPERTIES (usually an extra/missing space/parenthesis)
.TP
.B RESTRICT.syntax
Syntax error in RESTRICT (usually an extra/missing space/parenthesis)
.TP
.B SLOT.missing
Ebuilds that have a missing or empty SLOT variable
.TP
.B SRC_URI.mirror
A uri listed in profiles/thirdpartymirrors is found in SRC_URI
.TP
.B changelog.ebuildadded
An ebuild was added but the ChangeLog was not modified
.TP
.B changelog.missing
Missing ChangeLog files
.TP
.B changelog.notadded
ChangeLogs that exist but have not been added to cvs
.TP
.B digest.assumed
Existing digest must be assumed correct (Package level only)
.TP
.B ebuild.allmasked
All ebuilds are masked for this package (Package level only)
.TP
.B ebuild.badheader
This ebuild has a malformed header
.TP
.B ebuild.invalidname
Ebuild files with a non-parseable or syntactically incorrect name (or using 2.1 versioning extensions)
.TP
.B ebuild.majorsyn
This ebuild has a major syntax error that may cause the ebuild to fail partially or fully
.TP
.B ebuild.minorsyn
This ebuild has a minor syntax error that contravenes gentoo coding style
.TP
.B ebuild.namenomatch
Ebuild files that do not have the same name as their parent directory
.TP
.B ebuild.nesteddie
Placing 'die' inside ( ) prints an error, but doesn't stop the ebuild.
.TP
.B ebuild.nostable
There are no ebuilds that are marked as stable for your ARCH
.TP
.B ebuild.notadded
Ebuilds that exist but have not been added to cvs
.TP
.B ebuild.output
A simple sourcing of the ebuild produces output; this breaks ebuild policy.
.TP
.B ebuild.patches
PATCHES variable should be a bash array to ensure white space safety
.TP
.B ebuild.syntax
Error generating cache entry for ebuild; typically caused by ebuild syntax error
or digest verification failure.
.TP
.B file.UTF8
File is not UTF8 compliant
.TP
.B file.executable
Ebuilds, digests, metadata.xml, Manifest, and ChangeLog do not need the executable bit
.TP
.B file.name
File/dir name must be composed of only the following chars: a-zA-Z0-9._-+:
.TP
.B file.size
Files in the files directory must be under 20k
.TP
.B filedir.missing
Package lacks a files directory
.TP
.B inherit.autotools
Ebuild inherits autotools but does not call eautomake, eautoconf or eautoreconf
.TP
.B java.eclassesnotused
With virtual/jdk in DEPEND you must inherit a java eclass. Refer to
\fIhttp://www.gentoo.org/proj/en/java/java\-devel.xml\fR for more information.
.TP
.B metadata.bad
Bad metadata.xml files
.TP
.B metadata.missing
Missing metadata.xml files
.TP
.B metadata.warning
Warnings in metadata.xml files
.TP
.B upstream.workaround
The ebuild works around an upstream bug, an upstream bug should be filed and
tracked in bugs.gentoo.org
.TP
.B usage.obsolete
The ebuild makes use of an obsolete construct
.TP
.B variable.invalidchar
A variable contains an invalid character that is not part of the ASCII
character set.
.TP
.B variable.readonly
Assigning a readonly variable
.TP
.B virtual.exists
PROVIDE contains existing package names
.TP
.B virtual.unavailable
PROVIDE contains a virtual which contains no profile default
.TP
.B virtual.versioned
PROVIDE contains virtuals with versions
.SH "REPORTING BUGS"
Please report bugs via http://bugs.gentoo.org/
.SH AUTHORS
.nf
Daniel Robbins <drobbins@gentoo.org>
Saleem Abdulrasool <compnerd@gentoo.org>
.fi
.SH "SEE ALSO"
.BR emerge (1)
|