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 <USE flag> [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"> |