1 |
commit: e0e98974e025ee7e71e1a62c81957008cec69dd7 |
2 |
Author: Ulrich Müller <ulm <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Mar 23 20:27:04 2019 +0000 |
4 |
Commit: Ulrich Müller <ulm <AT> gentoo <DOT> org> |
5 |
CommitDate: Sun Mar 24 15:56:04 2019 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/pms.git/commit/?id=e0e98974 |
7 |
|
8 |
Move some subsections out of the "Dependencies" chapter. |
9 |
|
10 |
SRC_URI, REQUIRED_USE, PROPERTIES, and RESTRICT are ebuild-defined |
11 |
variables. Move them to that chapter. |
12 |
|
13 |
Add reference to tab:uri-arrows-table in SRC_URI section. Otherwise, |
14 |
no change of wording. |
15 |
|
16 |
Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org> |
17 |
|
18 |
dependencies.tex | 79 -------------------------------------------------- |
19 |
eapi-differences.tex | 10 +++---- |
20 |
ebuild-vars.tex | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++ |
21 |
3 files changed, 86 insertions(+), 84 deletions(-) |
22 |
|
23 |
diff --git a/dependencies.tex b/dependencies.tex |
24 |
index 299974e..a38b61e 100644 |
25 |
--- a/dependencies.tex |
26 |
+++ b/dependencies.tex |
27 |
@@ -132,20 +132,6 @@ be surrounded on both sides by whitespace, except at the start and end of the st |
28 |
|
29 |
In particular, note that whitespace is not optional. |
30 |
|
31 |
-\ChangeWhenAddingAnEAPI{7} |
32 |
-\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows} |
33 |
- \label{tab:uri-arrows-table} |
34 |
- \begin{tabular}{ll} |
35 |
- \toprule |
36 |
- \multicolumn{1}{c}{\textbf{EAPI}} & |
37 |
- \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\ |
38 |
- \midrule |
39 |
- 0, 1 & No \\ |
40 |
- 2, 3, 4, 5, 6, 7 & Yes \\ |
41 |
- \bottomrule |
42 |
- \end{tabular} |
43 |
-\end{centertable} |
44 |
- |
45 |
\ChangeWhenAddingAnEAPI{7} |
46 |
\begin{centertable}{EAPIs supporting \t{REQUIRED_USE ??}\ groups} |
47 |
\label{tab:at-most-one-of-table} |
48 |
@@ -397,71 +383,6 @@ would not have to be part of \t{IUSE}.} |
49 |
It is an error for an ebuild to use a conditional use dependency when that ebuild does not have the |
50 |
flag in \t{IUSE_EFFECTIVE}. |
51 |
|
52 |
-\subsection{USE state constraints} |
53 |
-\label{sec:required-use} |
54 |
-\t{REQUIRED_USE} contains a list of assertions that must be met by the configuration of \t{USE} |
55 |
-flags to be valid for this ebuild. In order to be matched, a \t{USE} flag in a terminal element |
56 |
-must be enabled (or disabled if it has an exclamation mark prefix). |
57 |
- |
58 |
-If the package manager encounters a package version where \t{REQUIRED_USE} assertions are not met, |
59 |
-it must treat this package version as if it was masked. No phase functions must be called. |
60 |
- |
61 |
-It is an error for a flag to be used if it is not included in \t{IUSE_EFFECTIVE}. |
62 |
- |
63 |
-\subsection{Restrict} |
64 |
-\label{sec:restrict} |
65 |
- |
66 |
-The following tokens are permitted inside \t{RESTRICT}: |
67 |
- |
68 |
-\begin{description} |
69 |
-\item[mirror] The package's \t{SRC_URI} entries may not be mirrored, and mirrors should not |
70 |
- be checked when fetching. |
71 |
-\item[fetch] The package's \t{SRC_URI} entries may not be downloaded automatically. If |
72 |
- entries are not available, \t{pkg_nofetch} is called. Implies \t{mirror}. |
73 |
-\item[strip] No stripping of debug symbols from files to be installed may be performed. In EAPIs |
74 |
- listed in table~\ref{tab:staging-area-commands} as supporting controllable stripping, this |
75 |
- behaviour may be altered by the \t{dostrip} command. |
76 |
-\item[userpriv] The package manager may not drop root privileges when building the package. |
77 |
-\item[test] The \t{src_test} phase must not be run. |
78 |
-\end{description} |
79 |
- |
80 |
-Package managers may recognise other tokens, but ebuilds may not rely upon them being supported. |
81 |
- |
82 |
-\subsection{Properties} |
83 |
-\label{sec:properties} |
84 |
- |
85 |
-The following tokens are permitted inside \t{PROPERTIES}: |
86 |
- |
87 |
-\begin{description} |
88 |
-\item[interactive] The package may require interaction with the user via the tty. |
89 |
-\end{description} |
90 |
- |
91 |
-Ebuilds may not rely upon any token being supported. |
92 |
- |
93 |
-\subsection{SRC_URI} |
94 |
-\label{sec:src-uri-behaviour} |
95 |
- |
96 |
-All filename components that are enabled (i.\,e.\ not inside a use-conditional block that is not |
97 |
-matched) in \t{SRC_URI} must be available in the \t{DISTDIR} directory. In addition, these |
98 |
-components are used to make the \t{A} and \t{AA} variables. |
99 |
- |
100 |
-If a component contains a full URI with protocol, that download location must be used. Package |
101 |
-managers may also consult mirrors for their files. |
102 |
- |
103 |
-The special \t{mirror://} protocol must be supported. See section~\ref{sec:thirdpartymirrors} for mirror |
104 |
-details. |
105 |
- |
106 |
-If a simple filename rather than a full URI is provided, the package manager can only use mirrors to |
107 |
-download the file. |
108 |
- |
109 |
-The \t{RESTRICT} metadata key can be used to impose additional restrictions upon downloading---see |
110 |
-section~\ref{sec:restrict} for details. |
111 |
- |
112 |
-\featurelabel{src-uri-arrows} In EAPIs supporting arrows, if an arrow is used, the filename used |
113 |
-when saving to \t{DISTDIR} shall instead be the name on the right of the arrow. When consulting |
114 |
-mirrors (except for those explicitly listed on the left of the arrow, if \t{mirror://} is used), the |
115 |
-filename to the right of the arrow shall be requested instead of the filename in the URI. |
116 |
- |
117 |
% vim: set filetype=tex fileencoding=utf8 et tw=100 spell spelllang=en : |
118 |
|
119 |
%%% Local Variables: |
120 |
|
121 |
diff --git a/eapi-differences.tex b/eapi-differences.tex |
122 |
index a2d04f8..4c22473 100644 |
123 |
--- a/eapi-differences.tex |
124 |
+++ b/eapi-differences.tex |
125 |
@@ -68,6 +68,9 @@ Bash version & \compactfeatureref{bash-version} & |
126 |
\t{PROPERTIES} & \compactfeatureref{properties} & |
127 |
Optionally & Yes & Yes & Yes & Yes \\ |
128 |
|
129 |
+\t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & |
130 |
+ * & Yes & Yes & Yes & Yes \\ |
131 |
+ |
132 |
\t{RDEPEND=DEPEND} & \compactfeatureref{rdepend-depend} & |
133 |
Yes & No & No & No & No \\ |
134 |
|
135 |
@@ -84,9 +87,6 @@ Empty \t{||}, \t{\textasciicircum\textasciicircum} groups match & |
136 |
\compactfeatureref{empty-dep-groups} & |
137 |
Yes & Yes & Yes & Yes & No \\ |
138 |
|
139 |
-\t{SRC_URI} arrows & \compactfeatureref{src-uri-arrows} & |
140 |
- * & Yes & Yes & Yes & Yes \\ |
141 |
- |
142 |
Slot dependencies & \compactfeatureref{slot-deps} & |
143 |
* & Named & Named and Operator & Named and Operator & Named and Operator \\ |
144 |
|
145 |
@@ -343,9 +343,9 @@ EAPI 1 is EAPI 0 with the following changes: |
146 |
EAPI 2 is EAPI 1 with the following changes: |
147 |
|
148 |
\begin{compactitem} |
149 |
+\item \t{SRC_URI} arrows, \featureref{src-uri-arrows}. |
150 |
\item Use dependencies, \featureref{use-deps}. |
151 |
\item \t{!}\ and \t{!!}\ blockers, \featureref{bang-strength}. |
152 |
-\item \t{SRC_URI} arrows, \featureref{src-uri-arrows}. |
153 |
\item \t{src_prepare}, \featureref{src-prepare}. |
154 |
\item \t{src_configure}, \featureref{src-configure}. |
155 |
\item Different \t{src_compile} implementation, \featureref{src-compile-2}. |
156 |
@@ -370,8 +370,8 @@ EAPI 3 is EAPI 2 with the following changes: |
157 |
EAPI 4 is EAPI 3 with the following changes: |
158 |
|
159 |
\begin{compactitem} |
160 |
-\item \t{PROPERTIES} support is mandatory, \featureref{properties}. |
161 |
\item \t{REQUIRED_USE}, \featureref{required-use}. |
162 |
+\item \t{PROPERTIES} support is mandatory, \featureref{properties}. |
163 |
\item \t{RDEPEND=DEPEND} no longer done, \featureref{rdepend-depend}. |
164 |
\item \t{DEFINED_PHASES} support is mandatory, \featureref{defined-phases}. |
165 |
\item Use dependency defaults, \featureref{use-dep-defaults}. |
166 |
|
167 |
diff --git a/ebuild-vars.tex b/ebuild-vars.tex |
168 |
index 497bd77..bdd0f6b 100644 |
169 |
--- a/ebuild-vars.tex |
170 |
+++ b/ebuild-vars.tex |
171 |
@@ -145,6 +145,45 @@ EAPI, the package manager must make sure that the \t{EAPI} value obtained by sou |
172 |
with bash is identical to the EAPI obtained by parsing. The ebuild must be treated as invalid if |
173 |
these values are different. |
174 |
|
175 |
+\subsection{SRC_URI} |
176 |
+\label{sec:src-uri-behaviour} |
177 |
+ |
178 |
+All filename components that are enabled (i.\,e.\ not inside a use-conditional block that is not |
179 |
+matched) in \t{SRC_URI} must be available in the \t{DISTDIR} directory. In addition, these |
180 |
+components are used to make the \t{A} and \t{AA} variables. |
181 |
+ |
182 |
+If a component contains a full URI with protocol, that download location must be used. Package |
183 |
+managers may also consult mirrors for their files. |
184 |
+ |
185 |
+The special \t{mirror://} protocol must be supported. See section~\ref{sec:thirdpartymirrors} for |
186 |
+mirror details. |
187 |
+ |
188 |
+If a simple filename rather than a full URI is provided, the package manager can only use mirrors |
189 |
+to download the file. |
190 |
+ |
191 |
+The \t{RESTRICT} metadata key can be used to impose additional restrictions upon downloading---see |
192 |
+section~\ref{sec:restrict} for details. |
193 |
+ |
194 |
+\featurelabel{src-uri-arrows} In EAPIs listed in table~\ref{tab:uri-arrows-table} as supporting |
195 |
+arrows, if an arrow is used, the filename used when saving to \t{DISTDIR} shall instead be the name |
196 |
+on the right of the arrow. When consulting mirrors (except for those explicitly listed on the left |
197 |
+of the arrow, if \t{mirror://} is used), the filename to the right of the arrow shall be requested |
198 |
+instead of the filename in the URI. |
199 |
+ |
200 |
+\ChangeWhenAddingAnEAPI{7} |
201 |
+\begin{centertable}{EAPIs supporting \t{SRC_URI} arrows} |
202 |
+ \label{tab:uri-arrows-table} |
203 |
+ \begin{tabular}{ll} |
204 |
+ \toprule |
205 |
+ \multicolumn{1}{c}{\textbf{EAPI}} & |
206 |
+ \multicolumn{1}{c}{\textbf{Supports \t{SRC_URI} arrows?}} \\ |
207 |
+ \midrule |
208 |
+ 0, 1 & No \\ |
209 |
+ 2, 3, 4, 5, 6, 7 & Yes \\ |
210 |
+ \bottomrule |
211 |
+ \end{tabular} |
212 |
+\end{centertable} |
213 |
+ |
214 |
\subsection{Keywords} |
215 |
\label{sec:keywords} |
216 |
|
217 |
@@ -166,6 +205,48 @@ unlisted architectures. |
218 |
|
219 |
An empty \t{KEYWORDS} variable indicates uncertain functionality on any architecture. |
220 |
|
221 |
+\subsection{USE state constraints} |
222 |
+\label{sec:required-use} |
223 |
+ |
224 |
+\t{REQUIRED_USE} contains a list of assertions that must be met by the configuration of \t{USE} |
225 |
+flags to be valid for this ebuild. In order to be matched, a \t{USE} flag in a terminal element |
226 |
+must be enabled (or disabled if it has an exclamation mark prefix). |
227 |
+ |
228 |
+If the package manager encounters a package version where \t{REQUIRED_USE} assertions are not met, |
229 |
+it must treat this package version as if it was masked. No phase functions must be called. |
230 |
+ |
231 |
+It is an error for a flag to be used if it is not included in \t{IUSE_EFFECTIVE}. |
232 |
+ |
233 |
+\subsection{Properties} |
234 |
+\label{sec:properties} |
235 |
+ |
236 |
+The following tokens are permitted inside \t{PROPERTIES}: |
237 |
+ |
238 |
+\begin{description} |
239 |
+\item[interactive] The package may require interaction with the user via the tty. |
240 |
+\end{description} |
241 |
+ |
242 |
+Ebuilds may not rely upon any token being supported. |
243 |
+ |
244 |
+\subsection{Restrict} |
245 |
+\label{sec:restrict} |
246 |
+ |
247 |
+The following tokens are permitted inside \t{RESTRICT}: |
248 |
+ |
249 |
+\begin{description} |
250 |
+\item[mirror] The package's \t{SRC_URI} entries may not be mirrored, and mirrors should not be |
251 |
+ checked when fetching. |
252 |
+\item[fetch] The package's \t{SRC_URI} entries may not be downloaded automatically. If entries are |
253 |
+ not available, \t{pkg_nofetch} is called. Implies \t{mirror}. |
254 |
+\item[strip] No stripping of debug symbols from files to be installed may be performed. In EAPIs |
255 |
+ listed in table~\ref{tab:staging-area-commands} as supporting controllable stripping, this |
256 |
+ behaviour may be altered by the \t{dostrip} command. |
257 |
+\item[userpriv] The package manager may not drop root privileges when building the package. |
258 |
+\item[test] The \t{src_test} phase must not be run. |
259 |
+\end{description} |
260 |
+ |
261 |
+Package managers may recognise other tokens, but ebuilds may not rely upon them being supported. |
262 |
+ |
263 |
\subsection{RDEPEND value} |
264 |
\label{sec:rdepend-depend} |