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 |