| .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. |
| |
| 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\-\-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\-\-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 |
| .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 <drobbins@gentoo.org> |
| Saleem Abdulrasool <compnerd@gentoo.org> |
| .fi |
| .SH "SEE ALSO" |
| .BR emerge (1) |