1 |
Rich Freeman posted on Thu, 02 Apr 2015 12:32:41 -0400 as excerpted: |
2 |
|
3 |
> Out of curiosity, what is keeping us from having USE flag dependencies |
4 |
> handled dynamically, in the same way that package dependencies are? If |
5 |
> portage can figure out that I need libxml2 installed even if I don't put |
6 |
> it in /var/lib/portage/world, why can't it figure out that I need it |
7 |
> built with USE=icu even if I don't put that in /etc/portage/package.use? |
8 |
|
9 |
Because USE flags are binary, with "not-yes" implying "no", while world |
10 |
set listings are binary, with "not-yes" implying "do it anyway if needed"? |
11 |
|
12 |
OK, so the USE flag "not-yes" implied "no" /is/ a bit weak, packages omit |
13 |
the USE flag if they (or their maintainer) actually require the feature |
14 |
and simply hard-require what would otherwise be toggled by the USE flag, |
15 |
but by that same token, the very fact that the USE flag exists makes it |
16 |
an option for the admin that would toggle the flag, strengthening the USE |
17 |
flag's implied-no of the not-yes, and in any case, it's still *far* |
18 |
stronger than the "do-it-anyway-if-needed" of simply not listing a |
19 |
package in the world set. |
20 |
|
21 |
Meanwhile, there is of course a way to have "no" for a world listing, put |
22 |
it in package.mask. Similarly, there'a a way to enforce an explicit "no" |
23 |
for that implied by a USE "not-yes", by setting USE=-* at the beginning, |
24 |
and users who eventually get tired of having to worry about profile |
25 |
changes meaning implied USE flag changes, etc, may well eventually set |
26 |
it, as I did. But that doesn't change the basic difference in what "not- |
27 |
yes" is implied to mean in the two cases. |
28 |
|
29 |
|
30 |
Changing the implied meaning of "not-yes" to match in both cases could |
31 |
certainly be done, but while I'm not opposed if the justification really |
32 |
is there, I think there's the potential here for a rather massive change |
33 |
in base assumptions, and if that is indeed what's involved, I believe |
34 |
it'd call for equally massive justifications. OTOH, maybe you're |
35 |
thinking something a bit more incremental, which would accordingly |
36 |
require lower justification. I'm just a bit worried... |
37 |
|
38 |
|
39 |
... And I /still/ don't like that --ask, implies that I think it's OK for |
40 |
portage to write to my package.* files (even with config-protection), if |
41 |
I accidentally hit enter. When the danger was simply that a package |
42 |
merge that would take some time and thus could easily be aborted, that |
43 |
was IMO reasonable. The new situation is IMO far more borderline. I'd |
44 |
be a whole lot more comfortable if some EMERGE_DEFAULTs parameter could |
45 |
be set to turn off portage's writing to package.* entirely, while keeping |
46 |
the old --ask package-merging /and/ use-flag/mask/keywording SUGGESTION |
47 |
behavior. |
48 |
|
49 |
And I'm worried that the suggestion here is going further down that |
50 |
emerge writing its own config path, without (IMO) appropriate safeguards. |
51 |
|
52 |
-- |
53 |
Duncan - List replies preferred. No HTML msgs. |
54 |
"Every nonfree program has a lord, a master -- |
55 |
and if you use the program, he is your master." Richard Stallman |