Gentoo Archives: gentoo-pms

From: Ulrich Mueller <ulm@g.o>
To: gentoo-pms@l.g.o
Subject: Re: [gentoo-pms] IUSE_EFFECTIVE and IUSE_REFERENCEABLE
Date: Wed, 18 Jun 2014 18:58:50
Message-Id: 21409.57702.815517.181446@a1i15.kph.uni-mainz.de
In Reply to: Re: [gentoo-pms] IUSE_EFFECTIVE and IUSE_REFERENCEABLE by Ciaran McCreesh
1 >>>>> On Wed, 18 Jun 2014, Ciaran McCreesh wrote:
2
3 > The spec is correct, and discusses what you can actually rely upon
4 > working. It is unfortunate that the Council introduced this
5 > confusion by approving "what Portage has implemented" for EAPI 4,
6 > without considering the implications of approving (+) and (-)
7 > without the stricter USE rules.
8
9 Maybe it becomes clearer if we imagine for the moment that there never
10 was an EAPI 4.
11
12 Take an EAPI 5 ebuild for cat/foo-1 that defines the following
13 dependency:
14
15 RDEPEND="cat/bar-1[abi_x86_64(-)]"
16
17 ABI_X86 is in USE_EXPAND of the profile, also abi_x86_64 is forced
18 enabled via the profile's use.force.
19
20 cat/bar-1 is EAPI 2 and has an empty IUSE.
21
22 Now, according to the spec:
23 | For EAPIs listed in table 5.2 as not supporting profile defined IUSE
24 | injection, IUSE_REFERENCEABLE is equal to the calculated IUSE value.
25
26 So in EAPI 2, IUSE_REFERENCEABLE is equal to IUSE, therefore for bar-1
27 it should be empty.
28
29 Furthermore:
30 | In a 4-style use dependency, the flag name may immediately be
31 | followed by a default specified by either (+) or (-). The former
32 | indicates that, when applying the use dependency to a package that
33 | does not have the flag in question in IUSE_REFERENCEABLE, the
34 | package manager shall behave as if the flag were present and
35 | enabled; the latter, present and disabled.
36
37 In the above RDEPEND, we have a default (-) specifier, and the flag is
38 not in IUSE_REFERENCEABLE of bar-1. So the PM should behave as if the
39 flag was disabled, and the dependency should not be matched.
40
41 However, what we observe is that the PM behaves as if abi_x86_64 was
42 in IUSE_REFERENCEABLE, so the dependency _is_ matched.
43
44 What am I missing here?
45
46 Ulrich

Replies

Subject Author
Re: [gentoo-pms] IUSE_EFFECTIVE and IUSE_REFERENCEABLE Ciaran McCreesh <ciaran.mccreesh@××××××××××.com>