EAPI 4_pre1
Helpers
Removed dohard and dosed
The dohard and dosed helpers from previous EAPIs are no longer available.
All helpers die on failure
All helpers now die automatically whenever some sort of error occurs.
Helper calls may be prefixed with the 'nonfatal' helper in order
to prevent errors from being fatal.
dodoc -r
The dodoc helper now has a -r option which enables recursion.
doins and newins preserve symlinks
The doins and newins helpers now preserve symlinks. In earlier EAPIs
symlinks are dereferenced rather than preserved.
doman -i18n option takes precedence over filename language suffix
When the doman helper is called with the -i18n option, this takes precedence
over the filename language suffix.
econf adds --disable-dependency-tracking
The econf helper now adds --disable-dependency-tracking to the
configure arguments.
Phases
New pkg_pretend Phase Function
The pkg_pretend function may be used to carry out sanity checks early on in the
install process. For example, if an ebuild requires a particular kernel
configuration, it may perform that check in pkg_pretend and call eerror and
then die with appropriate messages if the requirement is not met.
pkg_pretend is run separately from the main phase function sequence, and does
not participate in any kind of environment saving. There is no guarantee that
any of an ebuild's dependencies will be met at this stage, and no guarantee
that the system state will not have changed substantially before the next phase
is executed.
pkg_pretend must not write to the filesystem.
Default src_install no longer a no-op
src_install() {
if [[ -f Makefile || -f GNUmakefile || -f makefile ]] ; then
emake DESTDIR="${D}" install
fi
if [[ -z $DOCS ]] ; then
local d
for d in README* ChangeLog AUTHORS NEWS TODO CHANGES \
THANKS BUGS FAQ CREDITS CHANGELOG ; do
[[ -s "${d}" ]] && dodoc "${d}"
done
elif [[ $(declare -p DOCS) == "declare -a "* ]] ; then
dodoc "${DOCS[@]}"
else
dodoc ${DOCS}
fi
}
S to WORKDIR fallback restricted
For any of the src_* phases that executes after src_unpack,
it is invalid for the S variable to refer to a non-existent
directory. However, these src_* phases are exempt from this
requirement if none of the prior src_* phases are defined by the
ebuild. When a src_* phase is exempt from this requirement, if the
S variable does not refer to an existing directory, the
WORKDIR directory will be used instead of S as the initial working
directory.
Variables
AA and KV variables are no longer exported
The AA and KV variables are no longer exported to the ebuild environment.
REPLACING_VERSIONS and REPLACED_BY_VERSION
The REPLACING_VERSIONS variable
shall be defined in pkg_preinst and pkg_postinst. In addition, it may be
defined in pkg_pretend and pkg_setup, although ebuild authors should take care
to handle binary package creation and installation correctly when using it in
these phases.
REPLACING_VERSIONS is a list, not a single optional value, to handle
pathological cases such as installing foo-2:2 to replace foo-2:1 and foo-3:2.
The REPLACED_BY variable shall
be defined in pkg_prerm and pkg_postrm. It shall contain at most one value.