He's not dead, he's resting
New Gentoo EAPI Things: Profile eapi Files
This is the second post in a series about new Gentoo EAPI things.
EAPIs as originally conceived applied only to individual package versions. However, EAPI dependent things like package dependency specifications show up in other places too, such as in various profiles files. PMS previously restricted such specifications to EAPI 0 rules, since that was all that could safely be used, but this means no slot dependencies.
A better option would be to let profile files specify which EAPI’s rules to use when parsing the files. This is what the newly-defined profile
eapi files are for. Any directory under
profiles/ itself, may now contain a file named
eapi, consisting of a single line with an EAPI name in it. If present, rather than using EAPI 0 rules for files in that directory the package manager shall use that EAPI. If a package manager doesn’t support that EAPI, it must refuse to use the profile in question — or, for the top level
profiles/ directory, the entire repository.
Since this is a new introduction, people must still wait until compliant package managers are ‘universally’ available (that is to say, in release stages) before starting to use EAPI 1 features elsewhere. But this is now a future possibility, rather than something that can’t happen at all.
Incidentally, you might think you’ve thought of something clever you could do with profiles if only you could use use dependencies there. Your clever idea has already occurred to others, and it doesn’t work. There is no legitimate use for any of EAPI 2’s new features in profiles.
Paludis has profile
eapi file support in the next release (0.32.4 or 0.34.0). Portage doesn’t yet support this.