Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] eapi files and profiles
Date: Fri, 23 Oct 2009 21:07:55
Message-Id: 20091023210425.GA7171@hrair
In Reply to: [gentoo-dev] eapi files and profiles by Samuli Suominen
1 On Fri, Oct 23, 2009 at 11:24:27AM +0300, Samuli Suominen wrote:
2 > So I was told Council needs to approve inheritance of eapi files from
3 > parent profiles?
4 >
5 > I'm not sure why, because we shouldn't have any files in default/linux/
6 > which was decided long ago when the new profiles was introduced...
7 >
8 > gentoo-x86/profiles/default/linux $ find ./ -name eapi | wc -l
9 > 63
10 >
11 > That's 63 duplicated files. We should only have one releases/10.0/eapi
12 > file, and others wouldn't be required as it would cover all the 10.0
13 > profiles.
14 >
15 > See, http://bugs.gentoo.org/288320
16 >
17 > Can we get a decision on this soon, so we can drop the duplication for
18 > 10.1 (or whatever the name for next profile set will be called) ?
19
20 This is going to break compatibility for pkgcore at least- we limit
21 what forms of atoms are allowed dependant on the eapi of that profile
22 node. I'd hope paludis does the same- I know portage doesn't however.
23
24 Further... the more I think about this, the more I'm inclined to think
25 this will blow someones foot off. If the eapi is inherited from the
26 parent, what happens when the parent switches to an EAPI that changes
27 the atom parsing rules? Specifically, *restricts* the atom parsing
28 rules?
29
30 Say that we got rid of the ~ operator w/in EAPI4. '~' is completely
31 valid in the default EAPI=0; if the parent profile switches to EAPI4,
32 it suddenly breaks parsing of any defaulted EAPI that used revision
33 matching.
34
35 So... inheritance sucks. It gets worse when you have user
36 configuration (custom profiles) inheriting from gentoo-x86 provided
37 profiles- I'd expect user config to use things that are more cutting
38 edge.
39
40 Alternative approach- the default EAPI currently is 0, and isn't
41 overridable. Add a file into the base of the profile directory that
42 specifies the default EAPI.
43
44 Via that, you can do your file optimizations- if the majority of
45 profile nodes are eapi=2, then you set the default to 2 and update the
46 nodes that were reliant on the previous default.
47
48 Note this still requires having this change sit in the tree for a
49 while for compatibilty reasons- but it is a good idea regardless to
50 avoid requiring EAPI to be specified for every single profile node
51 when we've hit EAPI=7....
52
53 ~harring