Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 864451

Summary: [Future EAPI] Support dynamic EAPIs via unsetting of the EAPI= variable
Product: Gentoo Hosted Projects Reporter: zachariah.cabelly
Component: PMS/EAPIAssignee: PMS/EAPI <pms>
Status: RESOLVED WONTFIX    
Severity: normal    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description zachariah.cabelly 2022-08-08 18:20:53 UTC
I have an idea for a future EAPI after EAPI 9. That is allowing the EAPI to be determined by the package manager based on what features are used, so that way, using a metadata cache that is already in the current EAPI, we could use that to house the minimum required EAPI that is fully able to parse an ebuild using this feature. This would allow a ton of flexibility in writing ebuilds. Mess-ups like the ebuild to update the Zen Kernel I tried to upload could also be avoided.
Comment 1 Ulrich Müller gentoo-dev 2022-08-08 18:39:53 UTC
I don't believe that this would be possible in a well-defined way. New EAPIs can come with changes in function behaviour (e.g. econf and insopts in EAPI 8) or with different defaults for phase functions (e.g. default_src_install has changed several times). Neither of these are detectable by the package manager looking at the ebuild.

Also, there is no guarantee that an ebuild in a future EAPI would even be parseable by an old package manager. Sourcing it may error out because of a different Bash version (or we may even decide to switch to something other than Bash).
Comment 2 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-08-08 18:41:13 UTC
Not only what ulm said, but this would also add a heavy burden onto implementations and mean a reliance on heuristics that would move us away from formal, well-defined semantics/behaviour.
Comment 3 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2022-08-08 20:57:33 UTC
I think we'd be better off with hearing what issue you had with your ebuild:
>Mess-ups like the ebuild to update the Zen Kernel I tried to upload could also be avoided.