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 1FA591396D1 for ; Mon, 9 Oct 2017 17:31:15 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 6F0D2E0DC3; Mon, 9 Oct 2017 17:31:14 +0000 (UTC) Received: from smtp.gentoo.org (mail.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 3FE2DE0DBE for ; Mon, 9 Oct 2017 17:31:14 +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 4033633BEB4 for ; Mon, 9 Oct 2017 17:31:13 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 1F72C90A3 for ; Mon, 9 Oct 2017 17:31:10 +0000 (UTC) From: "Ulrich Müller" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Ulrich Müller" Message-ID: <1507569128.4201dcb2332281ed8d1bd24a042b6c5bd1aeb794.ulm@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 X-VCS-Directories: / X-VCS-Committer: ulm X-VCS-Committer-Name: Ulrich Müller X-VCS-Revision: 4201dcb2332281ed8d1bd24a042b6c5bd1aeb794 X-VCS-Branch: eapi-7 Date: Mon, 9 Oct 2017 17:31:10 +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: 6e676e50-3113-4a3e-869f-7df013de0d58 X-Archives-Hash: 84f6e83a8597b4fc407186e97c8bd6de commit: 4201dcb2332281ed8d1bd24a042b6c5bd1aeb794 Author: Michał Górny gentoo org> AuthorDate: Thu Sep 28 16:20:11 2017 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Mon Oct 9 17:12:08 2017 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=4201dcb2 EAPI 7 no longer adds trailing slash to ROOT, EROOT, D, ED. Bug: https://bugs.gentoo.org/465772 eapi-differences.tex | 5 +++++ ebuild-env-vars.tex | 58 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 52 insertions(+), 11 deletions(-) diff --git a/eapi-differences.tex b/eapi-differences.tex index 0c47d9b..49e6be9 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -41,6 +41,9 @@ of this document for a complete table of previous EAPIs. \bottomrule \endlastfoot +Trailing slash in \t{ROOT}, \t{D}... & \compactfeatureref{trailing-slash} & + Yes & Yes & Yes & Yes & No \\ + Output cmds can use stdout & \compactfeatureref{output-no-stdout} & Yes & Yes & Yes & Yes & No \\ @@ -395,6 +398,8 @@ EAPI 7 is EAPI 6 with the following changes: \item Version manipulation and comparison functions added, \featureref{ver-functions}. \item \t{eqawarn} added, \featureref{eqawarn}. \item Output commands can no longer use stdout, \featureref{output-no-stdout}. +\item \t{ROOT}, \t{EROOT}, \t{D}, \t{ED} no longer end with a trailing slash, + \featureref{trailing-slash}. \end{compactitem} \ChangeWhenAddingAnEAPI{7} diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex index 1851aba..fe61ac5 100644 --- a/ebuild-env-vars.tex +++ b/ebuild-env-vars.tex @@ -121,14 +121,15 @@ variable. The absolute path to the root directory into which the package is to be merged. Phases which run with full filesystem access must not touch any files outside of the directory given in \t{ROOT}\@. Also of note is that in a cross-compiling environment, binaries inside of \t{ROOT} - will not be executable on the build machine, so ebuilds must not call them. \t{ROOT} must be - non-empty and end in a trailing slash. \\ + will not be executable on the build machine, so ebuilds must not call them. The presence of + a trailing slash is EAPI-dependent as listed in table~\ref{tab:trailing-slash}. \\ \t{EROOT} & \t{pkg_*} & No & - Contains the path \t{\$\{ROOT\%/\}\$\{EPREFIX\}/} for convenience. See also the - \t{EPREFIX} variable. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as - supporting \t{EROOT}. \\ + Contains the concatenation of the paths in \t{ROOT} and \t{EPREFIX} variables, for convenience. + See also the \t{EPREFIX} variable. Only for EAPIs listed + in table~\ref{tab:offset-env-vars-table} as supporting \t{EROOT}. The presence of a trailing + slash EAPI-dependent as listed in table~\ref{tab:trailing-slash}. \\ \t{T} & All & Partially\footnote{Consistent and preserved across a single connected sequence of install or @@ -159,18 +160,21 @@ variable. \t{src_install} & No & Contains the full path to the image directory into which the package should be installed. - Must be non-empty and end in a trailing slash. \\ + The presence of a trailing slash is EAPI-dependent as listed in table~\ref{tab:trailing-slash}. + \\ \t{D} (continued) & \t{pkg_preinst}, \t{pkg_postinst} & Yes & - Contains the full path to the image that is about to be or has just been merged. Must be - non-empty and end in a trailing slash. \\ + Contains the full path to the image that is about to be or has just been merged. + The presence of a trailing slash is EAPI-dependent as listed in table~\ref{tab:trailing-slash}. + \\ \t{ED} & \t{src_install}, \t{pkg_preinst}, \t{pkg_postinst} & See \t{D} & - Contains the path \t{\$\{D\%/\}\$\{EPREFIX\}/} for convenience. See also the - \t{EPREFIX} variable. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as - supporting \t{ED}. \\ + Contains the concatenation of the paths in \t{D} and \t{EPREFIX} variables, for convenience. + See also the \t{EPREFIX} variable. Only for EAPIs listed + in table~\ref{tab:offset-env-vars-table} as supporting \t{ED}. The presence of a trailing + slash EAPI-dependent as listed in table~\ref{tab:trailing-slash}. \\ \t{DESTTREE} & \t{src_install} & No & @@ -420,6 +424,38 @@ behaviour of offset-prefix aware and agnostic is the same when \t{EPREFIX} is se string in offset-prefix aware EAPIs. The latter do have the variables \t{ED} and \t{EROOT} properly set, though. +\subsection{Path variables and trailing slash} +\label{sec:trailing-slash} + +Unless specified otherwise, the paths provided through package manager variables do not end with +a trailing slash and can not be empty. A few exceptions to that rule are listed +in table~\ref{tab:trailing-slash} along with applicable EAPIs. + +For EAPIs where those variables are defined to always end with a trailing slash, the package manager +guarantees that a trailing slash will always be appended to the path in question. If the path +specifies the system root directory, it will consist of a single slash (\t{/}). + +\featurelabel{trailing-slash} For EAPIs where those variables are defined to never end with +a trailing slash, the package manager guarantees that a trailing slash will never be present. +If the path specifies the system root directory, it will be empty. + +\ChangeWhenAddingAnEAPI{7} +\begin{centertable}{Variables that always or never end with a trailing slash} + \label{tab:trailing-slash} + \begin{tabular}{lll} + \toprule + \multicolumn{1}{c}{\textbf{EAPI}} & + \multicolumn{2}{c}{\textbf{Ends with a trailing slash?}} \\ + & + \t{ROOT}, \t{EROOT} & + \t{D}, \t{ED} \\ + \midrule + 0, 1, 2, 3, 4, 5, 6 & always & always \\ + 7 & never & never \\ + \bottomrule + \end{tabular} +\end{centertable} + % vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en : %%% Local Variables: