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

Contents of /xml/htdocs/proj/en/glep/glep-0055.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download) (as text)
Sun May 17 15:50:27 2009 UTC (5 years, 3 months ago) by peper
Branch: MAIN
Changes since 1.2: +444 -124 lines
File MIME type: text/html
Update GLEP 55.

1 peper 1.1 <?xml version="1.0" encoding="utf-8" ?>
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">
4 antarus 1.2
5 peper 1.1 <head>
6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
7 peper 1.3 <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
8 peper 1.1 <title>GLEP 55 -- Use EAPI-suffixed ebuilds (.ebuild-EAPI)</title>
9 peper 1.3 <style type="text/css">
10    
11     /*
12     :Author: David Goodger
13     :Contact: goodger@users.sourceforge.net
14     :date: $Date: 2003/06/02 17:03:08 $
15     :version: $Revision: 1.1 $
16     :copyright: This stylesheet has been placed in the public domain.
17    
18     Default cascading style sheet for the PEP HTML output of Docutils.
19     */
20    
21     .first {
22     margin-top: 0 }
23    
24     .last {
25     margin-bottom: 0 }
26    
27     .navigation {
28     width: 100% ;
29     background: #cc99ff ;
30     margin-top: 0px ;
31     margin-bottom: 0px }
32    
33     .navigation .navicon {
34     width: 150px ;
35     height: 35px }
36    
37     .navigation .textlinks {
38     padding-left: 1em ;
39     text-align: left }
40    
41     .navigation td, .navigation th {
42     padding-left: 0em ;
43     padding-right: 0em ;
44     vertical-align: middle }
45    
46     .rfc2822 {
47     margin-top: 0.5em ;
48     margin-left: 0.5em ;
49     margin-right: 0.5em ;
50     margin-bottom: 0em }
51    
52     .rfc2822 td {
53     text-align: left }
54    
55     .rfc2822 th.field-name {
56     text-align: right ;
57     font-family: sans-serif ;
58     padding-right: 0.5em ;
59     font-weight: bold ;
60     margin-bottom: 0em }
61    
62     a.toc-backref {
63     text-decoration: none ;
64     color: black }
65    
66     body {
67     margin: 0px ;
68     margin-bottom: 1em ;
69     padding: 0px }
70    
71     dd {
72     margin-bottom: 0.5em }
73    
74     div.section {
75     margin-left: 1em ;
76     margin-right: 1em ;
77     margin-bottom: 1.5em }
78    
79     div.section div.section {
80     margin-left: 0em ;
81     margin-right: 0em ;
82     margin-top: 1.5em }
83    
84     div.abstract {
85     margin: 2em 5em }
86    
87     div.abstract p.topic-title {
88     font-weight: bold ;
89     text-align: center }
90    
91     div.attention, div.caution, div.danger, div.error, div.hint,
92     div.important, div.note, div.tip, div.warning {
93     margin: 2em ;
94     border: medium outset ;
95     padding: 1em }
96    
97     div.attention p.admonition-title, div.caution p.admonition-title,
98     div.danger p.admonition-title, div.error p.admonition-title,
99     div.warning p.admonition-title {
100     color: red ;
101     font-weight: bold ;
102     font-family: sans-serif }
103    
104     div.hint p.admonition-title, div.important p.admonition-title,
105     div.note p.admonition-title, div.tip p.admonition-title {
106     font-weight: bold ;
107     font-family: sans-serif }
108    
109     div.figure {
110     margin-left: 2em }
111    
112     div.footer, div.header {
113     font-size: smaller }
114    
115     div.footer {
116     margin-left: 1em ;
117     margin-right: 1em }
118    
119     div.system-messages {
120     margin: 5em }
121    
122     div.system-messages h1 {
123     color: red }
124    
125     div.system-message {
126     border: medium outset ;
127     padding: 1em }
128    
129     div.system-message p.system-message-title {
130     color: red ;
131     font-weight: bold }
132    
133     div.topic {
134     margin: 2em }
135    
136     h1 {
137     font-family: sans-serif ;
138     font-size: large }
139    
140     h2 {
141     font-family: sans-serif ;
142     font-size: medium }
143    
144     h3 {
145     font-family: sans-serif ;
146     font-size: small }
147    
148     h4 {
149     font-family: sans-serif ;
150     font-style: italic ;
151     font-size: small }
152    
153     h5 {
154     font-family: sans-serif;
155     font-size: x-small }
156    
157     h6 {
158     font-family: sans-serif;
159     font-style: italic ;
160     font-size: x-small }
161    
162     .section hr {
163     width: 75% }
164    
165     ol.simple, ul.simple {
166     margin-bottom: 1em }
167    
168     ol.arabic {
169     list-style: decimal }
170    
171     ol.loweralpha {
172     list-style: lower-alpha }
173    
174     ol.upperalpha {
175     list-style: upper-alpha }
176    
177     ol.lowerroman {
178     list-style: lower-roman }
179    
180     ol.upperroman {
181     list-style: upper-roman }
182    
183     p.caption {
184     font-style: italic }
185    
186     p.credits {
187     font-style: italic ;
188     font-size: smaller }
189    
190     p.label {
191     white-space: nowrap }
192    
193     p.topic-title {
194     font-family: sans-serif ;
195     font-weight: bold }
196    
197     pre.line-block {
198     font-family: serif ;
199     font-size: 100% }
200    
201     pre.literal-block, pre.doctest-block {
202     margin-left: 2em ;
203     margin-right: 2em ;
204     background-color: #eeeeee }
205    
206     span.classifier {
207     font-family: sans-serif ;
208     font-style: oblique }
209    
210     span.classifier-delimiter {
211     font-family: sans-serif ;
212     font-weight: bold }
213    
214     span.interpreted {
215     font-family: sans-serif }
216    
217     span.option-argument {
218     font-style: italic }
219    
220     span.pre {
221     white-space: pre }
222    
223     span.problematic {
224     color: red }
225    
226     table {
227     margin-top: 0.5em ;
228     margin-bottom: 0.5em }
229    
230     td, th {
231     padding-left: 0.5em ;
232     padding-right: 0.5em ;
233     vertical-align: top }
234    
235     td.num {
236     text-align: right }
237    
238     th.field-name {
239     font-weight: bold ;
240     text-align: left ;
241     white-space: nowrap }
242    
243     h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
244     font-size: 100% }
245    
246     tt {
247     background-color: #eeeeee }
248    
249     ul.auto-toc {
250     list-style-type: none }
251    
252     </style></head>
253 peper 1.1 <body bgcolor="white">
254     <table class="navigation" cellpadding="0" cellspacing="0"
255     width="100%" border="0">
256     <tr><td class="navicon" width="150" height="35">
257     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
258     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
259     border="0" width="150" height="35" /></a></td>
260     <td class="textlinks" align="left">
261     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
262 antarus 1.2 [<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
263 peper 1.1 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0055.txt">GLEP Source</a></b>]
264     </td></tr></table>
265     <table class="rfc2822 docutils field-list" frame="void" rules="none">
266     <col class="field-name" />
267     <col class="field-body" />
268     <tbody valign="top">
269     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">55</td>
270     </tr>
271     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Use EAPI-suffixed ebuilds (.ebuild-EAPI)</td>
272     </tr>
273 peper 1.3 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.2</td>
274 peper 1.1 </tr>
275 peper 1.3 <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-0055.txt?cvsroot=gentoo">2008/01/06 02:39:42</a></td>
276 peper 1.1 </tr>
277     <tr class="field"><th class="field-name">Author:</th><td class="field-body">Piotr JaroszyƄski &lt;peper&#32;&#97;t&#32;gentoo.org&gt;</td>
278     </tr>
279     <tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td>
280     </tr>
281     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
282     </tr>
283 peper 1.3 <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference external" href="glep-0002.html">text/x-rst</a></td>
284 peper 1.1 </tr>
285     <tr class="field"><th class="field-name">Created:</th><td class="field-body">17-Dec-2007</td>
286     </tr>
287 peper 1.3 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">17-Dec-2007, 22-Dec-2007, 17-May-2009</td>
288 peper 1.1 </tr>
289     </tbody>
290     </table>
291     <hr />
292 peper 1.3 <div class="contents topic" id="contents">
293     <p class="topic-title first">Contents</p>
294 peper 1.1 <ul class="simple">
295 peper 1.3 <li><a class="reference internal" href="#abstract" id="id3">Abstract</a></li>
296     <li><a class="reference internal" href="#problem" id="id4">Problem</a></li>
297     <li><a class="reference internal" href="#current-behaviour" id="id5">Current behaviour</a><ul>
298     <li><a class="reference internal" href="#incompatible-change-of-inherit-e-g-make-it-look-in-the-package-dir-too" id="id6">Incompatible change of inherit (e.g. make it look in the package dir too)</a></li>
299     <li><a class="reference internal" href="#new-global-scope-function" id="id7">New global scope function</a></li>
300     <li><a class="reference internal" href="#new-version-format" id="id8">New version format</a></li>
301     </ul>
302     </li>
303     <li><a class="reference internal" href="#abstract-solution" id="id9">Abstract solution</a></li>
304     <li><a class="reference internal" href="#proposed-solution" id="id10">Proposed solution</a></li>
305     <li><a class="reference internal" href="#specification" id="id11">Specification</a></li>
306     <li><a class="reference internal" href="#summary-of-ideas" id="id12">Summary of ideas</a><ul>
307     <li><a class="reference internal" href="#eapi-suffixed-ebuilds-proposed-solution" id="id13">EAPI-suffixed ebuilds (proposed solution)</a></li>
308     <li><a class="reference internal" href="#eapi-in-the-filename-with-one-time-extension-change" id="id14">EAPI in the filename with one-time extension change</a></li>
309     <li><a class="reference internal" href="#easily-fetchable-eapi-inside-the-ebuild" id="id15">Easily fetchable EAPI inside the ebuild</a></li>
310     <li><a class="reference internal" href="#easily-fetchable-eapi-inside-the-ebuild-and-one-time-extension-change" id="id16">Easily fetchable EAPI inside the ebuild and one-time extension change</a></li>
311     <li><a class="reference internal" href="#use-different-subdirectories-for-different-eapis-i-e-cat-pkg-eapix" id="id17">Use different subdirectories for different EAPIs, i.e. cat/pkg/eapiX/</a></li>
312     </ul>
313     </li>
314     <li><a class="reference internal" href="#references" id="id18">References</a></li>
315     <li><a class="reference internal" href="#copyright" id="id19">Copyright</a></li>
316 peper 1.1 </ul>
317     </div>
318     <blockquote>
319     <p>&quot;A little learning is a dangerous thing; drink deep, or taste not the Pierian
320     spring: there shallow draughts intoxicate the brain, and drinking largely
321     sobers us again.&quot;</p>
322     <p class="attribution">&mdash;Alexander Pope, An Essay on Criticism</p>
323     </blockquote>
324 peper 1.3 <div class="section" id="abstract">
325     <h1><a class="toc-backref" href="#id3">Abstract</a></h1>
326 peper 1.1 <p>This GLEP proposes usage of EAPI-suffixed file extensions for ebuilds (for
327     example, foo-1.2.3.ebuild-1).</p>
328     </div>
329 peper 1.3 <div class="section" id="problem">
330     <h1><a class="toc-backref" href="#id4">Problem</a></h1>
331 peper 1.1 <p>The current way of specifying the EAPI in ebuilds is flawed. In order to get the
332     EAPI the package manager needs to source the ebuild, which itself needs the EAPI
333     in the first place. Otherwise it imposes a serious limitation, namely every ebuild,
334     using any of the future EAPIs, will have to be source'able by old package
335 antarus 1.2 managers and hence there is no way to do any of the following:</p>
336 peper 1.1 <blockquote>
337     <ul class="simple">
338 antarus 1.2 <li>Change the behaviour of inherit in any way (for example, to extend or change
339 peper 1.1 eclass functionality).</li>
340     <li>Add new global scope functions in any sane way.</li>
341     <li>Extend versioning rules in an EAPI - for example, addition of the scm
342 peper 1.3 suffix - GLEP54 <a class="footnote-reference" href="#glep54" id="id1">[1]</a> or allowing more sensible version formats like
343     <tt class="docutils literal"><span class="pre">1-rc1</span></tt>, <tt class="docutils literal"><span class="pre">1-alpha</span></tt> etc. to match upstream more closely.</li>
344 peper 1.1 </ul>
345     </blockquote>
346     </div>
347 peper 1.3 <div class="section" id="current-behaviour">
348     <h1><a class="toc-backref" href="#id5">Current behaviour</a></h1>
349     <p>Following subsections show what happens if you introduce any of the mentioned
350     changes in an ebuild and try to install it with portage 2.1.6.13.</p>
351     <div class="section" id="incompatible-change-of-inherit-e-g-make-it-look-in-the-package-dir-too">
352     <h2><a class="toc-backref" href="#id6">Incompatible change of inherit (e.g. make it look in the package dir too)</a></h2>
353     <p><tt class="docutils literal"><span class="pre">sys-apps/foo-1.ebuild</span></tt>:</p>
354     <pre class="literal-block">
355     EAPI=&quot;5&quot;
356     inherit &quot;foo&quot;
357    
358     DESCRIPTION=&quot;&quot;
359     HOMEPAGE=&quot;&quot;
360     SRC_URI=&quot;&quot;
361     ...
362     </pre>
363     <p>Result:</p>
364     <pre class="literal-block">
365     *
366     * ERROR: sys-apps/foo-1 failed.
367     * Call stack:
368     * ebuild.sh, line 1879: Called _source_ebuild
369     * ebuild.sh, line 1818: Called source '/var/lib/gentoo/repositories/peper/sys-apps/foo/foo-1.ebuild'
370     * foo-1.ebuild, line 6: Called inherit 'foo'
371     * ebuild.sh, line 1218: Called die
372     * The specific snippet of code:
373     * [ ! -e &quot;$location&quot; ] &amp;&amp; die &quot;${1}.eclass could not be found by inherit()&quot;
374     * The die message:
375     * foo.eclass could not be found by inherit()
376     *
377     * If you need support, post the topmost build error, and the call stack if relevant.
378     * This ebuild is from an overlay: '/var/lib/gentoo/repositories/peper/'
379     *
380    
381     !!! All ebuilds that could satisfy &quot;sys-apps/foo&quot; have been masked.
382     !!! One of the following masked packages is required to complete your request:
383     - sys-apps/foo-1 (masked by: corruption)
384     </pre>
385     <p>Current portage looks for eclasses only in the <tt class="docutils literal"><span class="pre">eclass</span></tt> directory of a
386     repository. This results in a fatal error and ebuild being masked by corruption
387     - might be pretty confusing to users.</p>
388     </div>
389     <div class="section" id="new-global-scope-function">
390     <h2><a class="toc-backref" href="#id7">New global scope function</a></h2>
391     <p><tt class="docutils literal"><span class="pre">sys-apps/foo-1.ebuild</span></tt>:</p>
392     <pre class="literal-block">
393     EAPI=&quot;5&quot;
394     new_global_scope_function &quot;foo&quot;
395    
396     DESCRIPTION=&quot;&quot;
397     HOMEPAGE=&quot;&quot;
398     SRC_URI=&quot;&quot;
399     ...
400     </pre>
401     <p>Result:</p>
402     <pre class="literal-block">
403     /var/lib/gentoo/repositories/peper/sys-apps/foo/foo-1.ebuild: line 7: new_global_scope_function: command not found
404    
405     !!! All ebuilds that could satisfy &quot;sys-apps/foo&quot; have been masked.
406     !!! One of the following masked packages is required to complete your request:
407     - sys-apps/foo-1 (masked by: EAPI 5)
408    
409     The current version of portage supports EAPI '2'. You must upgrade to a
410     newer version of portage before EAPI masked packages can be installed.
411     </pre>
412     <p>Not that bad as user is advised to upgrade portage.</p>
413     </div>
414     <div class="section" id="new-version-format">
415     <h2><a class="toc-backref" href="#id8">New version format</a></h2>
416     <p><tt class="docutils literal"><span class="pre">sys-apps/foo-2-rc1.ebuild</span></tt>:</p>
417     <pre class="literal-block">
418     Invalid ebuild name: /var/lib/gentoo/repositories/peper/sys-apps/foo/foo-2-rc1.ebuild
419    
420     emerge: there are no ebuilds to satisfy &quot;sys-apps/foo&quot;
421     </pre>
422     <p>Not the best error message, especially if there are lots of them.</p>
423     </div>
424     </div>
425     <div class="section" id="abstract-solution">
426     <h1><a class="toc-backref" href="#id9">Abstract solution</a></h1>
427 peper 1.1 <p>A solution to this problem has to lift those limitations and the only way to do
428     it is to make the EAPI of an ebuild available to the package managers in a way
429     that doesn't require them to source the ebuild. Another important requirement is
430     for the solution to be backward compatible, which has the pleasant side-effect
431     of making the solution applicable in the Gentoo tree right away. Opposed to
432     waiting an arbitrary amount of time, which is never long enough anyway, as the
433 peper 1.3 issues listed on the common portage problems page - <a class="footnote-reference" href="#portageproblems" id="id2">[2]</a> - show.</p>
434 peper 1.1 </div>
435 peper 1.3 <div class="section" id="proposed-solution">
436     <h1><a class="toc-backref" href="#id10">Proposed solution</a></h1>
437 peper 1.1 <p>The proposed solution is to use EAPI-suffixed file extensions for ebuilds. This
438     allows package managers to trivially read the EAPI from the ebuild filename. It
439 antarus 1.2 is also backwards compatible, because currently ebuilds are recognised by the
440 peper 1.1 <tt class="docutils literal"><span class="pre">.ebuild</span></tt> file extension and hence EAPI-suffixed ebuilds are simply ignored by
441     the package managers.</p>
442     </div>
443 peper 1.3 <div class="section" id="specification">
444     <h1><a class="toc-backref" href="#id11">Specification</a></h1>
445 peper 1.1 <p>Ebuild filename extension syntax: <tt class="docutils literal"><span class="pre">ebuild[-&lt;EAPI&gt;]</span></tt>, where <tt class="docutils literal"><span class="pre">[]</span></tt> denotes an
446     optional part, and <tt class="docutils literal"><span class="pre">&lt;EAPI&gt;</span></tt> is the EAPI of the ebuild.</p>
447 peper 1.3 <p>The EAPI used by the ebuild is the EAPI included in the filename if it is set.
448     Otherwise the EAPI set inside the ebuild is used, which defaults to 0 (this is
449     the current behaviour).</p>
450 peper 1.1 <p>Ebuilds with unsupported EAPIs are masked.</p>
451 peper 1.3 <p>It should be considered an error to set the EAPI both in the filename and in the
452     ebuild.</p>
453 peper 1.1 <p>Examples:</p>
454     <blockquote>
455     <ul>
456     <li><dl class="first docutils">
457     <dt><tt class="docutils literal"><span class="pre">pkg-1.ebuild</span></tt>, no EAPI set inside the ebuild</dt>
458 peper 1.3 <dd><p class="first last">EAPI defaults to 0.</p>
459 peper 1.1 </dd>
460     </dl>
461     </li>
462     <li><dl class="first docutils">
463     <dt><tt class="docutils literal"><span class="pre">pkg-2.ebuild-1</span></tt>, no EAPI set inside the ebuild</dt>
464 peper 1.3 <dd><p class="first last">EAPI 1 is used.</p>
465 peper 1.1 </dd>
466     </dl>
467     </li>
468     <li><dl class="first docutils">
469 peper 1.3 <dt><tt class="docutils literal"><span class="pre">pkg-3.ebuild-1</span></tt>, <tt class="docutils literal"><span class="pre">EAPI=&quot;1&quot;</span></tt></dt>
470     <dd><p class="first last">EAPI set in both places - error.</p>
471 peper 1.1 </dd>
472     </dl>
473     </li>
474     </ul>
475     </blockquote>
476     <p>Note that it is still not permitted to have more than one ebuild with equal
477     category, package name, and version. Although it would have the advantage of
478 antarus 1.2 allowing authors to provide backwards compatible ebuilds, it would introduce
479     problems too. The first is the requirement to have strict EAPI ordering, the
480     second is ensuring that all the ebuilds for a single category/package-version
481     are equivalent, i.e. installing any of them has exactly the same effect on a
482     given system.</p>
483 peper 1.1 </div>
484 peper 1.3 <div class="section" id="summary-of-ideas">
485     <h1><a class="toc-backref" href="#id12">Summary of ideas</a></h1>
486     <div class="section" id="eapi-suffixed-ebuilds-proposed-solution">
487     <h2><a class="toc-backref" href="#id13">EAPI-suffixed ebuilds (proposed solution)</a></h2>
488     <dl class="docutils">
489     <dt>Properties:</dt>
490     <dd><ul class="first last simple">
491     <li>Can be used right away: yes</li>
492     <li>Hurts performance: no</li>
493     </ul>
494     </dd>
495     </dl>
496     <p>Some say it is clear and simple, others that it is ugly and unintuitive.</p>
497     </div>
498     <div class="section" id="eapi-in-the-filename-with-one-time-extension-change">
499     <h2><a class="toc-backref" href="#id14">EAPI in the filename with one-time extension change</a></h2>
500     <p>One of the proposed filename formats:
501     <tt class="docutils literal"><span class="pre">&lt;PKG&gt;-&lt;VER&gt;.eapi-&lt;EAPI&gt;.eb</span></tt></p>
502     <dl class="docutils">
503     <dt>Properties:</dt>
504 peper 1.1 <dd><ul class="first last simple">
505 peper 1.3 <li>Can be used right away: yes</li>
506     <li>Hurts performance: no</li>
507 peper 1.1 </ul>
508     </dd>
509     </dl>
510 peper 1.3 <p>This is equivalent to the proposed solution.</p>
511     <p>Some say it is better because the extension is static.</p>
512     </div>
513     <div class="section" id="easily-fetchable-eapi-inside-the-ebuild">
514     <h2><a class="toc-backref" href="#id15">Easily fetchable EAPI inside the ebuild</a></h2>
515     <dl class="docutils">
516     <dt>Properties:</dt>
517 peper 1.1 <dd><ul class="first last simple">
518 peper 1.3 <li>Can be used right away: no</li>
519     <li>Hurts performance: yes</li>
520 peper 1.1 </ul>
521     </dd>
522     </dl>
523 peper 1.3 <p>Cannot be used right away as it would trigger the errors shown in Current
524     behaviour section for old package managers.</p>
525     <p>Performance decrease comes from the fact that with version format changes in the
526     picture package managers need EAPI to parse the ebuild's version. That means that merely
527     picking the best version of a package requires loading EAPI (from cache or the
528     ebuild) for each available ebuild.</p>
529     </div>
530     <div class="section" id="easily-fetchable-eapi-inside-the-ebuild-and-one-time-extension-change">
531     <h2><a class="toc-backref" href="#id16">Easily fetchable EAPI inside the ebuild and one-time extension change</a></h2>
532     <dl class="docutils">
533     <dt>Properties:</dt>
534 peper 1.1 <dd><ul class="first last simple">
535 peper 1.3 <li>Can be used right away: yes</li>
536     <li>Hurts performance: yes</li>
537 peper 1.1 </ul>
538     </dd>
539     </dl>
540 peper 1.3 <p>Performance decrease as described in the previous section.</p>
541     <p>Some say it is clear and simple, others that it is confusing and unintuitive,
542     because of the arbitrary format restrictions in what is a bash script otherwise.</p>
543     </div>
544     <div class="section" id="use-different-subdirectories-for-different-eapis-i-e-cat-pkg-eapix">
545     <h2><a class="toc-backref" href="#id17">Use different subdirectories for different EAPIs, i.e. cat/pkg/eapiX/</a></h2>
546     <dl class="docutils">
547     <dt>Properties:</dt>
548     <dd><ul class="first last simple">
549     <li>Can be used right away: yes</li>
550     <li>Hurts performance: yes</li>
551 peper 1.1 </ul>
552 peper 1.3 </dd>
553     </dl>
554     <p>Performance decrease comes from the fact that it adds several more directory
555     reads.</p>
556     <p>Some say that it makes it much harder for maintainers to see what they have.</p>
557     </div>
558 peper 1.1 </div>
559 peper 1.3 <div class="section" id="references">
560     <h1><a class="toc-backref" href="#id18">References</a></h1>
561 peper 1.1 <table class="docutils footnote" frame="void" id="glep54" rules="none">
562     <colgroup><col class="label" /><col /></colgroup>
563     <tbody valign="top">
564 peper 1.3 <tr><td class="label"><a class="fn-backref" href="#id1">[1]</a></td><td>GLEP 54, scm package version suffix
565     (<a class="reference external" href="http://glep.gentoo.org/glep-0054.html">http://glep.gentoo.org/glep-0054.html</a>)</td></tr>
566 peper 1.1 </tbody>
567     </table>
568     <table class="docutils footnote" frame="void" id="portageproblems" rules="none">
569     <colgroup><col class="label" /><col /></colgroup>
570     <tbody valign="top">
571 peper 1.3 <tr><td class="label"><a class="fn-backref" href="#id2">[2]</a></td><td>Common portage problems
572     (<a class="reference external" href="http://www.gentoo.org/proj/en/portage/doc/common-problems.xml">http://www.gentoo.org/proj/en/portage/doc/common-problems.xml</a>)</td></tr>
573 peper 1.1 </tbody>
574     </table>
575     </div>
576 peper 1.3 <div class="section" id="copyright">
577     <h1><a class="toc-backref" href="#id19">Copyright</a></h1>
578 peper 1.1 <p>This document has been placed in the public domain.</p>
579     <!-- vim: set tw=80 fileencoding=utf-8 spell spelllang=en et : -->
580     </div>
581    
582     </div>
583     <div class="footer">
584     <hr class="footer" />
585 peper 1.3 <a class="reference external" href="glep-0055.txt">View document source</a>.
586     Generated on: 2009-05-17 15:29 UTC.
587     Generated 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.
588 peper 1.1
589     </div>
590     </body>
591     </html>

  ViewVC Help
Powered by ViewVC 1.1.20