From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 863891396D9 for ; Thu, 9 Nov 2017 16:52:01 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 9D8D7E0BF3; Thu, 9 Nov 2017 16:52:00 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6B9D9E0BF3 for ; Thu, 9 Nov 2017 16:52:00 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id B67A933BEC7 for ; Thu, 9 Nov 2017 16:51:58 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 620B79683 for ; Thu, 9 Nov 2017 16:51:56 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1510246193.7177e5fa5d5dd606bc634440868b9fa99700ec90.mgorny@gentoo> Subject: [gentoo-commits] proj/pms:eapi-7 commit in: / X-VCS-Repository: proj/pms X-VCS-Files: eapi-differences.tex ebuild-env-vars.tex profile-variables.tex X-VCS-Directories: / X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 7177e5fa5d5dd606bc634440868b9fa99700ec90 X-VCS-Branch: eapi-7 Date: Thu, 9 Nov 2017 16:51:56 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: 77bc4d37-2431-4801-89b6-9d0e0657f9ef X-Archives-Hash: 7ac9960ce2ae0b573df3db19c3b44611 commit: 7177e5fa5d5dd606bc634440868b9fa99700ec90 Author: Michał Górny gentoo org> AuthorDate: Thu Nov 9 16:33:34 2017 +0000 Commit: Michał Górny gentoo 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.