.TH "REPOMAN" "1" "Jun 2017" "Repoman VERSION" "Repoman"
.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.

Note: Messages pertaining to specific lines may be inaccurate in the
prescence of continuation lines from use of the \fI\\\fR character in
BASH.
.SH OPTIONS
.TP
\fB-a\fR, \fB--ask\fR
Request a confirmation before commiting
.TP
\fB-b\fR, \fB--bug\fR
Include a bug reference in the commit message footer. The argument can
be either a Gentoo bug number or a full bug URL (either Gentoo
or upstream). Gentoo bug URLs are automatically shortened to
the canonical \fBhttps://bugs.gentoo.org/NNNNNN\fR form, and HTTPS
is forced for known bug trackers.

When pushing to the Gentoo repository, the reference to the commit
will be automatically added as a comment on the bug.
.TP
\fB-c\fR, \fB--closes\fR
Include a \fBCloses\fR tag in the commit message footer that can be used
to close bugs and pull requests. The argument can be either a Gentoo bug
number or a full PR/bug URL. Gentoo bug URLs are automatically shortened
to the canonical \fBhttps://bugs.gentoo.org/NNNNNN\fR form, and HTTPS
is forced for known bug trackers.

When pushing to the Gentoo repository, the referenced bugs will be
closed as RESOLVED/FIXED automatically with a comment referencing
the commit. Furthermore, GitHub pull requests will be closed as well
due to the automatic GitHub mirroring.

Other platforms using the \fBCloses\fR tag include GitLab and Bitbucket.
.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-f\fR, \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-S\fR, \fB--straight-to-stable\fR
Allow committing straight to stable
.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\fR(5)).
.TP
\fB\-\-experimental\-inherit=<y|n>\fR
Enable experimental inherit.missing checks which may misbehave when the
internal eclass database becomes outdated.
.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
.BR "\-\-include\-arches " ARCHES
A space separated list of arches used to filter the selection of
profiles for dependency checks.
.TP
\fB\-d\fR, \fB\-\-include\-dev\fR
Include dev profiles in dependency checks.
.TP
\fB\-e <y|n>\fR, \fB\-\-include\-exp\-profiles=<y|n>\fR
Include exp 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.  This option also will perform
an automatic text substitution of a leading "cat/pkg: " string (upper or lower
case) with the actual category/package prefix as defined by the required message
format.  Use this option for templating a common commit message for multiple
package updates.
.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 VCS
.TP
.B ci
Synonym for commit
.SH QA KEYWORDS
.TP
.B CVS/Entries.IO_error
Attempting to commit, and an IO error was encountered access the Entries file
.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.missingurischeme
HOMEPAGE is missing an URI scheme
.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 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.deprecated
This ebuild is listing a deprecated license.
.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.suspect
PDEPEND contains a package that usually only belongs in DEPEND
.TP
.B PROVIDE.syntax
Syntax error in PROVIDE (usually an extra/missing space/parenthesis)
.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 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 the vcs
.TP
.B dependency.bad
User-visible ebuilds with unsatisfied dependencies (matched against *visible*
ebuilds)
.TP
.B dependency.badindev
User-visible ebuilds with unsatisfied dependencies (matched against *visible*
ebuilds) in developing arch
.TP
.B dependency.badinexp
User-visible ebuilds with unsatisfied dependencies (matched against *visible*
ebuilds) in experimental arch
.TP
.B dependency.badmasked
Masked ebuilds with unsatisfied dependencies (matched against *all* ebuilds)
.TP
.B dependency.badmaskedindev
Masked ebuilds with unsatisfied dependencies (matched against *all* ebuilds) in
developing arch
.TP
.B dependency.badmaskedinexp
Masked ebuilds with unsatisfied dependencies (matched against *all* ebuilds) in
experimental arch
.TP
.B dependency.badtilde
Uses the ~ dep operator with a non-zero revision part, which is useless (the
revision is ignored)
.TP
.B dependency.syntax
Syntax error in dependency string (usually an extra/missing space/parenthesis)
.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.absdosym
Ebuild uses 'dosym' with explicit absolute path where relative path
could be used
.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 the vcs
.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.empty
Empty file in the files directory
.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
\fIhttps://wiki.gentoo.org/wiki/Project:Java\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 repo.eapi.banned
The ebuild uses an EAPI which is banned by the repository's
metadata/layout.conf settings.
.TP
.B repo.eapi.deprecated
The ebuild uses an EAPI which is deprecated by the repository's
metadata/layout.conf settings.
.TP
.B IUSE.rubydeprecated
The ebuild has set a ruby interpreter in USE_RUBY, that is not available as a ruby target anymore
.TP
.B portage.internal
The ebuild uses an internal Portage function or variable
.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 https://bugs.gentoo.org/
.SH AUTHORS
.nf
Daniel Robbins <drobbins@gentoo.org>
Saleem Abdulrasool <compnerd@gentoo.org>
.fi
.SH "SEE ALSO"
.BR emerge (1)
