diff options
authorZac Medico <zmedico@gentoo.org>2012-09-11 21:26:49 -0700
committerZac Medico <zmedico@gentoo.org>2012-09-11 21:30:52 -0700
commit5645c4390128c0a174290d9727195b97a894088e (patch)
parentOnly validate .desktop files that are installed into XDG-compliant locations. (diff)
Add EAPI 5_pre2 with features approved by council
In the 9/11 council meeting, they approved everything in EAPI 5_pre1 except user patches. So, add EAPI 5_pre2 which is identical to EAPI 5_pre1 but with user patches (apply_user_patches) support removed.
5 files changed, 32 insertions, 63 deletions
diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
index 68a33a871..ad9ba6bb0 100644
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@ -372,7 +372,11 @@ dyn_prepare() {
die "The source directory '${S}' doesn't exist"
- rm -f "${PORTAGE_BUILDDIR}/.apply_user_patches" || die
+ case "${EAPI}" in
+ 5_pre1)
+ rm -f "${PORTAGE_BUILDDIR}/.apply_user_patches" || die
+ ;;
+ esac
trap abort_prepare SIGINT SIGQUIT
@@ -384,9 +388,7 @@ dyn_prepare() {
vecho ">>> Source prepared."
ebuild_phase post_src_prepare
case "${EAPI}" in
- 0|1|2|3|4|4-python|4-slot-abi)
- ;;
- *)
+ 5_pre1)
[[ ! -f ${PORTAGE_BUILDDIR}/.apply_user_patches ]] && \
die "src_prepare must call apply_user_patches at least once"
@@ -815,9 +817,7 @@ _ebuild_phase_funcs() {
[[ $phase_func = src_install ]] && \
eval "default() { _eapi4_$phase_func \"\$@\" ; }"
case "$eapi" in
- 4|4-python|4-slot-abi)
- ;;
- *)
+ 5_pre1)
! declare -F src_prepare >/dev/null && \
src_prepare() { _eapi5_src_prepare "$@" ; }
default_src_prepare() { _eapi5_src_prepare "$@" ; }
diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
index bb5e057a7..0250aca96 100644
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@ -638,10 +638,6 @@ _eapi5_src_prepare() {
-apply_user_patches() {
- die "apply_user_patches is not supported with EAPI ${EAPI}"
_eapi5_apply_user_patches() {
[[ ${EBUILD_PHASE} == prepare ]] || \
die "apply_user_patches may only be called during src_prepare"
diff --git a/doc/package/ebuild/eapi/5.docbook b/doc/package/ebuild/eapi/5.docbook
index 0894eba2a..c910092c6 100644
--- a/doc/package/ebuild/eapi/5.docbook
+++ b/doc/package/ebuild/eapi/5.docbook
@@ -1,8 +1,8 @@
-<section id='package-ebuild-eapi-5_pre1'>
-<title>EAPI 5_pre1</title>
-<section id='package-ebuild-eapi-5_pre1-metadata'>
+<section id='package-ebuild-eapi-5_pre2'>
+<title>EAPI 5_pre2</title>
+<section id='package-ebuild-eapi-5_pre2-metadata'>
-<section id='package-ebuild-eapi-5_pre1-metadata-required-use-at-most-one-of'>
+<section id='package-ebuild-eapi-5_pre2-metadata-required-use-at-most-one-of'>
<title>REQUIRED_USE supports new at-most-one-of operator</title>
The new at-most-one-of operator consists of the string '??',
@@ -10,7 +10,7 @@ and is satisfied if zero or one (but no more) of its child
elements is matched.
-<section id='package-ebuild-eapi-5_pre1-metadata-slot-sub-slot'>
+<section id='package-ebuild-eapi-5_pre2-metadata-slot-sub-slot'>
<title>SLOT supports optional "sub-slot" part</title>
The SLOT variable may contain an optional sub-slot part that
@@ -24,11 +24,11 @@ implicit sub-slot which is equal to the regular slot.
Refer to the
-<link linkend="package-ebuild-eapi-5_pre1-metadata-dependency-atom-slot-operators">
+<link linkend="package-ebuild-eapi-5_pre2-metadata-dependency-atom-slot-operators">
slot operators</link> documentation for more information about sub-slot usage.
-<section id='package-ebuild-eapi-5_pre1-metadata-dependency-atom-slot-operators'>
+<section id='package-ebuild-eapi-5_pre2-metadata-dependency-atom-slot-operators'>
<title>Dependency atom slot operators</title>
A slot dependency may contain an optional sub-slot part that
@@ -70,9 +70,9 @@ the regular slot).
-<section id='package-ebuild-eapi-5_pre1-profile'>
+<section id='package-ebuild-eapi-5_pre2-profile'>
-<section id='package-ebuild-eapi-5_pre1-profile-iuse-injection'>
+<section id='package-ebuild-eapi-5_pre2-profile-iuse-injection'>
<title>Profile IUSE Injection</title>
IUSE_EFFECTIVE is a variable calculated from IUSE and
@@ -156,7 +156,7 @@ equivalent of ${v}.
-<section id='package-ebuild-eapi-5_pre1-profile-stable-use-masking'>
+<section id='package-ebuild-eapi-5_pre2-profile-stable-use-masking'>
<title>Profile stable USE forcing and masking</title>
In profile directories with an EAPI supporting stable masking,
@@ -168,29 +168,29 @@ only influence packages that are merged due to a stable keyword.
-<section id='package-ebuild-eapi-5_pre1-helpers'>
+<section id='package-ebuild-eapi-5_pre2-helpers'>
-<section id='package-ebuild-eapi-5_pre1-helpers-econf-disable-silent-rules'>
+<section id='package-ebuild-eapi-5_pre2-helpers-econf-disable-silent-rules'>
<title>econf adds --disable-silent-rules</title>
This option will automatically be passed if
--disable-silent-rules occurs in the output of configure --help.
-<section id='package-ebuild-eapi-5_pre1-helpers-newfoo-stdin'>
+<section id='package-ebuild-eapi-5_pre2-helpers-newfoo-stdin'>
<title>new* commands can read from standard input</title>
Standard input is read when the first parameter is - (a hyphen).
-<section id='package-ebuild-eapi-5_pre1-helpers-foo-version-host-root'>
+<section id='package-ebuild-eapi-5_pre2-helpers-foo-version-host-root'>
<title>New option --host-root for {has,best}_version</title>
This option --host-root will cause the query to apply to the
host root instead of ROOT.
-<section id='package-ebuild-eapi-5_pre1-helpers-doheader'>
+<section id='package-ebuild-eapi-5_pre2-helpers-doheader'>
<title>New doheader helper function</title>
Installs the given header files into /usr/include/, by default
@@ -198,7 +198,7 @@ with file mode 0644. This can be overridden by setting
INSOPTIONS with the insopts function.
-<section id='package-ebuild-eapi-5_pre1-helpers-usex'>
+<section id='package-ebuild-eapi-5_pre2-helpers-usex'>
<title>New usex helper function</title>
USAGE: usex &lt;USE flag&gt; [true output] [false output] [true suffix] [false suffix]
@@ -207,38 +207,10 @@ DESCRIPTION:
otherwise echo [false output][false suffix] (defaults to "no").
-<section id='package-ebuild-eapi-5_pre1-helpers-apply-user-patches'>
-<title>New apply_user_patches helper function</title>
-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.
-<section id='package-ebuild-eapi-5_pre1-phases'>
+<section id='package-ebuild-eapi-5_pre2-phases'>
-<section id='package-ebuild-eapi-5_pre1-phases-src-prepare-user-patches'>
-<title>src_prepare must call apply_user_patches</title>
-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
-<link linkend="package-ebuild-eapi-5_pre1-helpers-apply-user-patches">
-apply_user_patches section</link> for additional usage
-<section id='package-ebuild-eapi-5_pre1-phases-src-test-parallel'>
+<section id='package-ebuild-eapi-5_pre2-phases-src-test-parallel'>
<title>src_test supports parallel tests</title>
Unlike older EAPIs, the default src_test implementation will not
@@ -246,9 +218,9 @@ pass the -j1 option to emake.
-<section id='package-ebuild-eapi-5_pre1-ebuild-environment-variables'>
+<section id='package-ebuild-eapi-5_pre2-ebuild-environment-variables'>
<title>Ebuild Environment Variables</title>
-<section id='package-ebuild-eapi-5_pre1-ebuild-environment-variables-ebuild-phase-func'>
+<section id='package-ebuild-eapi-5_pre2-ebuild-environment-variables-ebuild-phase-func'>
<title>New EBUILD_PHASE_FUNC variable</title>
During execution of an ebuild phase function (such as pkg_setup
diff --git a/man/emerge.1 b/man/emerge.1
index 36e346996..679349054 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -1,4 +1,4 @@
-.TH "EMERGE" "1" "Jun 2012" "Portage VERSION" "Portage"
+.TH "EMERGE" "1" "Sep 2012" "Portage VERSION" "Portage"
emerge \- Command\-line interface to the Portage system
@@ -490,7 +490,7 @@ Ignore the slot/sub\-slot := operator parts of dependencies that have
been recorded when packages where built. This option is intended
only for debugging purposes, and it only affects built packages
that specify slot/sub\-slot := operator dependencies using the
-experimental "4\-slot\-abi" or "5_pre1" EAPIs.
+experimental "4\-slot\-abi", "5_pre1", or "5_pre2" EAPIs.
.BR "-j [JOBS], \-\-jobs[=JOBS]"
Specifies the number of packages to build simultaneously. If this option is
@@ -651,7 +651,8 @@ operator dependencies can be satisfied by a newer slot, so that
older packages slots will become eligible for removal by the
\-\-depclean action as soon as possible. This option only
affects packages that specify slot/sub\-slot := dependencies using the
-experimental "4\-slot\-abi" or "5_pre1" EAPIs. Since this option requires
+experimental "4\-slot\-abi", "5_pre1", or "5_pre1" EAPIs
+Since this option requires
checking of reverse dependencies, it enables \-\-complete\-graph
mode whenever a new slot is installed. This option is enabled by
diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py
index b2ce70785..43c5af30e 100644
--- a/pym/portage/__init__.py
+++ b/pym/portage/__init__.py
@@ -408,7 +408,7 @@ def abssymlink(symlink, target=None):
_doebuild_manifest_exempt_depend = 0
-_testing_eapis = frozenset(["4-python", "4-slot-abi", "5_pre1"])
+_testing_eapis = frozenset(["4-python", "4-slot-abi", "5_pre1", "5_pre2"])
_deprecated_eapis = frozenset(["4_pre1", "3_pre2", "3_pre1"])
def _eapi_is_deprecated(eapi):