Add EAPI 5_pre2 with features approved by council
authorZac Medico <zmedico@gentoo.org>
Wed, 12 Sep 2012 04:26:49 +0000 (21:26 -0700)
committerZac Medico <zmedico@gentoo.org>
Wed, 12 Sep 2012 04:30:52 +0000 (21:30 -0700)
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.

bin/phase-functions.sh
bin/phase-helpers.sh
doc/package/ebuild/eapi/5.docbook
man/emerge.1
pym/portage/__init__.py

index 68a33a87145297b2032e7f3874488b62a6740e8e..ad9ba6bb0c2ef4be88c33a25b4e703903a0f98f3 100644 (file)
@@ -372,7 +372,11 @@ dyn_prepare() {
        else
                die "The source directory '${S}' doesn't exist"
        fi
-       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 "$@" ; }
index bb5e057a7e07f3a9ae862bc2ba2ce7bee0ab1998..0250aca96178cb644a87b00ba6a82e1252fd4a52 100644 (file)
@@ -638,10 +638,6 @@ _eapi5_src_prepare() {
        apply_user_patches
 }
 
-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"
index 0894eba2a827cac9d076e7e3cdc908a6ef0f3902..c910092c6831a89b643cee58324fb1ca33da592a 100644 (file)
@@ -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'>
 <title>Metadata</title>
-<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>
 <para>
 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.
 </para>
 </section>
-<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>
 <para>
 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.
 </para>
 <para>
 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.
 </para>
 </section>
-<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>
 <para>
 A slot dependency may contain an optional sub-slot part that
@@ -70,9 +70,9 @@ the regular slot).
 </para>
 </section>
 </section>
-<section id='package-ebuild-eapi-5_pre1-profile'>
+<section id='package-ebuild-eapi-5_pre2-profile'>
 <title>Profiles</title>
-<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>
 <para>
 IUSE_EFFECTIVE is a variable calculated from IUSE and
@@ -156,7 +156,7 @@ equivalent of ${v}.
 </table>
 </para>
 </section>
-<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>
 <para>
 In profile directories with an EAPI supporting stable masking,
@@ -168,29 +168,29 @@ only influence packages that are merged due to a stable keyword.
 </para>
 </section>
 </section>
-<section id='package-ebuild-eapi-5_pre1-helpers'>
+<section id='package-ebuild-eapi-5_pre2-helpers'>
 <title>Helpers</title>
-<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>
 <para>
 This option will automatically be passed if
 --disable-silent-rules occurs in the output of configure --help.
 </para>
 </section>
-<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>
 <para>
 Standard input is read when the first parameter is - (a hyphen).
 </para>
 </section>
-<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>
 <para>
 This option --host-root will cause the query to apply to the
 host root instead of ROOT.
 </para>
 </section>
-<section id='package-ebuild-eapi-5_pre1-helpers-doheader'>
+<section id='package-ebuild-eapi-5_pre2-helpers-doheader'>
 <title>New doheader helper function</title>
 <para>
 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.
 </para>
 </section>
-<section id='package-ebuild-eapi-5_pre1-helpers-usex'>
+<section id='package-ebuild-eapi-5_pre2-helpers-usex'>
 <title>New usex helper function</title>
 <programlisting>
 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").
 </programlisting>
 </section>
-<section id='package-ebuild-eapi-5_pre1-helpers-apply-user-patches'>
-<title>New apply_user_patches helper function</title>
-<para>
-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.
-</para>
 </section>
-</section>
-<section id='package-ebuild-eapi-5_pre1-phases'>
+<section id='package-ebuild-eapi-5_pre2-phases'>
 <title>Phases</title>
-<section id='package-ebuild-eapi-5_pre1-phases-src-prepare-user-patches'>
-<title>src_prepare must call apply_user_patches</title>
-<para>
-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
-instructions.
-</para>
-</section>
-<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>
 <para>
 Unlike older EAPIs, the default src_test implementation will not
@@ -246,9 +218,9 @@ pass the -j1 option to emake.
 </para>
 </section>
 </section>
-<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>
 <para>
 During execution of an ebuild phase function (such as pkg_setup
index 36e3469967c19918cbe80ed9024e20241b11281c..6793490543d4b9ec17f619546b2953ffad536b5f 100644 (file)
@@ -1,4 +1,4 @@
-.TH "EMERGE" "1" "Jun 2012" "Portage VERSION" "Portage"
+.TH "EMERGE" "1" "Sep 2012" "Portage VERSION" "Portage"
 .SH "NAME"
 emerge \- Command\-line interface to the Portage system
 .SH "SYNOPSIS"
@@ -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.
 .TP
 .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
 default.
index b2ce7078503aa82694a832f4ad711c0ab013fbe2..43c5af30ec60f3088c8618ca43160d6005d1debd 100644 (file)
@@ -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):