Gentoo Archives: gentoo-dev

From: Raymond Jennings <shentino@×××××.com>
To: gentoo-dev <gentoo-dev@l.g.o>
Subject: Re: [gentoo-dev] "Lazy" use flags?
Date: Thu, 11 Feb 2016 05:48:37
Message-Id: CAGDaZ_rTGzVWY9ow3c9g1Z0igr3_-ecnUsz6yoUHYsJphvgZXA@mail.gmail.com
In Reply to: Re: [gentoo-dev] "Lazy" use flags? by Kent Fredric
1 Yeah the "soft" thing was meant as "do this unless something breaks, then
2 do it otherwise"
3
4 On Wed, Feb 10, 2016 at 8:57 PM, Kent Fredric <kentfredric@×××××.com> wrote:
5
6 > On 11 February 2016 at 15:51, Rich Freeman <rich0@g.o> wrote:
7 > > In this case you just wouldn't enable python 2.7 support, but you
8 > > wouldn't disable it either. Portage would just pull it in where it is
9 > > needed.
10 >
11 >
12 > But you still need a mechanism in place if you *dont* want that to happen.
13 >
14 > I might choose to forbid python2.7 support, and portage really
15 > shouldn't "auto enable" python 2.7 support if I've explicitly
16 > indicated I don't want python 2.7 support.
17 >
18 > Unless of course you're suggesting "USE=-python_targets_python2_7"
19 > would not be "auto-enableable"
20 >
21 > But then you're *still* requiring a tri-state USE.
22 >
23 > USE="-foo" + IUSE="+foo" => "-foo" => autouse enables foo if required
24 > USE="" + IUSE="+foo" => "foo" => standard EFFECTIVE_USE="foo"
25 > USE="foo" + IUSE = "+foo" => "foo" => standard EFFECTIVE_USE="foo"
26 > USE="-foo" + IUSE="foo" => "-foo" => autouse enables foo if required
27 > USE="" + IUSE="foo" => "-foo" => autouse enables foo if required
28 > USE="foo" + IUSE="foo" => "foo" => standard EFFECTIVE_USE="foo"
29 >
30 >
31 > So the logic composing USE + IUSE has to change in generating the
32 > effective USE set so that USE + IUSE can emit a 3rd and 4th state.
33 >
34 > USE="-foo" + IUSE="+foo" => "-foo!!" => autouse fails if foo is required
35 > USE="" + IUSE="+foo" => "foo" => standard
36 > EFFECTIVE_USE="foo", auto-unuses foo if blocked by a dep
37 > USE="foo" + IUSE = "+foo" => "foo!!" => standard EFFECTIVE_USE="foo",
38 > fails if foo is "blocked" by a dep
39 > USE="-foo" + IUSE="foo" => "-foo!!" => autouse fails if foo is required
40 > USE="" + IUSE="foo" => "-foo" => autouse enables foo if required
41 > USE="foo" + IUSE="foo" => "foo!!" => standard EFFECTIVE_USE="foo",
42 > fails if "foo" is blocked by a dep.
43 >
44 >
45 > Mentally keeping track of this accounting magic would be complicating
46 > matters.
47 >
48 > --
49 > Kent
50 >
51 > KENTNL - https://metacpan.org/author/KENTNL
52 >
53 >