The dohard and dosed helpers from previous EAPIs are no longer available.
</para>
</section>
+<section id='package-ebuild-eapi-4_pre1-helpers-die-nonfatal'>
+<title>All helpers die on failure</title>
+<para>
+All helpers now die automatically whenever some sort of error occurs.
+Helper calls may be prefixed with the 'nonfatal' helper in order
+to prevent errors from being fatal.
+</para>
+</section>
+<section id='package-ebuild-eapi-4_pre1-helpers-docompress'>
+<title>Controllable Compression</title>
+<para>
+In EAPI 4, the package manager may optionally compress
+a subset of the files under the D
+directory. To control which directories may or may not be compressed, the
+package manager shall maintain two lists:
+<itemizedlist>
+<listitem><para>An inclusion list, which initially contains /usr/share/doc, /usr/share/info
+and /usr/share/man.</para></listitem>
+<listitem><para>An exclusion list, which initially contains /usr/share/doc/${PF}/html.</para></listitem>
+</itemizedlist>
+</para>
+<para>
+The optional compression shall be carried out after src_install has completed,
+and before the execution of any subsequent phase function. For each item in the
+inclusion list, pretend it has the value of the D variable prepended, then:
+<itemizedlist>
+<listitem><para>If it is a directory, act as if every file or directory immediately under
+this directory were in the inclusion list.</para></listitem>
+<listitem><para>If the item is a file, it may be compressed unless it has been excluded as
+described below.</para></listitem>
+<listitem><para>If the item does not exist, it is ignored.</para></listitem>
+</itemizedlist>
+</para>
+<para>
+Whether an item is to be excluded is determined as follows: For each item in
+the exclusion list, pretend it has the value of the D variable prepended, then:
+<itemizedlist>
+<listitem><para>If it is a directory, act as if every file or directory immediately under
+this directory were in the exclusion list.</para></listitem>
+<listitem><para>If the item is a file, it shall not be compressed.</para></listitem>
+<listitem><para>If the item does not exist, it is ignored.</para></listitem>
+</itemizedlist>
+</para>
+<para>
+The package manager shall take appropriate steps to ensure that its compression
+mechanisms behave sensibly even if an item is listed in the inclusion list
+multiple times, if an item is a symlink, or if a file is already compressed.
+</para>
+<para>
+The following commands may be used in src_install to alter these lists. It is
+an error to call any of these functions from any other phase.
+</para>
+<section id='package-ebuild-eapi-4_pre1-helpers-docompress-command'>
+<title>docompress helper</title>
+<para>
+If the first argument is -x, add each of its subsequent arguments to the
+exclusion list. Otherwise, add each argument to the inclusion list.
+</para>
+</section>
+</section>
<section id='package-ebuild-eapi-4_pre1-helpers-dodoc-r'>
<title>dodoc -r</title>
<para>
symlinks are dereferenced rather than preserved.
</para>
</section>
+<section id='package-ebuild-eapi-4_pre1-helpers-doman-i18n-precedence'>
+<title>doman -i18n option takes precedence over filename language suffix</title>
+<para>
+When the doman helper is called with the -i18n option, this takes precedence
+over the filename language suffix.
+</para>
+</section>
<section id='package-ebuild-eapi-4_pre1-helpers-econf-disable-dependency-tracking'>
<title>econf adds --disable-dependency-tracking</title>
<para>
<title>Metadata</title>
<section id='package-ebuild-eapi-4_pre1-metadata-dependencies'>
<title>Dependencies</title>
+ <section id='package-ebuild-eapi-4_pre1-metadata-dependencies-rdepend-implicit-removed'>
+ <title>unset RDEPEND no longer triggers implicit setting</title>
+ <para>
+ When the RDEPEND variable is unset within an ebuild, it will remain
+ empty. In prior EAPIs, if RDEPEND was left unset then it was
+ implicitly set to the value of DEPEND.
+ </para>
+ </section>
<section id='package-ebuild-eapi-4_pre1-metadata-dependencies-use-defaults'>
<title>USE Dependency Defaults</title>
<para>
}
</programlisting>
</section>
+ <section id='package-ebuild-eapi-4_pre1-phases-s-workdir-fallback'>
+ <title>S to WORKDIR fallback restricted</title>
+ <para>
+ For any of the src_* phases that executes after src_unpack,
+ it is invalid for the S variable to refer to a non-existent
+ directory. However, these src_* phases are exempt from this
+ requirement if none of the prior src_* phases are defined by the
+ ebuild. When a src_* phase is exempt from this requirement, if the
+ S variable does not refer to an existing directory, the
+ WORKDIR directory will be used instead of S as the initial working
+ directory.
+ </para>
+ </section>
</section>
<section id='package-ebuild-eapi-4_pre1-variables'>
<title>Variables</title>
The AA and KV variables are no longer exported to the ebuild environment.
</para>
</section>
+ <section id='package-ebuild-eapi-4_pre1-variables-replaced-versions'>
+ <title>REPLACING_VERSIONS and REPLACED_BY_VERSION</title>
+ <para>
+ The REPLACING_VERSIONS variable
+ shall be defined in pkg_preinst and pkg_postinst. In addition, it may be
+ defined in pkg_pretend and pkg_setup, although ebuild authors should take care
+ to handle binary package creation and installation correctly when using it in
+ these phases.
+ </para>
+ <para>
+ REPLACING_VERSIONS is a list, not a single optional value, to handle
+ pathological cases such as installing foo-2:2 to replace foo-2:1 and foo-3:2.
+ </para>
+ <para>
+ The REPLACED_BY variable shall
+ be defined in pkg_prerm and pkg_postrm. It shall contain at most one value.
+ </para>
+ </section>
</section>
</section>