Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: Gentoo Dev <gentoo-dev@l.g.o>
Cc: gentoo-portage-dev@l.g.o
Subject: [gentoo-dev] [RFC] Label profiles with EAPI for compatibility checks (revised)
Date: Sun, 05 Oct 2008 23:51:15
Message-Id: 48E952E5.4070701@gentoo.org
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA1
3
4 Hi everyone,
5
6 This is a revised version of the profile EAPI lables proposal which
7 has been discussed previously [1].
8
9 Please consider a new 'eapi' profile configuration file that will
10 designate the EAPI to which any package atoms within the files of a
11 given directory of a profile stack must conform. This will allow
12 package managers to bail out with an informative error message if
13 the user accidentally selects a profile containing an EAPI that is
14 not supported by the currently installed package manager.
15
16 In order to allow a mixture of EAPIs in the profiles, each directory
17 of the profile stack may contain an 'eapi' configuration file to
18 indicate the EAPI for files contained within that specific
19 directory. In order to simplify things and avoid confusion, the EAPI
20 will never be inherited. Therefore, the EAPI assigned to a given
21 directory is assumed to be 0 if that directory does not explicitly
22 contain an 'eapi' configuration file. In addition to the profiles
23 themselves, the root profiles/ directory may also contain an 'eapi'
24 configuration file, since that directory contains 'package.mask' and
25 'info_pkgs' files which contain dependency atoms.
26
27 The format of the configuration file is very simple, containing only
28 the EAPI value on the first line and nothing more. For example, a
29 file containing just a single "0" character, followed by a newline,
30 could be created at profiles/base/eapi in order to explicitly
31 declare that files in the profiles/base/ directory contain
32 dependency atoms that conform to EAPI 0. However, this particular
33 declaration would be redundant since the EAPI is already assumed to
34 be 0 if a given directory does not contain an 'eapi' configuration file.
35
36 Different directories within a given profile stack will be allowed
37 declare different EAPIs. For example, the base profile can remain at
38 EAPI 0 and can thus be shared between some older profiles that
39 conform to EAPI 0 (in all directories of the stack) and some newer
40 profiles that contain some directories which require EAPI 1 or EAPI
41 2. By allowing a mixture of directories with different EAPIs, the
42 intention is to promote code sharing such that it will be possible
43 to use a common base profile between older and newer profiles, yet
44 still be able to use new EAPIs in newer profiles.
45
46 Does this seem like a good approach? Are there any suggestions for
47 improvements or alternative approaches?
48
49 [1]
50 http://archives.gentoo.org/gentoo-dev/msg_b976702d0adcaa5ca5edd0d280f05000.xml
51 - --
52 Thanks,
53 Zac
54 -----BEGIN PGP SIGNATURE-----
55 Version: GnuPG v2.0.9 (GNU/Linux)
56
57 iEYEARECAAYFAkjpUuEACgkQ/ejvha5XGaPGjACbBMTF2wvtfwwOkXVNv6cStQr/
58 iIIAn1v7DbGnYyuWgs2GVxwlOfqyFRl1
59 =MAsI
60 -----END PGP SIGNATURE-----