/[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.5
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.6</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/13 00:54:50</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</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>
114<div class="section" id="excluded-files"> 114<div class="section" id="excluded-files">
115<h2><a class="toc-backref" href="#id8">Excluded files</a></h2> 115<h2><a class="toc-backref" href="#id8">Excluded files</a></h2>
116<p>When generating or validating a Manifest, or commiting to a version 116<p>When generating or validating a Manifest, or commiting to a version
117control system, the package manager should endeavour to ignore files 117control system, the package manager should endeavour to ignore files
118created by a version control system, backup files from text editors. A 118created 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>, 119non-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> 120<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 121<p>Additionally, for a transitional Manifest1-&gt;Manifest2 system, old-style
122digest files located in a 'files/' directory, may be excluded from 122digest files located in a 'files/' directory, may be excluded from
123Manifest2 generation, or included with a type of MISC.</p> 123Manifest2 generation, or included with a type of MISC.</p>
124<p>Under strict security conditions, the exclusion list may be ignored 124<p>Under strict security conditions, the exclusion list may be ignored
125during validation if the existence of a file would be considered a 125during validation if the existence of a file would be considered a
190<div class="section" id="crit-new-abstract"> 190<div class="section" id="crit-new-abstract">
191<h3><a class="toc-backref" href="#id16">_CRIT (new, abstract)</a></h3> 191<h3><a class="toc-backref" href="#id16">_CRIT (new, abstract)</a></h3>
192<ul class="simple"> 192<ul class="simple">
193<li>_CRIT is based off the _INFO type.</li> 193<li>_CRIT is based off the _INFO type.</li>
194<li>The modification or absence of a file listed as a _CRIT-derived type 194<li>The modification or absence of a file listed as a _CRIT-derived type
195must be treated as an error.</li> 195MUST be treated as an error.</li>
196</ul> 196</ul>
197</div> 197</div>
198<div class="section" id="id1"> 198<div class="section" id="id1">
199<h3><a class="toc-backref" href="#id17">EBUILD</a></h3> 199<h3><a class="toc-backref" href="#id17">EBUILD</a></h3>
200<ul class="simple"> 200<ul class="simple">
233<div class="section" id="eclass-new"> 233<div class="section" id="eclass-new">
234<h3><a class="toc-backref" href="#id21">ECLASS (new)</a></h3> 234<h3><a class="toc-backref" href="#id21">ECLASS (new)</a></h3>
235<ul class="simple"> 235<ul class="simple">
236<li>uses _CRIT.</li> 236<li>uses _CRIT.</li>
237<li>This type shall be used for all eclasses only.</li> 237<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> 238</ul>
240</div> 239</div>
241<div class="section" id="data-new"> 240<div class="section" id="data-new">
242<h3><a class="toc-backref" href="#id22">DATA (new)</a></h3> 241<h3><a class="toc-backref" href="#id22">DATA (new)</a></h3>
243<ul class="simple"> 242<ul class="simple">
253<li>If the file gets sourced, executed, or causes a change (patches) in 252<li>If the file gets sourced, executed, or causes a change (patches) in
254how something is sourced or execututed, it belongs in the EXEC 253how something is sourced or execututed, it belongs in the EXEC
255filetype.</li> 254filetype.</li>
256<li>This filetype should be used for the scripts directories of a 255<li>This filetype should be used for the scripts directories of a
257repository for important files.</li> 256repository for important files.</li>
257<li>This filetype is not limited to being used in the files/
258subdirectory.</li>
258</ul> 259</ul>
259</div> 260</div>
260<div class="section" id="unknown-new"> 261<div class="section" id="other-new">
261<h3><a class="toc-backref" href="#id24">UNKNOWN (new)</a></h3> 262<h3><a class="toc-backref" href="#id24">OTHER (new)</a></h3>
262<ul class="simple"> 263<ul class="simple">
263<li>uses _CRIT.</li> 264<li>uses _CRIT.</li>
264<li>All other files that are not covered by another type should be 265<li>All other files that are not covered by another type should be
265considered as 'UNKNOWN'.</li> 266considered as 'OTHER'.</li>
267<li>Any further new filetypes should be introduced to subtract files
268from the 'OTHER' set.</li>
269<li>If a package manager runs into a unknown Manifest2 type, it should
270be treated as 'OTHER'.</li>
266</ul> 271</ul>
267</div> 272</div>
268</div> 273</div>
269<div class="section" id="on-bloat"> 274<div class="section" id="on-bloat">
270<h2><a class="toc-backref" href="#id25">On Bloat</a></h2> 275<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 276<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 277Manifest file should be added inside the common directory, however this
273should not be done blindly, as bloat by inodes is more significant for 278should not be done blindly, as bloat by inodes is more significant for
274the majority of use cases.</p> 279the majority of use cases. See also [#GLEP58] on size reductions of
280Manifests.</p>
275</div> 281</div>
276<div class="section" id="chosing-a-filetype"> 282<div class="section" id="chosing-a-filetype">
277<h2><a class="toc-backref" href="#id26">Chosing a filetype</a></h2> 283<h2><a class="toc-backref" href="#id26">Chosing a filetype</a></h2>
278<ol class="arabic"> 284<ol class="arabic">
279<li><dl class="first docutils"> 285<li><dl class="first docutils">
280<dt>matches Manifest</dt> 286<dt>matches <tt class="docutils literal">Manifest</tt></dt>
281<dd><p class="first last">=&gt; MANIFEST, stop.</p> 287<dd><p class="first last">=&gt; MANIFEST, stop.</p>
282</dd> 288</dd>
283</dl> 289</dl>
284</li> 290</li>
285<li><dl class="first docutils"> 291<li><dl class="first docutils">
286<dt>matches <tt class="docutils literal"><span class="pre">*.ebuild</span></tt></dt> 292<dt>matches <tt class="docutils literal">*.ebuild</tt></dt>
287<dd><p class="first last">=&gt; EBUILD, stop.</p> 293<dd><p class="first last">=&gt; EBUILD, stop.</p>
288</dd> 294</dd>
289</dl> 295</dl>
290</li> 296</li>
291<li><dl class="first docutils"> 297<li><dl class="first docutils">
292<dt>matches <tt class="docutils literal"><span class="pre">*.eclass</span></tt></dt> 298<dt>matches <tt class="docutils literal">*.eclass</tt></dt>
293<dd><p class="first last">=&gt; ECLASS, stop.</p> 299<dd><p class="first last">=&gt; ECLASS, stop.</p>
294</dd> 300</dd>
295</dl> 301</dl>
296</li> 302</li>
297<li><dl class="first docutils"> 303<li><dl class="first docutils">
299<dd><p class="first last">=&gt; DIST, stop.</p> 305<dd><p class="first last">=&gt; DIST, stop.</p>
300</dd> 306</dd>
301</dl> 307</dl>
302</li> 308</li>
303<li><dl class="first docutils"> 309<li><dl class="first docutils">
304<dt>matches <tt class="docutils literal"><span class="pre">files/*</span></tt></dt> 310<dt>matches <tt class="docutils literal">files/*</tt></dt>
305<dd><p class="first last">=&gt; AUX, continue [see note].</p> 311<dd><p class="first last">=&gt; AUX, continue [see note].</p>
306</dd> 312</dd>
307</dl> 313</dl>
308</li> 314</li>
309<li><dl class="first docutils"> 315<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> 316<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> 317<dd><p class="first last">=&gt; EXEC, stop.</p>
312</dd> 318</dd>
313</dl> 319</dl>
314</li> 320</li>
315<li><dl class="first docutils"> 321<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> 322<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> 323<dd><p class="first last">=&gt; DATA, stop.</p>
318</dd> 324</dd>
319</dl> 325</dl>
320</li> 326</li>
321<li><dl class="first docutils"> 327<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> 328<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> 329<dd><p class="first last">=&gt; MISC, stop.</p>
324</dd> 330</dd>
325</dl> 331</dl>
326</li> 332</li>
327<li><dl class="first docutils"> 333<li><dl class="first docutils">
328<dt>not matched by any other rule</dt> 334<dt>not matched by any other rule</dt>
329<dd><p class="first last">=&gt; UNKNOWN, stop.</p> 335<dd><p class="first last">=&gt; OTHER, stop.</p>
330</dd> 336</dd>
331</dl> 337</dl>
332</li> 338</li>
333</ol> 339</ol>
334<p>The logic behind 5, 6, 7 is ensuring that every item that by it's 340<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. 341presence or absense 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>, 342(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 343where it blindly includes them, or alternatively, the package.mask file
338or a profile being altered/missing).</p> 344or a profile being altered/missing).</p>
345<p>The above lists of file patterns are not intended to be exhaustive,
346but merely demonstrative.</p>
339<p>Note: The AUX entries should only be generated if we are generating a 347<p>Note: The AUX entries should only be generated if we are generating a
340compatible Manifest that supports older versions of Portage. They should 348compatible Manifest that supports older versions of Portage. They should
341be generated along with the new type.</p> 349be generated along with the new type.</p>
342</div> 350</div>
343</div> 351</div>
345<h1><a class="toc-backref" href="#id27">Backwards Compatibility</a></h1> 353<h1><a class="toc-backref" href="#id27">Backwards Compatibility</a></h1>
346<p>For generation of existing package Manifests, the AUX entries must 354<p>For generation of existing package Manifests, the AUX entries must
347continue to be present for the standard Portage deprecation cycle. 355continue to be present for the standard Portage deprecation cycle.
348The new entries may be included already in all Manifest files, as they 356The new entries may be included already in all Manifest files, as they
349will be ignored by older Portage versions. Over time, ECLASS, DATA, 357will be ignored by older Portage versions. Over time, ECLASS, DATA,
350EXEC, UNKNOWN may replace the existing AUX type.</p> 358EXEC, OTHER may replace the existing AUX type.</p>
351<p>The adoption of this proposal does also affect [#GLEP58] as part of 359<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 360this GLEP series, however this GLEP was an offset of the research in
353that GLEP.</p> 361that GLEP.</p>
354</div> 362</div>
355<div class="section" id="thanks-to"> 363<div class="section" id="thanks-to">
377 385
378</div> 386</div>
379<div class="footer"> 387<div class="footer">
380<hr class="footer" /> 388<hr class="footer" />
381<a class="reference external" href="glep-0060.txt">View document source</a>. 389<a class="reference external" href="glep-0060.txt">View document source</a>.
382Generated on: 2008-10-28 07:47 UTC. 390Generated on: 2010-01-13 00:54 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. 391Generated 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 392
385</div> 393</div>
386</body> 394</body>
387</html> 395</html>

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

  ViewVC Help
Powered by ViewVC 1.1.20