Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: RFC: GLEP 49 - Package manager requirements
Date: Sun, 21 May 2006 15:19:06
Message-Id: e4pvve$ugj$1@sea.gmane.org
In Reply to: Re: [gentoo-dev] RFC: GLEP 49 - Package manager requirements by Paul de Vrieze
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