repoman: check for deprecated EAPIs, bug #470670
[portage.git] / man / repoman.1
1 .TH "REPOMAN" "1" "May 2013" "Portage VERSION" "Portage"
2 .SH NAME
3 repoman \- Gentoo's program to enforce a minimal level of quality assurance in packages added to the portage tree
4 .SH SYNOPSIS
5 \fBrepoman\fR [\fIoption\fR] [\fImode\fR]
6 .SH DESCRIPTION
7 .BR "Quality is job zero."
8
9 .BR repoman
10 checks the quality of ebuild repositories.
11
12 Note: \fBrepoman commit\fR only works \fIinside local\fR cvs, git, or subversion repositories.
13 .SH OPTIONS
14 .TP
15 \fB-a\fR, \fB--ask\fR
16 Request a confirmation before commiting
17 .TP
18 \fB\-\-digest=<y|n>\fR
19 Automatically update Manifest digests for modified files. This
20 option triggers a behavior that is very similar to that enabled
21 by FEATURES="digest" in \fBmake.conf\fR(5). In order to enable
22 this behavior by default for repoman alone, add
23 \fB\-\-digest=y\fR to the \fIREPOMAN_DEFAULT_OPTS\fR variable in
24 \fBmake.conf\fR(5). The \fBmanifest\-check\fR mode will
25 automatically ignore the \-\-digest option.
26
27 \fBNOTE:\fR
28 This option does not trigger update of digests for Manifest DIST
29 entries that already exist. Replacement of existing Manifest
30 DIST entries can be forced by using the \fBmanifest\fR mode
31 together with the \fB\-\-force\fR option.
32 .TP
33 \fB--force\fR
34 Force commit to proceed, regardless of QA issues. For convenience, this option
35 causes the most time consuming QA checks to be skipped. The commit message will
36 include an indication that this option has been enabled, together with the
37 usual portage version stamp.
38
39 When used together with \fBmanifest\fR mode, \fB--force\fR causes existing
40 digests to be replaced for any files that exist in ${DISTDIR}.
41 Existing digests are assumed to be correct for files that would otherwise
42 have to be downloaded in order to recompute digests. \fBWARNING:\fR When
43 replacing existing digests, it is the user's responsibility to ensure that
44 files contained in ${DISTDIR} have the correct identities. Especially beware
45 of partially downloaded files.
46 .TP
47 \fB-q\fR, \fB--quiet\fR
48 Be less verbose about extraneous info
49 .TP
50 \fB-p\fR, \fB--pretend\fR
51 Don't commit or fix anything; just show what would be done
52 .TP
53 \fB-x\fR, \fB--xmlparse\fR
54 Forces the metadata.xml parse check to be carried out
55 .TP
56 \fB-v\fR, \fB--verbose\fR
57 Displays every package name while checking
58 .TP
59 \fB\-\-echangelog=<y|n|force>\fR
60 For commit mode, call echangelog if ChangeLog is unmodified (or
61 regardless of modification if 'force' is specified). This option
62 can be enabled by default for a particular repository by setting
63 "update\-changelog = true" in metadata/layout.conf (see
64 \fBportage(5)\fR).
65 .TP
66 \fB\-\-if\-modified=<y|n>\fR
67 Only check packages that have uncommitted modifications
68 .TP
69 \fB\-i\fR, \fB\-\-ignore\-arches\fR
70 Ignore arch-specific failures (where arch != host)
71 .TP
72 \fB\-\-ignore\-default\-opts\fR
73 Do not use the \fIREPOMAN_DEFAULT_OPTS\fR environment variable.
74 .TP
75 \fB\-I\fR, \fB\-\-ignore\-masked\fR
76 Ignore masked packages (not allowed with commit mode)
77 .TP
78 .BR "\-\-include\-arches " ARCHES
79 A space separated list of arches used to filter the selection of
80 profiles for dependency checks.
81 .TP
82 \fB\-d\fR, \fB\-\-include\-dev\fR
83 Include dev profiles in dependency checks.
84 .TP
85 \fB\-\-unmatched\-removal\fR
86 Enable strict checking of package.mask and package.unmask files for
87 unmatched removal atoms.
88 .TP
89 \fB\-\-without\-mask\fR
90 Behave as if no package.mask entries exist (not allowed with commit mode)
91 .TP
92 \fB-m\fR, \fB--commitmsg\fR
93 Adds a commit message via the command line
94 .TP
95 \fB-M\fR, \fB--commitmsgfile\fR
96 Adds a commit message from the specified file
97 .TP
98 \fB-V\fR, \fB--version\fR
99 Show version info
100 .TP
101 \fB-h\fR, \fB--help\fR
102 Show this screen
103 .SH MODES
104 .TP
105 .B full
106 Scan directory tree for QA issues (full listing)
107 .TP
108 .B help
109 Show this screen
110 .TP
111 .B scan
112 Scan directory tree for QA issues (short listing)
113 .TP
114 .B fix
115 Fix simple QA issues (stray digests, missing digests)
116 .TP
117 .B manifest
118 Generate a Manifest (fetches distfiles if necessary). See the \fB\-\-force\fR
119 option if you would like to replace existing distfiles digests.
120 .TP
121 .B manifest-check
122 Check Manifests for missing or incorrect digests
123 .TP
124 .B commit
125 Scan directory tree for QA issues; if OK, commit via cvs
126 .SH QA KEYWORDS
127 .TP
128 .B CVS/Entries.IO_error
129 Attempting to commit, and an IO error was encountered access the Entries file
130 .TP
131 .B DESCRIPTION.missing
132 Ebuilds that have a missing or empty DESCRIPTION variable
133 .TP
134 .B EAPI.definition
135 EAPI definition does not conform to PMS section 7.3.1 (first
136 non\-comment, non\-blank line). See bug #402167.
137 .TP
138 .B EAPI.deprecated
139 Ebuilds that use features that are deprecated in the current EAPI
140 .TP
141 .B EAPI.incompatible
142 Ebuilds that use features that are only available with a different EAPI
143 .TP
144 .B EAPI.unsupported
145 Ebuilds that have an unsupported EAPI version (you must upgrade portage)
146 .TP
147 .B HOMEPAGE.missing
148 Ebuilds that have a missing or empty HOMEPAGE variable
149 .TP
150 .B HOMEPAGE.virtual
151 Virtuals that have a non-empty HOMEPAGE variable
152 .TP
153 .B IUSE.invalid
154 This ebuild has a variable in IUSE that is not in the use.desc or its metadata.xml file
155 .TP
156 .B IUSE.missing
157 This ebuild has a USE conditional which references a flag that is not listed in IUSE
158 .TP
159 .B KEYWORDS.dropped
160 Ebuilds that appear to have dropped KEYWORDS for some arch
161 .TP
162 .B KEYWORDS.invalid
163 This ebuild contains KEYWORDS that are not listed in profiles/arch.list or for which no valid profile was found
164 .TP
165 .B KEYWORDS.missing
166 Ebuilds that have a missing or empty KEYWORDS variable
167 .TP
168 .B KEYWORDS.stable
169 Ebuilds that have been added directly with stable KEYWORDS
170 .TP
171 .B KEYWORDS.stupid
172 Ebuilds that use KEYWORDS=-* instead of package.mask
173 .TP
174 .B LICENSE.deprecated
175 This ebuild is listing a deprecated license.
176 .TP
177 .B LICENSE.invalid
178 This ebuild is listing a license that doesnt exist in portages license/ dir.
179 .TP
180 .B LICENSE.missing
181 Ebuilds that have a missing or empty LICENSE variable
182 .TP
183 .B LICENSE.syntax
184 Syntax error in LICENSE (usually an extra/missing space/parenthesis)
185 .TP
186 .B LICENSE.virtual
187 Virtuals that have a non-empty LICENSE variable
188 .TP
189 .B LIVEVCS.stable
190 Ebuild is a live ebuild (cvs, git, darcs, svn, etc) checkout with stable keywords.
191 .TP
192 .B LIVEVCS.unmasked
193 Ebuild is a live ebuild (cvs, git, darcs, svn, etc) checkout but has keywords
194 and is not masked in the global package.mask.
195 .TP
196 .B PDEPEND.suspect
197 PDEPEND contains a package that usually only belongs in DEPEND
198 .TP
199 .B PROVIDE.syntax
200 Syntax error in PROVIDE (usually an extra/missing space/parenthesis)
201 .TP
202 .B RDEPEND.implicit
203 RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND
204 assignment (prior to EAPI 4)
205 .TP
206 .B RDEPEND.suspect
207 RDEPEND contains a package that usually only belongs in DEPEND
208 .TP
209 .B PROPERTIES.syntax
210 Syntax error in PROPERTIES (usually an extra/missing space/parenthesis)
211 .TP
212 .B RESTRICT.syntax
213 Syntax error in RESTRICT (usually an extra/missing space/parenthesis)
214 .B SLOT.invalid
215 Ebuilds that have a missing or invalid SLOT variable value
216 .TP
217 .B SRC_URI.mirror
218 A uri listed in profiles/thirdpartymirrors is found in SRC_URI
219 .TP
220 .B changelog.ebuildadded
221 An ebuild was added but the ChangeLog was not modified
222 .TP
223 .B changelog.missing
224 Missing ChangeLog files
225 .TP
226 .B changelog.notadded
227 ChangeLogs that exist but have not been added to cvs
228 .TP
229 .B dependency.bad
230 User-visible ebuilds with unsatisfied dependencies (matched against *visible* ebuilds)
231 .TP
232 .B dependency.badindev
233 User-visible ebuilds with unsatisfied dependencies (matched against *visible* ebuilds) in developing arch
234 .TP
235 .B dependency.badmasked
236 Masked ebuilds with unsatisfied dependencies (matched against *all* ebuilds)
237 .TP
238 .B dependency.badmaskedindev
239 Masked ebuilds with unsatisfied dependencies (matched against *all* ebuilds) in developing arch
240 .TP
241 .B dependency.badtilde
242 Uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)
243 .TP
244 .B dependency.syntax
245 Syntax error in dependency string (usually an extra/missing space/parenthesis)
246 .TP
247 .B dependency.unknown
248 Ebuild has a dependency that refers to an unknown package (which may be
249 valid if it is a blocker for a renamed/removed package, or is an
250 alternative choice provided by an overlay)
251 .TP
252 .B digest.assumed
253 Existing digest must be assumed correct (Package level only)
254 .TP
255 .B digest.missing
256 Some files listed in SRC_URI aren't referenced in the Manifest
257 .TP
258 .B digest.unused
259 Some files listed in the Manifest aren't referenced in SRC_URI
260 .TP
261 .B ebuild.badheader
262 This ebuild has a malformed header
263 .TP
264 .B ebuild.invalidname
265 Ebuild files with a non-parseable or syntactically incorrect name (or using 2.1 versioning extensions)
266 .TP
267 .B ebuild.majorsyn
268 This ebuild has a major syntax error that may cause the ebuild to fail partially or fully
269 .TP
270 .B ebuild.minorsyn
271 This ebuild has a minor syntax error that contravenes gentoo coding style
272 .TP
273 .B ebuild.namenomatch
274 Ebuild files that do not have the same name as their parent directory
275 .TP
276 .B ebuild.nesteddie
277 Placing 'die' inside ( ) prints an error, but doesn't stop the ebuild.
278 .TP
279 .B ebuild.notadded
280 Ebuilds that exist but have not been added to cvs
281 .TP
282 .B ebuild.output
283 A simple sourcing of the ebuild produces output; this breaks ebuild policy.
284 .TP
285 .B ebuild.patches
286 PATCHES variable should be a bash array to ensure white space safety
287 .TP
288 .B ebuild.syntax
289 Error generating cache entry for ebuild; typically caused by ebuild syntax error
290 or digest verification failure.
291 .TP
292 .B file.UTF8
293 File is not UTF8 compliant
294 .TP
295 .B file.executable
296 Ebuilds, digests, metadata.xml, Manifest, and ChangeLog do not need the executable bit
297 .TP
298 .B file.name
299 File/dir name must be composed of only the following chars: a-zA-Z0-9._-+:
300 .TP
301 .B file.size
302 Files in the files directory must be under 20k
303 .TP
304 .B inherit.missing
305 Ebuild uses functions from an eclass but does not inherit it
306 .TP
307 .B inherit.unused
308 Ebuild inherits an eclass but does not use it
309 .TP
310 .B inherit.deprecated
311 Ebuild inherits a deprecated eclass
312 .TP
313 .B java.eclassesnotused
314 With virtual/jdk in DEPEND you must inherit a java eclass. Refer to
315 \fIhttp://www.gentoo.org/proj/en/java/java\-devel.xml\fR for more information.
316 .TP
317 .B manifest.bad
318 Manifest has missing or incorrect digests
319 .TP
320 .B metadata.bad
321 Bad metadata.xml files
322 .TP
323 .B metadata.missing
324 Missing metadata.xml files
325 .TP
326 .B metadata.warning
327 Warnings in metadata.xml files
328 .TP
329 .B repo.eapi.banned
330 The ebuild uses an EAPI which is banned by the repository's
331 metadata/layout.conf settings.
332 .TP
333 .B repo.eapi.deprecated
334 The ebuild uses an EAPI which is deprecated by the repository's
335 metadata/layout.conf settings.
336 .TP
337 .B portage.internal
338 The ebuild uses an internal Portage function or variable
339 .TP
340 .B upstream.workaround
341 The ebuild works around an upstream bug, an upstream bug should be filed and
342 tracked in bugs.gentoo.org
343 .TP
344 .B usage.obsolete
345 The ebuild makes use of an obsolete construct
346 .TP
347 .B variable.invalidchar
348 A variable contains an invalid character that is not part of the ASCII
349 character set.
350 .TP
351 .B variable.readonly
352 Assigning a readonly variable
353 .TP
354 .B variable.usedwithhelpers
355 Ebuild uses D, ROOT, ED, EROOT or EPREFIX with helpers
356 .TP
357 .B virtual.oldstyle
358 The ebuild PROVIDEs an old-style virtual (see GLEP 37). This is an error
359 unless "allow\-provide\-virtuals = true" is set in metadata/layout.conf.
360 .TP
361 .B virtual.suspect
362 Ebuild contains a package that usually should be pulled via virtual/,
363 not directly.
364 .TP
365 .B wxwidgets.eclassnotused
366 Ebuild DEPENDs on x11-libs/wxGTK without inheriting wxwidgets.eclass. Refer to
367 bug #305469 for more information.
368 .SH "REPORTING BUGS"
369 Please report bugs via http://bugs.gentoo.org/
370 .SH AUTHORS
371 .nf
372 Daniel Robbins <drobbins@gentoo.org>
373 Saleem Abdulrasool <compnerd@gentoo.org>
374 .fi
375 .SH "SEE ALSO"
376 .BR emerge (1)