summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2017-10-04 18:19:16 +0200
committerUlrich Müller <ulm@gentoo.org>2018-03-31 17:30:43 +0200
commit1404b78d0bc62ba9c3038e91b240ec13ffd3744d (patch)
tree31efe039c897930c1c079cd1fb7e2d71657d30a7
parentEAPI 7: econf adds --with-sysroot (diff)
downloadpms-1404b78d0bc62ba9c3038e91b240ec13ffd3744d.tar.gz
pms-1404b78d0bc62ba9c3038e91b240ec13ffd3744d.tar.bz2
pms-1404b78d0bc62ba9c3038e91b240ec13ffd3744d.zip
EAPI 7 has BDEPEND
Bug: https://bugs.gentoo.org/317337
-rw-r--r--dependencies.tex33
-rw-r--r--eapi-differences.tex4
-rw-r--r--ebuild-vars.tex1
-rw-r--r--eclasses.tex10
-rw-r--r--metadata-cache.tex3
5 files changed, 42 insertions, 9 deletions
diff --git a/dependencies.tex b/dependencies.tex
index 475ad6b..40bfae6 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 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 81f430e..9aa274c 100644
--- a/eapi-differences.tex
+++ b/eapi-differences.tex
@@ -74,6 +74,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 \\
+
\t{??\ ( )} groups & \compactfeatureref{at-most-one-of} &
No & No & Yes & Yes & Yes \\
@@ -415,6 +418,7 @@ EAPI 7 is EAPI 6 with the following changes:
\featureref{trailing-slash}.
\item \t{SYSROOT} and \t{ESYSROOT}, \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 53b1045..faecf8f 100644
--- a/ebuild-vars.tex
+++ b/ebuild-vars.tex
@@ -84,6 +84,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..7a8bfbd 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 952f03d..3ac64a6 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}.