public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
@ 2012-04-26 22:03 Andreas K. Huettel
  2012-04-27  1:02 ` Mike Frysinger
                   ` (4 more replies)
  0 siblings, 5 replies; 23+ messages in thread
From: Andreas K. Huettel @ 2012-04-26 22:03 UTC (permalink / raw
  To: Gentoo Dev

[-- Attachment #1: Type: Text/Plain, Size: 1385 bytes --]


Dear all, 

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

Rationale: Often single features are "not ready for production yet", but the 
remaining package with that feature disabled would be a perfect candidate for 
stabilization. Right now this can be solved by 
* masking the useflag, which then makes the feature inaccessible even for 
~arch
* masking the useflag for exactly one package revision, which is hell to 
maintain
* or introducing different package revisions with/without the useflag, which 
is also a mess. 

Where this would (have been|be) useful:
* we had for a long time different revisions of subversion with/without kde 
useflag
* cups-1.4 had the infamous libusb backend triggered by USE=usb
* cups-1.5 has optional systemd support via a systemd useflag, which pulls in 
non-stabilized systemd as dependency...

Cheers, 
Andreas

-- 

Andreas K. Huettel
Gentoo Linux developer 
dilfridge@gentoo.org
http://www.akhuettel.de/


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-26 22:03 [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force Andreas K. Huettel
@ 2012-04-27  1:02 ` Mike Frysinger
  2012-04-27  4:43 ` [gentoo-dev] " Jonathan Callen
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 23+ messages in thread
From: Mike Frysinger @ 2012-04-27  1:02 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 677 bytes --]

On Thursday 26 April 2012 18:03:54 Andreas K. Huettel wrote:
> * 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

i'd love to see this as i'm tangling with pretty much the same problem: on 
ia64, we want java in ~arch, but never in stable (just don't have the 
resources for it).  this causes problems for packages that have USE=java and 
are stable, but work fine when they're unstable.
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-26 22:03 [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force Andreas K. Huettel
  2012-04-27  1:02 ` Mike Frysinger
@ 2012-04-27  4:43 ` Jonathan Callen
  2012-04-27  6:28   ` Mike Frysinger
  2012-04-27  9:30 ` [gentoo-dev] " Michael Haubenwallner
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 23+ messages in thread
From: Jonathan Callen @ 2012-04-27  4:43 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

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).

- -- 
Jonathan Callen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCgAGBQJPmiPhAAoJELHSF2kinlg4BRkP/2vxN8Wq9+tTdk54XifMm4T8
Q3p01uowvTYhTx2mIh2qLPMemtJ1ABCe7ZxpTkconE1Qw9VtgKsjuRX63glnsKDh
wU6hzMH8RUFIA9BNDb4ZHstp35Okthtju67jPRiN2hp1DuYjTQ4kTKm9IIp14/8T
hb9u7l2VEoyIuhYSAm1b1VjkIS5OO16tCkwiWF0HqaWCfw0z65/HncARf+D35cfZ
giHV9qwTvHoXCh2PBq7XyJaCs3XYcNfmAV7o8tBpXxAvzqWRbh2hMLgSpmIxFjXM
3MvqdjVmNJowovAiLatHMby4ogO9Gq1A4svoYXsOuTC9lC4XQDp6md9zCcAPBD8w
qBEnixWb2p4xfqpzk0zP6JxmvQkKmPPzWVoBuV8lYni8jN/GFRntnT35GEwiA/si
04/wg3+w/cG4q5vglExrFpT3cNG8nkMPmqQIN8XrtdhGnOCyLYrAd4lvymEVf4/8
ymD36BZwQ6xW3yjbWEl/CmvpdbRjrFBp5pzebFGzZxnWrrnGQtVBYYA4o7GoPvhu
hsNtCM/C8afynflTvaiX+9/bzbwrKSN5+4VmTT+9m+sQBwbnFy6iby1X5HlmE/Ie
L6k2iTxT0hrNxwZaf6eYR2zxjzV6FiDkO6eBEgYFNcOd+JgZ5/+dKJ/1CHy753d/
2zXMNmzVLT6fXLHrAH6m
=pmWk
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27  4:43 ` [gentoo-dev] " Jonathan Callen
@ 2012-04-27  6:28   ` Mike Frysinger
  2012-04-27  6:48     ` Zac Medico
  0 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2012-04-27  6:28 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 1837 bytes --]

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.

or Andreas can clarify.
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27  6:28   ` Mike Frysinger
@ 2012-04-27  6:48     ` Zac Medico
  2012-04-27  7:30       ` Zac Medico
  0 siblings, 1 reply; 23+ messages in thread
From: Zac Medico @ 2012-04-27  6:48 UTC (permalink / raw
  To: gentoo-dev

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.
-- 
Thanks,
Zac



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27  6:48     ` Zac Medico
@ 2012-04-27  7:30       ` Zac Medico
  2012-04-28 21:17         ` Mike Frysinger
  0 siblings, 1 reply; 23+ messages in thread
From: Zac Medico @ 2012-04-27  7:30 UTC (permalink / raw
  To: gentoo-dev

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



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-26 22:03 [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force Andreas K. Huettel
  2012-04-27  1:02 ` Mike Frysinger
  2012-04-27  4:43 ` [gentoo-dev] " Jonathan Callen
@ 2012-04-27  9:30 ` Michael Haubenwallner
  2012-04-27 18:08   ` Andreas K. Huettel
  2012-04-27 10:36 ` Ciaran McCreesh
  2012-04-27 14:31 ` Ian Stakenvicius
  4 siblings, 1 reply; 23+ messages in thread
From: Michael Haubenwallner @ 2012-04-27  9:30 UTC (permalink / raw
  To: gentoo-dev


On 04/27/12 00:03, Andreas K. Huettel wrote:
>  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

Wouldn't it be more obvious/simple to have an extra profile subdirectory
containing package.use.mask and package.use.force?

Maybe in combination with 'eselect profile' to be able to select multiple
profiles [1], selecting both what /etc/make.profile pointed to as symlink
as well as some /usr/portage/profile/unstable/$arch - to avoid the need
for having an extra unstable/ subdir within each (selectable) profile dir.

Actually, I do have an extra unstable/ subdir for each selectable profile
here, besides an extra buildbot/ subdir too...

As a side effect, this wouldn't affect EAPI in any way.

[1] http://archives.gentoo.org/gentoo-dev/msg_a69bee8bfa00146ee05e49adf722e791.xml

my .02
/haubi/
-- 
Michael Haubenwallner
Gentoo on a different level



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-26 22:03 [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force Andreas K. Huettel
                   ` (2 preceding siblings ...)
  2012-04-27  9:30 ` [gentoo-dev] " Michael Haubenwallner
@ 2012-04-27 10:36 ` Ciaran McCreesh
  2012-04-27 11:35   ` Chí-Thanh Christopher Nguyễn
  2012-04-27 14:31 ` Ian Stakenvicius
  4 siblings, 1 reply; 23+ messages in thread
From: Ciaran McCreesh @ 2012-04-27 10:36 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 597 bytes --]

On Fri, 27 Apr 2012 00:03:54 +0200
"Andreas K. Huettel" <dilfridge@gentoo.org> wrote:
> * 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

This means that an ebuild will effectively change when moved from ~arch
to arch. The point of ~arch is to test ebuilds before they're moved to
arch.

-- 
Ciaran McCreesh

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 10:36 ` Ciaran McCreesh
@ 2012-04-27 11:35   ` Chí-Thanh Christopher Nguyễn
  2012-04-27 13:49     ` Ulrich Mueller
                       ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Chí-Thanh Christopher Nguyễn @ 2012-04-27 11:35 UTC (permalink / raw
  To: gentoo-dev

Ciaran McCreesh schrieb:
>> * 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
> This means that an ebuild will effectively change when moved from ~arch
> to arch. The point of ~arch is to test ebuilds before they're moved to
> arch.

I agree that the ~arch ebuilds should be tested in the same
configuration in which they will end up in arch. However in this case,
the possible configurations for arch are a subset of those in ~arch, so
the testing covers those too.

I see a problem where a significant proportion of ~arch users will have
this flag enabled (which is obviously the point of
package.use.stable.mask) so the arch configurations will see fewer
testers. This issue may need to be addressed, e.g. by extending
stabilization period or disallowing package.use.stable.mask in default
or desktop profile.


Best regards,
Chí-Thanh Christopher Nguyễn




^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 11:35   ` Chí-Thanh Christopher Nguyễn
@ 2012-04-27 13:49     ` Ulrich Mueller
  2012-04-27 15:26       ` Zac Medico
  2012-04-27 15:00     ` Rich Freeman
  2012-04-27 18:01     ` Andreas K. Huettel
  2 siblings, 1 reply; 23+ messages in thread
From: Ulrich Mueller @ 2012-04-27 13:49 UTC (permalink / raw
  To: gentoo-dev

>>>>> On Fri, 27 Apr 2012, Chí-Thanh Christopher Nguyễn wrote:

> Ciaran McCreesh schrieb:
>>> * 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
>> This means that an ebuild will effectively change when moved from
>> ~arch to arch. The point of ~arch is to test ebuilds before they're
>> moved to arch.

> I agree that the ~arch ebuilds should be tested in the same
> configuration in which they will end up in arch. However in this
> case, the possible configurations for arch are a subset of those in
> ~arch, so the testing covers those too.

Maybe I'm missing something, but what would happen when the newest
version of a package is marked stable? The masked USE flags would
become unavailable for everyone?

Ulrich



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-26 22:03 [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force Andreas K. Huettel
                   ` (3 preceding siblings ...)
  2012-04-27 10:36 ` Ciaran McCreesh
@ 2012-04-27 14:31 ` Ian Stakenvicius
  2012-04-27 18:03   ` Andreas K. Huettel
  4 siblings, 1 reply; 23+ messages in thread
From: Ian Stakenvicius @ 2012-04-27 14:31 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

On 26/04/12 06:03 PM, Andreas K. Huettel wrote:
> 
> Dear all,
> 
> 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
> 
> Rationale: Often single features are "not ready for production
> yet", but the remaining package with that feature disabled would be
> a perfect candidate for stabilization. Right now this can be solved
> by * masking the useflag, which then makes the feature inaccessible
> even for ~arch * masking the useflag for exactly one package
> revision, which is hell to maintain * or introducing different
> package revisions with/without the useflag, which is also a mess.


I would think, personally, that masking the useflag on a per-package
basis would be better than this new feature -- it is more work as it
needs to be done for all the different ~arch packages the use flag
applies to, but it would mean that when a given ~arch version bump has
that feature ready one wouldn't lose the mask on the previous ~arch
versions.  It would also mean (i assume) that this flag would be
masked if that version went stable too (although in reality I would
expect this wouldn't ever occur).

There are potentially a lot of package entries to manage if this were,
say, a flag like 'introspection'..  however, i'm sure maintaining this
could be scriptable couldn't it?


> 
> Where this would (have been|be) useful: * we had for a long time
> different revisions of subversion with/without kde useflag *
> cups-1.4 had the infamous libusb backend triggered by USE=usb *
> cups-1.5 has optional systemd support via a systemd useflag, which
> pulls in non-stabilized systemd as dependency...
> 

I'm not sure that I'm following the cups examples here.  For cups-1.5
even if it were stable, if someone actually wanted to use systemd on
their system and unmasked/keyworded it (while running stable
everything else) I don't see why this would be an issue that would
need this new masking feature (unless IUSE="+systemd", which probably
shouldn't be the case anyways).

Ian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)

iF4EAREIAAYFAk+ara4ACgkQ2ugaI38ACPALZwD/bIk3GzOThs6P/2EkWn2DxvEY
XHQZVUvmc1dJBERmSiIA/3saDFCoK79S8fw+2Q9Myf9Lt6PdEc4u1j48QcDf+sKW
=XQ3/
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 11:35   ` Chí-Thanh Christopher Nguyễn
  2012-04-27 13:49     ` Ulrich Mueller
@ 2012-04-27 15:00     ` Rich Freeman
  2012-04-27 18:01     ` Andreas K. Huettel
  2 siblings, 0 replies; 23+ messages in thread
From: Rich Freeman @ 2012-04-27 15:00 UTC (permalink / raw
  To: gentoo-dev

On Fri, Apr 27, 2012 at 7:35 AM, Chí-Thanh Christopher Nguyễn
<chithanh@gentoo.org> wrote:
> I agree that the ~arch ebuilds should be tested in the same
> configuration in which they will end up in arch. However in this case,
> the possible configurations for arch are a subset of those in ~arch, so
> the testing covers those too.

Just because a stable system brings in fewer use flags doesn't
necessarily mean that it is less likely to break.  Use flags can have
all kinds of effects, some applied when they are present, and others
applied when they are absent.

The value of testing comes from testing things in the anticipated
future production environment.  Of course, the fact that we stabilize
individual packages and not all their libraries/etc at the same time
already weakens this.

Rich



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 13:49     ` Ulrich Mueller
@ 2012-04-27 15:26       ` Zac Medico
  2012-04-27 17:55         ` Andreas K. Huettel
                           ` (2 more replies)
  0 siblings, 3 replies; 23+ messages in thread
From: Zac Medico @ 2012-04-27 15:26 UTC (permalink / raw
  To: gentoo-dev

On 04/27/2012 06:49 AM, Ulrich Mueller wrote:
>>>>>> On Fri, 27 Apr 2012, Chí-Thanh Christopher Nguyễn wrote:
> 
>> Ciaran McCreesh schrieb:
>>>> * 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
>>> This means that an ebuild will effectively change when moved from
>>> ~arch to arch. The point of ~arch is to test ebuilds before they're
>>> moved to arch.
> 
>> I agree that the ~arch ebuilds should be tested in the same
>> configuration in which they will end up in arch. However in this
>> case, the possible configurations for arch are a subset of those in
>> ~arch, so the testing covers those too.
> 
> Maybe I'm missing something, but what would happen when the newest
> version of a package is marked stable? The masked USE flags would
> become unavailable for everyone?

In order to be practical, I guess we'd have to add a constraint which
says that if KEYWORDS contains the stable variant of a particular
keyword, then it should also be considered to implicitly contain the
unstable variant when the package manager is deciding whether or not to
apply package.use.{mask,force}.

So, here's a description of the whole algorithm that I'd use:

1) Let EFFECTIVE_KEYWORDS equal the set of values contained in KEYWORDS,
plus ** and all the unstable variants of the stable values contained in
KEYWORDS. For example:

   KEYWORDS="~amd64 x86" -> EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86"

2) Intersect EFFECTIVE_KEYWORDS with effective ACCEPT_KEYWORDS, where
effective ACCEPT_KEYWORDS includes any relevant values from
package.accept_keywords. For example, here is a table of intersections
of EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86" with various effective
ACCEPT_KEYWORDS values:

      ACCEPT_KEYWORDS  |  INTERSECTION  |  package.stable
     -----------------------------------------------------
      x86              |  x86           |  yes
      x86 ~x86         |  x86 ~x86      |  no
      **               |  **            |  no
      amd64 ~amd64     |  ~amd64        |  no

3) Apply package.stable settings if INTERSECTION contains only stable
keywords. For example, see the package.stable column in the table above.
-- 
Thanks,
Zac



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 15:26       ` Zac Medico
@ 2012-04-27 17:55         ` Andreas K. Huettel
  2012-04-27 19:25         ` [gentoo-dev] " Jonathan Callen
  2012-04-27 19:57         ` [gentoo-dev] " David Leverton
  2 siblings, 0 replies; 23+ messages in thread
From: Andreas K. Huettel @ 2012-04-27 17:55 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 1907 bytes --]

Am Freitag 27 April 2012, 17:26:48 schrieb Zac Medico:
> > 
> > Maybe I'm missing something, but what would happen when the newest
> > version of a package is marked stable? The masked USE flags would
> > become unavailable for everyone?
> 
> In order to be practical, I guess we'd have to add a constraint which
> says that if KEYWORDS contains the stable variant of a particular
> keyword, then it should also be considered to implicitly contain the
> unstable variant when the package manager is deciding whether or not to
> apply package.use.{mask,force}.
> 
> So, here's a description of the whole algorithm that I'd use:
> 
> 1) Let EFFECTIVE_KEYWORDS equal the set of values contained in KEYWORDS,
> plus ** and all the unstable variants of the stable values contained in
> KEYWORDS. For example:
> 
>    KEYWORDS="~amd64 x86" -> EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86"
> 
> 2) Intersect EFFECTIVE_KEYWORDS with effective ACCEPT_KEYWORDS, where
> effective ACCEPT_KEYWORDS includes any relevant values from
> package.accept_keywords. For example, here is a table of intersections
> of EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86" with various effective
> ACCEPT_KEYWORDS values:
> 
>       ACCEPT_KEYWORDS  |  INTERSECTION  |  package.stable
>      -----------------------------------------------------
>       x86              |  x86           |  yes
>       x86 ~x86         |  x86 ~x86      |  no
>       **               |  **            |  no
>       amd64 ~amd64     |  ~amd64        |  no
> 
> 3) Apply package.stable settings if INTERSECTION contains only stable
> keywords. For example, see the package.stable column in the table above.


