commit:     b4dbddf8a81cfc55caefaeec88bde5497c01c67a
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  4 16:19:16 2017 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  4 16:25:02 2017 +0000
URL:        https://gitweb.gentoo.org/proj/pms.git/commit/?id=b4dbddf8

EAPI 7 has BDEPEND

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

 dependencies.tex     | 33 ++++++++++++++++++++++++++++++---
 eapi-differences.tex |  4 ++++
 ebuild-vars.tex      |  1 +
 eclasses.tex         | 10 +++++-----
 metadata-cache.tex   |  2 ++
 5 files changed, 42 insertions(+), 8 deletions(-)

diff --git a/dependencies.tex b/dependencies.tex
index 258b394..eef2d91 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,18 @@ 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 Build dependencies that are binary compatible with the native build 
system
+    / CBUILD (\t{BDEPEND}). The ebuild is allowed to call binary executables
+    installed by this kind of dependency.
+\item Build dependencies that are binary compatible with the system being built
+    / CHOST (\t{DEPEND}). The ebuild must not execute binary executables 
installed
+    by this kind of dependency.
+\end{compactitem}
+
 Table~\ref{tab:phase-function-dependency-classes} lists dependencies which 
must be satisfied before
 a particular phase function is executed.
 
@@ -50,7 +62,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
@@ -68,7 +81,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 zero 
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 An exactly-one-of group, which consists of the string 
\t{\textasciicircum\textasciicircum},
     followed by whitespace, followed by an open parenthesis, followed by 
whitespace, followed by
     zero or more of (a dependency item of any kind followed by whitespace), 
followed by a close
@@ -93,6 +106,20 @@ be surrounded on both sides by whitespace, except at the 
start and end of the st
 In particular, note that whitespace is not optional.
 
 \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}
+
+\ChangeWhenAddingAnEAPI{7}
 \begin{centertable}{EAPIs supporting \t{SRC_URI} arrows}
     \label{tab:uri-arrows-table}
     \begin{tabular}{ll}

diff --git a/eapi-differences.tex b/eapi-differences.tex
index 31cc5f6..9205125 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
 
+\t{BDEPEND} & \compactfeatureref{bdepend} &
+    No & No & No & No & Yes \\
+
 \t{SYSROOT}, \t{ESYSROOT} & \compactfeatureref{sysroot} &
     No & No & No & No & Yes \\
 
@@ -409,6 +412,7 @@ EAPI 7 is EAPI 6 with the following changes:
 \item \t{patch} is compatible with GNU patch 2.7, \featureref{gnu-patch}.
 \item \t{SYSROOT} and \t{ESYSROOT} added, \featureref{sysroot}.
 \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 32f853c..e4efcae 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -83,6 +83,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 49c6c4e..44683b5 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{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} 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 80018e4..df4b8ed 100644
--- a/metadata-cache.tex
+++ b/metadata-cache.tex
@@ -35,6 +35,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 Build-time dependencies for \t{CBUILD} host (\t{BDEPEND}).
+    Blank in some EAPIs; see table~\ref{tab:depend-table}.
 \item Blank lines to pad the file to 22 lines long
 \end{compactenum}
 

Reply via email to