commit: f05b7511d7f474f1b485442646d6ca53db46af42 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Tue Sep 19 21:17:57 2017 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Thu Sep 28 20:38:48 2017 +0000 URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=f05b7511
EAPI 7 has BDEPEND Bug: https://bugs.gentoo.org/317337 dependencies.tex | 28 +++++++++++++++++++++++++++- eapi-differences.tex | 4 ++++ ebuild-vars.tex | 1 + 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/dependencies.tex b/dependencies.tex index 031960b..a876b43 100644 --- a/dependencies.tex +++ b/dependencies.tex @@ -14,7 +14,7 @@ \t{pkg_pretend}, \t{pkg_setup}, \t{pkg_info}, \t{pkg_nofetch} & None (ebuilds can rely only on the packages in the system set) \\ \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} \\ \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 case it may be installed later) \\ @@ -35,6 +35,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. @@ -90,6 +102,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 179ee6a..5180795 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}
