Fabian Groffen <[email protected]> writes:

> On 26-10-2013 10:13:29 +0200, Ruud Koolen wrote:
>> On Saturday 26 October 2013 09:41:28 Fabian Groffen wrote:
>>> As you may or may not know, the prefix USE-flag is a hack that works in
>>> Portage, but violates specifications, because it is never defined in
>>> ebuilds that need it.  Discussions here go back to not wanting to show
>>> elibc_XXX, kernel_XXX in IUSE (because user can't influence them) and
>>> prefix likewise.  We should still solve this problem.  While we're at
>>> it, I'd like to tackle bug #473598 [1] at the same time.
>> 
>> Not so! Any USE flags that are globally masked or forced are in the 
>> implicit-iuse list. Or is that what you meant as the hack? I think it's 
>> specified somewhere.
>
> Last thing I understood, forcing it -- making it global -- is a Portage
> behaviour, eapi-5 introduced some variable to define it or so.  So maybe
> my entire comment is moot considering we aim for >=eapi-5.

USE prefix is a separate issue. Let's bring it to dev mailing list
afterwards.

>> > Anyway, I was thinking more along the lines of using USE_EXPAND.
>> > There's also a USE_EXPAND_HIDDEN, and something like this [2] looks
>> > good.  
>> 
>> USE_EXPAND is fine too, it's just a special case of a USE flag, after
>> all. It is perhaps more elegant than plain USE flags, and my plan was
>> based on kernel_* and friends anyway.
>> 
>> > In other words, I could think of having EPREFIX="$classic" or 
>> > EPREFIX_TARGET="$rap", which could default to $classic in
>> > base/make.defaults.
>> 
>> It should default to "" in base/make.defaults. Only the prefix profiles 
>> should 
>> set it to anything nonempty.
>
> Have given this some thoughts, and maybe we need the global switch
> whether or not prefix is enabled, and an additional features list to
> select the variant of prefix (rap in this case).  Maybe that's complete
> overkill, and your variant's nicer.  Anyway, a migration path or
> backwards compatability is also important since use prefix is widely
> adopted in gx86 nowadays...

classic and rap Prefix is matter of libc anyway.

How about a new USE flag as elibc_external? it's self-informative.
Define it on Linux variants of Prefix classic.

Then hacks in the ebuild can be written as

   if use prefix && use elibc_external then ...

The question is whether to define elibc_glibc at the same time,

by "grep elibc_glibc -r /usr/portage", one example of elibc_glibc is

   elibc_glibc? ( sys-libs/glibc )

where elibc_glibc should not be defined (at present we hack by adding
sys-libs/glibc:0 into package.provides) but another is

   $(use !elibc_glibc || echo --without-included-regex)

where elibc_glibc should be defined.

... It seems resonable to define elibc_external and elibc_glibc at the
same times.

Cheers,
Benda

Reply via email to