commit: dc45ef4f246cf360e9e67ec0fdfa87749bf1f67d
Author: Markus Meier <maekke <AT> gentoo <DOT> org>
AuthorDate: Thu Nov 19 20:37:34 2015 +0000
Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Mon Feb 15 12:09:02 2016 +0000
URL: https://gitweb.gentoo.org/proj/devmanual.git/commit/?id=dc45ef4f
describe EAPI=6 in EAPI Usage and Description page
This is based on PMS and it's cheat sheet
ebuild-writing/eapi/text.xml | 135 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 135 insertions(+)
diff --git a/ebuild-writing/eapi/text.xml b/ebuild-writing/eapi/text.xml
index 4cf6133..376089a 100644
--- a/ebuild-writing/eapi/text.xml
+++ b/ebuild-writing/eapi/text.xml
@@ -858,6 +858,141 @@ If USE flag is set, echo [true output][true suffix]
(defaults to "yes"),
</body>
</section>
+<section>
+<title>EAPI=6</title>
+<body>
+
+<subsection>
+<title>Bash version</title>
+<body>
+<p>Ebuilds can use features of Bash version 4.2 (was 3.2 before).</p>
+</body>
+</subsection>
+
+<subsection>
+<title>Ebuild environment</title>
+<body>
+<ul>
+ <li>
+ <p><b>Locale settings</b></p>
+ <p>It is ensured that the behaviour of case modification and
collation order for ASCII characters (<c>LC_CTYPE</c> and <c>LC_COLLATE</c>)
are the same as in the POSIX locale.</p>
+ </li>
+ <li>
+ <p><b><c>failglob</c> enabled</b></p>
+ <p>
+ The <c>failglob</c> option of Bash is set in global scope, so
that unintentional pattern expansion will be caught as an error.
+ </p>
+ </li>
+</ul>
+</body>
+</subsection>
+
+<subsection>
+<title>Phases</title>
+<body>
+<ul>
+ <li>
+ <p><b>New <c>src_prepare</c> Phase Function</b></p>
+ <p>
+ This phase is no longer a no-op, it supports applying
patches via the <c>PATCHES</c> variable and applying user patches via
<c>eaply_user</c>. The default <c>src_prepare</c> looks like this:
+ <codesample lang="ebuild">
+src_prepare() {
+ if declare -p PATCHES | grep -q "^declare -a "; then
+ [[ -n ${PATCHES[@]} ]] && eapply "${PATCHES[@]}"
+ else
+ [[ -n ${PATCHES} ]] && eapply ${PATCHES}
+ fi
+ eapply_user
+}
+ </codesample>
+ </p>
+ </li>
+ <li>
+ <p><b>New <c>src_install</c> Phase Function</b></p>
+ <p>
+ This phase uses the new <c>einstalldocs</c> function
for installation of documentation. The default <c>src_install</c> looks like
this:
+ <codesample lang="ebuild">
+src_install() {
+ if [[ -f Makefile ]] || [[ -f GNUmakefile ]] || [[ -f makefile ]]; then
+ emake DESTDIR="${D}" install
+ fi
+ einstalldocs
+}
+ </codesample>
+ </p>
+ </li>
+</ul>
+</body>
+</subsection>
+
+<subsection>
+<title>Helpers</title>
+<body>
+<ul>
+ <li>
+ <p><b><c>einstall</c> banned</b></p>
+ <p>
+ The <c>einstall</c> helper has been banned with
<c>EAPI=6</c>.
+ </p>
+ </li>
+ <li>
+ <p><b><c>nonfatal die</c></b></p>
+ <p>
+ When <c>die</c> or <c>assert</c> are called under the
<c>nonfatal</c> command and with the <c>-n</c> option, they will not abort the
build process but return with an error.
+ </p>
+ </li>
+ <li>
+ <p><b><c>eapply</c> support</b></p>
+ <p>
+ The <c>eapply</c> command is a simplified substitute
for <c>epatch</c> (from <c>eutils.eclass</c>), implemented in the package
manager. The patches from its file or directory arguments are applied using
patch <c>-p1</c>.
+ </p>
+ </li>
+ <li>
+ <p><b><c>eapply_user</c> support</b></p>
+ <p>
+ The <c>eapply_user</c> command permits the package
manager to apply user-provided patches. It must be called from every
<c>src_prepare</c> function.
+ </p>
+ </li>
+ <li>
+ <p><b><c>econf</c> adds <c>--docdir</c> and
<c>--htmldir</c></b></p>
+ <p>
+ Options <c>--docdir</c> and <c>--htmldir</c> are passed
to <c>configure</c>, in addition to the existing options.
+ </p>
+ </li>
+ <li>
+ <p><b><c>in_iuse</c> support</b></p>
+ <p>
+ The <c>in_iuse</c> function returns <c>true</c> if the
<c>USE</c> flag given as its argument is available in the ebuild for <c>USE</c>
queries.
+ </p>
+ </li>
+ <li>
+ <p><b><c>unpack</c> changes</b></p>
+ <ul>
+ <li><p><c>unpack</c> supports absolute and relative
paths.</p></li>
+ <li><p><c>unpack</c> supports <c>.txz</c> (xz
compressed tarball).</p></li>
+ <li><p><c>unpack</c> matches filename extensions
case-insensitively.</p></li>
+ </ul>
+ </li>
+ <li>
+ <p><b><c>einstalldocs</c> support</b></p>
+ <p>
+ The <c>einstalldocs</c> function will in-stall the
files specified by the <c>DOCS</c> variable (or a default set of files if
<c>DOCS</c> is unset) and by the <c>HTML_DOCS</c> variable.
+ </p>
+ </li>
+ <li>
+ <p><b><c>get_libdir</c> support</b></p>
+ <p>
+ The <c>get_libdir</c> command outputs the <c>lib*</c>
directory basename suitable for the current ABI.
+ </p>
+ </li>
+</ul>
+</body>
+</subsection>
+
+
+</body>
+</section>
+
</body>
</chapter>
</guide>