On 04/26/2012 11:48 PM, Zac Medico wrote:
> On 04/26/2012 11:28 PM, Mike Frysinger wrote:
>> On Friday 27 April 2012 00:43:15 Jonathan Callen wrote:
>>> On 04/26/2012 06:03 PM, Andreas K. Huettel wrote:
>>>> I'd like to suggest we introduce the following very useful
>>>> feature, as soon as possible (which likely means in the next
>>>> EAPI?):
>>>>
>>>> * two new files in profile directories supported,
>>>> package.use.stable.mask and package.use.stable.force * syntax is
>>>> identical to package.use.mask and package.use.force * meaning is
>>>> identical to package.use.mask and package.use.force, except that
>>>> the resulting rules are ONLY applied iff a stable keyword is in
>>>> use
>>>
>>> As "a stable keyword is in use" is either ambiguous or outright wrong
>>> (depending on exactly what was meant by that), I would propose that
>>> one of the following cases replace that:
>>>
>>> * At least one keyword beginning with "~" or the value "**" is in the
>>> global ACCEPT_KEYWORDS.
>>> * At least one keyword beginning with "~" or the value "**" is in the
>>> ACCEPT_KEYWORDS used for the package in question.
>>>
>>> This is required because on a typical ~amd64 system, the effective
>>> value of ACCEPT_KEYWORDS is "amd64 ~amd64" -- which would be covered
>>> under "a stable keyword is in use" (the same applies for other arches
>>> as well).
>>
>> i don't think that wording is correct and misses the point.  simple example 
>> of 
>> how this should work:
>>
>> if package.use.stable.force has:
>>      cat/pkg foo
>>
>> and then cat/pkg/pkg-0.ebuild has:
>>      KEYWORDS="~amd64 x86"
>>
>> the forcing of "foo" would apply to people who are ARCH=x86 (regardless of 
>> their ACCEPT_KEYWORDS containing ~x86), but not apply to people who are 
>> ARCH=amd64.  once the ebuild changes to KEYWORDS="amd64 x86", then it would 
>> apply to both.
>>
>> i.e. the keyword matching is to the ebuild, not to the user's 
>> ACCEPT_KEYWORDS.
> 
> That makes sense in the context of trying to keep repoman from
> complaining. Since repoman complains about stable keywords for packages
> with unstable dependencies, package.use.stable.{force,mask} will serve
> to mask off conditional dependencies that would otherwise trigger
> *DEPEND.bad complaints from repoman.

Actually, I don't think the specification should involve ARCH. In order
to determine whether package.use.stable.{force,mask} apply, I would
intersect KEYWORDS with ACCEPT_KEYWORDS, and apply
package.use.stable.{force,mask} if this intersection contains only
stable keywords. So, I think that I mostly agree with Jonathan's
statements, though I describe the behavior slightly differently than how
he did.
-- 
Thanks,
Zac

Reply via email to