Alexis Ballier posted on Fri, 23 Nov 2012 18:11:30 -0300 as excerpted:

> I remember I was more or less against [USE=introspection] being global
> back then, but now I must admit its meaning is quite clear and that I
> don't consider it local anymore (I enable/disable it in make.conf not
> package.use), so I'd say go for it.

FWIW as a (long-time reasonably technical, even for gentoo) gentoo user, 
with very few exceptions, ALL my flags are in make.conf (actually, in a 
file /etc/portage/make/use, sourced from make.conf, as are several other 
files in that dir, make.conf itself is simply a bunch of source lines, 
but whatever), and thus "global" in terms of my own usage.

I /consistently/ run with --ask/--pretend and verify flags on new 
packages, as well as checking any flag changes on existing packages, and 
making a system-wide-default decision once seems the easiest and most 
reasonable way to handle it, here.

Then when I decide to change it for a package, I run equery hasuse and 
see what else uses that flag, then grep for it in both package.use/* and 
make/use, then change it globally if possible and run a --newuse --
pretend to see what changed, and decide then whether I want to keep the 
global change or if I want some packages each way, decide what I want the 
default to be, and put the others in package.use/*.

There are only two exception packages, udev and ncmpc.  Otherwise, even 
my package.use files are per-USE-flag.  One ls is worth a thousand-word 
description:

$ ls /etc/portage/package.use/
0neg-amr            0neg-network   doc      secure-delete               
0neg-bindist        0neg-openssl   gtk      sql                         
0neg-custom-cflags  0neg-qt4       minimal  suid
0neg-deprecated     0neg-threads   perl     text
0neg-faac           0neg-webkit    pic      unlock-notify
0neg-gnutls         0neg-xml       pipe     webkit
0neg-gpg            0neg-zeroconf  python   zzpkg-ncmpc
0neg-kde            0neg-zlib      sdl      zzpkg-udev


I'd guess that the global/local USE flag distinction is in practice lost 
on most users, and that of those that /do/ know the technical difference, 
likely most use make.conf for most local USE flags anyway, at least
setting a system default, from which individual packages may deviate via 
package.use.  That's certainly the case here.

Given that, I'd argue that the global/local USE flag distinction is 
almost entirely maintainer convenience (tho I'm not sure it actually /is/ 
a convenience, at least for those who bother to fill in the per-package 
metadata description of what it's actually doing for that package) in any 
case, and I'd just as soon get rid of it, keeping a global description of 
ALL USE flags, regardless, and mandating appropriate metadata.xml local 
descriptions regardless as well.

That way, global flags such as python would actually have reasonable per-
package descriptions.  Does it simply enable python script bindings?  
Does it enable installation of a bunch of python scripts?  Does it enable 
a python-script extension for the package?  What?  The global python flag 
doesn't say, and far too few packages with the global python USE flag 
have a local description saying what it actually DOES.  Unfortunately, 
that's the case with (raw guess) half the USE flag usage out there -- the 
gentooer has to actually read the ebuild to see what the flag does /for/
/that/ /package/, even tho the description SHOULD be in metadata.xml, 
thus exposed via equery uses, even for global flags.

-- 
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


Reply via email to