commit: 729a6bda7b298d14f6d26638d0610aac43ea2317 Author: Ulrich Müller <ulm <AT> gentoo <DOT> org> AuthorDate: Sat May 17 06:33:24 2025 +0000 Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org> CommitDate: Sun May 25 16:46:17 2025 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=729a6bda
EAPI 9 has use.stable and package.use.stable Bug: https://bugs.gentoo.org/955833 Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org> eapi-differences.tex | 7 +++++++ profiles.tex | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/eapi-differences.tex b/eapi-differences.tex index 0134657..1099a5c 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -41,6 +41,12 @@ Profile files as directories & \compactfeatureref{profile-file-dirs} & \t{package.provided} & \compactfeatureref{package-provided} & Optional & No & No & No \\ +\t{use.stable} & \compactfeatureref{use-stable} & + No & No & No & Yes \\ + +\t{package.use.stable} & \compactfeatureref{use-stable} & + No & No & No & Yes \\ + Bash version & \compactfeatureref{bash-version} & 4.2 & 4.2 & 5.0 & 5.2 \\ @@ -378,6 +384,7 @@ EAPI 9 is EAPI 8 with the following changes: \begin{compactitem} \item Bash version is 5.2, \featureref{bash-version}. \item Different default EAPI for profiles, \featureref{profile-eapi-default}. +\item \t{use.stable} and \t{package.use.stable}, \featureref{use-stable}. \item Variables no longer exported, \featureref{export-vars}. \item \t{assert} banned, \featureref{banned-commands}. \item \t{domo} banned, \featureref{banned-commands}. diff --git a/profiles.tex b/profiles.tex index d814c31..43b8763 100644 --- a/profiles.tex +++ b/profiles.tex @@ -165,6 +165,40 @@ specification, and then a space delimited list of USE flags to enable. A USE fla specification is limited to the forms defined by the directory's EAPI\@. In some EAPIs, \t{package.use} can be a directory instead of a regular file as per section~\ref{sec:line-stacking}. +\subsection{use.stable and package.use.stable} +\featurelabel{use-stable} The \t{use.stable} and \t{package.use.stable} files may be used to +override the default USE flags specified by \t{make.defaults}. They only apply to packages that +are merged due to a stable keyword in the sense of section~\ref{sec:keywords}. Each line in +\t{use.stable} contains a USE flag to enable; the \t{-flag} syntax indicates that the flag should +be disabled. The \t{package.use.stable} file uses the same format as \t{package.use}. +\t{USE_EXPAND} values may be enabled or disabled by using \t{expand_name_value}. + +Stable restrictions are applied exactly when the following condition holds: If every stable keyword +in \t{KEYWORDS} were replaced with its tilde-prefixed counterpart (see section~\ref{sec:keywords}), +then the resulting \t{KEYWORDS} setting would prevent installation of the package. + +If a flag appears in more than one of \t{package.use}, \t{use.stable} and \t{package.use.stable}, +then \t{package.use.stable} takes precedence over \t{package.use}, which in turn takes precedence +over \t{use.stable}. + +These files are supported in EAPIs as per table~\ref{tab:profile-use-stable}. They can be +directories instead of regular files as per section~\ref{sec:line-stacking}. + +\ChangeWhenAddingAnEAPI{9} +\begin{centertable}{Profile directory support for \t{use.stable} and \t{package.use.stable}} + \label{tab:profile-use-stable} + \begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{1}{c}{\textbf{Supports \t{use.stable}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{package.use.stable}?}} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6, 7, 8 & No & No \\ + 9 & Yes & Yes \\ + \bottomrule + \end{tabular} +\end{centertable} + \subsection{USE masking and forcing} \label{sec:use-masking} This section covers the eight files \t{use.mask}, \t{use.force}, \t{use.stable.mask},
