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

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

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

Revision 1.1 Revision 1.2
1GLEP: 49 1GLEP: 49
2Title: Alternative Package Manager requirements 2Title: Alternative Package Manager requirements
3Version: $Revision: 1.1 $ 3Version: $Revision: 1.2 $
4Last-Modified: $Date: 2006/05/20 12:51:08 $ 4Last-Modified: $Date: 2006/05/20 14:22:15 $
5Author: Paul de Vrieze <pauldv@gentoo.org>, 5Author: Paul de Vrieze <pauldv@gentoo.org>,
6Status: Draft 6Status: Draft
7Type: Standards Track 7Type: Standards Track
8Content-Type: text/x-rst 8Content-Type: text/x-rst
9Created: 18-May-2006 9Created: 18-May-2006
10Post-History: 20-May-2006 10Post-History: 19-May-2006
11 11
12 12
13Abstract 13Abstract
14======== 14========
15 15
18 18
19 19
20Motivation 20Motivation
21========== 21==========
22 22
23To set a standard that package managers that seek gentoo project approval and 23To set a standard that package managers that seek Gentoo project approval and
24support should adhere to. 24support should adhere to.
25 25
26 26
27Rationale 27Rationale
28========= 28=========
29 29
30Currently portage is showing its age. The code of portage does not seem to be 30Currently Portage is showing its age. The code of Portage does not seem to be
31salvageable for new versions. There are two known alternative package managers 31salvageable for new versions. As of the date of publication, there are two known
32that claim a level of portage compatibility. These alternatives are `paludis`_ 32alternative package managers that claim a level of Portage compatibility. These
33and `pkgcore`_. Before these alternatives are developed further, a set of rules 33alternatives are `paludis`_ and `pkgcore`_. Before these alternatives are
34should be created to level the playing field and ensuring that decisions can be 34developed further, a set of rules should be created to level the playing field
35made clearly. 35and ensuring that decisions can be made clearly.
36 36
37 37
38Backwards Compatibility 38Backwards Compatibility
39======================= 39=======================
40 40
49transition from one category to another, it can not be in two categories at the 49transition from one category to another, it can not be in two categories at the
50same time. It can be in a state of transition though. 50same time. It can be in a state of transition though.
51 51
52*Primary Package Manager* 52*Primary Package Manager*
53 There is one primary package manager. Currently this position is held by 53 There is one primary package manager. Currently this position is held by
54 portage. The primary package manager is assigned by the council and all 54 Portage. The primary package manager is assigned by the council and all
55 packages in the official tree must be installable by a useable version of the 55 packages in the official tree must be installable by a usable version of the
56 primary package manager. 56 primary package manager.
57 57
58*Candidate Primary Package Managers* 58*Candidate Primary Package Managers*
59 A candidate Primary Package Manager does aim, or show an aim, at replacing 59 A candidate Primary Package Manager does aim, or show an aim, at replacing
60 the current primary package manager. At a point where the package manager is 60 the current primary package manager. At a point where the package manager is
61 deemed stable a decision must be made whether this package manager should 61 deemed stable a decision must be made whether this package manager should
62 become the new primary package manager. At that point the `primary package 62 become the new primary package manager. At that point the `Primary package
63 manager transition phase`_ starts. 63 manager transition phase`_ starts.
64 64
65*Secondary Package Managers* 65*Secondary Package Managers*
66 A secondary package manager is a package manager that coexists with the 66 A secondary package manager is a package manager that coexists with the
67 primary package manager, while not aiming to replace it. Package managers 67 primary package manager, while not aiming to replace it. Examples of package
68 that would fall into this category are: 68 managers that would fall into this category are:
69 69
70 - Experimental package managers. Package managers whose purpose it is to try 70 - Experimental package managers. Package managers whose purpose it is to try
71 out new features. 71 out new features.
72 72
73 - Focussed package managers. For example a package manager that allows the 73 - Focused package managers. For example a package manager that allows the
74 use of rpm formatted binary packages would be an example. 74 use of RPM formatted binary packages would be an example.
75
76 - Alternate package managers. Package managers that aim to coexist with the
77 primary package manager. They might for example offer a nicer user
78 interface than the primary package manager (e.g. show a cow instead of
79 compilation messages).
75 80
76 81
77*Third Party Package Managers* 82*Third Party Package Managers*
78 A third party package manager is any package manager that lacks recognition 83 A third party package manager is any package manager that lacks recognition
79 from gentoo as being in any other category. A third party package manager may 84 from Gentoo as being in any other category. A third party package manager may
80 or may not have a gentoo package, but is not supported beyond that. 85 or may not have a Gentoo package, but is not supported beyond that.
81 86
82 87
83Package manager requirements 88Package manager requirements
84============================ 89============================
85 90
87requirements to it. The purpose of these requirements is to ensure the unity of 92requirements to it. The purpose of these requirements is to ensure the unity of
88the distribution and the package tree. For this purpose it is needed that there 93the distribution and the package tree. For this purpose it is needed that there
89is only one primary package manager. 94is only one primary package manager.
90 95
91 96
92primary package manager requirements 97Primary package manager requirements
93------------------------------------ 98------------------------------------
94 99
95The primary package manager is the package manager that sets the standards for 100The primary package manager is the package manager that sets the standards for
96the tree. All ebuilds in the tree must function with the primary package 101the tree. All ebuilds in the tree must function with the primary package
97manager. As the primary package manager sets the standard it does not have to 102manager. As the primary package manager sets the standard it does not have to
98maintain compatibility with other package managers. 103maintain compatibility with other package managers.
99 104
100The primary package manager does however have the responsibility that it must be 105The primary package manager does however have the responsibility that it must be
101very stable. The primary package manager must maintain compatibility with old 106very stable. The primary package manager must maintain compatibility with old
102versions of itself for extended periods of time. This compatibilty time is set 107versions of itself for extended periods of time. This compatibility time is set
103by the council. The suggested time would be one year from the point that there 108by the council. The suggested time would be one year from the point that there
104is a compatible stable version for all supported architectures. 109is a compatible stable version for all supported architectures.
105 110
106Another compatibilty requirement for the primary package manager is a limited 111Another compatibility requirement for the primary package manager is a limited
107forward compatibility. It must always be possible to transition from the 112forward compatibility. It must always be possible to transition from the
108unstable version of the primary package manager to a stable version. This may be 113unstable version of the primary package manager to a stable version. This may be
109done either by first introducing reading compatibility for a new format and only 114done either by first introducing reading compatibility for a new format and only
110having write support later. Another way would be the provision of a conversion 115having write support later. Another way would be the provision of a conversion
111tool that ensures that the on disk information maintained by the package manager 116tool that ensures that the on disk information maintained by the package manager
112is supported by the stable package manager. 117is supported by the stable package manager.
113 118
114The primary package manager is maintained on official gentoo infrastructure, 119The primary package manager is maintained on official Gentoo infrastructure,
115under control of gentoo developers. 120under control of Gentoo developers.
116 121
117 122
118candidate primary package manager requirements 123Candidate primary package manager requirements
119------------------------------------------------ 124------------------------------------------------
120 125
121A candidate primary package manager aims to replace the primary package 126A candidate primary package manager aims to replace the primary package
122manager. The council is responsible for deciding whether this is done. The 127manager. The council is responsible for deciding whether this is done. The
123requirements are there to ensure that it is actually possible to transition a 128requirements are there to ensure that it is actually possible to transition a
128usable by) the candidate primary package manager. 133usable by) the candidate primary package manager.
129 134
130Second, there must be a test path. It must be possible for the developers to 135Second, there must be a test path. It must be possible for the developers to
131test out the candidate primary package manager on their working systems. This 136test out the candidate primary package manager on their working systems. This
132means that the transition path must exist. This also means that there are no 137means that the transition path must exist. This also means that there are no
133serious obstacles for reverting to the current primary package manager. 138serious obstacles for reverting to the current primary package manager. This
139reverting must also be usable when it is decided that the candidate will not
140become primary package manager, for example because serious design flaws or bugs
141were found. Ideally, the Candidate Primary Package Manager and the Primary
142Package Manager can be installed simultaneously. If not, clear instructions must
143be provided for both ways of transitioning.
134 144
135Third, there must exist an ebuild test path. It must be possible for package 145Third, there must exist an ebuild test path. It must be possible for package
136managers to test ebuilds in one tree for both the primary as well as the 146managers to test ebuilds in one tree for both the primary as well as the
137candidate primary package manager. It is not an issue if this requires a special 147candidate primary package manager. It is not an issue if this requires a special
138mode for the candidate primary package manager. It is not an issue either if 148mode for the candidate primary package manager. It is not an issue either if
139compatibilty can be achieved by unmerging the package in the candidate primary 149compatibility can be achieved by having the candidate primary package manager
140package manager. 150unmerge the package.
141 151
142Fourth, there must be support. This means that the package manager is actively 152Fourth, there must be support. This means that the package manager is actively
143maintained under control of gentoo. If it is not maintained on gentoo 153maintained under control of Gentoo. If it is not maintained on Gentoo
144infrastructure, the means must be there to move the package manager, with its 154infrastructure, the means must be there to move the package manager, with its
145change history, to gentoo infrastructure. This means that it must be maintained 155change history, to Gentoo infrastructure. This means that it must be maintained
146on a gentoo supported versioning system, or on a version system whose history 156on a Gentoo supported versioning system, or on a version system whose history
147can be converted to a gentoo supported versioning system. 157can be converted to a Gentoo supported versioning system.
148 158
159Fifth, release capabilities. There must exist automated tools that use the
160candidate primary package manager to create release media that have similar
161capabilities as those released using the old primary package manager. The exact
162requirements are determined by the Release Engineering project, but should not
163be significantly beyond what is currently implemented using the primary package
164manager.
149 165
166
150secondary package manager requirements 167Secondary package manager requirements
151-------------------------------------- 168--------------------------------------
152 169
153A secondary package manager is a package manager that instead of directly aiming 170A secondary package manager is a package manager that instead of directly aiming
171at replacing the current primary package manager as primary package manager aims
154at replacing portage as primary package manager. As such a secondary package 172to cooperate with the primary package manager. As such a secondary package
155manager does not set the standard on the tree, but follows the standard set by 173manager does not set the standard on the tree, but follows the standard set by
156the primary package manager. 174the primary package manager.
157 175
158There are two kinds of secondary package managers. The first kind is formed by 176There are two kinds of secondary package managers. The first kind is formed by
159those that do not maintain their own installed package database, but work with 177those that do not maintain their own installed package database, but work with
168the tree for these package manager is provided along with restrictions. 186the tree for these package manager is provided along with restrictions.
169 187
170The first restriction is that no packages in the tree must rely on the secondary 188The first restriction is that no packages in the tree must rely on the secondary
171package manager. While packages may provide a level of support (while being 189package manager. While packages may provide a level of support (while being
172compatible with the primary package manager) this may not result in a 190compatible with the primary package manager) this may not result in a
173significant increase of features. If this were allowed, this would mean that 191significant increase of features. If this were allowed, this would mean that
174while they technically work with the primary package manager, there would be 192while they technically work with the primary package manager, there would be
175significant incentive to use the secondary package manager. As the use of this 193significant incentive to use the secondary package manager. As the use of this
176secondary package manager disallows the paralel use of the primary package 194secondary package manager disallows the parallel use of the primary package
177manager, this would result in users using the secondary package manager as their 195manager, this would result in users using the secondary package manager as their
178primary package manager. 196primary package manager.
179 197
180Users are allowed to make their own choices. However by making the tree favor a 198Users are allowed to make their own choices. However by making the tree favour a
181package manager that is not the primary package manager, this will lead to the 199package manager that is not the primary package manager, this will lead to the
182secondary package manager becomming the effective primary package manager. As 200secondary package manager becoming the effective primary package manager. As
183this will be a decision by default instead of a concious choice by the council, 201this will be a decision by default instead of a conscious choice by the council,
184this is an undesirable result. 202this is an undesirable result.
185 203
186There is one exclusion for the restriction of packages that only work with or 204There is one exclusion for the restriction of packages that only work with or
187have significant improvements with the secondary package manager. That is 205have significant improvements with the secondary package manager. That is
188packages that by their nature are only usable with this secondary package 206packages that by their nature are only usable with this secondary package
189manager. An example would be a graphical frontend to the secondary package 207manager. An example would be a graphical front-end to the secondary package
190manager. 208manager.
191 209
192If a secondary package manager works along the primary package manager, but by 210If a secondary package manager works along the primary package manager, but by
193itself does not have the capabilities of becoming a primary package manager the 211itself does not have the capabilities of becoming a primary package manager the
194risks of choice by default are lower. As a result, the council could choose to 212risks of choice by default are lower. As a result, the council could choose to
199wrapper scripts for those packages that are only provided in the RPM 217wrapper scripts for those packages that are only provided in the RPM
200format. Such a decision does imply that the maintainers of the primary package 218format. Such a decision does imply that the maintainers of the primary package
201manager must take this secondary package manager into account. 219manager must take this secondary package manager into account.
202 220
203 221
204third party package manager requirements 222Third party package manager requirements
205---------------------------------------- 223----------------------------------------
206 224
207A third party package manager is just that. It is a package manager without any 225A third party package manager is just that. It is a package manager without any
208support within gentoo. As there is no control by gentoo over the package manager 226support within Gentoo. As there is no control by Gentoo over the package manager
209this means that there are no requirements on the package manager. 227this means that there are no requirements on the package manager.
210 228
211This complete lack of control however also translates to the fact that gentoo 229This complete lack of control however also translates to the fact that Gentoo
212can not make package manager specific changes to support this package 230can not make package manager specific changes to support this package
213manager. Package manager specific means that it is possible to request changes 231manager. Package manager specific means that it is possible to request changes
214that make the tree more independent of the primary package manager. These 232that make the tree more independent of the primary package manager. These
215changes must however be agnostic of the package manager, and only make it easier 233changes must however be agnostic of the package manager, and only make it easier
216to have alternative package managers. 234to have alternative package managers.
217 235
218 236
219transition phases 237Transition phases
220================= 238=================
221 239
222primary package manager transition phase 240Primary package manager transition phase
223---------------------------------------- 241----------------------------------------
224 242
225A candidate primary package manager can be chosen to become primary package 243A candidate primary package manager can be chosen to become primary package
226manager. This can only happen by council decision. This decision can only be 244manager. This can only happen by council decision. This decision can only be
227made when the candiate primary package manager is stable on all stable 245made when the candidate primary package manager is stable on all stable
228architectures. (all architectures except experimental ones). 246architectures. (all architectures except experimental ones).
229 247
230After the decision has been made to replace the primary package manager, the 248After the decision has been made to replace the primary package manager, the
231transition phase starts. The use of the old stable package manager must remain 249transition phase starts. The use of the old stable package manager must remain
232supported for a period of 6 months. This means that core packages must be 250supported for a period of 6 months. This means that core packages must be
246 264
247The transition from secondary package manager to candidate primary package 265The transition from secondary package manager to candidate primary package
248manager is straightforward. The secondary package manager must satisfy all 266manager is straightforward. The secondary package manager must satisfy all
249requirements for a candidate primary package manager. At that point its 267requirements for a candidate primary package manager. At that point its
250maintainers can announce that they are changing the status to candidate primary 268maintainers can announce that they are changing the status to candidate primary
251package manager. This allows a greater support from gentoo in achieving that 269package manager. This allows a greater support from Gentoo in achieving that
252goal. 270goal.
253 271
254 272
255Third party to other transition 273Third party to other transition
256------------------------------- 274-------------------------------

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

  ViewVC Help
Powered by ViewVC 1.1.20