Gentoo Archives: gentoo-dev

From: Dan Meltzer <parallelgrapefruit@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements
Date: Sat, 20 May 2006 13:55:09
Message-Id: 46059ce10605200647o77e2a595r30c9ca33e9394cfb@mail.gmail.com
In Reply to: [gentoo-dev] RFC: GLEP 49 - Package manager requirements by Paul de Vrieze
1 >A secondary package manager is a package manager that instead of
2 directly aiming
3 >at replacing portage as primary package manager.
4 What does it do instead?
5
6 >The first restriction is that no packages in the tree must rely on
7 the secondary
8 >package manager. While packages may provide a level of support
9 (while being
10 >compatible with the primary package manager) this may not
11 result in a
12 >significant increase of features.
13
14 Why can a certain ebuild not DEPEND specifically on a third party
15 package manager?
16
17 I think you raise some good points in this email, however I think the
18 overall aim is flawed. The package manager should be just as
19 switching as the compiler, the libc, the baselayout, or the kernel.
20 None of these require anywhere near as many hoops to jump through to
21 be supported in gentoo, and they all have their own fixes that need to
22 be made. No changes should be made to the tree which directly impedes
23 the ability of the "primary package manager" to do its job, but at the
24 same time, no changes should be made which impede other package
25 managers from outperforming the "primary package manager". Forcing
26 package managers to stay even with all of portages ideosyncrocies is
27 just holding back new package managers from making progress.
28
29 On 5/20/06, Paul de Vrieze <pauldv@g.o> wrote:
30 >
31 > The promissed glep on package manager requirements. Please comment on it.
32 > There are some parts that may be controversial (portage has in the past not
33 > provided support for reverting to stable either), but please keep the
34 > discussion on topic.
35 >
36 > Paul
37 >
38 > --
39 > Paul de Vrieze
40 > Gentoo Developer
41 > Mail: pauldv@g.o
42 > Homepage: http://www.devrieze.net
43 >
44 >
45 > GLEP: 49
46 > Title: Alternative Package Manager requirements
47 > Version: $Revision: 2214 $
48 > Last-Modified: $Date: 2006-05-20 14:51:41 +0200 (Sat, 20 May 2006) $
49 > Author: Paul de Vrieze <pauldv@g.o>,
50 > Status: Draft
51 > Type: Standards Track
52 > Content-Type: text/x-rst
53 > Created: 18-May-2006
54 > Post-History: 19-May-2006
55 >
56 >
57 > Abstract
58 > ========
59 >
60 > This GLEP describes four classes of package managers. What the requirements for
61 > them are, and what support they can receive.
62 >
63 >
64 > Motivation
65 > ==========
66 >
67 > To set a standard that package managers that seek gentoo project approval and
68 > support should adhere to.
69 >
70 >
71 > Rationale
72 > =========
73 >
74 > Currently portage is showing its age. The code of portage does not seem to be
75 > salvageable for new versions. There are two known alternative package managers
76 > that claim a level of portage compatibility. These alternatives are `paludis`_
77 > and `pkgcore`_. Before these alternatives are developed further, a set of rules
78 > should be created to level the playing field and ensuring that decisions can be
79 > made clearly.
80 >
81 >
82 > Backwards Compatibility
83 > =======================
84 >
85 > Not a problem for this GLEP. There is no previous standard as the issue did not
86 > exist before. This GLEP is to prevent future compatibility issues.
87 >
88 >
89 > Categories of package managers
90 > ==============================
91 >
92 > We distinguish four categories of package managers. While a package manager can
93 > transition from one category to another, it can not be in two categories at the
94 > same time. It can be in a state of transition though.
95 >
96 > *Primary Package Manager*
97 > There is one primary package manager. Currently this position is held by
98 > portage. The primary package manager is assigned by the council and all
99 > packages in the official tree must be installable by a useable version of the
100 > primary package manager.
101 >
102 > *Candidate Primary Package Managers*
103 > A candidate Primary Package Manager does aim, or show an aim, at replacing
104 > the current primary package manager. At a point where the package manager is
105 > deemed stable a decision must be made whether this package manager should
106 > become the new primary package manager. At that point the `primary package
107 > manager transition phase`_ starts.
108 >
109 > *Secondary Package Managers*
110 > A secondary package manager is a package manager that coexists with the
111 > primary package manager, while not aiming to replace it. Package managers
112 > that would fall into this category are:
113 >
114 > - Experimental package managers. Package managers whose purpose it is to try
115 > out new features.
116 >
117 > - Focussed package managers. For example a package manager that allows the
118 > use of rpm formatted binary packages would be an example.
119 >
120 >
121 > *Third Party Package Managers*
122 > A third party package manager is any package manager that lacks recognition
123 > from gentoo as being in any other category. A third party package manager may
124 > or may not have a gentoo package, but is not supported beyond that.
125 >
126 >
127 > Package manager requirements
128 > ============================
129 >
130 > As a package manager is in a state of higher support there are higher
131 > requirements to it. The purpose of these requirements is to ensure the unity of
132 > the distribution and the package tree. For this purpose it is needed that there
133 > is only one primary package manager.
134 >
135 >
136 > primary package manager requirements
137 > ------------------------------------
138 >
139 > The primary package manager is the package manager that sets the standards for
140 > the tree. All ebuilds in the tree must function with the primary package
141 > manager. As the primary package manager sets the standard it does not have to
142 > maintain compatibility with other package managers.
143 >
144 > The primary package manager does however have the responsibility that it must be
145 > very stable. The primary package manager must maintain compatibility with old
146 > versions of itself for extended periods of time. This compatibilty time is set
147 > by the council. The suggested time would be one year from the point that there
148 > is a compatible stable version for all supported architectures.
149 >
150 > Another compatibilty requirement for the primary package manager is a limited
151 > forward compatibility. It must always be possible to transition from the
152 > unstable version of the primary package manager to a stable version. This may be
153 > done either by first introducing reading compatibility for a new format and only
154 > having write support later. Another way would be the provision of a conversion
155 > tool that ensures that the on disk information maintained by the package manager
156 > is supported by the stable package manager.
157 >
158 > The primary package manager is maintained on official gentoo infrastructure,
159 > under control of gentoo developers.
160 >
161 >
162 > candidate primary package manager requirements
163 > ------------------------------------------------
164 >
165 > A candidate primary package manager aims to replace the primary package
166 > manager. The council is responsible for deciding whether this is done. The
167 > requirements are there to ensure that it is actually possible to transition a
168 > candidate primary package manager into the primary package manager.
169 >
170 > First of all, there must exist a transition path. This means that the on disk
171 > data of the primary package manager can be used by (or converted to a format
172 > usable by) the candidate primary package manager.
173 >
174 > Second, there must be a test path. It must be possible for the developers to
175 > test out the candidate primary package manager on their working systems. This
176 > means that the transition path must exist. This also means that there are no
177 > serious obstacles for reverting to the current primary package manager.
178 >
179 > Third, there must exist an ebuild test path. It must be possible for package
180 > managers to test ebuilds in one tree for both the primary as well as the
181 > candidate primary package manager. It is not an issue if this requires a special
182 > mode for the candidate primary package manager. It is not an issue either if
183 > compatibilty can be achieved by unmerging the package in the candidate primary
184 > package manager.
185 >
186 > Fourth, there must be support. This means that the package manager is actively
187 > maintained under control of gentoo. If it is not maintained on gentoo
188 > infrastructure, the means must be there to move the package manager, with its
189 > change history, to gentoo infrastructure. This means that it must be maintained
190 > on a gentoo supported versioning system, or on a version system whose history
191 > can be converted to a gentoo supported versioning system.
192 >
193 >
194 > secondary package manager requirements
195 > --------------------------------------
196 >
197 > A secondary package manager is a package manager that instead of directly aiming
198 > at replacing portage as primary package manager. As such a secondary package
199 > manager does not set the standard on the tree, but follows the standard set by
200 > the primary package manager.
201 >
202 > There are two kinds of secondary package managers. The first kind is formed by
203 > those that do not maintain their own installed package database, but work with
204 > the package database of the primary package manager. While these package
205 > managers can put additional information in the database, these entries must
206 > remain compatible with the primary package managers. Verification, reference,
207 > and deinstallation by the primary package manager must remain functional.
208 >
209 > The second kind is formed by those package managers that maintain their own
210 > package database, or a package database incompatible with the primary package
211 > manager. To ensure the secondary role of these package managers the support in
212 > the tree for these package manager is provided along with restrictions.
213 >
214 > The first restriction is that no packages in the tree must rely on the secondary
215 > package manager. While packages may provide a level of support (while being
216 > compatible with the primary package manager) this may not result in a
217 > significant increase of features. If this were allowed, this would mean that
218 > while they technically work with the primary package manager, there would be
219 > significant incentive to use the secondary package manager. As the use of this
220 > secondary package manager disallows the paralel use of the primary package
221 > manager, this would result in users using the secondary package manager as their
222 > primary package manager.
223 >
224 > Users are allowed to make their own choices. However by making the tree favor a
225 > package manager that is not the primary package manager, this will lead to the
226 > secondary package manager becomming the effective primary package manager. As
227 > this will be a decision by default instead of a concious choice by the council,
228 > this is an undesirable result.
229 >
230 > There is one exclusion for the restriction of packages that only work with or
231 > have significant improvements with the secondary package manager. That is
232 > packages that by their nature are only usable with this secondary package
233 > manager. An example would be a graphical frontend to the secondary package
234 > manager.
235 >
236 > If a secondary package manager works along the primary package manager, but by
237 > itself does not have the capabilities of becoming a primary package manager the
238 > risks of choice by default are lower. As a result, the council could choose to
239 > allow the inclusion of packages that work only or significantly better with this
240 > secondary package manager. For example at a point where there is a stable,
241 > functional, package manager that can handle RPM format packages, the council
242 > could decide to include these packages directly in the tree, instead of using
243 > wrapper scripts for those packages that are only provided in the RPM
244 > format. Such a decision does imply that the maintainers of the primary package
245 > manager must take this secondary package manager into account.
246 >
247 >
248 > third party package manager requirements
249 > ----------------------------------------
250 >
251 > A third party package manager is just that. It is a package manager without any
252 > support within gentoo. As there is no control by gentoo over the package manager
253 > this means that there are no requirements on the package manager.
254 >
255 > This complete lack of control however also translates to the fact that gentoo
256 > can not make package manager specific changes to support this package
257 > manager. Package manager specific means that it is possible to request changes
258 > that make the tree more independent of the primary package manager. These
259 > changes must however be agnostic of the package manager, and only make it easier
260 > to have alternative package managers.
261 >
262 >
263 > transition phases
264 > =================
265 >
266 > primary package manager transition phase
267 > ----------------------------------------
268 >
269 > A candidate primary package manager can be chosen to become primary package
270 > manager. This can only happen by council decision. This decision can only be
271 > made when the candiate primary package manager is stable on all stable
272 > architectures. (all architectures except experimental ones).
273 >
274 > After the decision has been made to replace the primary package manager, the
275 > transition phase starts. The use of the old stable package manager must remain
276 > supported for a period of 6 months. This means that core packages must be
277 > installable by this package manager. Further the possibility to convert the
278 > system automatically to the new primary package manager must be available for at
279 > least 18 months, but preferably longer (enable installing the new package
280 > manager from the old one).
281 >
282 > During the transition phase packages are allowed in the tree that use the new
283 > features of the new primary package manager. While backward compatibility with
284 > the previous primary package manager must be maintained a forward compatibility
285 > is no longer needed.
286 >
287 >
288 > Secondary package manager to candidate primary package manager transition
289 > -------------------------------------------------------------------------
290 >
291 > The transition from secondary package manager to candidate primary package
292 > manager is straightforward. The secondary package manager must satisfy all
293 > requirements for a candidate primary package manager. At that point its
294 > maintainers can announce that they are changing the status to candidate primary
295 > package manager. This allows a greater support from gentoo in achieving that
296 > goal.
297 >
298 >
299 > Third party to other transition
300 > -------------------------------
301 >
302 > When a third party package manager wants to transition into one of the other
303 > categories (except primary package manager) it must satisfy all requirements for
304 > that category.
305 >
306 >
307 > References
308 > ==========
309 >
310 > .. _paludis: http://paludis.berlios.de/
311 > .. _pkgcore: http://gentooexperimental.org/~ferringb/bzr/pkgcore/
312 > .. _Open Publication License: http://www.opencontent.org/openpub/
313 >
314 >
315 > Copyright
316 > =========
317 >
318 > This document is copyright 2006 by Paul de Vrieze and licensed under the
319 > `Open Publication License`_.
320 >
321 >
322 >
323 >
324 >
325 >
326
327 --
328 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements Paul de Vrieze <pauldv@g.o>