Gentoo Development Guide
Using Eclasses
An eclass is a collection (library) of functions or functionality that is shared between packages. See Eclass Writing Guide for the full story on what eclasses can do, how they work and how to write them, and for documentation on various commonly used eclasses. This section only explains how to use an eclass which has already been written.
The inherit Function
To use an eclass, it must be 'inherited'. This is done via the inherit
function, which is provided by ebuild.sh. The inherit statement must
come at the top of the ebuild, before any functions. Conditional inherits are
illegal (except where the inheritance criteria are cache-constant
—
see The Portage Cache).
After inheriting an eclass, its provided functions can be used as normal. Here'san example ebuild, foomatic-0.1-r2.ebuild, which uses four eclasses:
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="2"
inherit eutils bash-completion flag-o-matic autotools
DESCRIPTION="Tool for foo"
HOMEPAGE="http://foomatic.sf.net"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="alpha ~amd64 ~x86 ~x86-fbsd"
RDEPEND=">=sys-libs/ncurses-5.2
>=sys-libs/readline-4.1"
DEPEND="${RDEPEND}"
src_prepare() {
epatch "${FILESDIR}/${P}-gentoo.patch"
eautoreconf
}
src_configure() {
econf --sysconfdir=/etc/devtodo
}
src_compile() {
replace-flags -O? -O1
emake || die "emake failed"
}
src_install() {
emake DESTDIR="${D}" install || die "emake install failed"
dodoc AUTHORS ChangeLog README TODO || die "dodoc failed"
dobashcompletion "${FILESDIR}/${PN}.bash-completion" ${PN}
}
Note the inherit immediately after the header.
The eutils eclass (see ) is needed to get the
epatch function. The flag-o-matic eclass (see ) is needed for replace-flags, and
the bash-completion eclass () is used
to handle the bash completion file via dobashcompletion and bash-completion_pkg_postinst.