/[gentoo]/xml/htdocs/proj/en/glep/glep-0060.html
Gentoo

Diff of /xml/htdocs/proj/en/glep/glep-0060.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.3 Revision 1.9
2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 3<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4 4
5<head> 5<head>
6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.6: http://docutils.sourceforge.net/" />
8 <title>GLEP 60 -- Manifest2 filetypes</title> 8 <title>GLEP 60 -- Manifest2 filetypes</title>
9 <link rel="stylesheet" href="tools/glep.css" type="text/css" /></head> 9 <link rel="stylesheet" href="tools/glep.css" type="text/css" /></head>
10<body bgcolor="white"> 10<body bgcolor="white">
11<table class="navigation" cellpadding="0" cellspacing="0" 11<table class="navigation" cellpadding="0" cellspacing="0"
12 width="100%" border="0"> 12 width="100%" border="0">
25<tbody valign="top"> 25<tbody valign="top">
26<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">60</td> 26<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">60</td>
27</tr> 27</tr>
28<tr class="field"><th class="field-name">Title:</th><td class="field-body">Manifest2 filetypes</td> 28<tr class="field"><th class="field-name">Title:</th><td class="field-body">Manifest2 filetypes</td>
29</tr> 29</tr>
30<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.3</td> 30<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.9</td>
31</tr> 31</tr>
32<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0060.txt?cvsroot=gentoo">2008/10/28 07:46:51</a></td> 32<tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference external" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0060.txt?cvsroot=gentoo">2010/01/31 09:55:43</a></td>
33</tr> 33</tr>
34<tr class="field"><th class="field-name">Author:</th><td class="field-body">Robin Hugh Johnson &lt;robbat2&#32;&#97;t&#32;gentoo.org&gt;</td> 34<tr class="field"><th class="field-name">Author:</th><td class="field-body">Robin Hugh Johnson &lt;robbat2&#32;&#97;t&#32;gentoo.org&gt;</td>
35</tr> 35</tr>
36<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td> 36<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
37</tr> 37</tr>
41</tr> 41</tr>
42<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><a class="reference external" href="http://www.gentoo.org/proj/en/glepglep-0044.html">44</a></td> 42<tr class="field"><th class="field-name">Requires:</th><td class="field-body"><a class="reference external" href="http://www.gentoo.org/proj/en/glepglep-0044.html">44</a></td>
43</tr> 43</tr>
44<tr class="field"><th class="field-name">Created:</th><td class="field-body">November 2007</td> 44<tr class="field"><th class="field-name">Created:</th><td class="field-body">November 2007</td>
45</tr> 45</tr>
46<tr class="field"><th class="field-name">Updated:</th><td class="field-body">June 2008, July 2008, October 2008</td> 46<tr class="field"><th class="field-name">Updated:</th><td class="field-body">June 2008, July 2008, October 2008, January 2010</td>
47</tr> 47</tr>
48<tr class="field"><th class="field-name">Updates:</th><td class="field-body">44</td> 48<tr class="field"><th class="field-name">Updates:</th><td class="field-body">44</td>
49</tr> 49</tr>
50<tr class="field"><th class="field-name">Post-History:</th><td class="field-body"></td> 50<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">December 2009, January 2010</td>
51</tr> 51</tr>
52</tbody> 52</tbody>
53</table> 53</table>
54<hr /> 54<hr />
55<div class="contents topic" id="contents"> 55<div class="contents topic" id="contents">
75<li><a class="reference internal" href="#id3" id="id19">MISC</a></li> 75<li><a class="reference internal" href="#id3" id="id19">MISC</a></li>
76<li><a class="reference internal" href="#manifest-new" id="id20">MANIFEST (new)</a></li> 76<li><a class="reference internal" href="#manifest-new" id="id20">MANIFEST (new)</a></li>
77<li><a class="reference internal" href="#eclass-new" id="id21">ECLASS (new)</a></li> 77<li><a class="reference internal" href="#eclass-new" id="id21">ECLASS (new)</a></li>
78<li><a class="reference internal" href="#data-new" id="id22">DATA (new)</a></li> 78<li><a class="reference internal" href="#data-new" id="id22">DATA (new)</a></li>
79<li><a class="reference internal" href="#exec-new" id="id23">EXEC (new)</a></li> 79<li><a class="reference internal" href="#exec-new" id="id23">EXEC (new)</a></li>
80<li><a class="reference internal" href="#unknown-new" id="id24">UNKNOWN (new)</a></li> 80<li><a class="reference internal" href="#other-new" id="id24">OTHER (new)</a></li>
81</ul> 81</ul>
82</li> 82</li>
83<li><a class="reference internal" href="#on-bloat" id="id25">On Bloat</a></li> 83<li><a class="reference internal" href="#on-bloat" id="id25">On Bloat</a></li>
84<li><a class="reference internal" href="#chosing-a-filetype" id="id26">Chosing a filetype</a></li> 84<li><a class="reference internal" href="#chosing-a-filetype" id="id26">Chosing a filetype</a></li>
85</ul> 85</ul>
99<h1><a class="toc-backref" href="#id5">Motivation</a></h1> 99<h1><a class="toc-backref" href="#id5">Motivation</a></h1>
100<p>[#GLEP44] was not entirely clear on the usage of filetype specifiers. 100<p>[#GLEP44] was not entirely clear on the usage of filetype specifiers.
101This document serves to provide some of the internal logic used by 101This document serves to provide some of the internal logic used by
102Portage at the point of writing, as well as adding new types to cover 102Portage at the point of writing, as well as adding new types to cover
103the rest of the tree, for the purposes of tree-signing coverage.</p> 103the rest of the tree, for the purposes of tree-signing coverage.</p>
104<p>This GLEP is not mandatory for the tree-signing specification, but
105instead aims to clarify the usage of the Manifest2 filetype specifiers,
106and note which types signify files that are allowed to be missing from
107the tree (e.g. a user excluding a package or category). As such, it is
108also able to stand on it's own.</p>
104</div> 109</div>
105<div class="section" id="specification"> 110<div class="section" id="specification">
106<h1><a class="toc-backref" href="#id6">Specification</a></h1> 111<h1><a class="toc-backref" href="#id6">Specification</a></h1>
107<div class="section" id="general"> 112<div class="section" id="general">
108<h2><a class="toc-backref" href="#id7">General</a></h2> 113<h2><a class="toc-backref" href="#id7">General</a></h2>
111unless stated otherwise in the following sections. The Manifest file 116unless stated otherwise in the following sections. The Manifest file
112must not contain an entry for itself.</p> 117must not contain an entry for itself.</p>
113</div> 118</div>
114<div class="section" id="excluded-files"> 119<div class="section" id="excluded-files">
115<h2><a class="toc-backref" href="#id8">Excluded files</a></h2> 120<h2><a class="toc-backref" href="#id8">Excluded files</a></h2>
116<p>When generating or validating a Manifest, or commiting to a version 121<p>When generating or validating a Manifest, or committing to a version
117control system, the package manager should endeavour to ignore files 122control system, the package manager should endeavour to ignore files
118created by a version control system, backup files from text editors. A 123created by a version control system, backup files from text editors. A
119non-exhaustive list is suggested here: <tt class="docutils literal"><span class="pre">CVS/</span></tt>, <tt class="docutils literal"><span class="pre">.svn/</span></tt>, <tt class="docutils literal"><span class="pre">.bzr/</span></tt>, 124non-exhaustive list is suggested here: <tt class="docutils literal">CVS/</tt>, <tt class="docutils literal">.svn/</tt>, <tt class="docutils literal">.bzr/</tt>,
120<tt class="docutils literal"><span class="pre">.git/</span></tt>, <tt class="docutils literal"><span class="pre">.hg/</span></tt>, <tt class="docutils literal"><span class="pre">.#*</span></tt>, <tt class="docutils literal"><span class="pre">*.rej</span></tt>, <tt class="docutils literal"><span class="pre">*.orig</span></tt>, <tt class="docutils literal"><span class="pre">*.bak</span></tt>, <tt class="docutils literal"><span class="pre">*~</span></tt>.</p> 125<tt class="docutils literal">.git/</tt>, <tt class="docutils literal">.hg/</tt>, <tt class="docutils literal">.#*</tt>, <tt class="docutils literal">*.rej</tt>, <tt class="docutils literal">*.orig</tt>, <tt class="docutils literal">*.bak</tt>, <tt class="docutils literal">*~</tt>.</p>
121<p>Additionally, for a transitional Manifest1-&gt;Manifest2 system, old-style 126<p>Additionally, for a transitional Manifest1-&gt;Manifest2 system, old-style
122digest files located in a 'files/' directory, may be excluded from 127digest files located in a 'files/' directory, may be excluded from
123Manifest2 generation, or included with a type of MISC.</p> 128Manifest2 generation, or included with a type of MISC.</p>
124<p>Under strict security conditions, the exclusion list may be ignored 129<p>Under strict security conditions, the exclusion list may be ignored
125during validation if the existence of a file would be considered a 130during validation if the existence of a file would be considered a
190<div class="section" id="crit-new-abstract"> 195<div class="section" id="crit-new-abstract">
191<h3><a class="toc-backref" href="#id16">_CRIT (new, abstract)</a></h3> 196<h3><a class="toc-backref" href="#id16">_CRIT (new, abstract)</a></h3>
192<ul class="simple"> 197<ul class="simple">
193<li>_CRIT is based off the _INFO type.</li> 198<li>_CRIT is based off the _INFO type.</li>
194<li>The modification or absence of a file listed as a _CRIT-derived type 199<li>The modification or absence of a file listed as a _CRIT-derived type
195must be treated as an error.</li> 200MUST be treated as an error.</li>
196</ul> 201</ul>
197</div> 202</div>
198<div class="section" id="id1"> 203<div class="section" id="id1">
199<h3><a class="toc-backref" href="#id17">EBUILD</a></h3> 204<h3><a class="toc-backref" href="#id17">EBUILD</a></h3>
200<ul class="simple"> 205<ul class="simple">
220<h3><a class="toc-backref" href="#id20">MANIFEST (new)</a></h3> 225<h3><a class="toc-backref" href="#id20">MANIFEST (new)</a></h3>
221<ul class="simple"> 226<ul class="simple">
222<li>The MANIFEST type is explicitly to cover all nested Manifest files.</li> 227<li>The MANIFEST type is explicitly to cover all nested Manifest files.</li>
223<li>During validation, this serves as an indicator that the package 228<li>During validation, this serves as an indicator that the package
224manager may need to check subtree Manifest file.</li> 229manager may need to check subtree Manifest file.</li>
225<li>A missing MANIFEST file may be treated as a minor (eg excluding an 230<li>A missing MANIFEST file may be treated as a minor (e.g. excluding an
226entire category) or critical validation failure.</li> 231entire category) or critical validation failure.</li>
227<li>The failure should be considered as critical only if files that would 232<li>The failure should be considered as critical only if files that would
228be directly covered by this Manifest are missing. Deletion of a 233be directly covered by this Manifest are missing. Deletion of a
229category-level Manifest while preserving the packages is forbidden. 234category-level Manifest while preserving the packages is forbidden.
230Deletion of an entire category is not.</li> 235Deletion of an entire category is not.</li>
233<div class="section" id="eclass-new"> 238<div class="section" id="eclass-new">
234<h3><a class="toc-backref" href="#id21">ECLASS (new)</a></h3> 239<h3><a class="toc-backref" href="#id21">ECLASS (new)</a></h3>
235<ul class="simple"> 240<ul class="simple">
236<li>uses _CRIT.</li> 241<li>uses _CRIT.</li>
237<li>This type shall be used for all eclasses only.</li> 242<li>This type shall be used for all eclasses only.</li>
238<li>TODO: What about patches etc under eclasses/? Probably EXEC?</li>
239</ul> 243</ul>
240</div> 244</div>
241<div class="section" id="data-new"> 245<div class="section" id="data-new">
242<h3><a class="toc-backref" href="#id22">DATA (new)</a></h3> 246<h3><a class="toc-backref" href="#id22">DATA (new)</a></h3>
243<ul class="simple"> 247<ul class="simple">
249<div class="section" id="exec-new"> 253<div class="section" id="exec-new">
250<h3><a class="toc-backref" href="#id23">EXEC (new)</a></h3> 254<h3><a class="toc-backref" href="#id23">EXEC (new)</a></h3>
251<ul class="simple"> 255<ul class="simple">
252<li>uses _CRIT.</li> 256<li>uses _CRIT.</li>
253<li>If the file gets sourced, executed, or causes a change (patches) in 257<li>If the file gets sourced, executed, or causes a change (patches) in
254how something is sourced or execututed, it belongs in the EXEC 258how something is sourced or executed, it belongs in the EXEC
255filetype.</li> 259filetype.</li>
256<li>This filetype should be used for the scripts directories of a 260<li>This filetype should be used for the scripts directories of a
257repository for important files.</li> 261repository for important files.</li>
262<li>This filetype is not limited to being used in the files/
263subdirectory.</li>
258</ul> 264</ul>
259</div> 265</div>
260<div class="section" id="unknown-new"> 266<div class="section" id="other-new">
261<h3><a class="toc-backref" href="#id24">UNKNOWN (new)</a></h3> 267<h3><a class="toc-backref" href="#id24">OTHER (new)</a></h3>
262<ul class="simple"> 268<ul class="simple">
263<li>uses _CRIT.</li> 269<li>uses _CRIT.</li>
264<li>All other files that are not covered by another type should be 270<li>All other files that are not covered by another type should be
265considered as 'UNKNOWN'.</li> 271considered as 'OTHER'.</li>
272<li>Any further new filetypes should be introduced to subtract files
273from the 'OTHER' set.</li>
274<li>If a package manager runs into a unknown Manifest2 type, it should
275be treated as 'OTHER'.</li>
266</ul> 276</ul>
267</div> 277</div>
268</div> 278</div>
269<div class="section" id="on-bloat"> 279<div class="section" id="on-bloat">
270<h2><a class="toc-backref" href="#id25">On Bloat</a></h2> 280<h2><a class="toc-backref" href="#id25">On Bloat</a></h2>
271<p>If repeated use of a common path prefix is considered a bloat problem, a 281<p>If repeated use of a common path prefix is considered a bloat problem, a
272Manifest file should be added inside the common directory, however this 282Manifest file should be added inside the common directory, however this
273should not be done blindly, as bloat by inodes is more significant for 283should not be done blindly, as bloat by inodes is more significant for
274the majority of use cases.</p> 284the majority of use cases. See also [#GLEP58] on size reductions of
285Manifests.</p>
275</div> 286</div>
276<div class="section" id="chosing-a-filetype"> 287<div class="section" id="chosing-a-filetype">
277<h2><a class="toc-backref" href="#id26">Chosing a filetype</a></h2> 288<h2><a class="toc-backref" href="#id26">Chosing a filetype</a></h2>
278<ol class="arabic"> 289<ol class="arabic">
279<li><dl class="first docutils"> 290<li><dl class="first docutils">
280<dt>matches Manifest</dt> 291<dt>matches <tt class="docutils literal">Manifest</tt></dt>
281<dd><p class="first last">=&gt; MANIFEST, stop.</p> 292<dd><p class="first last">=&gt; MANIFEST, stop.</p>
282</dd> 293</dd>
283</dl> 294</dl>
284</li> 295</li>
285<li><dl class="first docutils"> 296<li><dl class="first docutils">
286<dt>matches <tt class="docutils literal"><span class="pre">*.ebuild</span></tt></dt> 297<dt>matches <tt class="docutils literal">*.ebuild</tt></dt>
287<dd><p class="first last">=&gt; EBUILD, stop.</p> 298<dd><p class="first last">=&gt; EBUILD, stop.</p>
288</dd> 299</dd>
289</dl> 300</dl>
290</li> 301</li>
291<li><dl class="first docutils"> 302<li><dl class="first docutils">
292<dt>matches <tt class="docutils literal"><span class="pre">*.eclass</span></tt></dt> 303<dt>matches <tt class="docutils literal">*.eclass</tt></dt>
293<dd><p class="first last">=&gt; ECLASS, stop.</p> 304<dd><p class="first last">=&gt; ECLASS, stop.</p>
294</dd> 305</dd>
295</dl> 306</dl>
296</li> 307</li>
297<li><dl class="first docutils"> 308<li><dl class="first docutils">
299<dd><p class="first last">=&gt; DIST, stop.</p> 310<dd><p class="first last">=&gt; DIST, stop.</p>
300</dd> 311</dd>
301</dl> 312</dl>
302</li> 313</li>
303<li><dl class="first docutils"> 314<li><dl class="first docutils">
304<dt>matches <tt class="docutils literal"><span class="pre">files/*</span></tt></dt> 315<dt>matches <tt class="docutils literal">files/*</tt></dt>
305<dd><p class="first last">=&gt; AUX, continue [see note].</p> 316<dd><p class="first last">=&gt; AUX, continue [see note].</p>
306</dd> 317</dd>
307</dl> 318</dl>
308</li> 319</li>
309<li><dl class="first docutils"> 320<li><dl class="first docutils">
310<dt>matches any of <tt class="docutils literal"><span class="pre">*.sh</span></tt>, <tt class="docutils literal"><span class="pre">*.bashrc</span></tt>, <tt class="docutils literal"><span class="pre">*.patch</span></tt>, ...</dt> 321<dt>matches any of <tt class="docutils literal">*.sh</tt>, <tt class="docutils literal">*.bashrc</tt>, <tt class="docutils literal">*.patch</tt>, ...</dt>
311<dd><p class="first last">=&gt; EXEC, stop.</p> 322<dd><p class="first last">=&gt; EXEC, stop.</p>
312</dd> 323</dd>
313</dl> 324</dl>
314</li> 325</li>
315<li><dl class="first docutils"> 326<li><dl class="first docutils">
316<dt>matches any of <tt class="docutils literal"><span class="pre">metadata/cache/*</span></tt>, <tt class="docutils literal"><span class="pre">profiles/</span></tt>, <tt class="docutils literal"><span class="pre">package.*</span></tt>, <tt class="docutils literal"><span class="pre">use.mask*</span></tt>, ...</dt> 327<dt>matches any of <tt class="docutils literal">metadata/cache/*</tt>, <tt class="docutils literal">profiles/</tt>, <tt class="docutils literal">package.*</tt>, <tt class="docutils literal">use.mask*</tt>, ...</dt>
317<dd><p class="first last">=&gt; DATA, stop.</p> 328<dd><p class="first last">=&gt; DATA, stop.</p>
318</dd> 329</dd>
319</dl> 330</dl>
320</li> 331</li>
321<li><dl class="first docutils"> 332<li><dl class="first docutils">
322<dt>matches any of <tt class="docutils literal"><span class="pre">ChangeLog</span></tt>, <tt class="docutils literal"><span class="pre">metadata.xml</span></tt>, <tt class="docutils literal"><span class="pre">*.desc</span></tt>, ...</dt> 333<dt>matches any of <tt class="docutils literal">ChangeLog</tt>, <tt class="docutils literal">metadata.xml</tt>, <tt class="docutils literal">*.desc</tt>, ...</dt>
323<dd><p class="first last">=&gt; MISC, stop.</p> 334<dd><p class="first last">=&gt; MISC, stop.</p>
324</dd> 335</dd>
325</dl> 336</dl>
326</li> 337</li>
327<li><dl class="first docutils"> 338<li><dl class="first docutils">
328<dt>not matched by any other rule</dt> 339<dt>not matched by any other rule</dt>
329<dd><p class="first last">=&gt; UNKNOWN, stop.</p> 340<dd><p class="first last">=&gt; OTHER, stop.</p>
330</dd> 341</dd>
331</dl> 342</dl>
332</li> 343</li>
333</ol> 344</ol>
334<p>The logic behind 5, 6, 7 is ensuring that every item that by it's 345<p>The logic behind 5, 6, 7 is ensuring that every item that by it's
335presence or absense may be dangerous should always be treated strictly. 346presence or absence may be dangerous should always be treated strictly.
336(Consider epatch given a directory of patches <tt class="docutils literal"><span class="pre">${FILESDIR}/${PV}/</span></tt>, 347(Consider epatch given a directory of patches <tt class="docutils literal"><span class="pre">${FILESDIR}/${PV}/</span></tt>,
337where it blindly includes them, or alternatively, the package.mask file 348where it blindly includes them, or alternatively, the package.mask file
338or a profile being altered/missing).</p> 349or a profile being altered/missing).</p>
350<p>The above lists of file patterns are not intended to be exhaustive,
351but merely demonstrative.</p>
339<p>Note: The AUX entries should only be generated if we are generating a 352<p>Note: The AUX entries should only be generated if we are generating a
340compatible Manifest that supports older versions of Portage. They should 353compatible Manifest that supports older versions of Portage. They should
341be generated along with the new type.</p> 354be generated along with the new type.</p>
342</div> 355</div>
343</div> 356</div>
345<h1><a class="toc-backref" href="#id27">Backwards Compatibility</a></h1> 358<h1><a class="toc-backref" href="#id27">Backwards Compatibility</a></h1>
346<p>For generation of existing package Manifests, the AUX entries must 359<p>For generation of existing package Manifests, the AUX entries must
347continue to be present for the standard Portage deprecation cycle. 360continue to be present for the standard Portage deprecation cycle.
348The new entries may be included already in all Manifest files, as they 361The new entries may be included already in all Manifest files, as they
349will be ignored by older Portage versions. Over time, ECLASS, DATA, 362will be ignored by older Portage versions. Over time, ECLASS, DATA,
350EXEC, UNKNOWN may replace the existing AUX type.</p> 363EXEC, OTHER may replace the existing AUX type.</p>
351<p>The adoption of this proposal does also affect [#GLEP58] as part of 364<p>The adoption of this proposal does also affect [#GLEP58] as part of
352this GLEP series, however this GLEP was an offset of the research in 365this GLEP series, however this GLEP was an offset of the research in
353that GLEP.</p> 366that GLEP.</p>
354</div> 367</div>
355<div class="section" id="thanks-to"> 368<div class="section" id="thanks-to">
367</tbody> 380</tbody>
368</table> 381</table>
369</div> 382</div>
370<div class="section" id="copyright"> 383<div class="section" id="copyright">
371<h1><a class="toc-backref" href="#id30">Copyright</a></h1> 384<h1><a class="toc-backref" href="#id30">Copyright</a></h1>
372<p>Copyright (c) 2007 by Robin Hugh Johnson. This material may be 385<p>Copyright (c) 2007-2010 by Robin Hugh Johnson. This material may be
373distributed only subject to the terms and conditions set forth in the 386distributed only subject to the terms and conditions set forth in the
374Open Publication License, v1.0.</p> 387Open Publication License, v1.0.</p>
375<p>vim: tw=72 ts=2 expandtab:</p> 388<p>vim: tw=72 ts=2 expandtab:</p>
376</div> 389</div>
377 390
378</div> 391</div>
379<div class="footer"> 392<div class="footer">
380<hr class="footer" /> 393<hr class="footer" />
381<a class="reference external" href="glep-0060.txt">View document source</a>. 394<a class="reference external" href="glep-0060.txt">View document source</a>.
382Generated on: 2008-10-28 07:47 UTC. 395Generated on: 2010-01-31 09:56 UTC.
383Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source. 396Generated by <a class="reference external" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference external" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
384 397
385</div> 398</div>
386</body> 399</body>
387</html> 400</html>

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.20