That is the best description I've seen so far, which exactly describes the use 
case that I had in mind.  +1 :)


-- 

Andreas K. Huettel
Gentoo Linux developer 
dilfridge@gentoo.org
http://www.akhuettel.de/


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 11:35   ` Chí-Thanh Christopher Nguyễn
  2012-04-27 13:49     ` Ulrich Mueller
  2012-04-27 15:00     ` Rich Freeman
@ 2012-04-27 18:01     ` Andreas K. Huettel
  2 siblings, 0 replies; 23+ messages in thread
From: Andreas K. Huettel @ 2012-04-27 18:01 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 1990 bytes --]

Am Freitag 27 April 2012, 13:35:21 schrieb Chí-Thanh Christopher Nguyễn:
> Ciaran McCreesh schrieb:
> >> * 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
> > 
> > This means that an ebuild will effectively change when moved from ~arch
> > to arch. The point of ~arch is to test ebuilds before they're moved to
> > arch.
> 
> I agree that the ~arch ebuilds should be tested in the same
> configuration in which they will end up in arch. However in this case,
> the possible configurations for arch are a subset of those in ~arch, so
> the testing covers those too.

Right now, it's more likely that just before filing the stablerequest an 
ebuild is modified such that the useflag disappears and all the conditional 
codeblocks are set to a fixed value. (Compare cups-1.5.2-r3 and -r4) That 
includes a much larger danger of mistakes creeping in.

