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