commit: ef2c813cba5812475426562cc8080581e94e090f
Author: Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 8 16:41:33 2025 +0000
Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Tue Dec 2 19:05:25 2025 +0000
URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=ef2c813c
Cheat sheet: Update for EAPI 9
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>
eapi-cheatsheet.tex | 48 +++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 47 insertions(+), 1 deletion(-)
diff --git a/eapi-cheatsheet.tex b/eapi-cheatsheet.tex
index 60bea45..920557c 100644
--- a/eapi-cheatsheet.tex
+++ b/eapi-cheatsheet.tex
@@ -15,7 +15,7 @@
\usepackage[local]{gitinfo2}
\newcommand{\code}[1]{\texttt{#1}}
% This should reflect the latest approved EAPI version
-\newcommand{\version}{8.0}
+\newcommand{\version}{9.0}
\newcommand{\featureref}[1]{\textsc{#1} on page~\pageref{feat:#1}}
\renewcommand{\familydefault}{\sfdefault}
\urlstyle{sf}
@@ -577,6 +577,52 @@ differences between these EAPIs.
and LHA archives. See \featureref{unpack-extensions}.
\end{description}
+\section{EAPI 9}
+\label{sec:cs:eapi9}
+\subsection{Additions/changes}
+\label{sec:cs:eapi9-additions}
+\begin{description}
+ \item[Default EAPI for profiles] Profile directories without their
+ own \code{eapi} file no longer default to EAPI 0, but to the EAPI
+ specified in the top-level \code{profiles} directory.
+ See \featureref{profile-eapi-default}.
+ \item[\code{use.stable} and \code{package.use.stable}]
+ Profile dirs may contain two new files. They can be used to
+ override the USE flags specified by \code{make.defaults}, but act
+ only on packages that would be merged due to a stable keyword.
+ See \featureref{use-stable}.
+ \item[Bash version] Ebuilds can use features of Bash version 5.3
+ (was 5.0 before). See \featureref{bash-version}.
+ \item[Variables are no longer exported] The package manager no
+ longer exports its defined shell variables (exceptions are
+ \code{TMPDIR} and \code{HOME}) to the environment. The same
+ applies to variables defined in \code{make.defaults} that have
+ specific meanings. See \featureref{export-vars}.
+ \item[\code{pipestatus}] Checks if all commands in the last
+ executed pipeline have returned an exit status of zero. When the
+ \code{-v} option is specified, also prints the shell's pipe status
+ array. See \featureref{pipestatus}.
+ \item[\code{ver_replacing} \emph{op v2}] Checks if the relation
+ \emph{v1 op v2} is true for any element \emph{v1} of
+ \code{REPLACING_VERSIONS}\@. \emph{op} can be any operator that is
+ accepted by \code{ver_test}. See \featureref{ver-replacing}.
+ \item[\code{edo}] Outputs its entire argument list as an
+ informational message, then executes it as a simple shell command,
+ with standard failure behaviour. See \featureref{edo}.
+ \item[Merging of symlinks] When merging \code{D} to \code{ROOT},
+ absolute symlinks are now merged as-is. The package manager will
+ no longer strip a leading \code{D} from their link targets.
+ See \featureref{symlink-rewrite}.
+\end{description}
+\subsection{Removals/bans}
+\label{sec:cs:eapi9-removalsbans}
+\begin{description}
+ \item[\code{assert}] No longer allowed. Use \code{pipestatus}
+ instead. See \featureref{banned-commands}.
+ \item[\code{domo}] No longer allowed. Use \code{insinto} and
+ \code{newins} as replacement. See \featureref{banned-commands}.
+\end{description}
+
\end{document}
% vim: set filetype=tex fileencoding=utf8 et tw=70 spell spelllang=en :