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 38D0F1382C5 for ; Tue, 18 May 2021 05:44:40 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 58413E0824; Tue, 18 May 2021 05:44:38 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (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 2E7C0E0824 for ; Tue, 18 May 2021 05:44:38 +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 DA985340FBB for ; Tue, 18 May 2021 05:44:36 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id EFE0D794 for ; Tue, 18 May 2021 05:44:33 +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: <1621316655.8c883c34c1c91843e814edca72555723c1f41bba.ulm@gentoo> Subject: [gentoo-commits] proj/pms:eapi-8 commit in: / X-VCS-Repository: proj/pms X-VCS-Files: dependencies.tex eapi-differences.tex ebuild-env-vars.tex ebuild-vars.tex eclasses.tex metadata-cache.tex X-VCS-Directories: / X-VCS-Committer: ulm X-VCS-Committer-Name: Ulrich Müller X-VCS-Revision: 8c883c34c1c91843e814edca72555723c1f41bba X-VCS-Branch: eapi-8 Date: Tue, 18 May 2021 05:44:33 +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-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: f490653b-ae7e-4d4a-b73d-086b357a2389 X-Archives-Hash: 484876e31d0486eba2e0bb5a18c13486 commit: 8c883c34c1c91843e814edca72555723c1f41bba Author: Michał Górny gentoo org> AuthorDate: Sun Dec 22 20:32:41 2019 +0000 Commit: Ulrich Müller gentoo org> CommitDate: Tue May 18 05:44:15 2021 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=8c883c34 EAPI 8 has install-time dependencies (IDEPEND) Bug: https://bugs.gentoo.org/660306 Signed-off-by: Michał Górny gentoo.org> [Updated as discussed in -pms mailing list] Signed-off-by: Ulrich Müller gentoo.org> dependencies.tex | 25 +++++++++++++++++-------- eapi-differences.tex | 4 ++++ ebuild-env-vars.tex | 5 +++-- ebuild-vars.tex | 1 + eclasses.tex | 10 +++++----- metadata-cache.tex | 2 ++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/dependencies.tex b/dependencies.tex index f25c238..a40804a 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -21,7 +21,7 @@ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ \addlinespace \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & - \t{RDEPEND} \\ + \t{RDEPEND}, \t{IDEPEND} \\ \addlinespace \t{pkg_config} & \t{RDEPEND}, \t{PDEPEND} \\ \bottomrule @@ -32,7 +32,7 @@ \label{tab:dep-class-api} \begin{tabular}{llll} \toprule - & \t{BDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ + & \t{BDEPEND}, \t{IDEPEND} & \t{DEPEND} & \t{RDEPEND}, \t{PDEPEND} \\ \midrule Binary compatible with & \t{CBUILD} & \t{CHOST} & \t{CHOST} \\ Base unprefixed path & \t{/} & \t{\$\{SYSROOT\}} & \t{\$\{ROOT\}} \\ @@ -82,16 +82,24 @@ as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: dependency. \end{compactitem} +\featurelabel{idepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} as supporting +\t{IDEPEND}, install-time dependencies can be specified. These dependencies are binary compatible +with the native build system (\t{CBUILD}). Ebuilds are allowed to call them in \t{pkg_preinst} and +\t{pkg_postinst}. Ebuilds may also call them in \t{pkg_prerm} and \t{pkg_postrm} but must not rely +on them being available. + \ChangeWhenAddingAnEAPI{8} \begin{centertable}{EAPIs supporting additional dependency types} \label{tab:depend-table} - \begin{tabular}{ll} + \begin{tabular}{lll} \toprule \multicolumn{1}{c}{\textbf{EAPI}} & - \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ + \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} & + \multicolumn{1}{c}{\textbf{Supports \t{IDEPEND}?}} \\ \midrule - 0, 1, 2, 3, 4, 5, 6 & No \\ - 7, 8 & Yes \\ + 0, 1, 2, 3, 4, 5, 6 & No & No \\ + 7 & Yes & No \\ + 8 & Yes & Yes \\ \bottomrule \end{tabular} \end{centertable} @@ -111,7 +119,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st \begin{compactitem} \item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, - \t{PDEPEND}. + \t{PDEPEND}, \t{IDEPEND}. \item A URI, in the form \t{proto://host/path}. Permitted in \t{HOMEPAGE} and \t{SRC_URI}\@. In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when @@ -129,7 +137,8 @@ be surrounded on both sides by whitespace, except at the start and end of the st followed by an open parenthesis, followed by whitespace, followed by one or more of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. - Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. + Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{IDEPEND}, \t{LICENSE}, + \t{REQUIRED_USE}. \item An exactly-one-of group, which has the same format as the any-of group, but begins with the string \t{\textasciicircum\textasciicircum} instead. Permitted in \t{REQUIRED_USE}. \item \featurelabel{at-most-one-of} An at-most-one-of group, which has the same format as the diff --git a/eapi-differences.tex b/eapi-differences.tex index 22f99e2..f3af563 100644 --- a/eapi-differences.tex +++ b/eapi-differences.tex @@ -86,6 +86,9 @@ Selective URI restrictions & \compactfeatureref{uri-restrict} & \t{BDEPEND} & \compactfeatureref{bdepend} & No & No & No & Yes & Yes \\ +\t{IDEPEND} & \compactfeatureref{idepend} & + No & No & No & No & Yes \\ + \t{??\ ( )} groups & \compactfeatureref{at-most-one-of} & No & Yes & Yes & Yes & Yes \\ @@ -490,6 +493,7 @@ EAPI 8 is EAPI 7 with the following changes: \item Less strict naming rules for files in \t{updates} directory, \featureref{updates-filenames}. \item Bash version is 5.0, \featureref{bash-version}. \item Selective fetch/mirror restriction, \featureref{uri-restrict}. +\item \t{IDEPEND}, \featureref{idepend}. \end{compactitem} \ChangeWhenAddingAnEAPI{8} diff --git a/ebuild-env-vars.tex b/ebuild-env-vars.tex index 5f17ff8..fce7c6f 100644 --- a/ebuild-env-vars.tex +++ b/ebuild-env-vars.tex @@ -148,8 +148,9 @@ variable. Ditto & No & \featurelabel{broot} The absolute path to the root directory containing build dependencies - satisfied by \t{BDEPEND}, typically executable build tools. This includes any applicable offset - prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as supporting \t{BROOT}. + satisfied by \t{BDEPEND} and \t{IDEPEND}, typically executable build tools. This includes any + applicable offset prefix. Only for EAPIs listed in table~\ref{tab:offset-env-vars-table} as + supporting \t{BROOT}. \\ \t{T} & All & diff --git a/ebuild-vars.tex b/ebuild-vars.tex index 59c5b64..4f74e2b 100644 --- a/ebuild-vars.tex +++ b/ebuild-vars.tex @@ -86,6 +86,7 @@ Ebuilds may define any of the following variables: for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for details. \item[PDEPEND] See chapter~\ref{ch:dependencies}. +\item[IDEPEND] See chapter~\ref{ch:dependencies}. \end{description} \ChangeWhenAddingAnEAPI{8} diff --git a/eclasses.tex b/eclasses.tex index bf0007b..7f4ba67 100644 --- a/eclasses.tex +++ b/eclasses.tex @@ -34,11 +34,11 @@ The \t{inherit} command must also ensure that: \section{Eclass-defined Metadata Keys} -The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and \t{PDEPEND} variables -are handled specially when set by an eclass. They must be accumulated across eclasses, appending -the value set by each eclass to the resulting value after the previous one is loaded. Then the -eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this -is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. +The \t{IUSE}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND} and \t{IDEPEND} +variables are handled specially when set by an eclass. They must be accumulated across eclasses, +appending the value set by each eclass to the resulting value after the previous one is loaded. +Then the eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, +this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. \section{EXPORT_FUNCTIONS} diff --git a/metadata-cache.tex b/metadata-cache.tex index 33574c4..d69ecdd 100644 --- a/metadata-cache.tex +++ b/metadata-cache.tex @@ -36,6 +36,8 @@ order. Other lines may be present following these; their meanings are not define metadata; see table~\ref{tab:optional-vars-table}. \item Defined phases (\t{DEFINED_PHASES}). In some EAPIs, may optionally be blank, regardless of ebuild metadata; see table~\ref{tab:defined-phases-table}. +\item Install-time dependencies (\t{IDEPEND}). + Blank in some EAPIs; see table~\ref{tab:depend-table}. \item Blank lines to pad the file to 22 lines long \end{compactenum}