commit:     43cca722f6a71369009324a8f99f032fb00c1eb9
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  4 16:19:16 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Sun Feb 18 13:35:54 2018 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=43cca722

EAPI 7 has BDEPEND

Bug: https://bugs.gentoo.org/317337

 dependencies.tex     | 33 ++++++++++++++++++++++++++++++---
 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 11 ++++++-----
 metadata-cache.tex   |  3 ++-
 5 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 51c67a4..e53cff6 100644
--- a/dependencies.tex
+++ b/dependencies.tex
@@ -15,7 +15,7 @@
           None (ebuilds can rely only on the packages in the system~set) \\
       \addlinespace
       \t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, 
\t{src_test},
-          \t{src_install} & \t{DEPEND} \\
+          \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\
       \addlinespace
       \t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} &
           \t{RDEPEND} (unless the particular dependency results in a circular 
dependency, in which
@@ -38,6 +38,32 @@ There are three classes of dependencies supported by ebuilds:
     the package manager finishes the batch of installs.
 \end{compactitem}
 
+\featurelabel{bdepend} Additionally, in EAPIs listed in 
table~\ref{tab:depend-table}
+as supporting \t{BDEPEND}, the build dependencies are split into two 
subclasses:
+
+\begin{compactitem}
+\item \t{BDEPEND} build dependencies that are binary compatible with the 
native build system
+    (\t{CBUILD}). The ebuild is allowed to call binary executables installed 
by this kind of
+    dependency.
+    \item \t{DEPEND} build dependencies that are binary compatible with the 
system being built
+    (\t{CHOST}). The ebuild must not execute binary executables installed by 
this kind of
+    dependency.
+\end{compactitem}
+
+\ChangeWhenAddingAnEAPI{7}
+\begin{centertable}{EAPIs supporting additional dependency types}
+    \label{tab:depend-table}
+    \begin{tabular}{ll}
+      \toprule
+      \multicolumn{1}{c}{\textbf{EAPI}} &
+      \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\
+      \midrule
+      0, 1, 2, 3, 4, 5, 6 & No  \\
+      7                   & Yes \\
+      \bottomrule
+    \end{tabular}
+\end{centertable}
+
 Table~\ref{tab:phase-function-dependency-classes} lists dependencies which 
must be satisfied before
 a particular phase function is executed.
 
@@ -51,7 +77,8 @@ The following elements are recognised in at least one class 
of specification. Al
 be surrounded on both sides by whitespace, except at the start and end of the 
string.
 
 \begin{compactitem}
-\item A package dependency specification. Permitted in \t{DEPEND}, 
\t{RDEPEND}, \t{PDEPEND}.
+\item A package dependency specification. Permitted in \t{DEPEND}, 
\t{BDEPEND}, \t{RDEPEND},
+    \t{PDEPEND}.
 \item A URI, in the form \t{proto://host/path}. Permitted in \t{SRC_URI} and 
\t{HOMEPAGE}\@.
     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
@@ -69,7 +96,7 @@ 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{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, 
\t{REQUIRED_USE}.
+    Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, 
\t{LICENSE}, \t{REQUIRED_USE}.
 \item \featurelabel{binding-any-of} A binding-any-of group, which has the same 
format as the any-of
     group, but begins with the string \t{||=} instead. Permitted in 
\t{DEPEND}, \t{RDEPEND} in EAPIs
     listed in table~\ref{tab:dep-groups} as supporting \t{||=} groups.

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 0f6371b..8f7db7e 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -77,6 +77,9 @@ Bash version & \compactfeatureref{bash-version} &
 \t{DEFINED_PHASES} & \compactfeatureref{defined-phases} &
     Optionally & Yes & Yes & Yes & Yes \\
 
+\t{BDEPEND} & \compactfeatureref{bdepend} &
+    No & No & No & No & Yes \\
+
 Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match &
     \compactfeatureref{empty-dep-groups} &
     Yes & Yes & Yes & Yes & No \\
@@ -427,6 +430,7 @@ EAPI 7 is EAPI 6 with the following changes:
 \item \t{ROOT}, \t{EROOT}, \t{D}, \t{ED} no longer end with a trailing slash,
     \featureref{trailing-slash}.
 \item \t{econf} adds \t{-{}-with-sysroot}, \featureref{econf-options}.
+\item \t{BDEPEND}, \featureref{bdepend}.
 \end{compactitem}
 
 \ChangeWhenAddingAnEAPI{7}

diff --git a/ebuild-vars.tex b/ebuild-vars.tex
index b871b3a..b873051 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -90,6 +90,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 section~\ref{sec:dependencies}.
+\item[BDEPEND] See section~\ref{sec:dependencies}.
 \end{description}
 
 \ChangeWhenAddingAnEAPI{7}

diff --git a/eclasses.tex b/eclasses.tex
index fc72508..c00070d 100644
--- a/eclasses.tex
+++ b/eclasses.tex
@@ -34,11 +34,12 @@ The \t{inherit} command must also ensure that:
 
 \section{Eclass-defined Metadata Keys}
 
-The \t{IUSE}, \t{IUSE_RUNTIME}, \t{REQUIRED_USE}, \t{DEPEND}, \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{IUSE_RUNTIME}, \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.
 
 \section{EXPORT_FUNCTIONS}
 

diff --git a/metadata-cache.tex b/metadata-cache.tex
index 38e54a4..eb0a79a 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -29,7 +29,8 @@ order. Other lines may be present following these; their 
meanings are not define
 \item Use flags that this package requires (\t{REQUIRED_USE}).
     Blank in some EAPIs; see table~\ref{tab:optional-vars-table}.
 \item Post dependencies (\t{PDEPEND})
-\item Unused; previously used for old-style virtual \t{PROVIDE}.
+\item Build-time dependencies for \t{CBUILD} host (\t{BDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item The ebuild API version to which this package conforms (\t{EAPI})
 \item Properties (\t{PROPERTIES}). In some EAPIs, may optionally be blank, 
regardless of ebuild
     metadata; see table~\ref{tab:optional-vars-table}.

Reply via email to