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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations) (download) (as text)
Thu Jan 25 03:26:26 2007 UTC (7 years, 7 months ago) by antarus
Branch: MAIN
Changes since 1.5: +3 -3 lines
File MIME type: text/html
Fix headers in all current gleps

1 pauldv 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     <!--
5     This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6     PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7     to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8     -->
9     <head>
10     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11     <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12     <title>GLEP 49 -- Alternative Package Manager requirements</title>
13 g2boojum 1.4 <style type="text/css">
14    
15     /*
16     :Author: David Goodger
17     :Contact: goodger@users.sourceforge.net
18 antarus 1.6 :date: $Date: 2006/10/10 20:25:14 $
19     :version: $Revision: 1.5 $
20 g2boojum 1.4 :copyright: This stylesheet has been placed in the public domain.
21    
22     Default cascading style sheet for the PEP HTML output of Docutils.
23     */
24    
25     .first {
26     margin-top: 0 }
27    
28     .last {
29     margin-bottom: 0 }
30    
31     .navigation {
32     width: 100% ;
33     background: #cc99ff ;
34     margin-top: 0px ;
35     margin-bottom: 0px }
36    
37     .navigation .navicon {
38     width: 150px ;
39     height: 35px }
40    
41     .navigation .textlinks {
42     padding-left: 1em ;
43     text-align: left }
44    
45     .navigation td, .navigation th {
46     padding-left: 0em ;
47     padding-right: 0em ;
48     vertical-align: middle }
49    
50     .rfc2822 {
51     margin-top: 0.5em ;
52     margin-left: 0.5em ;
53     margin-right: 0.5em ;
54     margin-bottom: 0em }
55    
56     .rfc2822 td {
57     text-align: left }
58    
59     .rfc2822 th.field-name {
60     text-align: right ;
61     font-family: sans-serif ;
62     padding-right: 0.5em ;
63     font-weight: bold ;
64     margin-bottom: 0em }
65    
66     a.toc-backref {
67     text-decoration: none ;
68     color: black }
69    
70     body {
71     margin: 0px ;
72     margin-bottom: 1em ;
73     padding: 0px }
74    
75     dd {
76     margin-bottom: 0.5em }
77    
78     div.section {
79     margin-left: 1em ;
80     margin-right: 1em ;
81     margin-bottom: 1.5em }
82    
83     div.section div.section {
84     margin-left: 0em ;
85     margin-right: 0em ;
86     margin-top: 1.5em }
87    
88     div.abstract {
89     margin: 2em 5em }
90    
91     div.abstract p.topic-title {
92     font-weight: bold ;
93     text-align: center }
94    
95     div.attention, div.caution, div.danger, div.error, div.hint,
96     div.important, div.note, div.tip, div.warning {
97     margin: 2em ;
98     border: medium outset ;
99     padding: 1em }
100    
101     div.attention p.admonition-title, div.caution p.admonition-title,
102     div.danger p.admonition-title, div.error p.admonition-title,
103     div.warning p.admonition-title {
104     color: red ;
105     font-weight: bold ;
106     font-family: sans-serif }
107    
108     div.hint p.admonition-title, div.important p.admonition-title,
109     div.note p.admonition-title, div.tip p.admonition-title {
110     font-weight: bold ;
111     font-family: sans-serif }
112    
113     div.figure {
114     margin-left: 2em }
115    
116     div.footer, div.header {
117     font-size: smaller }
118    
119     div.footer {
120     margin-left: 1em ;
121     margin-right: 1em }
122    
123     div.system-messages {
124     margin: 5em }
125    
126     div.system-messages h1 {
127     color: red }
128    
129     div.system-message {
130     border: medium outset ;
131     padding: 1em }
132    
133     div.system-message p.system-message-title {
134     color: red ;
135     font-weight: bold }
136    
137     div.topic {
138     margin: 2em }
139    
140     h1 {
141     font-family: sans-serif ;
142     font-size: large }
143    
144     h2 {
145     font-family: sans-serif ;
146     font-size: medium }
147    
148     h3 {
149     font-family: sans-serif ;
150     font-size: small }
151    
152     h4 {
153     font-family: sans-serif ;
154     font-style: italic ;
155     font-size: small }
156    
157     h5 {
158     font-family: sans-serif;
159     font-size: x-small }
160    
161     h6 {
162     font-family: sans-serif;
163     font-style: italic ;
164     font-size: x-small }
165    
166     .section hr {
167     width: 75% }
168    
169     ol.simple, ul.simple {
170     margin-bottom: 1em }
171    
172     ol.arabic {
173     list-style: decimal }
174    
175     ol.loweralpha {
176     list-style: lower-alpha }
177    
178     ol.upperalpha {
179     list-style: upper-alpha }
180    
181     ol.lowerroman {
182     list-style: lower-roman }
183    
184     ol.upperroman {
185     list-style: upper-roman }
186    
187     p.caption {
188     font-style: italic }
189    
190     p.credits {
191     font-style: italic ;
192     font-size: smaller }
193    
194     p.label {
195     white-space: nowrap }
196    
197     p.topic-title {
198     font-family: sans-serif ;
199     font-weight: bold }
200    
201     pre.line-block {
202     font-family: serif ;
203     font-size: 100% }
204    
205     pre.literal-block, pre.doctest-block {
206     margin-left: 2em ;
207     margin-right: 2em ;
208     background-color: #eeeeee }
209    
210     span.classifier {
211     font-family: sans-serif ;
212     font-style: oblique }
213    
214     span.classifier-delimiter {
215     font-family: sans-serif ;
216     font-weight: bold }
217    
218     span.interpreted {
219     font-family: sans-serif }
220    
221     span.option-argument {
222     font-style: italic }
223    
224     span.pre {
225     white-space: pre }
226    
227     span.problematic {
228     color: red }
229    
230     table {
231     margin-top: 0.5em ;
232     margin-bottom: 0.5em }
233    
234     td, th {
235     padding-left: 0.5em ;
236     padding-right: 0.5em ;
237     vertical-align: top }
238    
239     td.num {
240     text-align: right }
241    
242     th.field-name {
243     font-weight: bold ;
244     text-align: left ;
245     white-space: nowrap }
246    
247     h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
248     font-size: 100% }
249    
250     tt {
251     background-color: #eeeeee }
252    
253     ul.auto-toc {
254     list-style-type: none }
255    
256     </style>
257 pauldv 1.1 </head>
258     <body bgcolor="white">
259     <table class="navigation" cellpadding="0" cellspacing="0"
260     width="100%" border="0">
261     <tr><td class="navicon" width="150" height="35">
262     <a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
263     <img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
264     border="0" width="150" height="35" /></a></td>
265     <td class="textlinks" align="left">
266     [<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
267 antarus 1.6 [<b><a href="http://www.gentoo.org/proj/en/glep/">GLEP Index</a></b>]
268 pauldv 1.1 [<b><a href="http://www.gentoo.org/proj/en/glep/glep-0049.txt">GLEP Source</a></b>]
269     </td></tr></table>
270     <table class="rfc2822 docutils field-list" frame="void" rules="none">
271     <col class="field-name" />
272     <col class="field-body" />
273     <tbody valign="top">
274     <tr class="field"><th class="field-name">GLEP:</th><td class="field-body">49</td>
275     </tr>
276     <tr class="field"><th class="field-name">Title:</th><td class="field-body">Alternative Package Manager requirements</td>
277     </tr>
278 g2boojum 1.4 <tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
279 pauldv 1.1 </tr>
280 g2boojum 1.4 <tr class="field"><th class="field-name">Last-Modified:</th><td class="field-body"><a class="reference" href="http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0049.txt?cvsroot=gentoo">2006/09/05 20:54:30</a></td>
281 pauldv 1.1 </tr>
282     <tr class="field"><th class="field-name">Author:</th><td class="field-body">Paul de Vrieze &lt;pauldv&#32;&#97;t&#32;gentoo.org&gt;,</td>
283     </tr>
284 g2boojum 1.4 <tr class="field"><th class="field-name">Status:</th><td class="field-body">Rejected</td>
285 pauldv 1.1 </tr>
286     <tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
287     </tr>
288     <tr class="field"><th class="field-name">Content-Type:</th><td class="field-body"><a class="reference" href="glep-0002.html">text/x-rst</a></td>
289     </tr>
290     <tr class="field"><th class="field-name">Created:</th><td class="field-body">18-May-2006</td>
291     </tr>
292 g2boojum 1.4 <tr class="field"><th class="field-name">Post-History:</th><td class="field-body">19-May-2006, 6-Sep-2006</td>
293 pauldv 1.1 </tr>
294     </tbody>
295     </table>
296     <hr />
297     <div class="contents topic">
298     <p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
299     <ul class="simple">
300 g2boojum 1.4 <li><a class="reference" href="#status" id="id7" name="id7">Status</a></li>
301     <li><a class="reference" href="#abstract" id="id8" name="id8">Abstract</a></li>
302     <li><a class="reference" href="#motivation" id="id9" name="id9">Motivation</a></li>
303     <li><a class="reference" href="#rationale" id="id10" name="id10">Rationale</a></li>
304     <li><a class="reference" href="#backwards-compatibility" id="id11" name="id11">Backwards Compatibility</a></li>
305     <li><a class="reference" href="#categories-of-package-managers" id="id12" name="id12">Categories of package managers</a></li>
306     <li><a class="reference" href="#package-manager-requirements" id="id13" name="id13">Package manager requirements</a><ul>
307     <li><a class="reference" href="#primary-package-manager-requirements" id="id14" name="id14">Primary package manager requirements</a></li>
308     <li><a class="reference" href="#candidate-primary-package-manager-requirements" id="id15" name="id15">Candidate primary package manager requirements</a></li>
309     <li><a class="reference" href="#secondary-package-manager-requirements" id="id16" name="id16">Secondary package manager requirements</a></li>
310     <li><a class="reference" href="#third-party-package-manager-requirements" id="id17" name="id17">Third party package manager requirements</a></li>
311 pauldv 1.1 </ul>
312     </li>
313 g2boojum 1.4 <li><a class="reference" href="#transition-phases" id="id18" name="id18">Transition phases</a><ul>
314     <li><a class="reference" href="#primary-package-manager-transition-phase" id="id19" name="id19">Primary package manager transition phase</a></li>
315     <li><a class="reference" href="#secondary-package-manager-to-candidate-primary-package-manager-transition" id="id20" name="id20">Secondary package manager to candidate primary package manager transition</a></li>
316     <li><a class="reference" href="#third-party-to-other-transition" id="id21" name="id21">Third party to other transition</a></li>
317 pauldv 1.1 </ul>
318     </li>
319 g2boojum 1.4 <li><a class="reference" href="#references" id="id22" name="id22">References</a></li>
320     <li><a class="reference" href="#copyright" id="id23" name="id23">Copyright</a></li>
321 pauldv 1.1 </ul>
322     </div>
323     <div class="section">
324 g2boojum 1.4 <h1><a class="toc-backref" href="#id7" id="status" name="status">Status</a></h1>
325     <p>The council rejected this GLEP in favor of starting from a package manager
326     API and requiring Gentoo package managers in the tree to support that
327     API. (That API is still pending, however.)</p>
328     </div>
329     <div class="section">
330     <h1><a class="toc-backref" href="#id8" id="abstract" name="abstract">Abstract</a></h1>
331 pauldv 1.1 <p>This GLEP describes four classes of package managers. What the requirements for
332     them are, and what support they can receive.</p>
333     </div>
334     <div class="section">
335 g2boojum 1.4 <h1><a class="toc-backref" href="#id9" id="motivation" name="motivation">Motivation</a></h1>
336 pauldv 1.2 <p>To set a standard that package managers that seek Gentoo project approval and
337 pauldv 1.1 support should adhere to.</p>
338     </div>
339     <div class="section">
340 g2boojum 1.4 <h1><a class="toc-backref" href="#id10" id="rationale" name="rationale">Rationale</a></h1>
341 pauldv 1.2 <p>Currently Portage is showing its age. The code of Portage does not seem to be
342     salvageable for new versions. As of the date of publication, there are two known
343     alternative package managers that claim a level of Portage compatibility. These
344     alternatives are <a class="reference" href="http://paludis.berlios.de/">paludis</a> <a class="footnote-reference" href="#id1" id="id2" name="id2">[1]</a> and <a class="reference" href="http://gentooexperimental.org/~ferringb/bzr/pkgcore/">pkgcore</a> <a class="footnote-reference" href="#id3" id="id4" name="id4">[2]</a>. Before these alternatives are
345     developed further, a set of rules should be created to level the playing field
346     and ensuring that decisions can be made clearly.</p>
347 pauldv 1.1 </div>
348     <div class="section">
349 g2boojum 1.4 <h1><a class="toc-backref" href="#id11" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
350 pauldv 1.1 <p>Not a problem for this GLEP. There is no previous standard as the issue did not
351     exist before. This GLEP is to prevent future compatibility issues.</p>
352     </div>
353     <div class="section">
354 g2boojum 1.4 <h1><a class="toc-backref" href="#id12" id="categories-of-package-managers" name="categories-of-package-managers">Categories of package managers</a></h1>
355 pauldv 1.1 <p>We distinguish four categories of package managers. While a package manager can
356     transition from one category to another, it can not be in two categories at the
357     same time. It can be in a state of transition though.</p>
358     <dl class="docutils">
359     <dt><em>Primary Package Manager</em></dt>
360     <dd>There is one primary package manager. Currently this position is held by
361 pauldv 1.2 Portage. The primary package manager is assigned by the council and all
362     packages in the official tree must be installable by a usable version of the
363 pauldv 1.1 primary package manager.</dd>
364     <dt><em>Candidate Primary Package Managers</em></dt>
365     <dd>A candidate Primary Package Manager does aim, or show an aim, at replacing
366     the current primary package manager. At a point where the package manager is
367     deemed stable a decision must be made whether this package manager should
368 pauldv 1.2 become the new primary package manager. At that point the <a class="reference" href="#primary-package-manager-transition-phase">Primary package
369 pauldv 1.1 manager transition phase</a> starts.</dd>
370     <dt><em>Secondary Package Managers</em></dt>
371     <dd><p class="first">A secondary package manager is a package manager that coexists with the
372 pauldv 1.2 primary package manager, while not aiming to replace it. Examples of package
373     managers that would fall into this category are:</p>
374 pauldv 1.1 <ul class="last simple">
375     <li>Experimental package managers. Package managers whose purpose it is to try
376     out new features.</li>
377 pauldv 1.2 <li>Focused package managers. For example a package manager that allows the
378     use of RPM formatted binary packages would be an example.</li>
379     <li>Alternate package managers. Package managers that aim to coexist with the
380     primary package manager. They might for example offer a nicer user
381     interface than the primary package manager (e.g. show a cow instead of
382     compilation messages).</li>
383 pauldv 1.1 </ul>
384     </dd>
385     <dt><em>Third Party Package Managers</em></dt>
386     <dd>A third party package manager is any package manager that lacks recognition
387 pauldv 1.2 from Gentoo as being in any other category. A third party package manager may
388     or may not have a Gentoo package, but is not supported beyond that.</dd>
389 pauldv 1.1 </dl>
390     </div>
391     <div class="section">
392 g2boojum 1.4 <h1><a class="toc-backref" href="#id13" id="package-manager-requirements" name="package-manager-requirements">Package manager requirements</a></h1>
393 pauldv 1.1 <p>As a package manager is in a state of higher support there are higher
394     requirements to it. The purpose of these requirements is to ensure the unity of
395     the distribution and the package tree. For this purpose it is needed that there
396 pauldv 1.3 is only one primary package manager. This is from gentoo's perspective. From a
397     user perspective it is perfectly possible to use another package
398     manager. Candidate primary package managers and secondary package managers are
399     also supported in regards to bugs etc.</p>
400 pauldv 1.1 <div class="section">
401 g2boojum 1.4 <h2><a class="toc-backref" href="#id14" id="primary-package-manager-requirements" name="primary-package-manager-requirements">Primary package manager requirements</a></h2>
402 pauldv 1.1 <p>The primary package manager is the package manager that sets the standards for
403     the tree. All ebuilds in the tree must function with the primary package
404     manager. As the primary package manager sets the standard it does not have to
405 pauldv 1.3 maintain compatibility with other package managers. This does not mean that the
406     actual implementation is the standard, but that the maintainers have the ability
407     to define new standards, together with the other involved gentoo projects.</p>
408 pauldv 1.1 <p>The primary package manager does however have the responsibility that it must be
409     very stable. The primary package manager must maintain compatibility with old
410 pauldv 1.2 versions of itself for extended periods of time. This compatibility time is set
411 pauldv 1.1 by the council. The suggested time would be one year from the point that there
412     is a compatible stable version for all supported architectures.</p>
413 pauldv 1.2 <p>Another compatibility requirement for the primary package manager is a limited
414 pauldv 1.1 forward compatibility. It must always be possible to transition from the
415     unstable version of the primary package manager to a stable version. This may be
416     done either by first introducing reading compatibility for a new format and only
417     having write support later. Another way would be the provision of a conversion
418     tool that ensures that the on disk information maintained by the package manager
419     is supported by the stable package manager.</p>
420 pauldv 1.3 <p>The primary package manager maintainers further have the responsibility to allow
421     competition. This means that reasonable patches from the maintainers of
422     secondary or candidate primary package managers must be applied, given that
423     these patches are as independent of that package manager as possible.</p>
424 pauldv 1.2 <p>The primary package manager is maintained on official Gentoo infrastructure,
425     under control of Gentoo developers.</p>
426 pauldv 1.1 </div>
427     <div class="section">
428 g2boojum 1.4 <h2><a class="toc-backref" href="#id15" id="candidate-primary-package-manager-requirements" name="candidate-primary-package-manager-requirements">Candidate primary package manager requirements</a></h2>
429 pauldv 1.1 <p>A candidate primary package manager aims to replace the primary package
430     manager. The council is responsible for deciding whether this is done. The
431     requirements are there to ensure that it is actually possible to transition a
432     candidate primary package manager into the primary package manager.</p>
433     <p>First of all, there must exist a transition path. This means that the on disk
434     data of the primary package manager can be used by (or converted to a format
435     usable by) the candidate primary package manager.</p>
436     <p>Second, there must be a test path. It must be possible for the developers to
437     test out the candidate primary package manager on their working systems. This
438     means that the transition path must exist. This also means that there are no
439 pauldv 1.2 serious obstacles for reverting to the current primary package manager. This
440     reverting must also be usable when it is decided that the candidate will not
441     become primary package manager, for example because serious design flaws or bugs
442     were found. Ideally, the Candidate Primary Package Manager and the Primary
443     Package Manager can be installed simultaneously. If not, clear instructions must
444     be provided for both ways of transitioning.</p>
445 pauldv 1.1 <p>Third, there must exist an ebuild test path. It must be possible for package
446     managers to test ebuilds in one tree for both the primary as well as the
447     candidate primary package manager. It is not an issue if this requires a special
448     mode for the candidate primary package manager. It is not an issue either if
449 pauldv 1.2 compatibility can be achieved by having the candidate primary package manager
450     unmerge the package.</p>
451 pauldv 1.1 <p>Fourth, there must be support. This means that the package manager is actively
452 pauldv 1.2 maintained under control of Gentoo. If it is not maintained on Gentoo
453 pauldv 1.1 infrastructure, the means must be there to move the package manager, with its
454 pauldv 1.2 change history, to Gentoo infrastructure. This means that it must be maintained
455     on a Gentoo supported versioning system, or on a version system whose history
456     can be converted to a Gentoo supported versioning system.</p>
457     <p>Fifth, release capabilities. There must exist automated tools that use the
458     candidate primary package manager to create release media that have similar
459     capabilities as those released using the old primary package manager. The exact
460     requirements are determined by the Release Engineering project, but should not
461     be significantly beyond what is currently implemented using the primary package
462     manager.</p>
463 pauldv 1.1 </div>
464     <div class="section">
465 g2boojum 1.4 <h2><a class="toc-backref" href="#id16" id="secondary-package-manager-requirements" name="secondary-package-manager-requirements">Secondary package manager requirements</a></h2>
466 pauldv 1.1 <p>A secondary package manager is a package manager that instead of directly aiming
467 pauldv 1.2 at replacing the current primary package manager as primary package manager aims
468     to cooperate with the primary package manager. As such a secondary package
469 pauldv 1.1 manager does not set the standard on the tree, but follows the standard set by
470     the primary package manager.</p>
471     <p>There are two kinds of secondary package managers. The first kind is formed by
472     those that do not maintain their own installed package database, but work with
473     the package database of the primary package manager. While these package
474     managers can put additional information in the database, these entries must
475     remain compatible with the primary package managers. Verification, reference,
476     and deinstallation by the primary package manager must remain functional.</p>
477     <p>The second kind is formed by those package managers that maintain their own
478     package database, or a package database incompatible with the primary package
479     manager. To ensure the secondary role of these package managers the support in
480 pauldv 1.3 the tree for these package managers is provided along with restrictions.</p>
481 pauldv 1.1 <p>The first restriction is that no packages in the tree must rely on the secondary
482     package manager. While packages may provide a level of support (while being
483     compatible with the primary package manager) this may not result in a
484 pauldv 1.2 significant increase of features. If this were allowed, this would mean that
485 pauldv 1.1 while they technically work with the primary package manager, there would be
486     significant incentive to use the secondary package manager. As the use of this
487 pauldv 1.2 secondary package manager disallows the parallel use of the primary package
488 pauldv 1.1 manager, this would result in users using the secondary package manager as their
489     primary package manager.</p>
490 pauldv 1.2 <p>Users are allowed to make their own choices. However by making the tree favour a
491 pauldv 1.1 package manager that is not the primary package manager, this will lead to the
492 pauldv 1.2 secondary package manager becoming the effective primary package manager. As
493     this will be a decision by default instead of a conscious choice by the council,
494 pauldv 1.1 this is an undesirable result.</p>
495     <p>There is one exclusion for the restriction of packages that only work with or
496     have significant improvements with the secondary package manager. That is
497     packages that by their nature are only usable with this secondary package
498 pauldv 1.2 manager. An example would be a graphical front-end to the secondary package
499 pauldv 1.1 manager.</p>
500     <p>If a secondary package manager works along the primary package manager, but by
501     itself does not have the capabilities of becoming a primary package manager the
502     risks of choice by default are lower. As a result, the council could choose to
503     allow the inclusion of packages that work only or significantly better with this
504     secondary package manager. For example at a point where there is a stable,
505     functional, package manager that can handle RPM format packages, the council
506     could decide to include these packages directly in the tree, instead of using
507     wrapper scripts for those packages that are only provided in the RPM
508     format. Such a decision does imply that the maintainers of the primary package
509     manager must take this secondary package manager into account.</p>
510     </div>
511     <div class="section">
512 g2boojum 1.4 <h2><a class="toc-backref" href="#id17" id="third-party-package-manager-requirements" name="third-party-package-manager-requirements">Third party package manager requirements</a></h2>
513 pauldv 1.1 <p>A third party package manager is just that. It is a package manager without any
514 pauldv 1.2 support within Gentoo. As there is no control by Gentoo over the package manager
515 pauldv 1.1 this means that there are no requirements on the package manager.</p>
516 pauldv 1.2 <p>This complete lack of control however also translates to the fact that Gentoo
517 pauldv 1.1 can not make package manager specific changes to support this package
518     manager. Package manager specific means that it is possible to request changes
519     that make the tree more independent of the primary package manager. These
520     changes must however be agnostic of the package manager, and only make it easier
521     to have alternative package managers.</p>
522     </div>
523     </div>
524     <div class="section">
525 g2boojum 1.4 <h1><a class="toc-backref" href="#id18" id="transition-phases" name="transition-phases">Transition phases</a></h1>
526 pauldv 1.1 <div class="section">
527 g2boojum 1.4 <h2><a class="toc-backref" href="#id19" id="primary-package-manager-transition-phase" name="primary-package-manager-transition-phase">Primary package manager transition phase</a></h2>
528 pauldv 1.1 <p>A candidate primary package manager can be chosen to become primary package
529 pauldv 1.3 manager. This can only happen by council decision. This decision can only be
530     made when the candidate primary package manager is stable on all stable
531     architectures. (all architectures except experimental ones). There is a
532     incubation period of at least 3 months before a candidate primary package
533     manager can become the primary package manager.</p>
534 pauldv 1.1 <p>After the decision has been made to replace the primary package manager, the
535     transition phase starts. The use of the old stable package manager must remain
536     supported for a period of 6 months. This means that core packages must be
537     installable by this package manager. Further the possibility to convert the
538     system automatically to the new primary package manager must be available for at
539     least 18 months, but preferably longer (enable installing the new package
540     manager from the old one).</p>
541     <p>During the transition phase packages are allowed in the tree that use the new
542     features of the new primary package manager. While backward compatibility with
543     the previous primary package manager must be maintained a forward compatibility
544     is no longer needed.</p>
545     </div>
546     <div class="section">
547 g2boojum 1.4 <h2><a class="toc-backref" href="#id20" id="secondary-package-manager-to-candidate-primary-package-manager-transition" name="secondary-package-manager-to-candidate-primary-package-manager-transition">Secondary package manager to candidate primary package manager transition</a></h2>
548 pauldv 1.1 <p>The transition from secondary package manager to candidate primary package
549     manager is straightforward. The secondary package manager must satisfy all
550     requirements for a candidate primary package manager. At that point its
551     maintainers can announce that they are changing the status to candidate primary
552 pauldv 1.2 package manager. This allows a greater support from Gentoo in achieving that
553 pauldv 1.1 goal.</p>
554     </div>
555     <div class="section">
556 g2boojum 1.4 <h2><a class="toc-backref" href="#id21" id="third-party-to-other-transition" name="third-party-to-other-transition">Third party to other transition</a></h2>
557 pauldv 1.1 <p>When a third party package manager wants to transition into one of the other
558     categories (except primary package manager) it must satisfy all requirements for
559     that category.</p>
560     </div>
561     </div>
562     <div class="section">
563 g2boojum 1.4 <h1><a class="toc-backref" href="#id22" id="references" name="references">References</a></h1>
564 pauldv 1.1 <table class="docutils footnote" frame="void" id="id1" rules="none">
565     <colgroup><col class="label" /><col /></colgroup>
566     <tbody valign="top">
567     <tr><td class="label"><a class="fn-backref" href="#id2" name="id1">[1]</a></td><td><a class="reference" href="http://paludis.berlios.de/">http://paludis.berlios.de/</a></td></tr>
568     </tbody>
569     </table>
570     <table class="docutils footnote" frame="void" id="id3" rules="none">
571     <colgroup><col class="label" /><col /></colgroup>
572     <tbody valign="top">
573     <tr><td class="label"><a class="fn-backref" href="#id4" name="id3">[2]</a></td><td><a class="reference" href="http://gentooexperimental.org/~ferringb/bzr/pkgcore/">http://gentooexperimental.org/~ferringb/bzr/pkgcore/</a></td></tr>
574     </tbody>
575     </table>
576     <table class="docutils footnote" frame="void" id="id5" rules="none">
577     <colgroup><col class="label" /><col /></colgroup>
578     <tbody valign="top">
579     <tr><td class="label"><a class="fn-backref" href="#id6" name="id5">[3]</a></td><td><a class="reference" href="http://www.opencontent.org/openpub/">http://www.opencontent.org/openpub/</a></td></tr>
580     </tbody>
581     </table>
582     </div>
583     <div class="section">
584 g2boojum 1.4 <h1><a class="toc-backref" href="#id23" id="copyright" name="copyright">Copyright</a></h1>
585 pauldv 1.1 <p>This document is copyright 2006 by Paul de Vrieze and licensed under the
586     <a class="reference" href="http://www.opencontent.org/openpub/">Open Publication License</a> <a class="footnote-reference" href="#id5" id="id6" name="id6">[3]</a>.</p>
587     </div>
588    
589     </div>
590     <div class="footer">
591     <hr class="footer" />
592     <a class="reference" href="glep-0049.txt">View document source</a>.
593 g2boojum 1.5 Generated on: 2006-10-10 20:23 UTC.
594 pauldv 1.1 Generated by <a class="reference" href="http://docutils.sourceforge.net/">Docutils</a> from <a class="reference" href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> source.
595    
596     </div>
597     </body>
598     </html>

  ViewVC Help
Powered by ViewVC 1.1.20