Gentoo Archives: gentoo-portage-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-portage-dev@l.g.o
Cc: Gentoo Dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-portage-dev] [RFC] Label profiles with EAPI for compatibility checks
Date: Sat, 04 Oct 2008 17:49:55
Message-Id: 48E7ACB8.2040504@gentoo.org
In Reply to: Re: [gentoo-portage-dev] [RFC] Label profiles with EAPI for compatibility checks by Alec Warner
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Alec Warner wrote:
5 > On Fri, Oct 3, 2008 at 5:09 PM, Zac Medico <zmedico@g.o> wrote:
6 > Hi everyone,
7 >
8 > Please consider a new "eapi" profile configuration file that will
9 > designate the EAPI to which any package atoms within a given layer
10 > of the profile stack must conform. This will allow package managers
11 > to bail out with an informative error message if the user
12 > accidentally selects a profile containing an EAPI that is not
13 > supported by the currently installed package manager.
14 >
15 >> Long Long Ago there was a conversation about versioning profiles; is
16 >> there some reason why you prefer the eapi method (which arguably has a
17 >> smaller scope) over full profile api versioning (PAPI?)
18
19 I'm not sure what the specific intentions of PAPI are, but the EAPI
20 approach that I've suggested is intended to enable different layers
21 of the stack to contain dependency atoms that conform to different
22 EAPIs. For example, the base profile could remain at EAPI 0 and
23 could thus be shared between some older profiles that conform to
24 EAPI 0 (at all layers) and some newer profiles that contain some
25 layers which require EAPI 1 or EAPI 2.
26
27 By allowing a mix of different layers with different EAPIs, the
28 intention is to promote code sharing since we can use a common base
29 profile between older and newer profiles, yet still be able to use
30 new EAPIs in newer profiles.
31
32 >> Arguably we could use both in the future as well.
33 >
34 > In order to allow mixed EAPIs in the profiles, and to avoid having
35 > to configure the EAPI in every single layer, each directory of the
36 > profile stack should be able to either override or inherit the EAPI
37 > value that may have been defined in a previous layer of the profile
38 > stack. If no EAPI has been previously defined then it can be assumed
39 > to be 0.
40 >
41 > The format of the configuration file can be very simple, containing
42 > only the EAPI value and nothing more. For example, a file containing
43 > just a single "0" character, followed by a newline, could be
44 > created at profiles/base/eapi in order to explicitly declare that
45 > atoms in the base profile conform to EAPI 0. However, this
46 > particular declaration would be redundant since the base profile
47 > does not inherit from any other profile and therefore it's EAPI
48 > would be assumed to be 0 anyway.
49 >
50 > Does this seem like a good approach? Are there any suggestions for
51 > improvements or alternative approaches?
52 >
53 >> PAPI :)
54
55 Would PAPI provide the same benefits in terms of code sharing by
56 allowing layers with different PAPIs to be mixed?
57
58 - --
59 Thanks,
60 Zac
61 -----BEGIN PGP SIGNATURE-----
62 Version: GnuPG v2.0.9 (GNU/Linux)
63
64 iEYEARECAAYFAkjnrLYACgkQ/ejvha5XGaMvpgCgiRYrpXxCbbHsULEMdxfoYbsZ
65 n7QAoNR3IiMYMX70YnlzTwrEWfgWXv7m
66 =WaSP
67 -----END PGP SIGNATURE-----