EAPI 5_pre1MetadataREQUIRED_USE supports new at-most-one-of operator
The new at-most-one-of operator consists of the string '??',
and is satisfied if zero or one (but no more) of its child
elements is matched.
SLOT supports optional "sub-slot" part
The SLOT variable may contain an optional sub-slot part that
follows the regular slot and is delimited by a / character.
The sub-slot must be a valid slot name. The sub-slot is used
to represent cases in which an upgrade to a new version of a
package with a different sub-slot may require dependent
packages to be rebuilt. When the sub-slot part is omitted from
the SLOT definition, the package is considered to have an
implicit sub-slot which is equal to the regular slot.
Refer to the
slot operators documentation for more information about sub-slot usage.
Dependency atom slot operators
A slot dependency may contain an optional sub-slot part that
follows the regular slot and is delimited by a / character.
An operator slot dependency consists of a colon followed by
one of the following operators:
* Indicates that any slot value is acceptable. In addition,
for runtime dependencies, indicates that the package will not
break if the matched package is uninstalled and replaced by
a different matching package in a different slot.
= Indicates that any slot value is acceptable. In addition,
for runtime dependencies, indicates that the package will
break unless a matching package with slot and sub-slot equal
to the slot and sub-slot of the best installed version at the
time the package was installed is available.
slot= Indicates that only a specific slot value is acceptable,
and otherwise behaves identically to the plain equals slot
operator.
To implement the equals slot operator, the package manager
will need to store the slot/sub-slot pair of the best installed
version of the matching package. This syntax is only for package
manager use and must not be used by ebuilds. The package manager
may do this by inserting the appropriate slot/sub-slot pair
between the colon and equals sign when saving the package's
dependencies. The sub-slot part must not be omitted here
(when the SLOT variable omits the sub-slot part, the package
is considered to have an implicit sub-slot which is equal to
the regular slot).
ProfilesProfile IUSE Injection
IUSE_EFFECTIVE is a variable calculated from IUSE and
a variety of other sources described below. It is purely
a conceptual variable; it is not exported to the ebuild
environment. Values in IUSE_EFFECTIVE may legally be
used in queries about an ebuild's state (for example, for use
dependencies, for the use function, and for use in dependency
specification conditional blocks).
For EAPIs that support profile defined IUSE injection, IUSE_EFFECTIVE
contains the following values:
All values in the calculated IUSE value.
All values in the profile IUSE_IMPLICIT variable.
All values in the profile variable named USE_EXPAND_VALUES_${v},
where ${v} is any value in the intersection of the profile
USE_EXPAND_UNPREFIXED and USE_EXPAND_IMPLICIT variables.
All values for ${lower_v}_${x}, where ${x} is all values in
the profile variable named USE_EXPAND_VALUES_${v}, where ${v}
is any value in the intersection of the profile USE_EXPAND and
USE_EXPAND_IMPLICIT variables and ${lower_v} is the lowercase
equivalent of ${v}.
Example Variable SettingsVariableValueIUSE_IMPLICITprefix selinuxUSE_EXPANDELIBC KERNEL USERLANDUSE_EXPAND_UNPREFIXEDARCHUSE_EXPAND_IMPLICITARCH ELIBC KERNEL USERLANDUSE_EXPAND_VALUES_ARCHamd64 ppc ppc64 x86 x86-fbsd x86-solarisUSE_EXPAND_VALUES_ELIBCFreeBSD glibcUSE_EXPAND_VALUES_KERNELFreeBSD linux SunOSUSE_EXPAND_VALUES_USERLANDBSD GNU
Profile stable USE forcing and masking
In profile directories with an EAPI supporting stable masking,
new USE configuration files are supported: use.stable.mask,
use.stable.force, package.use.stable.mask and
package.use.stable.force. These files behave similarly to
previously supported USE configuration files, except that they
only influence packages that are merged due to a stable keyword.
Helperseconf adds --disable-silent-rules
This option will automatically be passed if
--disable-silent-rules occurs in the output of configure --help.
new* commands can read from standard input
Standard input is read when the first parameter is - (a hyphen).
New option --host-root for {has,best}_version
This option --host-root will cause the query to apply to the
host root instead of ROOT.
New doheader helper function
Installs the given header files into /usr/include/, by default
with file mode 0644. This can be overridden by setting
INSOPTIONS with the insopts function.
New usex helper function
USAGE: usex <USE flag> [true output] [false output] [true suffix] [false suffix]
DESCRIPTION:
If USE flag is set, echo [true output][true suffix] (defaults to "yes"),
otherwise echo [false output][false suffix] (defaults to "no").
New apply_user_patches helper function
This function is called to indicate to the package manager
that now would be a suitable time to apply any user patches
to the work directory. This function must return zero if it
is possible that any changes were made to the work directory,
and may return non-zero if no changes were made. This function
must be called at least once in src_prepare; if the function
is called more than once, it is expected that any effects that
it has shall only be executed once, and that its return value
shall only be zero once.
Phasessrc_prepare must call apply_user_patches
If the src_prepare function is implemented then it must call
the apply_user_patches function at least once. If src_prepare
does not call apply_user_patches before it returns, then it will
be treated as a fatal error. The default src_prepare
implementation will call apply_user_patches automatically.
Refer to the
apply_user_patches section for additional usage
instructions.
src_test supports parallel tests
Unlike older EAPIs, the default src_test implementation will not
pass the -j1 option to emake.
Ebuild Environment VariablesNew EBUILD_PHASE_FUNC variable
During execution of an ebuild phase function (such as pkg_setup
or src_unpack), the EBUILD_PHASE_FUNC variable will contain the
name of the phase function that is currently executing.