Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: doc/html/
Date: Tue, 05 Mar 2013 11:27:46
Message-Id: 1362482808.32acbc7561c58d8913ff93dd6108b2f7f015b9ce.dywi@gentoo
1 commit: 32acbc7561c58d8913ff93dd6108b2f7f015b9ce
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Tue Mar 5 11:26:48 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Tue Mar 5 11:26:48 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=32acbc75
7
8 doc/html: Package Rule Files, Configuration
9
10 ---
11 doc/html/usage.html | 964 +++++++++++++++++++++++++++++++++++++++------------
12 1 files changed, 738 insertions(+), 226 deletions(-)
13
14 diff --git a/doc/html/usage.html b/doc/html/usage.html
15 index ff2a36f..d216676 100644
16 --- a/doc/html/usage.html
17 +++ b/doc/html/usage.html
18 @@ -3,13 +3,13 @@
19 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
20 <head>
21 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
22 -<meta name="generator" content="Docutils 0.9.1: http://docutils.sourceforge.net/" />
23 +<meta name="generator" content="Docutils 0.10: http://docutils.sourceforge.net/" />
24 <title>Automatically Generated Overlay of R packages</title>
25 <style type="text/css">
26
27 /*
28 :Author: David Goodger (goodger@××××××.org)
29 -:Id: $Id: html4css1.css 7434 2012-05-11 21:06:27Z milde $
30 +:Id: $Id: html4css1.css 7514 2012-09-14 14:27:12Z milde $
31 :Copyright: This stylesheet has been placed in the public domain.
32
33 Default cascading style sheet for the HTML output of Docutils.
34 @@ -77,7 +77,7 @@ div.tip p.admonition-title {
35
36 div.attention p.admonition-title, div.caution p.admonition-title,
37 div.danger p.admonition-title, div.error p.admonition-title,
38 -div.warning p.admonition-title {
39 +div.warning p.admonition-title, .code .error {
40 color: red ;
41 font-weight: bold ;
42 font-family: sans-serif }
43 @@ -253,13 +253,14 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
44 margin-left: 2em ;
45 margin-right: 2em }
46
47 -pre.code .ln { /* line numbers */
48 - color: grey;
49 -}
50 -
51 -.code {
52 - background-color: #eeeeee
53 -}
54 +pre.code .ln { color: grey; } /* line numbers */
55 +pre.code, code { background-color: #eeeeee }
56 +pre.code .comment, code .comment { color: #5C6576 }
57 +pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
58 +pre.code .literal.string, code .literal.string { color: #0C5404 }
59 +pre.code .name.builtin, code .name.builtin { color: #352B84 }
60 +pre.code .deleted, code .deleted { background-color: #DEB0A1}
61 +pre.code .inserted, code .inserted { background-color: #A3D289}
62
63 span.classifier {
64 font-family: sans-serif ;
65 @@ -328,96 +329,111 @@ ul.auto-toc {
66 <div class="contents topic" id="contents">
67 <p class="topic-title first">Contents</p>
68 <ul class="auto-toc simple">
69 -<li><a class="reference internal" href="#introduction" id="id4">1&nbsp;&nbsp;&nbsp;Introduction</a></li>
70 -<li><a class="reference internal" href="#installation" id="id5">2&nbsp;&nbsp;&nbsp;Installation</a><ul class="auto-toc">
71 -<li><a class="reference internal" href="#prerequisites" id="id6">2.1&nbsp;&nbsp;&nbsp;Prerequisites</a></li>
72 -<li><a class="reference internal" href="#via-emerge-gentoo" id="id7">2.2&nbsp;&nbsp;&nbsp;via emerge (Gentoo)</a></li>
73 -<li><a class="reference internal" href="#manual-installation" id="id8">2.3&nbsp;&nbsp;&nbsp;Manual Installation</a></li>
74 -<li><a class="reference internal" href="#using-roverlay-without-installation" id="id9">2.4&nbsp;&nbsp;&nbsp;Using <em>roverlay</em> without installation</a></li>
75 +<li><a class="reference internal" href="#introduction" id="id5">1&nbsp;&nbsp;&nbsp;Introduction</a></li>
76 +<li><a class="reference internal" href="#installation" id="id6">2&nbsp;&nbsp;&nbsp;Installation</a><ul class="auto-toc">
77 +<li><a class="reference internal" href="#prerequisites" id="id7">2.1&nbsp;&nbsp;&nbsp;Prerequisites</a></li>
78 +<li><a class="reference internal" href="#via-emerge-gentoo" id="id8">2.2&nbsp;&nbsp;&nbsp;via emerge (Gentoo)</a></li>
79 +<li><a class="reference internal" href="#manual-installation" id="id9">2.3&nbsp;&nbsp;&nbsp;Manual Installation</a></li>
80 +<li><a class="reference internal" href="#using-roverlay-without-installation" id="id10">2.4&nbsp;&nbsp;&nbsp;Using <em>roverlay</em> without installation</a></li>
81 +</ul>
82 +</li>
83 +<li><a class="reference internal" href="#running-roverlay" id="id11">3&nbsp;&nbsp;&nbsp;Running Roverlay</a><ul class="auto-toc">
84 +<li><a class="reference internal" href="#required-configuration-steps" id="id12">3.1&nbsp;&nbsp;&nbsp;Required configuration steps</a><ul class="auto-toc">
85 +<li><a class="reference internal" href="#extended-configuration-where-to-go-from-here" id="id13">3.1.1&nbsp;&nbsp;&nbsp;Extended Configuration / Where to go from here?</a></li>
86 +</ul>
87 +</li>
88 +<li><a class="reference internal" href="#running-it" id="id14">3.2&nbsp;&nbsp;&nbsp;Running it</a></li>
89 +<li><a class="reference internal" href="#providing-a-package-mirror" id="id15">3.3&nbsp;&nbsp;&nbsp;Providing a package mirror</a></li>
90 +</ul>
91 +</li>
92 +<li><a class="reference internal" href="#basic-implementation-overview" id="id16">4&nbsp;&nbsp;&nbsp;Basic Implementation Overview</a><ul class="auto-toc">
93 +<li><a class="reference internal" href="#how-roverlay-works" id="id17">4.1&nbsp;&nbsp;&nbsp;How <em>roverlay</em> works</a></li>
94 +<li><a class="reference internal" href="#expected-overlay-result-structure-of-the-generated-overlay" id="id18">4.2&nbsp;&nbsp;&nbsp;Expected Overlay Result / Structure of the generated overlay</a><ul class="auto-toc">
95 +<li><a class="reference internal" href="#expected-ebuild-result" id="id19">4.2.1&nbsp;&nbsp;&nbsp;Expected Ebuild Result</a></li>
96 +<li><a class="reference internal" href="#expected-metadata-xml-result" id="id20">4.2.2&nbsp;&nbsp;&nbsp;Expected <em>metadata.xml</em> Result</a></li>
97 +</ul>
98 +</li>
99 </ul>
100 </li>
101 -<li><a class="reference internal" href="#running-roverlay" id="id10">3&nbsp;&nbsp;&nbsp;Running Roverlay</a><ul class="auto-toc">
102 -<li><a class="reference internal" href="#required-configuration-steps" id="id11">3.1&nbsp;&nbsp;&nbsp;Required configuration steps</a><ul class="auto-toc">
103 -<li><a class="reference internal" href="#extended-configuration-where-to-go-from-here" id="id12">3.1.1&nbsp;&nbsp;&nbsp;Extended Configuration / Where to go from here?</a></li>
104 +<li><a class="reference internal" href="#repositories-getting-packages" id="id21">5&nbsp;&nbsp;&nbsp;Repositories / Getting Packages</a><ul class="auto-toc">
105 +<li><a class="reference internal" href="#a-word-about-repo-config-files" id="id22">5.1&nbsp;&nbsp;&nbsp;A word about repo config files</a></li>
106 +<li><a class="reference internal" href="#rsync-repos" id="id23">5.2&nbsp;&nbsp;&nbsp;Rsync repos</a></li>
107 +<li><a class="reference internal" href="#getting-packages-from-a-repository-that-supports-http-only" id="id24">5.3&nbsp;&nbsp;&nbsp;Getting packages from a repository that supports http only</a></li>
108 +<li><a class="reference internal" href="#getting-packages-from-several-remotes-using-http-and-a-package-list" id="id25">5.4&nbsp;&nbsp;&nbsp;Getting packages from several remotes using http and a package list</a></li>
109 +<li><a class="reference internal" href="#using-local-directories" id="id26">5.5&nbsp;&nbsp;&nbsp;Using local directories</a></li>
110 </ul>
111 </li>
112 -<li><a class="reference internal" href="#running-it" id="id13">3.2&nbsp;&nbsp;&nbsp;Running it</a></li>
113 -<li><a class="reference internal" href="#providing-a-package-mirror" id="id14">3.3&nbsp;&nbsp;&nbsp;Providing a package mirror</a></li>
114 +<li><a class="reference internal" href="#dependency-rules" id="id27">6&nbsp;&nbsp;&nbsp;Dependency Rules</a><ul class="auto-toc">
115 +<li><a class="reference internal" href="#simple-dependency-rules" id="id28">6.1&nbsp;&nbsp;&nbsp;Simple Dependency Rules</a><ul class="auto-toc">
116 +<li><a class="reference internal" href="#rule-variants" id="id29">6.1.1&nbsp;&nbsp;&nbsp;Rule Variants</a></li>
117 +<li><a class="reference internal" href="#rule-types" id="id30">6.1.2&nbsp;&nbsp;&nbsp;Rule types</a></li>
118 +<li><a class="reference internal" href="#rule-file-examples" id="id31">6.1.3&nbsp;&nbsp;&nbsp;Rule File Examples</a></li>
119 +<li><a class="reference internal" href="#rule-file-syntax" id="id32">6.1.4&nbsp;&nbsp;&nbsp;Rule File Syntax</a></li>
120 </ul>
121 </li>
122 -<li><a class="reference internal" href="#basic-implementation-overview" id="id15">4&nbsp;&nbsp;&nbsp;Basic Implementation Overview</a><ul class="auto-toc">
123 -<li><a class="reference internal" href="#how-roverlay-works" id="id16">4.1&nbsp;&nbsp;&nbsp;How <em>roverlay</em> works</a></li>
124 -<li><a class="reference internal" href="#expected-overlay-result-structure-of-the-generated-overlay" id="id17">4.2&nbsp;&nbsp;&nbsp;Expected Overlay Result / Structure of the generated overlay</a><ul class="auto-toc">
125 -<li><a class="reference internal" href="#expected-ebuild-result" id="id18">4.2.1&nbsp;&nbsp;&nbsp;Expected Ebuild Result</a></li>
126 -<li><a class="reference internal" href="#expected-metadata-xml-result" id="id19">4.2.2&nbsp;&nbsp;&nbsp;Expected <em>metadata.xml</em> Result</a></li>
127 </ul>
128 </li>
129 +<li><a class="reference internal" href="#package-rules" id="id33">7&nbsp;&nbsp;&nbsp;Package Rules</a><ul class="auto-toc">
130 +<li><a class="reference internal" href="#package-rule-file-syntax" id="id34">7.1&nbsp;&nbsp;&nbsp;Package Rule File Syntax</a><ul class="auto-toc">
131 +<li><a class="reference internal" href="#match-blocks" id="id35">7.1.1&nbsp;&nbsp;&nbsp;Match Blocks</a><ul class="auto-toc">
132 +<li><a class="reference internal" href="#extended-match-block-syntax" id="id36">7.1.1.1&nbsp;&nbsp;&nbsp;Extended Match Block Syntax</a></li>
133 </ul>
134 </li>
135 -<li><a class="reference internal" href="#repositories-getting-packages" id="id20">5&nbsp;&nbsp;&nbsp;Repositories / Getting Packages</a><ul class="auto-toc">
136 -<li><a class="reference internal" href="#a-word-about-repo-config-files" id="id21">5.1&nbsp;&nbsp;&nbsp;A word about repo config files</a></li>
137 -<li><a class="reference internal" href="#rsync-repos" id="id22">5.2&nbsp;&nbsp;&nbsp;Rsync repos</a></li>
138 -<li><a class="reference internal" href="#getting-packages-from-a-repository-that-supports-http-only" id="id23">5.3&nbsp;&nbsp;&nbsp;Getting packages from a repository that supports http only</a></li>
139 -<li><a class="reference internal" href="#getting-packages-from-several-remotes-using-http-and-a-package-list" id="id24">5.4&nbsp;&nbsp;&nbsp;Getting packages from several remotes using http and a package list</a></li>
140 -<li><a class="reference internal" href="#using-local-directories" id="id25">5.5&nbsp;&nbsp;&nbsp;Using local directories</a></li>
141 +<li><a class="reference internal" href="#action-blocks" id="id37">7.1.2&nbsp;&nbsp;&nbsp;Action Blocks</a><ul class="auto-toc">
142 +<li><a class="reference internal" href="#extended-action-block-syntax" id="id38">7.1.2.1&nbsp;&nbsp;&nbsp;Extended Action Block Syntax</a></li>
143 </ul>
144 </li>
145 -<li><a class="reference internal" href="#dependency-rules" id="id26">6&nbsp;&nbsp;&nbsp;Dependency Rules</a><ul class="auto-toc">
146 -<li><a class="reference internal" href="#simple-dependency-rules" id="id27">6.1&nbsp;&nbsp;&nbsp;Simple Dependency Rules</a><ul class="auto-toc">
147 -<li><a class="reference internal" href="#rule-variants" id="id28">6.1.1&nbsp;&nbsp;&nbsp;Rule Variants</a></li>
148 -<li><a class="reference internal" href="#rule-types" id="id29">6.1.2&nbsp;&nbsp;&nbsp;Rule types</a></li>
149 -<li><a class="reference internal" href="#rule-file-examples" id="id30">6.1.3&nbsp;&nbsp;&nbsp;Rule File Examples</a></li>
150 -<li><a class="reference internal" href="#rule-file-syntax" id="id31">6.1.4&nbsp;&nbsp;&nbsp;Rule File Syntax</a></li>
151 +<li><a class="reference internal" href="#package-rule-examples" id="id39">7.1.3&nbsp;&nbsp;&nbsp;Package Rule Examples</a></li>
152 </ul>
153 </li>
154 </ul>
155 </li>
156 -<li><a class="reference internal" href="#configuration-reference" id="id32">7&nbsp;&nbsp;&nbsp;Configuration Reference</a><ul class="auto-toc">
157 -<li><a class="reference internal" href="#misc-options" id="id33">7.1&nbsp;&nbsp;&nbsp;misc options</a></li>
158 -<li><a class="reference internal" href="#overlay-options" id="id34">7.2&nbsp;&nbsp;&nbsp;overlay options</a></li>
159 -<li><a class="reference internal" href="#other-config-files" id="id35">7.3&nbsp;&nbsp;&nbsp;other config files</a></li>
160 -<li><a class="reference internal" href="#logging" id="id36">7.4&nbsp;&nbsp;&nbsp;logging</a><ul class="auto-toc">
161 -<li><a class="reference internal" href="#console-logging" id="id37">7.4.1&nbsp;&nbsp;&nbsp;console logging</a></li>
162 -<li><a class="reference internal" href="#file-logging" id="id38">7.4.2&nbsp;&nbsp;&nbsp;file logging</a></li>
163 +<li><a class="reference internal" href="#configuration-reference" id="id40">8&nbsp;&nbsp;&nbsp;Configuration Reference</a><ul class="auto-toc">
164 +<li><a class="reference internal" href="#misc-options" id="id41">8.1&nbsp;&nbsp;&nbsp;misc options</a></li>
165 +<li><a class="reference internal" href="#overlay-options" id="id42">8.2&nbsp;&nbsp;&nbsp;overlay options</a></li>
166 +<li><a class="reference internal" href="#other-config-files" id="id43">8.3&nbsp;&nbsp;&nbsp;other config files</a></li>
167 +<li><a class="reference internal" href="#logging" id="id44">8.4&nbsp;&nbsp;&nbsp;logging</a><ul class="auto-toc">
168 +<li><a class="reference internal" href="#console-logging" id="id45">8.4.1&nbsp;&nbsp;&nbsp;console logging</a></li>
169 +<li><a class="reference internal" href="#file-logging" id="id46">8.4.2&nbsp;&nbsp;&nbsp;file logging</a></li>
170 </ul>
171 </li>
172 -<li><a class="reference internal" href="#options-for-debugging-manual-dependency-rule-creation-and-testing" id="id39">7.5&nbsp;&nbsp;&nbsp;options for debugging, manual dependency rule creation and testing</a></li>
173 +<li><a class="reference internal" href="#options-for-debugging-manual-dependency-rule-creation-and-testing" id="id47">8.5&nbsp;&nbsp;&nbsp;options for debugging, manual dependency rule creation and testing</a></li>
174 </ul>
175 </li>
176 -<li><a class="reference internal" href="#field-definition-config" id="id40">8&nbsp;&nbsp;&nbsp;Field Definition Config</a><ul class="auto-toc">
177 -<li><a class="reference internal" href="#example-the-default-field-definition-file" id="id41">8.1&nbsp;&nbsp;&nbsp;Example: The default field definition file</a></li>
178 +<li><a class="reference internal" href="#field-definition-config" id="id48">9&nbsp;&nbsp;&nbsp;Field Definition Config</a><ul class="auto-toc">
179 +<li><a class="reference internal" href="#example-the-default-field-definition-file" id="id49">9.1&nbsp;&nbsp;&nbsp;Example: The default field definition file</a></li>
180 </ul>
181 </li>
182 -<li><a class="reference internal" href="#dependency-resolution-console" id="id42">9&nbsp;&nbsp;&nbsp;Dependency Resolution Console</a></li>
183 -<li><a class="reference internal" href="#implementation-overview" id="id43">10&nbsp;&nbsp;&nbsp;Implementation Overview</a><ul class="auto-toc">
184 -<li><a class="reference internal" href="#packageinfo" id="id44">10.1&nbsp;&nbsp;&nbsp;PackageInfo</a></li>
185 -<li><a class="reference internal" href="#repository-management" id="id45">10.2&nbsp;&nbsp;&nbsp;Repository Management</a><ul class="auto-toc">
186 -<li><a class="reference internal" href="#id3" id="id46">10.2.1&nbsp;&nbsp;&nbsp;Repositories</a><ul class="auto-toc">
187 -<li><a class="reference internal" href="#adding-new-repository-types" id="id47">10.2.1.1&nbsp;&nbsp;&nbsp;Adding new repository types</a></li>
188 +<li><a class="reference internal" href="#dependency-resolution-console" id="id50">10&nbsp;&nbsp;&nbsp;Dependency Resolution Console</a></li>
189 +<li><a class="reference internal" href="#implementation-overview" id="id51">11&nbsp;&nbsp;&nbsp;Implementation Overview</a><ul class="auto-toc">
190 +<li><a class="reference internal" href="#packageinfo" id="id52">11.1&nbsp;&nbsp;&nbsp;PackageInfo</a></li>
191 +<li><a class="reference internal" href="#repository-management" id="id53">11.2&nbsp;&nbsp;&nbsp;Repository Management</a><ul class="auto-toc">
192 +<li><a class="reference internal" href="#id4" id="id54">11.2.1&nbsp;&nbsp;&nbsp;Repositories</a><ul class="auto-toc">
193 +<li><a class="reference internal" href="#adding-new-repository-types" id="id55">11.2.1.1&nbsp;&nbsp;&nbsp;Adding new repository types</a></li>
194 </ul>
195 </li>
196 </ul>
197 </li>
198 -<li><a class="reference internal" href="#overlay" id="id48">10.3&nbsp;&nbsp;&nbsp;Overlay</a><ul class="auto-toc">
199 -<li><a class="reference internal" href="#metadata-creation" id="id49">10.3.1&nbsp;&nbsp;&nbsp;Metadata Creation</a></li>
200 -<li><a class="reference internal" href="#manifest-creation" id="id50">10.3.2&nbsp;&nbsp;&nbsp;Manifest Creation</a></li>
201 +<li><a class="reference internal" href="#overlay" id="id56">11.3&nbsp;&nbsp;&nbsp;Overlay</a><ul class="auto-toc">
202 +<li><a class="reference internal" href="#metadata-creation" id="id57">11.3.1&nbsp;&nbsp;&nbsp;Metadata Creation</a></li>
203 +<li><a class="reference internal" href="#manifest-creation" id="id58">11.3.2&nbsp;&nbsp;&nbsp;Manifest Creation</a></li>
204 </ul>
205 </li>
206 -<li><a class="reference internal" href="#ebuild-creation" id="id51">10.4&nbsp;&nbsp;&nbsp;Ebuild Creation</a><ul class="auto-toc">
207 -<li><a class="reference internal" href="#ebuild-variables" id="id52">10.4.1&nbsp;&nbsp;&nbsp;Ebuild Variables</a></li>
208 +<li><a class="reference internal" href="#ebuild-creation" id="id59">11.4&nbsp;&nbsp;&nbsp;Ebuild Creation</a><ul class="auto-toc">
209 +<li><a class="reference internal" href="#ebuild-variables" id="id60">11.4.1&nbsp;&nbsp;&nbsp;Ebuild Variables</a></li>
210 </ul>
211 </li>
212 -<li><a class="reference internal" href="#overlay-creation" id="id53">10.5&nbsp;&nbsp;&nbsp;Overlay Creation</a></li>
213 -<li><a class="reference internal" href="#dependency-resolution" id="id54">10.6&nbsp;&nbsp;&nbsp;Dependency Resolution</a><ul class="auto-toc">
214 -<li><a class="reference internal" href="#dependency-types" id="id55">10.6.1&nbsp;&nbsp;&nbsp;Dependency types</a><ul class="auto-toc">
215 -<li><a class="reference internal" href="#description-file-dependency-fields" id="id56">10.6.1.1&nbsp;&nbsp;&nbsp;DESCRIPTION file dependency fields</a></li>
216 +<li><a class="reference internal" href="#overlay-creation" id="id61">11.5&nbsp;&nbsp;&nbsp;Overlay Creation</a></li>
217 +<li><a class="reference internal" href="#dependency-resolution" id="id62">11.6&nbsp;&nbsp;&nbsp;Dependency Resolution</a><ul class="auto-toc">
218 +<li><a class="reference internal" href="#dependency-types" id="id63">11.6.1&nbsp;&nbsp;&nbsp;Dependency types</a><ul class="auto-toc">
219 +<li><a class="reference internal" href="#description-file-dependency-fields" id="id64">11.6.1.1&nbsp;&nbsp;&nbsp;DESCRIPTION file dependency fields</a></li>
220 </ul>
221 </li>
222 -<li><a class="reference internal" href="#dependency-environments" id="id57">10.6.2&nbsp;&nbsp;&nbsp;Dependency Environments</a></li>
223 -<li><a class="reference internal" href="#ebuildjob-channel" id="id58">10.6.3&nbsp;&nbsp;&nbsp;EbuildJob Channel</a></li>
224 -<li><a class="reference internal" href="#dependency-rule-pools" id="id59">10.6.4&nbsp;&nbsp;&nbsp;Dependency Rule Pools</a></li>
225 -<li><a class="reference internal" href="#dependency-resolver-modules" id="id60">10.6.5&nbsp;&nbsp;&nbsp;Dependency Resolver Modules</a></li>
226 -<li><a class="reference internal" href="#dependency-resolver" id="id61">10.6.6&nbsp;&nbsp;&nbsp;Dependency Resolver</a></li>
227 +<li><a class="reference internal" href="#dependency-environments" id="id65">11.6.2&nbsp;&nbsp;&nbsp;Dependency Environments</a></li>
228 +<li><a class="reference internal" href="#ebuildjob-channel" id="id66">11.6.3&nbsp;&nbsp;&nbsp;EbuildJob Channel</a></li>
229 +<li><a class="reference internal" href="#dependency-rule-pools" id="id67">11.6.4&nbsp;&nbsp;&nbsp;Dependency Rule Pools</a></li>
230 +<li><a class="reference internal" href="#dependency-resolver-modules" id="id68">11.6.5&nbsp;&nbsp;&nbsp;Dependency Resolver Modules</a></li>
231 +<li><a class="reference internal" href="#dependency-resolver" id="id69">11.6.6&nbsp;&nbsp;&nbsp;Dependency Resolver</a></li>
232 </ul>
233 </li>
234 </ul>
235 @@ -485,7 +501,7 @@ references to other chapters (4-8) where required.</p>
236 </li>
237 <li><p class="first">for Manifest creation:</p>
238 <ul class="simple">
239 -<li><em>ebuild</em> from portage</li>
240 +<li>portage (<em>ebuild</em> and/or the <em>portage libs</em> directly)</li>
241 <li><em>true</em> or <em>echo</em> from coreutils or busybox for preventing
242 package downloads during Manifest creation (optional)</li>
243 </ul>
244 @@ -498,7 +514,7 @@ package downloads during Manifest creation (optional)</li>
245 <dt>disk</dt>
246 <dd><ul class="first last simple">
247 <li>50-55GB disk space for the R packages</li>
248 -<li>a filesystem that supports symbolic links</li>
249 +<li>a filesystem that supports symbolic or hard links</li>
250 <li>there will be many small-sized files (ebuilds),
251 so a filesystem with lots of inodes and a small block size
252 may be advantageous</li>
253 @@ -510,7 +526,9 @@ write mechanism in use. The amount can be halved (approximately) when
254 using a slower one.</p>
255 </dd>
256 <dt>time</dt>
257 -<dd><p class="first last">Expect 3-6h execution time, depending on computing and I/O speed.</p>
258 +<dd><p class="first last">Expect 3-6h execution time for the first run, depending on computing
259 +and I/O speed. <em>roverlay</em> is able to work in incremental mode,
260 +thus making subsequent runs need a lot less time.</p>
261 </dd>
262 </dl>
263 </blockquote>
264 @@ -530,7 +548,7 @@ all necessary config files into <em>/etc/roverlay</em>.</p>
265 <pre class="code sh literal-block">
266 git clone git://git.overlays.gentoo.org/proj/R_overlay.git
267
268 -<span class="nb">cd </span>R_overlay <span class="o">&amp;&amp;</span> make install
269 +<span class="name builtin">cd </span>R_overlay <span class="operator">&amp;&amp;</span> make install
270 </pre>
271 <p><tt class="docutils literal">make install</tt> also accepts some variables, namely:</p>
272 <ul class="simple">
273 @@ -568,10 +586,10 @@ as the <em>R Overlay src directory</em> from now on.</p>
274 <em>roverlay</em> to ensure that the python modules can be imported correctly.</p>
275 <p>You can work around this by setting up a wrapper script:</p>
276 <pre class="code sh last literal-block">
277 -<span class="c">#!/bin/sh
278 +<span class="comment">#!/bin/sh
279 # /usr/local/bin/roverlay.sh
280 # example wrapper script for roverlay
281 -</span><span class="nb">cd</span> <span class="k">${</span><span class="nv">ROVERLAY_SRC</span><span class="k">:-</span><span class="p">~/roverlay/src</span><span class="k">}</span> <span class="o">&amp;&amp;</span> ./roverlay.py <span class="nv">$*</span>
282 +</span><span class="name builtin">cd</span> <span class="keyword">${</span><span class="name variable">ROVERLAY_SRC</span><span class="keyword">:-</span><span class="punctuation">~/roverlay/src</span><span class="keyword">}</span> <span class="operator">&amp;&amp;</span> ./roverlay.py <span class="literal string double">&quot;$&#64;&quot;</span>
283 </pre>
284 </div>
285 </div>
286 @@ -608,14 +626,14 @@ via <tt class="docutils literal"><span class="pre">--overlay</span> &lt;director
287 <dd><p class="first">This sets the root directory of all per-repo package directories.
288 This option is <strong>required</strong> and can be overridden on the command line
289 via <tt class="docutils literal"><span class="pre">--distroot</span> &lt;directory&gt;</tt>.</p>
290 -<div class="note">
291 -<p class="first admonition-title">Note</p>
292 -<p class="last">This directory will also contain a directory <em>__tmp__</em>
293 -with symlinks to all packages which can be used as package mirror,
294 -see <a class="reference internal" href="#providing-a-package-mirror">Providing a package mirror</a>.</p>
295 -</div>
296 <p class="last">Example: DISTFILES = ~/roverlay/distfiles</p>
297 </dd>
298 +<dt>DISTDIR</dt>
299 +<dd><p class="first">This sets the directory that contains symbolic or hard links to
300 +all package files for which an ebuild could be created. It is used
301 +for Manifest file creation and can serve as package mirror directory.</p>
302 +<p class="last">Example: DISTDIR = ~/roverlay/distdir</p>
303 +</dd>
304 <dt>LOG_FILE</dt>
305 <dd><p class="first">This sets the log file. An empty value disables file logging.</p>
306 <p class="last">Example: LOG_FILE = ~/roverlay/log/roverlay.log</p>
307 @@ -629,7 +647,7 @@ without an own log level. Valid log levels are <tt class="docutils literal">DEBU
308 <p class="first admonition-title">Note</p>
309 <p class="last">Be careful with low log levels, especially <em>DEBUG</em>.
310 They produce a lot of messages that help to track ebuild creation of
311 -the R packages, but increase the size of log files dramatically.</p>
312 +the R packages, but increase the log file size dramatically.</p>
313 </div>
314 </dd>
315 <dt>LOG_LEVEL_CONSOLE</dt>
316 @@ -656,9 +674,15 @@ creation without dependency rules fails for most R packages.</p>
317 <dt>REPO_CONFIG</dt>
318 <dd><p class="first">A list with one or more files that list repositories.
319 This option is <strong>required</strong> and can be overridden on the command line
320 -via one or more <tt class="docutils literal"><span class="pre">repo-config</span> &lt;file&gt;</tt> statements.</p>
321 +via one or more <tt class="docutils literal"><span class="pre">--repo-config</span> &lt;file&gt;</tt> statements.</p>
322 <p class="last">Example: REPO_CONFIG = ~/roverlay/config/repo.list</p>
323 </dd>
324 +<dt>PACKAGE_RULES:</dt>
325 +<dd><p class="first">A list of files and/or directories with package rules.
326 +Package rules can be used to control overlay/ebuild creation.
327 +This option is not required.</p>
328 +<p class="last">Example: PACKAGE_RULES = ~/roverlay/config/packagerules.d</p>
329 +</dd>
330 <dt>FIELD_DEFINITION</dt>
331 <dd><p class="first">The value of this option should point to a field definition file which
332 controls how an R package's DESCRIPTION file is read.
333 @@ -675,6 +699,24 @@ Specifying an eclass file that implements the ebuild phase functions
334 named <em>R-packages.eclass</em> should be part of your installation.</p>
335 <p class="last">Example: OVERLAY_ECLASS = ~/roverlay/eclass/R-packages.eclass</p>
336 </dd>
337 +<dt>DISTDIR_STRATEGY</dt>
338 +<dd><p class="first">A list of methods that define how to create the DISTDIR. The methods
339 +will be tried in the specified order, until the first one succeeds.
340 +The available methods are <em>symlink</em>, <em>hardlink</em>, <em>copy</em> and <em>tmpdir</em>.
341 +This option is <strong>required</strong>.</p>
342 +<p>Example: DISTDIR_STRATEGY = &quot;hardlink symlink&quot;</p>
343 +<p class="last">Try hard links first, then fall back to symbolic ones. This is the
344 +default value for this option.</p>
345 +</dd>
346 +<dt>DISTDIR_FLAT</dt>
347 +<dd><p class="first">This option controls whether DISTDIR will contain per-package
348 +subdirectories with links to the package files (&quot;not flat&quot;) or all
349 +links/files in a single directory (&quot;flat&quot;). This option is ignored
350 +if DISTDIR_STRATEGY is <em>tmpdir</em>.
351 +Leaving this option as-is (<em>enabled</em>) is recommended if you want to use
352 +DISTDIR as package mirror.</p>
353 +<p class="last">Example: DISTDIR_FLAT = yes</p>
354 +</dd>
355 </dl>
356 </blockquote>
357 <p>There is another option that is useful for creating new dependency rules,
358 @@ -692,11 +734,13 @@ can be configured.</dd>
359 <dt>Dependency Rules</dt>
360 <dd>See <a class="reference internal" href="#dependency-rules">Dependency Rules</a>, which explains the dependency rule syntax amd how
361 they work.</dd>
362 +<dt>Package Rules</dt>
363 +<dd>See <a class="reference internal" href="#package-rules">Package Rules</a>, which explains how to control <em>ebuild creation</em>.</dd>
364 <dt>Main Config</dt>
365 <dd>See <a class="reference internal" href="#configuration-reference">Configuration Reference</a> for all main config options like log file
366 rotation and assistance for writing new <em>dependency rules</em>.</dd>
367 <dt>Field Definition</dt>
368 -<dd>Refer to <a class="reference internal" href="#id2">Field Definition</a> in case you want to change <em>how</em> R packages
369 +<dd>Refer to <a class="reference internal" href="#id3">Field Definition</a> in case you want to change <em>how</em> R packages
370 are being read, e.g. if you want the 'Depents' information field (obviously
371 a typo) to be understood as 'Depends'.</dd>
372 </dl>
373 @@ -785,11 +829,15 @@ an overlay that is not suitable for production usage.</p>
374 <tr><td>&nbsp;</td><td>Repo config file to use. Can be specified more than once.
375 This disables all repo files configured in the main config file.</td></tr>
376 <tr><td class="option-group" colspan="2">
377 -<kbd><span class="option">--distdir <var>directory</var></span>, <span class="option">--from <var>directory</var></span></kbd></td>
378 +<kbd><span class="option">--local-distdir <var>directory</var></span>, <span class="option">--from <var>directory</var></span></kbd></td>
379 </tr>
380 <tr><td>&nbsp;</td><td>Create an overlay using the packages found in <em>directory</em>. This disables
381 all other repositories. The <em>SRC_URI</em> ebuild variable will be invalid!</td></tr>
382 <tr><td class="option-group" colspan="2">
383 +<kbd><span class="option">--print-package-rules</span>, <span class="option">--ppr</span></kbd></td>
384 +</tr>
385 +<tr><td>&nbsp;</td><td>Print package rules to stdout after parsing them and exit.</td></tr>
386 +<tr><td class="option-group" colspan="2">
387 <kbd><span class="option">--overlay <var>directory</var></span>, <span class="option">-O <var>directory</var></span></kbd></td>
388 </tr>
389 <tr><td>&nbsp;</td><td>Create the overlay at the given position.</td></tr>
390 @@ -815,11 +863,15 @@ and resolving dependencies.</p>
391 </div>
392 <div class="section" id="providing-a-package-mirror">
393 <h2><a class="toc-backref" href="#contents">3.3&nbsp;&nbsp;&nbsp;Providing a package mirror</a></h2>
394 -<p>No recommendations available at this time.
395 -The current ManifestCreation implementation creates a directory
396 -<em>&lt;distfiles root&gt;/__tmp__</em> with symlinks to all packages, which could be used
397 -for providing packages, but this may change in near future since external
398 -Manifest creation is too slow (takes &gt;60% of overlay creation time).</p>
399 +<p><a class="reference internal" href="#distdir">DISTDIR</a> with a non-temporary strategy can be used to create a directory
400 +containing all package files (as symbolic/hard links or as files).
401 +You have to set up a <em>data service</em>, e.g. an http server, that makes this
402 +directory accessible.</p>
403 +<p>The default configuration will create hard links to all package files for
404 +which an ebuild could be created in a single directory. It will fall back
405 +to symbolic links if hard links are not supported. This should be fine in
406 +most cases, but fine-tuning can be done via <a class="reference internal" href="#overlay-distdir-strategy">OVERLAY_DISTDIR_STRATEGY</a> and
407 +<a class="reference internal" href="#overlay-distdir-flat">OVERLAY_DISTDIR_FLAT</a>.</p>
408 </div>
409 </div>
410 <div class="section" id="basic-implementation-overview">
411 @@ -827,19 +879,28 @@ Manifest creation is too slow (takes &gt;60% of overlay creation time).</p>
412 <div class="section" id="how-roverlay-works">
413 <h2><a class="toc-backref" href="#contents">4.1&nbsp;&nbsp;&nbsp;How <em>roverlay</em> works</a></h2>
414 <p>These are the steps that <em>roverlay</em> performs:</p>
415 -<ol class="arabic simple">
416 -<li><strong>sync</strong> - get R packages using various methods
417 -(rsync, http, local directory)</li>
418 -<li>scan the R Overlay directory (if it exists) for valid ebuilds</li>
419 -<li>queue all R packages for ebuild creation<ul>
420 -<li>all repositories are asked to list their packages which are then added
421 -to a queue</li>
422 -<li>packages may be declined by the overlay creator if they already have
423 -an ebuild</li>
424 +<ol class="arabic">
425 +<li><p class="first"><strong>sync</strong> - get R packages using various methods
426 +(rsync, http, local directory)</p>
427 +</li>
428 +<li><p class="first">scan the R Overlay directory (if it exists) for valid ebuilds</p>
429 +</li>
430 +<li><p class="first"><strong>add</strong> - queue all R packages for ebuild creation</p>
431 +<ul>
432 +<li><p class="first">all repositories are asked to list their packages which are then added
433 +to a queue</p>
434 +</li>
435 +<li><p class="first">packages may be declined by the overlay creator if they already have
436 +an ebuild</p>
437 +</li>
438 +<li><p class="first">packages may be declined or manipulated by package rules</p>
439 +<p>See also: <a class="reference internal" href="#package-rules">Package Rules</a></p>
440 +</li>
441 </ul>
442 </li>
443 -<li><strong>create</strong> - process each package <em>p</em> from the package queue
444 -(thread-able on a per package basis)</li>
445 +<li><p class="first"><strong>create</strong> - process each package <em>p</em> from the package queue
446 +(thread-able on a per package basis)</p>
447 +</li>
448 </ol>
449 <blockquote>
450 <ul>
451 @@ -869,14 +930,15 @@ and may decide to write <em>p</em>'s ebuild now (or later)</p>
452 <ol class="arabic simple" start="5">
453 <li>write the overlay<ul>
454 <li>write all ebuilds
455 -(thread-able on a per package basis)</li>
456 +(supports threads on a per package basis)</li>
457 <li>write the <em>metadata.xml</em> files
458 -(thread-able on a per package basis)<ul>
459 +(supports threads on a per package basis)<ul>
460 <li>this uses the latest created ebuild available for a package</li>
461 </ul>
462 </li>
463 <li>write the <em>Manifest</em> files
464 -(not thread-able)<ul>
465 +(does not support threads by default / supports threads on a per package
466 +basis when using <em>portage</em> directly)<ul>
467 <li>this uses all ebuilds availabe for a package</li>
468 </ul>
469 </li>
470 @@ -939,29 +1001,29 @@ SRC_URI=&quot;&lt;src uri for the R package&gt;&quot;
471 <dd><p class="first">The default ebuild header (which cannot be changed) automatically sets
472 the ebuild's copyright year to 1999-<em>&lt;current year&gt;</em>.</p>
473 <pre class="code sh last literal-block">
474 -<span class="c"># Copyright 1999-2012 Gentoo Foundation
475 +<span class="comment"># Copyright 1999-2012 Gentoo Foundation
476 # Distributed under the terms of the GNU General Public License v2
477 # $Header: $
478 </span>
479 -<span class="nv">EAPI</span><span class="o">=</span>4
480 +<span class="name variable">EAPI</span><span class="operator">=</span>4
481 inherit R-packages
482
483 -<span class="nv">DESCRIPTION</span><span class="o">=</span><span class="s2">&quot;Time wave analysis and graphical representation&quot;</span>
484 -<span class="nv">SRC_URI</span><span class="o">=</span><span class="s2">&quot;http://cran.r-project.org/src/contrib/seewave_1.6.4.tar.gz&quot;</span>
485 +<span class="name variable">DESCRIPTION</span><span class="operator">=</span><span class="literal string double">&quot;Time wave analysis and graphical representation&quot;</span>
486 +<span class="name variable">SRC_URI</span><span class="operator">=</span><span class="literal string double">&quot;http://cran.r-project.org/src/contrib/seewave_1.6.4.tar.gz&quot;</span>
487
488 -<span class="nv">IUSE</span><span class="o">=</span><span class="s2">&quot;${IUSE:-}
489 +<span class="name variable">IUSE</span><span class="operator">=</span><span class="literal string double">&quot;${IUSE:-}
490 R_suggests
491 &quot;</span>
492 -<span class="nv">R_SUGGESTS</span><span class="o">=</span><span class="s2">&quot;sci-R/sound
493 +<span class="name variable">R_SUGGESTS</span><span class="operator">=</span><span class="literal string double">&quot;sci-R/sound
494 sci-R/audio
495 &quot;</span>
496 -<span class="nv">DEPEND</span><span class="o">=</span><span class="s2">&quot;sci-R/fftw
497 +<span class="name variable">DEPEND</span><span class="operator">=</span><span class="literal string double">&quot;sci-R/fftw
498 sci-R/tuneR
499 &gt;=dev-lang/R-2.15.0
500 sci-R/rpanel
501 sci-R/rgl
502 &quot;</span>
503 -<span class="nv">RDEPEND</span><span class="o">=</span><span class="s2">&quot;${DEPEND:-}
504 +<span class="name variable">RDEPEND</span><span class="operator">=</span><span class="literal string double">&quot;${DEPEND:-}
505 media-libs/flac
506 sci-libs/fftw
507 media-libs/libsndfile
508 @@ -973,20 +1035,20 @@ inherit R-packages
509 <dd><p class="first">Note the shortened <em>DESCRIPTION</em> variable that points to the <em>metadata.xml</em>
510 file. This happens if the description is too long.</p>
511 <pre class="code sh last literal-block">
512 -<span class="c"># Copyright 1999-2012 Gentoo Foundation
513 +<span class="comment"># Copyright 1999-2012 Gentoo Foundation
514 # Distributed under the terms of the GNU General Public License v2
515 # $Header: $
516 </span>
517 -<span class="nv">EAPI</span><span class="o">=</span>4
518 +<span class="name variable">EAPI</span><span class="operator">=</span>4
519 inherit R-packages
520
521 -<span class="nv">DESCRIPTION</span><span class="o">=</span><span class="s2">&quot;MetaPCA: Meta-analysis in the Di... (see metadata)&quot;</span>
522 -<span class="nv">SRC_URI</span><span class="o">=</span><span class="s2">&quot;http://cran.r-project.org/src/contrib/Archive/MetaPCA/MetaPCA_0.1.3.tar.gz&quot;</span>
523 +<span class="name variable">DESCRIPTION</span><span class="operator">=</span><span class="literal string double">&quot;MetaPCA: Meta-analysis in the Di... (see metadata)&quot;</span>
524 +<span class="name variable">SRC_URI</span><span class="operator">=</span><span class="literal string double">&quot;http://cran.r-project.org/src/contrib/Archive/MetaPCA/MetaPCA_0.1.3.tar.gz&quot;</span>
525
526 -<span class="nv">IUSE</span><span class="o">=</span><span class="s2">&quot;${IUSE:-}
527 +<span class="name variable">IUSE</span><span class="operator">=</span><span class="literal string double">&quot;${IUSE:-}
528 R_suggests
529 &quot;</span>
530 -<span class="nv">R_SUGGESTS</span><span class="o">=</span><span class="s2">&quot;sci-R/doMC
531 +<span class="name variable">R_SUGGESTS</span><span class="operator">=</span><span class="literal string double">&quot;sci-R/doMC
532 sci-R/affy
533 sci-R/ellipse
534 sci-R/pcaPP
535 @@ -995,12 +1057,12 @@ inherit R-packages
536 sci-R/doSMP
537 sci-R/GEOquery
538 &quot;</span>
539 -<span class="nv">DEPEND</span><span class="o">=</span><span class="s2">&quot;sci-R/foreach&quot;</span>
540 -<span class="nv">RDEPEND</span><span class="o">=</span><span class="s2">&quot;${DEPEND:-}
541 +<span class="name variable">DEPEND</span><span class="operator">=</span><span class="literal string double">&quot;sci-R/foreach&quot;</span>
542 +<span class="name variable">RDEPEND</span><span class="operator">=</span><span class="literal string double">&quot;${DEPEND:-}
543 R_suggests? ( ${R_SUGGESTS} )
544 &quot;</span>
545
546 -<span class="nv">_UNRESOLVED_PACKAGES</span><span class="o">=(</span><span class="s1">'hgu133plus2.db'</span><span class="o">)</span>
547 +<span class="name variable">_UNRESOLVED_PACKAGES</span><span class="operator">=(</span><span class="literal string single">'hgu133plus2.db'</span><span class="operator">)</span>
548 </pre>
549 </dd>
550 </dl>
551 @@ -1015,10 +1077,10 @@ of a package.</p>
552 if a package has more than one, e.g. one in its <em>Title</em> and one in its
553 <em>Description</em> information field.</p>
554 <pre class="code xml last literal-block">
555 -<span class="cp">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
556 -<span class="cp">&lt;!DOCTYPE pkgmetadata SYSTEM &quot;http://www.gentoo.org/dtd/metadata.dtd&quot;&gt;</span>
557 -<span class="nt">&lt;pkgmetadata&gt;</span>
558 - <span class="nt">&lt;longdescription&gt;</span>
559 +<span class="comment preproc">&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span>
560 +<span class="comment preproc">&lt;!DOCTYPE pkgmetadata SYSTEM &quot;http://www.gentoo.org/dtd/metadata.dtd&quot;&gt;</span>
561 +<span class="name tag">&lt;pkgmetadata&gt;</span>
562 + <span class="name tag">&lt;longdescription&gt;</span>
563 Time wave analysis and graphical representation // seewave
564 provides functions for analysing, manipulating, displaying,
565 editing and synthesizing time waves (particularly sound). This
566 @@ -1027,8 +1089,8 @@ if a package has more than one, e.g. one in its <em>Title</em> and one in its
567 correlation and autocorrelation, zero-crossing, dominant
568 frequency, analytic signal, frequency coherence, 2D and 3D
569 spectrograms and many other analyses.
570 - <span class="nt">&lt;/longdescription&gt;</span>
571 -<span class="nt">&lt;/pkgmetadata&gt;</span>
572 + <span class="name tag">&lt;/longdescription&gt;</span>
573 +<span class="name tag">&lt;/pkgmetadata&gt;</span>
574 </pre>
575 </dd>
576 </dl>
577 @@ -1101,23 +1163,23 @@ Options with whitespace are not supported.</li>
578 <li><p class="first">CRAN</p>
579 <blockquote>
580 <pre class="code ini literal-block">
581 -<span class="k">[CRAN]</span>
582 -<span class="na">type</span> <span class="o">=</span> <span class="s">rsync</span>
583 -<span class="na">rsync_uri</span> <span class="o">=</span> <span class="s">cran.r-project.org::CRAN/src/contrib</span>
584 -<span class="na">src_uri</span> <span class="o">=</span> <span class="s">http://cran.r-project.org/src/contrib</span>
585 -<span class="na">extra_rsync_opts</span> <span class="o">=</span> <span class="s">--progress --exclude=PACKAGES --exclude=PACKAGES.gz</span>
586 +<span class="keyword">[CRAN]</span>
587 +<span class="name attribute">type</span> <span class="operator">=</span> <span class="literal string">rsync</span>
588 +<span class="name attribute">rsync_uri</span> <span class="operator">=</span> <span class="literal string">cran.r-project.org::CRAN/src/contrib</span>
589 +<span class="name attribute">src_uri</span> <span class="operator">=</span> <span class="literal string">http://cran.r-project.org/src/contrib</span>
590 +<span class="name attribute">extra_rsync_opts</span> <span class="operator">=</span> <span class="literal string">--progress --exclude=PACKAGES --exclude=PACKAGES.gz</span>
591 </pre>
592 </blockquote>
593 </li>
594 <li><p class="first">CRAN's archive:</p>
595 <blockquote>
596 <pre class="code ini literal-block">
597 -<span class="k">[CRAN-Archive]</span>
598 -<span class="na">type</span> <span class="o">=</span> <span class="s">rsync</span>
599 -<span class="na">rsync_uri</span> <span class="o">=</span> <span class="s">cran.r-project.org::CRAN/src/contrib/Archive</span>
600 -<span class="na">src_uri</span> <span class="o">=</span> <span class="s">http://cran.r-project.org/src/contrib/Archive</span>
601 -<span class="na">extra_rsync_opts</span> <span class="o">=</span> <span class="s">--progress</span>
602 -<span class="na">recursive</span> <span class="o">=</span> <span class="s">yes</span>
603 +<span class="keyword">[CRAN-Archive]</span>
604 +<span class="name attribute">type</span> <span class="operator">=</span> <span class="literal string">rsync</span>
605 +<span class="name attribute">rsync_uri</span> <span class="operator">=</span> <span class="literal string">cran.r-project.org::CRAN/src/contrib/Archive</span>
606 +<span class="name attribute">src_uri</span> <span class="operator">=</span> <span class="literal string">http://cran.r-project.org/src/contrib/Archive</span>
607 +<span class="name attribute">extra_rsync_opts</span> <span class="operator">=</span> <span class="literal string">--progress</span>
608 +<span class="name attribute">recursive</span> <span class="operator">=</span> <span class="literal string">yes</span>
609 </pre>
610 </blockquote>
611 </li>
612 @@ -1132,29 +1194,29 @@ with a special syntax (debian control file syntax).</p>
613 <p>A package list example,
614 excerpt from <a class="reference external" href="http://www.omegahat.org/R/src/contrib/PACKAGES">omegahat's PACKAGES file</a> (as of Aug 2012):</p>
615 <pre class="code control literal-block">
616 -<span class="err">...</span>
617 -<span class="k">Package</span><span class="w">: </span><span class="s">CGIwithR</span>
618 -<span class="k">Version</span>: <span class="m">0.73-0</span>
619 -<span class="k">Suggests</span><span class="w">: </span><span class="s">GDD</span>
620 -<span class="k">License</span><span class="w">: </span><span class="s">GPL (&gt;= 2)</span>
621 -<span class="k">MD5sum</span><span class="w">: </span><span class="s">50b1f48209c9e66909c7afb3a4b8af5e</span>
622 -
623 -<span class="k">Package</span><span class="w">: </span><span class="s">CodeDepends</span>
624 -<span class="k">Version</span>: <span class="m">0.2-1</span>
625 -<span class="k">Depends</span>: <span class="nf">methods</span>
626 -<span class="k">Imports</span><span class="w">: </span><span class="s">codetools, XML</span>
627 -<span class="k">Suggests</span><span class="w">: </span><span class="s">graph, Rgraphviz</span>
628 -<span class="k">License</span><span class="w">: </span><span class="s">GPL</span>
629 -<span class="k">MD5sum</span><span class="w">: </span><span class="s">e2ec3505f9db1a96919a72f07673a2d8</span>
630 -<span class="err">...</span>
631 +<span class="error">...</span>
632 +<span class="keyword">Package</span><span class="whitespace">: </span><span class="literal string">CGIwithR</span>
633 +<span class="keyword">Version</span>: <span class="literal number">0.73-0</span>
634 +<span class="keyword">Suggests</span><span class="whitespace">: </span><span class="literal string">GDD</span>
635 +<span class="keyword">License</span><span class="whitespace">: </span><span class="literal string">GPL (&gt;= 2)</span>
636 +<span class="keyword">MD5sum</span><span class="whitespace">: </span><span class="literal string">50b1f48209c9e66909c7afb3a4b8af5e</span>
637 +
638 +<span class="keyword">Package</span><span class="whitespace">: </span><span class="literal string">CodeDepends</span>
639 +<span class="keyword">Version</span>: <span class="literal number">0.2-1</span>
640 +<span class="keyword">Depends</span>: <span class="name function">methods</span>
641 +<span class="keyword">Imports</span><span class="whitespace">: </span><span class="literal string">codetools, XML</span>
642 +<span class="keyword">Suggests</span><span class="whitespace">: </span><span class="literal string">graph, Rgraphviz</span>
643 +<span class="keyword">License</span><span class="whitespace">: </span><span class="literal string">GPL</span>
644 +<span class="keyword">MD5sum</span><span class="whitespace">: </span><span class="literal string">e2ec3505f9db1a96919a72f07673a2d8</span>
645 +<span class="error">...</span>
646 </pre>
647 <p>An example repo config entry for omegahat:</p>
648 <pre class="code ini literal-block">
649 -<span class="k">[omegahat]</span>
650 -<span class="na">type</span> <span class="o">=</span> <span class="s">websync_repo</span>
651 -<span class="na">src_uri</span> <span class="o">=</span> <span class="s">http://www.omegahat.org/R/src/contrib</span>
652 -<span class="na">digest</span> <span class="o">=</span> <span class="s">md5</span>
653 -<span class="c">#digest = none</span>
654 +<span class="keyword">[omegahat]</span>
655 +<span class="name attribute">type</span> <span class="operator">=</span> <span class="literal string">websync_repo</span>
656 +<span class="name attribute">src_uri</span> <span class="operator">=</span> <span class="literal string">http://www.omegahat.org/R/src/contrib</span>
657 +<span class="name attribute">digest</span> <span class="operator">=</span> <span class="literal string">md5</span>
658 +<span class="comment">#digest = none</span>
659 </pre>
660 <p>This repo type extends the default options by:</p>
661 <ul class="simple">
662 @@ -1191,9 +1253,9 @@ http://www.omegahat.org/R/src/contrib/Aspell_0.2-0.tar.gz
663 <em>~/roverlay/config/http_packages.list</em>, an example entry in the repo config
664 file would be:</p>
665 <pre class="code ini literal-block">
666 -<span class="k">[http-packages]</span>
667 -<span class="na">type</span> <span class="o">=</span> <span class="s">websync_pkglist</span>
668 -<span class="na">pkglist</span> <span class="o">=</span> <span class="s">~/roverlay/config/http_packages.list</span>
669 +<span class="keyword">[http-packages]</span>
670 +<span class="name attribute">type</span> <span class="operator">=</span> <span class="literal string">websync_pkglist</span>
671 +<span class="name attribute">pkglist</span> <span class="operator">=</span> <span class="literal string">~/roverlay/config/http_packages.list</span>
672 </pre>
673 <p>This repo type extends the default options by:</p>
674 <ul class="simple">
675 @@ -1205,10 +1267,10 @@ file would be:</p>
676 <p>Using local package directories is possible, too.</p>
677 <p>Example:</p>
678 <pre class="code ini literal-block">
679 -<span class="k">[local-packages]</span>
680 -<span class="na">type</span> <span class="o">=</span> <span class="s">local</span>
681 -<span class="na">directory</span> <span class="o">=</span> <span class="s">/var/local/R-packages</span>
682 -<span class="na">src_uri</span> <span class="o">=</span> <span class="s">http://localhost/R-packages</span>
683 +<span class="keyword">[local-packages]</span>
684 +<span class="name attribute">type</span> <span class="operator">=</span> <span class="literal string">local</span>
685 +<span class="name attribute">directory</span> <span class="operator">=</span> <span class="literal string">/var/local/R-packages</span>
686 +<span class="name attribute">src_uri</span> <span class="operator">=</span> <span class="literal string">http://localhost/R-packages</span>
687 </pre>
688 <p>This will use all packages from <em>/var/local/R-packages</em> and assumes
689 that they are available via <em>http://localhost/R-packages</em>.</p>
690 @@ -1477,8 +1539,370 @@ as <em>sci-R/zoo</em>. This rule can be written as a single word, <em>zoo</em>.<
691 </div>
692 </div>
693 </div>
694 +<div class="section" id="package-rules">
695 +<h1><a class="toc-backref" href="#contents">7&nbsp;&nbsp;&nbsp;Package Rules</a></h1>
696 +<p>Package Rules can be used to control both overlay and ebuild creation.
697 +Each package rule consists of conditions, e.g. <em>package name contains amd64</em>,
698 +and actions, e.g. <em>set KEYWORDS=&quot;-x86 amd64&quot;</em>.
699 +The actions of a rule will only be applied if a package meets all conditions,
700 +otherwise the rule does nothing.
701 +Moreover, rules can contain further rules which will only take effect if all
702 +enclosing rules match a given package.</p>
703 +<div class="section" id="package-rule-file-syntax">
704 +<h2><a class="toc-backref" href="#contents">7.1&nbsp;&nbsp;&nbsp;Package Rule File Syntax</a></h2>
705 +<p>As stated above, each rule has two parts, a <em>match block</em> that lists the
706 +rule's conditions and an <em>action block</em> that defines which actions and
707 +nested rules are applied to a package if the rule matches it, i.e. if all
708 +conditions are met.</p>
709 +<p>A rule file contains zero or more package rules.
710 +Each rule has to declare one <em>match</em> and one <em>action statement</em> at least.
711 +The basic syntax for a rule with 1..m <em>match</em> and 1..n <em>action statements</em> is</p>
712 +<pre class="code literal-block">
713 +MATCH:
714 + &lt;match statement 1&gt;
715 + &lt;match statement 2&gt;
716 + ...
717 + &lt;match statement m&gt;
718 +ACTION:
719 + &lt;action statement 1&gt;
720 + &lt;action statement 2&gt;
721 + ...
722 + &lt;action statement n&gt;
723 +END;
724 +</pre>
725 +<p>A rule is introduced by the <tt class="docutils literal">MATCH:</tt> keyword, which starts the
726 +<em>match block</em> and is followed by one or more <em>match statements</em>, one per line.
727 +The <em>match block</em> ends with the <tt class="docutils literal">ACTION:</tt> keyword, which also starts the
728 +<em>action block</em> and is followed by one or more <em>action statements</em>
729 +(again, one per line). Finally, the rule is terminated by the <tt class="docutils literal">END;</tt> keyword.</p>
730 +<p>Indention is purely optional, leading and ending whitespace will be discarded.
731 +Lines starting with <tt class="docutils literal">#</tt> or <tt class="docutils literal">;</tt> are considered to be comments and will be
732 +ignored.</p>
733 +<div class="section" id="match-blocks">
734 +<h3><a class="toc-backref" href="#contents">7.1.1&nbsp;&nbsp;&nbsp;Match Blocks</a></h3>
735 +<p>The <em>match block</em> lists one or more conditions, which all must evaluate to
736 +<em>true</em> for a certain package, otherwise no actions will be applied.
737 +There are two types of conditions, <em>trivial</em> conditions,
738 +e.g. <em>always true/false</em> or <em>random - flip a coin</em>, and <em>non-trivial</em> ones
739 +that depend on the information a package has, e.g. its repository or name.</p>
740 +<p>Only <em>non-trivial</em> conditions can be defined in <em>match statements</em>.
741 +The consist of a <strong>match keyword</strong> that defines <em>what</em> should be matched, an
742 +<strong>accepted value</strong> to compare against and an <strong>operator</strong> that defines the
743 +relation <em>accepted value - package's information</em>, i.e. <em>how</em> to compare.
744 +The operator can be omitted, in which case it is determined by the
745 +<em>match keyword</em>.</p>
746 +<p>The <em>match statement</em> syntax is</p>
747 +<pre class="code literal-block">
748 +&lt;match keyword&gt; [&lt;operator&gt;] &lt;accepted value&gt;
749 +</pre>
750 +<p>These <em>match keywords</em> are recognized:</p>
751 +<table border="1" class="docutils">
752 +<caption>match statement keywords</caption>
753 +<colgroup>
754 +<col width="21%" />
755 +<col width="25%" />
756 +<col width="54%" />
757 +</colgroup>
758 +<thead valign="bottom">
759 +<tr><th class="head">match keyword</th>
760 +<th class="head">default operator</th>
761 +<th class="head">matches</th>
762 +</tr>
763 +</thead>
764 +<tbody valign="top">
765 +<tr><td>repo</td>
766 +<td>nocase-string</td>
767 +<td><em>alias to repo_name</em></td>
768 +</tr>
769 +<tr><td>repo_name</td>
770 +<td>nocase-string</td>
771 +<td>name of the repo, e.g. <em>CRAN</em></td>
772 +</tr>
773 +<tr><td>package</td>
774 +<td><em>implicit</em></td>
775 +<td>package file name with version
776 +but without the file extension, e.g.
777 +<em>rpart.plot_1.3-0</em></td>
778 +</tr>
779 +<tr><td>package_name</td>
780 +<td><em>implicit</em></td>
781 +<td>package file name without version
782 +and file extension, e.g. <em>seewave</em></td>
783 +</tr>
784 +<tr><td>name</td>
785 +<td><em>implicit</em></td>
786 +<td><em>alias to package_name</em></td>
787 +</tr>
788 +</tbody>
789 +</table>
790 +<p>Note the <strong>implicit operator</strong>. It will be used whenever no explicit operator
791 +has been specified in the match statement and the match keyword does not
792 +define a default one. Four explicit operators are available:</p>
793 +<table border="1" class="docutils">
794 +<caption>match statement operators</caption>
795 +<colgroup>
796 +<col width="21%" />
797 +<col width="18%" />
798 +<col width="61%" />
799 +</colgroup>
800 +<thead valign="bottom">
801 +<tr><th class="head">operator name</th>
802 +<th class="head">operator(s)</th>
803 +<th class="head">description</th>
804 +</tr>
805 +</thead>
806 +<tbody valign="top">
807 +<tr><td>exact-string</td>
808 +<td>== =</td>
809 +<td>exact string match</td>
810 +</tr>
811 +<tr><td>nocase-string</td>
812 +<td>,= =,</td>
813 +<td>case-insensitive string match</td>
814 +</tr>
815 +<tr><td>exact-regex</td>
816 +<td>~= =~</td>
817 +<td>exact regex match <em>^&lt;expression&gt;$</em></td>
818 +</tr>
819 +<tr><td>regex</td>
820 +<td>~~ ~</td>
821 +<td>partial regex match</td>
822 +</tr>
823 +<tr><td><em>implicit</em></td>
824 +<td><em>none</em></td>
825 +<td><em>exact-regex</em> operator if <em>accepted value</em>
826 +has any wildcard characters (?, *), else
827 +<em>exact-string</em>. Wildcard chars will
828 +be replaced with their regex equivalents.</td>
829 +</tr>
830 +</tbody>
831 +</table>
832 +<p>The <em>accepted value</em> is a simple string or a regular expression,
833 +which depends on the operator.</p>
834 +<div class="section" id="extended-match-block-syntax">
835 +<h4><a class="toc-backref" href="#contents">7.1.1.1&nbsp;&nbsp;&nbsp;Extended Match Block Syntax</a></h4>
836 +<p>Sometimes, a rule should apply its actions to a package if it matches <em>any</em>
837 +condition, e.g. <em>package from CRAN or BIOC</em>, or if it does not match a certain
838 +condition, e.g. <em>package not from BIOC/experiment</em>.</p>
839 +<p>This is supported by special <em>match keywords</em> that represent
840 +<em>boolean functions</em>. Such a <em>match statement</em> is introduced by the keyword,
841 +followed by one or more <em>match statements</em> that are indented by one asterisk
842 +<tt class="docutils literal">*</tt> or dash <tt class="docutils literal">-</tt> character for each <em>boolean function</em> that is currently
843 +active. These characters are important and indicate the <em>match depth</em>.
844 +A depth of 0 means that no function is active.</p>
845 +<p>Syntax Example:</p>
846 +<pre class="code literal-block">
847 +MATCH:
848 + &lt;match statement 1, match depth 0&gt;
849 + ...
850 + &lt;boolean function&gt;
851 + * &lt;match statement 1, match depth 1&gt;
852 + * &lt;match statement 2, match depth 1&gt;
853 + * ...
854 + * &lt;match statement m, match depth 1&gt;
855 + ...
856 + &lt;match statement n, match depth 0&gt;
857 +ACTION:
858 + ...
859 +END;
860 +</pre>
861 +<p>For reference, the following table lists the <em>boolean functions</em> available,
862 +their <em>match keywords</em> and their meaning:</p>
863 +<table border="1" class="docutils">
864 +<caption>boolean functions</caption>
865 +<colgroup>
866 +<col width="25%" />
867 +<col width="18%" />
868 +<col width="56%" />
869 +</colgroup>
870 +<thead valign="bottom">
871 +<tr><th class="head">boolean function</th>
872 +<th class="head">match
873 +keyword(s)</th>
874 +<th class="head">description</th>
875 +</tr>
876 +</thead>
877 +<tbody valign="top">
878 +<tr><td>AND</td>
879 +<td>and all &amp;&amp;</td>
880 +<td>all listed conditions must match</td>
881 +</tr>
882 +<tr><td>OR</td>
883 +<td>or ||</td>
884 +<td>any
885 +of the listed conditions must match</td>
886 +</tr>
887 +<tr><td>XOR1</td>
888 +<td>xor1 xor ^^</td>
889 +<td>exactly one
890 +of the listed conditions must match</td>
891 +</tr>
892 +<tr><td>NOR</td>
893 +<td>nor none</td>
894 +<td>none
895 +of the listed conditions must match</td>
896 +</tr>
897 +</tbody>
898 +</table>
899 +<p>In other words, a (boolean) match keyword starts a <em>nested match block</em>
900 +at any position in the current one and increases the <em>match depth</em> by one.
901 +The nested block is terminated by indenting out, i.e. decreasing the
902 +<em>match depth</em> by one. The (extended) match statement syntax then becomes:</p>
903 +<pre class="code literal-block">
904 +&lt;'*'^&lt;match_depth&gt;&gt; &lt;(basic) match statement&gt;
905 +</pre>
906 +<div class="note">
907 +<p class="first admonition-title">Note</p>
908 +<p>The extended match statement syntax does not support boolean functions
909 +with a fixed number of conditions, e.g. 1. This is why there is no
910 +<em>NOT</em> function. The definition for more than one condition would be
911 +ambiguous, either <em>NOR</em> or <em>NAND</em>.</p>
912 +<p class="last">Correspondingly, the logic for the top-level match block is <em>AND</em> by
913 +convention.</p>
914 +</div>
915 +<p>Using this syntax, match blocks can be nested indefinitely (minus technical
916 +limitations):</p>
917 +<pre class="code literal-block">
918 +MATCH:
919 + &lt;match statement 1, depth 0&gt;
920 + &lt;boolean function 2, depth 0&gt;
921 + * &lt;match statement 1, depth 1&gt;
922 + * &lt;match statement 2, depth 1&gt;
923 + * ...
924 + * &lt;match statement k-1, depth 1&gt;
925 + * &lt;boolean function k, depth 1&gt;
926 + ** &lt;match statement 1, depth 2&gt;
927 + ** ...
928 + ** &lt;match statement o, depth 2&gt;
929 + * &lt;match statement k+1, depth 1&gt;
930 + * ...
931 + * &lt;match statement m, depth 1&gt;
932 + ...
933 + &lt;match statement n, depth 0&gt;
934 +ACTION:
935 + ...
936 +END;
937 +</pre>
938 +</div>
939 +</div>
940 +<div class="section" id="action-blocks">
941 +<h3><a class="toc-backref" href="#contents">7.1.2&nbsp;&nbsp;&nbsp;Action Blocks</a></h3>
942 +<p>The action block syntax is quite simple. Each <em>action statement</em> starts
943 +with an <em>action keyword</em>, optionally followed by one or more <em>values</em>.</p>
944 +<p>Action statement syntax:</p>
945 +<pre class="code literal-block">
946 +&lt;action keyword&gt; [&lt;value&gt;]*
947 +</pre>
948 +<p>The value(s) can be enclosed by quotation characters (<tt class="docutils literal">&quot;</tt>, <tt class="docutils literal">'</tt>).</p>
949 +<p>The following table lists all <em>action keywords</em>, their impact (<em>what</em> they
950 +control <em>where</em>) and the number of values they accept:</p>
951 +<table border="1" class="docutils">
952 +<caption>action keywords</caption>
953 +<colgroup>
954 +<col width="23%" />
955 +<col width="25%" />
956 +<col width="18%" />
957 +<col width="34%" />
958 +</colgroup>
959 +<thead valign="bottom">
960 +<tr><th class="head">action keyword</th>
961 +<th class="head">affects</th>
962 +<th class="head"># of values</th>
963 +<th class="head">description</th>
964 +</tr>
965 +</thead>
966 +<tbody valign="top">
967 +<tr><td>ignore</td>
968 +<td rowspan="2">overlay creation</td>
969 +<td rowspan="2">none</td>
970 +<td rowspan="2">ignore package,
971 +do not try to create
972 +an ebuild for it</td>
973 +</tr>
974 +<tr><td>do-not-process</td>
975 +</tr>
976 +<tr><td>keywords</td>
977 +<td>ebuild variables</td>
978 +<td>&gt;= 1</td>
979 +<td>set per-package
980 +<tt class="docutils literal">KEYWORDS</tt></td>
981 +</tr>
982 +</tbody>
983 +</table>
984 +<div class="section" id="extended-action-block-syntax">
985 +<h4><a class="toc-backref" href="#contents">7.1.2.1&nbsp;&nbsp;&nbsp;Extended Action Block Syntax</a></h4>
986 +<p>A mentioned before, action blocks can contain <em>nested rules</em>. The syntax
987 +is exactly the same as for the normal package rules:</p>
988 +<pre class="code literal-block">
989 +MATCH:
990 + # top-level rule, match block
991 + ...
992 +ACTION:
993 + # top-level rule, action block
994 + ...
995 + MATCH:
996 + # nested rule, match block
997 + ...
998 + ACTION:
999 + # nested rule, action block
1000 + ...
1001 + END;
1002 + # top-level rule, action block continues
1003 + ...
1004 +END;
1005 +</pre>
1006 +<p>Rules can be nested indefinitely, whitespace indention is optional.
1007 +A <em>nested rule</em> only becomes active, i.e. tries to match a package, if its
1008 +enclosing rule already matched it. This can be used to reduce the number of
1009 +checks necessary for a given package.</p>
1010 +</div>
1011 +</div>
1012 +<div class="section" id="package-rule-examples">
1013 +<h3><a class="toc-backref" href="#contents">7.1.3&nbsp;&nbsp;&nbsp;Package Rule Examples</a></h3>
1014 +<p>A rule that ignores the 'yaqcaffy' package from CRAN, which is also available
1015 +from BIOC:</p>
1016 +<pre class="code literal-block">
1017 +MATCH:
1018 + repo == CRAN
1019 + package_name == yaqcaffy
1020 +ACTION:
1021 + do-not-process
1022 +END;
1023 +</pre>
1024 +<p>A more complex example that sets the <tt class="docutils literal">KEYWORDS</tt> ebuild variable for
1025 +all packages whose name contains <em>amd64</em> or <em>x86_64</em> to <tt class="docutils literal"><span class="pre">-x86</span> ~amd64</tt>
1026 +if the package is from BIOC/experiment, and otherwise to <tt class="docutils literal"><span class="pre">-x86</span> amd64</tt>:</p>
1027 +<pre class="code literal-block">
1028 +MATCH:
1029 + or
1030 + * package_name ~ x86_64
1031 + * package_name ~ amd64
1032 +ACTION:
1033 + MATCH:
1034 + NOR
1035 + * repo == BIOC/experiment
1036 + ACTION:
1037 + keywords &quot;-x86 amd64&quot;
1038 + END;
1039 + MATCH:
1040 + repo == BIOC/experiment
1041 + ACTION:
1042 + keywords &quot;-x86 ~amd64&quot;
1043 + END;
1044 +END;
1045 +</pre>
1046 +<div class="caution">
1047 +<p class="first admonition-title">Caution!</p>
1048 +<p class="last">Applying the same action more than once per package is not supported.
1049 +That is why the example above uses another nested rule with a <em>NOR</em>-match
1050 +instead of simply specifying the desired action.
1051 +This limitation will be removed soon.</p>
1052 +</div>
1053 +</div>
1054 +</div>
1055 +</div>
1056 <div class="section" id="configuration-reference">
1057 -<h1><a class="toc-backref" href="#contents">7&nbsp;&nbsp;&nbsp;Configuration Reference</a></h1>
1058 +<h1><a class="toc-backref" href="#contents">8&nbsp;&nbsp;&nbsp;Configuration Reference</a></h1>
1059 <p>The main config file uses '&lt;option&gt; = &lt;value&gt;' syntax, comment lines start
1060 with <strong>#</strong>. Variable substitution (&quot;${X}&quot;) is not supported. Quotes around
1061 the value are optional and allow to span long values over multiple lines.
1062 @@ -1531,7 +1955,7 @@ restrictions. Commenting it out is safe.</dd>
1063 </dl>
1064 <p>The following sections will list all config entries.</p>
1065 <div class="section" id="misc-options">
1066 -<h2><a class="toc-backref" href="#contents">7.1&nbsp;&nbsp;&nbsp;misc options</a></h2>
1067 +<h2><a class="toc-backref" href="#contents">8.1&nbsp;&nbsp;&nbsp;misc options</a></h2>
1068 <dl class="docutils" id="distfiles">
1069 <dt>DISTFILES</dt>
1070 <dd>Alias to <a class="reference internal" href="#distfiles-root">DISTFILES_ROOT</a>.</dd>
1071 @@ -1565,7 +1989,19 @@ This will pass '--bwlimit=&lt;value&gt;' to all rsync commands.</p>
1072 </dl>
1073 </div>
1074 <div class="section" id="overlay-options">
1075 -<h2><a class="toc-backref" href="#contents">7.2&nbsp;&nbsp;&nbsp;overlay options</a></h2>
1076 +<h2><a class="toc-backref" href="#contents">8.2&nbsp;&nbsp;&nbsp;overlay options</a></h2>
1077 +<dl class="docutils" id="distdir">
1078 +<dt>DISTDIR</dt>
1079 +<dd>Alias to <a class="reference internal" href="#overlay-distdir-root">OVERLAY_DISTDIR_ROOT</a>.</dd>
1080 +</dl>
1081 +<dl class="docutils" id="distdir-flat">
1082 +<dt>DISTDIR_FLAT</dt>
1083 +<dd>Alias to <a class="reference internal" href="#overlay-distdir-flat">OVERLAY_DISTDIR_FLAT</a>.</dd>
1084 +</dl>
1085 +<dl class="docutils" id="distdir-strategy">
1086 +<dt>DISTDIR_STRATEGY</dt>
1087 +<dd>Alias to <a class="reference internal" href="#overlay-distdir-strategy">OVERLAY_DISTDIR_STRATEGY</a>.</dd>
1088 +</dl>
1089 <dl class="docutils" id="eclass">
1090 <dt>ECLASS</dt>
1091 <dd>Alias to <a class="reference internal" href="#overlay-eclass">OVERLAY_ECLASS</a>.</dd>
1092 @@ -1587,6 +2023,69 @@ for this option, but values with a slash <em>/</em> lead to errors.</p>
1093 <p class="last">This option is <strong>required</strong>.</p>
1094 </dd>
1095 </dl>
1096 +<dl class="docutils" id="overlay-distdir-flat">
1097 +<dt>OVERLAY_DISTDIR_FLAT</dt>
1098 +<dd><p class="first">A <em>bool</em> that controls the overall layout of _OVERLAY_DISTDIR_ROOT.</p>
1099 +<p>A flat distdir is a single directory with all package files or package
1100 +file links in it. A nested distdir contains per-package directories.</p>
1101 +<p class="last">Defaults to <em>true</em>.
1102 +This option has no effect if the distdir strategy is <em>tmpdir</em>.</p>
1103 +</dd>
1104 +</dl>
1105 +<dl class="docutils" id="overlay-distdir-root">
1106 +<dt>OVERLAY_DISTDIR_ROOT</dt>
1107 +<dd><p class="first">Sets the DISTDIR root directory. It is used for Manifest file
1108 +creation, but can serve as package mirror directory as well.</p>
1109 +<p>The actual appearance of this directory is up to the distdir strategy
1110 +(<a class="reference internal" href="#overlay-distdir-strategy">OVERLAY_DISTDIR_STRATEGY</a>) and <a class="reference internal" href="#overlay-distdir-flat">OVERLAY_DISTDIR_FLAT</a>.
1111 +Basically, it contains all package files that have a valid ebuild.</p>
1112 +<div class="note last">
1113 +<p class="first admonition-title">Note</p>
1114 +<p class="last">This directory will not be cleaned up, only broken symbolic links
1115 +will be removed. On the one hand, it is absolutely guaranteed that
1116 +package files will not disappear unless replaced by a new file with
1117 +the same name, but on the other hand, the directory may get bloated
1118 +over time.</p>
1119 +</div>
1120 +</dd>
1121 +</dl>
1122 +<dl class="docutils" id="overlay-distdir-strategy">
1123 +<dt>OVERLAY_DISTDIR_STRATEGY</dt>
1124 +<dd><p class="first">The distdir strategy defines <em>how</em> package files are created.
1125 +It is a list of methods that will be tried in the specified order, until
1126 +the first one succeeds.</p>
1127 +<table border="1" class="docutils">
1128 +<caption>distdir creation methods</caption>
1129 +<colgroup>
1130 +<col width="14%" />
1131 +<col width="86%" />
1132 +</colgroup>
1133 +<thead valign="bottom">
1134 +<tr><th class="head">method</th>
1135 +<th class="head">description</th>
1136 +</tr>
1137 +</thead>
1138 +<tbody valign="top">
1139 +<tr><td>symlink</td>
1140 +<td>use symbolic links</td>
1141 +</tr>
1142 +<tr><td>hardlink</td>
1143 +<td>use hard links</td>
1144 +</tr>
1145 +<tr><td>copy</td>
1146 +<td>copy package files
1147 +Obviously, this will need much more disk space.</td>
1148 +</tr>
1149 +<tr><td>tmpdir</td>
1150 +<td>use a temporary DISTDIR that will be deleted at exit.
1151 +This method is not compatible with any of the above.</td>
1152 +</tr>
1153 +</tbody>
1154 +</table>
1155 +<p class="last">This option is <strong>required</strong>, but has a reasonable value in the default
1156 +config file, &quot;hardlink symlink&quot;.</p>
1157 +</dd>
1158 +</dl>
1159 <dl class="docutils" id="overlay-eclass">
1160 <dt>OVERLAY_ECLASS</dt>
1161 <dd><p class="first">A list of eclass files that will be imported into the overlay and inherited
1162 @@ -1608,9 +2107,11 @@ per R package. All others will be removed.</p>
1163 </dl>
1164 <dl class="docutils" id="overlay-manifest-implementation">
1165 <dt>OVERLAY_MANIFEST_IMPLEMENTATION</dt>
1166 -<dd><p class="first">Sets the implementation to use for Manifest file writing.
1167 -Available choices are 'external:ebuild', 'default' and 'none'.
1168 -Defaults to 'default'.</p>
1169 +<dd><p class="first">Sets the implementation that will be used for Manifest file writing.
1170 +Available choices are <em>ebuild</em>, <em>portage</em>, <em>default</em> and <em>none</em>.
1171 +Defaults to <em>default</em> (-&gt; <em>ebuild</em>).
1172 +<em>portage</em> is highly experimental and therefore not recommended
1173 +for production usage.</p>
1174 <div class="note last">
1175 <p class="first admonition-title">Note</p>
1176 <p class="last">Choosing 'none' is destructive - <em>roverlay</em> will fail to function
1177 @@ -1630,11 +2131,11 @@ writing.</p>
1178 </dl>
1179 </div>
1180 <div class="section" id="other-config-files">
1181 -<h2><a class="toc-backref" href="#contents">7.3&nbsp;&nbsp;&nbsp;other config files</a></h2>
1182 +<h2><a class="toc-backref" href="#contents">8.3&nbsp;&nbsp;&nbsp;other config files</a></h2>
1183 <p>Some config config options are split from the main config file for various
1184 reasons:</p>
1185 <ul class="simple">
1186 -<li>no need for modification in most cases, e.g. the <a class="reference internal" href="#id2">field definition</a> file</li>
1187 +<li>no need for modification in most cases, e.g. the <a class="reference internal" href="#id3">field definition</a> file</li>
1188 <li>special syntax that is not compatible with the main config file,
1189 e.g. the <a class="reference internal" href="#dependency-rule-file-syntax">dependency rule file syntax</a></li>
1190 </ul>
1191 @@ -1652,6 +2153,15 @@ of R packages is read.</p>
1192 <dd>Alias to <a class="reference internal" href="#field-definition">FIELD_DEFINITION</a>.</dd>
1193 </dl>
1194 <dl class="docutils" id="id1">
1195 +<dt>PACKAGE_RULES</dt>
1196 +<dd>Alias to <a class="reference internal" href="#package-rule-files">PACKAGE_RULE_FILES</a>.</dd>
1197 +</dl>
1198 +<dl class="docutils" id="package-rule-files">
1199 +<dt>PACKAGE_RULE_FILES</dt>
1200 +<dd>A list of files and directories with package rules.
1201 +Directories will be recursively scanned for rule files.</dd>
1202 +</dl>
1203 +<dl class="docutils" id="id2">
1204 <dt>REPO_CONFIG</dt>
1205 <dd><p class="first">A list of one or more repo config files.</p>
1206 <p class="last">This option is <strong>required</strong>.</p>
1207 @@ -1659,11 +2169,11 @@ of R packages is read.</p>
1208 </dl>
1209 <dl class="docutils" id="repo-config-file">
1210 <dt>REPO_CONFIG_FILE</dt>
1211 -<dd>Alias to <a class="reference internal" href="#id1">REPO_CONFIG</a>.</dd>
1212 +<dd>Alias to <a class="reference internal" href="#id2">REPO_CONFIG</a>.</dd>
1213 </dl>
1214 <dl class="docutils" id="repo-config-files">
1215 <dt>REPO_CONFIG_FILES</dt>
1216 -<dd>Alias to <a class="reference internal" href="#id1">REPO_CONFIG</a>.</dd>
1217 +<dd>Alias to <a class="reference internal" href="#id2">REPO_CONFIG</a>.</dd>
1218 </dl>
1219 <dl class="docutils" id="simple-rules-file">
1220 <dt>SIMPLE_RULES_FILE</dt>
1221 @@ -1679,7 +2189,7 @@ much without dependency resolution.</p>
1222 </dl>
1223 </div>
1224 <div class="section" id="logging">
1225 -<h2><a class="toc-backref" href="#contents">7.4&nbsp;&nbsp;&nbsp;logging</a></h2>
1226 +<h2><a class="toc-backref" href="#contents">8.4&nbsp;&nbsp;&nbsp;logging</a></h2>
1227 <dl class="docutils" id="log-date-format">
1228 <dt>LOG_DATE_FORMAT</dt>
1229 <dd><p class="first">The date format (ISO8601) used in log messages.</p>
1230 @@ -1704,7 +2214,7 @@ have their own log level.</p>
1231 </dd>
1232 </dl>
1233 <div class="section" id="console-logging">
1234 -<h3><a class="toc-backref" href="#contents">7.4.1&nbsp;&nbsp;&nbsp;console logging</a></h3>
1235 +<h3><a class="toc-backref" href="#contents">8.4.1&nbsp;&nbsp;&nbsp;console logging</a></h3>
1236 <dl class="docutils" id="log-console">
1237 <dt>LOG_CONSOLE</dt>
1238 <dd><p class="first">Enables/Disables logging to console. The value has to be a <em>bool</em>.</p>
1239 @@ -1725,7 +2235,7 @@ have their own log level.</p>
1240 </dl>
1241 </div>
1242 <div class="section" id="file-logging">
1243 -<h3><a class="toc-backref" href="#contents">7.4.2&nbsp;&nbsp;&nbsp;file logging</a></h3>
1244 +<h3><a class="toc-backref" href="#contents">8.4.2&nbsp;&nbsp;&nbsp;file logging</a></h3>
1245 <dl class="docutils" id="log-file">
1246 <dt>LOG_FILE</dt>
1247 <dd><p class="first">Sets the log file. File logging will be disabled if this option does not
1248 @@ -1784,7 +2294,7 @@ files will be kept.</p>
1249 </div>
1250 </div>
1251 <div class="section" id="options-for-debugging-manual-dependency-rule-creation-and-testing">
1252 -<h2><a class="toc-backref" href="#contents">7.5&nbsp;&nbsp;&nbsp;options for debugging, manual dependency rule creation and testing</a></h2>
1253 +<h2><a class="toc-backref" href="#contents">8.5&nbsp;&nbsp;&nbsp;options for debugging, manual dependency rule creation and testing</a></h2>
1254 <dl class="docutils" id="description-dir">
1255 <dt>DESCRIPTION_DIR</dt>
1256 <dd><p class="first">A directory where all description data read from an R package will be
1257 @@ -1803,7 +2313,7 @@ on <em>roverlay</em> exit. Primarily useful for creating new rules.</p>
1258 </div>
1259 </div>
1260 <div class="section" id="field-definition-config">
1261 -<span id="id2"></span><h1><a class="toc-backref" href="#contents">8&nbsp;&nbsp;&nbsp;Field Definition Config</a></h1>
1262 +<span id="id3"></span><h1><a class="toc-backref" href="#contents">9&nbsp;&nbsp;&nbsp;Field Definition Config</a></h1>
1263 <p>The field definition file uses <a class="reference external" href="http://docs.python.org/library/configparser.html">ConfigParser</a> syntax and defines
1264 how an R package's DESCRIPTION file is read.
1265 See the next section, <a class="reference internal" href="#default-field-definition-file">default field definition file</a>, for an example.</p>
1266 @@ -1885,43 +2395,43 @@ such a field is found.</dd>
1267 <p class="last">It is not checked whether a flag is known or not.</p>
1268 </div>
1269 <div class="section" id="example-the-default-field-definition-file">
1270 -<span id="default-field-definition-file"></span><h2><a class="toc-backref" href="#contents">8.1&nbsp;&nbsp;&nbsp;Example: The default field definition file</a></h2>
1271 +<span id="default-field-definition-file"></span><h2><a class="toc-backref" href="#contents">9.1&nbsp;&nbsp;&nbsp;Example: The default field definition file</a></h2>
1272 <p>This is the default field definition file (without any ignored fields):</p>
1273 <pre class="code ini literal-block">
1274 -<span class="k">[Description]</span>
1275 -<span class="err">joinValues</span>
1276 +<span class="keyword">[Description]</span>
1277 +<span class="error">joinValues</span>
1278
1279 -<span class="k">[Title]</span>
1280 -<span class="err">joinValues</span>
1281 +<span class="keyword">[Title]</span>
1282 +<span class="error">joinValues</span>
1283
1284 -<span class="k">[Suggests]</span>
1285 -<span class="na">alias_nocase</span> <span class="o">=</span> <span class="s">Suggests, Suggest, %Suggests, Suggets, Recommends</span>
1286 -<span class="err">isList</span>
1287 +<span class="keyword">[Suggests]</span>
1288 +<span class="name attribute">alias_nocase</span> <span class="operator">=</span> <span class="literal string">Suggests, Suggest, %Suggests, Suggets, Recommends</span>
1289 +<span class="error">isList</span>
1290
1291 -<span class="k">[Depends]</span>
1292 -<span class="na">alias_nocase</span> <span class="o">=</span> <span class="s">Depends, Dependencies, Dependes, %Depends, Depents, Require, Requires</span>
1293 -<span class="err">isList</span>
1294 +<span class="keyword">[Depends]</span>
1295 +<span class="name attribute">alias_nocase</span> <span class="operator">=</span> <span class="literal string">Depends, Dependencies, Dependes, %Depends, Depents, Require, Requires</span>
1296 +<span class="error">isList</span>
1297
1298 -<span class="k">[Imports]</span>
1299 -<span class="na">alias_nocase</span> <span class="o">=</span> <span class="s">Imports, Import</span>
1300 -<span class="err">isList</span>
1301 +<span class="keyword">[Imports]</span>
1302 +<span class="name attribute">alias_nocase</span> <span class="operator">=</span> <span class="literal string">Imports, Import</span>
1303 +<span class="error">isList</span>
1304
1305 -<span class="k">[LinkingTo]</span>
1306 -<span class="na">alias_nocase</span> <span class="o">=</span> <span class="s">LinkingTo, LinkingdTo, LinkinTo</span>
1307 -<span class="err">isList</span>
1308 +<span class="keyword">[LinkingTo]</span>
1309 +<span class="name attribute">alias_nocase</span> <span class="operator">=</span> <span class="literal string">LinkingTo, LinkingdTo, LinkinTo</span>
1310 +<span class="error">isList</span>
1311
1312 -<span class="k">[SystemRequirements]</span>
1313 -<span class="na">alias_nocase</span> <span class="o">=</span> <span class="s">SystemRequirements, SystemRequirement</span>
1314 -<span class="err">isList</span>
1315 +<span class="keyword">[SystemRequirements]</span>
1316 +<span class="name attribute">alias_nocase</span> <span class="operator">=</span> <span class="literal string">SystemRequirements, SystemRequirement</span>
1317 +<span class="error">isList</span>
1318
1319 -<span class="k">[OS_Type]</span>
1320 -<span class="na">alias_nocase</span> <span class="o">=</span> <span class="s">OS_TYPE</span>
1321 -<span class="na">allowed_values</span> <span class="o">=</span> <span class="s">unix</span>
1322 +<span class="keyword">[OS_Type]</span>
1323 +<span class="name attribute">alias_nocase</span> <span class="operator">=</span> <span class="literal string">OS_TYPE</span>
1324 +<span class="name attribute">allowed_values</span> <span class="operator">=</span> <span class="literal string">unix</span>
1325 </pre>
1326 </div>
1327 </div>
1328 <div class="section" id="dependency-resolution-console">
1329 -<span id="depres-console"></span><h1><a class="toc-backref" href="#contents">9&nbsp;&nbsp;&nbsp;Dependency Resolution Console</a></h1>
1330 +<span id="depres-console"></span><h1><a class="toc-backref" href="#contents">10&nbsp;&nbsp;&nbsp;Dependency Resolution Console</a></h1>
1331 <p>As previously stated, the <em>DepRes Console</em> is only meant for <strong>testing</strong>.
1332 It is an interactive console with the following features:</p>
1333 <ul class="simple">
1334 @@ -2079,13 +2589,13 @@ cmd % exit
1335 </dl>
1336 </div>
1337 <div class="section" id="implementation-overview">
1338 -<h1><a class="toc-backref" href="#contents">10&nbsp;&nbsp;&nbsp;Implementation Overview</a></h1>
1339 +<h1><a class="toc-backref" href="#contents">11&nbsp;&nbsp;&nbsp;Implementation Overview</a></h1>
1340 <p>This chapter gives an in-depth overview of how roverlay works.
1341 Code documentation is also available and html pages for it can be created
1342 with <tt class="docutils literal">make pydoc</tt> in the <em>R Overlay src directory</em> or by using pydoc
1343 directly.</p>
1344 <div class="section" id="packageinfo">
1345 -<h2><a class="toc-backref" href="#contents">10.1&nbsp;&nbsp;&nbsp;PackageInfo</a></h2>
1346 +<h2><a class="toc-backref" href="#contents">11.1&nbsp;&nbsp;&nbsp;PackageInfo</a></h2>
1347 <p><em>PackageInfo</em> is the data object that contains all information about an
1348 R package and is created by the owning repository.</p>
1349 <p>After initialization it contains data like</p>
1350 @@ -2106,7 +2616,7 @@ for it. Otherwise, <em>p</em> is now part of the overlay and has to pass
1351 <em>ebuild creation</em>.</p>
1352 </div>
1353 <div class="section" id="repository-management">
1354 -<h2><a class="toc-backref" href="#contents">10.2&nbsp;&nbsp;&nbsp;Repository Management</a></h2>
1355 +<h2><a class="toc-backref" href="#contents">11.2&nbsp;&nbsp;&nbsp;Repository Management</a></h2>
1356 <p>Repositories are managed in a list-like object, <em>RepoList</em>. Its task is to
1357 provide R package input for overlay creation and implements the following
1358 functionality:</p>
1359 @@ -2116,8 +2626,8 @@ functionality:</p>
1360 <li><em>sync</em> all repos and <em>nosync</em> all repos (offline mode)</li>
1361 <li>create <em>PackageInfo</em> instances for R packages from all repositories</li>
1362 </ul>
1363 -<div class="section" id="id3">
1364 -<h3><a class="toc-backref" href="#contents">10.2.1&nbsp;&nbsp;&nbsp;Repositories</a></h3>
1365 +<div class="section" id="id4">
1366 +<h3><a class="toc-backref" href="#contents">11.2.1&nbsp;&nbsp;&nbsp;Repositories</a></h3>
1367 <p>The functionality described above is an abstraction layer that calls the
1368 respective function for each repository and collects the result.
1369 So, while the <em>RepoList</em> object knows <em>what</em> to do for all repositories,
1370 @@ -2158,7 +2668,7 @@ subclass-specifc <em>_sync()</em>/<em>_nosync()</em> functions if available.
1371 repository types, <em>rsync</em>, <em>websync_repo</em> and <em>websync_pkglist</em> derive from
1372 <em>BasicRepo</em>.</p>
1373 <div class="section" id="adding-new-repository-types">
1374 -<h4><a class="toc-backref" href="#contents">10.2.1.1&nbsp;&nbsp;&nbsp;Adding new repository types</a></h4>
1375 +<h4><a class="toc-backref" href="#contents">11.2.1.1&nbsp;&nbsp;&nbsp;Adding new repository types</a></h4>
1376 <p>Adding new repository types is best done by creating a new repo class
1377 that inherits <em>BasicRepo</em>. The table below shows <em>BasicRepo</em>'s subclass
1378 awareness concerning <em>sync()</em> and what may be changed if required.
1379 @@ -2245,7 +2755,7 @@ to be accessible.</p>
1380 </div>
1381 </div>
1382 <div class="section" id="overlay">
1383 -<h2><a class="toc-backref" href="#contents">10.3&nbsp;&nbsp;&nbsp;Overlay</a></h2>
1384 +<h2><a class="toc-backref" href="#contents">11.3&nbsp;&nbsp;&nbsp;Overlay</a></h2>
1385 <p>The <em>overlay</em> is roverlay's central data structure that represents a <em>portage
1386 overlay</em>. It is organized in a tree structure (overlay root, categories,
1387 package directories) and implements all overlay-related functionality:</p>
1388 @@ -2276,7 +2786,7 @@ level</p>
1389 </li>
1390 </ul>
1391 <div class="section" id="metadata-creation">
1392 -<h3><a class="toc-backref" href="#contents">10.3.1&nbsp;&nbsp;&nbsp;Metadata Creation</a></h3>
1393 +<h3><a class="toc-backref" href="#contents">11.3.1&nbsp;&nbsp;&nbsp;Metadata Creation</a></h3>
1394 <p><em>metadata.xml</em> files are created with a tree structure that contains <em>metadata
1395 nodes</em>, e.g. '&lt;pkgmetadata&gt;...&lt;/pkgmetadata&gt;' and '&lt;use&gt;...&lt;/use&gt;' are <em>nodes</em>.
1396 The current implementation writes the R package's full description
1397 @@ -2285,7 +2795,7 @@ Metadata creation uses the latest package, i.e. highest version,
1398 for which an ebuild has been created.</p>
1399 </div>
1400 <div class="section" id="manifest-creation">
1401 -<h3><a class="toc-backref" href="#contents">10.3.2&nbsp;&nbsp;&nbsp;Manifest Creation</a></h3>
1402 +<h3><a class="toc-backref" href="#contents">11.3.2&nbsp;&nbsp;&nbsp;Manifest Creation</a></h3>
1403 <p>Manifest files are created by calling the <em>ebuild</em> executable for each
1404 package directory in a filtered environment where FETCHCOMMAND and
1405 RESUMECOMMAND are set to no-operation. The directories that contain the R
1406 @@ -2294,7 +2804,7 @@ is set to <a class="reference internal" href="#distfiles-root">DISTFILES_ROOT</a
1407 </div>
1408 </div>
1409 <div class="section" id="ebuild-creation">
1410 -<h2><a class="toc-backref" href="#contents">10.4&nbsp;&nbsp;&nbsp;Ebuild Creation</a></h2>
1411 +<h2><a class="toc-backref" href="#contents">11.4&nbsp;&nbsp;&nbsp;Ebuild Creation</a></h2>
1412 <p>Ebuild creation is the process centered around one <em>PackageInfo</em> instance <em>p</em>
1413 that tries to create an ebuild for it.</p>
1414 <p>It does the following steps:</p>
1415 @@ -2308,11 +2818,12 @@ Otherwise <strong>ebuild creation stops</strong> and <em>p</em> is marked as
1416 <em>ebuild uncreatable</em>. The overlay creation may decide to remove <em>p</em> in
1417 order to save memory etc.</li>
1418 <li>The <em>DESCRIPTION</em> and <em>SRC_URI</em> variables are created</li>
1419 +<li>Add any ebuild variables created by package rules, e.g. <em>KEYWORDS</em></li>
1420 <li><strong>done</strong> - Generate the ebuild as text, add it to <em>p</em> and mark <em>p</em>
1421 as <em>ebuild successfully created</em></li>
1422 </ol>
1423 <div class="section" id="ebuild-variables">
1424 -<h3><a class="toc-backref" href="#contents">10.4.1&nbsp;&nbsp;&nbsp;Ebuild Variables</a></h3>
1425 +<h3><a class="toc-backref" href="#contents">11.4.1&nbsp;&nbsp;&nbsp;Ebuild Variables</a></h3>
1426 <p>Each ebuild variable is an object whose class is derived from the <em>EbuildVar</em>
1427 class. An <em>EbuildVar</em> defines its position in the ebuild and how its text
1428 output should look like. Ebuild text is created by adding ebuild variables
1429 @@ -2320,11 +2831,12 @@ to an <em>Ebuilder</em> that automatically sorts them and creates the ebuild.</p
1430 </div>
1431 </div>
1432 <div class="section" id="overlay-creation">
1433 -<h2><a class="toc-backref" href="#contents">10.5&nbsp;&nbsp;&nbsp;Overlay Creation</a></h2>
1434 +<h2><a class="toc-backref" href="#contents">11.5&nbsp;&nbsp;&nbsp;Overlay Creation</a></h2>
1435 <p>Overlay creation is the process of creating an overlay for many R packages
1436 and <em>roverlay</em>'s main task. More specifically, <em>OverlayCreation</em> is an
1437 <em>R packages -&gt; Overlay (-&gt; overlay in filesystem)</em> interface.
1438 -It accepts <em>PackageInfo</em> objects as input, tries to reserve a slot in the
1439 +It accepts <em>PackageInfo</em> objects as input, applies package rules to them,
1440 +which possibly filters some packages out, tries to reserve a slot in the
1441 overlay for them, and, if successful, adds them to the work queue.</p>
1442 <p>The work queue is processed by <em>OverlayWorkers</em> that run ebuild creation
1443 for a <em>PackageInfo</em> object and inform the <em>OverlayCreation</em> about the result
1444 @@ -2333,7 +2845,7 @@ instead the event is logged. Running more than one <em>OverlayWorker</em> in par
1445 is possible.</p>
1446 </div>
1447 <div class="section" id="dependency-resolution">
1448 -<h2><a class="toc-backref" href="#contents">10.6&nbsp;&nbsp;&nbsp;Dependency Resolution</a></h2>
1449 +<h2><a class="toc-backref" href="#contents">11.6&nbsp;&nbsp;&nbsp;Dependency Resolution</a></h2>
1450 <p>Each ebuild creation process has access to the <em>dependency resolver</em> that
1451 accepts <em>dependency strings</em>, tries to resolve them and returns the result,
1452 either &quot;unresolvable&quot; or the resolving <em>dependency</em> as
1453 @@ -2355,7 +2867,7 @@ all <em>required dependencies</em>. No ebuild can be created in that case.</li>
1454 <p>Details about dependency resolution like how <em>channels</em> work can be found
1455 in the following subsections.</p>
1456 <div class="section" id="dependency-types">
1457 -<h3><a class="toc-backref" href="#contents">10.6.1&nbsp;&nbsp;&nbsp;Dependency types</a></h3>
1458 +<h3><a class="toc-backref" href="#contents">11.6.1&nbsp;&nbsp;&nbsp;Dependency types</a></h3>
1459 <p>Every <em>dependency string</em> has a <em>dependency type</em> that declares how a
1460 dependency should be resolved. It has one or more of these properties:</p>
1461 <dl class="docutils">
1462 @@ -2377,14 +2889,14 @@ dependencies as system dependencies and vice versa. Throughout this
1463 document, such property is indicated by <em>TRY_OTHER</em> and
1464 <em>&lt;preferred dependency type&gt; first</em>, e.g. <em>package first</em>.</dd>
1465 </dl>
1466 -<p><em>Mandatory</em> and <em>Option</em> are mutually exclusive.</p>
1467 +<p><em>Mandatory</em> and <em>Optional</em> are mutually exclusive.</p>
1468 <p>The <em>dependency type</em> of a <em>dependency string</em> is determined by its origin,
1469 i.e. info field in the package's DESCRIPTION file.
1470 The <em>Suggests</em> field, for example, gets the
1471 <em>&quot;package dependency only and optional&quot;</em> type, whereas the <em>SystemRequirements</em>
1472 gets <em>&quot;system dependency, but try others, and mandatory&quot;</em>.</p>
1473 <div class="section" id="description-file-dependency-fields">
1474 -<h4><a class="toc-backref" href="#contents">10.6.1.1&nbsp;&nbsp;&nbsp;DESCRIPTION file dependency fields</a></h4>
1475 +<h4><a class="toc-backref" href="#contents">11.6.1.1&nbsp;&nbsp;&nbsp;DESCRIPTION file dependency fields</a></h4>
1476 <p>The DESCRIPTION file of an R package contains several fields that list
1477 dependencies on R packages or other software like scientific libraries.
1478 This section describes which <em>dependency fields</em> are used and how.</p>
1479 @@ -2443,7 +2955,7 @@ but optional dependencies during the <em>pkg_postinst()</em> ebuild phase.</p>
1480 </div>
1481 </div>
1482 <div class="section" id="dependency-environments">
1483 -<h3><a class="toc-backref" href="#contents">10.6.2&nbsp;&nbsp;&nbsp;Dependency Environments</a></h3>
1484 +<h3><a class="toc-backref" href="#contents">11.6.2&nbsp;&nbsp;&nbsp;Dependency Environments</a></h3>
1485 <p>A <em>dependency environment</em> is an object that reflects the whole dependency
1486 resolution process of a single <em>dependency string</em>. It usually contains
1487 the <em>dependency string</em>, its <em>dependency type</em>, information about its
1488 @@ -2453,7 +2965,7 @@ resolving resolving <em>dependency</em>, if any.</p>
1489 <em>dependency resolver</em>.</p>
1490 </div>
1491 <div class="section" id="ebuildjob-channel">
1492 -<h3><a class="toc-backref" href="#contents">10.6.3&nbsp;&nbsp;&nbsp;EbuildJob Channel</a></h3>
1493 +<h3><a class="toc-backref" href="#contents">11.6.3&nbsp;&nbsp;&nbsp;EbuildJob Channel</a></h3>
1494 <p>The <em>EbuildJob Channel</em> is used by the ebuild creation to communicate with
1495 the <em>dependency resolver</em>. It is initialized by an ebuild creation process and
1496 realizes a greedy <em>string to string</em> dependency resolution.</p>
1497 @@ -2490,7 +3002,7 @@ dependencies are unresolvable.</li>
1498 </ol>
1499 </div>
1500 <div class="section" id="dependency-rule-pools">
1501 -<h3><a class="toc-backref" href="#contents">10.6.4&nbsp;&nbsp;&nbsp;Dependency Rule Pools</a></h3>
1502 +<h3><a class="toc-backref" href="#contents">11.6.4&nbsp;&nbsp;&nbsp;Dependency Rule Pools</a></h3>
1503 <p>The <em>dependency resolver</em> does not know <em>how</em> to resolve a <em>dependency string</em>.
1504 Instead, it searches through a list of <em>dependency rule pools</em> that may be
1505 able to do this.</p>
1506 @@ -2513,7 +3025,7 @@ R package dependencies.
1507 By convention, it will never resolve any system dependencies.</p>
1508 </div>
1509 <div class="section" id="dependency-resolver-modules">
1510 -<h3><a class="toc-backref" href="#contents">10.6.5&nbsp;&nbsp;&nbsp;Dependency Resolver Modules</a></h3>
1511 +<h3><a class="toc-backref" href="#contents">11.6.5&nbsp;&nbsp;&nbsp;Dependency Resolver Modules</a></h3>
1512 <p>The dependency resolver can be extended by modules. Two base types are
1513 available, <em>channels</em> and <em>listeners</em>.</p>
1514 <dl class="docutils">
1515 @@ -2533,7 +3045,7 @@ resolution, wait for results, and send them to the other end.</p>
1516 </dl>
1517 </div>
1518 <div class="section" id="dependency-resolver">
1519 -<h3><a class="toc-backref" href="#contents">10.6.6&nbsp;&nbsp;&nbsp;Dependency Resolver</a></h3>
1520 +<h3><a class="toc-backref" href="#contents">11.6.6&nbsp;&nbsp;&nbsp;Dependency Resolver</a></h3>
1521 <p>The dependency resolver puts all parts of dependency resolution together,
1522 <em>rule pools</em>, <em>listeners</em> and <em>channels</em>. Its main task is a loop that
1523 processes all queued <em>dependency environments</em> and sends the result back to
1524 @@ -2591,7 +3103,7 @@ becomes &quot;loop until resolver closes&quot;.</p>
1525 </div>
1526 <div class="footer">
1527 <hr class="footer" />
1528 -Generated on: 2013-01-09.
1529 +Generated on: 2013-03-05.
1530
1531 </div>
1532 </body>