Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Revisions for USE flag changes
Date: Mon, 14 Aug 2017 01:34:28
Message-Id: pan$db2f5$2b482d07$95880de1$6f9cc194@cox.net
In Reply to: Re: [gentoo-dev] Re: Revisions for USE flag changes by "M. J. Everitt"
1 M. J. Everitt posted on Sun, 13 Aug 2017 11:18:09 +0100 as excerpted:
2
3 > On 13/08/17 11:11, Michael Orlitzky wrote:
4 >> On 08/12/2017 10:52 PM, Duncan wrote:
5 >>> How so? Are you arguing that deciding to system-wide switch to/from
6 >>> pulseaudio, systemd, or gstreamer is nonsense?
7 >>>
8 >> The meaning of any one USE flag varies widely across packages. I could
9 >> never say "I want to enable USE=gstreamer" for every package in the
10 >> tree, because I have no idea what it does for most of them. Setting
11 >> USE=whatever globally essentially means "make random changes to my
12 >> system" -- hence my wording.
13 >>
14 >> The meaning of a USE flag is per-package, so per-package is the only
15 >> meaningful way to set them.
16 >>
17 > Which is why we have GLOBAL use flags and LOCAL use flags, right?!
18 >
19 > I'm not sure I'm actually reading this discussion right now?! and I'm
20 > *not* a dev ...
21
22 Even then... given the descriptions of most flags, regardless of global
23 or local, without reading the sources (assuming one /can/ read them) it's
24 generally a WAG what a flag actually does on an individual package. The
25 information simply isn't there, except in the sources, and few people
26 care enough about what a flag does to actually go the work of reading
27 /all/ affected sources.
28
29 [TL;DR stop here]
30
31 FWIW, here I set USE="-* ..." in make.conf[1], so I can't /not/ have a
32 global policy. If the flag's in make.conf, global policy says it's on.
33 If it's not, global policy says it's off. There's no longer an "on if
34 someone else defaults it that way, subject to change without pre-
35 notification" state. After a few years chasing down reasons for changes
36 to see if I agreed or not, I simply found it simpler to ensure I was the
37 only one toggling USE flags, in which case I'd know exactly why I did it.
38
39 And it works surprisingly well, too, particularly when package.use is
40 multiple files, each named after a flag, "0-flag" for negating exceptions
41 to an on global policy, simply "flag" for "posating" exceptions to an off
42 global policy. With dates and comments for each exception and all the
43 exceptions in one place (it's easy to equery uses the settings for a
44 package, not so easy to find all the exceptions to a global policy
45 setting and why, unless the exceptions are all in one place organized by
46 flag name), management is as simple as it's going to get.
47
48 --
49 Duncan - List replies preferred. No HTML msgs.
50 "Every nonfree program has a lord, a master --
51 and if you use the program, he is your master." Richard Stallman