Gentoo Archives: gentoo-dev

From: Zac Medico <zmedico@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
Date: Fri, 27 Apr 2012 07:31:41
Message-Id: 4F9A4B23.9090205@gentoo.org
In Reply to: Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force by Zac Medico
1 On 04/26/2012 11:48 PM, Zac Medico wrote:
2 > On 04/26/2012 11:28 PM, Mike Frysinger wrote:
3 >> On Friday 27 April 2012 00:43:15 Jonathan Callen wrote:
4 >>> On 04/26/2012 06:03 PM, Andreas K. Huettel wrote:
5 >>>> I'd like to suggest we introduce the following very useful
6 >>>> feature, as soon as possible (which likely means in the next
7 >>>> EAPI?):
8 >>>>
9 >>>> * two new files in profile directories supported,
10 >>>> package.use.stable.mask and package.use.stable.force * syntax is
11 >>>> identical to package.use.mask and package.use.force * meaning is
12 >>>> identical to package.use.mask and package.use.force, except that
13 >>>> the resulting rules are ONLY applied iff a stable keyword is in
14 >>>> use
15 >>>
16 >>> As "a stable keyword is in use" is either ambiguous or outright wrong
17 >>> (depending on exactly what was meant by that), I would propose that
18 >>> one of the following cases replace that:
19 >>>
20 >>> * At least one keyword beginning with "~" or the value "**" is in the
21 >>> global ACCEPT_KEYWORDS.
22 >>> * At least one keyword beginning with "~" or the value "**" is in the
23 >>> ACCEPT_KEYWORDS used for the package in question.
24 >>>
25 >>> This is required because on a typical ~amd64 system, the effective
26 >>> value of ACCEPT_KEYWORDS is "amd64 ~amd64" -- which would be covered
27 >>> under "a stable keyword is in use" (the same applies for other arches
28 >>> as well).
29 >>
30 >> i don't think that wording is correct and misses the point. simple example of
31 >> how this should work:
32 >>
33 >> if package.use.stable.force has:
34 >> cat/pkg foo
35 >>
36 >> and then cat/pkg/pkg-0.ebuild has:
37 >> KEYWORDS="~amd64 x86"
38 >>
39 >> the forcing of "foo" would apply to people who are ARCH=x86 (regardless of
40 >> their ACCEPT_KEYWORDS containing ~x86), but not apply to people who are
41 >> ARCH=amd64. once the ebuild changes to KEYWORDS="amd64 x86", then it would
42 >> apply to both.
43 >>
44 >> i.e. the keyword matching is to the ebuild, not to the user's ACCEPT_KEYWORDS.
45 >
46 > That makes sense in the context of trying to keep repoman from
47 > complaining. Since repoman complains about stable keywords for packages
48 > with unstable dependencies, package.use.stable.{force,mask} will serve
49 > to mask off conditional dependencies that would otherwise trigger
50 > *DEPEND.bad complaints from repoman.
51
52 Actually, I don't think the specification should involve ARCH. In order
53 to determine whether package.use.stable.{force,mask} apply, I would
54 intersect KEYWORDS with ACCEPT_KEYWORDS, and apply
55 package.use.stable.{force,mask} if this intersection contains only
56 stable keywords. So, I think that I mostly agree with Jonathan's
57 statements, though I describe the behavior slightly differently than how
58 he did.
59 --
60 Thanks,
61 Zac

Replies