Gentoo Archives: gentoo-portage-dev

From: Rich Freeman <rich0@g.o>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] Re: Dynamic USE dependencies
Date: Fri, 03 Apr 2015 02:26:06
Message-Id: CAGfcS_=v080LzTZkv=nNK_ECtgKOWzSRZ4B6yt+ZyMOqh_nS_Q@mail.gmail.com
In Reply to: [gentoo-portage-dev] Re: Dynamic USE dependencies by Duncan <1i5t5.duncan@cox.net>
1 On Thu, Apr 2, 2015 at 10:10 PM, Duncan <1i5t5.duncan@×××.net> wrote:
2 > Rich Freeman posted on Thu, 02 Apr 2015 12:32:41 -0400 as excerpted:
3 >
4 >> Out of curiosity, what is keeping us from having USE flag dependencies
5 >> handled dynamically, in the same way that package dependencies are? If
6 >> portage can figure out that I need libxml2 installed even if I don't put
7 >> it in /var/lib/portage/world, why can't it figure out that I need it
8 >> built with USE=icu even if I don't put that in /etc/portage/package.use?
9 >
10 > Because USE flags are binary, with "not-yes" implying "no", while world
11 > set listings are binary, with "not-yes" implying "do it anyway if needed"?
12
13 That doesn't need to be true. Not listing a flag in your config can
14 just mean "do it anyway if needed." Package USE dependencies already
15 work this way - you can depend on a flag being set, on it being unset,
16 or not mention the flag at all which means the package doesn't care.
17
18 > Changing the implied meaning of "not-yes" to match in both cases could
19 > certainly be done, but while I'm not opposed if the justification really
20 > is there, I think there's the potential here for a rather massive change
21 > in base assumptions, and if that is indeed what's involved, I believe
22 > it'd call for equally massive justifications.
23
24 There is no question that it would be a change in behavior. However,
25 I wouldn't anticipate a lot of changes.
26
27 If you stuck -* in your make.conf then this change would have no
28 affect at all, since you've explicitly set the configuration of every
29 use flag.
30
31 Anything already in package.use would still stick, since that is also
32 configuration. If you wiped your package.use clean then there would
33 be a possible change, but that is something the user has control over,
34 and presumably for them it is a change for the better if they're
35 making it.
36
37 Things would still default to their profile/package defaults as they
38 already do if you don't stick anything in your config files. However,
39 future package installs that require a USE change would just make the
40 change if you didn't explicitly bar that configuration. It wouldn't
41 modify your config files.
42
43 >
44 > And I'm worried that the suggestion here is going further down that
45 > emerge writing its own config path, without (IMO) appropriate safeguards.
46
47 I think this is exactly the opposite. It would get rid of the need to
48 have portage go modifying package.use at all in many cases. You'd
49 still need to modify configuration (perhaps with automatic help) if
50 you had explicitly set something which conflicts with what you want to
51 install (such as USE=-* globally). However, for users who just go
52 with the profile defaults they wouldn't have to stick nearly as much
53 stuff in package.use just to change a flag setting they never
54 expressed a personal preference for one way or the other.
55
56 The current configuration forces you to use config files to capture
57 settings you care about, and also ones you don't actually care about,
58 and unless you're careful you'll have trouble telling these settings
59 apart later. It is like sticking every installed package in your
60 world file.
61
62 --
63 Rich

Replies

Subject Author
[gentoo-portage-dev] Re: Dynamic USE dependencies Duncan <1i5t5.duncan@×××.net>