1 |
commit: 080a25221d9d5920738b046f2f3ccaf94a0c9ab6 |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Oct 4 16:19:16 2017 +0000 |
4 |
Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Feb 24 12:55:24 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=080a2522 |
7 |
|
8 |
EAPI 7 has BDEPEND |
9 |
|
10 |
Bug: https://bugs.gentoo.org/317337 |
11 |
|
12 |
dependencies.tex | 33 ++++++++++++++++++++++++++++++--- |
13 |
eapi-differences.tex | 4 ++++ |
14 |
ebuild-vars.tex | 1 + |
15 |
eclasses.tex | 11 ++++++----- |
16 |
metadata-cache.tex | 3 ++- |
17 |
5 files changed, 43 insertions(+), 9 deletions(-) |
18 |
|
19 |
diff --git a/dependencies.tex b/dependencies.tex |
20 |
index 51c67a4..e53cff6 100644 |
21 |
--- a/dependencies.tex |
22 |
+++ b/dependencies.tex |
23 |
@@ -15,7 +15,7 @@ |
24 |
None (ebuilds can rely only on the packages in the system~set) \\ |
25 |
\addlinespace |
26 |
\t{src_unpack}, \t{src_prepare}, \t{src_configure}, \t{src_compile}, \t{src_test}, |
27 |
- \t{src_install} & \t{DEPEND} \\ |
28 |
+ \t{src_install} & \t{DEPEND}, \t{BDEPEND} \\ |
29 |
\addlinespace |
30 |
\t{pkg_preinst}, \t{pkg_postinst}, \t{pkg_prerm}, \t{pkg_postrm} & |
31 |
\t{RDEPEND} (unless the particular dependency results in a circular dependency, in which |
32 |
@@ -38,6 +38,32 @@ There are three classes of dependencies supported by ebuilds: |
33 |
the package manager finishes the batch of installs. |
34 |
\end{compactitem} |
35 |
|
36 |
+\featurelabel{bdepend} Additionally, in EAPIs listed in table~\ref{tab:depend-table} |
37 |
+as supporting \t{BDEPEND}, the build dependencies are split into two subclasses: |
38 |
+ |
39 |
+\begin{compactitem} |
40 |
+\item \t{BDEPEND} build dependencies that are binary compatible with the native build system |
41 |
+ (\t{CBUILD}). The ebuild is allowed to call binary executables installed by this kind of |
42 |
+ dependency. |
43 |
+ \item \t{DEPEND} build dependencies that are binary compatible with the system being built |
44 |
+ (\t{CHOST}). The ebuild must not execute binary executables installed by this kind of |
45 |
+ dependency. |
46 |
+\end{compactitem} |
47 |
+ |
48 |
+\ChangeWhenAddingAnEAPI{7} |
49 |
+\begin{centertable}{EAPIs supporting additional dependency types} |
50 |
+ \label{tab:depend-table} |
51 |
+ \begin{tabular}{ll} |
52 |
+ \toprule |
53 |
+ \multicolumn{1}{c}{\textbf{EAPI}} & |
54 |
+ \multicolumn{1}{c}{\textbf{Supports \t{BDEPEND}?}} \\ |
55 |
+ \midrule |
56 |
+ 0, 1, 2, 3, 4, 5, 6 & No \\ |
57 |
+ 7 & Yes \\ |
58 |
+ \bottomrule |
59 |
+ \end{tabular} |
60 |
+\end{centertable} |
61 |
+ |
62 |
Table~\ref{tab:phase-function-dependency-classes} lists dependencies which must be satisfied before |
63 |
a particular phase function is executed. |
64 |
|
65 |
@@ -51,7 +77,8 @@ The following elements are recognised in at least one class of specification. Al |
66 |
be surrounded on both sides by whitespace, except at the start and end of the string. |
67 |
|
68 |
\begin{compactitem} |
69 |
-\item A package dependency specification. Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}. |
70 |
+\item A package dependency specification. Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, |
71 |
+ \t{PDEPEND}. |
72 |
\item A URI, in the form \t{proto://host/path}. Permitted in \t{SRC_URI} and \t{HOMEPAGE}\@. |
73 |
In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting \t{SRC_URI} arrows, may |
74 |
optionally be followed by whitespace, then \t{->}, then whitespace, then a simple filename when |
75 |
@@ -69,7 +96,7 @@ be surrounded on both sides by whitespace, except at the start and end of the st |
76 |
followed by an open parenthesis, followed by whitespace, followed by one or more |
77 |
of (a dependency item of any kind followed by whitespace), followed by a close parenthesis. |
78 |
More formally: \t{any-of} \t{::=} \t{'||' whitespace '(' whitespace (item whitespace)+ ')'}. |
79 |
- Permitted in \t{DEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. |
80 |
+ Permitted in \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND}, \t{PDEPEND}, \t{LICENSE}, \t{REQUIRED_USE}. |
81 |
\item \featurelabel{binding-any-of} A binding-any-of group, which has the same format as the any-of |
82 |
group, but begins with the string \t{||=} instead. Permitted in \t{DEPEND}, \t{RDEPEND} in EAPIs |
83 |
listed in table~\ref{tab:dep-groups} as supporting \t{||=} groups. |
84 |
|
85 |
diff --git a/eapi-differences.tex b/eapi-differences.tex |
86 |
index 0f6371b..8f7db7e 100644 |
87 |
--- a/eapi-differences.tex |
88 |
+++ b/eapi-differences.tex |
89 |
@@ -77,6 +77,9 @@ Bash version & \compactfeatureref{bash-version} & |
90 |
\t{DEFINED_PHASES} & \compactfeatureref{defined-phases} & |
91 |
Optionally & Yes & Yes & Yes & Yes \\ |
92 |
|
93 |
+\t{BDEPEND} & \compactfeatureref{bdepend} & |
94 |
+ No & No & No & No & Yes \\ |
95 |
+ |
96 |
Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & |
97 |
\compactfeatureref{empty-dep-groups} & |
98 |
Yes & Yes & Yes & Yes & No \\ |
99 |
@@ -427,6 +430,7 @@ EAPI 7 is EAPI 6 with the following changes: |
100 |
\item \t{ROOT}, \t{EROOT}, \t{D}, \t{ED} no longer end with a trailing slash, |
101 |
\featureref{trailing-slash}. |
102 |
\item \t{econf} adds \t{-{}-with-sysroot}, \featureref{econf-options}. |
103 |
+\item \t{BDEPEND}, \featureref{bdepend}. |
104 |
\end{compactitem} |
105 |
|
106 |
\ChangeWhenAddingAnEAPI{7} |
107 |
|
108 |
diff --git a/ebuild-vars.tex b/ebuild-vars.tex |
109 |
index b871b3a..b873051 100644 |
110 |
--- a/ebuild-vars.tex |
111 |
+++ b/ebuild-vars.tex |
112 |
@@ -90,6 +90,7 @@ Ebuilds may define any of the following variables: |
113 |
for its value if unset and when used with an eclass. See section~\ref{sec:rdepend-depend} for |
114 |
details. |
115 |
\item[PDEPEND] See section~\ref{sec:dependencies}. |
116 |
+\item[BDEPEND] See section~\ref{sec:dependencies}. |
117 |
\end{description} |
118 |
|
119 |
\ChangeWhenAddingAnEAPI{7} |
120 |
|
121 |
diff --git a/eclasses.tex b/eclasses.tex |
122 |
index fc72508..c00070d 100644 |
123 |
--- a/eclasses.tex |
124 |
+++ b/eclasses.tex |
125 |
@@ -34,11 +34,12 @@ The \t{inherit} command must also ensure that: |
126 |
|
127 |
\section{Eclass-defined Metadata Keys} |
128 |
|
129 |
-The \t{IUSE}, \t{IUSE_RUNTIME}, \t{REQUIRED_USE}, \t{DEPEND}, \t{RDEPEND} and \t{PDEPEND} variables |
130 |
-are handled specially when set by an eclass. They must be accumulated across eclasses, appending |
131 |
-the value set by each eclass to the resulting value after the previous one is loaded. Then the |
132 |
-eclass-defined value is appended to that defined by the ebuild. In the case of \t{RDEPEND}, this is |
133 |
-done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} are applied. |
134 |
+The \t{IUSE}, \t{IUSE_RUNTIME}, \t{REQUIRED_USE}, \t{DEPEND}, \t{BDEPEND}, \t{RDEPEND} and |
135 |
+\t{PDEPEND} variables are handled specially when set by an eclass. They must be accumulated across |
136 |
+eclasses, appending the value set by each eclass to the resulting value after the previous one is |
137 |
+loaded. Then the eclass-defined value is appended to that defined by the ebuild. In the case of |
138 |
+\t{RDEPEND}, this is done after the implicit \t{RDEPEND} rules in section~\ref{sec:rdepend-depend} |
139 |
+are applied. |
140 |
|
141 |
\section{EXPORT_FUNCTIONS} |
142 |
|
143 |
|
144 |
diff --git a/metadata-cache.tex b/metadata-cache.tex |
145 |
index 38e54a4..eb0a79a 100644 |
146 |
--- a/metadata-cache.tex |
147 |
+++ b/metadata-cache.tex |
148 |
@@ -29,7 +29,8 @@ order. Other lines may be present following these; their meanings are not define |
149 |
\item Use flags that this package requires (\t{REQUIRED_USE}). |
150 |
Blank in some EAPIs; see table~\ref{tab:optional-vars-table}. |
151 |
\item Post dependencies (\t{PDEPEND}) |
152 |
-\item Unused; previously used for old-style virtual \t{PROVIDE}. |
153 |
+\item Build-time dependencies for \t{CBUILD} host (\t{BDEPEND}). |
154 |
+ Blank in some EAPIs; see table~\ref{tab:depend-table}. |
155 |
\item The ebuild API version to which this package conforms (\t{EAPI}) |
156 |
\item Properties (\t{PROPERTIES}). In some EAPIs, may optionally be blank, regardless of ebuild |
157 |
metadata; see table~\ref{tab:optional-vars-table}. |