EAPI
An EAPI is a concept about Gentoo Linux package manager and ebuild file.
An EAPI http://article.gmane.org/gmane.linux.gentoo.devel/53504 is a named set of rules telling a package manager how to deal with a particular ebuild and related files, and telling ebuilds upon what they may or may not rely from the package manager. It defines aspects of package manager / ebuild relation including metadata, environment and additional behavioural restrictions.
Contents |
Characteristics
EAPI names are not orderable and have no meaning to the package manager other than their literal value.
EAPIs may be entirely incompatible with each other, or they may be mere extensions of a different EAPI, or they may be a subset of a different EAPI, or any combination thereof.
A cat/pkg-ver has exactly one EAPI. That EAPI belongs to the cat/pkg-ver as a whole, and is static across that cat/pkg-ver.
EAPI is part of a cat/pkg-ver's metadata. All existing EAPIs require that EAPI follows the environment invariancy rules.
If a package manager does not support a particular EAPI, the only thing it may assume is that it does not support that particular EAPI. It may not assume that it knows what any aspect of that cat/pkg-ver's metadata is, nor may it assume that it knows what cat, pkg or ver are.
Implementations
EAPI 0
EAPI 1
EAPI 1 adds 3 additional features based on EAPI 0:
- SLOT dependencies http://bugs.gentoo.org/show_bug.cgi?id=174405
- IUSE defaults http://bugs.gentoo.org/show_bug.cgi?id=174410
- ECONF_SOURCE support for the default src_compile function http://bugs.gentoo.org/show_bug.cgi?id=179380
EAPI 2
EAPI 2 adds a few additional features based on EAPI 1:
- SRC_URI arrows
- This fixes the negative effects of poorly named download URL and renames the file before saving to the local DISTFILES directory.
- Example:
SRC_URI="http://dl.google.com/earth/client/current/GoogleEarthLinux.bin -> GoogleEarthLinux-${PV}.bin"- Use dependencies
- ! and !! blockers
- ! blocker means the package should be uninstalled after the build.
- !! blocker means the package shouldn't be installed during the build.
- src_prepare
- New phase function called directly after src_unpack. This is a convenience function to allow patches to be applied (and possibly other things) to happen before src_configure is called.
- Default is blank.
- src_configure
- New phase function which basically splits the old src_compile in half.
- Defaults to:
src_configure() {
if [[ -x ${ECONF_SOURCE:-.}/configure ]]; then
econf
fi
}- Different src_compile implementation
- Basically the old src_compile without the new src_configure stuff.
- Defaults to:
src_compile() {
if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
emake || die "emake failed"
fi
}- default_ phase functions
- Keeps ebuild developers from needing to type the function they're locally modifying.
- Example:
src_compile() {
default
if useq extras ; then
emake extras || die "splat"
fi
}- doman languages support
- default function
Created by NickStallman.net, Luxury Homes Australia
Real estate agents should list their apartments, townhouses and units in Australia.
