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 Introduction</a></li> |
70 |
-<li><a class="reference internal" href="#installation" id="id5">2 Installation</a><ul class="auto-toc"> |
71 |
-<li><a class="reference internal" href="#prerequisites" id="id6">2.1 Prerequisites</a></li> |
72 |
-<li><a class="reference internal" href="#via-emerge-gentoo" id="id7">2.2 via emerge (Gentoo)</a></li> |
73 |
-<li><a class="reference internal" href="#manual-installation" id="id8">2.3 Manual Installation</a></li> |
74 |
-<li><a class="reference internal" href="#using-roverlay-without-installation" id="id9">2.4 Using <em>roverlay</em> without installation</a></li> |
75 |
+<li><a class="reference internal" href="#introduction" id="id5">1 Introduction</a></li> |
76 |
+<li><a class="reference internal" href="#installation" id="id6">2 Installation</a><ul class="auto-toc"> |
77 |
+<li><a class="reference internal" href="#prerequisites" id="id7">2.1 Prerequisites</a></li> |
78 |
+<li><a class="reference internal" href="#via-emerge-gentoo" id="id8">2.2 via emerge (Gentoo)</a></li> |
79 |
+<li><a class="reference internal" href="#manual-installation" id="id9">2.3 Manual Installation</a></li> |
80 |
+<li><a class="reference internal" href="#using-roverlay-without-installation" id="id10">2.4 Using <em>roverlay</em> without installation</a></li> |
81 |
+</ul> |
82 |
+</li> |
83 |
+<li><a class="reference internal" href="#running-roverlay" id="id11">3 Running Roverlay</a><ul class="auto-toc"> |
84 |
+<li><a class="reference internal" href="#required-configuration-steps" id="id12">3.1 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 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 Running it</a></li> |
89 |
+<li><a class="reference internal" href="#providing-a-package-mirror" id="id15">3.3 Providing a package mirror</a></li> |
90 |
+</ul> |
91 |
+</li> |
92 |
+<li><a class="reference internal" href="#basic-implementation-overview" id="id16">4 Basic Implementation Overview</a><ul class="auto-toc"> |
93 |
+<li><a class="reference internal" href="#how-roverlay-works" id="id17">4.1 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 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 Expected Ebuild Result</a></li> |
96 |
+<li><a class="reference internal" href="#expected-metadata-xml-result" id="id20">4.2.2 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 Running Roverlay</a><ul class="auto-toc"> |
102 |
-<li><a class="reference internal" href="#required-configuration-steps" id="id11">3.1 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 Extended Configuration / Where to go from here?</a></li> |
104 |
+<li><a class="reference internal" href="#repositories-getting-packages" id="id21">5 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 A word about repo config files</a></li> |
106 |
+<li><a class="reference internal" href="#rsync-repos" id="id23">5.2 Rsync repos</a></li> |
107 |
+<li><a class="reference internal" href="#getting-packages-from-a-repository-that-supports-http-only" id="id24">5.3 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 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 Using local directories</a></li> |
110 |
</ul> |
111 |
</li> |
112 |
-<li><a class="reference internal" href="#running-it" id="id13">3.2 Running it</a></li> |
113 |
-<li><a class="reference internal" href="#providing-a-package-mirror" id="id14">3.3 Providing a package mirror</a></li> |
114 |
+<li><a class="reference internal" href="#dependency-rules" id="id27">6 Dependency Rules</a><ul class="auto-toc"> |
115 |
+<li><a class="reference internal" href="#simple-dependency-rules" id="id28">6.1 Simple Dependency Rules</a><ul class="auto-toc"> |
116 |
+<li><a class="reference internal" href="#rule-variants" id="id29">6.1.1 Rule Variants</a></li> |
117 |
+<li><a class="reference internal" href="#rule-types" id="id30">6.1.2 Rule types</a></li> |
118 |
+<li><a class="reference internal" href="#rule-file-examples" id="id31">6.1.3 Rule File Examples</a></li> |
119 |
+<li><a class="reference internal" href="#rule-file-syntax" id="id32">6.1.4 Rule File Syntax</a></li> |
120 |
</ul> |
121 |
</li> |
122 |
-<li><a class="reference internal" href="#basic-implementation-overview" id="id15">4 Basic Implementation Overview</a><ul class="auto-toc"> |
123 |
-<li><a class="reference internal" href="#how-roverlay-works" id="id16">4.1 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 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 Expected Ebuild Result</a></li> |
126 |
-<li><a class="reference internal" href="#expected-metadata-xml-result" id="id19">4.2.2 Expected <em>metadata.xml</em> Result</a></li> |
127 |
</ul> |
128 |
</li> |
129 |
+<li><a class="reference internal" href="#package-rules" id="id33">7 Package Rules</a><ul class="auto-toc"> |
130 |
+<li><a class="reference internal" href="#package-rule-file-syntax" id="id34">7.1 Package Rule File Syntax</a><ul class="auto-toc"> |
131 |
+<li><a class="reference internal" href="#match-blocks" id="id35">7.1.1 Match Blocks</a><ul class="auto-toc"> |
132 |
+<li><a class="reference internal" href="#extended-match-block-syntax" id="id36">7.1.1.1 Extended Match Block Syntax</a></li> |
133 |
</ul> |
134 |
</li> |
135 |
-<li><a class="reference internal" href="#repositories-getting-packages" id="id20">5 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 A word about repo config files</a></li> |
137 |
-<li><a class="reference internal" href="#rsync-repos" id="id22">5.2 Rsync repos</a></li> |
138 |
-<li><a class="reference internal" href="#getting-packages-from-a-repository-that-supports-http-only" id="id23">5.3 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 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 Using local directories</a></li> |
141 |
+<li><a class="reference internal" href="#action-blocks" id="id37">7.1.2 Action Blocks</a><ul class="auto-toc"> |
142 |
+<li><a class="reference internal" href="#extended-action-block-syntax" id="id38">7.1.2.1 Extended Action Block Syntax</a></li> |
143 |
</ul> |
144 |
</li> |
145 |
-<li><a class="reference internal" href="#dependency-rules" id="id26">6 Dependency Rules</a><ul class="auto-toc"> |
146 |
-<li><a class="reference internal" href="#simple-dependency-rules" id="id27">6.1 Simple Dependency Rules</a><ul class="auto-toc"> |
147 |
-<li><a class="reference internal" href="#rule-variants" id="id28">6.1.1 Rule Variants</a></li> |
148 |
-<li><a class="reference internal" href="#rule-types" id="id29">6.1.2 Rule types</a></li> |
149 |
-<li><a class="reference internal" href="#rule-file-examples" id="id30">6.1.3 Rule File Examples</a></li> |
150 |
-<li><a class="reference internal" href="#rule-file-syntax" id="id31">6.1.4 Rule File Syntax</a></li> |
151 |
+<li><a class="reference internal" href="#package-rule-examples" id="id39">7.1.3 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 Configuration Reference</a><ul class="auto-toc"> |
157 |
-<li><a class="reference internal" href="#misc-options" id="id33">7.1 misc options</a></li> |
158 |
-<li><a class="reference internal" href="#overlay-options" id="id34">7.2 overlay options</a></li> |
159 |
-<li><a class="reference internal" href="#other-config-files" id="id35">7.3 other config files</a></li> |
160 |
-<li><a class="reference internal" href="#logging" id="id36">7.4 logging</a><ul class="auto-toc"> |
161 |
-<li><a class="reference internal" href="#console-logging" id="id37">7.4.1 console logging</a></li> |
162 |
-<li><a class="reference internal" href="#file-logging" id="id38">7.4.2 file logging</a></li> |
163 |
+<li><a class="reference internal" href="#configuration-reference" id="id40">8 Configuration Reference</a><ul class="auto-toc"> |
164 |
+<li><a class="reference internal" href="#misc-options" id="id41">8.1 misc options</a></li> |
165 |
+<li><a class="reference internal" href="#overlay-options" id="id42">8.2 overlay options</a></li> |
166 |
+<li><a class="reference internal" href="#other-config-files" id="id43">8.3 other config files</a></li> |
167 |
+<li><a class="reference internal" href="#logging" id="id44">8.4 logging</a><ul class="auto-toc"> |
168 |
+<li><a class="reference internal" href="#console-logging" id="id45">8.4.1 console logging</a></li> |
169 |
+<li><a class="reference internal" href="#file-logging" id="id46">8.4.2 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 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 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 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 Example: The default field definition file</a></li> |
178 |
+<li><a class="reference internal" href="#field-definition-config" id="id48">9 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 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 Dependency Resolution Console</a></li> |
183 |
-<li><a class="reference internal" href="#implementation-overview" id="id43">10 Implementation Overview</a><ul class="auto-toc"> |
184 |
-<li><a class="reference internal" href="#packageinfo" id="id44">10.1 PackageInfo</a></li> |
185 |
-<li><a class="reference internal" href="#repository-management" id="id45">10.2 Repository Management</a><ul class="auto-toc"> |
186 |
-<li><a class="reference internal" href="#id3" id="id46">10.2.1 Repositories</a><ul class="auto-toc"> |
187 |
-<li><a class="reference internal" href="#adding-new-repository-types" id="id47">10.2.1.1 Adding new repository types</a></li> |
188 |
+<li><a class="reference internal" href="#dependency-resolution-console" id="id50">10 Dependency Resolution Console</a></li> |
189 |
+<li><a class="reference internal" href="#implementation-overview" id="id51">11 Implementation Overview</a><ul class="auto-toc"> |
190 |
+<li><a class="reference internal" href="#packageinfo" id="id52">11.1 PackageInfo</a></li> |
191 |
+<li><a class="reference internal" href="#repository-management" id="id53">11.2 Repository Management</a><ul class="auto-toc"> |
192 |
+<li><a class="reference internal" href="#id4" id="id54">11.2.1 Repositories</a><ul class="auto-toc"> |
193 |
+<li><a class="reference internal" href="#adding-new-repository-types" id="id55">11.2.1.1 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 Overlay</a><ul class="auto-toc"> |
199 |
-<li><a class="reference internal" href="#metadata-creation" id="id49">10.3.1 Metadata Creation</a></li> |
200 |
-<li><a class="reference internal" href="#manifest-creation" id="id50">10.3.2 Manifest Creation</a></li> |
201 |
+<li><a class="reference internal" href="#overlay" id="id56">11.3 Overlay</a><ul class="auto-toc"> |
202 |
+<li><a class="reference internal" href="#metadata-creation" id="id57">11.3.1 Metadata Creation</a></li> |
203 |
+<li><a class="reference internal" href="#manifest-creation" id="id58">11.3.2 Manifest Creation</a></li> |
204 |
</ul> |
205 |
</li> |
206 |
-<li><a class="reference internal" href="#ebuild-creation" id="id51">10.4 Ebuild Creation</a><ul class="auto-toc"> |
207 |
-<li><a class="reference internal" href="#ebuild-variables" id="id52">10.4.1 Ebuild Variables</a></li> |
208 |
+<li><a class="reference internal" href="#ebuild-creation" id="id59">11.4 Ebuild Creation</a><ul class="auto-toc"> |
209 |
+<li><a class="reference internal" href="#ebuild-variables" id="id60">11.4.1 Ebuild Variables</a></li> |
210 |
</ul> |
211 |
</li> |
212 |
-<li><a class="reference internal" href="#overlay-creation" id="id53">10.5 Overlay Creation</a></li> |
213 |
-<li><a class="reference internal" href="#dependency-resolution" id="id54">10.6 Dependency Resolution</a><ul class="auto-toc"> |
214 |
-<li><a class="reference internal" href="#dependency-types" id="id55">10.6.1 Dependency types</a><ul class="auto-toc"> |
215 |
-<li><a class="reference internal" href="#description-file-dependency-fields" id="id56">10.6.1.1 DESCRIPTION file dependency fields</a></li> |
216 |
+<li><a class="reference internal" href="#overlay-creation" id="id61">11.5 Overlay Creation</a></li> |
217 |
+<li><a class="reference internal" href="#dependency-resolution" id="id62">11.6 Dependency Resolution</a><ul class="auto-toc"> |
218 |
+<li><a class="reference internal" href="#dependency-types" id="id63">11.6.1 Dependency types</a><ul class="auto-toc"> |
219 |
+<li><a class="reference internal" href="#description-file-dependency-fields" id="id64">11.6.1.1 DESCRIPTION file dependency fields</a></li> |
220 |
</ul> |
221 |
</li> |
222 |
-<li><a class="reference internal" href="#dependency-environments" id="id57">10.6.2 Dependency Environments</a></li> |
223 |
-<li><a class="reference internal" href="#ebuildjob-channel" id="id58">10.6.3 EbuildJob Channel</a></li> |
224 |
-<li><a class="reference internal" href="#dependency-rule-pools" id="id59">10.6.4 Dependency Rule Pools</a></li> |
225 |
-<li><a class="reference internal" href="#dependency-resolver-modules" id="id60">10.6.5 Dependency Resolver Modules</a></li> |
226 |
-<li><a class="reference internal" href="#dependency-resolver" id="id61">10.6.6 Dependency Resolver</a></li> |
227 |
+<li><a class="reference internal" href="#dependency-environments" id="id65">11.6.2 Dependency Environments</a></li> |
228 |
+<li><a class="reference internal" href="#ebuildjob-channel" id="id66">11.6.3 EbuildJob Channel</a></li> |
229 |
+<li><a class="reference internal" href="#dependency-rule-pools" id="id67">11.6.4 Dependency Rule Pools</a></li> |
230 |
+<li><a class="reference internal" href="#dependency-resolver-modules" id="id68">11.6.5 Dependency Resolver Modules</a></li> |
231 |
+<li><a class="reference internal" href="#dependency-resolver" id="id69">11.6.6 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">&&</span> make install |
269 |
+<span class="name builtin">cd </span>R_overlay <span class="operator">&&</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">&&</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">&&</span> ./roverlay.py <span class="literal string double">"$@"</span> |
283 |
</pre> |
284 |
</div> |
285 |
</div> |
286 |
@@ -608,14 +626,14 @@ via <tt class="docutils literal"><span class="pre">--overlay</span> <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> <directory></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> <file></tt> statements.</p> |
321 |
+via one or more <tt class="docutils literal"><span class="pre">--repo-config</span> <file></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 = "hardlink symlink"</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 ("not flat") or all |
349 |
+links/files in a single directory ("flat"). 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> </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> </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> </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> </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 Providing a package mirror</a></h2> |
394 |
-<p>No recommendations available at this time. |
395 |
-The current ManifestCreation implementation creates a directory |
396 |
-<em><distfiles root>/__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 >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 >60% of overlay creation time).</p> |
412 |
<div class="section" id="how-roverlay-works"> |
413 |
<h2><a class="toc-backref" href="#contents">4.1 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="<src uri for the R package>" |
471 |
<dd><p class="first">The default ebuild header (which cannot be changed) automatically sets |
472 |
the ebuild's copyright year to 1999-<em><current year></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">"Time wave analysis and graphical representation"</span> |
484 |
-<span class="nv">SRC_URI</span><span class="o">=</span><span class="s2">"http://cran.r-project.org/src/contrib/seewave_1.6.4.tar.gz"</span> |
485 |
+<span class="name variable">DESCRIPTION</span><span class="operator">=</span><span class="literal string double">"Time wave analysis and graphical representation"</span> |
486 |
+<span class="name variable">SRC_URI</span><span class="operator">=</span><span class="literal string double">"http://cran.r-project.org/src/contrib/seewave_1.6.4.tar.gz"</span> |
487 |
|
488 |
-<span class="nv">IUSE</span><span class="o">=</span><span class="s2">"${IUSE:-} |
489 |
+<span class="name variable">IUSE</span><span class="operator">=</span><span class="literal string double">"${IUSE:-} |
490 |
R_suggests |
491 |
"</span> |
492 |
-<span class="nv">R_SUGGESTS</span><span class="o">=</span><span class="s2">"sci-R/sound |
493 |
+<span class="name variable">R_SUGGESTS</span><span class="operator">=</span><span class="literal string double">"sci-R/sound |
494 |
sci-R/audio |
495 |
"</span> |
496 |
-<span class="nv">DEPEND</span><span class="o">=</span><span class="s2">"sci-R/fftw |
497 |
+<span class="name variable">DEPEND</span><span class="operator">=</span><span class="literal string double">"sci-R/fftw |
498 |
sci-R/tuneR |
499 |
>=dev-lang/R-2.15.0 |
500 |
sci-R/rpanel |
501 |
sci-R/rgl |
502 |
"</span> |
503 |
-<span class="nv">RDEPEND</span><span class="o">=</span><span class="s2">"${DEPEND:-} |
504 |
+<span class="name variable">RDEPEND</span><span class="operator">=</span><span class="literal string double">"${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">"MetaPCA: Meta-analysis in the Di... (see metadata)"</span> |
522 |
-<span class="nv">SRC_URI</span><span class="o">=</span><span class="s2">"http://cran.r-project.org/src/contrib/Archive/MetaPCA/MetaPCA_0.1.3.tar.gz"</span> |
523 |
+<span class="name variable">DESCRIPTION</span><span class="operator">=</span><span class="literal string double">"MetaPCA: Meta-analysis in the Di... (see metadata)"</span> |
524 |
+<span class="name variable">SRC_URI</span><span class="operator">=</span><span class="literal string double">"http://cran.r-project.org/src/contrib/Archive/MetaPCA/MetaPCA_0.1.3.tar.gz"</span> |
525 |
|
526 |
-<span class="nv">IUSE</span><span class="o">=</span><span class="s2">"${IUSE:-} |
527 |
+<span class="name variable">IUSE</span><span class="operator">=</span><span class="literal string double">"${IUSE:-} |
528 |
R_suggests |
529 |
"</span> |
530 |
-<span class="nv">R_SUGGESTS</span><span class="o">=</span><span class="s2">"sci-R/doMC |
531 |
+<span class="name variable">R_SUGGESTS</span><span class="operator">=</span><span class="literal string double">"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 |
"</span> |
539 |
-<span class="nv">DEPEND</span><span class="o">=</span><span class="s2">"sci-R/foreach"</span> |
540 |
-<span class="nv">RDEPEND</span><span class="o">=</span><span class="s2">"${DEPEND:-} |
541 |
+<span class="name variable">DEPEND</span><span class="operator">=</span><span class="literal string double">"sci-R/foreach"</span> |
542 |
+<span class="name variable">RDEPEND</span><span class="operator">=</span><span class="literal string double">"${DEPEND:-} |
543 |
R_suggests? ( ${R_SUGGESTS} ) |
544 |
"</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"><?xml version="1.0" encoding="UTF-8"?></span> |
556 |
-<span class="cp"><!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"></span> |
557 |
-<span class="nt"><pkgmetadata></span> |
558 |
- <span class="nt"><longdescription></span> |
559 |
+<span class="comment preproc"><?xml version="1.0" encoding="UTF-8"?></span> |
560 |
+<span class="comment preproc"><!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"></span> |
561 |
+<span class="name tag"><pkgmetadata></span> |
562 |
+ <span class="name tag"><longdescription></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"></longdescription></span> |
571 |
-<span class="nt"></pkgmetadata></span> |
572 |
+ <span class="name tag"></longdescription></span> |
573 |
+<span class="name tag"></pkgmetadata></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 (>= 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 (>= 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 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="-x86 amd64"</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 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 |
+ <match statement 1> |
715 |
+ <match statement 2> |
716 |
+ ... |
717 |
+ <match statement m> |
718 |
+ACTION: |
719 |
+ <action statement 1> |
720 |
+ <action statement 2> |
721 |
+ ... |
722 |
+ <action statement n> |
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 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 |
+<match keyword> [<operator>] <accepted value> |
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>^<expression>$</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 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 |
+ <match statement 1, match depth 0> |
849 |
+ ... |
850 |
+ <boolean function> |
851 |
+ * <match statement 1, match depth 1> |
852 |
+ * <match statement 2, match depth 1> |
853 |
+ * ... |
854 |
+ * <match statement m, match depth 1> |
855 |
+ ... |
856 |
+ <match statement n, match depth 0> |
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 &&</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 |
+<'*'^<match_depth>> <(basic) match statement> |
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 |
+ <match statement 1, depth 0> |
920 |
+ <boolean function 2, depth 0> |
921 |
+ * <match statement 1, depth 1> |
922 |
+ * <match statement 2, depth 1> |
923 |
+ * ... |
924 |
+ * <match statement k-1, depth 1> |
925 |
+ * <boolean function k, depth 1> |
926 |
+ ** <match statement 1, depth 2> |
927 |
+ ** ... |
928 |
+ ** <match statement o, depth 2> |
929 |
+ * <match statement k+1, depth 1> |
930 |
+ * ... |
931 |
+ * <match statement m, depth 1> |
932 |
+ ... |
933 |
+ <match statement n, depth 0> |
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 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 |
+<action keyword> [<value>]* |
947 |
+</pre> |
948 |
+<p>The value(s) can be enclosed by quotation characters (<tt class="docutils literal">"</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>>= 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 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 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 "-x86 amd64" |
1038 |
+ END; |
1039 |
+ MATCH: |
1040 |
+ repo == BIOC/experiment |
1041 |
+ ACTION: |
1042 |
+ keywords "-x86 ~amd64" |
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 Configuration Reference</a></h1> |
1058 |
+<h1><a class="toc-backref" href="#contents">8 Configuration Reference</a></h1> |
1059 |
<p>The main config file uses '<option> = <value>' syntax, comment lines start |
1060 |
with <strong>#</strong>. Variable substitution ("${X}") 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 misc options</a></h2> |
1067 |
+<h2><a class="toc-backref" href="#contents">8.1 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=<value>' 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 overlay options</a></h2> |
1076 |
+<h2><a class="toc-backref" href="#contents">8.2 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, "hardlink symlink".</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> (-> <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 other config files</a></h2> |
1182 |
+<h2><a class="toc-backref" href="#contents">8.3 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 logging</a></h2> |
1226 |
+<h2><a class="toc-backref" href="#contents">8.4 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 console logging</a></h3> |
1235 |
+<h3><a class="toc-backref" href="#contents">8.4.1 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 file logging</a></h3> |
1244 |
+<h3><a class="toc-backref" href="#contents">8.4.2 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 options for debugging, manual dependency rule creation and testing</a></h2> |
1253 |
+<h2><a class="toc-backref" href="#contents">8.5 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 Field Definition Config</a></h1> |
1262 |
+<span id="id3"></span><h1><a class="toc-backref" href="#contents">9 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 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 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 Dependency Resolution Console</a></h1> |
1330 |
+<span id="depres-console"></span><h1><a class="toc-backref" href="#contents">10 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 Implementation Overview</a></h1> |
1339 |
+<h1><a class="toc-backref" href="#contents">11 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 PackageInfo</a></h2> |
1346 |
+<h2><a class="toc-backref" href="#contents">11.1 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 Repository Management</a></h2> |
1355 |
+<h2><a class="toc-backref" href="#contents">11.2 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 Repositories</a></h3> |
1365 |
+<div class="section" id="id4"> |
1366 |
+<h3><a class="toc-backref" href="#contents">11.2.1 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 Adding new repository types</a></h4> |
1375 |
+<h4><a class="toc-backref" href="#contents">11.2.1.1 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 Overlay</a></h2> |
1384 |
+<h2><a class="toc-backref" href="#contents">11.3 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 Metadata Creation</a></h3> |
1393 |
+<h3><a class="toc-backref" href="#contents">11.3.1 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. '<pkgmetadata>...</pkgmetadata>' and '<use>...</use>' 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 Manifest Creation</a></h3> |
1402 |
+<h3><a class="toc-backref" href="#contents">11.3.2 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 Ebuild Creation</a></h2> |
1411 |
+<h2><a class="toc-backref" href="#contents">11.4 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 Ebuild Variables</a></h3> |
1425 |
+<h3><a class="toc-backref" href="#contents">11.4.1 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 Overlay Creation</a></h2> |
1434 |
+<h2><a class="toc-backref" href="#contents">11.5 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 -> Overlay (-> 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 Dependency Resolution</a></h2> |
1449 |
+<h2><a class="toc-backref" href="#contents">11.6 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 "unresolvable" 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 Dependency types</a></h3> |
1458 |
+<h3><a class="toc-backref" href="#contents">11.6.1 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><preferred dependency type> 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>"package dependency only and optional"</em> type, whereas the <em>SystemRequirements</em> |
1472 |
gets <em>"system dependency, but try others, and mandatory"</em>.</p> |
1473 |
<div class="section" id="description-file-dependency-fields"> |
1474 |
-<h4><a class="toc-backref" href="#contents">10.6.1.1 DESCRIPTION file dependency fields</a></h4> |
1475 |
+<h4><a class="toc-backref" href="#contents">11.6.1.1 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 Dependency Environments</a></h3> |
1484 |
+<h3><a class="toc-backref" href="#contents">11.6.2 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 EbuildJob Channel</a></h3> |
1493 |
+<h3><a class="toc-backref" href="#contents">11.6.3 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 Dependency Rule Pools</a></h3> |
1502 |
+<h3><a class="toc-backref" href="#contents">11.6.4 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 Dependency Resolver Modules</a></h3> |
1511 |
+<h3><a class="toc-backref" href="#contents">11.6.5 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 Dependency Resolver</a></h3> |
1520 |
+<h3><a class="toc-backref" href="#contents">11.6.6 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 "loop until resolver closes".</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> |