From 9d2b8ee57bf3be941cfdfe13650952d91b9edfdc Mon Sep 17 00:00:00 2001 From: Ulrich Mueller Date: Sat, 4 Dec 2010 12:20:55 +0100 Subject: Profile IUSE injection is not in EAPI 4. --- eapi-differences.tex | 4 ---- ebuild-env-vars.tex | 38 ++++---------------------------------- profile-variables.tex | 40 +++------------------------------------- 3 files changed, 7 insertions(+), 75 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 4a53459..4eb41f4 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -36,9 +36,6 @@ \bottomrule \endlastfoot -Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-injection} & - No & No & No & No & Yes \\ - \t{IUSE} defaults & \compactfeatureref{iuse-defaults} & No & Yes & Yes & Yes & Yes \\ @@ -221,7 +218,6 @@ EAPI 4 is EAPI 3 with the following changes: \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}. -\item \t{USE} is calculated differently, \featureref{profile-iuse-injection}. \item \t{MERGE\_TYPE}, \featureref{merge-type}. \item \t{REPLACING\_VERSIONS} and \t{REPLACED\_BY\_VERSION}, \featureref{replace-version-vars}. \item Utilities now die on failure, \featureref{die-on-failure}, unless called under \t{nonfatal}, diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex index 8bb5ee6..eb235e7 100644 --- a/ebuild-env-vars.tex +++ b/ebuild-env-vars.tex @@ -273,13 +273,9 @@ This section discusses the handling of four variables: In all cases, the values of \t{IUSE\_REFERENCEABLE} and \t{IUSE\_EFFECTIVE} are undefined during metadata generation. -For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined -\t{IUSE} injection, \t{IUSE\_REFERENCEABLE} is equal to the calculated \t{IUSE} value. For EAPIs -where profile defined \t{IUSE} injection is supported, \t{IUSE\_REFERENCEABLE} is equal to -\t{IUSE\_EFFECTIVE}. +\t{IUSE\_REFERENCEABLE} is equal to the calculated \t{IUSE} value. -For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined -\t{IUSE} injection, \t{IUSE\_EFFECTIVE} contains the following values: +\t{IUSE\_EFFECTIVE} contains the following values: \begin{compactitem} \item All values in the calculated \t{IUSE} value. @@ -288,36 +284,10 @@ For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as not supporti the profile \t{USE\_EXPAND} variable followed by an underscore. \end{compactitem} -\featurelabel{profile-iuse-injection} For EAPIs listed in -table~\ref{tab:profile-iuse-injection-table} as supporting profile defined \t{IUSE} injection, -\t{IUSE\_EFFECTIVE} contains the following values: - -\begin{compactitem} -\item All values in the calculated \t{IUSE} value. -\item All values in the profile \t{IUSE\_IMPLICIT} variable. -\item All values in the profile variable named \t{USE\_EXPAND\_VALUES\_\$\{v\}}, where \t{\$\{v\}} - is any value in the intersection of the profile \t{USE\_EXPAND\_UNPREFIXED} and - \t{USE\_EXPAND\_IMPLICIT} variables. -\item All values for \t{\$\{lower\_v\}\_\$\{x\}}, where \t{\$\{x\}} is all values in the profile - variable named \t{USE\_EXPAND\_VALUES\_\$\{v\}}, where \t{\$\{v\}} is any value in the - intersection of the profile \t{USE\_EXPAND} and \t{USE\_EXPAND\_IMPLICIT} variables and - \t{\$\{lower\_v\}} is the lowercase equivalent of \t{\$\{v\}}. -\end{compactitem} - The \t{USE} variable is set by the package manager. For each value in \t{IUSE\_EFFECTIVE}, \t{USE} shall contain that value if the flag is to be enabled for the ebuild in question, and shall not -contain that value if it is to be disabled. In EAPIs listed in -table~\ref{tab:profile-iuse-injection-table} as not supporting profile defined \t{IUSE} injection, -\t{USE} may contain other flag names that are not relevant for the ebuild. - -For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile defined -\t{IUSE} injection, the variables named in \t{USE\_EXPAND} and \t{USE\_EXPAND\_UNPREFIXED} shall -have their profile-provided values reduced to contain only those values that are present in -\t{IUSE\_EFFECTIVE}. - -For EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile defined -\t{IUSE} injection, the package manager must save the calculated value of \t{IUSE\_EFFECTIVE} when -installing a package. Details are beyond the scope of this specification. +contain that value if it is to be disabled. \t{USE} may contain other flag names that are not +relevant for the ebuild. \subsection{\t{REPLACING\_VERSIONS} and \t{REPLACED\_BY\_VERSION}} \label{sec:replacing-versions} diff --git a/profile-variables.tex b/profile-variables.tex index 8533b71..cb6e63f 100644 --- a/profile-variables.tex +++ b/profile-variables.tex @@ -20,34 +20,10 @@ variables must be treated in this fashion: \item \t{CONFIG\_PROTECT\_MASK} \end{compactitem} -If the package manager supports any EAPI listed in table~\ref{tab:profile-iuse-injection-table} as -using profile-defined \t{IUSE} injection, the following variables must also be treated -incrementally; otherwise, the following variables may or may not be treated incrementally: -\begin{compactitem} -\item \t{IUSE\_IMPLICIT} -\item \t{USE\_EXPAND\_IMPLICIT} -\item \t{USE\_EXPAND\_UNPREFIXED} -\end{compactitem} - Other variables, except where they affect only package-manager-specific functionality (such as Portage's \t{FEATURES} variable), must not be treated incrementally---later definitions shall completely override those in parent profiles. -\begin{centertable}{Profile-defined \t{IUSE} injection for EAPIs} \label{tab:profile-iuse-injection-table} - \begin{tabular}{ l l l } - \toprule - \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports profile-defined \t{IUSE} injection?}} \\ - \midrule - \t{0} & No \\ - \t{1} & No \\ - \t{2} & No \\ - \t{3} & No \\ - \t{4} & Yes \\ - \bottomrule - \end{tabular} -\end{centertable} - \subsection{Specific variables and their meanings} The following variables have specific meanings when set in profiles. \begin{description} @@ -61,21 +37,11 @@ The following variables have specific meanings when set in profiles. \item[USE\_EXPAND] Defines a list of variables which are to be treated incrementally and whose contents are to be expanded into the USE variable as passed to ebuilds. See section~\ref{sec:use-iuse-handling} for details. -\item[USE\_EXPAND\_UNPREFIXED] Similar to \t{USE\_EXPAND}, but no prefix is used. If the repository - contains any package using an EAPI supporting profile-defined \t{IUSE} injection (see - table~\ref{tab:profile-iuse-injection-table}), this list must contain at least \t{ARCH}. See - section~\ref{sec:use-iuse-handling} for details. -\item[USE\_EXPAND\_HIDDEN] Contains a (possibly empty) subset of names from \t{USE\_EXPAND} and - \t{USE\_EXPAND\_UNPREFIXED}. The package manager may use this set as a hint to avoid displaying - uninteresting or unhelpful information to an end user. -\item[USE\_EXPAND\_IMPLICIT, IUSE\_IMPLICIT] Used to inject implicit values into \t{IUSE}. See - section~\ref{sec:use-iuse-handling} for details. +\item[USE\_EXPAND\_HIDDEN] Contains a (possibly empty) subset of names from \t{USE\_EXPAND}. The + package manager may use this set as a hint to avoid displaying uninteresting or unhelpful + information to an end user. \end{description} -In addition, for EAPIs listed in table~\ref{tab:profile-iuse-injection-table} as supporting profile -defined \t{IUSE} injection, the variables named in \t{USE\_EXPAND} and \t{USE\_EXPAND\_UNPREFIXED} -have special handling as described in section~\ref{sec:use-iuse-handling}. - Any other variables set in \t{make.defaults} must be passed on into the ebuild environment as-is, and are not required to be interpreted by the package manager. -- cgit v1.2.3