Gentoo Archives: gentoo-dev

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

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies