From: "Ulrich Müller" <ulm@gentoo.org>
To: gentoo-pms@lists.gentoo.org
Cc: "Michał Górny" <mgorny@gentoo.org>, "Ulrich Müller" <ulm@gentoo.org>
Subject: [gentoo-pms] [PATCH 09/21] EAPI 8 has install-time dependencies (IDEPEND)
Date: Thu, 27 May 2021 22:25:57 +0200 [thread overview]
Message-ID: <20210527202609.6445-10-ulm@gentoo.org> (raw)
In-Reply-To: <20210527202609.6445-1-ulm@gentoo.org>
From: Michał Górny <mgorny@gentoo.org>
Bug: https://bugs.gentoo.org/660306
Signed-off-by: Michał Górny <mgorny@gentoo.org>
[Updated as discussed in -pms mailing list]
Signed-off-by: Ulrich Müller <ulm@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 3ef6fa6..f14a08c 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 2e562d6..ddea935 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 f6b1c26..d07cca4 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}
--
2.31.1
next prev parent reply other threads:[~2021-05-27 20:27 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-27 20:25 [gentoo-pms] EAPI 8 draft for review Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 01/21] Add an EAPI 8 identical to EAPI 7 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 02/21] EAPI feature table: Consolidate EAPIs 0 to 4 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 03/21] eapis.tex: Merge redundant descriptions Ulrich Müller
2021-06-05 10:04 ` [gentoo-pms] [PATCH 03/21 v2] " Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 04/21] Relicense from CC-BY-SA-3.0 to CC-BY-SA-4.0 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 05/21] EAPI 8 has less strict naming rules in the updates directory Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 06/21] EAPI 8: Bash version is 5.0 Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 07/21] Ban nameref variables from exported and default scope Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 08/21] EAPI 8 has selective URI restrictions Ulrich Müller
2021-05-27 20:25 ` Ulrich Müller [this message]
2021-05-27 20:25 ` [gentoo-pms] [PATCH 10/21] EAPI 8 has an empty working directory in pkg_* phases Ulrich Müller
2021-05-27 20:25 ` [gentoo-pms] [PATCH 11/21] Rearrange listings of phase functions Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 12/21] EAPI 8: Default src_prepare doesn't accept options in PATCHES Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 13/21] EAPI 8 accumulates PROPERTIES and RESTRICT across eclasses Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 14/21] EAPI 8: useq, hasv and hasq are banned Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 15/21] EAPI 8 has econf passing --datarootdir Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 16/21] EAPI 8: econf adds --disable-static Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 17/21] Split the econf options table because it has become too wide Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 18/21] EAPI 8 has dosym -r Ulrich Müller
2021-06-03 8:24 ` [gentoo-pms] [PATCH 18/21 v2] " Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 19/21] EAPI 8: insopts and exeopts affect only doins and doexe Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 20/21] EAPI 8: usev has an optional second argument Ulrich Müller
2021-05-27 20:26 ` [gentoo-pms] [PATCH 21/21] EAPI 8 removes .7z, .rar, .lha unpack support Ulrich Müller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210527202609.6445-10-ulm@gentoo.org \
--to=ulm@gentoo.org \
--cc=gentoo-pms@lists.gentoo.org \
--cc=mgorny@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox