REPOMAN

NAME

repoman - Gentoo's program to enforce a minimal level of quality assurance in packages added to the portage tree

SYNOPSIS

repoman [option] [mode]

DESCRIPTION

Quality is job zero.

repoman checks the quality of ebuild repositories.

Note: repoman commit only works inside local cvs, git, or subversion repositories.

OPTIONS

-a, --ask

Request a confirmation before commiting

--force

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 manifest mode, --force 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. WARNING: 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.

-q, --quiet

Be less verbose about extraneous info

-p, --pretend

Don't commit or fix anything; just show what would be done

-x, --xmlparse

Forces the metadata.xml parse check to be carried out

-v, --verbose

Displays every package name while checking

--echangelog=<y|n|force>

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 portage(5)).

--if-modified=<y|n>

Only check packages that have uncommitted modifications

-i, --ignore-arches

Ignore arch-specific failures (where arch != host)

--ignore-default-opts

Do not use the REPOMAN_DEFAULT_OPTS environment variable.

-I, --ignore-masked

Ignore masked packages (not allowed with commit mode)

-d, --include-dev

Include dev profiles in dependency checks.

--unmatched-removal

Enable strict checking of package.mask and package.unmask files for unmatched removal atoms.

--without-mask

Behave as if no package.mask entries exist (not allowed with commit mode)

-m, --commitmsg

Adds a commit message via the command line

-M, --commitmsgfile

Adds a commit message from the specified file

-V, --version

Show version info

-h, --help

Show this screen

MODES

full

Scan directory tree for QA issues (full listing)

help

Show this screen

scan

Scan directory tree for QA issues (short listing)

fix

Fix simple QA issues (stray digests, missing digests)

manifest

Generate a Manifest (fetches distfiles if necessary). See the --force option if you would like to replace existing distfiles digests.

manifest-check

Check Manifests for missing or incorrect digests

commit

Scan directory tree for QA issues; if OK, commit via cvs

QA

CVS/Entries.IO_error

Attempting to commit, and an IO error was encountered access the Entries file

DEPEND.bad

User-visible ebuilds with bad DEPEND settings (matched against *visible* ebuilds)

DEPEND.badindev

User-visible ebuilds with bad DEPEND settings (matched against *visible* ebuilds) in developing arch

DEPEND.badmasked

Masked ebuilds with bad DEPEND settings (matched against *all* ebuilds)

DEPEND.badmaskedindev

Masked ebuilds with bad DEPEND settings (matched against *all* ebuilds) in developing arch

DEPEND.badtilde

DEPEND uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)

DEPEND.syntax

Syntax error in DEPEND (usually an extra/missing space/parenthesis)

DESCRIPTION.missing

Ebuilds that have a missing or empty DESCRIPTION variable

EAPI.definition

EAPI is defined after an inherit call (must be defined before)

EAPI.deprecated

Ebuilds that use features that are deprecated in the current EAPI

EAPI.incompatible

Ebuilds that use features that are only available with a different EAPI

EAPI.unsupported

Ebuilds that have an unsupported EAPI version (you must upgrade portage)

HOMEPAGE.missing

Ebuilds that have a missing or empty HOMEPAGE variable

HOMEPAGE.virtual

Virtuals that have a non-empty HOMEPAGE variable

IUSE.invalid

This ebuild has a variable in IUSE that is not in the use.desc or its metadata.xml file

IUSE.missing

This ebuild has a USE conditional which references a flag that is not listed in IUSE

IUSE.undefined

This ebuild does not define IUSE (style guideline says to define IUSE even when empty)

KEYWORDS.dropped

Ebuilds that appear to have dropped KEYWORDS for some arch

KEYWORDS.invalid

This ebuild contains KEYWORDS that are not listed in profiles/arch.list or for which no valid profile was found

KEYWORDS.missing

Ebuilds that have a missing or empty KEYWORDS variable

KEYWORDS.stable

Ebuilds that have been added directly with stable KEYWORDS

KEYWORDS.stupid

Ebuilds that use KEYWORDS=-* instead of package.mask

LICENSE.invalid

This ebuild is listing a license that doesnt exist in portages license/ dir.

LICENSE.missing

Ebuilds that have a missing or empty LICENSE variable

LICENSE.syntax

Syntax error in LICENSE (usually an extra/missing space/parenthesis)

LICENSE.virtual

Virtuals that have a non-empty LICENSE variable

LIVEVCS.stable

Ebuild is a live ebuild (cvs, git, darcs, svn, etc) checkout with stable keywords.

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.

PDEPEND.bad

User-visible ebuilds with bad PDEPEND settings (matched against *visible* ebuilds)

PDEPEND.badindev

User-visible ebuilds with bad PDEPEND settings (matched against *visible* ebuilds) in developing arch

PDEPEND.badmasked

Masked ebuilds with PDEPEND settings (matched against *all* ebuilds)

PDEPEND.badmaskedindev

Masked ebuilds with PDEPEND settings (matched against *all* ebuilds) in developing arch

