Gentoo Archives: gentoo-pms

From: David Leverton <levertond@××××××××××.com>
To: gentoo-pms@l.g.o
Subject: Re: [gentoo-pms] Runtime-switchable USE flags
Date: Fri, 27 Jun 2014 07:39:21
Message-Id: 53AD1FA2.1040609@googlemail.com
In Reply to: Re: [gentoo-pms] Runtime-switchable USE flags by Ulrich Mueller
1 Ulrich Mueller wrote:
2 >>>>>> On Thu, 26 Jun 2014, David Leverton wrote:
3 >
4 >> If, for example, we make subversion an IUSE_RUNTIME flag of git, and
5 >> some other package depends on dev-vcs/git[-subversion], and the user
6 >> has the subversion flag disabled for git but happens to have
7 >> subversion installed anyway, should the dependency be considered
8 >> satisfied (in which case it's fairly pointless)? Or does it
9 >> magically get treated like a blocker on dev-vcs/subversion?
10 >
11 > It should be treated like a regular USE flag for dependency
12 > resolution. So in your example, the dependency would be satisfied.
13
14 That makes that sort of dependency fairly useless then - it forces the
15 user to mess with their configuration, but it doesn't actually influence
16 what gets installed. If the package is somehow incompatible with
17 git-svn being available and working (OK, it's a pretty contrived
18 example...) then the dependency doesn't do anything to help the
19 situation. If we're OK with that then fine, but it's a potential point
20 of confusion for ebuild authors.
21
22 > More interesting example: Some other package could depend on
23 > dev-vcs/git[-perl]. "perl" is a regular USE flag in git, but is has
24 > "subversion? ( perl )" in REQUIRED_USE. Therefore dev-vcs/git[-perl]
25 > is effectively equivalent to dev-vcs/git[-perl,-subversion]. However,
26 > the restrictions in current GLEP 62 don't cover this case.
27
28 I don't think that's really an issue. If the package is incompatible
29 with the perl support in git then it should say so, and if git-svn
30 happens to be a casualty then the PM can enforce that just fine.
31
32 > Your arguments are valid, but they apply to regular USE flags, too.
33 > So I fail to see why we would need special treatment for runtime
34 > switchable flags here.
35
36 In theory at least, if a regular USE flag is disabled it's supposed to
37 actively remove support for that feature when the package is
38 built/installed. Currently if you depend on dev-vcs/git[-subversion]
39 then you know git-svn isn't installed at all, regardless of whether
40 subversion itself is. With IUSE_RUNTIME, the only difference between a
41 flag being enabled and disabled is that if it's enabled then you know
42 the deps for that feature are installed, but if it's disabled then they
43 might be installed anyway, so depending on that state doesn't guarantee
44 anything.
45
46 > If necessary, we can always impose additional restrictions by tree
47 > policy (as we do for "noblah" flags, for example), but I'd rather not
48 > restrict what the package manager can do. Especially, if we can simply
49 > go with normal USE flag logic in one case, but need special casing for
50 > runtime flags in the other case.
51
52 If we're OK with leaving a potential trap then that's fine, just making
53 sure people are aware. (Perhaps we could have a repoman check instead?)
54
55 >
56 > Ulrich
57 >

Replies

Subject Author
Re: [gentoo-pms] Runtime-switchable USE flags Ulrich Mueller <ulm@g.o>