.TH "REPOMAN" "1" "June 2012" "Portage VERSION" "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-a\fR, \fB--ask\fR
Request a confirmation before commiting
.TP
\fB\-\-digest=<y|n>\fR
Automatically update Manifest digests for modified files. This
option triggers a behavior that is very similar to that enabled
by FEATURES="digest" in \fBmake.conf\fR(5). In order to enable
this behavior by default for repoman alone, add
\fB\-\-digest=y\fR to the \fIREPOMAN_DEFAULT_OPTS\fR variable in
\fBmake.conf\fR(5). The \fBmanifest\-check\fR mode will
automatically ignore the \-\-digest option.

\fBNOTE:\fR
This option does not trigger update of digests for Manifest DIST
entries that already exist. Replacement of existing Manifest
DIST entries can be forced by using the \fBmanifest\fR mode
together with the \fB\-\-force\fR option.
.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\-\-echangelog=<y|n|force>\fR
For commit mode, call echangelog if ChangeLog is unmodified (or
regardless of modification if 'force' is specified). This option
can be enabled by default for a particular repository by setting
"update\-changelog = true" in metadata/layout.conf (see
\fBportage(5)\fR).
.TP
\fB\-\-if\-modified=<y|n>\fR
Only check packages that have uncommitted modifications
.TP
\fB\-i\fR, \fB\-\-ignore\-arches\fR
Ignore arch-specific failures (where arch != host)
.TP
\fB\-\-ignore\-default\-opts\fR
Do not use the \fIREPOMAN_DEFAULT_OPTS\fR environment variable.
.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\-\-unmatched\-removal\fR
Enable strict checking of package.mask and package.unmask files for
unmatched removal atoms.
.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 manifest-check
Check Manifests for missing or incorrect 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.badtilde
DEPEND uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)
.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 definition does not conform to PMS section 7.3.1 (first
non\-comment, non\-blank line). See bug #402167.
.TP
.B EAPI.deprecated
Ebuilds that use features that are deprecated in the current EAPI
.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 HOMEPAGE.virtual
Virtuals that have a non-empty HOMEPAGE variable
.TP
.B IUSE.invalid
This ebuild has a variable in IUSE that is not in the use.desc or its metadata.xml file
.TP
.B IUSE.missing
This ebuild has a USE conditional which references a flag that is not listed in IUSE
.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 LICENSE.virtual
Virtuals that have a non-empty LICENSE variable
.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.badtilde
PDEPEND uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)
.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.badtilde
RDEPEND uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)
.TP
.B RDEPEND.implicit
RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND
assignment (prior to EAPI 4)
.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)
.B SLOT.invalid
Ebuilds that have a missing or invalid SLOT variable value
.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 dependency.unknown
Ebuild has a dependency that refers to an unknown package (which may be
valid if it is a blocker for a renamed/removed package, or is an
alternative choice provided by an overlay)
.TP
.B digest.assumed
Existing digest must be assumed correct (Package level only)
.TP
.B digest.missing
Some files listed in SRC_URI aren't referenced in the Manifest
.TP
.B digest.unused
Some files listed in the Manifest aren't referenced in SRC_URI
.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.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 inherit.missing
Ebuild uses functions from an eclass but does not inherit it
.TP
.B inherit.unused
Ebuild inherits an eclass but does not use it
.TP
.B inherit.deprecated
Ebuild inherits a deprecated eclass
.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 manifest.bad
Manifest has missing or incorrect digests
.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 portage.internal
The ebuild uses an internal Portage function
.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 variable.usedwithhelpers
Ebuild uses D, ROOT, ED, EROOT or EPREFIX with helpers
.TP
.B virtual.oldstyle
The ebuild PROVIDEs an old-style virtual (see GLEP 37). This is an error
unless "allow\-provide\-virtuals = true" is set in metadata/layout.conf.
.TP
.B virtual.suspect
Ebuild contains a package that usually should be pulled via virtual/,
not directly.
.TP
.B wxwidgets.eclassnotused
Ebuild DEPENDs on x11-libs/wxGTK without inheriting wxwidgets.eclass. Refer to
bug #305469 for more information.
.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)