PDEPEND.badtilde

PDEPEND uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)

PDEPEND.suspect

PDEPEND contains a package that usually only belongs in DEPEND

PDEPEND.syntax

Syntax error in PDEPEND (usually an extra/missing space/parenthesis)

PROVIDE.syntax

Syntax error in PROVIDE (usually an extra/missing space/parenthesis)

RDEPEND.bad

User-visible ebuilds with bad RDEPEND settings (matched against *visible* ebuilds)

RDEPEND.badindev

User-visible ebuilds with bad RDEPEND settings (matched against *visible* ebuilds) in developing arch

RDEPEND.badmasked

Masked ebuilds with RDEPEND settings (matched against *all* ebuilds)

RDEPEND.badmaskedindev

Masked ebuilds with RDEPEND settings (matched against *all* ebuilds) in developing arch

RDEPEND.badtilde

RDEPEND uses the ~ dep operator with a non-zero revision part, which is useless (the revision is ignored)

RDEPEND.implicit

RDEPEND is unset in the ebuild which triggers implicit RDEPEND=$DEPEND assignment (prior to EAPI 4)

RDEPEND.suspect

RDEPEND contains a package that usually only belongs in DEPEND

RDEPEND.syntax

Syntax error in RDEPEND (usually an extra/missing space/parenthesis)

PROPERTIES.syntax

Syntax error in PROPERTIES (usually an extra/missing space/parenthesis)

RESTRICT.syntax

Syntax error in RESTRICT (usually an extra/missing space/parenthesis) SLOT.invalid Ebuilds that have a missing or invalid SLOT variable value

SRC_URI.mirror

A uri listed in profiles/thirdpartymirrors is found in SRC_URI

changelog.ebuildadded

An ebuild was added but the ChangeLog was not modified

changelog.missing

Missing ChangeLog files

changelog.notadded

ChangeLogs that exist but have not been added to cvs

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)

digest.assumed

Existing digest must be assumed correct (Package level only)

digest.missing

Some files listed in SRC_URI aren't referenced in the Manifest

digest.unused

Some files listed in the Manifest aren't referenced in SRC_URI

ebuild.allmasked

All ebuilds are masked for this package (Package level only)

ebuild.badheader

This ebuild has a malformed header

ebuild.invalidname

Ebuild files with a non-parseable or syntactically incorrect name (or using 2.1 versioning extensions)

ebuild.majorsyn

This ebuild has a major syntax error that may cause the ebuild to fail partially or fully

ebuild.minorsyn

This ebuild has a minor syntax error that contravenes gentoo coding style

ebuild.namenomatch

Ebuild files that do not have the same name as their parent directory

ebuild.nesteddie

Placing 'die' inside ( ) prints an error, but doesn't stop the ebuild.

ebuild.nostable

There are no ebuilds that are marked as stable for your ARCH

ebuild.notadded

Ebuilds that exist but have not been added to cvs

ebuild.output

A simple sourcing of the ebuild produces output; this breaks ebuild policy.

ebuild.patches

PATCHES variable should be a bash array to ensure white space safety

ebuild.syntax

Error generating cache entry for ebuild; typically caused by ebuild syntax error or digest verification failure.

eprefixify.defined

The ebuild uses eprefixify, but does not inherit the prefix eclass

file.UTF8

File is not UTF8 compliant

file.executable

Ebuilds, digests, metadata.xml, Manifest, and ChangeLog do not need the executable bit

file.name

File/dir name must be composed of only the following chars: a-zA-Z0-9._-+:

file.size

Files in the files directory must be under 20k

inherit.autotools

Ebuild inherits autotools but does not call eautomake, eautoconf or eautoreconf

inherit.deprecated

Ebuild inherits a deprecated eclass

java.eclassesnotused

With virtual/jdk in DEPEND you must inherit a java eclass. Refer to http://www.gentoo.org/proj/en/java/java-devel.xml for more information.

manifest.bad

Manifest has missing or incorrect digests

metadata.bad

Bad metadata.xml files

metadata.missing

Missing metadata.xml files

metadata.warning

Warnings in metadata.xml files

portage.internal

The ebuild uses an internal Portage function

upstream.workaround

The ebuild works around an upstream bug, an upstream bug should be filed and tracked in bugs.gentoo.org

usage.obsolete

The ebuild makes use of an obsolete construct

variable.invalidchar

A variable contains an invalid character that is not part of the ASCII character set.

variable.readonly

Assigning a readonly variable

variable.usedwithhelpers

Ebuild uses D, ROOT, ED, EROOT or EPREFIX with helpers

virtual.oldstyle

The ebuild PROVIDEs an old-style virtual (see GLEP 37)

wxwidgets.eclassnotused

Ebuild DEPENDs on x11-libs/wxGTK without inheriting wxwidgets.eclass. Refer to bug #305469 for more information.

REPORTING BUGS

Please report bugs via http://bugs.gentoo.org/

AUTHORS

SEE ALSO

emerge(1)

Oct 2011

Thank you!