Just forcing an useflag on or off poses a fairly minimal intrusion.

> I see a problem where a significant proportion of ~arch users will have
> this flag enabled (which is obviously the point of
> package.use.stable.mask) so the arch configurations will see fewer
> testers. This issue may need to be addressed, e.g. by extending
> stabilization period or disallowing package.use.stable.mask in default
> or desktop profile.

Well, at least in some use cases the useflag will have an obvious disadvantage 
(remember the many libusb-backend bugs in cups-1.4). Then the consensus would 
have been "you can use this but it's not as bug-free", there may have been 
even an ewarn about it, ...

Cheers, 
Andreas

-- 

Andreas K. Huettel
Gentoo Linux developer 
dilfridge@gentoo.org
http://www.akhuettel.de/


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 14:31 ` Ian Stakenvicius
@ 2012-04-27 18:03   ` Andreas K. Huettel
  0 siblings, 0 replies; 23+ messages in thread
From: Andreas K. Huettel @ 2012-04-27 18:03 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 1059 bytes --]

Am Freitag 27 April 2012, 16:31:10 schrieb Ian Stakenvicius:
 
> > Where this would (have been|be) useful: * we had for a long time
> > different revisions of subversion with/without kde useflag *
> > cups-1.4 had the infamous libusb backend triggered by USE=usb *
> > cups-1.5 has optional systemd support via a systemd useflag, which
> > pulls in non-stabilized systemd as dependency...
> 
> I'm not sure that I'm following the cups examples here.  For cups-1.5
> even if it were stable, if someone actually wanted to use systemd on
> their system and unmasked/keyworded it (while running stable
> everything else) I don't see why this would be an issue that would
> need this new masking feature (unless IUSE="+systemd", which probably
> shouldn't be the case anyways).

The point is that as it is now cups(-1.5.2-r20) could not be stabilized 
without a stable systemd, because systemd is a dependency (optional on useflag 
systemd).

-- 

Andreas K. Huettel
Gentoo Linux developer 
dilfridge@gentoo.org
http://www.akhuettel.de/


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27  9:30 ` [gentoo-dev] " Michael Haubenwallner
@ 2012-04-27 18:08   ` Andreas K. Huettel
  0 siblings, 0 replies; 23+ messages in thread
From: Andreas K. Huettel @ 2012-04-27 18:08 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: Text/Plain, Size: 976 bytes --]

Am Freitag 27 April 2012, 11:30:57 schrieb Michael Haubenwallner:
> On 04/27/12 00:03, Andreas K. Huettel wrote:
> >  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
> 
> Wouldn't it be more obvious/simple to have an extra profile subdirectory
> containing package.use.mask and package.use.force?

While this works (kind of), it is like running globally stable or globally 
testing. So, if you run stable but add one package with ~arch keyword, you are 
restricted to the "stable useflag set" there as well...


-- 

Andreas K. Huettel
Gentoo Linux developer 
dilfridge@gentoo.org
http://www.akhuettel.de/


[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 15:26       ` Zac Medico
  2012-04-27 17:55         ` Andreas K. Huettel
@ 2012-04-27 19:25         ` Jonathan Callen
  2012-04-27 19:36           ` Zac Medico
  2012-04-27 19:57         ` [gentoo-dev] " David Leverton
  2 siblings, 1 reply; 23+ messages in thread
From: Jonathan Callen @ 2012-04-27 19:25 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

On 04/27/2012 11:26 AM, Zac Medico wrote:
> In order to be practical, I guess we'd have to add a constraint
> which says that if KEYWORDS contains the stable variant of a
> particular keyword, then it should also be considered to implicitly
> contain the unstable variant when the package manager is deciding
> whether or not to apply package.use.{mask,force}.
> 
> So, here's a description of the whole algorithm that I'd use:
> 
> 1) Let EFFECTIVE_KEYWORDS equal the set of values contained in
> KEYWORDS, plus ** and all the unstable variants of the stable
> values contained in KEYWORDS. For example:
> 
> KEYWORDS="~amd64 x86" -> EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86"
> 
> 2) Intersect EFFECTIVE_KEYWORDS with effective ACCEPT_KEYWORDS,
> where effective ACCEPT_KEYWORDS includes any relevant values from 
> package.accept_keywords. For example, here is a table of
> intersections of EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86" with
> various effective ACCEPT_KEYWORDS values:
> 
> ACCEPT_KEYWORDS  |  INTERSECTION  |  package.stable 
> ----------------------------------------------------- x86
> |  x86           |  yes x86 ~x86         |  x86 ~x86      |  no **
> |  **            |  no amd64 ~amd64     |  ~amd64        |  no
> 
> 3) Apply package.stable settings if INTERSECTION contains only
> stable keywords. For example, see the package.stable column in the
> table above.

This algorithm better matches what I meant in my earlier posting, so
+1 from me. (And if anyone has an ACCEPT_KEYWORDS value of "~amd64
- -amd64", they deserve any issues that may arise).

The only issue I have with it is that EFFECTIVE_KEYWORDS should be
expanded to contain "*" if any stable keyword is present and "~*" if
any unstable keyword is present (or "*" and "~*" in ACCEPT_KEYWORDS
should be pre-expanded).
- -- 
Jonathan Callen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQIcBAEBCgAGBQJPmvKPAAoJELHSF2kinlg43ZgP/1F++FzGzmUZxy+2enHeCIRb
47y4hFxZG18ulWijr0qEJTizDGCxE8RCBfanM4I1G4qSdy0Eyg+6yIdT+B1FRZ1F
Wp5p/CPPX/AfxgJ+LTTmY5V3f8AWrk1MfX4sGoy+0DGzgMB+Z87M6f10wAWcLIV5
RHd3591kyL5AOifaaM53/tgFcjvXECz+DfbDaVFaD1XjnSkEsu6aV6k1xaVqGGfF
pK3Dqo672XUKR1laFODYEkknO0JlR8EcU8De4pkdgj8ffbf0g2uVXbpTCEgd+w4I
0eEd+LNVDAnTQntMuSETK5ysfYIVOPOmo1KoaR5XSFVsNL8UzjUKY1Yx7owXrm+N
2OR+2JtdCnjkTveZZbP/Y8M74wiZeptOsgK5PxN+C/3vLWJ0LMrxIsWMugc0Oihv
3ddk1/WQolBtA8+DDBY+mOrJuKa5R7eqLAJQVmFLyDVLGu2dTCO26TaT7IKWnN8J
Kw0RqscOFd93RcsfpgKwM2ij+8N+QlGgvK4qBwR9MAIEEQAPtx5Rxi6dxly/b/7h
6jC2Yt8UqVOCloQ4vjoopIqA7QYGk3JS+yp27HAVR+cXDX1OWntEU+LeVlmm27k9
vuEBRXosD9DpYCQ7OCQOzYa5TefgVs76TY/ygSgpkHlzcCbZ5iRwholKuOuKSvyd
mRi9g8/nctJXFkHn17GV
=LYAv
-----END PGP SIGNATURE-----



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 19:25         ` [gentoo-dev] " Jonathan Callen
@ 2012-04-27 19:36           ` Zac Medico
  0 siblings, 0 replies; 23+ messages in thread
From: Zac Medico @ 2012-04-27 19:36 UTC (permalink / raw
  To: gentoo-dev

On 04/27/2012 12:25 PM, Jonathan Callen wrote:
> On 04/27/2012 11:26 AM, Zac Medico wrote:
>> In order to be practical, I guess we'd have to add a constraint
>> which says that if KEYWORDS contains the stable variant of a
>> particular keyword, then it should also be considered to implicitly
>> contain the unstable variant when the package manager is deciding
>> whether or not to apply package.use.{mask,force}.
> 
>> So, here's a description of the whole algorithm that I'd use:
> 
>> 1) Let EFFECTIVE_KEYWORDS equal the set of values contained in
>> KEYWORDS, plus ** and all the unstable variants of the stable
>> values contained in KEYWORDS. For example:
> 
>> KEYWORDS="~amd64 x86" -> EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86"
> 
>> 2) Intersect EFFECTIVE_KEYWORDS with effective ACCEPT_KEYWORDS,
>> where effective ACCEPT_KEYWORDS includes any relevant values from 
>> package.accept_keywords. For example, here is a table of
>> intersections of EFFECTIVE_KEYWORDS="~amd64 x86 ** ~x86" with
>> various effective ACCEPT_KEYWORDS values:
> 
>> ACCEPT_KEYWORDS  |  INTERSECTION  |  package.stable 
>> ----------------------------------------------------- x86
>> |  x86           |  yes x86 ~x86         |  x86 ~x86      |  no **
>> |  **            |  no amd64 ~amd64     |  ~amd64        |  no
> 
>> 3) Apply package.stable settings if INTERSECTION contains only
>> stable keywords. For example, see the package.stable column in the
>> table above.
> 
> This algorithm better matches what I meant in my earlier posting, so
> +1 from me. (And if anyone has an ACCEPT_KEYWORDS value of "~amd64
> -amd64", they deserve any issues that may arise).
> 
> The only issue I have with it is that EFFECTIVE_KEYWORDS should be
> expanded to contain "*" if any stable keyword is present and "~*" if
> any unstable keyword is present (or "*" and "~*" in ACCEPT_KEYWORDS
> should be pre-expanded).

Yeah, I omitted * and ~* for brevity, and you've got the right idea.
-- 
Thanks,
Zac



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 15:26       ` Zac Medico
  2012-04-27 17:55         ` Andreas K. Huettel
  2012-04-27 19:25         ` [gentoo-dev] " Jonathan Callen
@ 2012-04-27 19:57         ` David Leverton
  2012-04-27 23:37           ` Zac Medico
  2 siblings, 1 reply; 23+ messages in thread
From: David Leverton @ 2012-04-27 19:57 UTC (permalink / raw
  To: gentoo-dev

Zac Medico wrote:
> So, here's a description of the whole algorithm that I'd use:
 > [snip]

I think the following is equivalent, but simpler and more general since 
it doesn't have to mention details like ** and friends that aren't 
currently in PMS, and doesn't assume that the rule for handling KEYWORDS 
is simply "does it contain at least one of the accepted values? (plus 
handling of ** etc)".  (For example, I can imagine something like 
"accept the package if it has amd64, or if it has both ~amd64 and x86" 
being potentially useful for some people, although I don't think it's 
implemented anywhere at the moment.)

