1 |
Paul de Vrieze <pauldv@g.o> posted |
2 |
200605211238.56080.pauldv@g.o, excerpted below, on Sun, 21 May |
3 |
2006 12:38:49 +0200: |
4 |
|
5 |
> This section is intended to convey that the maintainers of the primary |
6 |
> package manager can define (keeping the gentoo processes into account) new |
7 |
> extensions to the standard, or a new EAPI=1 version. |
8 |
|
9 |
I find the lack of a standard a huge sticking point ATM. Were we able to |
10 |
set back the clock and do things differently, I think most would agree |
11 |
that before working on a different implementation, defining a standard |
12 |
would have been a good thing. Be that as it may... |
13 |
|
14 |
This whole EAPI thing has bothered me a bit. We are now talking about |
15 |
defining EAPI=0, and later extensions EAPI=1, etc. In terms of EAPI |
16 |
support, I'd suggest the following convention: |
17 |
|
18 |
1) Keep EAPI=0 as the target base and work to define it as some sort of |
19 |
standard. Obviously, this will continue beyond the present for some time |
20 |
as there's no current definition of a standard EAPI=0, beyond "what's in |
21 |
the tree at this moment". |
22 |
|
23 |
2a) Beyond EAPI=0, that is, for extensions, don't just call them EAPI=1, |
24 |
Rather, a portage proposed implementation would be EAPI=portage-1, other |
25 |
implementations would be similar: EAPI=paludis-1, as an example. |
26 |
|
27 |
2b) Alternative/refinement: Beyond EAPI=0, EAPI=1 when official. All |
28 |
unofficial extensions go with the RFC-familiar x- extension definition, so |
29 |
EAPI=x-paludis-1, EAPI=x-portage-multarch, whatever. At some point, |
30 |
an official EAPI=1 will be defined as a superset of x-portage-multiarch.3, |
31 |
x-paludis-thingy.2, x-thang-0.5, etc. |
32 |
|
33 |
3) Official EAPI level in the tree. Overlays and package managers with |
34 |
their extensions will be have flexibility to define EAPI=x-whatever-ver as |
35 |
necessary. Ebuilds requiring these exotic EAPIs won't be allowed in the |
36 |
official tree, however, until adoption of an official EAPI version |
37 |
inclusive of the used extension. |
38 |
|
39 |
4) This leaves a bit of flexibility in terms of what's allowed in the tree |
40 |
as compared to what any specific package manager supports, while |
41 |
restricting what's allowed in the tree to that supported by an officially |
42 |
defined EAPI level, thereby eventually and practically separating the tree |
43 |
from any specific package manager implementation. Package managers would |
44 |
need to be able to deal gracefully with unimplemented EAPIs by masking |
45 |
them and failing to process them further, but once an official EAPI level |
46 |
had been defined, ebuilds/eclasses/etc could use it and be in-standard, |
47 |
regardless of whether a particular package manager handled it or not. If |
48 |
the ebuild was within EAPI standard yet the package manager failed, it |
49 |
would be a package manager bug. If the ebuild/eclass/whatever did not meet |
50 |
standard, it would be an ebuild bug and the ebuild could be removed from |
51 |
the tree if it could not be brought into compliance. |
52 |
|
53 |
Obviously, this scenario assumes some form of EAPI=0 base is ultimately |
54 |
standardized and that progress can go on from there. However, in the mean |
55 |
time, extensions can still be defined as EAPI=x-whatever and overlays and |
56 |
package managers can begin to take advantage of them as such. It is |
57 |
recognized that some of these may yet make it into the as yet undefined |
58 |
EAPI=0 standard, and that as long as such a standard remains undefined, |
59 |
there WILL be some unavoidable instability as it's impossible to properly |
60 |
define what is allowed and what not, beyond what works with whatever |
61 |
package manager one might be using. |
62 |
|
63 |
|
64 |
|
65 |
-- |
66 |
Duncan - List replies preferred. No HTML msgs. |
67 |
"Every nonfree program has a lord, a master -- |
68 |
and if you use the program, he is your master." Richard Stallman |
69 |
|
70 |
-- |
71 |
gentoo-dev@g.o mailing list |