On 2018-07-21 9:33 a.m., Rich Freeman wrote: > On Sat, Jul 21, 2018 at 5:33 AM Zac Medico <zmed...@gentoo.org> wrote: >> >> Sure, why not? So ^flag would mean that the flag state propagates from >> the settings in IUSE. > > Presumably this could be overridden in subsequent profiles, or > /etc/portage. That is, one profile might set a flag, and another > profile could unset it, and then the final one could re-set it. > >> It's also conceivable that we could add a way for >> profiles to modify the effective IUSE defaults, via new operators in >> package.use or by introducing a new file such as package.use.default. > > That makes sense, or the syntax could be available in the ebuild. I > imagine the better approach to take would depend on the nature of the > incompatibility. >
This is getting a little scary as to what is overriding what, within a repo. Lets take a look at what we -can- do right now: (a) use flag can be set globally by the repo (b) ebuild IUSE can set (and unset?) a flag's state (c) make.defaults and package.use from the profile (that generally is defined within the gentoo repo) sets/unsets a flag's state (d) make.conf sets/unsets a flag's state (e) /etc/portage/package.use sets/unsets a flag's state (f) {,package.}use.{mask,force} from the profile overrides a-e (g) /etc/portage/profile/{,package.}use.{mask,force} overrides f That's a lot of possible state overriding. Now as I understand it, the issue here is that there is no way in (d) to undo what is done in (c) on a global per-flag basis, ie, from make.defaults, such that IUSE(b) is honored, correct? What if we just split (c) so that make.defaults (c1) and package.use (c2) are applied independently? That way (d) is meant to override (c1), and (e) is meant to override (c2), and if an end-user wants IUSE to take priority over (c1)+(d) they can change USE_ORDER accordingly? I believe with wildcards, that in (e) we can set global flag overrides still via an atom (like "*/*::gentoo [flag]") in /etc/portage/package.use, correct? So we end-users would still have the ability to define global state of a flag with a single line even if IUSE was prioritized above make.defaults+make.conf Note that I'm not suggesting we change the default value of USE_ORDER right now, only that if we split 'defaults' into 'makedefaults' and 'packagedefaults' that end-users could set it up themselves a lot more easily by changing their own USE_ORDER default.
signature.asc
Description: OpenPGP digital signature