<section id='package-ebuild-eapi-3'>
<title>EAPI 3</title>
<section id='package-ebuild-eapi-3-helpers'>
<title>Helpers</title>
<section id='package-ebuild-eapi-3-helpers-unpack'>
<title>unpack</title>
<section id='package-ebuild-eapi-3-helpers-unpack-xz'>
<title>Support for the xz file extension</title>
<para>
The unpack helper now supports the xz file extension.
</para>
</section>
</section>
</section>
<section id='package-ebuild-eapi-3-prefix'>
<title>Support for installation prefix</title>
<section id='package-ebuild-eapi-3-prefix-helpers'>
<title>Helpers</title>
<para>
Beginning with EAPI 3, all helpers use ${ED} instead of ${D}
when appropriate. For example, see econf and einstall below.
</para>
<section id='package-ebuild-eapi-3-prefix-helpers-econf'>
<title>econf</title>
<programlisting>
${ECONF_SOURCE:-.}/configure \
	${CBUILD:+--build=${CBUILD}} \
	--datadir="${EPREFIX}"/usr/share \
	--host=${CHOST} \
	--infodir="${EPREFIX}"/usr/share/info \
	--localstatedir="${EPREFIX}"/var/lib \
	--prefix="${EPREFIX}"/usr \
	--mandir="${EPREFIX}"/usr/share/man \
	--sysconfdir="${EPREFIX}"/etc \
	${CTARGET:+--target=${CTARGET}} \
	${EXTRA_ECONF} \
	configure options || die "econf failed"
</programlisting>
</section>
<section id='package-ebuild-eapi-3-prefix-helpers-einstall'>
<title>einstall</title>
<para>
Note that, for make-based packages, 'emake install DESTDIR=${D}' (with
DESTDIR=${D} rather than ${ED}) is still preferred over einstall.
</para>
<programlisting>
make \
	prefix=${ED}/usr \
	datadir=${ED}/usr/share \
	infodir=${ED}/usr/share/info \
	localstatedir=${ED}/var/lib \
	mandir=${ED}/usr/share/man \
	sysconfdir=${ED}/etc \
	${EXTRA_EINSTALL} \
	make options \
	install
</programlisting>
</section>
</section>
<section id='package-ebuild-eapi-3-prefix-variables'>
<title>Variables</title>
<table><title>Installation Prefix Variables</title>
	<tgroup cols='2' align='left' >
	<colspec colname='name'/>
	<colspec colname='description'/>
	<thead>
	<row>
		<entry>Variable Name</entry>
		<entry>Description</entry>
	</row>
	</thead>
	<tbody>
	<row>
		<entry>ED</entry>
		<entry>Contains the path
		"${D%/}${EPREFIX}/" for convenience purposes.
		For EAPI values prior to EAPI 3 which do not
		support ${ED}, helpers use ${D} where they would
		otherwise use ${ED}. Do not modify this variable.
		</entry>
	</row>
	<row>
		<entry>EPREFIX</entry>
		<entry>Contains the offset
		that this Portage was configured for during
		installation. The offset is sometimes necessary
		in an ebuild or eclass, and is available in such
		cases as ${EPREFIX}. EPREFIX does not contain a
		trailing slash, therefore an absent offset is
		represented by the empty string. Do not modify
		this variable. </entry>
	</row>
	<row>
		<entry>EROOT</entry>
		<entry>Contains
		"${ROOT%/}${EPREFIX}/" for convenience purposes.
		Do not modify this variable. </entry>
	</row>
	</tbody>
	</tgroup>
</table>
</section>
</section>
</section>