1) Pretend that all stable keywords in the package's KEYWORDS are 
replaced with the corresponding ~arch ones
2) If this would result in the package being masked by keywords (I 
forget the exact terminology Portage uses, but I'm sure you know what I 
mean), then apply the masks/forces from package.use.stable.*



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27 19:57         ` [gentoo-dev] " David Leverton
@ 2012-04-27 23:37           ` Zac Medico
  0 siblings, 0 replies; 23+ messages in thread
From: Zac Medico @ 2012-04-27 23:37 UTC (permalink / raw
  To: gentoo-dev

On 04/27/2012 12:57 PM, David Leverton wrote:
> Zac Medico wrote:
>> So, here's a description of the whole algorithm that I'd use:
>> [snip]
> 
> I think the following is equivalent, but simpler and more general since
> it doesn't have to mention details like ** and friends that aren't
> currently in PMS, and doesn't assume that the rule for handling KEYWORDS
> is simply "does it contain at least one of the accepted values? (plus
> handling of ** etc)".  (For example, I can imagine something like
> "accept the package if it has amd64, or if it has both ~amd64 and x86"
> being potentially useful for some people, although I don't think it's
> implemented anywhere at the moment.)
> 
> 1) Pretend that all stable keywords in the package's KEYWORDS are
> replaced with the corresponding ~arch ones
> 2) If this would result in the package being masked by keywords (I
> forget the exact terminology Portage uses, but I'm sure you know what I
> mean), then apply the masks/forces from package.use.stable.*

