.TH "REPOMAN" "1" "Aug 2013" "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=\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=\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\-\-experimental\-inherit=\fR Enable experimental inherit.missing checks which may misbehave when the internal eclass database becomes outdated. .TP \fB\-\-if\-modified=\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 \fR, \fB\-\-include\-exp\-profiles=\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 .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 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 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 cvs .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.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.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.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 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 http://bugs.gentoo.org/ .SH AUTHORS .nf Daniel Robbins Saleem Abdulrasool .fi .SH "SEE ALSO" .BR emerge (1)