.TH "REPOMAN" "1" "Dec 2005" "Portage 2.1" "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
is meant for Gentoo developers only due to the fact it does not work on a per-ebuild basis.
It checks the quality of CVS repositories.

Note: \fBrepoman commit\fR only works \fIinside local\fR CVS 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.
.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-i\fR, \fB--include-masked\fR
Include masked packages in scans at category or tree level
.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\-\-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 last
Remember report from last run
.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 lfull
Remember report from last run (full listing)
.TP
.B manifest
Generate a Manifest (fetches files if necessary)
.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.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 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 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.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.syntax
Syntax error in RDEPEND (usually an extra/missing space/parenthesis)
.TP
.B SLOT.missing
Ebuilds that have a missing or empty SLOT variable
.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.disjointed
Ebuilds not added to cvs when the matching digest has been added
.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 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 usage.obsolete
The ebuild makes use of an obsolete construct
.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)
