Gentoo Archives: gentoo-pms

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

Replies