.TH "REPOMAN" "1" "March 2021" "Repoman VERSION" "Repoman"
.SH NAME
repoman \- Gentoo's program to enforce a minimal level of quality assurance in
packages added to the ebuild repository
.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\-j\fR, \fB\-\-jobs\fR
Specifies the number of jobs (processes) to run simultaneously.
.TP
\fB\-l\fR, \fB\-\-load-average\fR
Specifies that no new jobs (processes) should be started if there are others
jobs running and the load average is at least load (a floating\-point number).
.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\-\-experimental\-repository\-modules=<y|n>\fR
Enable experimental repository modules:
\fIhttps://wiki.gentoo.org/wiki/Project:Portage/Repoman-Module-specs\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
.BR "\-\-include\-arches " ARCHES
A space separated list of arches used to filter the selection of
profiles for dependency checks.
.TP
.BR "\-\-include\-profiles " PROFILES
A space separated list of profiles used to
define 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 KEYWORDS.unsorted
Ebuilds that contain KEYWORDS which are not sorted alphabetically.
.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 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.deprecated
Ebuild has a dependency that refers to a deprecated package
.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 20 KiB
.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.phase
Variable referenced found within scope of incorrect ebuild phase as specified by PMS.
.TP
.B variable.readonly
Assigning a readonly variable
.TP
.B variable.usedwithhelpers
Ebuild uses D, ROOT, BROOT, ED, EROOT or EPREFIX with helpers
.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 "BEHAVIOR"
When invoked from a level higher than a package directory, \fBrepoman\fR
will recurse through a directory tree and execute the given command
on a per\-package basis, e.g. \fBrepoman manifest\fR at the root of
the repository will generate manifests for every package within the
repository.
.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)
