Gentoo Archives: gentoo-commits

From: "Ulrich Müller" <ulm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/pms:eapi-7 commit in: /
Date: Sat, 24 Feb 2018 12:58:52
Message-Id: 1519476924.080a25221d9d5920738b046f2f3ccaf94a0c9ab6.ulm@gentoo
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}.