diff options
Diffstat (limited to 'eapi-differences.tex')
-rw-r--r-- | eapi-differences.tex | 239 |
1 files changed, 155 insertions, 84 deletions
diff --git a/eapi-differences.tex b/eapi-differences.tex index bc49a33..900f415 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -1,12 +1,12 @@ \chapter{Feature Availability by EAPI} \note{This chapter is informative and for convenience only. Refer to the main text for specifics. -For lack of space, EAPIs 0, 1, 2, and~3 have been consolidated into a single column in the table +For lack of space, EAPIs 0, 1, 2, 3, and~4 have been consolidated into a single column in the table below; entries marked with an asterisk differ between these EAPIs. See the 2012-09-20 edition of this document for a complete table of previous EAPIs.} % 2012-09-20 (EAPI 5) edition has a table of EAPIs 0 to 5 -\ChangeWhenAddingAnEAPI{7} +\ChangeWhenAddingAnEAPI{8} \begin{landscape} \begin{longtable}{llP{7.5em}P{7.5em}P{7.5em}P{7.5em}P{7.5em}} \caption{Features in EAPIs}\\ @@ -16,11 +16,11 @@ of this document for a complete table of previous EAPIs.} \multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & -\multicolumn{1}{c}{7} \\ +\multicolumn{1}{c}{7} & +\multicolumn{1}{c}{8} \\ \midrule \endfirsthead \midrule @@ -29,11 +29,11 @@ of this document for a complete table of previous EAPIs.} \multicolumn{5}{c}{\textbf{EAPIs}} \\ \multicolumn{1}{c}{} & \multicolumn{1}{c}{} & -\multicolumn{1}{c}{0, 1, 2, 3} & -\multicolumn{1}{c}{4} & +\multicolumn{1}{c}{0, 1, 2, 3, 4} & \multicolumn{1}{c}{5} & \multicolumn{1}{c}{6} & -\multicolumn{1}{c}{7} \\ +\multicolumn{1}{c}{7} & +\multicolumn{1}{c}{8} \\ \midrule \endhead \midrule @@ -42,56 +42,65 @@ of this document for a complete table of previous EAPIs.} \endlastfoot \t{package.mask} directory & \compactfeatureref{package-mask-dir} & + No & No & No & Yes & Yes \\ + +Less strict filenames in \t{updates} & \compactfeatureref{updates-filenames} & No & No & No & No & Yes \\ Profile files as directories & \compactfeatureref{profile-file-dirs} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{package.provided} & \compactfeatureref{package-provided} & - Optional & Optional & Optional & Optional & No \\ + Optional & Optional & Optional & No & No \\ Stable use masking/forcing & \compactfeatureref{stablemask} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ Bash version & \compactfeatureref{bash-version} & - 3.2 & 3.2 & 3.2 & 4.2 & 4.2 \\ + 3.2 & 3.2 & 4.2 & 4.2 & 5.0 \\ \t{failglob} in global scope & \compactfeatureref{failglob} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{IUSE} defaults & \compactfeatureref{iuse-defaults} & * & Yes & Yes & Yes & Yes \\ \t{REQUIRED_USE} & \compactfeatureref{required-use} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{PROPERTIES} & \compactfeatureref{properties} & - Optionally & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & * & Yes & Yes & Yes & Yes \\ +Selective URI restrictions & \compactfeatureref{uri-restrict} & + No & No & No & No & Yes \\ + \t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & - Yes & No & No & No & No \\ + * & No & No & No & No \\ \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} & - Optionally & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{BDEPEND} & \compactfeatureref{bdepend} & + No & No & No & Yes & Yes \\ + +\t{IDEPEND} & \compactfeatureref{idepend} & No & No & No & No & Yes \\ \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & \compactfeatureref{empty-dep-groups} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ Slot dependencies & \compactfeatureref{slot-deps} & - * & Named & Named and Operator & Named and Operator & Named and Operator \\ + * & Named and Operator & Named and Operator & Named and Operator & Named and Operator \\ Sub-slots & \compactfeatureref{sub-slot} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ Use dependencies & \compactfeatureref{use-deps} & * & 4-style & 4-style & 4-style & 4-style \\ @@ -102,17 +111,20 @@ Use dependencies & \compactfeatureref{use-deps} & \t{!!}\ blockers & \compactfeatureref{bang-strength} & * & Strong & Strong & Strong & Strong \\ +Working directory in \t{pkg_*} phases & \compactfeatureref{phase-function-dir} & + Any & Any & Any & Any & Empty \\ + \t{S} to \t{WORKDIR} fallback & \compactfeatureref{s-workdir-fallback} & - Always & Conditional & Conditional & Conditional & Conditional \\ + * & Conditional & Conditional & Conditional & Conditional \\ \t{pkg_pretend} & \compactfeatureref{pkg-pretend} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{src_prepare} & \compactfeatureref{src-prepare} & * & Yes & Yes & Yes & Yes \\ \t{src_prepare} style & \compactfeatureref{src-prepare} & - * & no-op & no-op & 6 & 6 \\ + * & no-op & 6 & 6 & 8 \\ \t{src_configure} & \compactfeatureref{src-configure} & * & Yes & Yes & Yes & Yes \\ @@ -121,13 +133,13 @@ Use dependencies & \compactfeatureref{use-deps} & * & 2 & 2 & 2 & 2 \\ Parallel tests & \compactfeatureref{parallel-tests} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ \t{src_install} style & \compactfeatureref{src-install} & - no-op & 4 & 4 & 6 & 6 \\ + * & 4 & 6 & 6 & 6 \\ \t{pkg_info} & \compactfeatureref{pkg-info} & - Installed & Both & Both & Both & Both \\ + * & Both & Both & Both & Both \\ \t{default_} phase functions & \compactfeatureref{default-phase-funcs} & * & @@ -140,122 +152,137 @@ Parallel tests & \compactfeatureref{parallel-tests} & \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, \t{src_install} \\ +Accumulate \t{RESTRICT} etc. & \compactfeatureref{accumulate-vars} & + No & No & No & No & Yes \\ + \t{AA} & \compactfeatureref{aa} & - Yes & No & No & No & No \\ + * & No & No & No & No \\ \t{PORTDIR} & \compactfeatureref{portdir} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ \t{ECLASSDIR} & \compactfeatureref{eclassdir} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{BROOT} & \compactfeatureref{broot} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{DESTTREE} & \compactfeatureref{desttree} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ \t{INSDESTTREE} & \compactfeatureref{insdesttree} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ \t{KV} & \compactfeatureref{kv} & - Yes & No & No & No & No \\ + * & No & No & No & No \\ \t{EBUILD_PHASE_FUNC} & \compactfeatureref{ebuild-phase-func} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ \t{MERGE_TYPE} & \compactfeatureref{merge-type} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{ENV_UNSET} & \compactfeatureref{env-unset} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ Sane locale settings & \compactfeatureref{locale-settings} & - Undefined & Undefined & Undefined & Yes & Yes \\ + Undefined & Undefined & Yes & Yes & Yes \\ Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ \t{REPLACING_VERSIONS} & \compactfeatureref{replace-version-vars} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{REPLACED_BY_VERSION} & \compactfeatureref{replace-version-vars} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{EPREFIX}, \t{ED}, \t{EROOT} & \compactfeatureref{offset-prefix-vars} & * & Yes & Yes & Yes & Yes \\ Trailing slash in \t{D} etc. & \compactfeatureref{trailing-slash} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ GNU \t{patch} version & \compactfeatureref{gnu-patch} & - Any & Any & Any & Any & 2.7 \\ + Any & Any & Any & 2.7 & 2.7 \\ \t{find} is GNU? & \compactfeatureref{gnu-find} & - Undefined & Undefined & Yes & Yes & Yes \\ + Undefined & Yes & Yes & Yes & Yes \\ Most utilities die & \compactfeatureref{die-on-failure} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{nonfatal} & \compactfeatureref{nonfatal} & - No & Yes & Yes & Yes & Function / external \\ + * & Yes & Yes & Function / external & Function / external \\ \t{dohard} & \compactfeatureref{banned-commands} & - Yes & Banned & Banned & Banned & Banned \\ + * & Banned & Banned & Banned & Banned \\ \t{dosed} & \compactfeatureref{banned-commands} & - Yes & Banned & Banned & Banned & Banned \\ + * & Banned & Banned & Banned & Banned \\ \t{einstall} & \compactfeatureref{banned-commands} & - Yes & Yes & Yes & Banned & Banned \\ + Yes & Yes & Banned & Banned & Banned \\ \t{dohtml} & \compactfeatureref{banned-commands} & - Yes & Yes & Yes & Yes & Banned \\ + Yes & Yes & Yes & Banned & Banned \\ \t{dolib} & \compactfeatureref{banned-commands} & - Yes & Yes & Yes & Yes & Banned \\ + Yes & Yes & Yes & Banned & Banned \\ \t{libopts} & \compactfeatureref{banned-commands} & + Yes & Yes & Yes & Banned & Banned \\ + +\t{useq} & \compactfeatureref{banned-commands} & + Yes & Yes & Yes & Yes & Banned \\ + +\t{hasv} & \compactfeatureref{banned-commands} & + Yes & Yes & Yes & Yes & Banned \\ + +\t{hasq} & \compactfeatureref{banned-commands} & Yes & Yes & Yes & Yes & Banned \\ Query command options & \compactfeatureref{pm-query-options} & - None & None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} \\ + None & \t{-{}-host-root} & \t{-{}-host-root} & \t{-b}, \t{-d}, \t{-r} & + \t{-b}, \t{-d}, \t{-r} \\ Output commands use stdout & \compactfeatureref{output-no-stdout} & - Yes & Yes & Yes & Yes & No \\ + Yes & Yes & Yes & No & No \\ \t{eqawarn} & \compactfeatureref{eqawarn} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{die -n} & \compactfeatureref{nonfatal-die} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{die} in subshell & \compactfeatureref{subshell-die} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{eapply} & \compactfeatureref{eapply} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{eapply_user} & \compactfeatureref{eapply-user} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{econf} arguments & \compactfeatureref{econf-options} & - None & disable dependency tracking & + * & disable dependency tracking, disable silent rules & disable dependency tracking, disable silent rules, docdir, htmldir & - disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot \\ + disable dependency tracking, disable silent rules, docdir, htmldir, with sysroot & + disable dependency tracking, disable silent rules, disable static, + datarootdir, docdir, htmldir, with sysroot \\ \t{dodoc -r} & \compactfeatureref{dodoc} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{doheader} & \compactfeatureref{doheader} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ \t{doins} handles symlinks & \compactfeatureref{doins} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{doman} languages & \compactfeatureref{doman-langs} & * & Yes & Yes & Yes & Yes \\ @@ -264,55 +291,76 @@ Output commands use stdout & \compactfeatureref{output-no-stdout} & * & Yes & Yes & Yes & Yes \\ \t{domo} destination path & \compactfeatureref{domo-path} & - \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} \\ + \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{\$\{DESTTREE\}} & \t{/usr} & \t{/usr} \\ + +\t{dosym -r} & \compactfeatureref{dosym-relative} & + No & No & No & No & Yes \\ \t{new*} support stdin & \compactfeatureref{newfoo-stdin} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ + +\t{insopts} affects misc.\ commands & \compactfeatureref{insopts} & + Yes & Yes & Yes & Yes & No \\ + +\t{exeopts} affects \t{doinitd} & \compactfeatureref{exeopts} & + Yes & Yes & Yes & Yes & No \\ Controllable compression & \compactfeatureref{docompress} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{docompress} & \compactfeatureref{docompress} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ Controllable stripping & \compactfeatureref{dostrip} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{dostrip} & \compactfeatureref{dostrip} & + No & No & No & Yes & Yes \\ + +\t{usev} second arg & \compactfeatureref{usev} & No & No & No & No & Yes \\ \t{use_with} empty third arg & \compactfeatureref{use-with} & - No & Yes & Yes & Yes & Yes \\ + * & Yes & Yes & Yes & Yes \\ \t{usex} & \compactfeatureref{usex} & - No & No & Yes & Yes & Yes \\ + No & Yes & Yes & Yes & Yes \\ \t{in_iuse} & \compactfeatureref{in-iuse} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{ver_*} commands & \compactfeatureref{ver-commands} & - No & No & No & No & Yes \\ + No & No & No & Yes & Yes \\ \t{unpack} absolute paths & \compactfeatureref{unpack-absolute} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{unpack} support for \t{xz} & \compactfeatureref{unpack-extensions} & * & Yes & Yes & Yes & Yes \\ \t{unpack} support for \t{txz} & \compactfeatureref{unpack-extensions} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ + +\t{unpack} support for \t{7z} & \compactfeatureref{unpack-extensions} & + Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{lha} & \compactfeatureref{unpack-extensions} & + Yes & Yes & Yes & Yes & No \\ + +\t{unpack} support for \t{rar} & \compactfeatureref{unpack-extensions} & + Yes & Yes & Yes & Yes & No \\ \t{unpack} case-insensitive & \compactfeatureref{unpack-ignore-case} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{default} function & \compactfeatureref{default-func} & * & Yes & Yes & Yes & Yes \\ \t{einstalldocs} & \compactfeatureref{einstalldocs} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ \t{get_libdir} & \compactfeatureref{get-libdir} & - No & No & No & Yes & Yes \\ + No & No & Yes & Yes & Yes \\ File mtimes preserved & \compactfeatureref{mtime-preserve} & * & Yes & Yes & Yes & Yes \\ @@ -335,7 +383,7 @@ EAPI 1 is EAPI 0 with the following changes: \begin{compactitem} \item \t{IUSE} defaults, \featureref{iuse-defaults}. \item Slot dependencies, \featureref{slot-deps}. -\item Different \t{src_compile} implementation, \featureref{src-compile-1}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \end{compactitem} \section{EAPI 2} @@ -348,7 +396,7 @@ EAPI 2 is EAPI 1 with the following changes: \item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. \item \t{src_prepare}, \featureref{src-prepare}. \item \t{src_configure}, \featureref{src-configure}. -\item Different \t{src_compile} implementation, \featureref{src-compile-2}. +\item Different \t{src_compile} implementation, \featureref{src-compile}. \item \t{default_} phase functions for phases \t{pkg_nofetch}, \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile} and \t{src_test}; \featureref{default-phase-funcs}. \item \t{doman} language detection by filename, \featureref{doman-langs}. @@ -377,7 +425,7 @@ EAPI 4 is EAPI 3 with the following changes: \item Use dependency defaults, \featureref{use-dep-defaults}. \item \t{S} to \t{WORKDIR} fallback restricted, \featureref{s-workdir-fallback}. \item \t{pkg_pretend}, \featureref{pkg-pretend}. -\item Default \t{src_install} no longer a no-op, \featureref{src-install-4}. +\item Default \t{src_install} no longer a no-op, \featureref{src-install}. \item \t{pkg_info} can run on non-installed packages, \featureref{pkg-info}. \item \t{AA} is gone, \featureref{aa}. \item \t{KV} is gone, \featureref{kv}. @@ -422,8 +470,8 @@ EAPI 6 is EAPI 5 with the following changes: \begin{compactitem} \item Bash version is 4.2, \featureref{bash-version}. \item \t{failglob} is enabled in global scope, \featureref{failglob}. -\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare-6}. -\item Different \t{src_install} implementation, \featureref{src-install-6}. +\item Default \t{src_prepare} no longer a no-op, \featureref{src-prepare}. +\item Different \t{src_install} implementation, \featureref{src-install}. \item \t{LC_CTYPE} and \t{LC_COLLATE} compatible with POSIX locale, \featureref{locale-settings}. \item \t{einstall} banned, \featureref{banned-commands}. \item \t{die} and \t{assert} called with \t{-n} respect \t{nonfatal}, \featureref{nonfatal-die}. @@ -474,7 +522,30 @@ EAPI 7 is EAPI 6 with the following changes: \item Version manipulation and comparison commands, \featureref{ver-commands}. \end{compactitem} -\ChangeWhenAddingAnEAPI{7} +\section{EAPI 8} + +EAPI 8 is EAPI 7 with the following changes: + +\begin{compactitem} +\item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. +\item Bash version is 5.0, \featureref{bash-version}. +\item Selective fetch/mirror restriction, \featureref{uri-restrict}. +\item \t{IDEPEND}, \featureref{idepend}. +\item Empty working directory in \t{pkg_*} phase functions, \featureref{phase-function-dir}. +\item Different \t{src_prepare} implementation, \featureref{src-prepare}. +\item \t{PROPERTIES} and \t{RESTRICT} accumulated across eclasses, \featureref{accumulate-vars}. +\item \t{useq} banned, \featureref{banned-commands}. +\item \t{hasv} and \t{hasq} banned, \featureref{banned-commands}. +\item \t{econf} adds \t{-{}-datarootdir}, \featureref{econf-options}. +\item \t{econf} adds \t{-{}-disable-static}, \featureref{econf-options}. +\item \t{dosym} can create relative paths, \featureref{dosym-relative}. +\item \t{insopts} no longer affects \t{doconfd}, \t{doenvd} and \t{doheader}, \featureref{insopts}. +\item \t{exeopts} no longer affects \t{doinitd}, \featureref{exeopts}. +\item \t{usev} supports an optional second argument, \featureref{usev}. +\item \t{unpack} no longer supports \t{.7z}, \t{.rar}, \t{.lha}, \featureref{unpack-extensions}. +\end{compactitem} + +\ChangeWhenAddingAnEAPI{8} % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en : |