Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: doc/package/, doc/, doc/package/ebuild/eapi/
Date: Sun, 02 Sep 2012 02:38:49
Message-Id: 1346553435.5ee56de8face6f6beba803d3c583c9c9f3d9fd21.zmedico@gentoo
1 commit: 5ee56de8face6f6beba803d3c583c9c9f3d9fd21
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Sun Sep 2 02:37:15 2012 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 2 02:37:15 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=5ee56de8
7
8 Document EAPI 5_pre1.
9
10 ---
11 doc/package/ebuild.docbook | 1 +
12 doc/package/ebuild/eapi/5.docbook | 260 +++++++++++++++++++++++++++++++++++++
13 doc/portage.docbook | 1 +
14 3 files changed, 262 insertions(+), 0 deletions(-)
15
16 diff --git a/doc/package/ebuild.docbook b/doc/package/ebuild.docbook
17 index ba146ca..e268a3d 100644
18 --- a/doc/package/ebuild.docbook
19 +++ b/doc/package/ebuild.docbook
20 @@ -11,5 +11,6 @@
21 &package_ebuild_eapi_4;
22 &package_ebuild_eapi_4_python;
23 &package_ebuild_eapi_4_slot_abi;
24 +&package_ebuild_eapi_5;
25 </section>
26 </chapter>
27
28 diff --git a/doc/package/ebuild/eapi/5.docbook b/doc/package/ebuild/eapi/5.docbook
29 new file mode 100644
30 index 0000000..0894eba
31 --- /dev/null
32 +++ b/doc/package/ebuild/eapi/5.docbook
33 @@ -0,0 +1,260 @@
34 +<section id='package-ebuild-eapi-5_pre1'>
35 +<title>EAPI 5_pre1</title>
36 +<section id='package-ebuild-eapi-5_pre1-metadata'>
37 +<title>Metadata</title>
38 +<section id='package-ebuild-eapi-5_pre1-metadata-required-use-at-most-one-of'>
39 +<title>REQUIRED_USE supports new at-most-one-of operator</title>
40 +<para>
41 +The new at-most-one-of operator consists of the string '??',
42 +and is satisfied if zero or one (but no more) of its child
43 +elements is matched.
44 +</para>
45 +</section>
46 +<section id='package-ebuild-eapi-5_pre1-metadata-slot-sub-slot'>
47 +<title>SLOT supports optional "sub-slot" part</title>
48 +<para>
49 +The SLOT variable may contain an optional sub-slot part that
50 +follows the regular slot and is delimited by a / character.
51 +The sub-slot must be a valid slot name. The sub-slot is used
52 +to represent cases in which an upgrade to a new version of a
53 +package with a different sub-slot may require dependent
54 +packages to be rebuilt. When the sub-slot part is omitted from
55 +the SLOT definition, the package is considered to have an
56 +implicit sub-slot which is equal to the regular slot.
57 +</para>
58 +<para>
59 +Refer to the
60 +<link linkend="package-ebuild-eapi-5_pre1-metadata-dependency-atom-slot-operators">
61 +slot operators</link> documentation for more information about sub-slot usage.
62 +</para>
63 +</section>
64 +<section id='package-ebuild-eapi-5_pre1-metadata-dependency-atom-slot-operators'>
65 +<title>Dependency atom slot operators</title>
66 +<para>
67 +A slot dependency may contain an optional sub-slot part that
68 +follows the regular slot and is delimited by a / character.
69 +An operator slot dependency consists of a colon followed by
70 +one of the following operators:
71 +<itemizedlist>
72 +<listitem><para>
73 +* Indicates that any slot value is acceptable. In addition,
74 +for runtime dependencies, indicates that the package will not
75 +break if the matched package is uninstalled and replaced by
76 +a different matching package in a different slot.
77 +</para></listitem>
78 +<listitem><para>
79 += Indicates that any slot value is acceptable. In addition,
80 +for runtime dependencies, indicates that the package will
81 +break unless a matching package with slot and sub-slot equal
82 +to the slot and sub-slot of the best installed version at the
83 +time the package was installed is available.
84 +</para></listitem>
85 +<listitem><para>
86 +slot= Indicates that only a specific slot value is acceptable,
87 +and otherwise behaves identically to the plain equals slot
88 +operator.
89 +</para></listitem>
90 +</itemizedlist>
91 +</para>
92 +<para>
93 +To implement the equals slot operator, the package manager
94 +will need to store the slot/sub-slot pair of the best installed
95 +version of the matching package. This syntax is only for package
96 +manager use and must not be used by ebuilds. The package manager
97 +may do this by inserting the appropriate slot/sub-slot pair
98 +between the colon and equals sign when saving the package's
99 +dependencies. The sub-slot part must not be omitted here
100 +(when the SLOT variable omits the sub-slot part, the package
101 +is considered to have an implicit sub-slot which is equal to
102 +the regular slot).
103 +</para>
104 +</section>
105 +</section>
106 +<section id='package-ebuild-eapi-5_pre1-profile'>
107 +<title>Profiles</title>
108 +<section id='package-ebuild-eapi-5_pre1-profile-iuse-injection'>
109 +<title>Profile IUSE Injection</title>
110 +<para>
111 +IUSE_EFFECTIVE is a variable calculated from IUSE and
112 +a variety of other sources described below. It is purely
113 +a conceptual variable; it is not exported to the ebuild
114 +environment. Values in IUSE_EFFECTIVE may legally be
115 +used in queries about an ebuild's state (for example, for use
116 +dependencies, for the use function, and for use in dependency
117 +specification conditional blocks).
118 +</para>
119 +<para>
120 +For EAPIs that support profile defined IUSE injection, IUSE_EFFECTIVE
121 +contains the following values:
122 +<itemizedlist>
123 +<listitem><para>
124 +All values in the calculated IUSE value.
125 +</para></listitem>
126 +<listitem><para>
127 +All values in the profile IUSE_IMPLICIT variable.
128 +</para></listitem>
129 +<listitem><para>
130 +All values in the profile variable named USE_EXPAND_VALUES_${v},
131 +where ${v} is any value in the intersection of the profile
132 +USE_EXPAND_UNPREFIXED and USE_EXPAND_IMPLICIT variables.
133 +</para></listitem>
134 +<listitem><para>
135 +All values for ${lower_v}_${x}, where ${x} is all values in
136 +the profile variable named USE_EXPAND_VALUES_${v}, where ${v}
137 +is any value in the intersection of the profile USE_EXPAND and
138 +USE_EXPAND_IMPLICIT variables and ${lower_v} is the lowercase
139 +equivalent of ${v}.
140 +</para></listitem>
141 +</itemizedlist>
142 +</para>
143 +<para>
144 +<table><title>Example Variable Settings</title>
145 +<tgroup cols='2' align='left' >
146 +<colspec colname='source'/>
147 +<colspec colname='destination'/>
148 +<thead>
149 +<row>
150 +<entry>Variable</entry>
151 +<entry>Value</entry>
152 +</row>
153 +</thead>
154 +<tbody>
155 +<row>
156 +<entry>IUSE_IMPLICIT</entry>
157 +<entry>prefix selinux</entry>
158 +</row>
159 +<row>
160 +<entry>USE_EXPAND</entry>
161 +<entry>ELIBC KERNEL USERLAND</entry>
162 +</row>
163 +<row>
164 +<entry>USE_EXPAND_UNPREFIXED</entry>
165 +<entry>ARCH</entry>
166 +</row>
167 +<row>
168 +<entry>USE_EXPAND_IMPLICIT</entry>
169 +<entry>ARCH ELIBC KERNEL USERLAND</entry>
170 +</row>
171 +<row>
172 +<entry>USE_EXPAND_VALUES_ARCH</entry>
173 +<entry>amd64 ppc ppc64 x86 x86-fbsd x86-solaris</entry>
174 +</row>
175 +<row>
176 +<entry>USE_EXPAND_VALUES_ELIBC</entry>
177 +<entry>FreeBSD glibc</entry>
178 +</row>
179 +<row>
180 +<entry>USE_EXPAND_VALUES_KERNEL</entry>
181 +<entry>FreeBSD linux SunOS</entry>
182 +</row>
183 +<row>
184 +<entry>USE_EXPAND_VALUES_USERLAND</entry>
185 +<entry>BSD GNU</entry>
186 +</row>
187 +</tbody>
188 +</tgroup>
189 +</table>
190 +</para>
191 +</section>
192 +<section id='package-ebuild-eapi-5_pre1-profile-stable-use-masking'>
193 +<title>Profile stable USE forcing and masking</title>
194 +<para>
195 +In profile directories with an EAPI supporting stable masking,
196 +new USE configuration files are supported: use.stable.mask,
197 +use.stable.force, package.use.stable.mask and
198 +package.use.stable.force. These files behave similarly to
199 +previously supported USE configuration files, except that they
200 +only influence packages that are merged due to a stable keyword.
201 +</para>
202 +</section>
203 +</section>
204 +<section id='package-ebuild-eapi-5_pre1-helpers'>
205 +<title>Helpers</title>
206 +<section id='package-ebuild-eapi-5_pre1-helpers-econf-disable-silent-rules'>
207 +<title>econf adds --disable-silent-rules</title>
208 +<para>
209 +This option will automatically be passed if
210 +--disable-silent-rules occurs in the output of configure --help.
211 +</para>
212 +</section>
213 +<section id='package-ebuild-eapi-5_pre1-helpers-newfoo-stdin'>
214 +<title>new* commands can read from standard input</title>
215 +<para>
216 +Standard input is read when the first parameter is - (a hyphen).
217 +</para>
218 +</section>
219 +<section id='package-ebuild-eapi-5_pre1-helpers-foo-version-host-root'>
220 +<title>New option --host-root for {has,best}_version</title>
221 +<para>
222 +This option --host-root will cause the query to apply to the
223 +host root instead of ROOT.
224 +</para>
225 +</section>
226 +<section id='package-ebuild-eapi-5_pre1-helpers-doheader'>
227 +<title>New doheader helper function</title>
228 +<para>
229 +Installs the given header files into /usr/include/, by default
230 +with file mode 0644. This can be overridden by setting
231 +INSOPTIONS with the insopts function.
232 +</para>
233 +</section>
234 +<section id='package-ebuild-eapi-5_pre1-helpers-usex'>
235 +<title>New usex helper function</title>
236 +<programlisting>
237 +USAGE: usex &lt;USE flag&gt; [true output] [false output] [true suffix] [false suffix]
238 +DESCRIPTION:
239 + If USE flag is set, echo [true output][true suffix] (defaults to "yes"),
240 + otherwise echo [false output][false suffix] (defaults to "no").
241 +</programlisting>
242 +</section>
243 +<section id='package-ebuild-eapi-5_pre1-helpers-apply-user-patches'>
244 +<title>New apply_user_patches helper function</title>
245 +<para>
246 +This function is called to indicate to the package manager
247 +that now would be a suitable time to apply any user patches
248 +to the work directory. This function must return zero if it
249 +is possible that any changes were made to the work directory,
250 +and may return non-zero if no changes were made. This function
251 +must be called at least once in src_prepare; if the function
252 +is called more than once, it is expected that any effects that
253 +it has shall only be executed once, and that its return value
254 +shall only be zero once.
255 +</para>
256 +</section>
257 +</section>
258 +<section id='package-ebuild-eapi-5_pre1-phases'>
259 +<title>Phases</title>
260 +<section id='package-ebuild-eapi-5_pre1-phases-src-prepare-user-patches'>
261 +<title>src_prepare must call apply_user_patches</title>
262 +<para>
263 +If the src_prepare function is implemented then it must call
264 +the apply_user_patches function at least once. If src_prepare
265 +does not call apply_user_patches before it returns, then it will
266 +be treated as a fatal error. The default src_prepare
267 +implementation will call apply_user_patches automatically.
268 +Refer to the
269 +<link linkend="package-ebuild-eapi-5_pre1-helpers-apply-user-patches">
270 +apply_user_patches section</link> for additional usage
271 +instructions.
272 +</para>
273 +</section>
274 +<section id='package-ebuild-eapi-5_pre1-phases-src-test-parallel'>
275 +<title>src_test supports parallel tests</title>
276 +<para>
277 +Unlike older EAPIs, the default src_test implementation will not
278 +pass the -j1 option to emake.
279 +</para>
280 +</section>
281 +</section>
282 +<section id='package-ebuild-eapi-5_pre1-ebuild-environment-variables'>
283 +<title>Ebuild Environment Variables</title>
284 +<section id='package-ebuild-eapi-5_pre1-ebuild-environment-variables-ebuild-phase-func'>
285 +<title>New EBUILD_PHASE_FUNC variable</title>
286 +<para>
287 +During execution of an ebuild phase function (such as pkg_setup
288 +or src_unpack), the EBUILD_PHASE_FUNC variable will contain the
289 +name of the phase function that is currently executing.
290 +</para>
291 +</section>
292 +</section>
293 +</section>
294
295 diff --git a/doc/portage.docbook b/doc/portage.docbook
296 index 781915c..f580314 100644
297 --- a/doc/portage.docbook
298 +++ b/doc/portage.docbook
299 @@ -22,6 +22,7 @@
300 <!ENTITY package_ebuild_eapi_4 SYSTEM "package/ebuild/eapi/4.docbook">
301 <!ENTITY package_ebuild_eapi_4_python SYSTEM "package/ebuild/eapi/4-python.docbook">
302 <!ENTITY package_ebuild_eapi_4_slot_abi SYSTEM "package/ebuild/eapi/4-slot-abi.docbook">
303 + <!ENTITY package_ebuild_eapi_5 SYSTEM "package/ebuild/eapi/5.docbook">
304 <!ENTITY qa SYSTEM "qa.docbook">
305 <!ENTITY config SYSTEM "config.docbook">
306 <!ENTITY config_bashrc SYSTEM "config/bashrc.docbook">