1 |
Fabian Groffen <grobian@g.o> writes: |
2 |
|
3 |
> On 26-10-2013 10:13:29 +0200, Ruud Koolen wrote: |
4 |
>> On Saturday 26 October 2013 09:41:28 Fabian Groffen wrote: |
5 |
>>> As you may or may not know, the prefix USE-flag is a hack that works in |
6 |
>>> Portage, but violates specifications, because it is never defined in |
7 |
>>> ebuilds that need it. Discussions here go back to not wanting to show |
8 |
>>> elibc_XXX, kernel_XXX in IUSE (because user can't influence them) and |
9 |
>>> prefix likewise. We should still solve this problem. While we're at |
10 |
>>> it, I'd like to tackle bug #473598 [1] at the same time. |
11 |
>> |
12 |
>> Not so! Any USE flags that are globally masked or forced are in the |
13 |
>> implicit-iuse list. Or is that what you meant as the hack? I think it's |
14 |
>> specified somewhere. |
15 |
> |
16 |
> Last thing I understood, forcing it -- making it global -- is a Portage |
17 |
> behaviour, eapi-5 introduced some variable to define it or so. So maybe |
18 |
> my entire comment is moot considering we aim for >=eapi-5. |
19 |
|
20 |
USE prefix is a separate issue. Let's bring it to dev mailing list |
21 |
afterwards. |
22 |
|
23 |
>> > Anyway, I was thinking more along the lines of using USE_EXPAND. |
24 |
>> > There's also a USE_EXPAND_HIDDEN, and something like this [2] looks |
25 |
>> > good. |
26 |
>> |
27 |
>> USE_EXPAND is fine too, it's just a special case of a USE flag, after |
28 |
>> all. It is perhaps more elegant than plain USE flags, and my plan was |
29 |
>> based on kernel_* and friends anyway. |
30 |
>> |
31 |
>> > In other words, I could think of having EPREFIX="$classic" or |
32 |
>> > EPREFIX_TARGET="$rap", which could default to $classic in |
33 |
>> > base/make.defaults. |
34 |
>> |
35 |
>> It should default to "" in base/make.defaults. Only the prefix profiles should |
36 |
>> set it to anything nonempty. |
37 |
> |
38 |
> Have given this some thoughts, and maybe we need the global switch |
39 |
> whether or not prefix is enabled, and an additional features list to |
40 |
> select the variant of prefix (rap in this case). Maybe that's complete |
41 |
> overkill, and your variant's nicer. Anyway, a migration path or |
42 |
> backwards compatability is also important since use prefix is widely |
43 |
> adopted in gx86 nowadays... |
44 |
|
45 |
classic and rap Prefix is matter of libc anyway. |
46 |
|
47 |
How about a new USE flag as elibc_external? it's self-informative. |
48 |
Define it on Linux variants of Prefix classic. |
49 |
|
50 |
Then hacks in the ebuild can be written as |
51 |
|
52 |
if use prefix && use elibc_external then ... |
53 |
|
54 |
The question is whether to define elibc_glibc at the same time, |
55 |
|
56 |
by "grep elibc_glibc -r /usr/portage", one example of elibc_glibc is |
57 |
|
58 |
elibc_glibc? ( sys-libs/glibc ) |
59 |
|
60 |
where elibc_glibc should not be defined (at present we hack by adding |
61 |
sys-libs/glibc:0 into package.provides) but another is |
62 |
|
63 |
$(use !elibc_glibc || echo --without-included-regex) |
64 |
|
65 |
where elibc_glibc should be defined. |
66 |
|
67 |
... It seems resonable to define elibc_external and elibc_glibc at the |
68 |
same times. |
69 |
|
70 |
Cheers, |
71 |
Benda |