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

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

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

Revision 1.1 Revision 1.7
1<?xml version="1.0" encoding="utf-8" ?> 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"> 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
5This HTML is auto-generated. DO NOT EDIT THIS FILE! If you are writing a new
6PEP, see http://www.python.org/peps/pep-0001.html for instructions and links
7to templates. DO NOT USE THIS HTML FILE AS YOUR TEMPLATE!
8-->
9<head> 5<head>
10 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
11 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" /> 7 <meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
12 <title>GLEP 49 -- Alternative Package Manager requirements</title> 8 <title>GLEP 49 -- Alternative Package Manager requirements</title>
13 <link rel="stylesheet" href="tools/glep.css" type="text/css" /> 9 <link rel="stylesheet" href="tools/glep.css" type="text/css" />
19<a href="http://www.gentoo.org/" title="Gentoo Linux Home Page"> 15<a href="http://www.gentoo.org/" title="Gentoo Linux Home Page">
20<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]" 16<img src="http://www.gentoo.org/images/gentoo-new.gif" alt="[Gentoo]"
21 border="0" width="150" height="35" /></a></td> 17 border="0" width="150" height="35" /></a></td>
22<td class="textlinks" align="left"> 18<td class="textlinks" align="left">
23[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>] 19[<b><a href="http://www.gentoo.org/">Gentoo Linux Home</a></b>]
24[<b><a href="http://www.gentoo.org/peps">GLEP Index</a></b>] 20[<b><a href="http://www.gentoo.org/proj/en/glep">GLEP Index</a></b>]
25[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0049.txt">GLEP Source</a></b>] 21[<b><a href="http://www.gentoo.org/proj/en/glep/glep-0049.txt">GLEP Source</a></b>]
26</td></tr></table> 22</td></tr></table>
27<table class="rfc2822 docutils field-list" frame="void" rules="none"> 23<table class="rfc2822 docutils field-list" frame="void" rules="none">
28<col class="field-name" /> 24<col class="field-name" />
29<col class="field-body" /> 25<col class="field-body" />
30<tbody valign="top"> 26<tbody valign="top">
31<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">49</td> 27<tr class="field"><th class="field-name">GLEP:</th><td class="field-body">49</td>
32</tr> 28</tr>
33<tr class="field"><th class="field-name">Title:</th><td class="field-body">Alternative Package Manager requirements</td> 29<tr class="field"><th class="field-name">Title:</th><td class="field-body">Alternative Package Manager requirements</td>
34</tr> 30</tr>
35<tr class="field"><th class="field-name">Version:</th><td class="field-body">2213</td> 31<tr class="field"><th class="field-name">Version:</th><td class="field-body">1.4</td>
36</tr> 32</tr>
37<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-05-19 12:58:14 +0200 (Fri, 19 May 2006)</a></td> 33<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>
38</tr> 34</tr>
39<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> 35<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>
40</tr> 36</tr>
41<tr class="field"><th class="field-name">Status:</th><td class="field-body">Draft</td> 37<tr class="field"><th class="field-name">Status:</th><td class="field-body">Rejected</td>
42</tr> 38</tr>
43<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td> 39<tr class="field"><th class="field-name">Type:</th><td class="field-body">Standards Track</td>
44</tr> 40</tr>
45<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> 41<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>
46</tr> 42</tr>
47<tr class="field"><th class="field-name">Created:</th><td class="field-body">18-May-2006</td> 43<tr class="field"><th class="field-name">Created:</th><td class="field-body">18-May-2006</td>
48</tr> 44</tr>
49<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">20-May-2006</td> 45<tr class="field"><th class="field-name">Post-History:</th><td class="field-body">19-May-2006, 6-Sep-2006</td>
50</tr> 46</tr>
51</tbody> 47</tbody>
52</table> 48</table>
53<hr /> 49<hr />
54<div class="contents topic"> 50<div class="contents topic">
55<p class="topic-title first"><a id="contents" name="contents">Contents</a></p> 51<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
56<ul class="simple"> 52<ul class="simple">
53<li><a class="reference" href="#status" id="id7" name="id7">Status</a></li>
57<li><a class="reference" href="#abstract" id="id7" name="id7">Abstract</a></li> 54<li><a class="reference" href="#abstract" id="id8" name="id8">Abstract</a></li>
58<li><a class="reference" href="#motivation" id="id8" name="id8">Motivation</a></li> 55<li><a class="reference" href="#motivation" id="id9" name="id9">Motivation</a></li>
59<li><a class="reference" href="#rationale" id="id9" name="id9">Rationale</a></li> 56<li><a class="reference" href="#rationale" id="id10" name="id10">Rationale</a></li>
60<li><a class="reference" href="#backwards-compatibility" id="id10" name="id10">Backwards Compatibility</a></li> 57<li><a class="reference" href="#backwards-compatibility" id="id11" name="id11">Backwards Compatibility</a></li>
61<li><a class="reference" href="#categories-of-package-managers" id="id11" name="id11">Categories of package managers</a></li> 58<li><a class="reference" href="#categories-of-package-managers" id="id12" name="id12">Categories of package managers</a></li>
62<li><a class="reference" href="#package-manager-requirements" id="id12" name="id12">Package manager requirements</a><ul> 59<li><a class="reference" href="#package-manager-requirements" id="id13" name="id13">Package manager requirements</a><ul>
63<li><a class="reference" href="#primary-package-manager-requirements" id="id13" name="id13">primary package manager requirements</a></li> 60<li><a class="reference" href="#primary-package-manager-requirements" id="id14" name="id14">Primary package manager requirements</a></li>
64<li><a class="reference" href="#candidate-primary-package-manager-requirements" id="id14" name="id14">candidate primary package manager requirements</a></li> 61<li><a class="reference" href="#candidate-primary-package-manager-requirements" id="id15" name="id15">Candidate primary package manager requirements</a></li>
65<li><a class="reference" href="#secondary-package-manager-requirements" id="id15" name="id15">secondary package manager requirements</a></li> 62<li><a class="reference" href="#secondary-package-manager-requirements" id="id16" name="id16">Secondary package manager requirements</a></li>
66<li><a class="reference" href="#third-party-package-manager-requirements" id="id16" name="id16">third party package manager requirements</a></li> 63<li><a class="reference" href="#third-party-package-manager-requirements" id="id17" name="id17">Third party package manager requirements</a></li>
67</ul> 64</ul>
68</li> 65</li>
69<li><a class="reference" href="#transition-phases" id="id17" name="id17">transition phases</a><ul> 66<li><a class="reference" href="#transition-phases" id="id18" name="id18">Transition phases</a><ul>
70<li><a class="reference" href="#primary-package-manager-transition-phase" id="id18" name="id18">primary package manager transition phase</a></li> 67<li><a class="reference" href="#primary-package-manager-transition-phase" id="id19" name="id19">Primary package manager transition phase</a></li>
71<li><a class="reference" href="#secondary-package-manager-to-candidate-primary-package-manager-transition" id="id19" name="id19">Secondary package manager to candidate primary package manager transition</a></li> 68<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>
72<li><a class="reference" href="#third-party-to-other-transition" id="id20" name="id20">Third party to other transition</a></li> 69<li><a class="reference" href="#third-party-to-other-transition" id="id21" name="id21">Third party to other transition</a></li>
73</ul> 70</ul>
74</li> 71</li>
75<li><a class="reference" href="#references" id="id21" name="id21">References</a></li> 72<li><a class="reference" href="#references" id="id22" name="id22">References</a></li>
76<li><a class="reference" href="#copyright" id="id22" name="id22">Copyright</a></li> 73<li><a class="reference" href="#copyright" id="id23" name="id23">Copyright</a></li>
77</ul> 74</ul>
78</div> 75</div>
79<div class="section"> 76<div class="section">
77<h1><a class="toc-backref" href="#id7" id="status" name="status">Status</a></h1>
78<p>The council rejected this GLEP in favor of starting from a package manager
79API and requiring Gentoo package managers in the tree to support that
80API. (That API is still pending, however.)</p>
81</div>
82<div class="section">
80<h1><a class="toc-backref" href="#id7" id="abstract" name="abstract">Abstract</a></h1> 83<h1><a class="toc-backref" href="#id8" id="abstract" name="abstract">Abstract</a></h1>
81<p>This GLEP describes four classes of package managers. What the requirements for 84<p>This GLEP describes four classes of package managers. What the requirements for
82them are, and what support they can receive.</p> 85them are, and what support they can receive.</p>
83</div> 86</div>
84<div class="section"> 87<div class="section">
85<h1><a class="toc-backref" href="#id8" id="motivation" name="motivation">Motivation</a></h1> 88<h1><a class="toc-backref" href="#id9" id="motivation" name="motivation">Motivation</a></h1>
86<p>To set a standard that package managers that seek gentoo project approval and 89<p>To set a standard that package managers that seek Gentoo project approval and
87support should adhere to.</p> 90support should adhere to.</p>
88</div> 91</div>
89<div class="section"> 92<div class="section">
90<h1><a class="toc-backref" href="#id9" id="rationale" name="rationale">Rationale</a></h1> 93<h1><a class="toc-backref" href="#id10" id="rationale" name="rationale">Rationale</a></h1>
91<p>Currently portage is showing its age. The code of portage does not seem to be 94<p>Currently Portage is showing its age. The code of Portage does not seem to be
92salvageable for new versions. There are two known alternative package managers 95salvageable for new versions. As of the date of publication, there are two known
93that claim a level of portage compatibility. These alternatives are <a class="reference" href="http://paludis.berlios.de/">paludis</a> <a class="footnote-reference" href="#id1" id="id2" name="id2">[1]</a> 96alternative package managers that claim a level of Portage compatibility. These
94and <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 developed further, a set of rules 97alternatives 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
95should be created to level the playing field and ensuring that decisions can be 98developed further, a set of rules should be created to level the playing field
96made clearly.</p> 99and ensuring that decisions can be made clearly.</p>
97</div> 100</div>
98<div class="section"> 101<div class="section">
99<h1><a class="toc-backref" href="#id10" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1> 102<h1><a class="toc-backref" href="#id11" id="backwards-compatibility" name="backwards-compatibility">Backwards Compatibility</a></h1>
100<p>Not a problem for this GLEP. There is no previous standard as the issue did not 103<p>Not a problem for this GLEP. There is no previous standard as the issue did not
101exist before. This GLEP is to prevent future compatibility issues.</p> 104exist before. This GLEP is to prevent future compatibility issues.</p>
102</div> 105</div>
103<div class="section"> 106<div class="section">
104<h1><a class="toc-backref" href="#id11" id="categories-of-package-managers" name="categories-of-package-managers">Categories of package managers</a></h1> 107<h1><a class="toc-backref" href="#id12" id="categories-of-package-managers" name="categories-of-package-managers">Categories of package managers</a></h1>
105<p>We distinguish four categories of package managers. While a package manager can 108<p>We distinguish four categories of package managers. While a package manager can
106transition from one category to another, it can not be in two categories at the 109transition from one category to another, it can not be in two categories at the
107same time. It can be in a state of transition though.</p> 110same time. It can be in a state of transition though.</p>
108<dl class="docutils"> 111<dl class="docutils">
109<dt><em>Primary Package Manager</em></dt> 112<dt><em>Primary Package Manager</em></dt>
110<dd>There is one primary package manager. Currently this position is held by 113<dd>There is one primary package manager. Currently this position is held by
111portage. The primary package manager is assigned by the council and all 114Portage. The primary package manager is assigned by the council and all
112packages in the official tree must be installable by a useable version of the 115packages in the official tree must be installable by a usable version of the
113primary package manager.</dd> 116primary package manager.</dd>
114<dt><em>Candidate Primary Package Managers</em></dt> 117<dt><em>Candidate Primary Package Managers</em></dt>
115<dd>A candidate Primary Package Manager does aim, or show an aim, at replacing 118<dd>A candidate Primary Package Manager does aim, or show an aim, at replacing
116the current primary package manager. At a point where the package manager is 119the current primary package manager. At a point where the package manager is
117deemed stable a decision must be made whether this package manager should 120deemed stable a decision must be made whether this package manager should
118become the new primary package manager. At that point the <a class="reference" href="#primary-package-manager-transition-phase">primary package 121become the new primary package manager. At that point the <a class="reference" href="#primary-package-manager-transition-phase">Primary package
119manager transition phase</a> starts.</dd> 122manager transition phase</a> starts.</dd>
120<dt><em>Secondary Package Managers</em></dt> 123<dt><em>Secondary Package Managers</em></dt>
121<dd><p class="first">A secondary package manager is a package manager that coexists with the 124<dd><p class="first">A secondary package manager is a package manager that coexists with the
122primary package manager, while not aiming to replace it. Package managers 125primary package manager, while not aiming to replace it. Examples of package
123that would fall into this category are:</p> 126managers that would fall into this category are:</p>
124<ul class="last simple"> 127<ul class="last simple">
125<li>Experimental package managers. Package managers whose purpose it is to try 128<li>Experimental package managers. Package managers whose purpose it is to try
126out new features.</li> 129out new features.</li>
127<li>Focussed package managers. For example a package manager that allows the 130<li>Focused package managers. For example a package manager that allows the
128use of rpm formatted binary packages would be an example.</li> 131use of RPM formatted binary packages would be an example.</li>
132<li>Alternate package managers. Package managers that aim to coexist with the
133primary package manager. They might for example offer a nicer user
134interface than the primary package manager (e.g. show a cow instead of
135compilation messages).</li>
129</ul> 136</ul>
130</dd> 137</dd>
131<dt><em>Third Party Package Managers</em></dt> 138<dt><em>Third Party Package Managers</em></dt>
132<dd>A third party package manager is any package manager that lacks recognition 139<dd>A third party package manager is any package manager that lacks recognition
133from gentoo as being in any other category. A third party package manager may 140from Gentoo as being in any other category. A third party package manager may
134or may not have a gentoo package, but is not supported beyond that.</dd> 141or may not have a Gentoo package, but is not supported beyond that.</dd>
135</dl> 142</dl>
136</div> 143</div>
137<div class="section"> 144<div class="section">
138<h1><a class="toc-backref" href="#id12" id="package-manager-requirements" name="package-manager-requirements">Package manager requirements</a></h1> 145<h1><a class="toc-backref" href="#id13" id="package-manager-requirements" name="package-manager-requirements">Package manager requirements</a></h1>
139<p>As a package manager is in a state of higher support there are higher 146<p>As a package manager is in a state of higher support there are higher
140requirements to it. The purpose of these requirements is to ensure the unity of 147requirements to it. The purpose of these requirements is to ensure the unity of
141the distribution and the package tree. For this purpose it is needed that there 148the distribution and the package tree. For this purpose it is needed that there
142is only one primary package manager.</p> 149is only one primary package manager. This is from gentoo's perspective. From a
150user perspective it is perfectly possible to use another package
151manager. Candidate primary package managers and secondary package managers are
152also supported in regards to bugs etc.</p>
143<div class="section"> 153<div class="section">
144<h2><a class="toc-backref" href="#id13" id="primary-package-manager-requirements" name="primary-package-manager-requirements">primary package manager requirements</a></h2> 154<h2><a class="toc-backref" href="#id14" id="primary-package-manager-requirements" name="primary-package-manager-requirements">Primary package manager requirements</a></h2>
145<p>The primary package manager is the package manager that sets the standards for 155<p>The primary package manager is the package manager that sets the standards for
146the tree. All ebuilds in the tree must function with the primary package 156the tree. All ebuilds in the tree must function with the primary package
147manager. As the primary package manager sets the standard it does not have to 157manager. As the primary package manager sets the standard it does not have to
148maintain compatibility with other package managers.</p> 158maintain compatibility with other package managers. This does not mean that the
159actual implementation is the standard, but that the maintainers have the ability
160to define new standards, together with the other involved gentoo projects.</p>
149<p>The primary package manager does however have the responsibility that it must be 161<p>The primary package manager does however have the responsibility that it must be
150very stable. The primary package manager must maintain compatibility with old 162very stable. The primary package manager must maintain compatibility with old
151versions of itself for extended periods of time. This compatibilty time is set 163versions of itself for extended periods of time. This compatibility time is set
152by the council. The suggested time would be one year from the point that there 164by the council. The suggested time would be one year from the point that there
153is a compatible stable version for all supported architectures.</p> 165is a compatible stable version for all supported architectures.</p>
154<p>Another compatibilty requirement for the primary package manager is a limited 166<p>Another compatibility requirement for the primary package manager is a limited
155forward compatibility. It must always be possible to transition from the 167forward compatibility. It must always be possible to transition from the
156unstable version of the primary package manager to a stable version. This may be 168unstable version of the primary package manager to a stable version. This may be
157done either by first introducing reading compatibility for a new format and only 169done either by first introducing reading compatibility for a new format and only
158having write support later. Another way would be the provision of a conversion 170having write support later. Another way would be the provision of a conversion
159tool that ensures that the on disk information maintained by the package manager 171tool that ensures that the on disk information maintained by the package manager
160is supported by the stable package manager.</p> 172is supported by the stable package manager.</p>
173<p>The primary package manager maintainers further have the responsibility to allow
174competition. This means that reasonable patches from the maintainers of
175secondary or candidate primary package managers must be applied, given that
176these patches are as independent of that package manager as possible.</p>
161<p>The primary package manager is maintained on official gentoo infrastructure, 177<p>The primary package manager is maintained on official Gentoo infrastructure,
162under control of gentoo developers.</p> 178under control of Gentoo developers.</p>
163</div> 179</div>
164<div class="section"> 180<div class="section">
165<h2><a class="toc-backref" href="#id14" id="candidate-primary-package-manager-requirements" name="candidate-primary-package-manager-requirements">candidate primary package manager requirements</a></h2> 181<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>
166<p>A candidate primary package manager aims to replace the primary package 182<p>A candidate primary package manager aims to replace the primary package
167manager. The council is responsible for deciding whether this is done. The 183manager. The council is responsible for deciding whether this is done. The
168requirements are there to ensure that it is actually possible to transition a 184requirements are there to ensure that it is actually possible to transition a
169candidate primary package manager into the primary package manager.</p> 185candidate primary package manager into the primary package manager.</p>
170<p>First of all, there must exist a transition path. This means that the on disk 186<p>First of all, there must exist a transition path. This means that the on disk
171data of the primary package manager can be used by (or converted to a format 187data of the primary package manager can be used by (or converted to a format
172usable by) the candidate primary package manager.</p> 188usable by) the candidate primary package manager.</p>
173<p>Second, there must be a test path. It must be possible for the developers to 189<p>Second, there must be a test path. It must be possible for the developers to
174test out the candidate primary package manager on their working systems. This 190test out the candidate primary package manager on their working systems. This
175means that the transition path must exist. This also means that there are no 191means that the transition path must exist. This also means that there are no
176serious obstacles for reverting to the current primary package manager.</p> 192serious obstacles for reverting to the current primary package manager. This
193reverting must also be usable when it is decided that the candidate will not
194become primary package manager, for example because serious design flaws or bugs
195were found. Ideally, the Candidate Primary Package Manager and the Primary
196Package Manager can be installed simultaneously. If not, clear instructions must
197be provided for both ways of transitioning.</p>
177<p>Third, there must exist an ebuild test path. It must be possible for package 198<p>Third, there must exist an ebuild test path. It must be possible for package
178managers to test ebuilds in one tree for both the primary as well as the 199managers to test ebuilds in one tree for both the primary as well as the
179candidate primary package manager. It is not an issue if this requires a special 200candidate primary package manager. It is not an issue if this requires a special
180mode for the candidate primary package manager. It is not an issue either if 201mode for the candidate primary package manager. It is not an issue either if
181compatibilty can be achieved by unmerging the package in the candidate primary 202compatibility can be achieved by having the candidate primary package manager
182package manager.</p> 203unmerge the package.</p>
183<p>Fourth, there must be support. This means that the package manager is actively 204<p>Fourth, there must be support. This means that the package manager is actively
184maintained under control of gentoo. If it is not maintained on gentoo 205maintained under control of Gentoo. If it is not maintained on Gentoo
185infrastructure, the means must be there to move the package manager, with its 206infrastructure, the means must be there to move the package manager, with its
186change history, to gentoo infrastructure. This means that it must be maintained 207change history, to Gentoo infrastructure. This means that it must be maintained
187on a gentoo supported versioning system, or on a version system whose history 208on a Gentoo supported versioning system, or on a version system whose history
188can be converted to a gentoo supported versioning system.</p> 209can be converted to a Gentoo supported versioning system.</p>
210<p>Fifth, release capabilities. There must exist automated tools that use the
211candidate primary package manager to create release media that have similar
212capabilities as those released using the old primary package manager. The exact
213requirements are determined by the Release Engineering project, but should not
214be significantly beyond what is currently implemented using the primary package
215manager.</p>
189</div> 216</div>
190<div class="section"> 217<div class="section">
191<h2><a class="toc-backref" href="#id15" id="secondary-package-manager-requirements" name="secondary-package-manager-requirements">secondary package manager requirements</a></h2> 218<h2><a class="toc-backref" href="#id16" id="secondary-package-manager-requirements" name="secondary-package-manager-requirements">Secondary package manager requirements</a></h2>
192<p>A secondary package manager is a package manager that instead of directly aiming 219<p>A secondary package manager is a package manager that instead of directly aiming
220at replacing the current primary package manager as primary package manager aims
193at replacing portage as primary package manager. As such a secondary package 221to cooperate with the primary package manager. As such a secondary package
194manager does not set the standard on the tree, but follows the standard set by 222manager does not set the standard on the tree, but follows the standard set by
195the primary package manager.</p> 223the primary package manager.</p>
196<p>There are two kinds of secondary package managers. The first kind is formed by 224<p>There are two kinds of secondary package managers. The first kind is formed by
197those that do not maintain their own installed package database, but work with 225those that do not maintain their own installed package database, but work with
198the package database of the primary package manager. While these package 226the package database of the primary package manager. While these package
200remain compatible with the primary package managers. Verification, reference, 228remain compatible with the primary package managers. Verification, reference,
201and deinstallation by the primary package manager must remain functional.</p> 229and deinstallation by the primary package manager must remain functional.</p>
202<p>The second kind is formed by those package managers that maintain their own 230<p>The second kind is formed by those package managers that maintain their own
203package database, or a package database incompatible with the primary package 231package database, or a package database incompatible with the primary package
204manager. To ensure the secondary role of these package managers the support in 232manager. To ensure the secondary role of these package managers the support in
205the tree for these package manager is provided along with restrictions.</p> 233the tree for these package managers is provided along with restrictions.</p>
206<p>The first restriction is that no packages in the tree must rely on the secondary 234<p>The first restriction is that no packages in the tree must rely on the secondary
207package manager. While packages may provide a level of support (while being 235package manager. While packages may provide a level of support (while being
208compatible with the primary package manager) this may not result in a 236compatible with the primary package manager) this may not result in a
209significant increase of features. If this were allowed, this would mean that 237significant increase of features. If this were allowed, this would mean that
210while they technically work with the primary package manager, there would be 238while they technically work with the primary package manager, there would be
211significant incentive to use the secondary package manager. As the use of this 239significant incentive to use the secondary package manager. As the use of this
212secondary package manager disallows the paralel use of the primary package 240secondary package manager disallows the parallel use of the primary package
213manager, this would result in users using the secondary package manager as their 241manager, this would result in users using the secondary package manager as their
214primary package manager.</p> 242primary package manager.</p>
215<p>Users are allowed to make their own choices. However by making the tree favor a 243<p>Users are allowed to make their own choices. However by making the tree favour a
216package manager that is not the primary package manager, this will lead to the 244package manager that is not the primary package manager, this will lead to the
217secondary package manager becomming the effective primary package manager. As 245secondary package manager becoming the effective primary package manager. As
218this will be a decision by default instead of a concious choice by the council, 246this will be a decision by default instead of a conscious choice by the council,
219this is an undesirable result.</p> 247this is an undesirable result.</p>
220<p>There is one exclusion for the restriction of packages that only work with or 248<p>There is one exclusion for the restriction of packages that only work with or
221have significant improvements with the secondary package manager. That is 249have significant improvements with the secondary package manager. That is
222packages that by their nature are only usable with this secondary package 250packages that by their nature are only usable with this secondary package
223manager. An example would be a graphical frontend to the secondary package 251manager. An example would be a graphical front-end to the secondary package
224manager.</p> 252manager.</p>
225<p>If a secondary package manager works along the primary package manager, but by 253<p>If a secondary package manager works along the primary package manager, but by
226itself does not have the capabilities of becoming a primary package manager the 254itself does not have the capabilities of becoming a primary package manager the
227risks of choice by default are lower. As a result, the council could choose to 255risks of choice by default are lower. As a result, the council could choose to
228allow the inclusion of packages that work only or significantly better with this 256allow the inclusion of packages that work only or significantly better with this
232wrapper scripts for those packages that are only provided in the RPM 260wrapper scripts for those packages that are only provided in the RPM
233format. Such a decision does imply that the maintainers of the primary package 261format. Such a decision does imply that the maintainers of the primary package
234manager must take this secondary package manager into account.</p> 262manager must take this secondary package manager into account.</p>
235</div> 263</div>
236<div class="section"> 264<div class="section">
237<h2><a class="toc-backref" href="#id16" id="third-party-package-manager-requirements" name="third-party-package-manager-requirements">third party package manager requirements</a></h2> 265<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>
238<p>A third party package manager is just that. It is a package manager without any 266<p>A third party package manager is just that. It is a package manager without any
239support within gentoo. As there is no control by gentoo over the package manager 267support within Gentoo. As there is no control by Gentoo over the package manager
240this means that there are no requirements on the package manager.</p> 268this means that there are no requirements on the package manager.</p>
241<p>This complete lack of control however also translates to the fact that gentoo 269<p>This complete lack of control however also translates to the fact that Gentoo
242can not make package manager specific changes to support this package 270can not make package manager specific changes to support this package
243manager. Package manager specific means that it is possible to request changes 271manager. Package manager specific means that it is possible to request changes
244that make the tree more independent of the primary package manager. These 272that make the tree more independent of the primary package manager. These
245changes must however be agnostic of the package manager, and only make it easier 273changes must however be agnostic of the package manager, and only make it easier
246to have alternative package managers.</p> 274to have alternative package managers.</p>
247</div> 275</div>
248</div> 276</div>
249<div class="section"> 277<div class="section">
250<h1><a class="toc-backref" href="#id17" id="transition-phases" name="transition-phases">transition phases</a></h1> 278<h1><a class="toc-backref" href="#id18" id="transition-phases" name="transition-phases">Transition phases</a></h1>
251<div class="section"> 279<div class="section">
252<h2><a class="toc-backref" href="#id18" id="primary-package-manager-transition-phase" name="primary-package-manager-transition-phase">primary package manager transition phase</a></h2> 280<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>
253<p>A candidate primary package manager can be chosen to become primary package 281<p>A candidate primary package manager can be chosen to become primary package
254manager. This can only happen by council decision. This decision can only be 282manager. This can only happen by council decision. This decision can only be
255made when the candiate primary package manager is stable on all stable 283made when the candidate primary package manager is stable on all stable
256architectures. (all architectures except experimental ones).</p> 284architectures. (all architectures except experimental ones). There is a
285incubation period of at least 3 months before a candidate primary package
286manager can become the primary package manager.</p>
257<p>After the decision has been made to replace the primary package manager, the 287<p>After the decision has been made to replace the primary package manager, the
258transition phase starts. The use of the old stable package manager must remain 288transition phase starts. The use of the old stable package manager must remain
259supported for a period of 6 months. This means that core packages must be 289supported for a period of 6 months. This means that core packages must be
260installable by this package manager. Further the possibility to convert the 290installable by this package manager. Further the possibility to convert the
261system automatically to the new primary package manager must be available for at 291system automatically to the new primary package manager must be available for at
265features of the new primary package manager. While backward compatibility with 295features of the new primary package manager. While backward compatibility with
266the previous primary package manager must be maintained a forward compatibility 296the previous primary package manager must be maintained a forward compatibility
267is no longer needed.</p> 297is no longer needed.</p>
268</div> 298</div>
269<div class="section"> 299<div class="section">
270<h2><a class="toc-backref" href="#id19" 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> 300<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>
271<p>The transition from secondary package manager to candidate primary package 301<p>The transition from secondary package manager to candidate primary package
272manager is straightforward. The secondary package manager must satisfy all 302manager is straightforward. The secondary package manager must satisfy all
273requirements for a candidate primary package manager. At that point its 303requirements for a candidate primary package manager. At that point its
274maintainers can announce that they are changing the status to candidate primary 304maintainers can announce that they are changing the status to candidate primary
275package manager. This allows a greater support from gentoo in achieving that 305package manager. This allows a greater support from Gentoo in achieving that
276goal.</p> 306goal.</p>
277</div> 307</div>
278<div class="section"> 308<div class="section">
279<h2><a class="toc-backref" href="#id20" id="third-party-to-other-transition" name="third-party-to-other-transition">Third party to other transition</a></h2> 309<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>
280<p>When a third party package manager wants to transition into one of the other 310<p>When a third party package manager wants to transition into one of the other
281categories (except primary package manager) it must satisfy all requirements for 311categories (except primary package manager) it must satisfy all requirements for
282that category.</p> 312that category.</p>
283</div> 313</div>
284</div> 314</div>
285<div class="section"> 315<div class="section">
286<h1><a class="toc-backref" href="#id21" id="references" name="references">References</a></h1> 316<h1><a class="toc-backref" href="#id22" id="references" name="references">References</a></h1>
287<table class="docutils footnote" frame="void" id="id1" rules="none"> 317<table class="docutils footnote" frame="void" id="id1" rules="none">
288<colgroup><col class="label" /><col /></colgroup> 318<colgroup><col class="label" /><col /></colgroup>
289<tbody valign="top"> 319<tbody valign="top">
290<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> 320<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>
291</tbody> 321</tbody>
302<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> 332<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>
303</tbody> 333</tbody>
304</table> 334</table>
305</div> 335</div>
306<div class="section"> 336<div class="section">
307<h1><a class="toc-backref" href="#id22" id="copyright" name="copyright">Copyright</a></h1> 337<h1><a class="toc-backref" href="#id23" id="copyright" name="copyright">Copyright</a></h1>
308<p>This document is copyright 2006 by Paul de Vrieze and licensed under the 338<p>This document is copyright 2006 by Paul de Vrieze and licensed under the
309<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> 339<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>
310</div> 340</div>
311 341
312</div> 342</div>
313<div class="footer"> 343<div class="footer">
314<hr class="footer" /> 344<hr class="footer" />
315<a class="reference" href="glep-0049.txt">View document source</a>. 345<a class="reference" href="glep-0049.txt">View document source</a>.
316Generated on: 2006-05-20 12:50 UTC. 346Generated on: 2007-10-13 13:39 UTC.
317Generated 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. 347Generated 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.
318 348
319</div> 349</div>
320</body> 350</body>
321</html> 351</html>

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.7

  ViewVC Help
Powered by ViewVC 1.1.20