/[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.4 Revision 1.6
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.7</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 03:26:53</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">
111unless stated otherwise in the following sections. The Manifest file 111unless stated otherwise in the following sections. The Manifest file
112must not contain an entry for itself.</p> 112must not contain an entry for itself.</p>
113</div> 113</div>
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 committing 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">
220<h3><a class="toc-backref" href="#id20">MANIFEST (new)</a></h3> 220<h3><a class="toc-backref" href="#id20">MANIFEST (new)</a></h3>
221<ul class="simple"> 221<ul class="simple">
222<li>The MANIFEST type is explicitly to cover all nested Manifest files.</li> 222<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 223<li>During validation, this serves as an indicator that the package
224manager may need to check subtree Manifest file.</li> 224manager may need to check subtree Manifest file.</li>
225<li>A missing MANIFEST file may be treated as a minor (eg excluding an 225<li>A missing MANIFEST file may be treated as a minor (e.g. excluding an
226entire category) or critical validation failure.</li> 226entire category) or critical validation failure.</li>
227<li>The failure should be considered as critical only if files that would 227<li>The failure should be considered as critical only if files that would
228be directly covered by this Manifest are missing. Deletion of a 228be directly covered by this Manifest are missing. Deletion of a
229category-level Manifest while preserving the packages is forbidden. 229category-level Manifest while preserving the packages is forbidden.
230Deletion of an entire category is not.</li> 230Deletion of an entire category is not.</li>
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">
249<div class="section" id="exec-new"> 248<div class="section" id="exec-new">
250<h3><a class="toc-backref" href="#id23">EXEC (new)</a></h3> 249<h3><a class="toc-backref" href="#id23">EXEC (new)</a></h3>
251<ul class="simple"> 250<ul class="simple">
252<li>uses _CRIT.</li> 251<li>uses _CRIT.</li>
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 executed, 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="other-new"> 261<div class="section" id="other-new">
261<h3><a class="toc-backref" href="#id24">OTHER (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 'OTHER'.</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">
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 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>, 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>
367</tbody> 375</tbody>
368</table> 376</table>
369</div> 377</div>
370<div class="section" id="copyright"> 378<div class="section" id="copyright">
371<h1><a class="toc-backref" href="#id30">Copyright</a></h1> 379<h1><a class="toc-backref" href="#id30">Copyright</a></h1>
372<p>Copyright (c) 2007 by Robin Hugh Johnson. This material may be 380<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 381distributed only subject to the terms and conditions set forth in the
374Open Publication License, v1.0.</p> 382Open Publication License, v1.0.</p>
375<p>vim: tw=72 ts=2 expandtab:</p> 383<p>vim: tw=72 ts=2 expandtab:</p>
376</div> 384</div>
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 03:27 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.4  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.20