commit:     7177e5fa5d5dd606bc634440868b9fa99700ec90
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Thu Nov  9 16:33:34 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Nov  9 16:49:53 2017 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=7177e5fa

EAPI 7 has ENV_BLACKLIST

 eapi-differences.tex  |  4 ++++
 ebuild-env-vars.tex   | 36 +++++++++++++++++++++++++++++-------
 profile-variables.tex |  4 ++++
 3 files changed, 37 insertions(+), 7 deletions(-)

diff --git a/eapi-differences.tex b/eapi-differences.tex
index b666500..3f25555 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -181,6 +181,9 @@ Parallel tests & \compactfeatureref{parallel-tests} &
 Sane locale settings & \compactfeatureref{locale-settings} &
     Undefined & Undefined & Undefined & Yes & Yes \\
 
+\t{ENV_BLACKLIST} & \compactfeatureref{env-blacklist} &
+    No & No & No & No & Yes \\
+
 Profile \t{IUSE} injection & \compactfeatureref{profile-iuse-inject} &
     No & No & Yes & Yes & Yes \\
 
@@ -483,6 +486,7 @@ EAPI 7 is EAPI 6 with the following changes:
 \item \t{domo} installs to \t{/usr}, \featureref{domo-path}.
 \item Controllable stripping and \t{dostrip}, \featureref{dostrip}.
 \item Version manipulation and comparison commands, \featureref{ver-commands}.
+\item \t{ENV_BLACKLIST}, \featureref{env-blacklist}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{7}

diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex
index 32ed634..0382f04 100644
--- a/ebuild-env-vars.tex
+++ b/ebuild-env-vars.tex
@@ -334,22 +334,44 @@ must not be set.
 \featurelabel{locale-settings} The package manager must ensure that the 
\t{LC_CTYPE} and
 \t{LC_COLLATE} locale categories are equivalent to the POSIX locale, as far as 
characters in the
 ASCII range (U+0000 to U+007F) are concerned. Only for EAPIs listed in such a 
manner in
-table~\ref{tab:locale-settings}.
+table~\ref{tab:system-env-vars}.
 
 \ChangeWhenAddingAnEAPI{7}
-\begin{centertable}{Locale settings for EAPIs}
-    \label{tab:locale-settings}
-    \begin{tabular}{ll}
+\begin{centertable}{System environment variables}
+    \label{tab:system-env-vars}
+    \begin{tabular}{lll}
       \toprule
       \multicolumn{1}{c}{\textbf{EAPI}} &
-      \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} \\
+      \multicolumn{1}{c}{\textbf{Sane \t{LC_CTYPE} and \t{LC_COLLATE}?}} &
+      \multicolumn{1}{c}{\textbf{\t{ENV_BLACKLIST}?}} \\
       \midrule
-      0, 1, 2, 3, 4, 5  & Undefined \\
-      6, 7              & Yes       \\
+      0, 1, 2, 3, 4, 5  & Undefined & No  \\
+      6                 & Yes       & No  \\
+      7                 & Yes       & Yes \\  
       \bottomrule
     \end{tabular}
 \end{centertable}
 
+\subsection{Environment variable blacklist}
+
+\featurelabel{env-blacklist} If the ebuild uses EAPI listed in 
table~\ref{tab:system-env-vars}
+as supporting the \t{ENV_BLACKLIST} variable, the package manager must 
construct the environment
+variable blacklist in the following manner.
+
+The value of the \t{ENV_BLACKLIST} variable as specified by the profile 
\t{make.defaults} files
+provides a whitespace-separated list of variable names. Each item can 
optionally be preceded
+by a hyphen. The blacklist is initially empty. For each item:
+
+\begin{compactitem}
+\item If the item is not preceded by a hyphen, then the variable is added to 
the blacklist.
+\item If the item is preceded by a hyphen, then the variable is removed from 
the blacklist.
+\item As a special case, \t{*} adds all the variables currently set in the 
environment
+   to the blacklist, except for variables explicitly set by the package 
manager.
+\end{compactitem}
+
+Once the blacklist is constructed, the package manager must ensure that all 
variable whose names
+are listed in it are unset in the ebuild environment.
+
 \subsection{USE and IUSE handling}
 \label{sec:use-iuse-handling}
 

diff --git a/profile-variables.tex b/profile-variables.tex
index 309f9e9..fa967b2 100644
--- a/profile-variables.tex
+++ b/profile-variables.tex
@@ -29,6 +29,10 @@ incrementally; otherwise, the following variables may or may 
not be treated incr
 \item \t{USE_EXPAND_UNPREFIXED}
 \end{compactitem}
 
+If the package manager supports any EAPI listed in 
table~\ref{tab:system-env-vars} as supporting
+\t{ENV_BLACKLIST} variable, this variable must be treated incrementally. 
Otherwise, it may or may
+not be treated incrementally.
+
 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.

Reply via email to