From 5ee56de8face6f6beba803d3c583c9c9f3d9fd21 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sat, 1 Sep 2012 19:37:15 -0700 Subject: Document EAPI 5_pre1. --- doc/package/ebuild.docbook | 1 + doc/package/ebuild/eapi/5.docbook | 260 ++++++++++++++++++++++++++++++++++++++ doc/portage.docbook | 1 + 3 files changed, 262 insertions(+) create mode 100644 doc/package/ebuild/eapi/5.docbook (limited to 'doc') diff --git a/doc/package/ebuild.docbook b/doc/package/ebuild.docbook index ba146ca99..e268a3d11 100644 --- a/doc/package/ebuild.docbook +++ b/doc/package/ebuild.docbook @@ -11,5 +11,6 @@ &package_ebuild_eapi_4; &package_ebuild_eapi_4_python; &package_ebuild_eapi_4_slot_abi; +&package_ebuild_eapi_5; diff --git a/doc/package/ebuild/eapi/5.docbook b/doc/package/ebuild/eapi/5.docbook new file mode 100644 index 000000000..0894eba2a --- /dev/null +++ b/doc/package/ebuild/eapi/5.docbook @@ -0,0 +1,260 @@ +
+EAPI 5_pre1 +
+Metadata +
+REQUIRED_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). + +
+
+
+Profiles +
+Profile 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 Settings + + + + + +Variable +Value + + + + +IUSE_IMPLICIT +prefix selinux + + +USE_EXPAND +ELIBC KERNEL USERLAND + + +USE_EXPAND_UNPREFIXED +ARCH + + +USE_EXPAND_IMPLICIT +ARCH ELIBC KERNEL USERLAND + + +USE_EXPAND_VALUES_ARCH +amd64 ppc ppc64 x86 x86-fbsd x86-solaris + + +USE_EXPAND_VALUES_ELIBC +FreeBSD glibc + + +USE_EXPAND_VALUES_KERNEL +FreeBSD linux SunOS + + +USE_EXPAND_VALUES_USERLAND +BSD 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. + +
+
+
+Helpers +
+econf 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. + +
+
+
+Phases +
+src_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 Variables +
+New 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. + +
+
+
diff --git a/doc/portage.docbook b/doc/portage.docbook index 781915cbb..f5803141e 100644 --- a/doc/portage.docbook +++ b/doc/portage.docbook @@ -22,6 +22,7 @@ + -- cgit v1.2.3-65-gdbad