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 |