Peter <[EMAIL PROTECTED]> posted
[EMAIL PROTECTED], excerpted below, on  Wed, 14
Jun 2006 11:29:06 -0400:

> The use.default file in default-linux is now empty. The one in base gives
> you nothing to compare it against. Was there another file you meant?

You don't /need/ another file to compare it against.  That you seem to
think you do implies you don't quite understand how the thing worked,
which explains why you don't see the problem with it.

use.defaults consists of a list of pairs of (normally unset, therefore off)
USE flags and packages.  If the corresponding package is merged and
defaults is in the USE.ORDER list, the flag will now default to on instead
of off.  (As it is normally last in the USE.ORDER list, specific settings
higher in the list, including those made by the user, will of course
override this, as one might expect.)

Thus, you don't need another file to compare use.defaults against, as if
the package triggering the USE flag is merged, the default is on, while if
it's not, the default is off.  Thus, there is no other file to compare it
against, only the list of your merged packages.  The use.defaults file(s)
simply list the packages that trigger the USE flags.  That's all.

The problem with this approach is that the USE flags end up changing
unexpectedly under a user's nose (sound familiar?  understand why that's a
problem?  THOUGHT so!) based on what's merged.  Note that USE flags are
only for OPTIONAL dependencies.  Thus, we have a scenario where a bunch of
packages with OPTIONAL dependencies on something, thus with it as a USE
flag, are merged, then something comes along with a NON-OPTIONAL
dependency on the same package and merges it.  Suddenly and without user
intervention, the USE flag changes from OFF by default to ON by default,
and all those previous packages merged with it off now show up in --newuse
to be remerged!

The most direct solution to the problem is to take defaults out of
USE.ORDER, so use.defaults is no longer factored in.  Altho there's going
to be a bit of initial pain for users who hadn't examined their use flags
(as I contend a responsible admin will have done), for new users and after
the initial adjustment by old users, USE flags will now actually be
normally deterministic -- they'll only change when a user changes them (or
when a profile has reason to do so, and that happens only for a very good
reason with existing profiles, so it would normally only happen when a
user changed his profile).  MUCH better, as the user doesn't have to worry
about USE flags changing out from underneath him.  Given your complaint
about the changes you experienced, I think you'll agree that having them
change out from underneath you isn't all that pleasant, so this is a
needed change.  The only problem was that it wasn't properly documented,
but that  has been taken care of now as well.



-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman

-- 
gentoo-dev@gentoo.org mailing list

Reply via email to