The ultimate guide to EAPI 8

Three years ago, I had the pleasure of announcing EAPI 7 as a major step forward in our ebuild language. It introduced preliminary support for cross-compilation, it finally provided good replacements for the last Portagisms in ebuilds and it included many small changes that made ebuilds simpler.

Only a year and a half later, I have started working on the initial EAPI 8 feature set. Similarly to EAPI 6, EAPI 8 was supposed to focus on small changes and improvements. The two killer features listed below were already proposed at the time. I have prepared a few patches to the specification, as well as the initial implementation of the respective features for Portage. Unfortunately, the work stalled at the time.

Finally, as a result of surplus of free time last month, I was able to resume the work. Along with Ulrich Müller, we have quickly prepared the EAPI 8 feature set, got it pre-approved, prepared the specification and implemented all the features in Portage and pkgcore. Last Sunday, the Council has approved EAPI 8 and it’s now ready for ~arch use.

What’s there in EAPI 8? Well, for a start we have install-time dependencies (IDEPEND) that fill a gap in our cross-compilation design. Then, selective fetch/mirror restriction make it easier to combine proprietary and free distfiles in a single package. PROPERTIES and RESTRICT are now accumulated across eclasses reducing confusion for eclass writers. There’s dosym -r to create relative symlinks conveniently from dynamic paths. Plus bunch of other improvements, updates and cleanups.

Read the full article

2 thoughts on “The ultimate guide to EAPI 8”

  1. This sounds exciting. The cross-compilation features are also useful when building images for embedded devices, even when they share the same architecture as the host/build machine.

    Thank you for the hard work!

  2. I came upon this EAPI 8 Guide (Jan 28, 2024) after discovering your EAPI 7 Guide (https://mgorny.pl/articles/the-ultimate-guide-to-eapi-7.htm). I’m wondering, does the EAPI 8 guide supplement the EAPI 7 Guide? How do the two relate, and if they relate, is is appropriate for the former (8) to reference the latter (7), and perhaps revise/update the later so that it can direct the read to the latter (8).

    Also, are these guides published on Gentoo’s site? If so, then a link and statement indicating so would be helpful. It concerns me all this wonderful intelligence is living a life outside of the Gentoo ecosystem with a possible risk of loss.

    Well done, and thank you for all your time and efforts for Gentoo.

Leave a Reply

Your email address will not be published.