On 07-09-2012 16:38:15 -0700, Gregory M. Turner wrote:
> On 9/7/2012 10:32 AM, Fabian Groffen wrote:
> > With the introduction of IMPLICIT_IUSE (scheduled for EAPI 5), a phrase
> > has been added to PMS, that finally makes a statement on what's supposed
> > to be in IUSE, and what not[2]. To me, this patch means that things like
> > userland_BSD, elibc_glibc, etc. do *NOT* belong in IUSE of an
> > ebuild/eclass (and hence should be removed). 'prefix', on the other
> > hand, should be added to IUSE of those ebuilds/eclasses that use them.
>
> What, exactly, is the difference -- the principle behind the "should"s
> above? USE_EXPAND? Probably more a problem of me being lazy than
> anything being wrong with it, but [2] reads like Greek to me.
USE_EXPAND - yes.
> > For EAPI 5 (assuming it contains IMPLICIT_IUSE) the base profile can be
> > enriched with IMPLICIT_IUSE="prefix".
> >
> > For all currently Council approved EAPIs this means 'prefix' has to be
> > added to IUSE.
>
> I haven't looked into IMPLICIT_IUSE too carefully, but ... shouldn't
> this be... implicit? Sorry, I'm being super lazy and not reading
> anything here.
The idea here is that the package manager knows in advance which
USE-flags are valid for the ebuild. I called that 'defined' lateron in
this mail.
Normally, if you use a USE-flag, you add them to IUSE of the ebuild.
However, some USE-flags have been considered too general to put them in
there in the past.
Most of those are arch-related, keyword, userland_*, etc. IMPLICIT_IUSE
is meant to accomodate this case for ordinary USE-flags, like 'prefix'.
That is, a USE-flag added to IMPLICIT_IUSE is always there, and hence no
need to add it to IUSE of the ebuild. This only works for EAPI 5
(assuming it gets accepted), though.
> > In case you wonder why this is a problem now, Portage/repoman has a rule
> > that USE-flags that are masked in the profiles implicitly are defined.
>
> Probably making a total ass of myself at this point but... could you
> define "defined"? I'm guessing I'd understand how to get flags masked
> implicitly if I read the IMPLICIT_IUSE stuff? Or do you mean "are
> defined implicitly" (in which case, again, I don't see why we'd need to
> make them explicit).
There is probably different wording for this, but what I meant was that
ebuilds can only use USE-flags that are defined to be used by the
ebuild. The latter is done through listing it in IUSE in the ebuild.
> > [2] http://git.overlays.gentoo.org/gitweb/?p=proj/pms.git;a=commitdiff;h=d9040ab3482af5f790368bac5d0 53bf1cd760ba8;hp=f9f7729c047300e1924ad768a49c660e1 2c2f906
>
> Apologies for these questions -- in my defense, being both lazy and
> ignorant puts me at a real disadvantage here
The real question here is if the dev community agrees on adding 'prefix'
conditionally to IUSE in many eclasses and ebuilds.
--
Fabian Groffen
Gentoo on a different level