Gentoo Archives: gentoo-dev

From: Fabian Groffen <grobian@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [RFC] EAPI={3,4} offset-prefix semantics mandatory?
Date: Tue, 15 Dec 2009 20:25:50
With the current route where EAPI=3 will simply be EAPI=2 +
offset-prefix support, and EAPI=4 will be EAPI=3 + some other stuff, the
following question arose:

  Should an ebuild using an EAPI that has offset-prefix support make the
  use of that support mandatory or optional?

In other words, one can perfectly fine write an ebuild EAPI=3 that will
not work in an offset-prefix install, due to improper absence of EPREFIX,
ED and EROOT.  Should we allow this formally, or not?

Why is this a problem?  Simply because it can be done, but more because
EAPI=4 will introduce features a developer would like to use/rely on,
while she/he does not want, or is not able to write the ebuild in a
Prefix conforming way.

The pros for forcing ebuilds to be offset-prefix aware are:
- an ebuild having EAPI >= 3 (as it looks now) is supposed to work
  for Prefix users
- hence also obviously is (supposed to be) checked for Prefix
- repoman might be able to check for obvious mistakes regarding
  offset-prefix installations

The cons:
- all developers need to be aware of how Prefix works, and be able to
  write ebuilds for it (I can post all the answers to the Prefix quiz)
- basically requires a Prefix to be setup to test
- it will stop developers to some degree to use higher EAPIs in the
  worst case

The pros for allowing ebuilds that have an offset-prefix aware EAPI to
ignore the offset-prefix are:
- easy drop-in replacement for devs, basically the contra of all the
  cons of the previous approach.

The cons:
- not immediately clear which ebuild is offset-prefix aware (could look
  at Prefix keywords)
- needs proper rules; an ebuild that has offset-prefix support may not
  have this support removed again (breaks Prefix users, how to enforce?)
- ebuilds may get offset-prefix support at a later stage, which may not
  entirely be understood/noticed by (their maintaining) devs

Please voice your opinion and share your insights, if any.

Fabian Groffen
Gentoo on a different level