Yeah, that appears to be equivalent.
-- 
Thanks,
Zac



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-27  7:30       ` Zac Medico
@ 2012-04-28 21:17         ` Mike Frysinger
  2012-04-28 21:29           ` Zac Medico
  0 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2012-04-28 21:17 UTC (permalink / raw
  To: gentoo-dev; +Cc: Zac Medico

[-- Attachment #1: Type: Text/Plain, Size: 3235 bytes --]

On Friday 27 April 2012 03:30:43 Zac Medico wrote:
> 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.

wrt repoman, it doesn't know anything about ACCEPT_KEYWORDS

as for intersection, i don't think that works.  if my make.conf is:
	ACCEPT_KEYWORDS="amd64 ~amd64"
and i emerge a package that has:
	KEYWORDS="~amd64"

package.use.stable should not apply to this package.  it should only apply if 
it had:
	KEYWORDS="amd64"
-mike

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-dev] Re: Feature request: package.use.stable.mask and package.use.stable.force
  2012-04-28 21:17         ` Mike Frysinger
@ 2012-04-28 21:29           ` Zac Medico
  0 siblings, 0 replies; 23+ messages in thread
From: Zac Medico @ 2012-04-28 21:29 UTC (permalink / raw
  To: gentoo-dev

On 04/28/2012 02:17 PM, Mike Frysinger wrote:
> On Friday 27 April 2012 03:30:43 Zac Medico wrote:
>> 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.
> 
> wrt repoman, it doesn't know anything about ACCEPT_KEYWORDS

It does know about ACCEPT_KEYWORDS because it generates them
automatically from KEYWORDS. The relevant code in /usr/bin/repoman looks
like this:

arches=[]
for keyword in myaux["KEYWORDS"].split():
	if (keyword[0]=="-"):
		continue
	elif (keyword[0]=="~"):
		arches.append([keyword, keyword[1:], [keyword[1:], keyword]])
	else:
		arches.append([keyword, keyword, [keyword]])
if not arches:
	# Use an empty profile for checking dependencies of
	# packages that have empty KEYWORDS.
	arches.append(['**', '**', ['**']])

> as for intersection, i don't think that works.  if my make.conf is:
> 	ACCEPT_KEYWORDS="amd64 ~amd64"
> and i emerge a package that has:
> 	KEYWORDS="~amd64"
> 
> package.use.stable should not apply to this package.  it should only apply if 
> it had:
> 	KEYWORDS="amd64"

See the algorithm that I've described here:

http://archives.gentoo.org/gentoo-dev/msg_6c492ae43ad7c70cef6aa8ac34911adf.xml

The case that you're talking about is equivalent to the 4th row of the
table in that message, and note that it says "no" in the package.stable
column, as you would expect.
-- 
Thanks,
Zac



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2012-04-28 21:30 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-26 22:03 [gentoo-dev] Feature request: package.use.stable.mask and package.use.stable.force Andreas K. Huettel
2012-04-27  1:02 ` Mike Frysinger
2012-04-27  4:43 ` [gentoo-dev] " Jonathan Callen
2012-04-27  6:28   ` Mike Frysinger
2012-04-27  6:48     ` Zac Medico
2012-04-27  7:30       ` Zac Medico
2012-04-28 21:17         ` Mike Frysinger
2012-04-28 21:29           ` Zac Medico
2012-04-27  9:30 ` [gentoo-dev] " Michael Haubenwallner
2012-04-27 18:08   ` Andreas K. Huettel
2012-04-27 10:36 ` Ciaran McCreesh
2012-04-27 11:35   ` Chí-Thanh Christopher Nguyễn
2012-04-27 13:49     ` Ulrich Mueller
2012-04-27 15:26       ` Zac Medico
2012-04-27 17:55         ` Andreas K. Huettel
2012-04-27 19:25         ` [gentoo-dev] " Jonathan Callen
2012-04-27 19:36           ` Zac Medico
2012-04-27 19:57         ` [gentoo-dev] " David Leverton
2012-04-27 23:37           ` Zac Medico
2012-04-27 15:00     ` Rich Freeman
2012-04-27 18:01     ` Andreas K. Huettel
2012-04-27 14:31 ` Ian Stakenvicius
2012-04-27 18:03   ` Andreas K. Huettel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox