1 |
IUSE defaults are used in a few different ways: |
2 |
|
3 |
1 To ensure that critical functionality is enabled. |
4 |
|
5 |
* Example: force the "unix" module for apache. |
6 |
|
7 |
2 To avoid an unsatisfied REQUIRED_USE by default. |
8 |
|
9 |
* Example: having a non-empty RUBY_TARGETS by default. |
10 |
|
11 |
3 To make Gentoo defaults the upstream defaults. |
12 |
|
13 |
* Example: right now the defaults for dev-lang/php build |
14 |
you a "normal" PHP installation. |
15 |
|
16 |
4 To make the default build agree with the maintainer's personal |
17 |
preferences. |
18 |
|
19 |
* Example: enabling hpn in net-misc/openssh by default. |
20 |
|
21 |
|
22 |
We don't have a policy for how to use them, so we get all four in the |
23 |
tree. I don't think there are any downsides to #1. |
24 |
|
25 |
The downside to #2 is that the default choice may be wrong, but the |
26 |
benefit outweighs that. For a given package, the user either cares about |
27 |
the USE flags or he doesn't (if it's some deep dependency). Both cases |
28 |
turn out fine in #2. |
29 |
|
30 |
A bigger problem arises from #3 and #4: it's no longer simple to get a |
31 |
minimal system. When various USE flags default on at random, you get |
32 |
users doing things like USE="-*". We can tell them not to do that, |
33 |
because of the flags in #1, but in fact very few IUSE defaults are |
34 |
critical, and most of them are junk. The only way to turn off all the |
35 |
junk ones without a huge waste of time is USE="-*". |
36 |
|
37 |
Can we discourage IUSE defaults except for #1 and #2? I'm equally guilty |
38 |
of #3 and #4, but I now regret them. I would also like to see |
39 |
explanations in metadata.xml of why +flags are on by default. |