1 |
Paul de Vrieze wrote: |
2 |
> The promissed glep on package manager requirements. Please comment on it. |
3 |
> There are some parts that may be controversial (portage has in the past not |
4 |
> provided support for reverting to stable either), but please keep the |
5 |
> discussion on topic. |
6 |
> |
7 |
> Paul |
8 |
> |
9 |
> |
10 |
|
11 |
s/primary/official/g |
12 |
|
13 |
This primary business is silly IMHO. GCC is Gentoo's official compiler, |
14 |
baselayout is the "official" init system, etc... |
15 |
|
16 |
There is precedent here, and you are ignoring it. |
17 |
|
18 |
Basically this whole GLEP is a reactive farse. I realize thats not your |
19 |
intention, you seriously want a defined manner in which many package |
20 |
managers can live. However reading the GLEP it seems to be built |
21 |
completely against Paludis; stacking the deck as it were. However I |
22 |
left other comments below ;) |
23 |
|
24 |
|
25 |
|
26 |
> |
27 |
> ------------------------------------------------------------------------ |
28 |
> |
29 |
> [Gentoo] <http://www.gentoo.org/> [*Gentoo Linux Home |
30 |
> <http://www.gentoo.org/>*] [*GLEP Index |
31 |
> <http://www.gentoo.org/proj/en/glep>*] [*GLEP Source |
32 |
> <http://www.gentoo.org/proj/en/glep/glep-0049.txt>*] |
33 |
> |
34 |
> GLEP: 49 |
35 |
> Title: Alternative Package Manager requirements |
36 |
> Version: 2214 |
37 |
> Last-Modified: 2006-05-20 14:51:41 +0200 (Sat, 20 May 2006) |
38 |
> <http://www.gentoo.org/cgi-bin/viewcvs.cgi/xml/htdocs/proj/en/glep/glep-0049.txt?cvsroot=gentoo> |
39 |
> |
40 |
> Author: Paul de Vrieze <pauldv at gentoo.org>, |
41 |
> Status: Draft |
42 |
> Type: Standards Track |
43 |
> Content-Type: text/x-rst <glep-0002.html> |
44 |
> Created: 18-May-2006 |
45 |
> Post-History: 19-May-2006 |
46 |
> |
47 |
> ------------------------------------------------------------------------ |
48 |
> |
49 |
> Contents |
50 |
> |
51 |
> * Abstract <#abstract> |
52 |
> * Motivation <#motivation> |
53 |
> * Rationale <#rationale> |
54 |
> * Backwards Compatibility <#backwards-compatibility> |
55 |
> * Categories of package managers <#categories-of-package-managers> |
56 |
> * Package manager requirements <#package-manager-requirements> |
57 |
> o primary package manager requirements |
58 |
> <#primary-package-manager-requirements> |
59 |
> o candidate primary package manager requirements |
60 |
> <#candidate-primary-package-manager-requirements> |
61 |
> o secondary package manager requirements |
62 |
> <#secondary-package-manager-requirements> |
63 |
> o third party package manager requirements |
64 |
> <#third-party-package-manager-requirements> |
65 |
> * transition phases <#transition-phases> |
66 |
> o primary package manager transition phase |
67 |
> <#primary-package-manager-transition-phase> |
68 |
> o Secondary package manager to candidate primary package |
69 |
> manager transition |
70 |
> <#secondary-package-manager-to-candidate-primary-package-manager-transition> |
71 |
> o Third party to other transition |
72 |
> <#third-party-to-other-transition> |
73 |
> * References <#references> |
74 |
> * Copyright <#copyright> |
75 |
> |
76 |
> |
77 |
> Abstract <#id7> |
78 |
> |
79 |
> This GLEP describes four classes of package managers. What the |
80 |
> requirements for them are, and what support they can receive. |
81 |
> |
82 |
> |
83 |
> Motivation <#id8> |
84 |
> |
85 |
> To set a standard that package managers that seek gentoo project |
86 |
> approval and support should adhere to. |
87 |
> |
88 |
> |
89 |
> Rationale <#id9> |
90 |
> |
91 |
> Currently portage is showing its age. The code of portage does not seem |
92 |
> to be salvageable for new versions. There are two known alternative |
93 |
> package managers that claim a level of portage compatibility. These |
94 |
> alternatives are paludis <http://paludis.berlios.de/> [1] <#id1> and |
95 |
> pkgcore <http://gentooexperimental.org/~ferringb/bzr/pkgcore/> [2] |
96 |
> <#id3>. Before these alternatives are developed further, a set of rules |
97 |
> should be created to level the playing field and ensuring that decisions |
98 |
> can be made clearly. |
99 |
> |
100 |
> |
101 |
> Backwards Compatibility <#id10> |
102 |
> |
103 |
> Not a problem for this GLEP. There is no previous standard as the issue |
104 |
> did not exist before. This GLEP is to prevent future compatibility issues. |
105 |
> |
106 |
> |
107 |
If there is Official and 'everything else" I think this whole section |
108 |
can be dropped. |
109 |
|
110 |
> Categories of package managers <#id11> |
111 |
> |
112 |
> We distinguish four categories of package managers. While a package |
113 |
> manager can transition from one category to another, it can not be in |
114 |
> two categories at the same time. It can be in a state of transition though. |
115 |
> |
116 |
> /Primary Package Manager/ |
117 |
> There is one primary package manager. Currently this position is |
118 |
> held by portage. The primary package manager is assigned by the |
119 |
> council and all packages in the official tree must be installable by |
120 |
> a useable version of the primary package manager. |
121 |
> /Candidate Primary Package Managers/ |
122 |
> A candidate Primary Package Manager does aim, or show an aim, at |
123 |
> replacing the current primary package manager. At a point where the |
124 |
> package manager is deemed stable a decision must be made whether |
125 |
> this package manager should become the new primary package manager. |
126 |
> At that point the primary package manager transition phase |
127 |
> <#primary-package-manager-transition-phase> starts. |
128 |
> /Secondary Package Managers/ |
129 |
> |
130 |
> A secondary package manager is a package manager that coexists with |
131 |
> the primary package manager, while not aiming to replace it. Package |
132 |
> managers that would fall into this category are: |
133 |
> |
134 |
> * Experimental package managers. Package managers whose purpose |
135 |
> it is to try out new features. |
136 |
> * Focussed package managers. For example a package manager that |
137 |
> allows the use of rpm formatted binary packages would be an |
138 |
> example. |
139 |
> |
140 |
> /Third Party Package Managers/ |
141 |
> A third party package manager is any package manager that lacks |
142 |
> recognition from gentoo as being in any other category. A third |
143 |
> party package manager may or may not have a gentoo package, but is |
144 |
> not supported beyond that. |
145 |
> |
146 |
> |
147 |
> Package manager requirements <#id12> |
148 |
> |
149 |
> As a package manager is in a state of higher support there are higher |
150 |
> requirements to it. The purpose of these requirements is to ensure the |
151 |
> unity of the distribution and the package tree. For this purpose it is |
152 |
> needed that there is only one primary package manager. |
153 |
|
154 |
One official package manager, but many can be used. |
155 |
|
156 |
> |
157 |
> |
158 |
> primary package manager requirements <#id13> |
159 |
> |
160 |
> The primary package manager is the package manager that sets the |
161 |
> standards for the tree. All ebuilds in the tree must function with the |
162 |
> primary package manager. As the primary package manager sets the |
163 |
> standard it does not have to maintain compatibility with other package |
164 |
> managers. |
165 |
|
166 |
This outlook inhibits innovation in the tree. I agree with stephen, in |
167 |
that the tree should set the standard. If you want a new feature in the |
168 |
tree, I think a proposal would be good ( not a GLEP necessarily, but a |
169 |
tree proposal ). I think crap goes in that is not discussed in advance... |
170 |
|
171 |
One could say, the official package manager sets the standard such that |
172 |
someone needs to have support in the package manager for it to operate |
173 |
properly. |
174 |
|
175 |
However in many industries you find the opposite. First a standard is |
176 |
set, then a prototype (reference board, whathaveyou) is created, then it |
177 |
is released for companies to use. Here you want the opposite. The |
178 |
feature as an idea is created, portage implements it, then the other |
179 |
package managers copy it? Sounds silly ;) |
180 |
> |
181 |
> The primary package manager does however have the responsibility that it |
182 |
> must be very stable. The primary package manager must maintain |
183 |
> compatibility with old versions of itself for extended periods of time. |
184 |
> This compatibilty time is set by the council. The suggested time would |
185 |
> be one year from the point that there is a compatible stable version for |
186 |
> all supported architectures. |
187 |
|
188 |
To be honest even portage never did this. We waited "as long as we felt |
189 |
necessary" and then broke compat. |
190 |
|
191 |
> |
192 |
> Another compatibilty requirement for the primary package manager is a |
193 |
> limited forward compatibility. It must always be possible to transition |
194 |
> from the unstable version of the primary package manager to a stable |
195 |
> version. This may be done either by first introducing reading |
196 |
> compatibility for a new format and only having write support later. |
197 |
> Another way would be the provision of a conversion tool that ensures |
198 |
> that the on disk information maintained by the package manager is |
199 |
> supported by the stable package manager. |
200 |
> |
201 |
> The primary package manager is maintained on official gentoo |
202 |
> infrastructure, under control of gentoo developers. |
203 |
|
204 |
This has no reasoning behind it, in my eyes. |
205 |
|
206 |
> |
207 |
> |
208 |
> candidate primary package manager requirements <#id14> |
209 |
> |
210 |
> A candidate primary package manager aims to replace the primary package |
211 |
> manager. The council is responsible for deciding whether this is done. |
212 |
> The requirements are there to ensure that it is actually possible to |
213 |
> transition a candidate primary package manager into the primary package |
214 |
> manager. |
215 |
> |
216 |
> First of all, there must exist a transition path. This means that the on |
217 |
> disk data of the primary package manager can be used by (or converted to |
218 |
> a format usable by) the candidate primary package manager. |
219 |
> |
220 |
> Second, there must be a test path. It must be possible for the |
221 |
> developers to test out the candidate primary package manager on their |
222 |
> working systems. This means that the transition path must exist. This |
223 |
> also means that there are no serious obstacles for reverting to the |
224 |
> current primary package manager. |
225 |
> |
226 |
> Third, there must exist an ebuild test path. It must be possible for |
227 |
> package managers to test ebuilds in one tree for both the primary as |
228 |
> well as the candidate primary package manager. It is not an issue if |
229 |
> this requires a special mode for the candidate primary package manager. |
230 |
> It is not an issue either if compatibilty can be achieved by unmerging |
231 |
> the package in the candidate primary package manager. |
232 |
> |
233 |
> Fourth, there must be support. This means that the package manager is |
234 |
> actively maintained under control of gentoo. If it is not maintained on |
235 |
> gentoo infrastructure, the means must be there to move the package |
236 |
> manager, with its change history, to gentoo infrastructure. This means |
237 |
> that it must be maintained on a gentoo supported versioning system, or |
238 |
> on a version system whose history can be converted to a gentoo supported |
239 |
> versioning system. |
240 |
|
241 |
Again I don't see a reason for it to be on Gentoo infra, or even for it |
242 |
to be managed by Gentoo developers offsite. As long as it's active. |
243 |
One could say Portage is a bit dormant, sure bugs get fixed |
244 |
features...take a while, as many people will note :) |
245 |
|
246 |
> |
247 |
> |
248 |
> secondary package manager requirements <#id15> |
249 |
> |
250 |
> A secondary package manager is a package manager that instead of |
251 |
> directly aiming at replacing portage as primary package manager. As such |
252 |
> a secondary package manager does not set the standard on the tree, but |
253 |
> follows the standard set by the primary package manager. |
254 |
> |
255 |
> There are two kinds of secondary package managers. The first kind is |
256 |
> formed by those that do not maintain their own installed package |
257 |
> database, but work with the package database of the primary package |
258 |
> manager. While these package managers can put additional information in |
259 |
> the database, these entries must remain compatible with the primary |
260 |
> package managers. Verification, reference, and deinstallation by the |
261 |
> primary package manager must remain functional. |
262 |
> |
263 |
> The second kind is formed by those package managers that maintain their |
264 |
> own package database, or a package database incompatible with the |
265 |
> primary package manager. To ensure the secondary role of these package |
266 |
> managers the support in the tree for these package manager is provided |
267 |
> along with restrictions. |
268 |
> |
269 |
> The first restriction is that no packages in the tree must rely on the |
270 |
> secondary package manager. While packages may provide a level of support |
271 |
> (while being compatible with the primary package manager) this may not |
272 |
> result in a significant increase of features. If this were allowed, this |
273 |
> would mean that while they technically work with the primary package |
274 |
> manager, there would be significant incentive to use the secondary |
275 |
> package manager. As the use of this secondary package manager disallows |
276 |
> the paralel use of the primary package manager, this would result in |
277 |
> users using the secondary package manager as their primary package manager. |
278 |
> |
279 |
> Users are allowed to make their own choices. However by making the tree |
280 |
> favor a package manager that is not the primary package manager, this |
281 |
> will lead to the secondary package manager becomming the effective |
282 |
> primary package manager. As this will be a decision by default instead |
283 |
> of a concious choice by the council, this is an undesirable result. |
284 |
> |
285 |
> There is one exclusion for the restriction of packages that only work |
286 |
> with or have significant improvements with the secondary package |
287 |
> manager. That is packages that by their nature are only usable with this |
288 |
> secondary package manager. An example would be a graphical frontend to |
289 |
> the secondary package manager. |
290 |
> |
291 |
> If a secondary package manager works along the primary package manager, |
292 |
> but by itself does not have the capabilities of becoming a primary |
293 |
> package manager the risks of choice by default are lower. As a result, |
294 |
> the council could choose to allow the inclusion of packages that work |
295 |
> only or significantly better with this secondary package manager. For |
296 |
> example at a point where there is a stable, functional, package manager |
297 |
> that can handle RPM format packages, the council could decide to include |
298 |
> these packages directly in the tree, instead of using wrapper scripts |
299 |
> for those packages that are only provided in the RPM format. Such a |
300 |
> decision does imply that the maintainers of the primary package manager |
301 |
> must take this secondary package manager into account. |
302 |
> |
303 |
> |
304 |
> third party package manager requirements <#id16> |
305 |
> |
306 |
> A third party package manager is just that. It is a package manager |
307 |
> without any support within gentoo. As there is no control by gentoo over |
308 |
> the package manager this means that there are no requirements on the |
309 |
> package manager. |
310 |
> |
311 |
> This complete lack of control however also translates to the fact that |
312 |
> gentoo can not make package manager specific changes to support this |
313 |
> package manager. Package manager specific means that it is possible to |
314 |
> request changes that make the tree more independent of the primary |
315 |
> package manager. These changes must however be agnostic of the package |
316 |
> manager, and only make it easier to have alternative package managers. |
317 |
> |
318 |
> |
319 |
> transition phases <#id17> |
320 |
> |
321 |
> |
322 |
> primary package manager transition phase <#id18> |
323 |
> |
324 |
> A candidate primary package manager can be chosen to become primary |
325 |
> package manager. This can only happen by council decision. This decision |
326 |
> can only be made when the candiate primary package manager is stable on |
327 |
> all stable architectures. (all architectures except experimental ones). |
328 |
> |
329 |
> After the decision has been made to replace the primary package manager, |
330 |
> the transition phase starts. The use of the old stable package manager |
331 |
> must remain supported for a period of 6 months. This means that core |
332 |
> packages must be installable by this package manager. Further the |
333 |
> possibility to convert the system automatically to the new primary |
334 |
> package manager must be available for at least 18 months, but preferably |
335 |
> longer (enable installing the new package manager from the old one). |
336 |
> |
337 |
> During the transition phase packages are allowed in the tree that use |
338 |
> the new features of the new primary package manager. While backward |
339 |
> compatibility with the previous primary package manager must be |
340 |
> maintained a forward compatibility is no longer needed. |
341 |
> |
342 |
> |
343 |
> Secondary package manager to candidate primary package manager |
344 |
> transition <#id19> |
345 |
> |
346 |
> The transition from secondary package manager to candidate primary |
347 |
> package manager is straightforward. The secondary package manager must |
348 |
> satisfy all requirements for a candidate primary package manager. At |
349 |
> that point its maintainers can announce that they are changing the |
350 |
> status to candidate primary package manager. This allows a greater |
351 |
> support from gentoo in achieving that goal. |
352 |
> |
353 |
> |
354 |
> Third party to other transition <#id20> |
355 |
> |
356 |
> When a third party package manager wants to transition into one of the |
357 |
> other categories (except primary package manager) it must satisfy all |
358 |
> requirements for that category. |
359 |
> |
360 |
> |
361 |
> References <#id21> |
362 |
> |
363 |
> [1] <#id2> http://paludis.berlios.de/ |
364 |
> |
365 |
> [2] <#id4> http://gentooexperimental.org/~ferringb/bzr/pkgcore/ |
366 |
> |
367 |
> [3] <#id6> http://www.opencontent.org/openpub/ |
368 |
> |
369 |
> |
370 |
> Copyright <#id22> |
371 |
> |
372 |
> This document is copyright 2006 by Paul de Vrieze and licensed under the |
373 |
> Open Publication License <http://www.opencontent.org/openpub/> [3] <#id5>. |
374 |
> |
375 |
> ------------------------------------------------------------------------ |
376 |
> View document source <glep-pkg.txt>. Generated on: 2006-05-20 12:51 UTC. |
377 |
> Generated by Docutils <http://docutils.sourceforge.net/> from |
378 |
> reStructuredText <http://docutils.sourceforge.net/rst.html> source. |
379 |
> |
380 |
> |
381 |
> ------------------------------------------------------------------------ |
382 |
> |
383 |
> GLEP: 49 |
384 |
> Title: Alternative Package Manager requirements |
385 |
> Version: $Revision: 2214 $ |
386 |
> Last-Modified: $Date: 2006-05-20 14:51:41 +0200 (Sat, 20 May 2006) $ |
387 |
> Author: Paul de Vrieze <pauldv@g.o>, |
388 |
> Status: Draft |
389 |
> Type: Standards Track |
390 |
> Content-Type: text/x-rst |
391 |
> Created: 18-May-2006 |
392 |
> Post-History: 19-May-2006 |
393 |
> |
394 |
> |
395 |
> Abstract |
396 |
> ======== |
397 |
> |
398 |
> This GLEP describes four classes of package managers. What the requirements for |
399 |
> them are, and what support they can receive. |
400 |
> |
401 |
> |
402 |
> Motivation |
403 |
> ========== |
404 |
> |
405 |
> To set a standard that package managers that seek gentoo project approval and |
406 |
> support should adhere to. |
407 |
> |
408 |
> |
409 |
> Rationale |
410 |
> ========= |
411 |
> |
412 |
> Currently portage is showing its age. The code of portage does not seem to be |
413 |
> salvageable for new versions. There are two known alternative package managers |
414 |
> that claim a level of portage compatibility. These alternatives are `paludis`_ |
415 |
> and `pkgcore`_. Before these alternatives are developed further, a set of rules |
416 |
> should be created to level the playing field and ensuring that decisions can be |
417 |
> made clearly. |
418 |
> |
419 |
> |
420 |
> Backwards Compatibility |
421 |
> ======================= |
422 |
> |
423 |
> Not a problem for this GLEP. There is no previous standard as the issue did not |
424 |
> exist before. This GLEP is to prevent future compatibility issues. |
425 |
> |
426 |
> |
427 |
> Categories of package managers |
428 |
> ============================== |
429 |
> |
430 |
> We distinguish four categories of package managers. While a package manager can |
431 |
> transition from one category to another, it can not be in two categories at the |
432 |
> same time. It can be in a state of transition though. |
433 |
> |
434 |
> *Primary Package Manager* |
435 |
> There is one primary package manager. Currently this position is held by |
436 |
> portage. The primary package manager is assigned by the council and all |
437 |
> packages in the official tree must be installable by a useable version of the |
438 |
> primary package manager. |
439 |
> |
440 |
> *Candidate Primary Package Managers* |
441 |
> A candidate Primary Package Manager does aim, or show an aim, at replacing |
442 |
> the current primary package manager. At a point where the package manager is |
443 |
> deemed stable a decision must be made whether this package manager should |
444 |
> become the new primary package manager. At that point the `primary package |
445 |
> manager transition phase`_ starts. |
446 |
> |
447 |
> *Secondary Package Managers* |
448 |
> A secondary package manager is a package manager that coexists with the |
449 |
> primary package manager, while not aiming to replace it. Package managers |
450 |
> that would fall into this category are: |
451 |
> |
452 |
> - Experimental package managers. Package managers whose purpose it is to try |
453 |
> out new features. |
454 |
> |
455 |
> - Focussed package managers. For example a package manager that allows the |
456 |
> use of rpm formatted binary packages would be an example. |
457 |
> |
458 |
> |
459 |
> *Third Party Package Managers* |
460 |
> A third party package manager is any package manager that lacks recognition |
461 |
> from gentoo as being in any other category. A third party package manager may |
462 |
> or may not have a gentoo package, but is not supported beyond that. |
463 |
> |
464 |
> |
465 |
> Package manager requirements |
466 |
> ============================ |
467 |
> |
468 |
> As a package manager is in a state of higher support there are higher |
469 |
> requirements to it. The purpose of these requirements is to ensure the unity of |
470 |
> the distribution and the package tree. For this purpose it is needed that there |
471 |
> is only one primary package manager. |
472 |
> |
473 |
> |
474 |
> primary package manager requirements |
475 |
> ------------------------------------ |
476 |
> |
477 |
> The primary package manager is the package manager that sets the standards for |
478 |
> the tree. All ebuilds in the tree must function with the primary package |
479 |
> manager. As the primary package manager sets the standard it does not have to |
480 |
> maintain compatibility with other package managers. |
481 |
> |
482 |
> The primary package manager does however have the responsibility that it must be |
483 |
> very stable. The primary package manager must maintain compatibility with old |
484 |
> versions of itself for extended periods of time. This compatibilty time is set |
485 |
> by the council. The suggested time would be one year from the point that there |
486 |
> is a compatible stable version for all supported architectures. |
487 |
> |
488 |
> Another compatibilty requirement for the primary package manager is a limited |
489 |
> forward compatibility. It must always be possible to transition from the |
490 |
> unstable version of the primary package manager to a stable version. This may be |
491 |
> done either by first introducing reading compatibility for a new format and only |
492 |
> having write support later. Another way would be the provision of a conversion |
493 |
> tool that ensures that the on disk information maintained by the package manager |
494 |
> is supported by the stable package manager. |
495 |
> |
496 |
> The primary package manager is maintained on official gentoo infrastructure, |
497 |
> under control of gentoo developers. |
498 |
> |
499 |
> |
500 |
> candidate primary package manager requirements |
501 |
> ------------------------------------------------ |
502 |
> |
503 |
> A candidate primary package manager aims to replace the primary package |
504 |
> manager. The council is responsible for deciding whether this is done. The |
505 |
> requirements are there to ensure that it is actually possible to transition a |
506 |
> candidate primary package manager into the primary package manager. |
507 |
> |
508 |
> First of all, there must exist a transition path. This means that the on disk |
509 |
> data of the primary package manager can be used by (or converted to a format |
510 |
> usable by) the candidate primary package manager. |
511 |
> |
512 |
> Second, there must be a test path. It must be possible for the developers to |
513 |
> test out the candidate primary package manager on their working systems. This |
514 |
> means that the transition path must exist. This also means that there are no |
515 |
> serious obstacles for reverting to the current primary package manager. |
516 |
> |
517 |
> Third, there must exist an ebuild test path. It must be possible for package |
518 |
> managers to test ebuilds in one tree for both the primary as well as the |
519 |
> candidate primary package manager. It is not an issue if this requires a special |
520 |
> mode for the candidate primary package manager. It is not an issue either if |
521 |
> compatibilty can be achieved by unmerging the package in the candidate primary |
522 |
> package manager. |
523 |
> |
524 |
> Fourth, there must be support. This means that the package manager is actively |
525 |
> maintained under control of gentoo. If it is not maintained on gentoo |
526 |
> infrastructure, the means must be there to move the package manager, with its |
527 |
> change history, to gentoo infrastructure. This means that it must be maintained |
528 |
> on a gentoo supported versioning system, or on a version system whose history |
529 |
> can be converted to a gentoo supported versioning system. |
530 |
> |
531 |
> |
532 |
> secondary package manager requirements |
533 |
> -------------------------------------- |
534 |
> |
535 |
> A secondary package manager is a package manager that instead of directly aiming |
536 |
> at replacing portage as primary package manager. As such a secondary package |
537 |
> manager does not set the standard on the tree, but follows the standard set by |
538 |
> the primary package manager. |
539 |
> |
540 |
> There are two kinds of secondary package managers. The first kind is formed by |
541 |
> those that do not maintain their own installed package database, but work with |
542 |
> the package database of the primary package manager. While these package |
543 |
> managers can put additional information in the database, these entries must |
544 |
> remain compatible with the primary package managers. Verification, reference, |
545 |
> and deinstallation by the primary package manager must remain functional. |
546 |
> |
547 |
> The second kind is formed by those package managers that maintain their own |
548 |
> package database, or a package database incompatible with the primary package |
549 |
> manager. To ensure the secondary role of these package managers the support in |
550 |
> the tree for these package manager is provided along with restrictions. |
551 |
> |
552 |
> The first restriction is that no packages in the tree must rely on the secondary |
553 |
> package manager. While packages may provide a level of support (while being |
554 |
> compatible with the primary package manager) this may not result in a |
555 |
> significant increase of features. If this were allowed, this would mean that |
556 |
> while they technically work with the primary package manager, there would be |
557 |
> significant incentive to use the secondary package manager. As the use of this |
558 |
> secondary package manager disallows the paralel use of the primary package |
559 |
> manager, this would result in users using the secondary package manager as their |
560 |
> primary package manager. |
561 |
> |
562 |
> Users are allowed to make their own choices. However by making the tree favor a |
563 |
> package manager that is not the primary package manager, this will lead to the |
564 |
> secondary package manager becomming the effective primary package manager. As |
565 |
> this will be a decision by default instead of a concious choice by the council, |
566 |
> this is an undesirable result. |
567 |
> |
568 |
> There is one exclusion for the restriction of packages that only work with or |
569 |
> have significant improvements with the secondary package manager. That is |
570 |
> packages that by their nature are only usable with this secondary package |
571 |
> manager. An example would be a graphical frontend to the secondary package |
572 |
> manager. |
573 |
> |
574 |
> If a secondary package manager works along the primary package manager, but by |
575 |
> itself does not have the capabilities of becoming a primary package manager the |
576 |
> risks of choice by default are lower. As a result, the council could choose to |
577 |
> allow the inclusion of packages that work only or significantly better with this |
578 |
> secondary package manager. For example at a point where there is a stable, |
579 |
> functional, package manager that can handle RPM format packages, the council |
580 |
> could decide to include these packages directly in the tree, instead of using |
581 |
> wrapper scripts for those packages that are only provided in the RPM |
582 |
> format. Such a decision does imply that the maintainers of the primary package |
583 |
> manager must take this secondary package manager into account. |
584 |
> |
585 |
> |
586 |
> third party package manager requirements |
587 |
> ---------------------------------------- |
588 |
> |
589 |
> A third party package manager is just that. It is a package manager without any |
590 |
> support within gentoo. As there is no control by gentoo over the package manager |
591 |
> this means that there are no requirements on the package manager. |
592 |
> |
593 |
> This complete lack of control however also translates to the fact that gentoo |
594 |
> can not make package manager specific changes to support this package |
595 |
> manager. Package manager specific means that it is possible to request changes |
596 |
> that make the tree more independent of the primary package manager. These |
597 |
> changes must however be agnostic of the package manager, and only make it easier |
598 |
> to have alternative package managers. |
599 |
> |
600 |
> |
601 |
> transition phases |
602 |
> ================= |
603 |
> |
604 |
> primary package manager transition phase |
605 |
> ---------------------------------------- |
606 |
> |
607 |
> A candidate primary package manager can be chosen to become primary package |
608 |
> manager. This can only happen by council decision. This decision can only be |
609 |
> made when the candiate primary package manager is stable on all stable |
610 |
> architectures. (all architectures except experimental ones). |
611 |
> |
612 |
> After the decision has been made to replace the primary package manager, the |
613 |
> transition phase starts. The use of the old stable package manager must remain |
614 |
> supported for a period of 6 months. This means that core packages must be |
615 |
> installable by this package manager. Further the possibility to convert the |
616 |
> system automatically to the new primary package manager must be available for at |
617 |
> least 18 months, but preferably longer (enable installing the new package |
618 |
> manager from the old one). |
619 |
> |
620 |
> During the transition phase packages are allowed in the tree that use the new |
621 |
> features of the new primary package manager. While backward compatibility with |
622 |
> the previous primary package manager must be maintained a forward compatibility |
623 |
> is no longer needed. |
624 |
> |
625 |
> |
626 |
> Secondary package manager to candidate primary package manager transition |
627 |
> ------------------------------------------------------------------------- |
628 |
> |
629 |
> The transition from secondary package manager to candidate primary package |
630 |
> manager is straightforward. The secondary package manager must satisfy all |
631 |
> requirements for a candidate primary package manager. At that point its |
632 |
> maintainers can announce that they are changing the status to candidate primary |
633 |
> package manager. This allows a greater support from gentoo in achieving that |
634 |
> goal. |
635 |
> |
636 |
> |
637 |
> Third party to other transition |
638 |
> ------------------------------- |
639 |
> |
640 |
> When a third party package manager wants to transition into one of the other |
641 |
> categories (except primary package manager) it must satisfy all requirements for |
642 |
> that category. |
643 |
> |
644 |
> |
645 |
> References |
646 |
> ========== |
647 |
> |
648 |
> .. _paludis: http://paludis.berlios.de/ |
649 |
> .. _pkgcore: http://gentooexperimental.org/~ferringb/bzr/pkgcore/ |
650 |
> .. _Open Publication License: http://www.opencontent.org/openpub/ |
651 |
> |
652 |
> |
653 |
> Copyright |
654 |
> ========= |
655 |
> |
656 |
> This document is copyright 2006 by Paul de Vrieze and licensed under the |
657 |
> `Open Publication License`_. |
658 |
> |
659 |
|
660 |
-- |
661 |
gentoo-dev@g.o mailing list |