1 |
On 2018-07-21 9:33 a.m., Rich Freeman wrote: |
2 |
> On Sat, Jul 21, 2018 at 5:33 AM Zac Medico <zmedico@g.o> wrote: |
3 |
>> |
4 |
>> Sure, why not? So ^flag would mean that the flag state propagates from |
5 |
>> the settings in IUSE. |
6 |
> |
7 |
> Presumably this could be overridden in subsequent profiles, or |
8 |
> /etc/portage. That is, one profile might set a flag, and another |
9 |
> profile could unset it, and then the final one could re-set it. |
10 |
> |
11 |
>> It's also conceivable that we could add a way for |
12 |
>> profiles to modify the effective IUSE defaults, via new operators in |
13 |
>> package.use or by introducing a new file such as package.use.default. |
14 |
> |
15 |
> That makes sense, or the syntax could be available in the ebuild. I |
16 |
> imagine the better approach to take would depend on the nature of the |
17 |
> incompatibility. |
18 |
> |
19 |
|
20 |
This is getting a little scary as to what is overriding what, within a |
21 |
repo. |
22 |
|
23 |
Lets take a look at what we -can- do right now: |
24 |
|
25 |
(a) use flag can be set globally by the repo |
26 |
(b) ebuild IUSE can set (and unset?) a flag's state |
27 |
(c) make.defaults and package.use from the profile (that generally is |
28 |
defined within the gentoo repo) sets/unsets a flag's state |
29 |
(d) make.conf sets/unsets a flag's state |
30 |
(e) /etc/portage/package.use sets/unsets a flag's state |
31 |
(f) {,package.}use.{mask,force} from the profile overrides a-e |
32 |
(g) /etc/portage/profile/{,package.}use.{mask,force} overrides f |
33 |
|
34 |
That's a lot of possible state overriding. |
35 |
|
36 |
Now as I understand it, the issue here is that there is no way in (d) |
37 |
to undo what is done in (c) on a global per-flag basis, ie, from |
38 |
make.defaults, such that IUSE(b) is honored, correct? |
39 |
|
40 |
What if we just split (c) so that make.defaults (c1) and package.use |
41 |
(c2) are applied independently? That way (d) is meant to override |
42 |
(c1), and (e) is meant to override (c2), and if an end-user wants IUSE |
43 |
to take priority over (c1)+(d) they can change USE_ORDER accordingly? |
44 |
|
45 |
I believe with wildcards, that in (e) we can set global flag overrides |
46 |
still via an atom (like "*/*::gentoo [flag]") in |
47 |
/etc/portage/package.use, correct? So we end-users would still have |
48 |
the ability to define global state of a flag with a single line even |
49 |
if IUSE was prioritized above make.defaults+make.conf |
50 |
|
51 |
Note that I'm not suggesting we change the default value of USE_ORDER |
52 |
right now, only that if we split 'defaults' into 'makedefaults' and |
53 |
'packagedefaults' that end-users could set it up themselves a lot more |
54 |
easily by changing their own USE_ORDER default. |