Gentoo Archives: gentoo-portage-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-portage-dev@l.g.o
Subject: [gentoo-portage-dev] Re: Dynamic USE dependencies
Date: Fri, 03 Apr 2015 02:11:00
Message-Id: pan$900d4$2e9bc9e9$910a0993$6b60eca3@cox.net
In Reply to: [gentoo-portage-dev] Dynamic USE dependencies by Rich Freeman
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

Replies

Subject Author
Re: [gentoo-portage-dev] Re: Dynamic USE dependencies Rich Freeman <rich0@g.o>