public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
@ 2013-11-13 10:28 Martin Vaeth
  2013-11-13 11:39 ` Tom Wijsman
                   ` (2 more replies)
  0 siblings, 3 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 10:28 UTC (permalink / raw
  To: gentoo-dev

Hello.

The new "features" use.stable.mask and package.use.stable.mask
have turned maintaining systems with mixed ARCH and ~ARCH keywords
into a nightmare:

Similarly to the (fortunately dropped) concept of forcing
useflags if certain packages are installed this forces a
magic on the user which can hardly be managed since it is
not clearly presented to the user but hidden in some profiles.

As I understand, it tries to solve a "social" issue
(that an ARCH user might set a USE-flag which eventually
pulls in an ~ARCH package) on a technical level
(by forcibly disabling the USE-flag for the user).
Solving social problems by technical means is never a good
idea:

While the former gives the stable user a clear message
what is going wrong (after all, many stable users want
some package which has not a stable version yet, so this
should be something everybody should be able to handle),
the latter hides causes and makes things almost unpredictable:

Even if the user has put the dependency into
package.accept_keywords, he will not be able to use the
USE-flag on his packages unless
*he puts stable versions into package.accept_keywords*
(or - simlarly worse - overrides the profile).

The really bad thing is that this is happening by magic
"behind the user's back", i.e. contradicting the user's setting
of USE-flag and package.use: If the user does not carefully
read emerge's -v output, he even does not get informed that
the support for his unstable package is dropped from the
stable package, despite he might have specified the corresponding
USE-flag globally. Even worse, even when reading the output
carefully, the user cannot understand the reason:
Since there are many reasons why use-flags can appear in ()
he will probably not even conjecture that actually something
will not be working as he expected.

Here are some other examples of negative effects happening
just recently to me, ordered from not so severe to very bad:

1. For several reasons I always want the most current
emul-linux-x86* libraries, so they are in package.accept_keywords.
Due to global ABI_X86=32 (which I also want), this forced me
of course to put several libraries to ~amd64 since only
new version support this. Some of the libraries are actually
stable, so I have removed them from package.accept_keywords.
So far, so good.
But suddenly portage spitted unexplainable dependency errors,
and I only expert users manually reading the profiles can
understand that the reason is that use.stable.mask requires
that stable versions need to be keyworded ~amd64
(or use.stable.mask has to be overridden in my profile).

2. Just a few days ago dev-lang/python-exec:2 became stable
on amd64, but dev-python/python-exec:2 is still ~amd64.
Just to be sure to not miss anything, I have put the latter
into package.accept_keywords, and hell break loose:
Portaqe wanted me to emerge the git version of
dev-lang/python-exec:0 and reemerge dozens of packages.
I needed hours to find out what is the actual cause:
The package.accept_keywords caused the use.stable.mask of
python_targets_pypy2_0 und python_targets_python3_3 to become
ineffective for dev-python/python-exec, but of course it is still
effective for dev-lang/python-exec which is not be the case
if I unmask the git version of dev-lang/python-exec.

This is completely confusing since nowhere the git-version
is marked differently than the non-git version.

So, yes, portage's behaviour can be explained, but, no,
it is not understandable by a user who wants portage
to report what is really wrong and who does not want
to check manually by reading all profiles and hunt down
for reasons why certain flags are magically forced/disabled.

3. As a side effect of 2., I realized that libreoffice and a dozen
further packages get forced a rebuild. So, if eventually
python-3.3 becomes stable and is removed from use.stable.mask,
all stable users will have to rebuild almost their whole world,
because python-exec then has one more "dummy" USE-flag. The same
will happen again if pypy-2.0 becomes stable.
So a lot of unnecessary rebuilds happen to stable users because
of {package.,}use.stable.mask which most of the developers
(who are often ~amd64 users) do not realize.

Best Regards
Martin



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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 10:28 [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask Martin Vaeth
@ 2013-11-13 11:39 ` Tom Wijsman
  2013-11-13 13:25   ` Thomas Kahle
  2013-11-13 14:04   ` Martin Vaeth
  2013-11-13 14:10 ` [gentoo-dev] " Michał Górny
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
  2 siblings, 2 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-13 11:39 UTC (permalink / raw
  To: vaeth; +Cc: gentoo-dev

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

On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:

> Hello.
> 
> The new "features" use.stable.mask and package.use.stable.mask
> have turned maintaining systems with mixed ARCH and ~ARCH keywords
> into a nightmare:

They are considered unsupported by many; so, going down that path you
need to be acquainted with Portage enough to keep a consistent system.

> Similarly to the (fortunately dropped) concept of forcing
> useflags if certain packages are installed this forces a
> magic on the user which can hardly be managed since it is
> not clearly presented to the user but hidden in some profiles.
> 
> As I understand, it tries to solve a "social" issue
> (that an ARCH user might set a USE-flag which eventually
> pulls in an ~ARCH package) on a technical level
> (by forcibly disabling the USE-flag for the user).

That's one approach, it might also be used when a package can be
stabilized but a certain of feature of the package cannot; eg.
USE="minimal" could be broken on a certain package because it removed a
bit too much, thus it could be stabilized with USE="-minimal" forced.

Anyhow, I think we should make sure to weight "why we need to have it"
against "how it bothers which users"; and not just focus on users alone.

And other than that, are there alternatives? Something we can do better?

Sometimes problems can be resolved by better communication too; perhaps
there are things we can inform the user about in pkg_postinst, or
improve Portage to let the user know of a particular forced USE flag.

> Solving social problems by technical means is never a good
> idea:
> 
> While the former gives the stable user a clear message
> what is going wrong (after all, many stable users want
> some package which has not a stable version yet, so this
> should be something everybody should be able to handle),
> the latter hides causes and makes things almost unpredictable:
> 
> Even if the user has put the dependency into
> package.accept_keywords, he will not be able to use the
> USE-flag on his packages unless
> *he puts stable versions into package.accept_keywords*
> (or - simlarly worse - overrides the profile).

That are indeed the two approaches, I don't see a problem with putting
the version itself in accept_keywords or overriding the profile;
furthermore, overriding forced and/or masked USE flag is the exception,
it doesn't happen so frequently so I doubt this is a huge problem.

> The really bad thing is that this is happening by magic
> "behind the user's back", i.e. contradicting the user's setting
> of USE-flag and package.use: If the user does not carefully
> read emerge's -v output, he even does not get informed that
> the support for his unstable package is dropped from the
> stable package, despite he might have specified the corresponding
> USE-flag globally.

System upgrades have to be done carefully; so, the user skipping it is
something we cannot account for except perhaps providing support for
the user receiving some kind of verbose summary of such forces / masks
being present at the end of the emerge output. But you'll have to
contact the Portage developers to achieve such improvements.

> Even worse, even when reading the output
> carefully, the user cannot understand the reason:
> Since there are many reasons why use-flags can appear in ()
> he will probably not even conjecture that actually something
> will not be working as he expected.

Most of these reasons can be uniquely determined from the output; but
indeed, some might yield the same output, but this is again something
that the Portage developers can improve and not a reason for removal.

> Here are some other examples of negative effects happening
> just recently to me, ordered from not so severe to very bad:
> 
> 1. For several reasons I always want the most current
> emul-linux-x86* libraries, so they are in package.accept_keywords.
> Due to global ABI_X86=32 (which I also want), this forced me
> of course to put several libraries to ~amd64 since only
> new version support this. Some of the libraries are actually
> stable, so I have removed them from package.accept_keywords.
> So far, so good.
> But suddenly portage spitted unexplainable dependency errors,
> and I only expert users manually reading the profiles can
> understand that the reason is that use.stable.mask requires
> that stable versions need to be keyworded ~amd64
> (or use.stable.mask has to be overridden in my profile).

This confuses me; isn't the goal to have one multilib apprach or the
other? Especially due to the blockers between them.

I agree Portage output can be better, I'm not sure if use.stable.mask
is really the problem here though; but rather the nature of mixing them.

> 2. Just a few days ago dev-lang/python-exec:2 became stable
> on amd64, but dev-python/python-exec:2 is still ~amd64.
> Just to be sure to not miss anything, I have put the latter
> into package.accept_keywords, and hell break loose:

Hell indeed breaks loose if you mix stable and unstable; but note that
this package had an accident, see the related news item for details.

> Portaqe wanted me to emerge the git version of
> dev-lang/python-exec:0 and reemerge dozens of packages.

This is a consequence of that hell; if you don't agree and this is due
to the Portage tree, please show the dependency chain that causes this.

> I needed hours to find out what is the actual cause:
> The package.accept_keywords caused the use.stable.mask of
> python_targets_pypy2_0 und python_targets_python3_3 to become
> ineffective for dev-python/python-exec,

It doesn't matter, dev-python/python-exec installs no contents.

> but of course it is still
> effective for dev-lang/python-exec which is not be the case
> if I unmask the git version of dev-lang/python-exec.

Which one is not meant to do anyway; and from what you wrote, I don't
think you intent to either.

> This is completely confusing since nowhere the git-version
> is marked differently than the non-git version.

Marked in which way? One is stable, the other unkeyworded.

> So, yes, portage's behaviour can be explained, but, no,
> it is not understandable by a user who wants portage
> to report what is really wrong and who does not want
> to check manually by reading all profiles and hunt down
> for reasons why certain flags are magically forced/disabled.

Which output are we discussing here?

If it is due to the hell above, we warn users up front for that.

> 3. As a side effect of 2., I realized that libreoffice and a dozen
> further packages get forced a rebuild. So, if eventually
> python-3.3 becomes stable and is removed from use.stable.mask,
> all stable users will have to rebuild almost their whole world,
> because python-exec then has one more "dummy" USE-flag. The same
> will happen again if pypy-2.0 becomes stable.
> So a lot of unnecessary rebuilds happen to stable users because
> of {package.,}use.stable.mask which most of the developers
> (who are often ~amd64 users) do not realize.

That is to be expected on such stabilizations, I doubt they are
unnecessary; if I misunderstood, feel free to give an example.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 11:39 ` Tom Wijsman
@ 2013-11-13 13:25   ` Thomas Kahle
  2013-11-13 13:37     ` Rich Freeman
  2013-11-13 13:56     ` [gentoo-dev] " Tom Wijsman
  2013-11-13 14:04   ` Martin Vaeth
  1 sibling, 2 replies; 111+ messages in thread
From: Thomas Kahle @ 2013-11-13 13:25 UTC (permalink / raw
  To: gentoo-dev

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

Hi,

On 11/13/2013 12:39 PM, Tom Wijsman wrote:
> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
> 
>> Hello.
>>
>> The new "features" use.stable.mask and package.use.stable.mask
>> have turned maintaining systems with mixed ARCH and ~ARCH keywords
>> into a nightmare:
> 
> They are considered unsupported by many; so, going down that path you
> need to be acquainted with Portage enough to keep a consistent system.

This argument has come up several times, but is it valid?  For me
and other people I know, the main reason to use Gentoo is the
rolling release model and this implies that you can mix package
versions as long as version dependencies are satisfied.  When the
dependency is "cat/package" then this should mean that it works
with every version.  If it does not, then the ebuild's
dependencies should be updated.

The handbook says nothing about "unsupported":

http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=3&chap=3

If "many" choose to change this policy, there is no reason
anymore for me to use Gentoo.

>> Similarly to the (fortunately dropped) concept of forcing
>> useflags if certain packages are installed this forces a
>> magic on the user which can hardly be managed since it is
>> not clearly presented to the user but hidden in some profiles.
>>
>> As I understand, it tries to solve a "social" issue
>> (that an ARCH user might set a USE-flag which eventually
>> pulls in an ~ARCH package) on a technical level
>> (by forcibly disabling the USE-flag for the user).
> 
> That's one approach, it might also be used when a package can be
> stabilized but a certain of feature of the package cannot; eg.
> USE="minimal" could be broken on a certain package because it removed a
> bit too much, thus it could be stabilized with USE="-minimal" forced.
> 
> Anyhow, I think we should make sure to weight "why we need to have it"
> against "how it bothers which users"; and not just focus on users alone.
> 
> And other than that, are there alternatives? Something we can do better?

We could consider reducing the feature set of portage and live
with the "problems" that arise.  When I started using Gentoo a
package could simply not go stable until all dependencies for all
USE flags were also stable.  Masking USE flags was reserved to a
short list of very special architecture depend special cases.

[...]

>> 2. Just a few days ago dev-lang/python-exec:2 became stable
>> on amd64, but dev-python/python-exec:2 is still ~amd64.
>> Just to be sure to not miss anything, I have put the latter
>> into package.accept_keywords, and hell break loose:
> 
> Hell indeed breaks loose if you mix stable and unstable; but note that
> this package had an accident, see the related news item for details.

Do you mean stable and unstable in this case, or in general?

[...]

In general I share the sentiment.  The complexity of using
portage has increased a lot lately.  Not only does it take long
to find out why things suddenly go wrong after tree sync, also
just the time until 'emerge -avUDN world' comes back with a
proposal has grown to several minutes where it was few seconds
when I started with Gentoo.

There has been a lot of effort to make revdep-rebuild unessecary,
but now that it is mostly implemented, I don't know if it was
worth the price.  I spend more time now just reconfiguring
keywords to update the system than I spent back in the old days
where revdep would just fix things.  If the answer is, that I
should not mix arch and ~arch, then I'll not use Gentoo anymore.

Cheers,
Thomas


-- 
Thomas Kahle


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 555 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 13:25   ` Thomas Kahle
@ 2013-11-13 13:37     ` Rich Freeman
  2013-11-13 14:00       ` Tom Wijsman
  2013-11-13 14:30       ` [gentoo-dev] " Duncan
  2013-11-13 13:56     ` [gentoo-dev] " Tom Wijsman
  1 sibling, 2 replies; 111+ messages in thread
From: Rich Freeman @ 2013-11-13 13:37 UTC (permalink / raw
  To: gentoo-dev

On Wed, Nov 13, 2013 at 8:25 AM, Thomas Kahle <tomka@gentoo.org> wrote:
> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
>> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
>> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
>>
>>> Hello.
>>>
>>> The new "features" use.stable.mask and package.use.stable.mask
>>> have turned maintaining systems with mixed ARCH and ~ARCH keywords
>>> into a nightmare:
>>
>> They are considered unsupported by many; so, going down that path you
>> need to be acquainted with Portage enough to keep a consistent system.
>
> This argument has come up several times, but is it valid?

Honestly, opinions vary on this one and I don't think it is a
productive path to go down.  I also feel that being able to mix
keywords is a big benefit of using Gentoo.  I'd rather focus on
practical ways to make this easier rather than whether it is
desirable.

That said, there are always going to be situations where mixing
keywords isn't practical.  You're not going to run stable chromium
against ~arch v8, or mixed keywords between kdelibs and kwin, etc.

> We could consider reducing the feature set of portage and live
> with the "problems" that arise.  When I started using Gentoo a
> package could simply not go stable until all dependencies for all
> USE flags were also stable.  Masking USE flags was reserved to a
> short list of very special architecture depend special cases.

I don't think going backwards is the solution.  Back in the old days
packages broke from time to time because we didn't have adequate ways
to express dependencies, and I don't think it is a good solution to
strip USE flags out of packages when they go stable so that users
don't even have the option to use them.

It makes more sense to identify what specifically is causing problems
and come up with better solutions to them.  That said, your original
email contained a few separate issues and they're probably best dealt
with individually.  We're not going to have a common solution for
multilib, stable use masking, python-exec, and whatever other issues
are lurking beneath the surface.

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 13:25   ` Thomas Kahle
  2013-11-13 13:37     ` Rich Freeman
@ 2013-11-13 13:56     ` Tom Wijsman
  2013-11-13 14:38       ` [gentoo-dev] " Martin Vaeth
  1 sibling, 1 reply; 111+ messages in thread
From: Tom Wijsman @ 2013-11-13 13:56 UTC (permalink / raw
  To: tomka; +Cc: gentoo-dev

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

On Wed, 13 Nov 2013 14:25:11 +0100
Thomas Kahle <tomka@gentoo.org> wrote:

> Hi,
> 
> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
> > On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
> > Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
> > 
> >> Hello.
> >>
> >> The new "features" use.stable.mask and package.use.stable.mask
> >> have turned maintaining systems with mixed ARCH and ~ARCH keywords
> >> into a nightmare:
> > 
> > They are considered unsupported by many; so, going down that path
> > you need to be acquainted with Portage enough to keep a consistent
> > system.
> 
> This argument has come up several times, but is it valid?

For more insight see

http://comments.gmane.org/gmane.linux.gentoo.devel/87839

and I quote "quite a few bugs are closed as invalid when a mixed system
is detected" as well as "mixing stable and testing is (likely) invalid
when unmasking one package in the unstable branch causes (reverse)
dependency resolution issues with another package in the stable branch".

Not to forget that we often test with everything stable or with
everything on testing; so, if you mix packages from both you end up in
untested situations where dependencies do not match what we intend.
Some of us fix them, but not everyone might; others might even just end
up setting a dependency range because of the stable / unstable mix.

Besides it being unsupported by some (I'll drop the "many" sound to it)
there are also just users in general that suggest others to avoid it;
simply because of the blockers and conflicts it brings along, it's
something that works out well for users that deeply understand what is
going on but for new users it is just a recipe for disaster.

Regardless of that, in my opinion, we should avoid encouraging
situations that result in having to deal with more unnecessary blockers
and conflicts; but that doesn't mean we don't want to see it. The same
link above highlights how it can help rather than obstruct Gentoo too.

> For me
> and other people I know, the main reason to use Gentoo is the
> rolling release model and this implies that you can mix package
> versions as long as version dependencies are satisfied. When the
> dependency is "cat/package" then this should mean that it works
> with every version.  If it does not, then the ebuild's
> dependencies should be updated.

Given that maintainers often test against test versions and that arch
teams often test against stable versions, nobody really tests the rests
of the situations except for some people that mix and come across it;
so, effectively the version dependencies do not always match reality
and therefore cannot imply that you can mix it.

It's also very unrealistic to check every package for every bump; at
least not with the amount of work compared to the amount of manpower we
have, it does happen a lot and we are required to do so to some extent.
But you will note that this ends up in situations where the new version
just ends up being in package.mask for a long while, for example ffmpeg.

Others are either new and forgot or might show a lack of care; which
results in it being properly tested for non-mixed systems, but not
properly tested for mixed systems. Enumerating all dependency versions
is a quite busy job; we often rely on the restrictions listed
in ./configure.{in,ac} but those are not always correct either,
sometimes they are even just absent.

> The handbook says nothing about "unsupported":
> 
> http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?part=3&chap=3
> 
> If "many" choose to change this policy, there is no reason
> anymore for me to use Gentoo.

Which policy? It does not say anything about "supported" either. I
believe that its intention has always been to change it for some
packages, not for wide sets of them; the former doesn't cause much
problems, the latter is a recipe for disaster...

Note that it is merely unsupported by some developers, there are
definitely other developers that support it; and this does not imply
anything at all about our support venues.

> >> Similarly to the (fortunately dropped) concept of forcing
> >> useflags if certain packages are installed this forces a
> >> magic on the user which can hardly be managed since it is
> >> not clearly presented to the user but hidden in some profiles.
> >>
> >> As I understand, it tries to solve a "social" issue
> >> (that an ARCH user might set a USE-flag which eventually
> >> pulls in an ~ARCH package) on a technical level
> >> (by forcibly disabling the USE-flag for the user).
> > 
> > That's one approach, it might also be used when a package can be
> > stabilized but a certain of feature of the package cannot; eg.
> > USE="minimal" could be broken on a certain package because it
> > removed a bit too much, thus it could be stabilized with
> > USE="-minimal" forced.
> > 
> > Anyhow, I think we should make sure to weight "why we need to have
> > it" against "how it bothers which users"; and not just focus on
> > users alone.
> > 
> > And other than that, are there alternatives? Something we can do
> > better?
> 
> We could consider reducing the feature set of portage and live
> with the "problems" that arise.  When I started using Gentoo a
> package could simply not go stable until all dependencies for all
> USE flags were also stable.  Masking USE flags was reserved to a
> short list of very special architecture depend special cases.
>
> [...]

Doesn't that block stabilization too aggressively?
 
> >> 2. Just a few days ago dev-lang/python-exec:2 became stable
> >> on amd64, but dev-python/python-exec:2 is still ~amd64.
> >> Just to be sure to not miss anything, I have put the latter
> >> into package.accept_keywords, and hell break loose:
> > 
> > Hell indeed breaks loose if you mix stable and unstable; but note
> > that this package had an accident, see the related news item for
> > details.
> 
> Do you mean stable and unstable in this case, or in general?
> 
> [...]

General; but well, depends on how you mix things. A few packages won't
hurt, any larger than that and blockers and conflicts are all around
your ears...

> In general I share the sentiment.  The complexity of using
> portage has increased a lot lately.  Not only does it take long
> to find out why things suddenly go wrong after tree sync, also
> just the time until 'emerge -avUDN world' comes back with a
> proposal has grown to several minutes where it was few seconds
> when I started with Gentoo.

Yes, while I'm not completely sure as it gradually changed; I have the
feeling it was much shorter back in the days. Though it could be a bit
of a bias because the amount of packages I use has grown since as well.

> There has been a lot of effort to make revdep-rebuild unessecary,
> but now that it is mostly implemented, I don't know if it was
> worth the price.

emerge-time_current = emerge-time_previous + revdep-rebuild-time

is how it feels like for me; just a move of time, but I feel like it's
not the right one. Anyhow, there are parameters to disable the
subslots; just as well you can disable preserved-rebuild.

Maybe it does make more sense to run a longer process once after all
emerges, than opposed to have it run again on every single emerge.

> I spend more time now just reconfiguring
> keywords to update the system than I spent back in the old days
> where revdep would just fix things.

Not sure what the relation between keywords and revdep-rebuild is.

> If the answer is, that I
> should not mix arch and ~arch, then I'll not use Gentoo anymore.

We suggest you not to; there are enough people around to give support
for it regardless, I'm yet to come across a problem that can't be fixed.

Please don't take my words for final and consider other people's
opinion on this thread as well; I don't know the numbers, so it is hard
to tell what the general opinion on this is. Parts of this post are
therefore personal opinion or a personal view not necessarily matching
by opinion, other parts are quoted and/or might match the truth.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 13:37     ` Rich Freeman
@ 2013-11-13 14:00       ` Tom Wijsman
  2013-11-13 14:30       ` [gentoo-dev] " Duncan
  1 sibling, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-13 14:00 UTC (permalink / raw
  To: rich0; +Cc: gentoo-dev

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

On Wed, 13 Nov 2013 08:37:51 -0500
Rich Freeman <rich0@gentoo.org> wrote:

> That said, your original email contained a few separate issues and
> they're probably best dealt with individually.

Just to set things straight: Note that these were different authors.

> We're not going to have a common solution for multilib, stable use
> masking, python-exec, and whatever other issues are lurking beneath
> the surface.

Not *yet*... :D

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 11:39 ` Tom Wijsman
  2013-11-13 13:25   ` Thomas Kahle
@ 2013-11-13 14:04   ` Martin Vaeth
  1 sibling, 0 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 14:04 UTC (permalink / raw
  To: gentoo-dev

Tom Wijsman <TomWij@gentoo.org> wrote:
>> The new "features" use.stable.mask and package.use.stable.mask
>> have turned maintaining systems with mixed ARCH and ~ARCH keywords
>> into a nightmare:
>
> They are considered unsupported by many

We can make a vote, but I would be very surprised if there are
many stable users without any unstable package.

>> As I understand, it tries to solve a "social" issue
>> (that an ARCH user might set a USE-flag which eventually
>> pulls in an ~ARCH package) on a technical level
>> (by forcibly disabling the USE-flag for the user).
>
> That's one approach, it might also be used when a package can be
> stabilized but a certain of feature of the package cannot; eg.
> USE=3D"minimal" could be broken on a certain package because it removed a
> bit too much, thus it could be stabilized with USE=3D"-minimal" forced.

As I said, it is a technical means to solve a social issue:
Instead of communicating to the users that Gentoo does not consider
USE=minimal stable, one *forces* USE=-minimal behind their back, even
if they should have decided to select it explicitly.

> Sometimes problems can be resolved by better communication too; perhaps
> there are things we can inform the user about in pkg_postinst

This would be the reasonable case for the USE=minimal example
(maybe even already in pkg_setup). There are also other ways to
communicate this to the user; I_KNOW_WHAT_I_AM_DOING names etc.
is another one.

> improve Portage to let the user know of a particular forced USE flag.

If you just remove use.stable.mask, portage will tell exactly
this to the user: That some package needs to be unmasked for
a certain dependency to be satisfied.
Then it is up to the user to decide whether he wants unmasking
or setting the use-flag. Instead making the choice behind his
back (against the use-flag) is bad IMHO.

> That are indeed the two approaches, I don't see a problem with putting
> the version itself in accept_keywords or overriding the profile;

Putting a stable version into accept_keywords will (correctly) be
considered redundant by all tools which cleanup your accept_keyword:
It makes no sense, and using it only to work around the issues
which use.stable.mask introduced appears plainly false.

Overriding in the profile of e.g. use.stable.mask cannot be done
for a single package; you can only negate a whole entry. In fact,
if you want something here, you are more or less almost forced
to negate all entries of {package.,}use.stable.mask
This is why I ask whether the latter must be there in the first place.

In fact, checking what actually is there, you find:

1. Hundreds of packages with abi_x86_32
2. python_{single,}targets_*
3. 5-10 packages with USE-flags like "unstable" or "clang" for which
   it should be clear for any stable user that he does not want to
   activate it without knowing what he is doing resp. caring about
   the dependencies.
4. Nothing else.

So practically only stuff which already caused grief plus very few
normal stuff which better should be communicated if it is not
obvious anyway.

>> The really bad thing is that this is happening by magic
>> "behind the user's back"
>
> System upgrades have to be done carefully; so, the user skipping it is
> something we cannot account for

So just to get it right:
There was something introduced to avoid communication which does
something behind the user's back which in many cases can be just
the opposite that the user wanted. You expect the user to check
the output carefully so that he can recognize that somebody is
trying to trick him, and if he analyzes the profiles he can
eventually find out what it is.
Do you really consider this better than reporting to the user
that some testing package is pulled in by a USE-flag he had set?
(Which would be the effect without use.stable.mask)

>> Since there are many reasons why use-flags can appear in ()
>> he will probably not even conjecture that actually something
>> will not be working as he expected.
>
> Most of these reasons can be uniquely determined from the output

Any mask is displayed the same. But this is not the point:
stable.mask was introduced to avoid communication with the user
by trying to guess what he means (in contrast to: doing what he
writes in the config-files).
Now you expect him to read carefully output and even improve
output only that he can decide whether portage's guesses are
right or whether he has to work against his profile.

Such tools which try to be more clever than the user always
cause trouble. Please recall this mechanism which was used
previously to "guess" useflags based on installed packages
(I even forgot the name, since this was fortunately removed).
This is nothing compared to the magic which stable.mask forces,
since the latter cannot simply be overrided by configuring
package.use appropriately.

>> But suddenly portage spitted unexplainable dependency errors,
>> and I only expert users manually reading the profiles can
>> understand that the reason is that use.stable.mask requires
>> that stable versions need to be keyworded ~amd64
>> (or use.stable.mask has to be overridden in my profile).
>
> This confuses me; isn't the goal to have one multilib apprach or the
> other? Especially due to the blockers between them.

This discussion does not belong here; I decided for ABI_X86="32"
and expect portage to respect this decision and not disabling
it randomly for some packages just because I did not mark a
stable package testing.

Yes, I understand the mechanism and how to override it, but this
is all tricky and cumbersome: Essentially, you have to spend a
lot of time just to work against the stable.mask mechanism.
The intention was probably that this mechanism should be
helpful and simplify things, but it turns out that it does
just the opposite. So one should think it over and remove it
(or replace it by something better if one finds something).

>> 2. Just a few days ago dev-lang/python-exec:2 became stable
>> on amd64, but dev-python/python-exec:2 is still ~amd64.
>> Just to be sure to not miss anything, I have put the latter
>> into package.accept_keywords, and hell break loose:
>
> Hell indeed breaks loose if you mix stable and unstable

Again, one might do a vote, but I would be surprised if not
80-90% of the stable users also have unstable packages.

> but note that this package had an accident, see the related
> news item for details.

This is why it took me so long to find out; of course, I thought
that the problem is related with the news while it was actually
related with use.stable.mask

>> Portaqe wanted me to emerge the git version of
>> dev-lang/python-exec:0 and reemerge dozens of packages.
>
> This is a consequence of that hell; if you don't agree and this is due
> to the Portage tree, please show the dependency chain that causes this.

Please read, what I had written: I have explained why this happened.
It is because use.stable.mask horribly interacts with the dependency
chain: Use flags change out of nothing if you are forced to add an
unstable keyword somewhere.

>> I needed hours to find out what is the actual cause:
>> The package.accept_keywords caused the use.stable.mask of
>> python_targets_pypy2_0 und python_targets_python3_3 to become
>> ineffective for dev-python/python-exec,
>
> It doesn't matter, dev-python/python-exec installs no contents.

This is the point: You have an actual "useless" package which
due to use.stable.mask hinder dependencies from being corrrectly
resolved. And which even forces other packages to be rebuilt,
also because of changes only in use.stable.mask.

>> but of course it is still
>> effective for dev-lang/python-exec which is not be the case
>> if I unmask the git version of dev-lang/python-exec.
>
> Which one is not meant to do anyway; and from what you wrote, I don't
> think you intent to either.

Exactly, but this is the only solution which portage can
find; again, because use.stable.mask implicitly changes the
dependency chain.

>> This is completely confusing since nowhere the git-version
>> is marked differently than the non-git version.
>
> Marked in which way? One is stable, the other unkeyworded.

They provide exactly the same USE-flags, and whenever they
occur in profiles or dependencies they occur both or none.
So one has a hard time to guess why the git version satisfies
a dependency which is not satisfied by the stable version.
Of course, if one knows the answer (use.stable.mask), it is clear.
Instead of making things simpler for the user, use.stable.mask
causes problems to the user.
It causes much more problems than it solves: Actually the only
problem which it solves (or better: tries to solve) is a
communication problem...

> If it is due to the hell above, we warn users up front for that.

Most users mixing stable and unstable have valid reasons
for each case. Telling "we have told you not to do that"
only to keep a smart-ass mechanism which produces more
problems than it solves is a bad idea.

>> 3. As a side effect of 2., I realized that libreoffice and a dozen
>> further packages get forced a rebuild. So, if eventually
>> python-3.3 becomes stable and is removed from use.stable.mask, [...]
>
> That is to be expected on such stabilizations, I doubt they are
> unnecessary

Only because some package which I have not even installed changed
its stability, it should be necessary that I reemerge everything?
And even *if* I should have installed it, the change of its
stability would make it necessary to reemerge my world?
Things appear very strange in Gentoo land meanwhile...



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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 10:28 [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask Martin Vaeth
  2013-11-13 11:39 ` Tom Wijsman
@ 2013-11-13 14:10 ` Michał Górny
  2013-11-13 15:02   ` Ian Stakenvicius
  2013-11-13 15:23   ` Martin Vaeth
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
  2 siblings, 2 replies; 111+ messages in thread
From: Michał Górny @ 2013-11-13 14:10 UTC (permalink / raw
  To: gentoo-dev; +Cc: vaeth

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

Dnia 2013-11-13, o godz. 10:28:02
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisał(a):

> As I understand, it tries to solve a "social" issue
> (that an ARCH user might set a USE-flag which eventually
> pulls in an ~ARCH package) on a technical level
> (by forcibly disabling the USE-flag for the user).
> Solving social problems by technical means is never a good
> idea:

Then you don't understand it.

The basic issue is that we couldn't stabilize a package without
stabilizing all of its optional dependencies. For example, consider
Python 3.3. In order to get proper testing of it on testing, we had to
enable support for it in packages. But when we introduced that support,
the package immediately gained a dep on python:3.3.

If the package was supposed to go stable, we would either have to
stabilize Python 3.3 (too early for that), wait for Python 3.3
(resulting in very long to infinite) or drop Python 3.3 support. There
were even cases when I had to revbump a package in order to keep
'limited' revision to stabilize and 'full' to keep testing.

Just to be clear -- this isn't only a social issue. This is a valid QA
concern that we had no distinction between 'flags that are fine on
stable' and 'flags that are not'. If some flags work and some do not,
resulting in 'unsatisfiable dep' errors, this is technical.

> While the former gives the stable user a clear message
> what is going wrong (after all, many stable users want
> some package which has not a stable version yet, so this
> should be something everybody should be able to handle),
> the latter hides causes and makes things almost unpredictable:

Answer yourself the following questions: does portage suggest removing
the flag in the case? Does portage in any way explain that a particular
dependency was pulled in due to USE flag?

It's easy to use words like 'clear message' when you want to prove your
point. And I have no idea what you mean by 'something everybody should
be able to handle', unless you assume that the main purpose of a stable
system is to turn it into mixed-keyword system.

And just in case: the proper course of action then is to *report
a bug*. And in the end, thanks to your glorified solution, we end up
with dozens or hundreds of 'CANTFIX' bugs.

> Even if the user has put the dependency into
> package.accept_keywords, he will not be able to use the
> USE-flag on his packages unless
> *he puts stable versions into package.accept_keywords*
> (or - simlarly worse - overrides the profile).

If you have a problem with USE flag being masked, you unmask the USE
flag. It is simple like this.

I don't agree with the whole idea of unmasking flags via playing with
accept_keywords. In my opinion, it's just a terrible bug or mis-design.
It's not something that should be encouraged, or even happen.

If you unmask testing package just to get testing keywords, you quickly
lose the point of having stable keywords. Putting just the stable
versions is a pointless nightmare.

Even worse than that, people with mixed systems get extra flags even if
they don't want them. And this is an easy way to have them end up with
half of the system on testing.

> The really bad thing is that this is happening by magic
> "behind the user's back", i.e. contradicting the user's setting
> of USE-flag and package.use: If the user does not carefully
> read emerge's -v output, he even does not get informed that
> the support for his unstable package is dropped from the
> stable package, despite he might have specified the corresponding
> USE-flag globally. Even worse, even when reading the output
> carefully, the user cannot understand the reason:
> Since there are many reasons why use-flags can appear in ()
> he will probably not even conjecture that actually something
> will not be working as he expected.

It's magic only because you did it wrong.

> Here are some other examples of negative effects happening
> just recently to me, ordered from not so severe to very bad:
> 
> 1. For several reasons I always want the most current
> emul-linux-x86* libraries, so they are in package.accept_keywords.
> Due to global ABI_X86=32 (which I also want), this forced me
> of course to put several libraries to ~amd64 since only
> new version support this. Some of the libraries are actually
> stable, so I have removed them from package.accept_keywords.
> So far, so good.
> But suddenly portage spitted unexplainable dependency errors,
> and I only expert users manually reading the profiles can
> understand that the reason is that use.stable.mask requires
> that stable versions need to be keyworded ~amd64
> (or use.stable.mask has to be overridden in my profile).

Which wouldn't happen if package.accept_keywords didn't implicitly
unmask flags.

> 2. Just a few days ago dev-lang/python-exec:2 became stable
> on amd64, but dev-python/python-exec:2 is still ~amd64.

And this was a bug that would have been fixed if you cared reporting it
straight to us rather than kept is as an argument.

> 3. As a side effect of 2., I realized that libreoffice and a dozen
> further packages get forced a rebuild. So, if eventually
> python-3.3 becomes stable and is removed from use.stable.mask,
> all stable users will have to rebuild almost their whole world,
> because python-exec then has one more "dummy" USE-flag. The same
> will happen again if pypy-2.0 becomes stable.
> So a lot of unnecessary rebuilds happen to stable users because
> of {package.,}use.stable.mask which most of the developers
> (who are often ~amd64 users) do not realize.

I don't get this. A masked flag is equivalent to a disabled flag. What
would cause the rebuild then?

-- 
Best regards,
Michał Górny

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

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 13:37     ` Rich Freeman
  2013-11-13 14:00       ` Tom Wijsman
@ 2013-11-13 14:30       ` Duncan
  2013-11-13 14:55         ` Thomas Kahle
  1 sibling, 1 reply; 111+ messages in thread
From: Duncan @ 2013-11-13 14:30 UTC (permalink / raw
  To: gentoo-dev

Rich Freeman posted on Wed, 13 Nov 2013 08:37:51 -0500 as excerpted:

> On Wed, Nov 13, 2013 at 8:25 AM, Thomas Kahle <tomka@gentoo.org> wrote:
>> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
>>> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
>>> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
>>>
>>>> Hello.
>>>>
>>>> The new "features" use.stable.mask and package.use.stable.mask have
>>>> turned maintaining systems with mixed ARCH and ~ARCH keywords into a
>>>> nightmare:
>>>
>>> They are considered unsupported by many; so, going down that path you
>>> need to be acquainted with Portage enough to keep a consistent system.
>>
>> This argument has come up several times, but is it valid?
> 
> Honestly, opinions vary on this one and I don't think it is a productive
> path to go down.  I also feel that being able to mix keywords is a big
> benefit of using Gentoo.  I'd rather focus on practical ways to make
> this easier rather than whether it is desirable.
> 
> That said, there are always going to be situations where mixing keywords
> isn't practical.  You're not going to run stable chromium against ~arch
> v8, or mixed keywords between kdelibs and kwin, etc.

FWIW, I believe at least part of the confusion here is based on differing 
definitions of "supported".

Mixing ~arch/arch keywords is "supported" in that gentoo makes it 
possible, and in the generic case, relatively easy.

It's "unsupported" in that it's a not generally tested case:

[TL;DR folks can skip this whole post from here.  It's mostly 
philosophical rambling attempting to backup the above claim.]

The all-~arch tree case is basic sanity tested by devs when the introduce 
the package with ~arch keywords, and further by the many users (including 
me) who run all ~arch systems and wouldn't have it any other way.  So 
while there's a measure of risk in it, chances are others on ~arch are 
running into any problems at about the same time, and bugs will be 
reported and generally either fixed or a workaround (patch in a bug if 
not yet in tree, or a bug comment saying it works use flag X turned off, 
etc) will be available, within a relatively short period.

The all arch-stable tree is tested as well, by the various arch devs and 
arch-testers before they stabilize a particular package with tests 
against an otherwise fully stable tree, and further by the various users 
running that.

A mixed stable/~arch installation, however, is an undefined and mostly 
untested case, and by domain definition will remain so, simply because of 
the combinational explosion in the number of possible variants.

(Note that an argument of "simpler" and mostly binary distros is that 
gentoo is /already/ that way, due to the combinational explosion of all 
the various USE flag possibilities -- already that's beyond testing every 
combination possible, but gentooers learn to live with and accept that 
level of risk and the possibility that they may have to change a USE flag 
to get something to work because that combination wasn't tested and 
breaks, from time to time.  But the combinational possibilities are at 
least within reason there, all the combinational possibilities of stable 
with unstable is and will remain unsupportable in practice if not in 
name, at least if "supportable" is defined with any strictness at all.)

Thus, by defintion of the mixed stable/~arch domain, it's simply 
impossible to test and thus to support in any sort of "this unstable 
package tested and demonstrated to work with a random mix of stable/~arch 
packages" way, at all!

So in that regard, a mixed stable/~arch system is and will remain 
unsupported, simply because it's impossible /to/ support.

That notwithstanding, gentoo DOES make it possible, even "easy" (note the 
scare-quotes), to run a mixed stable/~arch system.  And the /ability/ to 
do so remains supported.  However, users should know that in doing so 
they're running a combination that isn't commonly tested, indeed, that 
CANNOT be fully tested (even more so than the USE flag thing in general 
means for gentoo), and should understand and be willing to accept the 
added risk and manual sysadmin care necessary as a result.

And part of accepting that means that yes, they might have some bugs 
closed with, effectively, "if it hurts when you bang your head against 
the wall, quit banging your head against the wall", INVALID, NOTABUG, 
etc, along with the associated recommendation to stick with either fully 
~arch or fully arch, at least for that package and its dependencies.

And similarly, there WILL be more headaches with stuff like 
package.stable.use overrides, etc, because by domain definition, that 
sort of additional manual maintenance burden and responsibility comes 
with the mixed stable/~arch domain.

But whether that's considered "unsupported" or not depends on how strict 
and individual's definition of "supported" actually is.  THIS is where 
opinions differ, at least in my /own/ opinion, as explained above.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 13:56     ` [gentoo-dev] " Tom Wijsman
@ 2013-11-13 14:38       ` Martin Vaeth
  0 siblings, 0 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 14:38 UTC (permalink / raw
  To: gentoo-dev

Tom Wijsman <TomWij@gentoo.org> wrote:
>
> and I quote "quite a few bugs are closed as invalid when a mixed system
> is detected"

I think nobody is speaking against this possibility:
If it causes too much grief to the maintainer to list all blockers
explicitly, I think everybody can agree if he says that if it breaks
you keep the pieces.

However, it is a different thing to treat mixing generally like ricing
and to introduce mechanisms which - as my example hopefully show -
can be *expected* to break usability of a mixed systems:

There are valid reasons to not have a testing system (besides the
obvious desire for stability another one is too frequent updates),
but there are also many valid reasons why you need some package(s)
which pull in a lot of unstable dependencies.

I think the "typical" use case even is a mixed system, since
most systems will require some special applications (related to
the main task this system is supposed to do; perhaps development
of something which needs a lot of unstable packages) while
on the other hand this does not mean that *everything* in the
system should be testing and frequently updated.

BTW, another reason for mixing which was not mentioned yet is
users of multiple architectures (e.g. amd64 and x86) wanting to
have the same versions installed (e.g. to use the same tarballs);
although, as a rule, amd64 and x86 do not differ *much*, they usually
always differ in a few packages since some team always stabilizes first.

> Given that maintainers often test against test versions and that arch
> teams often test against stable versions, nobody really tests the rests
> of the situations [...]
>
> It's also very unrealistic to check every package for every bump

Again, I think nobody expects that there never will be any trouble
on a mixing system.  But it is one thing whether this trouble occurs
from time to time - when things are running badly - or whether the
package manager uses a mechanism which can be expected to break on
mixing system.

> Which policy? It does not say anything about "supported" either. I
> believe that its intention has always been to change it for some
> packages, not for wide sets of them; the former doesn't cause much
> problems, the latter is a recipe for disaster...

With use.stable.mask you get problems even with one
unstable package unless you verify manually that no
useflag related to this package is in use.stable.mask
And if it is, you are lost in the sense that you have to
eliminate the provided use.stable.mask.
So what has use.stable.mask achieved? It has forced to you
to eliminate the mechanism and nothing else.

>> We could consider reducing the feature set of portage and live
>> with the "problems" that arise.  When I started using Gentoo a
>> package could simply not go stable until all dependencies for all
>> USE flags were also stable.  Masking USE flags was reserved to a
>> short list of very special architecture depend special cases.
>>
>> [...]
>
> Doesn't that block stabilization too aggressively?

Maybe, maybe not. It is exactly this social/political question which
is attempted to be solved by technical means with use.stable.mask.
This is what does not work:
You cannot solve this question (whether to relax this policy;
are there any exceptions valid and if yes which one) by a technical
tool which forces a certain other decision onto the user.
It is just shifting the problem and causes additional headache.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 14:30       ` [gentoo-dev] " Duncan
@ 2013-11-13 14:55         ` Thomas Kahle
  2013-11-13 15:16           ` Ian Stakenvicius
  0 siblings, 1 reply; 111+ messages in thread
From: Thomas Kahle @ 2013-11-13 14:55 UTC (permalink / raw
  To: gentoo-dev

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

On 11/13/2013 03:30 PM, Duncan wrote:
> Rich Freeman posted on Wed, 13 Nov 2013 08:37:51 -0500 as excerpted:
> 
>> On Wed, Nov 13, 2013 at 8:25 AM, Thomas Kahle <tomka@gentoo.org> wrote:
>>> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
>>>> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC)
>>>> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
>>>>
>>>>> Hello.
>>>>>
>>>>> The new "features" use.stable.mask and package.use.stable.mask have
>>>>> turned maintaining systems with mixed ARCH and ~ARCH keywords into a
>>>>> nightmare:
>>>>
>>>> They are considered unsupported by many; so, going down that path you
>>>> need to be acquainted with Portage enough to keep a consistent system.
>>>
>>> This argument has come up several times, but is it valid?
>>
>> Honestly, opinions vary on this one and I don't think it is a productive
>> path to go down.  I also feel that being able to mix keywords is a big
>> benefit of using Gentoo.  I'd rather focus on practical ways to make
>> this easier rather than whether it is desirable.
>>
>> That said, there are always going to be situations where mixing keywords
>> isn't practical.  You're not going to run stable chromium against ~arch
>> v8, or mixed keywords between kdelibs and kwin, etc.
> 
> FWIW, I believe at least part of the confusion here is based on differing 
> definitions of "supported".

I agree.  Generally however, we should think Gentoo (or the open
source ecosystem) more bazaar, less cathedral.  Libraries have
interfaces, and they are supposed to be mixed and matched
according to the interface definitions.  We (Gentoo) should not
think of "Gentoo stable" as a fixed product like "iOS-7".  It has
come a long way, but philosophically I still think of Gentoo as a
kind of automated Linux-from-scratch (where you also mix and
match whatever you find on the Internets).

In the end it boils down to what we mean by "supported".  For me
"supported" does not mean "tested".  As you point out, testing
every combination forbids itself.  Supported for me means that
the argument "you mixed stable and unstable" is not per se valid.
There's a huge difference between

You mixed unstable firefox with stable gcc

and

You mixed unstable X server with stable protocols.

For me mixing the trees is supported in the sense that I would
apply rational judgement to bugs.  If they are of the second
type, it can be said in a polite way that we as Gentoo can't do
anything about this combination not working.

Cheers,
Thomas

-- 
Thomas Kahle


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 555 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 14:10 ` [gentoo-dev] " Michał Górny
@ 2013-11-13 15:02   ` Ian Stakenvicius
  2013-11-13 15:58     ` Rich Freeman
  2013-11-13 23:49     ` Patrick Lauer
  2013-11-13 15:23   ` Martin Vaeth
  1 sibling, 2 replies; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-13 15:02 UTC (permalink / raw
  To: gentoo-dev

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

On 13/11/13 09:10 AM, Michał Górny wrote:
>> 
>> 1. For several reasons I always want the most current 
>> emul-linux-x86* libraries, so they are in
>> package.accept_keywords. Due to global ABI_X86=32 (which I also
>> want), this forced me of course to put several libraries to
>> ~amd64 since only new version support this. Some of the libraries
>> are actually stable, so I have removed them from
>> package.accept_keywords. So far, so good. But suddenly portage
>> spitted unexplainable dependency errors, and I only expert users
>> manually reading the profiles can understand that the reason is
>> that use.stable.mask requires that stable versions need to be
>> keyworded ~amd64 (or use.stable.mask has to be overridden in my
>> profile).
> 
> Which wouldn't happen if package.accept_keywords didn't implicitly 
> unmask flags.
> 

(I haven't read this whole thread yet, but in case it hasn't been
mentioned:)

It's also worth pointing out that the whole reason why abi_x86_32 is
{package.,}use.stable.masked is because trying to manage the partial
transisition between emul-* and multilib-build dependencies on stable
or mixed-keyworded systems is a horrible headache at the moment, due
to those exact same unexplainable dependency errors.  Without
{package.,}use.stable.mask, all stable users would have to deal with
this *right now* on their systems.


Note also that setting ABI_X86=32 globally isn't how it's supposed to
be used; the point of this flag is for dependency resolution when a
particular package requires it (ie, top-level package depends on
app-cat/dep[abi_x86_32], portage --autounmask-write sets the necessary
changes to /etc/portage/package.use).  But that's neither here nor there.

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

iF4EAREIAAYFAlKDlI4ACgkQ2ugaI38ACPBopwD8CLqHS45H50Dg4Jnz5/JgpcKP
9BkjdulcBTGSIxyJX8sA/j2d+fojR0hCAJvsPsD24h90CWBvfhxnK824//aejoQi
=2vLL
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 14:55         ` Thomas Kahle
@ 2013-11-13 15:16           ` Ian Stakenvicius
  2013-11-13 18:56             ` Daniel Campbell
  0 siblings, 1 reply; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-13 15:16 UTC (permalink / raw
  To: gentoo-dev

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

On 13/11/13 09:55 AM, Thomas Kahle wrote:
> On 11/13/2013 03:30 PM, Duncan wrote:
>> Rich Freeman posted on Wed, 13 Nov 2013 08:37:51 -0500 as
>> excerpted:
>> 
>>> On Wed, Nov 13, 2013 at 8:25 AM, Thomas Kahle
>>> <tomka@gentoo.org> wrote:
>>>> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
>>>>> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC) Martin Vaeth
>>>>> <vaeth@mathematik.uni-wuerzburg.de> wrote:
>>>>> 
>>>>>> Hello.
>>>>>> 
>>>>>> The new "features" use.stable.mask and
>>>>>> package.use.stable.mask have turned maintaining systems
>>>>>> with mixed ARCH and ~ARCH keywords into a nightmare:
>>>>> 
>>>>> They are considered unsupported by many; so, going down
>>>>> that path you need to be acquainted with Portage enough to
>>>>> keep a consistent system.
>>>> 
>>>> This argument has come up several times, but is it valid?
>>> 
>>> Honestly, opinions vary on this one and I don't think it is a
>>> productive path to go down.  I also feel that being able to mix
>>> keywords is a big benefit of using Gentoo.  I'd rather focus on
>>> practical ways to make this easier rather than whether it is
>>> desirable.
>>> 
>>> That said, there are always going to be situations where mixing
>>> keywords isn't practical.  You're not going to run stable
>>> chromium against ~arch v8, or mixed keywords between kdelibs
>>> and kwin, etc.
>> 
>> FWIW, I believe at least part of the confusion here is based on
>> differing definitions of "supported".
> 
> I agree.  Generally however, we should think Gentoo (or the open 
> source ecosystem) more bazaar, less cathedral.  Libraries have 
> interfaces, and they are supposed to be mixed and matched according
> to the interface definitions.  We (Gentoo) should not think of
> "Gentoo stable" as a fixed product like "iOS-7".  It has come a
> long way, but philosophically I still think of Gentoo as a kind of
> automated Linux-from-scratch (where you also mix and match whatever
> you find on the Internets).
> 
> In the end it boils down to what we mean by "supported".  For me 
> "supported" does not mean "tested".  As you point out, testing 
> every combination forbids itself.  Supported for me means that the
> argument "you mixed stable and unstable" is not per se valid. 
> There's a huge difference between
> 
> You mixed unstable firefox with stable gcc
> 
> and
> 
> You mixed unstable X server with stable protocols.
> 
> For me mixing the trees is supported in the sense that I would 
> apply rational judgement to bugs.  If they are of the second type,
> it can be said in a polite way that we as Gentoo can't do anything
> about this combination not working.


The term "supported" is a rather overloaded term which tends to mean
different things in gentoo depending on the context that it is used
(and who's using it), for sure.  It's also not analogous to "working"
or "expected to work", at all, imo.

I wonder if it might be a good idea to have a discussion and reach
consensus on what the Gentoo (Developer) definition of "Supported"
should actually be, and document this somewhere so that ambiguity can
be officially removed.

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

iF4EAREIAAYFAlKDl9EACgkQ2ugaI38ACPABTgEApL3YpwDO1aN6SrJ08byJi7L4
q5I1zYPImbooAUkm3OAA/2gGn2m1ulw6UzoQNLEtVkEzXr83iwMUvHX4jaGhUUEo
=b+5F
-----END PGP SIGNATURE-----


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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 14:10 ` [gentoo-dev] " Michał Górny
  2013-11-13 15:02   ` Ian Stakenvicius
@ 2013-11-13 15:23   ` Martin Vaeth
  2013-11-13 15:41     ` Mike Gilbert
                       ` (2 more replies)
  1 sibling, 3 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 15:23 UTC (permalink / raw
  To: gentoo-dev

Michał Górny <mgorny@gentoo.org> wrote:
>
>> As I understand, it tries to solve a "social" issue
>> (that an ARCH user might set a USE-flag which eventually
>> pulls in an ~ARCH package) on a technical level
>> (by forcibly disabling the USE-flag for the user).
>> Solving social problems by technical means is never a good
>> idea:
>
> Then you don't understand it.
>
> The basic issue is that we couldn't stabilize a package without
> stabilizing all of its optional dependencies.

Exactly: The social issue is that you have this rule fixed
without any exceptions and do not want to discuss about exceptions.

> There were even cases when I had to revbump a package in order to keep
> 'limited' revision to stabilize and 'full' to keep testing.

The social issue has to be solved and it has to be clarified
when packages are allowed to have USE-flags depending on unstable
packages which the user has to resolve when he wants them.

> Just to be clear -- this isn't only a social issue. This is a valid QA
> concern that we had no distinction between 'flags that are fine on
> stable' and 'flags that are not'. If some flags work and some do not,
> resulting in 'unsatisfiable dep' errors, this is technical.

No. The user has to be told that he *should* not use such certain
flags on a stable system. This can happen by portage reporting
a message that some USE-dependency is pulling in an unstable package,
but it can also happen in a different way.
The use.stable.mask "solution" is to not inform the user but just
decide behind his back that he cannot use the flag and enforce
this decision.
Instead, e.g. one can let portage report if some useflag described
in use.stable.mask needs to be disabled, or one can use some
"I_KNOW_WHAT_I_AM_DOING" name, or whatever. There are many ways
of reporting. But forcing a decision on the user without even
communicating reasonably why this decision was forced is very bad IMHO.

> Answer yourself the following questions: does portage suggest removing
> the flag in the case? Does portage in any way explain that a particular
> dependency was pulled in due to USE flag?

The output can easily be improved: It is not rocket
science to list "required by category/package[FLAG]" instead of
"required by category/package" or to display the relevant part
of the dependency string (something similar is done already for
REQUIRED_USE, so the logic probably already exists in portage).

> And just in case: the proper course of action then is to *report
> a bug*. And in the end, thanks to your glorified solution, we end up
> with dozens or hundreds of 'CANTFIX' bugs.

Yeah, it is much better to throw the users into dependency hell
in which they have no clue how to find out. Certainly they will
never report any bugs in this case when they can so easily solve
this by just going through all dependencies and all profiles
manually and understanding all details.

> If you have a problem with USE flag being masked, you unmask the USE
> flag. It is simple like this.

Yes, the sane way to deal with use.stable.mask for the user is to
undo manually everything which is set there.
But is it really a good feature, if the user essentially only
removes it?

> I don't agree with the whole idea of unmasking flags via playing with
> accept_keywords. In my opinion, it's just a terrible bug or mis-design.
> It's not something that should be encouraged, or even happen.

I completely agree.
But the only way to unmask it otherwise is to undo use.stable.mask.
Then why have use.stable.mask in the first place?
Moreover, for use.stable.mask this cannot happen on a per-package basis.

Perhaps one can introduce a better way to unmask use.stable.mask?

> Even worse than that, people with mixed systems get extra flags even if
> they don't want them. And this is an easy way to have them end up with
> half of the system on testing.

Do you mean by "extra flags" again those of use.package.mask?
Then isn't this again an argument against use.package.mask at all?

> It's magic only because you did it wrong.

No, it is magic because it makes a decision (pulling in ~amd64
or unsetting USE) without communicating appropriately with the user
and even without giving him a clean possibility to decide differently.
(Modifying the profile is more a hack than a clean possibility).

Moreover, once the thing is removed from use.stable.mask he gets
tricked a second time by suddenly a useflag popping up.
(OK, this time, he *does* get informed and has a clean possibility
to change, so this time his surprise is limited).

> Which wouldn't happen if package.accept_keywords didn't implicitly
> unmask flags.

Exactly. This is why it becomes a dependency hell.
But wouldn't removing this go against the purpose of use.stable.mask?

> I don't get this. A masked flag is equivalent to a disabled flag. What
> would cause the rebuild then?

All python versions are use.force'd in this package.
However, those which are use.stable.mask'ed are not use.force'd,
because use.stable.mask overrides use.force (which makes sense).
So if the use.stable.mask entry changes, the active USE-flags
in the package change automatically, and the user cannot do anything
against it (except modifying the profile).



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:23   ` Martin Vaeth
@ 2013-11-13 15:41     ` Mike Gilbert
  2013-11-14  0:11       ` Tom Wijsman
  2013-11-13 15:42     ` Kent Fredric
  2013-11-13 15:44     ` Michał Górny
  2 siblings, 1 reply; 111+ messages in thread
From: Mike Gilbert @ 2013-11-13 15:41 UTC (permalink / raw
  To: Gentoo Dev

On Wed, Nov 13, 2013 at 10:23 AM, Martin Vaeth
<vaeth@mathematik.uni-wuerzburg.de> wrote:
> Michał Górny <mgorny@gentoo.org> wrote:
>>
>>> As I understand, it tries to solve a "social" issue
>>> (that an ARCH user might set a USE-flag which eventually
>>> pulls in an ~ARCH package) on a technical level
>>> (by forcibly disabling the USE-flag for the user).
>>> Solving social problems by technical means is never a good
>>> idea:
>>
>> Then you don't understand it.
>>
>> The basic issue is that we couldn't stabilize a package without
>> stabilizing all of its optional dependencies.
>
> Exactly: The social issue is that you have this rule fixed
> without any exceptions and do not want to discuss about exceptions.
>
>> There were even cases when I had to revbump a package in order to keep
>> 'limited' revision to stabilize and 'full' to keep testing.
>
> The social issue has to be solved and it has to be clarified
> when packages are allowed to have USE-flags depending on unstable
> packages which the user has to resolve when he wants them.
>
>> Just to be clear -- this isn't only a social issue. This is a valid QA
>> concern that we had no distinction between 'flags that are fine on
>> stable' and 'flags that are not'. If some flags work and some do not,
>> resulting in 'unsatisfiable dep' errors, this is technical.
>
> No. The user has to be told that he *should* not use such certain
> flags on a stable system. This can happen by portage reporting
> a message that some USE-dependency is pulling in an unstable package,
> but it can also happen in a different way.
> The use.stable.mask "solution" is to not inform the user but just
> decide behind his back that he cannot use the flag and enforce
> this decision.
> Instead, e.g. one can let portage report if some useflag described
> in use.stable.mask needs to be disabled, or one can use some
> "I_KNOW_WHAT_I_AM_DOING" name, or whatever. There are many ways
> of reporting. But forcing a decision on the user without even
> communicating reasonably why this decision was forced is very bad IMHO.

Let's talk about the development workflow we use for a minute:

Say I want to stabilize a package on a given architecture. One of the
first tests I run is to change KEYWORDS and run repoman. repoman will
check to ensure that all dependencies are at least visible with the
given set of KEYWORDS. This is a fairly important check, and it often
prevents major fuck ups.

If we were to remove use.stable.mask, I as a developer would require
some alternate way to declare a use flag unsupported on stable so that
repoman knows not to check the optional dependencies for it with
stable keywords.

This is not a completely social issue; there is a very real
technical/QA issue that needs to be addressed on the development side.
If you can figure that out, we can talk about changing the end-user
experience.


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:23   ` Martin Vaeth
  2013-11-13 15:41     ` Mike Gilbert
@ 2013-11-13 15:42     ` Kent Fredric
  2013-11-13 16:05       ` Martin Vaeth
  2013-11-13 15:44     ` Michał Górny
  2 siblings, 1 reply; 111+ messages in thread
From: Kent Fredric @ 2013-11-13 15:42 UTC (permalink / raw
  To: gentoo-dev

On 14 November 2013 04:23, Martin Vaeth
<vaeth@mathematik.uni-wuerzburg.de> wrote:
> The use.stable.mask "solution" is to not inform the user but just
> decide behind his back that he cannot use the flag and enforce
> this decision.
> Instead, e.g. one can let portage report if some useflag described
> in use.stable.mask needs to be disabled, or one can use some
> "I_KNOW_WHAT_I_AM_DOING" name, or whatever. There are many ways
> of reporting. But forcing a decision on the user without even
> communicating reasonably why this decision was forced is very bad IMHO.


Ah, that explains why I hadn't thought I'd seen what this subject was
about, because I expected when I saw

   (-foo)

In emerge's overview output, that the flag "foo" was simply
hard-masked profile-wide, for "some reason".

If there was better indication that these flags are simply masked due
to a stability level difference, I'd have expected a different
indicator in the output.

Seems as this is the reality we have:

ebuild:  stable, unstable, hardmasked/experimental
useflag: stable, hardmasked/experimental

Seems logical we make useflags potentially be:

useflag: stable, unstable, hardmasked/experimental

"Somehow", or at least, if that is already the case, it needs to be
more obvious what is occurring, and what steps we should be taking if
we want to work around it.

Maybe IUSE can be extended in a future EAPI to have ~ , or we could
have a seperate variable to indicate useflag stability.

ideas:
   -foo   #  I don't want foo, but defer if stability differences make
that impossible.
  -~foo   #  I don't want foo, and I don't care if removing foo
reduces stability.
  -**foo # I don't care if foo is experimental , turn that shit off

or something.

At very least, emerge --pretend  should say something like

   ((~)-foo)

To indicate foo is turned off due to a stability mask, though I don't
know how to make it clear to end users what that means. Just showing
something different however is often enough to make interested parties
curious.

-- 
Kent


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:23   ` Martin Vaeth
  2013-11-13 15:41     ` Mike Gilbert
  2013-11-13 15:42     ` Kent Fredric
@ 2013-11-13 15:44     ` Michał Górny
  2013-11-13 16:52       ` Martin Vaeth
  2013-11-13 17:03       ` Peter Stuge
  2 siblings, 2 replies; 111+ messages in thread
From: Michał Górny @ 2013-11-13 15:44 UTC (permalink / raw
  To: gentoo-dev; +Cc: vaeth

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

Dnia 2013-11-13, o godz. 15:23:44
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisał(a):

> Michał Górny <mgorny@gentoo.org> wrote:
> >
> >> As I understand, it tries to solve a "social" issue
> >> (that an ARCH user might set a USE-flag which eventually
> >> pulls in an ~ARCH package) on a technical level
> >> (by forcibly disabling the USE-flag for the user).
> >> Solving social problems by technical means is never a good
> >> idea:
> >
> > Then you don't understand it.
> >
> > The basic issue is that we couldn't stabilize a package without
> > stabilizing all of its optional dependencies.
> 
> Exactly: The social issue is that you have this rule fixed
> without any exceptions and do not want to discuss about exceptions.

Did you ever do any serious package work, or are just discussing
theory?

Repoman is not a social tool. It's a technical dep checker, and if you
start allowing exceptions to the rules, its output will *soon* become
useless since you would have to filter out all the allowed exceptions
and hope they didn't hide a valid issue.

> > Just to be clear -- this isn't only a social issue. This is a valid QA
> > concern that we had no distinction between 'flags that are fine on
> > stable' and 'flags that are not'. If some flags work and some do not,
> > resulting in 'unsatisfiable dep' errors, this is technical.
> 
> No. The user has to be told that he *should* not use such certain
> flags on a stable system. This can happen by portage reporting
> a message that some USE-dependency is pulling in an unstable package,
> but it can also happen in a different way.
> The use.stable.mask "solution" is to not inform the user but just
> decide behind his back that he cannot use the flag and enforce
> this decision.

Let's move this a few blocks back. So, on a regular stable system,
should portage report you every time that this new package version is
not tested and you shouldn't be using it? But it will be just
a suggestion, you need to manually choose the older version if you want
to follow it...

Do you see now what you are proposing?

> > Answer yourself the following questions: does portage suggest removing
> > the flag in the case? Does portage in any way explain that a particular
> > dependency was pulled in due to USE flag?
> 
> The output can easily be improved: It is not rocket
> science to list "required by category/package[FLAG]" instead of
> "required by category/package" or to display the relevant part
> of the dependency string (something similar is done already for
> REQUIRED_USE, so the logic probably already exists in portage).

If it can easily be improved, then why didn't *you* improve it yet? Go
for it, then tell us how easy it was. Then we can consider what to do
next.

> > And just in case: the proper course of action then is to *report
> > a bug*. And in the end, thanks to your glorified solution, we end up
> > with dozens or hundreds of 'CANTFIX' bugs.
> 
> Yeah, it is much better to throw the users into dependency hell
> in which they have no clue how to find out. Certainly they will
> never report any bugs in this case when they can so easily solve
> this by just going through all dependencies and all profiles
> manually and understanding all details.

We must be having different users. Because as far as I know, we have
users throwing quite-a-long emerge outputs from time to time.

Of course, there are ricers too. The people who are going to mess up
their systems and suggest others to do the same, just to prove they
solve any problem in the worst way possible.

> > If you have a problem with USE flag being masked, you unmask the USE
> > flag. It is simple like this.
> 
> Yes, the sane way to deal with use.stable.mask for the user is to
> undo manually everything which is set there.
> But is it really a good feature, if the user essentially only
> removes it?

Are stable keywords a good idea if the user essentially only overrides
them with package.accept_keywords?

The point you are missing is that we actually have stable users who
essentially want *stable* system. Those people don't want to get
testing packages unless absolutely necessary, and they'd rather wait
for Python 3 to go stable than unmask the flag for the fun of it.

> > I don't agree with the whole idea of unmasking flags via playing with
> > accept_keywords. In my opinion, it's just a terrible bug or mis-design.
> > It's not something that should be encouraged, or even happen.
> 
> I completely agree.
> But the only way to unmask it otherwise is to undo use.stable.mask.
> Then why have use.stable.mask in the first place?

And by using 'package.use' you 'undo' USE defaults in packages
and global flag defaults, and... why do we have USE flags at all? We're
just all undoing stuff anyway.

> Moreover, for use.stable.mask this cannot happen on a per-package basis.

It's called package.use.stable.mask.

> Perhaps one can introduce a better way to unmask use.stable.mask?

Like what?

> > Even worse than that, people with mixed systems get extra flags even if
> > they don't want them. And this is an easy way to have them end up with
> > half of the system on testing.
> 
> Do you mean by "extra flags" again those of use.package.mask?
> Then isn't this again an argument against use.package.mask at all?

I mean stable-masked flags. So you get 2-in-1 with no clear indication
that you got an extra unmask.

> > I don't get this. A masked flag is equivalent to a disabled flag. What
> > would cause the rebuild then?
> 
> All python versions are use.force'd in this package.
> However, those which are use.stable.mask'ed are not use.force'd,
> because use.stable.mask overrides use.force (which makes sense).
> So if the use.stable.mask entry changes, the active USE-flags
> in the package change automatically, and the user cannot do anything
> against it (except modifying the profile).

Then the user gets to rebuild python-exec which is a tiny C executable.
Reverse dependencies are not rebuilt.

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:02   ` Ian Stakenvicius
@ 2013-11-13 15:58     ` Rich Freeman
  2013-11-13 23:49     ` Patrick Lauer
  1 sibling, 0 replies; 111+ messages in thread
From: Rich Freeman @ 2013-11-13 15:58 UTC (permalink / raw
  To: gentoo-dev

On Wed, Nov 13, 2013 at 10:02 AM, Ian Stakenvicius <axs@gentoo.org> wrote:
> It's also worth pointing out that the whole reason why abi_x86_32 is
> {package.,}use.stable.masked is because trying to manage the partial
> transisition between emul-* and multilib-build dependencies on stable
> or mixed-keyworded systems is a horrible headache at the moment, due
> to those exact same unexplainable dependency errors.  Without
> {package.,}use.stable.mask, all stable users would have to deal with
> this *right now* on their systems.

Indeed, by mixing keywords/etc Martin is basically having to deal with
this mess *right now.*

>
>
> Note also that setting ABI_X86=32 globally isn't how it's supposed to
> be used;

I never really viewed the new multilib stuff as being "ready for
primetime" anyway.  That isn't meant to reflect on its level of
quality/etc - just that it isn't completely rolled out and the
docs/etc aren't really designed for end-user consumption yet.

Users who take advantage of new features in these kinds of states are
going to run into problems.  That's just the cost of being on the
cutting edge.

Rich


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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:42     ` Kent Fredric
@ 2013-11-13 16:05       ` Martin Vaeth
  2013-11-13 17:05         ` "Paweł Hajdan, Jr."
  0 siblings, 1 reply; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 16:05 UTC (permalink / raw
  To: gentoo-dev

Kent Fredric <kentfredric@gmail.com> wrote:
>
> Maybe IUSE can be extended in a future EAPI to have ~

I like this "~foo" idea very much from the user's point of view:
You see clearly why useflags are disabled, and one could have a
"simple" mechanism to override it.

However, extending IUSE is not the correct way, because
you would need a matrix in every ebuild which cannot be
reasonably maintained: Every useflag can be masked or stable on
each architecture differently. So, supporting the currently
existing {package,}.use.mask in the profiles might make sense,
just the effect needs to be modified somewhat.

1. A tiny change in the display: ~foo instead of (-foo)
2. A more severe change in the way how to unmask it:

(a) ACCEPT_KEYWORD=~ARCH can unmask it (as currenttly).

(b) /etc/portage/package.accept_keywords does *not* unmask it
    (contrary to now); this would avoid the dependency hell.
    Instead:

(c1) The entry ~foo in /etc/portage/package.use unkeywords foo.
     Alternatively (or in addition):

(c2) The entry foo in /etc/portage/package.use.accept_keywords
     unmasks it; this could be even extended with architectures
     and '**' as the current accept_keywords.

(d) Of course, changing the profile (like overriding it in
    /etc/portage/profile) can unmask it, too (as currently),
    but this should not be encouraged.

If I see it correctly, this would not even require an EAPI bump,
since /etc/portage/package.* files are not subject to pms.

I hope that (b) is not hard to implement in portage, since
it means that portage has to keep track about the cause of
an unkeywording.



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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:44     ` Michał Górny
@ 2013-11-13 16:52       ` Martin Vaeth
  2013-11-13 17:03       ` Peter Stuge
  1 sibling, 0 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-13 16:52 UTC (permalink / raw
  To: gentoo-dev

Michał Górny <mgorny@gentoo.org> wrote:
>
> Repoman is not a social tool. It's a technical dep checker, and if you
> start allowing exceptions to the rules

Repoman might still access use.stable.mask without having
portage force it on users.

The social conflict I mean is: You *want* that users do not
decide for ~ARCH but instead always against enabling the
USE-flag, so you make it technically very hard for them
to even recognize that a decision is being made for them.

The solution in the other posting with displaying ~foo
(and simple unmasking) gives the user the freedom back.

> Let's move this a few blocks back. So, on a regular stable system,
> should portage report you every time that this new package version is
> not tested and you shouldn't be using it?

I did not mean that portage should report *every* time:
I meant that portage report if a stable.masked USE-Flag is disabled.
So you make the decision to either disable the USE-Flag for this
package or to disable the stable.mask by whatever mechanism
(e.g. by package.use_accept_keywords or something similar
or by overriding the profile or something else).

However, if package.accept_keywords does no magic on package.use,
perhaps a clear indication in the output like ~foo is sufficient.
(Otherwise you might not even get to such an output due to
dependency hell).

> If it can easily be improved, then why didn't *you* improve it yet?

A lot of portage output might be improved if one is willing to
spend enough time. But this is not the topic of the discussion.
Please, do not build a strawman like ...

> Then we can consider what to do next.

... and then thinking about 9 other tasks (of course, all
must be implemented *by me*) before you are willing to
discuss the issue I wanted to discuss.

> The point you are missing is that we actually have stable users who
> essentially want *stable* system. Those people don't want to get
> testing packages unless absolutely necessary, and they'd rather wait
> for Python 3 to go stable than unmask the flag for the fun of it.

These users will not have PYTHON_TARGETS="python3_3",
so not forcing use.stable.mask on them makes no difference.
If they *should* have PYTHON_TARGETS="python3_3", either by
mistake or intentional, they will see that an unstable python is
pulled in, and they have to take actions.
It is better that they see this "mistake" than if just their
choice is tacitly undone.

>> Moreover, for use.stable.mask this cannot happen on a per-package basis.
>
> It's called package.use.stable.mask.

I was expecting that you cannot undo something in
package.use.stable.mask which was set in use.stable.mask
but I just tried, and you are right.

>> Perhaps one can introduce a better way to unmask use.stable.mask?
>
> Like what?

I thought about a new config-file, but after now knowing
that package.use.stable.mask can be used to undo use.stable.mask,
I am not so convinced whether this is really necessary.

>> Do you mean by "extra flags" again those of use.package.mask?
>> Then isn't this again an argument against use.package.mask at all?
>
> I mean stable-masked flags. So you get 2-in-1 with no clear indication
> that you got an extra unmask.

With the ~foo indication this would not happen.

> Then the user gets to rebuild python-exec which is a tiny C executable.
> Reverse dependencies are not rebuilt.

I could reproduce that libreoffice and some other consuments got [r]
when I marked all */python-exec as ~amd64 in package.acccept_keywords,
but it did not get reemerged when I did not do this.
Of course, it might be that something else is going on here, or it
might even be a bug in portage.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:44     ` Michał Górny
  2013-11-13 16:52       ` Martin Vaeth
@ 2013-11-13 17:03       ` Peter Stuge
  2013-11-13 17:49         ` Rich Freeman
  1 sibling, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-13 17:03 UTC (permalink / raw
  To: gentoo-dev

Michał Górny wrote:
> Did you ever do any serious package work, or are just discussing theory?

Michał, you're talking with a user. Please behave.

Make a concerted effort to put yourself in his situation. Talking
down to him ("did you ever do any serious work") is not helpful
for your image, for the user, or for the Gentoo project.


> Repoman is not a social tool. It's a technical dep checker

It's a developer tool. I've never run repoman myself and what little
I know about it suggests that I will never need to run repoman until
I have commit access to the portage tree. Even then it seems like a
nasty kludge that compensates for VCS limitations.

Because it's a developer tool you need to be doubleplus clear and
pedagogical whenever a user experience bubbles up to the tool (which
is unknown to us users).

I too spent some hours on fixing an out-of-the-blue python-exec mess
when I wanted to do some updates. For me that was a regression and I
hope that whoever cost me (and undoubtedly others) those hours at
least learned something from it that they didn't know before, if only
that this one user considered it a (for me) pointless regression.


> Do you see now what you are proposing?

You may remember that I do consider stable pointless. It is just an
euphemism for "old".

It makes the distribution into a time buffer, and a time sink, while
at least this upstream would much rather have direct connections to
users.

Taking another few steps back, I think it might be really cool if
Gentoo had so powerful tooling that as a user you wouldn't even
notice them. But that's some dream for the future perhaps. :)


> > The output can easily be improved:
> 
> If it can easily be improved, then why didn't *you* improve it yet?

You sound like an asshole here and I don't think you intend to. :\

You clearly want to encourage a user to contribute, but despite your
good intentions the words you choose have exactly the opposite effect
and if I were Zac I wouldn't be so happy.

You can communicate the same intended message using other words and
get the effect you want. It just requires thinking about who the
recipient is.


> We must be having different users.

I think Martin is a user, not a developer.


> we actually have stable users who essentially want *stable* system.

Yes, this is very true.

Maybe it is too ambitious to have the same portage tree for both use cases?

Not that it cannot be done, of course it can, but maybe the effort
required is just unneccessarily high. Maybe it would be easier to
make portage deal only with either kind of tree rather than both
trees in one, and to make some tooling to keep stabilization as easy
or maybe make it even easier than it is. Just an idea.


> And by using 'package.use' you 'undo' USE defaults in packages and
> global flag defaults, and... why do we have USE flags at all? We're
> just all undoing stuff anyway.

You're confusing things.

I dislike defaults when I have an opinion. I often have an opinion
and portage lets me express it well! <3

But while writing this mail I actually found a default that isn't
even documented which I disagree with, and it annoyed me because I
need to create an exception for it. (dev-qt/qtscript-4.8.5 USE=jit
which isn't mentioned in use.local.desc. File a bug? No, not now.)

That + in IUSE before the USE flag is surely intended to be helpful
but because I don't want jit (as wrong as I may be) it's annoying.

I can opt-out, but just as with marketing I would much rather opt-in,
as I have done with many hundred other USE flags, and many marketeers.


> Then the user gets to rebuild python-exec which is a tiny C executable.
> Reverse dependencies are not rebuilt.

I don't recall the details of my python-exec problem anymore, I
suspect it might have had to do with slots being introduced into
the package for the first time. I also had fun with libpng.


Rich Freeman wrote:
> Users who take advantage of new features in these kinds of states
> are going to run into problems.  That's just the cost of being on
> the cutting edge.

Why should a feature be allowed to cause problems? To me that just
means that the feature isn't finished yet, so why publish it?

Yes, I'm somewhat bug-intolerant.


//Peter


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 16:05       ` Martin Vaeth
@ 2013-11-13 17:05         ` "Paweł Hajdan, Jr."
  0 siblings, 0 replies; 111+ messages in thread
From: "Paweł Hajdan, Jr." @ 2013-11-13 17:05 UTC (permalink / raw
  To: gentoo-dev

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

On 11/13/13 8:05 AM, Martin Vaeth wrote:
> 1. A tiny change in the display: ~foo instead of (-foo)

I was thinking about same/similar thing: displaying USE flags masked in
general and USE flags masked for stable differently.

I'd in fact opt for ~(-foo) in this case, to indicate that the flag is
masked "()", that it is disabled "-", and that it's only for stable "~".

Note that then we can indicate stable forced flags (if any, I don't know
atm if it's even possible) with ~(foo).

> 2. A more severe change in the way how to unmask it:

It's not obvious to me whether this is better than just display changes.

It'd be great to have some specific examples (sorry if I missed some,
you can refer me to them), clearly pointing out the problem and the
advantages of different portage behavior.

Paweł


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 203 bytes --]

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 17:03       ` Peter Stuge
@ 2013-11-13 17:49         ` Rich Freeman
  2013-11-13 18:24           ` Peter Stuge
  0 siblings, 1 reply; 111+ messages in thread
From: Rich Freeman @ 2013-11-13 17:49 UTC (permalink / raw
  To: gentoo-dev

On Wed, Nov 13, 2013 at 12:03 PM, Peter Stuge <peter@stuge.se> wrote:
>
> Rich Freeman wrote:
>> Users who take advantage of new features in these kinds of states
>> are going to run into problems.  That's just the cost of being on
>> the cutting edge.
>
> Why should a feature be allowed to cause problems? To me that just
> means that the feature isn't finished yet, so why publish it?
>

Where were any of the multilib features published?

Rich


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 17:49         ` Rich Freeman
@ 2013-11-13 18:24           ` Peter Stuge
  2013-11-13 18:50             ` Rich Freeman
  0 siblings, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-13 18:24 UTC (permalink / raw
  To: gentoo-dev

Rich Freeman wrote:
> >> Users who take advantage of new features in these kinds of states
> >> are going to run into problems.  That's just the cost of being on
> >> the cutting edge.
> >
> > Why should a feature be allowed to cause problems? To me that just
> > means that the feature isn't finished yet, so why publish it?
> 
> Where were any of the multilib features published?

Published as in made available to users. Were you refering to
Martin's use of emul-libs or something hypothetical? Sorry - I
might have lost track of the thread.


//Peter


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 18:24           ` Peter Stuge
@ 2013-11-13 18:50             ` Rich Freeman
  0 siblings, 0 replies; 111+ messages in thread
From: Rich Freeman @ 2013-11-13 18:50 UTC (permalink / raw
  To: gentoo-dev

On Wed, Nov 13, 2013 at 1:24 PM, Peter Stuge <peter@stuge.se> wrote:
> Rich Freeman wrote:
>> >> Users who take advantage of new features in these kinds of states
>> >> are going to run into problems.  That's just the cost of being on
>> >> the cutting edge.
>> >
>> > Why should a feature be allowed to cause problems? To me that just
>> > means that the feature isn't finished yet, so why publish it?
>>
>> Where were any of the multilib features published?
>
> Published as in made available to users. Were you refering to
> Martin's use of emul-libs or something hypothetical? Sorry - I
> might have lost track of the thread.

Experimental features are added to portage/eclasses/etc all the time.
The intent is to get more use out of them, get feedback, enable some
benefit, etc.  That doesn't mean that somebody who runs RAP or
hardened-to-the-max is going to have the same experience as somebody
who runs amd64 stable.

Gentoo lets you do stuff that few distros even make possible.  That
doesn't mean that it always makes all of those options "easy."  They
aren't "unsupported" - but the difference between "unsupported" and
"supported" in a volunteer distro is a bit hazy.  The more you step
off the beaten path, the more you're a guinea pig.

By all means report issues you find and help make Gentoo better, but
don't be upset if a bunch of volunteers came up with something
cutting-edge and it has a few bugs.  I mean, we're talking about
giving users the ability to build any package against any ABI and to
mix/match as you please.  Ten years ago we were happy to have a 32-bit
flash package.  No distro handles any of this stuff nearly as well as
we do, even if we still have some rough edges.

Rich


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:16           ` Ian Stakenvicius
@ 2013-11-13 18:56             ` Daniel Campbell
  2013-11-13 20:21               ` James Potts
  0 siblings, 1 reply; 111+ messages in thread
From: Daniel Campbell @ 2013-11-13 18:56 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/13/2013 09:16 AM, Ian Stakenvicius wrote:
> On 13/11/13 09:55 AM, Thomas Kahle wrote:
>> On 11/13/2013 03:30 PM, Duncan wrote:
>>> Rich Freeman posted on Wed, 13 Nov 2013 08:37:51 -0500 as 
>>> excerpted:
>>> 
>>>> On Wed, Nov 13, 2013 at 8:25 AM, Thomas Kahle 
>>>> <tomka@gentoo.org> wrote:
>>>>> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
>>>>>> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC) Martin Vaeth 
>>>>>> <vaeth@mathematik.uni-wuerzburg.de> wrote:
>>>>>> 
>>>>>>> Hello.
>>>>>>> 
>>>>>>> The new "features" use.stable.mask and 
>>>>>>> package.use.stable.mask have turned maintaining
>>>>>>> systems with mixed ARCH and ~ARCH keywords into a
>>>>>>> nightmare:
>>>>>> 
>>>>>> They are considered unsupported by many; so, going down 
>>>>>> that path you need to be acquainted with Portage enough
>>>>>> to keep a consistent system.
>>>>> 
>>>>> This argument has come up several times, but is it valid?
>>>> 
>>>> Honestly, opinions vary on this one and I don't think it is
>>>> a productive path to go down.  I also feel that being able to
>>>> mix keywords is a big benefit of using Gentoo.  I'd rather
>>>> focus on practical ways to make this easier rather than
>>>> whether it is desirable.
>>>> 
>>>> That said, there are always going to be situations where
>>>> mixing keywords isn't practical.  You're not going to run
>>>> stable chromium against ~arch v8, or mixed keywords between
>>>> kdelibs and kwin, etc.
>>> 
>>> FWIW, I believe at least part of the confusion here is based
>>> on differing definitions of "supported".
> 
>> I agree.  Generally however, we should think Gentoo (or the open
>>  source ecosystem) more bazaar, less cathedral.  Libraries have 
>> interfaces, and they are supposed to be mixed and matched
>> according to the interface definitions.  We (Gentoo) should not
>> think of "Gentoo stable" as a fixed product like "iOS-7".  It has
>> come a long way, but philosophically I still think of Gentoo as a
>> kind of automated Linux-from-scratch (where you also mix and
>> match whatever you find on the Internets).
> 
>> In the end it boils down to what we mean by "supported".  For me
>>  "supported" does not mean "tested".  As you point out, testing 
>> every combination forbids itself.  Supported for me means that
>> the argument "you mixed stable and unstable" is not per se valid.
>>  There's a huge difference between
> 
>> You mixed unstable firefox with stable gcc
> 
>> and
> 
>> You mixed unstable X server with stable protocols.
> 
>> For me mixing the trees is supported in the sense that I would 
>> apply rational judgement to bugs.  If they are of the second
>> type, it can be said in a polite way that we as Gentoo can't do
>> anything about this combination not working.
> 
> 
> The term "supported" is a rather overloaded term which tends to
> mean different things in gentoo depending on the context that it is
> used (and who's using it), for sure.  It's also not analogous to
> "working" or "expected to work", at all, imo.
> 
> I wonder if it might be a good idea to have a discussion and reach 
> consensus on what the Gentoo (Developer) definition of "Supported" 
> should actually be, and document this somewhere so that ambiguity
> can be officially removed.
> 
> 
Not a developer, but when I see discussions about things that are
unsupported by the dev team, I think of it as "This is a special case
that's outside of our workflow and would add an exponential amount of
work for us if we tried to support it." Support, in this context, I
think refers to supporting bug reports and use cases. As mentioned
previously, it's impossible to account for every combination. If
developers stick to pure arch or pure ~arch, it's a hell of a lot
simpler to carry out the job, and I totally respect that.

I've had minimal problems mixing ~arch and arch, but based on what
I've read and my understanding of FOSS culture in general... "If you
go off the beaten path and break something, you get to keep the pieces."

Surely I'm not alone in that understanding. It's simple and closer to
pragmatism than any perceived malice or laziness that some may be
assuming about the developers.

~Daniel
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSg8t0AAoJEJUrb08JgYgHr44H/RUC4AXvAX2n1GoaITV2uI3Y
ZlKlpmyKk/rT0ucNAQhR+RUmZRuq+7Nuubxl6EH4eacfaqkkWLQjgsYJYUj49yFy
gGcXzsIfcWQg6DQcNGEvN2V9ICjI4Gsh1aQanKBORGPSomm3Nm7xsccXVYqTydIl
61lHHnWb1uECEA8Q+H10X3pw/Ila946LtL3uKUXuCooFmX6haAi5zLAGruMFH/1J
PCjApzSnNfMRFHyRJ5XgQTmpBVrk48ps9QGKqU26DBhrsbiTwocdSXq44oVh4YPK
43nxpjnVhMkc54xSbbXEp+QVjOYno9RhoxUfQCOj4WqE0N1PI0ZhWmas1NyW/wU=
=deQz
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 18:56             ` Daniel Campbell
@ 2013-11-13 20:21               ` James Potts
  2013-11-13 21:22                 ` Kent Fredric
  0 siblings, 1 reply; 111+ messages in thread
From: James Potts @ 2013-11-13 20:21 UTC (permalink / raw
  To: gentoo-dev

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

To be honest, I think that printing a summary of masked useflags which
contradict a user's settings in USE= at the end of the pretend/ask portion
of an emerge would be a step in the right direction.  Making it so that
portage bails with an error if package.use conflicts with
use.(package.)mask would also be helpful if this doesn't already happen.
 Not sure how much trouble this would be to add, tho, honestly.

--James



On Wed, Nov 13, 2013 at 12:56 PM, Daniel Campbell <lists@sporkbox.us> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 11/13/2013 09:16 AM, Ian Stakenvicius wrote:
> > On 13/11/13 09:55 AM, Thomas Kahle wrote:
> >> On 11/13/2013 03:30 PM, Duncan wrote:
> >>> Rich Freeman posted on Wed, 13 Nov 2013 08:37:51 -0500 as
> >>> excerpted:
> >>>
> >>>> On Wed, Nov 13, 2013 at 8:25 AM, Thomas Kahle
> >>>> <tomka@gentoo.org> wrote:
> >>>>> On 11/13/2013 12:39 PM, Tom Wijsman wrote:
> >>>>>> On Wed, 13 Nov 2013 10:28:02 +0000 (UTC) Martin Vaeth
> >>>>>> <vaeth@mathematik.uni-wuerzburg.de> wrote:
> >>>>>>
> >>>>>>> Hello.
> >>>>>>>
> >>>>>>> The new "features" use.stable.mask and
> >>>>>>> package.use.stable.mask have turned maintaining
> >>>>>>> systems with mixed ARCH and ~ARCH keywords into a
> >>>>>>> nightmare:
> >>>>>>
> >>>>>> They are considered unsupported by many; so, going down
> >>>>>> that path you need to be acquainted with Portage enough
> >>>>>> to keep a consistent system.
> >>>>>
> >>>>> This argument has come up several times, but is it valid?
> >>>>
> >>>> Honestly, opinions vary on this one and I don't think it is
> >>>> a productive path to go down.  I also feel that being able to
> >>>> mix keywords is a big benefit of using Gentoo.  I'd rather
> >>>> focus on practical ways to make this easier rather than
> >>>> whether it is desirable.
> >>>>
> >>>> That said, there are always going to be situations where
> >>>> mixing keywords isn't practical.  You're not going to run
> >>>> stable chromium against ~arch v8, or mixed keywords between
> >>>> kdelibs and kwin, etc.
> >>>
> >>> FWIW, I believe at least part of the confusion here is based
> >>> on differing definitions of "supported".
> >
> >> I agree.  Generally however, we should think Gentoo (or the open
> >>  source ecosystem) more bazaar, less cathedral.  Libraries have
> >> interfaces, and they are supposed to be mixed and matched
> >> according to the interface definitions.  We (Gentoo) should not
> >> think of "Gentoo stable" as a fixed product like "iOS-7".  It has
> >> come a long way, but philosophically I still think of Gentoo as a
> >> kind of automated Linux-from-scratch (where you also mix and
> >> match whatever you find on the Internets).
> >
> >> In the end it boils down to what we mean by "supported".  For me
> >>  "supported" does not mean "tested".  As you point out, testing
> >> every combination forbids itself.  Supported for me means that
> >> the argument "you mixed stable and unstable" is not per se valid.
> >>  There's a huge difference between
> >
> >> You mixed unstable firefox with stable gcc
> >
> >> and
> >
> >> You mixed unstable X server with stable protocols.
> >
> >> For me mixing the trees is supported in the sense that I would
> >> apply rational judgement to bugs.  If they are of the second
> >> type, it can be said in a polite way that we as Gentoo can't do
> >> anything about this combination not working.
> >
> >
> > The term "supported" is a rather overloaded term which tends to
> > mean different things in gentoo depending on the context that it is
> > used (and who's using it), for sure.  It's also not analogous to
> > "working" or "expected to work", at all, imo.
> >
> > I wonder if it might be a good idea to have a discussion and reach
> > consensus on what the Gentoo (Developer) definition of "Supported"
> > should actually be, and document this somewhere so that ambiguity
> > can be officially removed.
> >
> >
> Not a developer, but when I see discussions about things that are
> unsupported by the dev team, I think of it as "This is a special case
> that's outside of our workflow and would add an exponential amount of
> work for us if we tried to support it." Support, in this context, I
> think refers to supporting bug reports and use cases. As mentioned
> previously, it's impossible to account for every combination. If
> developers stick to pure arch or pure ~arch, it's a hell of a lot
> simpler to carry out the job, and I totally respect that.
>
> I've had minimal problems mixing ~arch and arch, but based on what
> I've read and my understanding of FOSS culture in general... "If you
> go off the beaten path and break something, you get to keep the pieces."
>
> Surely I'm not alone in that understanding. It's simple and closer to
> pragmatism than any perceived malice or laziness that some may be
> assuming about the developers.
>
> ~Daniel
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2.0.22 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJSg8t0AAoJEJUrb08JgYgHr44H/RUC4AXvAX2n1GoaITV2uI3Y
> ZlKlpmyKk/rT0ucNAQhR+RUmZRuq+7Nuubxl6EH4eacfaqkkWLQjgsYJYUj49yFy
> gGcXzsIfcWQg6DQcNGEvN2V9ICjI4Gsh1aQanKBORGPSomm3Nm7xsccXVYqTydIl
> 61lHHnWb1uECEA8Q+H10X3pw/Ila946LtL3uKUXuCooFmX6haAi5zLAGruMFH/1J
> PCjApzSnNfMRFHyRJ5XgQTmpBVrk48ps9QGKqU26DBhrsbiTwocdSXq44oVh4YPK
> 43nxpjnVhMkc54xSbbXEp+QVjOYno9RhoxUfQCOj4WqE0N1PI0ZhWmas1NyW/wU=
> =deQz
> -----END PGP SIGNATURE-----
>
>

[-- Attachment #2: Type: text/html, Size: 7244 bytes --]

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 20:21               ` James Potts
@ 2013-11-13 21:22                 ` Kent Fredric
  2013-11-17 10:20                   ` Sergey Popov
  0 siblings, 1 reply; 111+ messages in thread
From: Kent Fredric @ 2013-11-13 21:22 UTC (permalink / raw
  To: gentoo-dev

On 14 November 2013 09:21, James Potts <arek75@gmail.com> wrote:
> To be honest, I think that printing a summary of masked useflags which
> contradict a user's settings in USE= at the end of the pretend/ask portion
> of an emerge would be a step in the right direction.  Making it so that
> portage bails with an error if package.use conflicts with use.(package.)mask
> would also be helpful if this doesn't already happen.  Not sure how much
> trouble this would be to add, tho, honestly.


+1 to that, I was going to suggest something similar to help explain
what "~(foo)" means at least till people get used to it

e.g.
---
The Following Use Flags were user set, but ignored due to stability masks:
   dev-baz/quux: +foo -bar +baz

man emerge and grep for "stable use masks"
---

Or something. Maybe only shown with -v , or something so its not too
annoying if users are ok with ignoring it.

-- 
Kent


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:02   ` Ian Stakenvicius
  2013-11-13 15:58     ` Rich Freeman
@ 2013-11-13 23:49     ` Patrick Lauer
  2013-11-14  5:13       ` Michał Górny
  1 sibling, 1 reply; 111+ messages in thread
From: Patrick Lauer @ 2013-11-13 23:49 UTC (permalink / raw
  To: gentoo-dev

On 11/13/2013 11:02 PM, Ian Stakenvicius wrote:

> It's also worth pointing out that the whole reason why abi_x86_32 is
> {package.,}use.stable.masked is because trying to manage the partial
> transisition between emul-* and multilib-build dependencies

^^

Why is there a partial random transition with no roadmap, no coordination?

In terms of planning and communication this is a horribly stupid thing
(also ignoring the existing working portage-mulitilib stuff that was
mostly pushed forward by TommyD and now is ignored in an overlay)

A more clean way would have been to target each of the emul-x86
libraries, replace one completely with multilib-enabled libraries, fix
all consumers, *then* unmask that whole shebang at once.

Well, discussing it properly would also maybe have been a good idea, but
since this is now getting unilaterally hammered in it's mostly about
damage limitation now ...

> Note also that setting ABI_X86=32 globally isn't how it's supposed to
> be used; the point of this flag is for dependency resolution when a
> particular package requires it (ie, top-level package depends on
> app-cat/dep[abi_x86_32], portage --autounmask-write sets the necessary
> changes to /etc/portage/package.use).  But that's neither here nor there.
> 
I find that quite silly ...



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 15:41     ` Mike Gilbert
@ 2013-11-14  0:11       ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-14  0:11 UTC (permalink / raw
  To: floppym; +Cc: gentoo-dev

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

On Wed, 13 Nov 2013 10:41:40 -0500
Mike Gilbert <floppym@gentoo.org> wrote:

> Let's talk about the development workflow we use for a minute:
> 
> [...]
> 
> This is not a completely social issue; there is a very real
> technical/QA issue that needs to be addressed on the development side.
> If you can figure that out, we can talk about changing the end-user
> experience.

The existence of use.stable.mask and the end-user experience however
have no one-on-one mapping (or should not have it); so, currently from
the user perspective it is easy to put the blame on use.stable.mask
without entirely being experienced with it from a developer perspective.

The blame being put there might be a consequence of something being
more problematic towards the interface with the user; some form of more
proper feature, notification or communication missing. I think that we
should rather look at what kind of options we have to improve things
there, because I really don't see a change to the existence or
functionality of use.stable.mask coming out of this thread.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 23:49     ` Patrick Lauer
@ 2013-11-14  5:13       ` Michał Górny
  2013-11-14 12:03         ` Patrick Lauer
  2013-11-14 12:21         ` Ben de Groot
  0 siblings, 2 replies; 111+ messages in thread
From: Michał Górny @ 2013-11-14  5:13 UTC (permalink / raw
  To: gentoo-dev; +Cc: patrick

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

Dnia 2013-11-14, o godz. 07:49:55
Patrick Lauer <patrick@gentoo.org> napisał(a):

> On 11/13/2013 11:02 PM, Ian Stakenvicius wrote:
> 
> > It's also worth pointing out that the whole reason why abi_x86_32 is
> > {package.,}use.stable.masked is because trying to manage the partial
> > transisition between emul-* and multilib-build dependencies
> 
> ^^
> 
> Why is there a partial random transition with no roadmap, no coordination?

https://wiki.gentoo.org/wiki/Multilib_porting_status

That's the closest thing to a roadmap.

So tell me, what you exactly want or need? Or is it just bare
complaining for the sake of complaining?

> A more clean way would have been to target each of the emul-x86
> libraries, replace one completely with multilib-enabled libraries, fix
> all consumers, *then* unmask that whole shebang at once.

We tried that. But in the end, it ended up masking new versions
of a whole lot of libraries waiting for remaining maintainers'
approval. And the maintainers that opposed the idea now complained that
it caused the packages to be masked long...

Feel free to convert all libraries, fix all consumers etc. We couldn't
achieve that with our manpower.

> Well, discussing it properly would also maybe have been a good idea, but
> since this is now getting unilaterally hammered in it's mostly about
> damage limitation now ...

And how is it possible to discuss anything properly in Gentoo?
On the mailing list where any serious thread is ignored, and silly
things and flamebaits are forked into three-four different, off-topic
threads like this one?

Don't tell me I didn't try to discuss it, that I didn't try to get
feedback. It's easy to complain almost one and a half year after
the original thread. Of course, AFAIR that thread went into the usual
'this seems like a shortened dup of what we were doing, you should
rather work for us'.

> > Note also that setting ABI_X86=32 globally isn't how it's supposed to
> > be used; the point of this flag is for dependency resolution when a
> > particular package requires it (ie, top-level package depends on
> > app-cat/dep[abi_x86_32], portage --autounmask-write sets the necessary
> > changes to /etc/portage/package.use).  But that's neither here nor there.
> > 
> I find that quite silly ...

You *can* set it globally. But it's going to give you more 32-bit stuff
than you will ever use, so waste your time and space. We try to support
both the 'lazy' user and one wanting fine-grained control over packages.

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14  5:13       ` Michał Górny
@ 2013-11-14 12:03         ` Patrick Lauer
  2013-11-14 12:13           ` Rich Freeman
  2013-11-14 17:51           ` Michał Górny
  2013-11-14 12:21         ` Ben de Groot
  1 sibling, 2 replies; 111+ messages in thread
From: Patrick Lauer @ 2013-11-14 12:03 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

On 11/14/2013 01:13 PM, Michał Górny wrote:
> Dnia 2013-11-14, o godz. 07:49:55
> Patrick Lauer <patrick@gentoo.org> napisał(a):
> 
>> On 11/13/2013 11:02 PM, Ian Stakenvicius wrote:
>>
>>> It's also worth pointing out that the whole reason why abi_x86_32 is
>>> {package.,}use.stable.masked is because trying to manage the partial
>>> transisition between emul-* and multilib-build dependencies
>>
>> ^^
>>
>> Why is there a partial random transition with no roadmap, no coordination?
> 
> https://wiki.gentoo.org/wiki/Multilib_porting_status
> 
> That's the closest thing to a roadmap.

So just "fix it as problems appear and/or we have some spare time" ...

> So tell me, what you exactly want or need? Or is it just bare
> complaining for the sake of complaining?

Well, you accidentally cut out all references to TommyD's work again.
Almost as if you don't even want to discuss a working proper solution
that just doesn't have the ego hammering it in ...


>> A more clean way would have been to target each of the emul-x86
>> libraries, replace one completely with multilib-enabled libraries, fix
>> all consumers, *then* unmask that whole shebang at once.
> 
> We tried that. But in the end, it ended up masking new versions
> of a whole lot of libraries waiting for remaining maintainers'
> approval. And the maintainers that opposed the idea now complained that
> it caused the packages to be masked long...
There's this thing called overlay ;)
Once you have everything prepared commit it all masked.
A few days later if there's no obvious bug reports unmask it and duck.

> Feel free to convert all libraries, fix all consumers etc. We couldn't
> achieve that with our manpower.
So you just do it half-donkey'ed. Sigh.

Maybe ... you shouldn't do it if you can't properly finish it?

I mean, not like you cause a trail of destruction like the python-exec
fun, and such things ... maybe ... maybe ... you need to slow down and
plan more, and do your experiments in overlays.

Have fun,

Patrick


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:03         ` Patrick Lauer
@ 2013-11-14 12:13           ` Rich Freeman
  2013-11-14 12:30             ` Patrick Lauer
  2013-11-14 19:07             ` Thomas Sachau
  2013-11-14 17:51           ` Michał Górny
  1 sibling, 2 replies; 111+ messages in thread
From: Rich Freeman @ 2013-11-14 12:13 UTC (permalink / raw
  To: gentoo-dev; +Cc: Michał Górny

On Thu, Nov 14, 2013 at 7:03 AM, Patrick Lauer <patrick@gentoo.org> wrote:
>
> So just "fix it as problems appear and/or we have some spare time" ...

Have any problems appeared that impact anybody who hasn't tried to
take advantage of the new multilib features (ie modified their config
files/etc)?

>
> Well, you accidentally cut out all references to TommyD's work again.
> Almost as if you don't even want to discuss a working proper solution
> that just doesn't have the ego hammering it in ...

We get it - there are two competing approaches to multilib...  That's
perfectly fine - we can sort out which one works better once they both
work.  It would be more of a concern if maintainers were being asked
to maintain things twice, but as far as I'm aware the developers of
each of the competing approaches have been doing most of the work
themselves.

Of course, there could be issues I simply haven't heard of.

> There's this thing called overlay ;)
> Once you have everything prepared commit it all masked.
> A few days later if there's no obvious bug reports unmask it and duck.

I'm not sure an overlay is a good solution for a tree-wide change that
will take months to roll out.  It is great for testing the core
features with a small testing group, but the implementation is always
going to have to hit the whole tree and all its consumers with little
formal testing at that scale.

I guess my main question is what exactly is broken?  I haven't heard
of any large-scale problems with the new multilib rollout.  I'm sure
if I went looking for bugs I'd find them, but that's pretty much
par-for-the-course for Gentoo.  If I go install the latest gcc the day
after it gets added to the tree and enable some new flag that was just
introduced I'm going to find lots of packages that break.  That
doesn't mean that the new GCC wasn't ready for the tree - just that I
went looking for trouble, found it, and now I have the opportunity to
help out by filing bugs if what I actually did was reasonable.

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14  5:13       ` Michał Górny
  2013-11-14 12:03         ` Patrick Lauer
@ 2013-11-14 12:21         ` Ben de Groot
  2013-11-14 12:32           ` Rich Freeman
  1 sibling, 1 reply; 111+ messages in thread
From: Ben de Groot @ 2013-11-14 12:21 UTC (permalink / raw
  To: gentoo-dev

On 14 November 2013 13:13, Michał Górny <mgorny@gentoo.org> wrote:
> Dnia 2013-11-14, o godz. 07:49:55
> Patrick Lauer <patrick@gentoo.org> napisał(a):
>
>> On 11/13/2013 11:02 PM, Ian Stakenvicius wrote:
>>
>> > It's also worth pointing out that the whole reason why abi_x86_32 is
>> > {package.,}use.stable.masked is because trying to manage the partial
>> > transisition between emul-* and multilib-build dependencies
>>
>> ^^
>>
>> Why is there a partial random transition with no roadmap, no coordination?
>
> https://wiki.gentoo.org/wiki/Multilib_porting_status
>
> That's the closest thing to a roadmap.

Closest thing, yeah. But it doesn't really solve the problem. It's
basically a one-man show, but affecting a large part of the tree,
going ahead like a steam roller that can't be stopped, never mind the
road kill.

>> Well, discussing it properly would also maybe have been a good idea, but
>> since this is now getting unilaterally hammered in it's mostly about
>> damage limitation now ...
>
> And how is it possible to discuss anything properly in Gentoo?

That's because we have no proper leadership. We're an anarchistic
collection of people working at cross-purposes at the best of times.
There is no direction, and very little accountability.

-- 
Cheers,

Ben | yngwin
Gentoo developer


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:13           ` Rich Freeman
@ 2013-11-14 12:30             ` Patrick Lauer
  2013-11-14 12:45               ` Rich Freeman
  2013-11-14 19:07             ` Thomas Sachau
  1 sibling, 1 reply; 111+ messages in thread
From: Patrick Lauer @ 2013-11-14 12:30 UTC (permalink / raw
  To: gentoo-dev

On 11/14/2013 08:13 PM, Rich Freeman wrote:
> On Thu, Nov 14, 2013 at 7:03 AM, Patrick Lauer <patrick@gentoo.org> wrote:
>>
>> So just "fix it as problems appear and/or we have some spare time" ...
> 
> Have any problems appeared that impact anybody who hasn't tried to
> take advantage of the new multilib features (ie modified their config
> files/etc)?

Apart from me masking a few things because portage couldn't figure out a
way to a consistent state, and all that ...

I mean, not that we had lots of users in #gentoo WTFing all over the
place, or something. Oh wait, we did.

>>
>> Well, you accidentally cut out all references to TommyD's work again.
>> Almost as if you don't even want to discuss a working proper solution
>> that just doesn't have the ego hammering it in ...
> 
> We get it - there are two competing approaches to multilib...  That's
> perfectly fine - we can sort out which one works better once they both
> work.  

Given that one has been properly developed in an overlay, and one is now
forcefully hammered into the main tree, it's a fait accompli.

I have no idea how you think we can sort out anything with a pre-set
conclusion.

> It would be more of a concern if maintainers were being asked
> to maintain things twice, but as far as I'm aware the developers of
> each of the competing approaches have been doing most of the work
> themselves.
Apart from the maintainers that now have to figure out the funny bugs of
the in-tree work ... unlike a certain overlay. But I keep repeating
myself, which is redundantly redundant.

> 
> Of course, there could be issues I simply haven't heard of.
> 
>> There's this thing called overlay ;)
>> Once you have everything prepared commit it all masked.
>> A few days later if there's no obvious bug reports unmask it and duck.
> 
> I'm not sure an overlay is a good solution for a tree-wide change that
> will take months to roll out.  It is great for testing the core
> features with a small testing group, but the implementation is always
> going to have to hit the whole tree and all its consumers with little
> formal testing at that scale.

So instead of figuring out bugs the proper way ... we let users hit
them? I feel tempted to use the letters "A" and "Q" together.

Also, I could again redundantly point at a certain overlay.

Oh well. I guess I should complain less and package.mask more to express
my feelings...


Have a nice day,

Patrick


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:21         ` Ben de Groot
@ 2013-11-14 12:32           ` Rich Freeman
  2013-11-14 12:57             ` Ben de Groot
  0 siblings, 1 reply; 111+ messages in thread
From: Rich Freeman @ 2013-11-14 12:32 UTC (permalink / raw
  To: gentoo-dev

On Thu, Nov 14, 2013 at 7:21 AM, Ben de Groot <yngwin@gentoo.org> wrote:
> On 14 November 2013 13:13, Michał Górny <mgorny@gentoo.org> wrote:
>>
>> And how is it possible to discuss anything properly in Gentoo?
>
> That's because we have no proper leadership. We're an anarchistic
> collection of people working at cross-purposes at the best of times.
> There is no direction, and very little accountability.

This seems to be an arrangement that everybody likes except when
somebody else does something differently than they would prefer...

We have a Council, and any issue can always be escalated there.  We
also have Comrel, which is a better starting point for cases
concerning individuals vs policies.

However, so far I haven't really seen any real indications of what the
concern is here.  32-bit software on amd64 has always been a kludge,
and if anything the latest multilib eclass seems to be less of a
kludge.  Apparently some argue that there is a better solution being
worked on, and that's great to hear.  What exactly is the problem?  If
the eclass were breaking things that weren't already broken and having
a real impact on ordinary systems I'd consider that a concern.  If it
is just breaking things that never worked before then I'd just call it
an experimental feature.

The problem with having top-down leadership in a volunteer-based
organization is that it tends to drive away anybody who doesn't agree
with the leader.  If a supreme leader said "mgorny has the right
solution to multilib - everybody is going to work to implement it"
that would probably cause more harm than good.  Everybody wants a
supreme leader until the leader backs something they oppose.

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:30             ` Patrick Lauer
@ 2013-11-14 12:45               ` Rich Freeman
  0 siblings, 0 replies; 111+ messages in thread
From: Rich Freeman @ 2013-11-14 12:45 UTC (permalink / raw
  To: gentoo-dev

On Thu, Nov 14, 2013 at 7:30 AM, Patrick Lauer <patrick@gentoo.org> wrote:
>
> Apart from me masking a few things because portage couldn't figure out a
> way to a consistent state, and all that ...

That is vague.  It may be true, but it does nothing to help anybody
understand what is going on.  I haven't had to mask anything, which
suggests that we're doing things differently.  That isn't to say that
you're doing things wrong, but it is hard to take complaints seriously
when they're vague.

>
> I mean, not that we had lots of users in #gentoo WTFing all over the
> place, or something. Oh wait, we did.

Honestly, I wish that a news item went out before it was implemented.
I'll agree that there was some end-user impact - I suddenly saw
portage outputting requests to set ABI on a few packages due to
dependency issues.  However, when I followed portage's instructions as
with any USE dependency issue everything "just worked."

>
> I have no idea how you think we can sort out anything with a pre-set
> conclusion.

What pre-set conclusion?  Nobody said that you can't work on multilib
in portage.  Nobody said you couldn't put it in the tree either, but I
would avoid namespace collision/etc unless done in a way that is
compatible with the eclass-based solution.  When we get to the point
where we have two options I'd be all for making it possible for users
to pick which one they want to use.

> Apart from the maintainers that now have to figure out the funny bugs of
> the in-tree work ... unlike a certain overlay. But I keep repeating
> myself, which is redundantly redundant.

I'll be the first to admit that I haven't seen these bugs, so I won't
say they aren't severe.  However, at least a few examples of the sorts
of things that could go wrong wouldn't hurt.  Again, this is vague.

> So instead of figuring out bugs the proper way ... we let users hit
> them? I feel tempted to use the letters "A" and "Q" together.
>
> Also, I could again redundantly point at a certain overlay.
>
> Oh well. I guess I should complain less and package.mask more to express
> my feelings...

Complaining isn't the problem.  The issue is that complaints aren't
helpful if they lack any detail or suggestions that are likely to be
acted upon.  Nobody is going to move the new eclass into an overlay,
and it is unlikely that anybody is going to spend a year tweaking
packages in an overlay just to find that they're all obsolete when it
comes time to merge them into the main tree.  Besides, it isn't like
an overlay would get much testing on this scale anyway.

Overlays are great places to work out issues on a small scale with a
few packages if you have multiple developers involved.  They don't
really accomplish much when you scale up, because your overlay is
always going to be out-of-date compared to the main tree.

Honestly, I'm not trying to pick sides here.  I just see complaints
about very new features, and my sense is that if those features aren't
working they should simply not be used.  I don't think I have that
variable set to anything but 64 on my stable amd64 system and I
haven't seen any problems with it recently.  If there are problems I'm
certainly interested in hearing about them.

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:32           ` Rich Freeman
@ 2013-11-14 12:57             ` Ben de Groot
  2013-11-14 15:12               ` Rich Freeman
  0 siblings, 1 reply; 111+ messages in thread
From: Ben de Groot @ 2013-11-14 12:57 UTC (permalink / raw
  To: gentoo-dev

On 14 November 2013 20:32, Rich Freeman <rich0@gentoo.org> wrote:
> On Thu, Nov 14, 2013 at 7:21 AM, Ben de Groot <yngwin@gentoo.org> wrote:
>> On 14 November 2013 13:13, Michał Górny <mgorny@gentoo.org> wrote:
>>>
>>> And how is it possible to discuss anything properly in Gentoo?
>>
>> That's because we have no proper leadership. We're an anarchistic
>> collection of people working at cross-purposes at the best of times.
>> There is no direction, and very little accountability.
>
> This seems to be an arrangement that everybody likes except when
> somebody else does something differently than they would prefer...

Seems, maybe. I for one do not like it at all, and I do bring that up
from time to time. Others agree with me to various degrees. The
problem is that it's so damn hard to change anything structurally in
Gentoo.

> We have a Council, and any issue can always be escalated there.

As it is always happy to point out, Council doesn't see itself as
leadership, just as a supreme court of appeal, when everything else
seems to have failed. It likes to get involved as little as possible.

> We
> also have Comrel, which is a better starting point for cases
> concerning individuals vs policies.

This also displays little real leadership. It concerns itself with
conflict resolution, with various degrees of success. (I still have a
bad taste in my mouth from my past dealings with that institution.)

> However, so far I haven't really seen any real indications of what the
> concern is here.  32-bit software on amd64 has always been a kludge,
> and if anything the latest multilib eclass seems to be less of a
> kludge.

I vehemently disagree. The emul-* packages may be a hack, but they
work and cover the use cases we need. The new multilib eclass approach
is much more intrusive in many packages, introduces new levels of
complexity in ebuilds, with resulting new bugs and new behaviour that
confuses users, and adding maintenance costs. It does this for very
little gain. The great majority of our users doesn't need this
functionality.

The costs are higher than the benefits, in my opinion. Where are the
use cases for this high-cost solution that is being pushed upon us?

>  Apparently some argue that there is a better solution being
> worked on, and that's great to hear.  What exactly is the problem?  If
> the eclass were breaking things that weren't already broken and having
> a real impact on ordinary systems I'd consider that a concern.

If you'd care to look at the history of bugs due to multilib eclass
introduction in various packages, that's what you'd find.

> The problem with having top-down leadership in a volunteer-based
> organization is that it tends to drive away anybody who doesn't agree
> with the leader.  If a supreme leader said "mgorny has the right
> solution to multilib - everybody is going to work to implement it"
> that would probably cause more harm than good.  Everybody wants a
> supreme leader until the leader backs something they oppose.

But what's the alternative? Having a few dozen self-appointed leaders
doing whatever they want, and often taking things in opposing
directions. It's not top-down leadership, but rule of the strongest.

-- 
Cheers,

Ben | yngwin
Gentoo developer


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:57             ` Ben de Groot
@ 2013-11-14 15:12               ` Rich Freeman
  2013-11-14 16:38                 ` Ben de Groot
  0 siblings, 1 reply; 111+ messages in thread
From: Rich Freeman @ 2013-11-14 15:12 UTC (permalink / raw
  To: gentoo-dev

On Thu, Nov 14, 2013 at 7:57 AM, Ben de Groot <yngwin@gentoo.org> wrote:
>>  I said
> As it is always happy to point out, Council doesn't see itself as
> leadership, just as a supreme court of appeal, when everything else
> seems to have failed. It likes to get involved as little as possible.

The last time I talked to Council she said that she doesn't like it
when you anthropomorphize her.

Certainly I stated in my manifesto that I believe that Council members
SHOULD be leaders, and should not limit their leadership of the distro
to casting votes.  That's why we're chatting on a list, and I'm not
sitting back waiting for you to put this issue on a Council agenda.

>
>> We
>> also have Comrel, which is a better starting point for cases
>> concerning individuals vs policies.
>
> This also displays little real leadership. It concerns itself with
> conflict resolution, with various degrees of success. (I still have a
> bad taste in my mouth from my past dealings with that institution.)

Well, that is the role of Comrel.  I don't expect it to decide whether
developers can touch each other's ebuilds to add systemd units to
them, etc.  However, if the Council establishes a policy then Comrel
should certainly take issue with devs that ignore that policy.  Comrel
certainly can show leadership when it comes to how it operates,
facilitating better relations in the community in general, etc.

>
> The costs are higher than the benefits, in my opinion. Where are the
> use cases for this high-cost solution that is being pushed upon us?

Where are the costs for this high-cost solution that you purport the
existence of?  Just what about this solution is difficult to maintain?
 I keep hearing that it is painful, but I haven't seen specific
examples of HOW it is painful.

>> The problem with having top-down leadership in a volunteer-based
>> organization is that it tends to drive away anybody who doesn't agree
>> with the leader.  If a supreme leader said "mgorny has the right
>> solution to multilib - everybody is going to work to implement it"
>> that would probably cause more harm than good.  Everybody wants a
>> supreme leader until the leader backs something they oppose.
>
> But what's the alternative? Having a few dozen self-appointed leaders
> doing whatever they want, and often taking things in opposing
> directions. It's not top-down leadership, but rule of the strongest.

When you have officially-appointed leaders they usually tend to be the
same people who would otherwise be the self-appointed leaders.  They
just have more power to kick everybody out who disagrees with them.
It is still the rule of the strongest.  How did Linus become the
leader of Linux?  He wrote it...

I used to get philosophical about things like this, but I think the
model Gentoo has is actually not a bad one.  In the end, stuff only
gets done if people write code.  Your power in any FOSS project really
comes down to your ability to write code or convince others to write
code on your behalf.  We can argue about what piece of software is
conceptually the best, but implemented software will almost always win
over the unimplemented competitor, unless the merits of the competitor
are such that people will flock behind it and actually implement it.

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 15:12               ` Rich Freeman
@ 2013-11-14 16:38                 ` Ben de Groot
  2013-11-14 17:32                   ` Rich Freeman
  0 siblings, 1 reply; 111+ messages in thread
From: Ben de Groot @ 2013-11-14 16:38 UTC (permalink / raw
  To: gentoo-dev

On 14 November 2013 23:12, Rich Freeman <rich0@gentoo.org> wrote:
> On Thu, Nov 14, 2013 at 7:57 AM, Ben de Groot <yngwin@gentoo.org> wrote:
>>>  I said
>> As it is always happy to point out, Council doesn't see itself as
>> leadership, just as a supreme court of appeal, when everything else
>> seems to have failed. It likes to get involved as little as possible.
>
> The last time I talked to Council she said that she doesn't like it
> when you anthropomorphize her.
>
> Certainly I stated in my manifesto that I believe that Council members
> SHOULD be leaders, and should not limit their leadership of the distro
> to casting votes.  That's why we're chatting on a list, and I'm not
> sitting back waiting for you to put this issue on a Council agenda.

That is nice of you, but many of your fellow councilmen (historically,
as well as currently) do not hold similar views, as was made painfully
clear to me a few years ago.

>>> We
>>> also have Comrel, which is a better starting point for cases
>>> concerning individuals vs policies.
>>
>> This also displays little real leadership. It concerns itself with
>> conflict resolution, with various degrees of success. (I still have a
>> bad taste in my mouth from my past dealings with that institution.)
>
> Well, that is the role of Comrel.  I don't expect it to decide whether
> developers can touch each other's ebuilds to add systemd units to
> them, etc.  However, if the Council establishes a policy then Comrel
> should certainly take issue with devs that ignore that policy.  Comrel
> certainly can show leadership when it comes to how it operates,
> facilitating better relations in the community in general, etc.
>
>>
>> The costs are higher than the benefits, in my opinion. Where are the
>> use cases for this high-cost solution that is being pushed upon us?
>
> Where are the costs for this high-cost solution that you purport the
> existence of?  Just what about this solution is difficult to maintain?
>  I keep hearing that it is painful, but I haven't seen specific
> examples of HOW it is painful.

See how much effort is expended on this, and how many maintainers are
being involved:
https://bugs.gentoo.org/buglist.cgi?quicksearch=ALL+multilib

I was particularly hit by this as maintainer of freetype, see bugs
455070 and 459352 for some of the mess that could have been avoided.

>>> The problem with having top-down leadership in a volunteer-based
>>> organization is that it tends to drive away anybody who doesn't agree
>>> with the leader.  If a supreme leader said "mgorny has the right
>>> solution to multilib - everybody is going to work to implement it"
>>> that would probably cause more harm than good.  Everybody wants a
>>> supreme leader until the leader backs something they oppose.
>>
>> But what's the alternative? Having a few dozen self-appointed leaders
>> doing whatever they want, and often taking things in opposing
>> directions. It's not top-down leadership, but rule of the strongest.
>
> When you have officially-appointed leaders they usually tend to be the
> same people who would otherwise be the self-appointed leaders.  They
> just have more power to kick everybody out who disagrees with them.
> It is still the rule of the strongest.  How did Linus become the
> leader of Linux?  He wrote it...

At least there is one person in charge who sets a clear direction, and
is accountable.

> I used to get philosophical about things like this, but I think the
> model Gentoo has is actually not a bad one.

I guess we'll have to agree to disagree on this one then.

> In the end, stuff only
> gets done if people write code.  Your power in any FOSS project really
> comes down to your ability to write code or convince others to write
> code on your behalf.

No, it's more about your ability to commit and get away with it.

> We can argue about what piece of software is
> conceptually the best, but implemented software will almost always win
> over the unimplemented competitor, unless the merits of the competitor
> are such that people will flock behind it and actually implement it.
>
> Rich
>

-- 
Cheers,

Ben | yngwin
Gentoo developer


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 16:38                 ` Ben de Groot
@ 2013-11-14 17:32                   ` Rich Freeman
  2013-11-15  6:53                     ` Ben de Groot
  0 siblings, 1 reply; 111+ messages in thread
From: Rich Freeman @ 2013-11-14 17:32 UTC (permalink / raw
  To: gentoo-dev

On Thu, Nov 14, 2013 at 11:38 AM, Ben de Groot <yngwin@gentoo.org> wrote:
> I was particularly hit by this as maintainer of freetype, see bugs
> 455070 and 459352 for some of the mess that could have been avoided.

Looks like 455070 was the source of problems there (the other is just
a tracker with the aftermath).  The package had no maintainer at the
time, only a herd (per cvs).  There was a request in the bug for
whether it was suitable to deploy to production.  Somebody associated
with the herd gave a thumbs-up, apparently (I can only say that based
on your comment - I have no idea how that was communicated).  Then
something went wrong.  Since it caused problems, it was masked.  Those
who run ~arch should be thanked for saving the stable users from
potential breakage!

I'm not sure what should have been done differently.  If the package
maintainer (in this case a herd) says that something is good to go,
why would anybody assume that it wasn't?  You suggested testing in an
overlay 20 days earlier, but you weren't in any particularly
privileged position at the time (you were presumably just another
maintainer of the herd).

I'm not pointing fingers here.  This was apparently a
miscommunication, and part of the cause was a failure to document that
there was a primary maintainer of the package (something which was
subsequently corrected).  Michał did offer to just maintain the status
quo on that package instead of migrating it, and apparently he thought
he had the all-clear to migrate it anyway.

Michał did add the multilib project as a co-maintainer, taking
responsibility for dealing with the multilib-related issues long-term.
 In my mind this is the sort of things projects should do.

I'm sure there were other issues, but issues will happen when projects
make changes.  That's just the way things roll around here.  If Michał
just committed a change to a package without conferring with the
maintainer at all or giving significant notice, I'd feel differently.
I think we just need to learn and move forward, and from the looks of
things we have.  Gentoo always has been a fairly "disruptive" distro,
though it has settled down of late.  I don't think we're erring on the
side of breaking systems too often right now, though I'm always for
preventing that as long as it doesn't require ossification.

(Just a note - this is all based on what I could piece together from
cvs and bugzilla.  I'm sure those who were personally involved could
contribute more detail. I'm not sure it is necessary that do so, but
I'll gladly defer to those with firsthand knowledge.)

>> In the end, stuff only
>> gets done if people write code.  Your power in any FOSS project really
>> comes down to your ability to write code or convince others to write
>> code on your behalf.

> No, it's more about your ability to commit and get away with it.

So, I'm 100% for what Donnie said and in general I tend to lean
towards saying "thanks, but no thanks" when a heavy contributor is
driving everybody nuts.  However, the reality is that those who commit
more also tend to be allowed to get away with committing more.  That's
just human nature - we all like our free toys and we're reluctant to
take too much objection when we're slapped around a little by the guy
who is giving us the free toys.  There needs to be a balance, and from
the sound of things Markos is looking to step in and adjust the
balance if it gets out of line.  Honestly, I just wish everybody would
do what they can to make his job easier, and I say that without
pointing my fingers in any direction.  I think we have a really great
thing going here...

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:03         ` Patrick Lauer
  2013-11-14 12:13           ` Rich Freeman
@ 2013-11-14 17:51           ` Michał Górny
  2013-11-14 23:38             ` Patrick Lauer
  1 sibling, 1 reply; 111+ messages in thread
From: Michał Górny @ 2013-11-14 17:51 UTC (permalink / raw
  To: gentoo-dev; +Cc: patrick

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

Dnia 2013-11-14, o godz. 20:03:36
Patrick Lauer <patrick@gentoo.org> napisał(a):

> On 11/14/2013 01:13 PM, Michał Górny wrote:
> > https://wiki.gentoo.org/wiki/Multilib_porting_status
> > 
> > That's the closest thing to a roadmap.
> 
> So just "fix it as problems appear and/or we have some spare time" ...

You could tell that. Or you could notice that this was specifically
designed as an unobtrusive solution with possibility of gradual
migration and backwards compatibility.

> > So tell me, what you exactly want or need? Or is it just bare
> > complaining for the sake of complaining?
> 
> Well, you accidentally cut out all references to TommyD's work again.
> Almost as if you don't even want to discuss a working proper solution
> that just doesn't have the ego hammering it in ...

'Proper' is the keyword. The solution you mention has many issues that
I listed more than once, and is far from unobtrusive, clear
or explicit. It's supposedly working, yes, but it is nowhere near
production-ready.

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 12:13           ` Rich Freeman
  2013-11-14 12:30             ` Patrick Lauer
@ 2013-11-14 19:07             ` Thomas Sachau
  2013-11-14 19:35               ` Ciaran McCreesh
  1 sibling, 1 reply; 111+ messages in thread
From: Thomas Sachau @ 2013-11-14 19:07 UTC (permalink / raw
  To: gentoo-dev

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

Rich Freeman schrieb:
> On Thu, Nov 14, 2013 at 7:03 AM, Patrick Lauer <patrick@gentoo.org> wrote:
>>
>> So just "fix it as problems appear and/or we have some spare time" ...
> 
> Have any problems appeared that impact anybody who hasn't tried to
> take advantage of the new multilib features (ie modified their config
> files/etc)?
> 
>>
>> Well, you accidentally cut out all references to TommyD's work again.
>> Almost as if you don't even want to discuss a working proper solution
>> that just doesn't have the ego hammering it in ...
> 
> We get it - there are two competing approaches to multilib...  That's
> perfectly fine - we can sort out which one works better once they both
> work.  It would be more of a concern if maintainers were being asked
> to maintain things twice, but as far as I'm aware the developers of
> each of the competing approaches have been doing most of the work
> themselves.
> 
> Of course, there could be issues I simply haven't heard of.

There is a pretty big issue/difference here:

- multilib-portage was planned to add features with a future EAPI
version, so in the end needs agreement from maintainers of package
managers, the pms team and the council. If anyone from those groups only
claims "you wrote so much, but i dont understand it, write more", then
it can be a very long time to get it into the main tree (also this
usually means it is well reviewed and tested)

- the new multilib eclasses dont need any ok from anyone, so they have
been added instantly after first creation of a draft. So after addition
(also they only support a subset of the things supported by
multilib-portage) ebuilds are now converted to use them for multilib
support. Noone will opt to revert/convert those changes once
multilib-portage would be ready, so the eclasses win simply by the lower
entrance barrier


In the end multilib-portage will likely end as a portage-only feature
allowing multilib-support on packages without the need to change ebuilds
(it also has support for wrapping binaries per ABI, but this will
hopefully at some point also go into the eclasses).

-- 

Thomas Sachau
Gentoo Linux Developer


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 379 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 19:07             ` Thomas Sachau
@ 2013-11-14 19:35               ` Ciaran McCreesh
  2013-11-14 23:40                 ` Patrick Lauer
  0 siblings, 1 reply; 111+ messages in thread
From: Ciaran McCreesh @ 2013-11-14 19:35 UTC (permalink / raw
  To: gentoo-dev

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

On Thu, 14 Nov 2013 20:07:39 +0100
Thomas Sachau <tommy@gentoo.org> wrote:
> - multilib-portage was planned to add features with a future EAPI
> version, so in the end needs agreement from maintainers of package
> managers, the pms team and the council. If anyone from those groups
> only claims "you wrote so much, but i dont understand it, write
> more", then it can be a very long time to get it into the main tree
> (also this usually means it is well reviewed and tested)

That's only a problem if you've got a horribly complicated feature
where you can't remember yourself what you changed to make it work or
how or why you implemented it.

-- 
Ciaran McCreesh

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 17:51           ` Michał Górny
@ 2013-11-14 23:38             ` Patrick Lauer
  0 siblings, 0 replies; 111+ messages in thread
From: Patrick Lauer @ 2013-11-14 23:38 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

On 11/15/2013 01:51 AM, Michał Górny wrote:

>>> So tell me, what you exactly want or need? Or is it just bare
>>> complaining for the sake of complaining?
>>
>> Well, you accidentally cut out all references to TommyD's work again.
>> Almost as if you don't even want to discuss a working proper solution
>> that just doesn't have the ego hammering it in ...
> 
> 'Proper' is the keyword. The solution you mention has many issues that
> I listed more than once, and is far from unobtrusive, clear
> or explicit. It's supposedly working, yes, but it is nowhere near
> production-ready.

But at least the maintainer followed the protocol and did ask for
feedback, did not just hammer it into the main tree etc.

(Said maintainer was told to properly document AND DICSUSS it, or else
... one wonders why there's so much divergence between these two attempts)




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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 19:35               ` Ciaran McCreesh
@ 2013-11-14 23:40                 ` Patrick Lauer
  0 siblings, 0 replies; 111+ messages in thread
From: Patrick Lauer @ 2013-11-14 23:40 UTC (permalink / raw
  To: gentoo-dev

On 11/15/2013 03:35 AM, Ciaran McCreesh wrote:
> On Thu, 14 Nov 2013 20:07:39 +0100
> Thomas Sachau <tommy@gentoo.org> wrote:
>> - multilib-portage was planned to add features with a future EAPI
>> version, so in the end needs agreement from maintainers of package
>> managers, the pms team and the council. If anyone from those groups
>> only claims "you wrote so much, but i dont understand it, write
>> more", then it can be a very long time to get it into the main tree
>> (also this usually means it is well reviewed and tested)
> 
> That's only a problem if you've got a horribly complicated feature
> where you can't remember yourself what you changed to make it work or
> how or why you implemented it.
> 
... or if people shift the goalpost so much that you don't even remember
what game is being played


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 10:28 [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask Martin Vaeth
  2013-11-13 11:39 ` Tom Wijsman
  2013-11-13 14:10 ` [gentoo-dev] " Michał Górny
@ 2013-11-15  4:56 ` Matt Turner
  2013-11-15  5:23   ` Kent Fredric
                     ` (4 more replies)
  2 siblings, 5 replies; 111+ messages in thread
From: Matt Turner @ 2013-11-15  4:56 UTC (permalink / raw
  To: gentoo-dev

On Wed, Nov 13, 2013 at 2:28 AM, Martin Vaeth
<vaeth@mathematik.uni-wuerzburg.de> wrote:
> The new "features" use.stable.mask and package.use.stable.mask
> have turned maintaining systems with mixed ARCH and ~ARCH keywords
> into a nightmare:

I agree. I have helped two friends convert to Gentoo recently (one
used it a few years ago). They both came from Arch, and one told me
that before he resumed using Gentoo recently he considered these two
distros in the same category in terms of difficulty of use and
maintenance. After using it for a month, he's now convinced that
Gentoo is clearly the most difficult to use.

I'm inclined to agree, and I think in large part recently it's because
of use.stable.mask and package.use.stable.mask. These really are a
nightmare for users. Heck, they're really a nightmare for me and I've
been using Gentoo for nine years and feel like I have a pretty good
ability to decipher portage's error messages.

I think most of the confusion is caused by the necessity to put a
*stable* package atom into package.keywords to unmask a *USE* flag.
(Am I doing something wrong that would prevent 'x11-proto/kbproto
-abi_x86_32' in /etc/portage/package.use.stable.mask from
un-stable-masking the abi_x86_32 USE flag for kbproto?)

And then in addition, we did really weird things like stabilizing
package versions whose only difference from the previous is that it
supports multilib (e.g., kbproto-1.0.6 vs kbproto-1.0.6-r1). Except
that it's package.use.stable.mask'd. So you have to keyword a stable
package to get its only defining feature. (Why did we stabilize it in
the first place?)

Portage correctly shows that unstable USE flags are masked by printing
parenthesis around them, like use.mask'd flags, but the error messages
are really unhelpful. Take for instance dropping the stable
=x11-proto/kbproto-1.0.6-r1 from package.keywords, in order implicitly
mask the abi_x86_32. Attempting to merge =x11-proto/kbproto-1.0.6-r1
results in:

x11-proto/kbproto:0

  (x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by
    x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
required by (x11-libs/libX11-1.6.2::gentoo, installed)
    x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
required by (x11-libs/libXt-1.1.4::gentoo, installed)

There's a single problem. It can't enable abi_x86_32. Why didn't it
just say that?

You could even go beyond this and explain why it can't do it, but at
this point I'd settle for a concise explanation of *what* it can't do.


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
@ 2013-11-15  5:23   ` Kent Fredric
  2013-11-15 15:54   ` Peter Stuge
                     ` (3 subsequent siblings)
  4 siblings, 0 replies; 111+ messages in thread
From: Kent Fredric @ 2013-11-15  5:23 UTC (permalink / raw
  To: gentoo-dev

On 15 November 2013 17:56, Matt Turner <mattst88@gentoo.org> wrote:
> After using it for a month, he's now convinced that
> Gentoo is clearly the most difficult to use.
>
> I'm inclined to agree,


I'd have to disagree there slightly, arch is more easy to use if you
stick to the core set, the binary packages ... as is debian.

But if you verge outside that set, arch quickly becomes a headache,
AUR may have lots of contribution, but its nowhere near the quality we
have of even some of our worse quality overlays, and the arch
toolchain lacks lots of features ebuild authors have come to rely on.

This means if you use arch's equivalent of our overlays, you'll spend
much time fixing up  broken syntax in AUR packages.

I mean, sure, its "simpler", but at the same time, it does so by
simply cauterizing out the extra complexity, making it impossible for
end users to even opt for the complex or different behaviours, by
choosing one for them, and not informing them at all of that choice.

So that argument mostly boils down to "useflags add complexity for
people who aren't used to them, or aren't interested in them".

-- 
Kent


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-14 17:32                   ` Rich Freeman
@ 2013-11-15  6:53                     ` Ben de Groot
  2013-11-15  7:13                       ` Ulrich Mueller
                                         ` (2 more replies)
  0 siblings, 3 replies; 111+ messages in thread
From: Ben de Groot @ 2013-11-15  6:53 UTC (permalink / raw
  To: gentoo-dev

On 15 November 2013 01:32, Rich Freeman <rich0@gentoo.org> wrote:
> On Thu, Nov 14, 2013 at 11:38 AM, Ben de Groot <yngwin@gentoo.org> wrote:
>> I was particularly hit by this as maintainer of freetype, see bugs
>> 455070 and 459352 for some of the mess that could have been avoided.
>
> Looks like 455070 was the source of problems there (the other is just
> a tracker with the aftermath).  The package had no maintainer at the
> time, only a herd (per cvs).  There was a request in the bug for
> whether it was suitable to deploy to production.  Somebody associated
> with the herd gave a thumbs-up, apparently (I can only say that based
> on your comment - I have no idea how that was communicated).  Then
> something went wrong.  Since it caused problems, it was masked.  Those
> who run ~arch should be thanked for saving the stable users from
> potential breakage!
>
> I'm not sure what should have been done differently.  If the package
> maintainer (in this case a herd) says that something is good to go,
> why would anybody assume that it wasn't?  You suggested testing in an
> overlay 20 days earlier, but you weren't in any particularly
> privileged position at the time (you were presumably just another
> maintainer of the herd).

I don't really want to bring up this episode again, but it is a
telling example, which you asked for.

As can be seen from the ChangeLog, I was the primary maintainer. As a
member of the herd I didn't feel it necessary to assert any kind of
"privilege" any other way. I had already said "no, or at least wait"
but that was circumvented by asking another herd member who hadn't
touched the package in years. It would have been nice were I asked for
my okay before making any changes.

And as can be seen, the mess I feared for indeed took place. This
could have been prevented, in my opinion, had this seen more extensive
testing in an overlay.

And this is exactly why I am now more weary for the next package about
to be mangled: cairo (bug 488672).

I am even tempted to undo the multilib changes to freetype, since it
is still causing trouble (just search for freetype bugs and see how
often multilib pops up).

> I'm not pointing fingers here.  This was apparently a
> miscommunication, and part of the cause was a failure to document that
> there was a primary maintainer of the package (something which was
> subsequently corrected).  Michał did offer to just maintain the status
> quo on that package instead of migrating it, and apparently he thought
> he had the all-clear to migrate it anyway.
>
> Michał did add the multilib project as a co-maintainer, taking
> responsibility for dealing with the multilib-related issues long-term.
>  In my mind this is the sort of things projects should do.

Indeed, but more communication with the current actual maintainers of
the package in question should also be part of that.

> I'm sure there were other issues, but issues will happen when projects
> make changes.  That's just the way things roll around here.  If Michał
> just committed a change to a package without conferring with the
> maintainer at all or giving significant notice, I'd feel differently.
> I think we just need to learn and move forward, and from the looks of
> things we have.  Gentoo always has been a fairly "disruptive" distro,
> though it has settled down of late.  I don't think we're erring on the
> side of breaking systems too often right now, though I'm always for
> preventing that as long as it doesn't require ossification.
>
> (Just a note - this is all based on what I could piece together from
> cvs and bugzilla.  I'm sure those who were personally involved could
> contribute more detail. I'm not sure it is necessary that do so, but
> I'll gladly defer to those with firsthand knowledge.)
>
>>> In the end, stuff only
>>> gets done if people write code.  Your power in any FOSS project really
>>> comes down to your ability to write code or convince others to write
>>> code on your behalf.
>
>> No, it's more about your ability to commit and get away with it.
>
> So, I'm 100% for what Donnie said and in general I tend to lean
> towards saying "thanks, but no thanks" when a heavy contributor is
> driving everybody nuts.  However, the reality is that those who commit
> more also tend to be allowed to get away with committing more.  That's
> just human nature - we all like our free toys and we're reluctant to
> take too much objection when we're slapped around a little by the guy
> who is giving us the free toys.  There needs to be a balance, and from
> the sound of things Markos is looking to step in and adjust the
> balance if it gets out of line.  Honestly, I just wish everybody would
> do what they can to make his job easier, and I say that without
> pointing my fingers in any direction.  I think we have a really great
> thing going here...
>
> Rich
>

Markos has shown initiative and good ideas, so I'm looking forward to
positive changes.

I am also cautiously optimistic about a renewed QA team, which could
be involved more in this kind of issues.

As I see it now, with respect to multilib, we have three competing
solutions, but not a clear direction which way we want to go as a
distro:

1: emul-* packages
2: multilib-portage
3: multilib.eclass

I would like to vote for option 1, as it is the least intrusive and
does what we need. If it is really felt we need a more complete
solution, then my vote would be for 2, since 3 is too intrusive and
more likely to break or complicate stuff for normal users.

If you say council should take more of a leadership role, then maybe
this issue can be decided by council and a clear direction be taken by
the distro as a whole? Then those who oppose the choice made can
either put up or shut up, and we can all work at implementing the
chosen solution.

-- 
Cheers,

Ben | yngwin
Gentoo developer


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  6:53                     ` Ben de Groot
@ 2013-11-15  7:13                       ` Ulrich Mueller
  2013-11-15 11:08                         ` [gentoo-dev] " Duncan
                                           ` (2 more replies)
  2013-11-15 13:33                       ` Rich Freeman
  2013-11-15 22:39                       ` Michał Górny
  2 siblings, 3 replies; 111+ messages in thread
From: Ulrich Mueller @ 2013-11-15  7:13 UTC (permalink / raw
  To: gentoo-dev

>>>>> On Fri, 15 Nov 2013, Ben de Groot wrote:

> As I see it now, with respect to multilib, we have three competing
> solutions, but not a clear direction which way we want to go as a
> distro:

> 1: emul-* packages
> 2: multilib-portage
> 3: multilib.eclass

> I would like to vote for option 1, as it is the least intrusive and
> does what we need. If it is really felt we need a more complete
> solution, then my vote would be for 2, since 3 is too intrusive and
> more likely to break or complicate stuff for normal users.

Option 1 is not a solution, but a workaround. It has served us,
but IMHO its replacement is overdue. Just to give an example,
stable emul-linux-x86-xlibs suffers from several security issues
(bug 471098, A1/critical severity) since half a year.

Besides, distributing pre-compiled binary packages seems very
un-Gentoo-ish.

Not sure why you think that option 3 is more intrusive than option 2.
What can be more intrusive than requiring a modified package manager?

Ulrich


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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  7:13                       ` Ulrich Mueller
@ 2013-11-15 11:08                         ` Duncan
  2013-11-15 14:30                           ` Ian Stakenvicius
  2013-11-15 12:14                         ` [gentoo-dev] " Patrick Lauer
  2013-11-15 14:27                         ` Ian Stakenvicius
  2 siblings, 1 reply; 111+ messages in thread
From: Duncan @ 2013-11-15 11:08 UTC (permalink / raw
  To: gentoo-dev

Ulrich Mueller posted on Fri, 15 Nov 2013 08:13:47 +0100 as excerpted:

>>>>>> On Fri, 15 Nov 2013, Ben de Groot wrote:
> 
>> As I see it now, with respect to multilib, we have three competing
>> solutions, but not a clear direction which way we want to go as a
>> distro:
> 
>> 1: emul-* packages 2: multilib-portage 3: multilib.eclass
> 
>> I would like to vote for option 1, as it is the least intrusive and
>> does what we need. If it is really felt we need a more complete
>> solution, then my vote would be for 2, since 3 is too intrusive and
>> more likely to break or complicate stuff for normal users.
> 
> Option 1 is not a solution, but a workaround. It has served us,
> but IMHO its replacement is overdue. Just to give an example,
> stable emul-linux-x86-xlibs suffers from several security issues (bug
> 471098, A1/critical severity) since half a year.
> 
> Besides, distributing pre-compiled binary packages seems very
> un-Gentoo-ish.

Indeed.  From amd64's gentoo roots the gentoo/amd64 people considered 
emul-* a sort-of-embarrassing workaround for a distro such as gentoo, 
where for many the biggest /point/ is building from sources in ordered to 
enable more user-level customization.  Basically it was and remains a 
case of saying "Umm... we believe in building from source, except don't 
look too closely because in some cases we don't."

If people are willing to accept emul-* because it's "easier", why bother 
with gentoo at all, because binary distros that make all compile-time 
choices for the user are even /easier/?

So indeed, emul-* is a workaround, and quite a hacked up one for a distro 
such as gentoo at that, NOT a solution.

However, I'd replace it as a solution with the (32-bit) chroot solution, 
which I use here along with no-multilib for my main amd64 system, except 
that I extended the chroot to build the full image (including kernel, 
system daemons, grub, etc, that wouldn't need built on a simple 32-bit 
chroot) so as to be able to transfer it first via USB thumbdrive and 
eventually via SSH to my 32-bit netbook, which boots from it.  (I could 
thus make the 32-bit image on my main machine bootable as well, with 
trivial effort, letting me dual-boot it, but I've had no reason to do so.)

The 32-bit chroot solution is indeed a full gentoo-level solution, 
already documented, requiring no changes to the tree or to PMs, since it 
uses the existing x86 arch profiles just as they come.

So:

1: emul-* packages[1]
2: multilib-portage
3: multilib.eclass
4: chroot[2]

[1] hacked up workaround, not a proper gentoo level solution.
[2] 32-bit for amd64, but could be the reverse, 64-bit for x86, or either 
one for x86-32, or some other combination for other archs.

> Not sure why you think that option 3 is more intrusive than option 2.
> What can be more intrusive than requiring a modified package manager?

If the perspective is that of a "plain" no-multilib user (even one like 
me using the 32-bit chroot solution), or even a standard multilib user 
satisfied with the emul-* workaround, then option 3 is very intrusive 
indeed, since it has already triggered quite a few package updates with 
the only purpose being introduction of a feature these users aren't 
particularly interested in.  To these folks, options 2 and 4 are 
preferred, since for the most part the only folks affected are those who 
will actually be using the feature.

Indeed, while option 2 has required some mostly trivial patches and I 
think a whole EAPI, option 4 requires none of that, operating with the 
existing tree just as it is.  It'd be a rare bug indeed that affected a 
chroot solution but didn't affect other users of the target arch, 
especially since gentoo's installation model already involves chroots, so 
bugs involving chroots in @system at least, by /definition/ involve the 
affected arch, and should be caught and worked out by releng as a result.

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  7:13                       ` Ulrich Mueller
  2013-11-15 11:08                         ` [gentoo-dev] " Duncan
@ 2013-11-15 12:14                         ` Patrick Lauer
  2013-11-15 14:27                         ` Ian Stakenvicius
  2 siblings, 0 replies; 111+ messages in thread
From: Patrick Lauer @ 2013-11-15 12:14 UTC (permalink / raw
  To: gentoo-dev

On 11/15/2013 03:13 PM, Ulrich Mueller wrote:
>>>>>> On Fri, 15 Nov 2013, Ben de Groot wrote:
> 
>> As I see it now, with respect to multilib, we have three competing
>> solutions, but not a clear direction which way we want to go as a
>> distro:
> 
>> 1: emul-* packages
>> 2: multilib-portage
>> 3: multilib.eclass
> 
>> I would like to vote for option 1, as it is the least intrusive and
>> does what we need. If it is really felt we need a more complete
>> solution, then my vote would be for 2, since 3 is too intrusive and
>> more likely to break or complicate stuff for normal users.
> 
> Option 1 is not a solution, but a workaround. It has served us,
> but IMHO its replacement is overdue. Just to give an example,
> stable emul-linux-x86-xlibs suffers from several security issues
> (bug 471098, A1/critical severity) since half a year.
That's not an argument for or against anything, that just shows that we
don't even have enough devs caring for the "easiest" method.

Maybe ... dunno ... maybe that should be more automated so that a single
trigger could generate the packages.

> 
> Besides, distributing pre-compiled binary packages seems very
> un-Gentoo-ish.

Indeed.
> Not sure why you think that option 3 is more intrusive than option 2.
> What can be more intrusive than requiring a modified package manager?
What's intrusive? We tolerate EAPI5, @preserved-rebuild and other
package manager mods too ...



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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  6:53                     ` Ben de Groot
  2013-11-15  7:13                       ` Ulrich Mueller
@ 2013-11-15 13:33                       ` Rich Freeman
  2013-11-15 22:39                       ` Michał Górny
  2 siblings, 0 replies; 111+ messages in thread
From: Rich Freeman @ 2013-11-15 13:33 UTC (permalink / raw
  To: gentoo-dev

On Fri, Nov 15, 2013 at 1:53 AM, Ben de Groot <yngwin@gentoo.org> wrote:
>
> I don't really want to bring up this episode again, but it is a
> telling example, which you asked for.

I appreciate that.  I did ask for an example.  I'll also limit my
comments just to things that I think are more helpful moving forward.

>
> As can be seen from the ChangeLog, I was the primary maintainer.

Depends on your definition of maintainer.  If you define maintainer as
somebody who has actually been doing work on a package, then you were.
 If you define it as the person listed in metadata.xml, then you
weren't.

Ideally those should match, so that when projects have to go running
around the tree making changes they don't have to read between the
lines to figure out who is the right contact for any particular
package.

They match now, which is good.

>
> I am even tempted to undo the multilib changes to freetype, since it
> is still causing trouble (just search for freetype bugs and see how
> often multilib pops up).

Well, make sure you talk to the OTHER maintainer for that package,
which is the multilib team, before doing that.  You don't own the
package - you just help to maintain it.  I don't want to rehash the
thread from last summer - I do appreciate your feelings and I'm trying
to find a balance.  I want to appreciate the fact that maintainers
have the largest investment in their packages, but at the same time
those working on projects are investing in Gentoo as well.

>>
>> Michał did add the multilib project as a co-maintainer, taking
>> responsibility for dealing with the multilib-related issues long-term.
>>  In my mind this is the sort of things projects should do.
>
> Indeed, but more communication with the current actual maintainers of
> the package in question should also be part of that.

You're both "actual" maintainers now.  Certainly I agree that you
should be talking to each other.  :)  I'd hope that things are going
better now, but if they aren't I'd hope that Comrel would provide some
assistance here.

>
> I am also cautiously optimistic about a renewed QA team, which could
> be involved more in this kind of issues.

I tend to agree here, but their role isn't to pick winners so much as
to defend the general integrity of the tree.  I think the challenge is
figuring out how good, "good enough," is before these packages end up
in ~arch (which IS intended for TESTING packages, but packages that
are fairly likely to work with some maintainer testing already).

> If you say council should take more of a leadership role, then maybe
> this issue can be decided by council and a clear direction be taken by
> the distro as a whole? Then those who oppose the choice made can
> either put up or shut up, and we can all work at implementing the
> chosen solution.

Should we pick an init system while we're at it?  :)

Honestly, I don't think we can really choose anything at this point as
none of the solutions are really fully-baked.  If the Council simply
pronounced support for one of them the only result would be that
people might stop working on the other two, with no further progress
on the chosen one.  Then if that one dies on the vine we're stuck.

I do have thoughts around things that could be improved, but I don't
think either of the new options are at the point where they make
sense.  Both options really have to progress further on their own
before we can think about standardizing/etc.

Rich


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  7:13                       ` Ulrich Mueller
  2013-11-15 11:08                         ` [gentoo-dev] " Duncan
  2013-11-15 12:14                         ` [gentoo-dev] " Patrick Lauer
@ 2013-11-15 14:27                         ` Ian Stakenvicius
  2 siblings, 0 replies; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-15 14:27 UTC (permalink / raw
  To: gentoo-dev

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

On 15/11/13 02:13 AM, Ulrich Mueller wrote:
>>>>>> On Fri, 15 Nov 2013, Ben de Groot wrote:
> 
>> As I see it now, with respect to multilib, we have three
>> competing solutions, but not a clear direction which way we want
>> to go as a distro:
> 
>> 1: emul-* packages 2: multilib-portage 3: multilib.eclass
> 
>> I would like to vote for option 1, as it is the least intrusive
>> and does what we need. If it is really felt we need a more
>> complete solution, then my vote would be for 2, since 3 is too
>> intrusive and more likely to break or complicate stuff for normal
>> users.
> 
> Option 1 is not a solution, but a workaround. It has served us, but
> IMHO its replacement is overdue. Just to give an example, stable
> emul-linux-x86-xlibs suffers from several security issues (bug
> 471098, A1/critical severity) since half a year.
> 
> Besides, distributing pre-compiled binary packages seems very 
> un-Gentoo-ish.
> 
> Not sure why you think that option 3 is more intrusive than option
> 2. What can be more intrusive than requiring a modified package
> manager?

I concurr -- option #1 has existed for some time but it's entirely a
workaround rather than a solution.

Option 2 and Option 3, though, I don't see as having to be a competing
system -- to me they provide for different goals (most of which
overlap, but still).

Multilib-portage provides the ability to build an entire userland in
as many ABIs as can be supported -- bins, libs, the whole deal; no
matter if the in-tree ebuilds have an alt-ABI specification or not.

The multilib eclasses allow any ebuild that needs to, to depend on a
non-native-ABI library and forces any package manager to work it out
via use flags.

#3 works for everyone in a more limited scope than #2 (just libs,
generally with the goal of only including the few libs the in-tree
consumers actually need).  #2 provides users that want it with a
specific PM to manage their system, as alternative to the other PMs
out there.


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

iF4EAREIAAYFAlKGLzgACgkQ2ugaI38ACPCrkgD+JNG1iF/oGh/5gXtqhTXlhHGL
A4tM6dbfZxmt793CTGwA+wercYN3gwb10GHyxs0bUMkime+cWDFpPphjPHU9BAtn
=BPc1
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 11:08                         ` [gentoo-dev] " Duncan
@ 2013-11-15 14:30                           ` Ian Stakenvicius
  2013-11-15 15:30                             ` Duncan
  0 siblings, 1 reply; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-15 14:30 UTC (permalink / raw
  To: gentoo-dev

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

On 15/11/13 06:08 AM, Duncan wrote:
> [2] 32-bit for amd64, but could be the reverse, 64-bit for x86, or
> either one for x86-32, or some other combination for other archs.

Well, not really -- an x86 toolchain can't build for amd64 or x32 ,
you need a crossdev for that.  I don't think either multilib-portage
or the multilib-eclass solution are going to be substantive enough to
incorporate crossdev building directly into the package manager.



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

iF4EAREIAAYFAlKGMCAACgkQ2ugaI38ACPBGWwD/QaFE626C44E8N1d/6aupdfsh
vHlKe9xmtfcANRV8QlkA/0pt9P9XYsNahnU/hJvpwSg3QGTQlB3yf3npTuZ8BkiL
=ImMI
-----END PGP SIGNATURE-----


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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 14:30                           ` Ian Stakenvicius
@ 2013-11-15 15:30                             ` Duncan
  0 siblings, 0 replies; 111+ messages in thread
From: Duncan @ 2013-11-15 15:30 UTC (permalink / raw
  To: gentoo-dev

Ian Stakenvicius posted on Fri, 15 Nov 2013 09:30:56 -0500 as excerpted:

> On 15/11/13 06:08 AM, Duncan wrote:
>> [2] 32-bit for amd64, but could be the reverse, 64-bit for x86, or
>> either one for x86-32, or some other combination for other archs.
> 
> Well, not really -- an x86 toolchain can't build for amd64 or x32 , you
> need a crossdev for that.  I don't think either multilib-portage or the
> multilib-eclass solution are going to be substantive enough to
> incorporate crossdev building directly into the package manager.

Good point.  I let my efforts to be inclusive get the best of my common 
sense. =:^(

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
  2013-11-15  5:23   ` Kent Fredric
@ 2013-11-15 15:54   ` Peter Stuge
  2013-11-15 16:05     ` Ian Stakenvicius
  2013-11-15 19:24   ` [gentoo-dev] " Tom Wijsman
                     ` (2 subsequent siblings)
  4 siblings, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-15 15:54 UTC (permalink / raw
  To: gentoo-dev

Matt Turner wrote:
> I think in large part recently it's because of use.stable.mask and
> package.use.stable.mask. These really are a nightmare for users.
..
> I think most of the confusion is caused by the necessity to put a
> *stable* package atom into package.keywords to unmask a *USE* flag.

A lot can be learned just from the filenames:

use.stable.mask
package.use.stable.mask

The latter indicates that this concept has no less than four dimensions.

Let's enumerate and associate:

1. use - USE flags - no problem, Gentoo users either love USE flags or leave
2. stable - arch vs. ~arch - no problem, even installation docs describe it
3. mask - masked packages - OK, at some point people encounter masked packages
4. package - per-package stuff - like with /etc/portage/package.use

How stable and mask interact with USE is absolutely unclear and usability
of this is very close to zero.


//Peter


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 15:54   ` Peter Stuge
@ 2013-11-15 16:05     ` Ian Stakenvicius
  2013-11-15 20:18       ` [gentoo-dev] " Martin Vaeth
  0 siblings, 1 reply; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-15 16:05 UTC (permalink / raw
  To: gentoo-dev

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

On 15/11/13 10:54 AM, Peter Stuge wrote:
> Matt Turner wrote:
>> I think in large part recently it's because of use.stable.mask
>> and package.use.stable.mask. These really are a nightmare for
>> users.
> ..
>> I think most of the confusion is caused by the necessity to put
>> a *stable* package atom into package.keywords to unmask a *USE*
>> flag.
> 
> A lot can be learned just from the filenames:
> 
> use.stable.mask package.use.stable.mask
> 
> The latter indicates that this concept has no less than four
> dimensions.
> 
> Let's enumerate and associate:
> 
> 1. use - USE flags - no problem, Gentoo users either love USE flags
> or leave 2. stable - arch vs. ~arch - no problem, even installation
> docs describe it 3. mask - masked packages - OK, at some point
> people encounter masked packages 4. package - per-package stuff -
> like with /etc/portage/package.use
> 
> How stable and mask interact with USE is absolutely unclear and
> usability of this is very close to zero.

Well, reordering this a bit:

1 - package: so this is per-package.
2 - use: so this has to do with use flags, per package
3 - stable: so this has to do with stable systems' use flags, per package
4 - mask: so this is disallowing something on stable systems' use
flags, per package.

So I don't think this is entirely unclear.

I suppose it might be a bit more clear if it was called
'package.stable.use.mask', or the ideal english version of
'stable.package.use.mask', but i think renaming it at this point
doesn't really provide that much of an advantage and definitely
doesn't change what it does.


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

iF4EAREIAAYFAlKGRkUACgkQ2ugaI38ACPAu+gD/U6rExYFTC7fUMFIuQgbgJwRn
I0sA9NSixk6gtVj8E8IA/i1jzlQnkjHQFnHw3qHnTtdUGpJHFn/0saxItbn6ieE9
=+7UA
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
  2013-11-15  5:23   ` Kent Fredric
  2013-11-15 15:54   ` Peter Stuge
@ 2013-11-15 19:24   ` Tom Wijsman
  2013-11-15 19:24   ` Tom Wijsman
  2013-11-15 20:00   ` Tom Wijsman
  4 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 19:24 UTC (permalink / raw
  To: mattst88; +Cc: gentoo-dev

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

On Thu, 14 Nov 2013 20:56:32 -0800
Matt Turner <mattst88@gentoo.org> wrote:

> Attempting to merge =x11-proto/kbproto-1.0.6-r1
> results in:
> 
> x11-proto/kbproto:0
> 
>   (x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge)
> pulled in by (no parents that aren't satisfied by other packages in
> this slot)
> 
>   (x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by
>     x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
> required by (x11-libs/libX11-1.6.2::gentoo, installed)
>     x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
> required by (x11-libs/libXt-1.1.4::gentoo, installed)

No, it doesn't, it gives you a lot more output than that; you appear to
be distracted by something that doesn't appear to be a problem at all.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
                     ` (2 preceding siblings ...)
  2013-11-15 19:24   ` [gentoo-dev] " Tom Wijsman
@ 2013-11-15 19:24   ` Tom Wijsman
  2013-11-15 19:31     ` Ian Stakenvicius
  2013-11-15 19:36     ` Matt Turner
  2013-11-15 20:00   ` Tom Wijsman
  4 siblings, 2 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 19:24 UTC (permalink / raw
  To: mattst88; +Cc: gentoo-dev

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

On Thu, 14 Nov 2013 20:56:32 -0800
Matt Turner <mattst88@gentoo.org> wrote:

> Attempting to merge =x11-proto/kbproto-1.0.6-r1
> results in:
> 
> x11-proto/kbproto:0
> 
>   (x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge)
> pulled in by (no parents that aren't satisfied by other packages in
> this slot)
> 
>   (x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by
>     x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
> required by (x11-libs/libX11-1.6.2::gentoo, installed)
>     x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
> required by (x11-libs/libXt-1.1.4::gentoo, installed)

No, it doesn't, it gives you a lot more output than that; you appear to
be distracted by something that doesn't appear to be a problem at all.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 19:24   ` Tom Wijsman
@ 2013-11-15 19:31     ` Ian Stakenvicius
  2013-11-15 19:36     ` Matt Turner
  1 sibling, 0 replies; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-15 19:31 UTC (permalink / raw
  To: gentoo-dev

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

On 15/11/13 02:24 PM, Tom Wijsman wrote:
> On Thu, 14 Nov 2013 20:56:32 -0800 Matt Turner
> <mattst88@gentoo.org> wrote:
> 
>> Attempting to merge =x11-proto/kbproto-1.0.6-r1 results in:
>> 
>> x11-proto/kbproto:0
>> 
>> (x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge) 
>> pulled in by (no parents that aren't satisfied by other packages
>> in this slot)
>> 
>> (x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by 
>> x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
>>
>> 
required by (x11-libs/libX11-1.6.2::gentoo, installed)
>> x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
>>
>> 
required by (x11-libs/libXt-1.1.4::gentoo, installed)
> 
> No, it doesn't, it gives you a lot more output than that; you
> appear to be distracted by something that doesn't appear to be a
> problem at all.
> 

Not only that, but these spurious slot collision "errors" pop up all
the time and are useful only for confusing portage users, unless they
actually get it right in the very rare cases -- and they only get it
right, it seems, when you don't see "no parents that aren't satisfied
by other packages in this slot" on one side of the collision.

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

iF4EAREIAAYFAlKGdogACgkQ2ugaI38ACPBlWAD8CxzN2Q2jnkCZkmrXcBpTQNoD
v30A1BnDvJen3JilQf0A/jm3aT/2B7vY7xwqTCnlaRE8VQNjgJQptn3HT7LRCic0
=nEcM
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 19:24   ` Tom Wijsman
  2013-11-15 19:31     ` Ian Stakenvicius
@ 2013-11-15 19:36     ` Matt Turner
  1 sibling, 0 replies; 111+ messages in thread
From: Matt Turner @ 2013-11-15 19:36 UTC (permalink / raw
  To: Tom Wijsman; +Cc: gentoo-dev

On Fri, Nov 15, 2013 at 11:24 AM, Tom Wijsman <TomWij@gentoo.org> wrote:
> On Thu, 14 Nov 2013 20:56:32 -0800
> Matt Turner <mattst88@gentoo.org> wrote:
>
>> Attempting to merge =x11-proto/kbproto-1.0.6-r1
>> results in:
>>
>> x11-proto/kbproto:0
>>
>>   (x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge)
>> pulled in by (no parents that aren't satisfied by other packages in
>> this slot)
>>
>>   (x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by
>>     x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
>> required by (x11-libs/libX11-1.6.2::gentoo, installed)
>>     x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
>> required by (x11-libs/libXt-1.1.4::gentoo, installed)
>
> No, it doesn't, it gives you a lot more output than that; you appear to
> be distracted by something that doesn't appear to be a problem at all.

What? Where do you get off telling me that the output I copied and
pasted into this email is wrong?

dynamic71 mattst88 # grep kbproto /etc/portage/package.keywords/xorg
=x11-proto/kbproto-1.0.6-r1
dynamic71 mattst88 # emerge '=x11-proto/kbproto-1.0.6-r1' -vp

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] x11-proto/kbproto-1.0.6-r1  ABI_X86="32 (64) (-x32)" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

dynamic71 mattst88 # sed -i -e
's|=x11-proto/kbproto|#=x11-proto/kbproto|'
/etc/portage/package.keywords/xorg
dynamic71 mattst88 # grep kbproto /etc/portage/package.keywords/xorg
#=x11-proto/kbproto-1.0.6-r1
dynamic71 mattst88 # emerge '=x11-proto/kbproto-1.0.6-r1' -vp

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R    ] x11-proto/kbproto-1.0.6-r1  ABI_X86="(64) (-32*) (-x32)" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

x11-proto/kbproto:0

  (x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by
    x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
required by (x11-libs/libX11-1.6.2::gentoo, installed)
    x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]
required by (x11-libs/libXt-1.1.4::gentoo, installed)


!!! Enabling --newuse and --update might solve this conflict.
!!! If not, it might help emerge to give a more specific suggestion.


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
                     ` (3 preceding siblings ...)
  2013-11-15 19:24   ` Tom Wijsman
@ 2013-11-15 20:00   ` Tom Wijsman
  2013-11-15 20:10     ` Peter Stuge
  2013-11-15 20:25     ` Matt Turner
  4 siblings, 2 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 20:00 UTC (permalink / raw
  To: mattst88; +Cc: gentoo-dev

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

On Thu, 14 Nov 2013 20:56:32 -0800
Matt Turner <mattst88@gentoo.org> wrote:

> There's a single problem. It can't enable abi_x86_32. Why didn't it
> just say that?

As per the full output, it does:

!!! Enabling --newuse and --update might solve this conflict.
!!! If not, it might help emerge to give a more specific suggestion.

That together with ABI_X86="(64) (-32*) (-x32)" from the package line
makes it clear that it is trying to change that USE flag. But as you
haven't told emerge yet to do so, it doesn't; which makes it unable.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:00   ` Tom Wijsman
@ 2013-11-15 20:10     ` Peter Stuge
  2013-11-15 20:24       ` Tom Wijsman
  2013-11-15 20:25     ` Matt Turner
  1 sibling, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-15 20:10 UTC (permalink / raw
  To: gentoo-dev

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

Tom Wijsman wrote:
> !!! Enabling --newuse and --update might solve this conflict.
> !!! If not, it might help emerge to give a more specific suggestion.
> 
> That together with ABI_X86="(64) (-32*) (-x32)" from the package line
> makes it clear that it is trying to change that USE flag.

I disagree quite strongly with that statement. There is no clear
message at all about the situation.

The problem is that the USE flag is "hidden" on the package line as
opposed to mentioned explicitly by portage. It's easy for software to
print meaningful output based on the data it has while it is awkward
for humans to scan lines and lines of output for parentheses with *s
and -s.


I very much appreciate that you clarified what you meant by "No".


Thanks

//Peter

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 16:05     ` Ian Stakenvicius
@ 2013-11-15 20:18       ` Martin Vaeth
  2013-11-15 20:22         ` Peter Stuge
                           ` (2 more replies)
  0 siblings, 3 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-15 20:18 UTC (permalink / raw
  To: gentoo-dev

Ian Stakenvicius <axs@gentoo.org> wrote:
> On 15/11/13 10:54 AM, Peter Stuge wrote:
>> ..
>>> I think most of the confusion is caused by the necessity to put
>>> a *stable* package atom into package.keywords to unmask a *USE*
>>> flag.
>>
>> A lot can be learned just from the filenames:
>> [...]
>> The latter indicates that this concept has no less than four
>> dimensions.
>
> Well, reordering this a bit: [...]
> So I don't think this is entirely unclear.

I think the point of Peter is not whether the *name* of the
file is optimally chosen: His point is that the *semantics*
(which is somehow reflected in the name) is too complex in
the sense that it combines at least two concepts
(USE-Flags and Stability) which from th
user's point of view are completely unrelated.

Only the developer's point of view of wanting to stabilize
something earlier makes a connection between these concepts,
but it is not really a natural conncetion:
For someone who is not familiar with implicit implications
of every USE-flag (i.e. a non-developer), the result looks
like an almost random change of active USE-flags.

Probably a lot of the confusion could be avoided if
/etc/portage/package.accept_keywords would not implicitly
unmask useflags.

If this is not very hard to implement in portage, I would
strongly vote to remove this implicit connection:
This side effect is obviously the cause of the
"dependency hell" examples.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:18       ` [gentoo-dev] " Martin Vaeth
@ 2013-11-15 20:22         ` Peter Stuge
  2013-11-16 12:46         ` Andreas K. Huettel
  2013-11-16 12:50         ` Andreas K. Huettel
  2 siblings, 0 replies; 111+ messages in thread
From: Peter Stuge @ 2013-11-15 20:22 UTC (permalink / raw
  To: gentoo-dev

Martin Vaeth wrote:
> Probably a lot of the confusion could be avoided if
> /etc/portage/package.accept_keywords would not implicitly
> unmask useflags.

I think so too.

Anything that happens implicitly where explicit knobs exist is really
counter-intuitive.


//Peter


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:10     ` Peter Stuge
@ 2013-11-15 20:24       ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 20:24 UTC (permalink / raw
  To: peter; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 21:10:41 +0100
Peter Stuge <peter@stuge.se> wrote:

> Tom Wijsman wrote:
> > !!! Enabling --newuse and --update might solve this conflict.
> > !!! If not, it might help emerge to give a more specific suggestion.
> > 
> > That together with ABI_X86="(64) (-32*) (-x32)" from the package
> > line makes it clear that it is trying to change that USE flag.
> 
> I disagree quite strongly with that statement. There is no clear
> message at all about the situation.
>
> The problem is that the USE flag is "hidden" on the package line as
> opposed to mentioned explicitly by portage. It's easy for software to
> print meaningful output based on the data it has while it is awkward
> for humans to scan lines and lines of output for parentheses with *s
> and -s.

Which is not the case here; as a single package is being emerged, the
output is rather short. So, it is as clear as how much you read of it.

The shortness of the output actually makes it much easier to scan.

The other case would be `emerge -uDN @world` which gives a lot of
output; but that case is different, as it wouldn't suggest the above.

Now imaging if that long output was very much longer; the longness of
that output, would be quite impossible to scan within the time one
would process the normal `emerge -uDN @world` output.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:00   ` Tom Wijsman
  2013-11-15 20:10     ` Peter Stuge
@ 2013-11-15 20:25     ` Matt Turner
  2013-11-15 20:53       ` Tom Wijsman
  1 sibling, 1 reply; 111+ messages in thread
From: Matt Turner @ 2013-11-15 20:25 UTC (permalink / raw
  To: Tom Wijsman; +Cc: gentoo-dev

On Fri, Nov 15, 2013 at 12:00 PM, Tom Wijsman <TomWij@gentoo.org> wrote:
> On Thu, 14 Nov 2013 20:56:32 -0800
> Matt Turner <mattst88@gentoo.org> wrote:
>
>> There's a single problem. It can't enable abi_x86_32. Why didn't it
>> just say that?
>
> As per the full output, it does:
>
> !!! Enabling --newuse and --update might solve this conflict.
> !!! If not, it might help emerge to give a more specific suggestion.
>
> That together with ABI_X86="(64) (-32*) (-x32)" from the package line
> makes it clear that it is trying to change that USE flag. But as you
> haven't told emerge yet to do so, it doesn't; which makes it unable.

Imagine I had simply forgotten to unmask the abi_x86_32 USE flag for
kbproto but was attempting to emerge unstable (or unmasked abi_x86_32)
libXt. In fact, if I un-unmask kbproto (so that abi_x86_32 is masked),
unmerge kbproto and attempt to emerge libXt:

dynamic71 mattst88 # emerge libXt -vp

These are the packages that would be merged, in order:

Calculating dependencies... done!

emerge: there are no ebuilds built with USE flags to satisfy
"x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]".
!!! One of the following packages is required to complete your request:
- x11-libs/libXt-1.1.4::gentoo (Change USE: -abi_x86_32)
(dependency required by "x11-libs/libXt-1.1.4" [ebuild])
(dependency required by "libXt" [argument])

It suggests that I turn off abi_x86_32 for libXt rather than telling
me to turn the flag on for kbproto!

Portage prints other things intelligently:

mattst88@dynamic71 ~ % FEATURES=test emerge dev-python/py -vp

These are the packages that would be merged, in order:

Calculating dependencies... done!


[nomerge       ] dev-python/py-1.4.13  USE="{test}"
PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
(-python3_3)"
[ebuild  N     ]  dev-python/pytest-2.3.5  USE="{test} -doc"
PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
(-python3_3)" 417 kB
[ebuild  N     ]   dev-python/py-1.4.13  USE="{test}"
PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
(-python3_3)" 185 kB

Total: 2 packages (2 new), Size of downloads: 602 kB

 * Error: circular dependencies:

(dev-python/py-1.4.13::gentoo, ebuild scheduled for merge) depends on
 (dev-python/pytest-2.3.5::gentoo, ebuild scheduled for merge) (buildtime)
  (dev-python/py-1.4.13::gentoo, ebuild scheduled for merge) (buildtime)

It might be possible to break this cycle
by applying the following change:
- dev-python/py-1.4.13 (Change USE: -test)

Note that this change can be reverted, once the package has been installed.


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:25     ` Matt Turner
@ 2013-11-15 20:53       ` Tom Wijsman
  2013-11-15 21:09         ` Peter Stuge
  2013-11-15 21:21         ` Matt Turner
  0 siblings, 2 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 20:53 UTC (permalink / raw
  To: mattst88; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 12:25:47 -0800
Matt Turner <mattst88@gentoo.org> wrote:

> On Fri, Nov 15, 2013 at 12:00 PM, Tom Wijsman <TomWij@gentoo.org>
> wrote:
> Imagine I had simply forgotten to unmask the abi_x86_32 USE flag for
> kbproto but was attempting to emerge unstable (or unmasked abi_x86_32)
> libXt. In fact, if I un-unmask kbproto (so that abi_x86_32 is masked),
> unmerge kbproto and attempt to emerge libXt:
> 
> [...]
> 
> emerge: there are no ebuilds built with USE flags to satisfy
> "x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]".
> !!! One of the following packages is required to complete your
> request:
> - x11-libs/libXt-1.1.4::gentoo (Change USE: -abi_x86_32)
> (dependency required by "x11-libs/libXt-1.1.4" [ebuild])
> (dependency required by "libXt" [argument])
> 
> It suggests that I turn off abi_x86_32 for libXt rather than telling
> me to turn the flag on for kbproto!

Why should it literally suggest you to do something known to be broken?

It is clear from the output how it wants the dependency to be; so, if
you want to do something different, you can and the output tells enough.

Due to the complexity of the dependency, you will need `man 5 ebuild`
though; (-) means to assume it as disabled if it doesn't exist.

> Portage prints other things intelligently:
> 
> mattst88@dynamic71 ~ % FEATURES=test emerge dev-python/py -vp
> 
> These are the packages that would be merged, in order:
> 
> Calculating dependencies... done!
> 
> 
> [nomerge       ] dev-python/py-1.4.13  USE="{test}"
> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
> (-python3_3)"
> [ebuild  N     ]  dev-python/pytest-2.3.5  USE="{test} -doc"
> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
> (-python3_3)" 417 kB
> [ebuild  N     ]   dev-python/py-1.4.13  USE="{test}"
> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
> (-python3_3)" 185 kB
> 
> Total: 2 packages (2 new), Size of downloads: 602 kB
> 
>  * Error: circular dependencies:
> 
> (dev-python/py-1.4.13::gentoo, ebuild scheduled for merge) depends on
>  (dev-python/pytest-2.3.5::gentoo, ebuild scheduled for merge)
> (buildtime) (dev-python/py-1.4.13::gentoo, ebuild scheduled for
> merge) (buildtime)
> 
> It might be possible to break this cycle
> by applying the following change:
> - dev-python/py-1.4.13 (Change USE: -test)
> 
> Note that this change can be reverted, once the package has been
> installed.

This is just like how you can't compile gcc without having compiled gcc
with another compiler first (or used a binpkg, or obtained from stage3);
thus, similarly, you can't test py without having pytest first etc...

For example, emerging dev-java/icedtea without a Java compiler / runtime
present will show you the same behavior; and there are some other
circular dependencies present in the tree that behave similarly.

It's a problem that you can't really solve as far as I know; bugs are
often getting filed for it, but without a fix. One filed against
Portage is for example https://bugs.gentoo.org/show_bug.cgi?id=417675
but it hasn't received much attention; because well, I doubt if a proper
solution to this would be simple.

Workarounds mentioned are hacking up the vdb or changing --newuse.

Does replacing this "explicit behavior" by "implicit behavior" make
sense for the users in general? Does it make sense for those that just
want to test? Will people understand it if it were implicit behavior?

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:53       ` Tom Wijsman
@ 2013-11-15 21:09         ` Peter Stuge
  2013-11-15 21:27           ` Tom Wijsman
  2013-11-15 21:21         ` Matt Turner
  1 sibling, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-15 21:09 UTC (permalink / raw
  To: gentoo-dev

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

Tom Wijsman wrote:
> Does replacing this "explicit behavior" by "implicit behavior" make
> sense for the users in general?

Please don't warp the words. Maybe I misunderstand, but it seems like
that's what you're doing.

I'll try to clarify:

With explicit I was refering to allowing manual setting and unsetting
of USE flags, keywords and masks.

With implicit I was refering to those same things happening automatically.
USE flags set or unset automatically, keywords set or unset automatically,
masks set or unset automatically - as a result of something or other.

Any such automations significantly diminish the value of the explicit knobs
and are counter-intuitive.

If someone is given a mechanism to control which USE flags are set or
unset then it's just stupid to go "around" those settings.


I understand the temptation to make things happen automatically for ease
of development, and that is perfectly fine as long as those automations
aren't exposed to users.


//Peter

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:53       ` Tom Wijsman
  2013-11-15 21:09         ` Peter Stuge
@ 2013-11-15 21:21         ` Matt Turner
  2013-11-15 21:38           ` Tom Wijsman
  1 sibling, 1 reply; 111+ messages in thread
From: Matt Turner @ 2013-11-15 21:21 UTC (permalink / raw
  To: Tom Wijsman; +Cc: gentoo-dev

On Fri, Nov 15, 2013 at 12:53 PM, Tom Wijsman <TomWij@gentoo.org> wrote:
> On Fri, 15 Nov 2013 12:25:47 -0800
> Matt Turner <mattst88@gentoo.org> wrote:
>
>> On Fri, Nov 15, 2013 at 12:00 PM, Tom Wijsman <TomWij@gentoo.org>
>> wrote:
>> Imagine I had simply forgotten to unmask the abi_x86_32 USE flag for
>> kbproto but was attempting to emerge unstable (or unmasked abi_x86_32)
>> libXt. In fact, if I un-unmask kbproto (so that abi_x86_32 is masked),
>> unmerge kbproto and attempt to emerge libXt:
>>
>> [...]
>>
>> emerge: there are no ebuilds built with USE flags to satisfy
>> "x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]".
>> !!! One of the following packages is required to complete your
>> request:
>> - x11-libs/libXt-1.1.4::gentoo (Change USE: -abi_x86_32)
>> (dependency required by "x11-libs/libXt-1.1.4" [ebuild])
>> (dependency required by "libXt" [argument])
>>
>> It suggests that I turn off abi_x86_32 for libXt rather than telling
>> me to turn the flag on for kbproto!
>
> Why should it literally suggest you to do something known to be broken?

I don't know what you mean. kbproto[abi_x86_32] isn't known to be
broken. You're asking a really weird question based on some implicit
context that's not available to me.

I'm claiming in this example that attempting to emerge
libXt[abi_x86_32], portage should tell you that abi_x86_32 should be
set for kbproto, rather than telling you to unset abi_x86_32 for libXt
(which you're requesting to be emerged, damn it!).

> It is clear from the output how it wants the dependency to be; so, if
> you want to do something different, you can and the output tells enough.
>
> Due to the complexity of the dependency, you will need `man 5 ebuild`
> though; (-) means to assume it as disabled if it doesn't exist.
>
>> Portage prints other things intelligently:
>>
>> mattst88@dynamic71 ~ % FEATURES=test emerge dev-python/py -vp
>>
>> These are the packages that would be merged, in order:
>>
>> Calculating dependencies... done!
>>
>>
>> [nomerge       ] dev-python/py-1.4.13  USE="{test}"
>> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
>> (-python3_3)"
>> [ebuild  N     ]  dev-python/pytest-2.3.5  USE="{test} -doc"
>> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
>> (-python3_3)" 417 kB
>> [ebuild  N     ]   dev-python/py-1.4.13  USE="{test}"
>> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
>> (-python3_3)" 185 kB
>>
>> Total: 2 packages (2 new), Size of downloads: 602 kB
>>
>>  * Error: circular dependencies:
>>
>> (dev-python/py-1.4.13::gentoo, ebuild scheduled for merge) depends on
>>  (dev-python/pytest-2.3.5::gentoo, ebuild scheduled for merge)
>> (buildtime) (dev-python/py-1.4.13::gentoo, ebuild scheduled for
>> merge) (buildtime)
>>
>> It might be possible to break this cycle
>> by applying the following change:
>> - dev-python/py-1.4.13 (Change USE: -test)
>>
>> Note that this change can be reverted, once the package has been
>> installed.
>
> This is just like how you can't compile gcc without having compiled gcc
> with another compiler first (or used a binpkg, or obtained from stage3);
> thus, similarly, you can't test py without having pytest first etc...

I don't think you understood my intention for giving this example.
Portage correctly figures out the proper solution and suggests it. I'm
saying that this is a good thing.


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 21:09         ` Peter Stuge
@ 2013-11-15 21:27           ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 21:27 UTC (permalink / raw
  To: peter; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 22:09:04 +0100
Peter Stuge <peter@stuge.se> wrote:

> Tom Wijsman wrote:
> > Does replacing this "explicit behavior" by "implicit behavior" make
> > sense for the users in general?
> 
> Please don't warp the words. Maybe I misunderstand, but it seems like
> that's what you're doing.
> 
> I'll try to clarify:
> 
> With explicit I was refering to allowing manual setting and unsetting
> of USE flags, keywords and masks.
> 
> With implicit I was refering to those same things happening
> automatically. USE flags set or unset automatically, keywords set or
> unset automatically, masks set or unset automatically - as a result
> of something or other.
> 
> Any such automations significantly diminish the value of the explicit
> knobs and are counter-intuitive.

"implicit" in the context of this sub thread is it being present as
part of another choice, whereas "explicit" makes it a separate choice.
Currently the behavior is explicit because you have to break the
dependency cycle yourself and decide how to, whereas making it implicit
would solve it; in one or another particular way you'd be unaware of.

> If someone is given a mechanism to control which USE flags are set or
> unset then it's just stupid to go "around" those settings.

This example was about a circular dependency, not about USE flags.

> I understand the temptation to make things happen automatically for
> ease of development, and that is perfectly fine as long as those
> automations aren't exposed to users.

And that's the question, it is the hard part of figuring it out... :)

(To be clear: In the context of the sub thread answering the example.)

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 21:21         ` Matt Turner
@ 2013-11-15 21:38           ` Tom Wijsman
  2013-11-15 21:45             ` Matt Turner
  2013-11-15 21:57             ` Peter Stuge
  0 siblings, 2 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 21:38 UTC (permalink / raw
  To: mattst88; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 13:21:53 -0800
Matt Turner <mattst88@gentoo.org> wrote:

> On Fri, Nov 15, 2013 at 12:53 PM, Tom Wijsman <TomWij@gentoo.org>
> wrote:
> > On Fri, 15 Nov 2013 12:25:47 -0800
> > Matt Turner <mattst88@gentoo.org> wrote:
> >
> >> On Fri, Nov 15, 2013 at 12:00 PM, Tom Wijsman <TomWij@gentoo.org>
> >> wrote:
> >> Imagine I had simply forgotten to unmask the abi_x86_32 USE flag
> >> for kbproto but was attempting to emerge unstable (or unmasked
> >> abi_x86_32) libXt. In fact, if I un-unmask kbproto (so that
> >> abi_x86_32 is masked), unmerge kbproto and attempt to emerge libXt:
> >>
> >> [...]
> >>
> >> emerge: there are no ebuilds built with USE flags to satisfy
> >> "x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]".
> >> !!! One of the following packages is required to complete your
> >> request:
> >> - x11-libs/libXt-1.1.4::gentoo (Change USE: -abi_x86_32)
> >> (dependency required by "x11-libs/libXt-1.1.4" [ebuild])
> >> (dependency required by "libXt" [argument])
> >>
> >> It suggests that I turn off abi_x86_32 for libXt rather than
> >> telling me to turn the flag on for kbproto!
> >
> > Why should it literally suggest you to do something known to be
> > broken?
> 
> I don't know what you mean. kbproto[abi_x86_32] isn't known to be
> broken. You're asking a really weird question based on some implicit
> context that's not available to me.

A mask implies something is broken (or experimental).

> I'm claiming in this example that attempting to emerge
> libXt[abi_x86_32], portage should tell you that abi_x86_32 should be
> set for kbproto, rather than telling you to unset abi_x86_32 for libXt
> (which you're requesting to be emerged, damn it!).

You have to be explicit when you want broken (or experimental) things;
just emerging it isn't enough, taking a step further than that is.

I'm not sure if making broken (or experimental) things more easily
available or a suggestion would be a good idea; people already have
enough trouble as it is, adding more doesn't seem to be the right way.

> > It is clear from the output how it wants the dependency to be; so,
> > if you want to do something different, you can and the output tells
> > enough.
> >
> > Due to the complexity of the dependency, you will need `man 5
> > ebuild` though; (-) means to assume it as disabled if it doesn't
> > exist.
> >
> >> Portage prints other things intelligently:
> >>
> >> mattst88@dynamic71 ~ % FEATURES=test emerge dev-python/py -vp
> >>
> >> These are the packages that would be merged, in order:
> >>
> >> Calculating dependencies... done!
> >>
> >>
> >> [nomerge       ] dev-python/py-1.4.13  USE="{test}"
> >> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
> >> (-python3_3)"
> >> [ebuild  N     ]  dev-python/pytest-2.3.5  USE="{test} -doc"
> >> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
> >> (-python3_3)" 417 kB
> >> [ebuild  N     ]   dev-python/py-1.4.13  USE="{test}"
> >> PYTHON_TARGETS="python2_7 python3_2 (-pypy2_0) -python2_6
> >> (-python3_3)" 185 kB
> >>
> >> Total: 2 packages (2 new), Size of downloads: 602 kB
> >>
> >>  * Error: circular dependencies:
> >>
> >> (dev-python/py-1.4.13::gentoo, ebuild scheduled for merge) depends
> >> on (dev-python/pytest-2.3.5::gentoo, ebuild scheduled for merge)
> >> (buildtime) (dev-python/py-1.4.13::gentoo, ebuild scheduled for
> >> merge) (buildtime)
> >>
> >> It might be possible to break this cycle
> >> by applying the following change:
> >> - dev-python/py-1.4.13 (Change USE: -test)
> >>
> >> Note that this change can be reverted, once the package has been
> >> installed.
> >
> > This is just like how you can't compile gcc without having compiled
> > gcc with another compiler first (or used a binpkg, or obtained from
> > stage3); thus, similarly, you can't test py without having pytest
> > first etc...
> 
> I don't think you understood my intention for giving this example.
> Portage correctly figures out the proper solution and suggests it. I'm
> saying that this is a good thing.

Now the question is whether this is or isn't an opposite example;
because it might very well be intelligent, that doesn't mean that the
other example isn't intelligent. As we trying to make that clear, this
example doesn't really fit; so, I didn't assume it to be opposite.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 21:38           ` Tom Wijsman
@ 2013-11-15 21:45             ` Matt Turner
  2013-11-15 22:08               ` Tom Wijsman
  2013-11-15 21:57             ` Peter Stuge
  1 sibling, 1 reply; 111+ messages in thread
From: Matt Turner @ 2013-11-15 21:45 UTC (permalink / raw
  To: Tom Wijsman; +Cc: gentoo-dev

On Fri, Nov 15, 2013 at 1:38 PM, Tom Wijsman <TomWij@gentoo.org> wrote:
> On Fri, 15 Nov 2013 13:21:53 -0800
> Matt Turner <mattst88@gentoo.org> wrote:
>
>> On Fri, Nov 15, 2013 at 12:53 PM, Tom Wijsman <TomWij@gentoo.org>
>> wrote:
>> > On Fri, 15 Nov 2013 12:25:47 -0800
>> > Matt Turner <mattst88@gentoo.org> wrote:
>> >
>> >> On Fri, Nov 15, 2013 at 12:00 PM, Tom Wijsman <TomWij@gentoo.org>
>> >> wrote:
>> >> Imagine I had simply forgotten to unmask the abi_x86_32 USE flag
>> >> for kbproto but was attempting to emerge unstable (or unmasked
>> >> abi_x86_32) libXt. In fact, if I un-unmask kbproto (so that
>> >> abi_x86_32 is masked), unmerge kbproto and attempt to emerge libXt:
>> >>
>> >> [...]
>> >>
>> >> emerge: there are no ebuilds built with USE flags to satisfy
>> >> "x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]".
>> >> !!! One of the following packages is required to complete your
>> >> request:
>> >> - x11-libs/libXt-1.1.4::gentoo (Change USE: -abi_x86_32)
>> >> (dependency required by "x11-libs/libXt-1.1.4" [ebuild])
>> >> (dependency required by "libXt" [argument])
>> >>
>> >> It suggests that I turn off abi_x86_32 for libXt rather than
>> >> telling me to turn the flag on for kbproto!
>> >
>> > Why should it literally suggest you to do something known to be
>> > broken?
>>
>> I don't know what you mean. kbproto[abi_x86_32] isn't known to be
>> broken. You're asking a really weird question based on some implicit
>> context that's not available to me.
>
> A mask implies something is broken (or experimental).

Then to answer your previous question: it would suggest it [something
broken, according to you] because you've asked for something broken
that depends on it!

>> I'm claiming in this example that attempting to emerge
>> libXt[abi_x86_32], portage should tell you that abi_x86_32 should be
>> set for kbproto, rather than telling you to unset abi_x86_32 for libXt
>> (which you're requesting to be emerged, damn it!).
>
> You have to be explicit when you want broken (or experimental) things;
> just emerging it isn't enough, taking a step further than that is.

I'm explicitly saying that I want libXt with USE=abi_x86_32.
Suggesting that I turn it off is kind of ridiculous, don't you think?

This seems pretty clear cut. Are you just jerking me around now?


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 21:38           ` Tom Wijsman
  2013-11-15 21:45             ` Matt Turner
@ 2013-11-15 21:57             ` Peter Stuge
  2013-11-15 22:13               ` Tom Wijsman
  1 sibling, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-15 21:57 UTC (permalink / raw
  To: gentoo-dev

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

Tom Wijsman wrote:
> I'm not sure if making broken (or experimental) things more easily
> available or a suggestion would be a good idea; people already have
> enough trouble as it is, adding more doesn't seem to be the right way.

It's not about broken/experimental, it's about the logical
consequences of an explicit action taken by the user.

The user must get feedback based on what they said that they wanted
to do, not based on what is experimental.

Mentioning that something is experimental is an optional bonus, but
assuming that the user already knows that this is the case is OK too.


portage should say, with as similar wording as possible:

"If you want to emerge libXt with those USE flags then you'll also
have to set those same USE flags for libYt and libZt because libXt
DEPENDs on them."


Bonus points:

"Would you like me to set those USE flags for libYt and libZt for
you? [Y/n]"


//Peter

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 21:45             ` Matt Turner
@ 2013-11-15 22:08               ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 22:08 UTC (permalink / raw
  To: mattst88; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 13:45:29 -0800
Matt Turner <mattst88@gentoo.org> wrote:

> On Fri, Nov 15, 2013 at 1:38 PM, Tom Wijsman <TomWij@gentoo.org>
> wrote:
> > On Fri, 15 Nov 2013 13:21:53 -0800
> > Matt Turner <mattst88@gentoo.org> wrote:
> >
> >> On Fri, Nov 15, 2013 at 12:53 PM, Tom Wijsman <TomWij@gentoo.org>
> >> wrote:
> >> > On Fri, 15 Nov 2013 12:25:47 -0800
> >> > Matt Turner <mattst88@gentoo.org> wrote:
> >> >
> >> >> On Fri, Nov 15, 2013 at 12:00 PM, Tom Wijsman
> >> >> <TomWij@gentoo.org> wrote:
> >> >> Imagine I had simply forgotten to unmask the abi_x86_32 USE flag
> >> >> for kbproto but was attempting to emerge unstable (or unmasked
> >> >> abi_x86_32) libXt. In fact, if I un-unmask kbproto (so that
> >> >> abi_x86_32 is masked), unmerge kbproto and attempt to emerge
> >> >> libXt:
> >> >>
> >> >> [...]
> >> >>
> >> >> emerge: there are no ebuilds built with USE flags to satisfy
> >> >> "x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?]".
> >> >> !!! One of the following packages is required to complete your
> >> >> request:
> >> >> - x11-libs/libXt-1.1.4::gentoo (Change USE: -abi_x86_32)
> >> >> (dependency required by "x11-libs/libXt-1.1.4" [ebuild])
> >> >> (dependency required by "libXt" [argument])
> >> >>
> >> >> It suggests that I turn off abi_x86_32 for libXt rather than
> >> >> telling me to turn the flag on for kbproto!
> >> >
> >> > Why should it literally suggest you to do something known to be
> >> > broken?
> >>
> >> I don't know what you mean. kbproto[abi_x86_32] isn't known to be
> >> broken. You're asking a really weird question based on some
> >> implicit context that's not available to me.
> >
> > A mask implies something is broken (or experimental).
> 
> Then to answer your previous question: it would suggest it [something
> broken, according to you] because you've asked for something broken
> that depends on it!

Because a maintainer or achitecture team forgot to cover that case and
didn't check on reverse dependencies, which is another case; but even
in this case Portage handles well, as it suggests to step away from the
brokenness.

> >> I'm claiming in this example that attempting to emerge
> >> libXt[abi_x86_32], portage should tell you that abi_x86_32 should
> >> be set for kbproto, rather than telling you to unset abi_x86_32
> >> for libXt (which you're requesting to be emerged, damn it!).
> >
> > You have to be explicit when you want broken (or experimental)
> > things; just emerging it isn't enough, taking a step further than
> > that is.
> 
> I'm explicitly saying that I want libXt with USE=abi_x86_32.
> Suggesting that I turn it off is kind of ridiculous, don't you think?

In your case, yes. In general, no; if you suggest to do this to anyone
instead of just the small few that want it, it would encourage people
to override what we mark as broken and that is a recipe for disaster.

> This seems pretty clear cut. Are you just jerking me around now?

For your case it could be made better, but as this very same output
gets the eyes of people with other intentions; we can't just outright
apply it that way and break systems, we have to satisfy most parties.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 21:57             ` Peter Stuge
@ 2013-11-15 22:13               ` Tom Wijsman
  2013-11-15 22:26                 ` Peter Stuge
  0 siblings, 1 reply; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 22:13 UTC (permalink / raw
  To: peter; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 22:57:06 +0100
Peter Stuge <peter@stuge.se> wrote:

> Tom Wijsman wrote:
> > I'm not sure if making broken (or experimental) things more easily
> > available or a suggestion would be a good idea; people already have
> > enough trouble as it is, adding more doesn't seem to be the right
> > way.
> 
> It's not about broken/experimental, it's about the logical
> consequences of an explicit action taken by the user.
> 
> The user must get feedback based on what they said that they wanted
> to do, not based on what is experimental.
> 
> Mentioning that something is experimental is an optional bonus, but
> assuming that the user already knows that this is the case is OK too.

The * in the USE flag list marks this.

> portage should say, with as similar wording as possible:
> 
> "If you want to emerge libXt with those USE flags then you'll also
> have to set those same USE flags for libYt and libZt because libXt
> DEPENDs on them."
> 
> Bonus points:
> 
> "Would you like me to set those USE flags for libYt and libZt for
> you? [Y/n]"

Which part of this warns the user that the user is about to run into
something broken / experimental? We need to add that too, because it is
not clear from the output that you suggest. And if we add that as well,
it gets to be quite long; how would we condense that?

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 22:13               ` Tom Wijsman
@ 2013-11-15 22:26                 ` Peter Stuge
  2013-11-15 22:58                   ` Tom Wijsman
  0 siblings, 1 reply; 111+ messages in thread
From: Peter Stuge @ 2013-11-15 22:26 UTC (permalink / raw
  To: gentoo-dev

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

Tom Wijsman wrote:
> > portage should say, with as similar wording as possible:
> > 
> > "If you want to emerge libXt with those USE flags then you'll also
> > have to set those same USE flags for libYt and libZt because libXt
> > DEPENDs on them."
> > 
> > Bonus points:
> > 
> > "Would you like me to set those USE flags for libYt and libZt for
> > you? [Y/n]"
> 
> Which part of this warns the user that the user is about to run into
> something broken / experimental? We need to add that too, because it is
> not clear from the output that you suggest. And if we add that as well,
> it gets to be quite long;

It gets one word longer:

"If you want to emerge libXt with those experimental USE flags then
you'll also have to set those same USE flags for libYt and libZt
because libXt DEPENDs on them."


> how would we condense that?

If something is a bit complicated then a bit more verbosity can be
really good.


//Peter

[-- Attachment #2: Type: application/pgp-signature, Size: 190 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15  6:53                     ` Ben de Groot
  2013-11-15  7:13                       ` Ulrich Mueller
  2013-11-15 13:33                       ` Rich Freeman
@ 2013-11-15 22:39                       ` Michał Górny
  2013-11-15 23:06                         ` Tom Wijsman
  2013-11-16  8:22                         ` Pacho Ramos
  2 siblings, 2 replies; 111+ messages in thread
From: Michał Górny @ 2013-11-15 22:39 UTC (permalink / raw
  To: gentoo-dev; +Cc: yngwin

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

Dnia 2013-11-15, o godz. 14:53:00
Ben de Groot <yngwin@gentoo.org> napisał(a):

> As I see it now, with respect to multilib, we have three competing
> solutions, but not a clear direction which way we want to go as a
> distro:
> 
> 1: emul-* packages
> 2: multilib-portage
> 3: multilib.eclass
> 
> I would like to vote for option 1, as it is the least intrusive and
> does what we need. If it is really felt we need a more complete
> solution, then my vote would be for 2, since 3 is too intrusive and
> more likely to break or complicate stuff for normal users.
> 
> If you say council should take more of a leadership role, then maybe
> this issue can be decided by council and a clear direction be taken by
> the distro as a whole? Then those who oppose the choice made can
> either put up or shut up, and we can all work at implementing the
> chosen solution.

And what does, say, a Council decision change? Sure, Council can affect
opinions of some developers and so on but this is something that needs
real work, not talking and deciding. Sure, you can convince
the developers that X is better than Y but you also need to find
someone who will actually work on X.

And I think the actual work done by *different* people shows which
solution is most preferred by the community. This is not something that
judges whether it's the best one, but probably it'll the most
maintainable one. Think of bus factor.

About your list, let's first note that emul-linux are not dead. We're
working on getting a replacement but we aren't dumping them yet
and we're actively encouraging developers to use any-of deps to support
both multilib packages and emul-linux. As you probably have seen,
emul-linux even had an update recently.

On the other hand, let's be honest -- emul-linux are basically
single-handedly maintained by Pacho. I can't talk for him but if you
really want to keep that supported long-term, you need to find people
who are going to work on them actively.

I don't know the exact number of people actively working
on multilib-portage but I haven't seen any progress on getting all
the formal stuff done. And remember that this particular idea requires
much more work since it assumes the spec becoming part of immutable
EAPI -- getting it all right, extensive testing, considering all the
corner cases, etc.

One thing I can tell is that gx86-multilib is getting the widest
support of all the solutions. It has most active developers, most
active helping users and some support from random developers that just
maintain their packages. It requires less work on the formal side,
and gets better testing for the simple reason that you need to do it
per-package.

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 22:26                 ` Peter Stuge
@ 2013-11-15 22:58                   ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 22:58 UTC (permalink / raw
  To: peter; +Cc: gentoo-dev

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

On Fri, 15 Nov 2013 23:26:57 +0100
Peter Stuge <peter@stuge.se> wrote:

> Tom Wijsman wrote:
> > > portage should say, with as similar wording as possible:
> > > 
> > > "If you want to emerge libXt with those USE flags then you'll also
> > > have to set those same USE flags for libYt and libZt because libXt
> > > DEPENDs on them."
> > > 
> > > Bonus points:
> > > 
> > > "Would you like me to set those USE flags for libYt and libZt for
> > > you? [Y/n]"
> > 
> > Which part of this warns the user that the user is about to run into
> > something broken / experimental? We need to add that too, because
> > it is not clear from the output that you suggest. And if we add
> > that as well, it gets to be quite long;
> 
> It gets one word longer:
> 
> "If you want to emerge libXt with those experimental USE flags then
> you'll also have to set those same USE flags for libYt and libZt
> because libXt DEPENDs on them."

By making it a single word its true meaning is hidden; broken or
experimental are just two possible meanings, there are others (eg.
security masks). I think we will want to be more explicit here.

> > how would we condense that?
> 
> If something is a bit complicated then a bit more verbosity can be
> really good.

Extra words and verbosity's relationship depends on which extra words
and what verbosity that one aims to achieve; so, it might be possible
to condense this without making a change in verbosity, or even add
verbosity by reaching more with less output (in processable list form):

    emerge: there are no ebuilds built with USE flags to satisfy
    "x11-proto/kbproto[abi_x86_32]".
    (dependency required by "x11-libs/libXt-1.1.4" [ebuild])
    (dependency required by "libXt" [argument])
    because of default/linux/amd64/13.0/package.use.stable.mask:1:

        # Ian Stakenvicius <axs@gentoo.org> (20 Sep 2013)
        # on behalf of gx86-multilib project <multilib@gentoo.org>
        # Mask abi_x86_32 on stable until emul-* packages are made
        # fully redundant and end-user experience in resolving
        # flag changes and blockages is generally smooth.
        # Please keep in sync with hardened/linux/amd64.
        x11-proto/kbproto abi_x86_32

    Unmask at your own risk or set x11-libs/libXt[-abi_x86_32].

This is similar to the package.mask output.

(Automatic config writing behavior would indeed be nice to have.)

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 22:39                       ` Michał Górny
@ 2013-11-15 23:06                         ` Tom Wijsman
  2013-11-16  8:22                         ` Pacho Ramos
  1 sibling, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-15 23:06 UTC (permalink / raw
  To: gentoo-dev

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

On Fri, 15 Nov 2013 23:39:34 +0100
Michał Górny <mgorny@gentoo.org> wrote:

> Dnia 2013-11-15, o godz. 14:53:00
> Ben de Groot <yngwin@gentoo.org> napisał(a):
> 
> > As I see it now, with respect to multilib, we have three competing
> > solutions, but not a clear direction which way we want to go as a
> > distro:
> > 
> > 1: emul-* packages
> > 2: multilib-portage
> > 3: multilib.eclass
> > 
> > I would like to vote for option 1, as it is the least intrusive and
> > does what we need. If it is really felt we need a more complete
> > solution, then my vote would be for 2, since 3 is too intrusive and
> > more likely to break or complicate stuff for normal users.
> > 
> > If you say council should take more of a leadership role, then maybe
> > this issue can be decided by council and a clear direction be taken
> > by the distro as a whole? Then those who oppose the choice made can
> > either put up or shut up, and we can all work at implementing the
> > chosen solution.
> 
> And what does, say, a Council decision change? Sure, Council can
> affect opinions of some developers and so on but this is something
> that needs real work, not talking and deciding. Sure, you can convince
> the developers that X is better than Y but you also need to find
> someone who will actually work on X.
> 
> And I think the actual work done by *different* people shows which
> solution is most preferred by the community. This is not something
> that judges whether it's the best one, but probably it'll the most
> maintainable one. Think of bus factor.

This is comparable to survival of the fittest; you can't just pick an
animal and have it be a success in a circus, you'd need to careful to
see which animal is fit for it and learn it all the tricks. Only then
people will come, watch and come back later...

(Cirque du Soleil thinks outside of the box and doesn't use animals)

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 22:39                       ` Michał Górny
  2013-11-15 23:06                         ` Tom Wijsman
@ 2013-11-16  8:22                         ` Pacho Ramos
  2013-11-16 10:57                           ` Thomas Sachau
  2013-11-16 12:39                           ` [gentoo-dev] " Martin Vaeth
  1 sibling, 2 replies; 111+ messages in thread
From: Pacho Ramos @ 2013-11-16  8:22 UTC (permalink / raw
  To: gentoo-dev

El vie, 15-11-2013 a las 23:39 +0100, Michał Górny escribió:
> Dnia 2013-11-15, o godz. 14:53:00
> Ben de Groot <yngwin@gentoo.org> napisał(a):
> 
> > As I see it now, with respect to multilib, we have three competing
> > solutions, but not a clear direction which way we want to go as a
> > distro:
> > 
> > 1: emul-* packages

This is the current option but has important drawbacks:
- Each emul set contains a ton of packages, then, when a security issue
arises in one of them, we need to release a new emul-linux-x86-...
- It's built from stable tree, it can then cause inconsistencies when
people run native lib from testing (I remember pulseaudio case)
- If we would like to really follow stabilized packages, we would nearly
need to generate a new set every week because likely some of the
contained packages will be stabilized on x86 so often.
- As they are a big set of packages, people need to install a lot of
stuff they don't really need

In summary -> they are completely unflexible, with the problems it cause

> > 2: multilib-portage

I think this has been discussed multiple times, if I don't misremember,
PMS team is not willing to accept it until the specification is done...
and we are waiting for that for years probably because it includes a lot
of changes (well, Tommy will know much more about this)

> > 3: multilib.eclass
> > 

This is my preferred solution 



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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16  8:22                         ` Pacho Ramos
@ 2013-11-16 10:57                           ` Thomas Sachau
  2013-11-17 16:09                             ` hasufell
  2013-11-17 16:52                             ` Ciaran McCreesh
  2013-11-16 12:39                           ` [gentoo-dev] " Martin Vaeth
  1 sibling, 2 replies; 111+ messages in thread
From: Thomas Sachau @ 2013-11-16 10:57 UTC (permalink / raw
  To: gentoo-dev

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

Pacho Ramos schrieb:
> El vie, 15-11-2013 a las 23:39 +0100, Michał Górny escribió:
>> Dnia 2013-11-15, o godz. 14:53:00
>> Ben de Groot <yngwin@gentoo.org> napisał(a):
>>
>>> As I see it now, with respect to multilib, we have three competing
>>> solutions, but not a clear direction which way we want to go as a
>>> distro:
>>>
>>> 1: emul-* packages
> 
> This is the current option but has important drawbacks:
> - Each emul set contains a ton of packages, then, when a security issue
> arises in one of them, we need to release a new emul-linux-x86-...
> - It's built from stable tree, it can then cause inconsistencies when
> people run native lib from testing (I remember pulseaudio case)
> - If we would like to really follow stabilized packages, we would nearly
> need to generate a new set every week because likely some of the
> contained packages will be stabilized on x86 so often.
> - As they are a big set of packages, people need to install a lot of
> stuff they don't really need
> 
> In summary -> they are completely unflexible, with the problems it cause
> 
>>> 2: multilib-portage
> 
> I think this has been discussed multiple times, if I don't misremember,
> PMS team is not willing to accept it until the specification is done...
> and we are waiting for that for years probably because it includes a lot
> of changes (well, Tommy will know much more about this)

Ever tried to write a formal spec in a foreing language? Creating
multilib-portage was easier then this request....

Anyway, the new multilib eclasses had no entrance barrier, so have been
added and effectively everyone is forced to use them.

Since i dont expect anyone to vote for a different solution in the
future, which would force all multilib related parts to be rewritten, i
stopped my work on the spec part.
If anyone wants to continue that road, i can hand over any pieces i
already have.

Instead i will simply prepare/maintain multilib-portage as a
portage-only package manager based multilib solution, which requires no
changes to ebuilds. This also keeps a choice for users, who cant or dont
want to convert all needed ebuilds to the new multilib eclasses.


-- 

Thomas Sachau
Gentoo Linux Developer


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 379 bytes --]

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16  8:22                         ` Pacho Ramos
  2013-11-16 10:57                           ` Thomas Sachau
@ 2013-11-16 12:39                           ` Martin Vaeth
  2013-11-16 12:46                             ` Michał Górny
                                               ` (2 more replies)
  1 sibling, 3 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-16 12:39 UTC (permalink / raw
  To: gentoo-dev

Pacho Ramos <pacho@gentoo.org> wrote:
>
>> > 3: multilib.eclass
>> >
>
> This is my preferred solution

However, it has some serious drawbacks; most importantly:
It implies that the same USE-flags must be used for the
native and 32-bit variant.

This is really a severe restriction since the motivation
for installation can be very different for these variants.
For instance, for a native ffmpeg the user might want support
for a lot of codecs/devices while for the 32 bit variant
the user might want only support for those codecs/devices
which are needed for some special application. Nevertheless,
the same useflags mean that he has to build the same
(with all implied dependencies) also for 32 bit.

Currently, this particular example is not so bad, since
currently de facto ffmpeg:0.10 is the 32 bit version while
ffmpeg:0 is the native version, and so the useflags can differ.
However, it seems more like an accident that this does not occur
here, in the moment.

A "cleaner" solution would somehow treat the 32bit and
64bit variant like separate packages, each having its
own set of USE-Flags, and also the possibility to rebuild
one without rebuilding the other. AFAIK multilib-portage
can do this.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:18       ` [gentoo-dev] " Martin Vaeth
  2013-11-15 20:22         ` Peter Stuge
@ 2013-11-16 12:46         ` Andreas K. Huettel
  2013-11-17 17:04           ` Martin Vaeth
  2013-11-16 12:50         ` Andreas K. Huettel
  2 siblings, 1 reply; 111+ messages in thread
From: Andreas K. Huettel @ 2013-11-16 12:46 UTC (permalink / raw
  To: gentoo-dev

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

Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:

> If this is not very hard to implement in portage, I would
> strongly vote to remove this implicit connection:

Not really doable since this is explicitly defined as such in EAPI=5 PMS.

Retroactively changing PMS is probably not a good idea.

-- 
Andreas K. Huettel
Gentoo Linux developer (council, kde)
dilfridge@gentoo.org
http://www.akhuettel.de/

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 12:39                           ` [gentoo-dev] " Martin Vaeth
@ 2013-11-16 12:46                             ` Michał Górny
  2013-11-16 20:24                             ` Kent Fredric
  2013-11-16 22:52                             ` Duncan
  2 siblings, 0 replies; 111+ messages in thread
From: Michał Górny @ 2013-11-16 12:46 UTC (permalink / raw
  To: gentoo-dev; +Cc: vaeth

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

Dnia 2013-11-16, o godz. 12:39:37
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisał(a):

> Pacho Ramos <pacho@gentoo.org> wrote:
> >
> >> > 3: multilib.eclass
> >> >
> >
> > This is my preferred solution
> 
> However, it has some serious drawbacks; most importantly:
> It implies that the same USE-flags must be used for the
> native and 32-bit variant.

We are aware of that. However, there were no solution proposed that
wouldn't make the things horribly complex.

> A "cleaner" solution would somehow treat the 32bit and
> 64bit variant like separate packages, each having its
> own set of USE-Flags, and also the possibility to rebuild
> one without rebuilding the other. AFAIK multilib-portage
> can do this.

Really? Last time I checked it didn't have that option. Unless you mean
theoretically...

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-15 20:18       ` [gentoo-dev] " Martin Vaeth
  2013-11-15 20:22         ` Peter Stuge
  2013-11-16 12:46         ` Andreas K. Huettel
@ 2013-11-16 12:50         ` Andreas K. Huettel
  2013-11-16 12:58           ` Michał Górny
  2 siblings, 1 reply; 111+ messages in thread
From: Andreas K. Huettel @ 2013-11-16 12:50 UTC (permalink / raw
  To: gentoo-dev

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

Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:

> Probably a lot of the confusion could be avoided if
> /etc/portage/package.accept_keywords would not implicitly
> unmask useflags.

How would you handle the case if a package has only one version in portage and 
that one is stable? 

Just completely disable the features provided by stable.masked useflags?

Force the existence of a revbump with an extra rebuild, just so there's an 
unstable version around?

Believe me, we've been thinking about this...

-- 
Andreas K. Huettel
Gentoo Linux developer (council, kde)
dilfridge@gentoo.org
http://www.akhuettel.de/

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 12:50         ` Andreas K. Huettel
@ 2013-11-16 12:58           ` Michał Górny
  2013-11-17 18:13             ` Andreas K. Huettel
  0 siblings, 1 reply; 111+ messages in thread
From: Michał Górny @ 2013-11-16 12:58 UTC (permalink / raw
  To: gentoo-dev; +Cc: dilfridge

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

Dnia 2013-11-16, o godz. 13:50:11
"Andreas K. Huettel" <dilfridge@gentoo.org> napisał(a):

> Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
> 
> > Probably a lot of the confusion could be avoided if
> > /etc/portage/package.accept_keywords would not implicitly
> > unmask useflags.
> 
> How would you handle the case if a package has only one version in portage and 
> that one is stable? 

Unmask it through use.stable.mask and package.use.stable.mask
in /etc/portage/profile?

Then we clear separation between masked packages and masked flags.

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 12:39                           ` [gentoo-dev] " Martin Vaeth
  2013-11-16 12:46                             ` Michał Górny
@ 2013-11-16 20:24                             ` Kent Fredric
  2013-11-16 21:52                               ` Michał Górny
  2013-11-16 22:52                             ` Duncan
  2 siblings, 1 reply; 111+ messages in thread
From: Kent Fredric @ 2013-11-16 20:24 UTC (permalink / raw
  To: gentoo-dev

On 17 November 2013 01:39, Martin Vaeth
<vaeth@mathematik.uni-wuerzburg.de> wrote:
>
> This is really a severe restriction since the motivation
> for installation can be very different for these variants.
> For instance, for a native ffmpeg the user might want support
> for a lot of codecs/devices while for the 32 bit variant
> the user might want only support for those codecs/devices
> which are needed for some special application. Nevertheless,
> the same useflags mean that he has to build the same
> (with all implied dependencies) also for 32 bit.


Imo, thats a really good point. The convenience of having 1 ebuild
support both 64bit and 32bit is sort of like a conflation of classes,
because it behaves similar to having 2 ebuilds dove-tailed into one.

Being able to specify different dependencies for different arches
seems something that would be useful, especially in the following
cases:

Imagine, an ebuild provides 32bit and 64bit implementations.

User only needs USE="a b c" for the 64bit version, but only USE="a"
for the 32bit version.

"c" however, on 32bit, needs a dependency to make it work on 32bit to
smooth over a difference.
But that dependency is unneeded on the 64bit version.

Which means that USE="arch_32 arch_64 a b c" pulls in more
dependencies than necessary to satisfy the users systems requirements.

Just the overhead work to debride it and have a seperate package, or a
seperate slot per ARCH_ABI might be more problem than its worth.

So its just a question here of which tradeoffs are more acceptable for
most of our audience.

( Yes, I'm referring to a similar question that came up the other day
as to the advantages of having <gvim> independent from <vim> and
<vim-core>, and being able to have different USE flags for each was
seen as a distinct advantage of the separation )

-- 
Kent


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 20:24                             ` Kent Fredric
@ 2013-11-16 21:52                               ` Michał Górny
  2013-11-17  0:53                                 ` Kent Fredric
  0 siblings, 1 reply; 111+ messages in thread
From: Michał Górny @ 2013-11-16 21:52 UTC (permalink / raw
  To: gentoo-dev; +Cc: kentfredric

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

Dnia 2013-11-17, o godz. 09:24:26
Kent Fredric <kentfredric@gmail.com> napisał(a):

> On 17 November 2013 01:39, Martin Vaeth
> <vaeth@mathematik.uni-wuerzburg.de> wrote:
> >
> > This is really a severe restriction since the motivation
> > for installation can be very different for these variants.
> > For instance, for a native ffmpeg the user might want support
> > for a lot of codecs/devices while for the 32 bit variant
> > the user might want only support for those codecs/devices
> > which are needed for some special application. Nevertheless,
> > the same useflags mean that he has to build the same
> > (with all implied dependencies) also for 32 bit.
> 
> 
> Imo, thats a really good point. The convenience of having 1 ebuild
> support both 64bit and 32bit is sort of like a conflation of classes,
> because it behaves similar to having 2 ebuilds dove-tailed into one.
> 
> Being able to specify different dependencies for different arches
> seems something that would be useful, especially in the following
> cases:
> 
> Imagine, an ebuild provides 32bit and 64bit implementations.
> 
> User only needs USE="a b c" for the 64bit version, but only USE="a"
> for the 32bit version.
> 
> "c" however, on 32bit, needs a dependency to make it work on 32bit to
> smooth over a difference.
> But that dependency is unneeded on the 64bit version.
> 
> Which means that USE="arch_32 arch_64 a b c" pulls in more
> dependencies than necessary to satisfy the users systems requirements.

Unless I'm misunderstanding something, you are not correct.

You can surely do something like:

  RDEPEND="abi_x86_32? ( dev-libs/c[abi_x86_32(-)] )"

(and a matching multilib_src_configure)

> Just the overhead work to debride it and have a seperate package, or a
> seperate slot per ARCH_ABI might be more problem than its worth.
> 
> So its just a question here of which tradeoffs are more acceptable for
> most of our audience.

You mean having N forks where N is the number of ABIs (3 for x86 + 3
for mips currently). You will need to mask some (or all) of them for
other arches, and so on. Then we may want to add support for another
multilib arch/ABI...

-- 
Best regards,
Michał Górny

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

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 12:39                           ` [gentoo-dev] " Martin Vaeth
  2013-11-16 12:46                             ` Michał Górny
  2013-11-16 20:24                             ` Kent Fredric
@ 2013-11-16 22:52                             ` Duncan
  2 siblings, 0 replies; 111+ messages in thread
From: Duncan @ 2013-11-16 22:52 UTC (permalink / raw
  To: gentoo-dev

Martin Vaeth posted on Sat, 16 Nov 2013 12:39:37 +0000 as excerpted:

> A "cleaner" solution would somehow treat the 32bit and 64bit variant
> like separate packages, each having its own set of USE-Flags, and also
> the possibility to rebuild one without rebuilding the other. AFAIK
> multilib-portage can do this.

I'm not sure about multlib-portage, but the chroot option certainly 
treats them as separate packages, each with its own config, because 
that's exactly what they are, there! =:^)

-- 
Duncan - List replies preferred.   No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master."  Richard Stallman



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 21:52                               ` Michał Górny
@ 2013-11-17  0:53                                 ` Kent Fredric
  0 siblings, 0 replies; 111+ messages in thread
From: Kent Fredric @ 2013-11-17  0:53 UTC (permalink / raw
  To: Michał Górny; +Cc: gentoo-dev

On 17 November 2013 10:52, Michał Górny <mgorny@gentoo.org> wrote:
> Unless I'm misunderstanding something, you are not correct.
>
> You can surely do something like:
>
>   RDEPEND="abi_x86_32? ( dev-libs/c[abi_x86_32(-)] )"


It was more you cant do

IUSE="foo"

without doing

RDEPEND=" abi_x86_32? ( foo ? ( dev-libs/c[abi_x86_32(-)] ) )"

Because if you personally don't want foo on x32, and nothing needs foo
on x32, but you want foo on x64 , you have to have foo on x32 as well.

In that, if you specify USE="foo", the useflag will uncontrollably
apply to all ABIs that support that.

And you can't circumvent that without having something insane like
IUSE="foo_x86 foo_amd64 "

So if you wanted:
   package ABI= x86 USE= -foo
   package ABI= amd64 USE=foo

You cannot, you can only have

   package ABIs = x86, amd64, USE=foo

or

   package ABIS = x86,amd64, USE-foo

And this means if you didn't want foo on x86, you get it anyway, and
you get the unnecessary dep to support something you didn't want or
need.


-- 
Kent


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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-13 21:22                 ` Kent Fredric
@ 2013-11-17 10:20                   ` Sergey Popov
  0 siblings, 0 replies; 111+ messages in thread
From: Sergey Popov @ 2013-11-17 10:20 UTC (permalink / raw
  To: gentoo-dev

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

14.11.2013 01:22, Kent Fredric пишет:
> +1 to that, I was going to suggest something similar to help explain
> what "~(foo)" means at least till people get used to it
> 
> e.g.
> ---
> The Following Use Flags were user set, but ignored due to stability masks:
>    dev-baz/quux: +foo -bar +baz
> 
> man emerge and grep for "stable use masks"
> ---
> 
> Or something. Maybe only shown with -v , or something so its not too
> annoying if users are ok with ignoring it.
> 

I like this idea too!

-- 
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop-effects project lead
Gentoo Qt project lead
Gentoo Proxy maintainers project lead


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 555 bytes --]

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 10:57                           ` Thomas Sachau
@ 2013-11-17 16:09                             ` hasufell
  2013-11-17 16:35                               ` Tom Wijsman
  2013-11-17 16:52                             ` Ciaran McCreesh
  1 sibling, 1 reply; 111+ messages in thread
From: hasufell @ 2013-11-17 16:09 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/16/2013 11:57 AM, Thomas Sachau wrote:
> Pacho Ramos schrieb:
>> El vie, 15-11-2013 a las 23:39 +0100, Michał Górny escribió:
>>> Dnia 2013-11-15, o godz. 14:53:00 Ben de Groot
>>> <yngwin@gentoo.org> napisał(a):
>>> 
>>>> As I see it now, with respect to multilib, we have three
>>>> competing solutions, but not a clear direction which way we
>>>> want to go as a distro:
>>>> 
>>>> 1: emul-* packages
>> 
>> This is the current option but has important drawbacks: - Each
>> emul set contains a ton of packages, then, when a security issue 
>> arises in one of them, we need to release a new
>> emul-linux-x86-... - It's built from stable tree, it can then
>> cause inconsistencies when people run native lib from testing (I
>> remember pulseaudio case) - If we would like to really follow
>> stabilized packages, we would nearly need to generate a new set
>> every week because likely some of the contained packages will be
>> stabilized on x86 so often. - As they are a big set of packages,
>> people need to install a lot of stuff they don't really need
>> 
>> In summary -> they are completely unflexible, with the problems
>> it cause
>> 
>>>> 2: multilib-portage
>> 
>> I think this has been discussed multiple times, if I don't
>> misremember, PMS team is not willing to accept it until the
>> specification is done... and we are waiting for that for years
>> probably because it includes a lot of changes (well, Tommy will
>> know much more about this)
> 
> Ever tried to write a formal spec in a foreing language? Creating 
> multilib-portage was easier then this request....
> 
> Anyway, the new multilib eclasses had no entrance barrier, so have
> been added and effectively everyone is forced to use them.
> 
> Since i dont expect anyone to vote for a different solution in the 
> future, which would force all multilib related parts to be
> rewritten, i stopped my work on the spec part. If anyone wants to
> continue that road, i can hand over any pieces i already have.
> 
> Instead i will simply prepare/maintain multilib-portage as a 
> portage-only package manager based multilib solution, which
> requires no changes to ebuilds. This also keeps a choice for users,
> who cant or dont want to convert all needed ebuilds to the new
> multilib eclasses.
> 
> 


multilib eclasses as a whole were a big failure, both for users
(enough examples given here) and for developers (cause it requires
understanding the eclasses).

You should keep working on the spec, so we might be able to remove
that crap some day.


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSiOomAAoJEFpvPKfnPDWzTRUH/j5tWONLBh1bxCrsayrztYqn
GbK7Fz8RBTnkoJhmYX8InKh8USEyCY9fkRcxWgF2rcF801u8hhFwpXEzf5kTISMb
ctshmuyY5pS8e9IavyYY6VOTGmT2p9rxMpBVoDMn6Jf3hDwA2T/cY+W/QE1UGPF2
WVmdUAGFjPEaVJzMkgEgkCtoPhlqmPpHXrmhMKUvMNOtTdyNKSpqy+/ViUSZPp+J
zkHg3UyO5ROF0OTgXJLFT4gx+yR85b8IHrBdcfoAXFaAw7AU1ycJuZ2zHDCgzcjC
X4YTdSDoUAbxUpXf3cab13wRnudsGDUPfXD8lIb/20aPHnkKgjlHl+Otp3AnYco=
=tTTR
-----END PGP SIGNATURE-----


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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 16:09                             ` hasufell
@ 2013-11-17 16:35                               ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-17 16:35 UTC (permalink / raw
  To: hasufell; +Cc: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, 17 Nov 2013 17:09:10 +0100
hasufell <hasufell@gentoo.org> wrote:

> multilib eclasses as a whole were a big failure, both for users
> (enough examples given here)

You mean those failures where they mix branches and thus cause blockers
between the old and new approach? Those failures have nothing to do
with multilib eclasses, but rather by not understanding Portage's
complexity; it works for me and I don't see a problem, I don't mix.

> for developers (cause it requires understanding the eclasses).

Are you able to contribute anything without understanding any eclass?

> You should keep working on the spec, so we might be able to remove
> that crap some day.

Maybe, maybe not; you are replacing complexity by other complexity, now
the real question is rather where we want this complexity to be.

Multilib eclasses make bugs explicit and thus easier to find and fix.

Multilib Portage takes bugs away from the eclasses and ebuilds such that
they sit in Portage; this can be an advantage or disadvantage depending
on how you look at it, but it however does mean that this need continued
maintenance after this feature has been added to Portage.

With the lower Portage development activity, is that a viable option?

- -- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJSiPBTAAoJEJWyH81tNOV9QzcH/jS0X0nSCZRhPXYbwRr6xuBg
vD5XCOwAbNHsEVfTo8kPpscvXsej4DQvvsVDGtCJEXlhO7pS4n9ArTEeeihVtgBI
hqycMrnr1cJ2IdT8KGNn+56WfgIQW9KP02gtZkfoClUzzT0kXr4zX1oVvHY7NLd6
CIFBIQHh4oUs1wHg7OkkrZeWzQJNTRs4Uws6FGIF4L3+durbvLdwmF1WN8YzayTe
6hHOWTEzAXVAeh+cnkhhaJyjmBlpUNqMNG4JZ5OO50vu18YbK5cPRvMdUws3Rsw4
NGFMaEna5JqMSUA5yevdDVzXtkZzqtZUymSFMxcm5Kt5oXPofo9zPIOh3/2tAXk=
=n44F
-----END PGP SIGNATURE-----

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

* Re: [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 10:57                           ` Thomas Sachau
  2013-11-17 16:09                             ` hasufell
@ 2013-11-17 16:52                             ` Ciaran McCreesh
  1 sibling, 0 replies; 111+ messages in thread
From: Ciaran McCreesh @ 2013-11-17 16:52 UTC (permalink / raw
  To: gentoo-dev

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

On Sat, 16 Nov 2013 11:57:23 +0100
Thomas Sachau <tommy@gentoo.org> wrote:
> >>> 2: multilib-portage
> > 
> > I think this has been discussed multiple times, if I don't
> > misremember, PMS team is not willing to accept it until the
> > specification is done... and we are waiting for that for years
> > probably because it includes a lot of changes (well, Tommy will
> > know much more about this)
> 
> Ever tried to write a formal spec in a foreing language?

You weren't asked to write a formal spec. You were asked to provide
enough information so that someone else could do that.

> Creating multilib-portage was easier then this request....

Had you kept track of what changes you made and why you made them when
writing multilib-portage, we'd not have this problem.

-- 
Ciaran McCreesh

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

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 12:46         ` Andreas K. Huettel
@ 2013-11-17 17:04           ` Martin Vaeth
  2013-11-17 17:15             ` Michał Górny
                               ` (2 more replies)
  0 siblings, 3 replies; 111+ messages in thread
From: Martin Vaeth @ 2013-11-17 17:04 UTC (permalink / raw
  To: gentoo-dev

Andreas K. Huettel <dilfridge@gentoo.org> wrote:
> Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
>
>> If this is not very hard to implement in portage, I would
>> strongly vote to remove this implicit connection:
>
> Not really doable since this is explicitly defined as such in EAPI=5 PMS.
>
> Retroactively changing PMS is probably not a good idea.

So keeping PMS is more important than usability?
Great!  One must know where to put emphasis and keep
an unfortunate chosen detail forever (or, as experience
concerning EAPI upgrades shows, at least for decades)
in order to fulfill a nonsense bureoucracy which probably
at most 3 packages use, currently.  Certainly, this is
more important than user experience!



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 17:04           ` Martin Vaeth
@ 2013-11-17 17:15             ` Michał Górny
  2013-11-17 18:46               ` Martin Vaeth
  2013-11-17 17:24             ` Tom Wijsman
  2013-11-17 18:56             ` Ian Stakenvicius
  2 siblings, 1 reply; 111+ messages in thread
From: Michał Górny @ 2013-11-17 17:15 UTC (permalink / raw
  To: gentoo-dev; +Cc: vaeth

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

Dnia 2013-11-17, o godz. 17:04:17
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisał(a):

> Andreas K. Huettel <dilfridge@gentoo.org> wrote:
> > Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
> >
> >> If this is not very hard to implement in portage, I would
> >> strongly vote to remove this implicit connection:
> >
> > Not really doable since this is explicitly defined as such in EAPI=5 PMS.
> >
> > Retroactively changing PMS is probably not a good idea.
> 
> So keeping PMS is more important than usability?
> Great!  One must know where to put emphasis and keep
> an unfortunate chosen detail forever (or, as experience
> concerning EAPI upgrades shows, at least for decades)
> in order to fulfill a nonsense bureoucracy which probably
> at most 3 packages use, currently.  Certainly, this is
> more important than user experience!

And what does quickly removing used feature gain us in terms of
usability? You seem to be thoroughly ignoring the reasons and benefits
of stable.mask and just focusing on your pretty mixed-arch system. You
are willing to sacrifice the quality of stable tree for the sake of
a solution that is not even officially yet you believe everyone uses it.

Furthermore, some people think that issues are to be fixed. And by
fixed I mean the actual issues, not the whole component that is having
them. If we were to randomly choose a component that is involved in
your issues, we may as well remove support for mixing stable
and unstable packages. In fact, this will more likely fix a few more
bugs!

And something small at the end: if your hand hurts (it's the issue),
do you 'fix' the pain or do you cut the hand off?

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 17:04           ` Martin Vaeth
  2013-11-17 17:15             ` Michał Górny
@ 2013-11-17 17:24             ` Tom Wijsman
  2013-11-17 19:10               ` Martin Vaeth
  2013-11-17 18:56             ` Ian Stakenvicius
  2 siblings, 1 reply; 111+ messages in thread
From: Tom Wijsman @ 2013-11-17 17:24 UTC (permalink / raw
  To: vaeth; +Cc: gentoo-dev

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

On Sun, 17 Nov 2013 17:04:17 +0000 (UTC)
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:

> Andreas K. Huettel <dilfridge@gentoo.org> wrote:
> > Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
> >
> >> If this is not very hard to implement in portage, I would
> >> strongly vote to remove this implicit connection:
> >
> > Not really doable since this is explicitly defined as such in
> > EAPI=5 PMS.
> >
> > Retroactively changing PMS is probably not a good idea.
> 
> So keeping PMS is more important than usability?

Being supported is more important than running into breakage.

> Great!  One must know where to put emphasis and keep
> an unfortunate chosen detail forever (or, as experience
> concerning EAPI upgrades shows, at least for decades)
> in order to fulfill a nonsense bureoucracy which probably
> at most 3 packages use, currently.  Certainly, this is
> more important than user experience!

Does support increase user experience? What about breakage?

Let's say I want to have PM support for bug #449094 and do bug #472906.
I can go introduce eapi-5-kernel, which implements virtual sub slot
pass-through; which is so incredibly nice as it rebuilds external
kernel modules when you build a new kernel, sub slot rebuild style. 

But nobody really backs me up as it is not really standard, apparently
it then breaks for other kernels in the Portage tree. And as nobody
agreed on it, it can't be supported; because with its design certain
cases have not been taken into account. So, let's not rush this magic
eapi-5-kernel feature and do it properly as part of eapi-6 or later.

Rather have a handful of supported EAPIs than hundreds of unsupported
EAPIs. The supported ones work; as for the unsupported ones, I doubt it.

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-16 12:58           ` Michał Górny
@ 2013-11-17 18:13             ` Andreas K. Huettel
  2013-11-17 18:18               ` Michał Górny
  0 siblings, 1 reply; 111+ messages in thread
From: Andreas K. Huettel @ 2013-11-17 18:13 UTC (permalink / raw
  To: gentoo-dev

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

Am Samstag, 16. November 2013, 13:58:48 schrieb Michał Górny:
> Dnia 2013-11-16, o godz. 13:50:11
> 
> "Andreas K. Huettel" <dilfridge@gentoo.org> napisał(a):
> > Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
> > > Probably a lot of the confusion could be avoided if
> > > /etc/portage/package.accept_keywords would not implicitly
> > > unmask useflags.
> > 
> > How would you handle the case if a package has only one version in
> > portage and that one is stable?
> 
> Unmask it through use.stable.mask and package.use.stable.mask
> in /etc/portage/profile?
> 
> Then we clear separation between masked packages and masked flags.

Not practical... Maintainer has to modify profile files then for each and any 
stable request.


-- 

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: 966 bytes --]

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 18:13             ` Andreas K. Huettel
@ 2013-11-17 18:18               ` Michał Górny
  0 siblings, 0 replies; 111+ messages in thread
From: Michał Górny @ 2013-11-17 18:18 UTC (permalink / raw
  To: gentoo-dev; +Cc: dilfridge

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

Dnia 2013-11-17, o godz. 19:13:59
"Andreas K. Huettel" <dilfridge@gentoo.org> napisał(a):

> Am Samstag, 16. November 2013, 13:58:48 schrieb Michał Górny:
> > Dnia 2013-11-16, o godz. 13:50:11
> > 
> > "Andreas K. Huettel" <dilfridge@gentoo.org> napisał(a):
> > > Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
> > > > Probably a lot of the confusion could be avoided if
> > > > /etc/portage/package.accept_keywords would not implicitly
> > > > unmask useflags.
> > > 
> > > How would you handle the case if a package has only one version in
> > > portage and that one is stable?
> > 
> > Unmask it through use.stable.mask and package.use.stable.mask
> > in /etc/portage/profile?
> > 
> > Then we clear separation between masked packages and masked flags.
> 
> Not practical... Maintainer has to modify profile files then for each and any 
> stable request.

Excuse me, but why in the world would maintainer unmask stable-masked
flags when stabilizing a package? This doesn't really seem meaningful,
and also means the maintainer will try to stabilize dependencies which
aren't meant to go stable yet... 

-- 
Best regards,
Michał Górny

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

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 17:15             ` Michał Górny
@ 2013-11-17 18:46               ` Martin Vaeth
  2013-11-17 19:32                 ` hasufell
  0 siblings, 1 reply; 111+ messages in thread
From: Martin Vaeth @ 2013-11-17 18:46 UTC (permalink / raw
  To: gentoo-dev

Michał Górny <mgorny@gentoo.org> wrote:
> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisa=C5=82(a):
>
> And what does quickly removing used feature gain us in terms of
> usability?

We are talking about changing a detail of a feature which just has
proven that it is causes dependency chaos due to a side effect of
that detail which probably nobody had thought of when it was
introduced. Instead of fixing that detail which would need a
rewording of PMS and a change in 2-3 package managers, you think
it is better to keep the issue ... the reason being just
bureaucracy.

> Furthermore, some people think that issues are to be fixed.

Yeah, spend years to look for the theoretically best matching
solution instead of making things working.  Like Hurd.
Gentoo usually had the courage to try things (like multiarch
support); and if they turned out to be bad to modify/withdraw
them (like USE-flags triggered by installed packages).
Now a bureaucracy has taken over which forbids this?

> we may as well remove support for mixing stable
> and unstable packages. In fact, this will more likely fix a few more
> bugs!

Yes, it will fix bug reports of most users, since they are
moving then to another distro.

> And something small at the end: if your hand hurts (it's the issue),
> do you 'fix' the pain or do you cut the hand off?

I will fix the pain instead of following some paper where it
is written that I must not touch my hand with a knife or whatever.
And also, I would not start to build a better hand which can
eventually replace my older one without the pain, as soon
as the older one has died off.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 17:04           ` Martin Vaeth
  2013-11-17 17:15             ` Michał Górny
  2013-11-17 17:24             ` Tom Wijsman
@ 2013-11-17 18:56             ` Ian Stakenvicius
  2013-11-17 19:18               ` Martin Vaeth
  2 siblings, 1 reply; 111+ messages in thread
From: Ian Stakenvicius @ 2013-11-17 18:56 UTC (permalink / raw
  To: gentoo-dev@lists.gentoo.org



On 2013-11-17, at 12:04 PM, Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:

> Andreas K. Huettel <dilfridge@gentoo.org> wrote:
>> Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
>> 
>>> If this is not very hard to implement in portage, I would
>>> strongly vote to remove this implicit connection:
>> 
>> Not really doable since this is explicitly defined as such in EAPI=5 PMS.
>> 
>> Retroactively changing PMS is probably not a good idea.
> 
> So keeping PMS is more important than usability?
> Great!  One must know where to put emphasis and keep
> an unfortunate chosen detail forever (or, as experience
> concerning EAPI upgrades shows, at least for decades)
> in order to fulfill a nonsense bureoucracy which probably
> at most 3 packages use, currently.  Certainly, this is
> more important than user experience!
> 
> 


I assume this is about the *.use.stable.mask files ...  we don't need to retroactively remove them from PMS, we just set a portage tree policy to leave them empty and ask everyone to not use it.  PMS stays the same, support in package managers stays in, but the feature is effectively removed due to not being used.  same end result without the breakage.

that said, I still support *.use.stable.mask and would not like to see it removed or banned.

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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 17:24             ` Tom Wijsman
@ 2013-11-17 19:10               ` Martin Vaeth
  2013-11-17 19:57                 ` Tom Wijsman
  0 siblings, 1 reply; 111+ messages in thread
From: Martin Vaeth @ 2013-11-17 19:10 UTC (permalink / raw
  To: gentoo-dev

Tom Wijsman <TomWij@gentoo.org> wrote:
> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
>>
>> So keeping PMS is more important than usability?
>
> Being supported is more important than running into breakage.

What has a line in PMS which has practically no influence
on anybody except for breaking user experience have to do
with "being supported"?
Does any developer's life change so bad that he cannot
support it anymore if the package manager no longer gives
misleading errors to the user?

> Does support increase user experience? What about breakage?

Yeah, treating user-config files in a clearer way will break things
horribly.  Better question: What about the breakages which the
side effect of package.accept_keywords has just proven to cause?

> Let's say I want to have PM support for bug #449094 and do bug #472906.

You proved that you can find modifications of PMS which obviously
can have bad side effects in certain situations. And so what?
I am not going to kick your strawman.

> So, let's not rush this magic
> eapi-5-kernel feature and do it properly as part of eapi-6 or later.

Sure, introducing a new feature can wait until the involved
packages provide the new EAPI.
But the dependency breakage of the side effect we are talking
about will stay as long as at least one package in the dependency
chain is not EAPI=6 or newer, i.e. "not rushing" in your term
means waiting for ... 10 years? ... 20 years? ...forever?
This is simply not an appropriate way how to deal with problem
when they turn up in an already released EAPI. Especially not,
if it is such a tiny issue which can be fixed by reformulating
one or two lines just with having the side effects in mind
(which had probably surprised everybody - including myself -
in this consequence).



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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 18:56             ` Ian Stakenvicius
@ 2013-11-17 19:18               ` Martin Vaeth
  2013-11-17 19:27                 ` Michał Górny
  0 siblings, 1 reply; 111+ messages in thread
From: Martin Vaeth @ 2013-11-17 19:18 UTC (permalink / raw
  To: gentoo-dev

Ian Stakenvicius <axs@gentoo.org> wrote:
>>> Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
>>> 
>>>> If this is not very hard to implement in portage, I would
>>>> strongly vote to remove this implicit connection:
>
> I assume this is about the *.use.stable.mask files ...

Even less: The discussion in this part of the thread was
only about the implicit connection of package.accept_keywords
with *use.stable.mask, i.e. about removing the
side effect of unmasking USE-flags by these files.

> we don't need to retroactively remove them from PMS,
> we just set a portage tree policy to leave them empty
> and ask everyone to not use it.

As I understand, this would not find any majority since
developers want faster stabilization paths.
I think one can live with it if it does not cause the
dependency hell - and this can be avoided by removing
mentioned side effect. But if done only for EAPI=6 or
newer packages, in practice this side effect will remain
forever.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 19:18               ` Martin Vaeth
@ 2013-11-17 19:27                 ` Michał Górny
  2013-11-17 19:51                   ` Martin Vaeth
  0 siblings, 1 reply; 111+ messages in thread
From: Michał Górny @ 2013-11-17 19:27 UTC (permalink / raw
  To: gentoo-dev; +Cc: vaeth

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

Dnia 2013-11-17, o godz. 19:18:35
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisał(a):

> Ian Stakenvicius <axs@gentoo.org> wrote:
> >>> Am Freitag, 15. November 2013, 21:18:03 schrieb Martin Vaeth:
> >>> 
> >>>> If this is not very hard to implement in portage, I would
> >>>> strongly vote to remove this implicit connection:
> >
> > I assume this is about the *.use.stable.mask files ...
> 
> Even less: The discussion in this part of the thread was
> only about the implicit connection of package.accept_keywords
> with *use.stable.mask, i.e. about removing the
> side effect of unmasking USE-flags by these files.

Oh, then it doesn't have to do anything with PMS. Portage config files
are purely a choice of portage developers, and this can be done as soon
as you convince them this is the right thing to do. I've tried [1].

[1]:https://bugs.gentoo.org/show_bug.cgi?id=491166

-- 
Best regards,
Michał Górny

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 18:46               ` Martin Vaeth
@ 2013-11-17 19:32                 ` hasufell
  2013-11-17 20:16                   ` Tom Wijsman
  0 siblings, 1 reply; 111+ messages in thread
From: hasufell @ 2013-11-17 19:32 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 11/17/2013 07:46 PM, Martin Vaeth wrote:
> Michał Górny <mgorny@gentoo.org> wrote:
>> we may as well remove support for mixing stable and unstable
>> packages. In fact, this will more likely fix a few more bugs!
> 


It was never "officially" supported. That doesn't mean we have to
break it, just because we introduced some misdesigned ideas.

Design decisions should be based on what a) makes ebuild development
easier and b) benefits the user.

Currently there are a lot of things where gentoo devs are forced to
follow design decisions that turned out different than expected... and
the users pick up the pieces.

I'm not saying everything of that was forseeable. But it's slipping
out of control. It just took me another 30minutes to update a gentoo
box which I do not log into very often. I got trapped between python
blockers, multilib blockers, a confused portage with wrong autounmask
messages and some other things that could not be resolved
automatically at all.

Users should not be forced to micro-manage all sorts of stuff for a
simple update.

But yeah... let's just say we don't support custom useflag settings
anymore, because it's so much easier then and would fix a LOT of bugs.

Nice going.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iQEcBAEBAgAGBQJSiRnXAAoJEFpvPKfnPDWzBgEH/Ag3/pZohijH0Nn2Vkr3Jq51
RIBsj11zeu0xWO+wztiZgpY6MvnVbondoTZAcx5JIuTqY9RB12oelRl6R0ZtBlSR
Q5idRFzO+w2RgUp0bLpD4H4fkV8vrcOcsZlysaz5jnpmHYOMTghGgfd5EgQx4qw3
YQnFUTDzoYBcsY6jbndqWQrWRCekTsUAPPiqZkocEgBOiRu3awLtbVbz5JB5jWRL
o/fGpn3d5qEvelTSYLU7R1vqhxAFY6SeYPt/ewCC/tkNlNJJ2NsvSCvfYd6mgUC5
BCnXA9fUGvKqoGhGx2rn+JjgoyBxTvUAQFHEae4aFsKTF4WehvO7Gx53YSo3HIw=
=6WzP
-----END PGP SIGNATURE-----


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

* [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 19:27                 ` Michał Górny
@ 2013-11-17 19:51                   ` Martin Vaeth
  2013-11-17 21:41                     ` Andreas K. Huettel
  0 siblings, 1 reply; 111+ messages in thread
From: Martin Vaeth @ 2013-11-17 19:51 UTC (permalink / raw
  To: gentoo-dev

Michał Górny <mgorny@gentoo.org> wrote:
> Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisa=C5=82(a):
>> Even less: The discussion in this part of the thread was
>> only about the implicit connection of package.accept_keywords
>> with *use.stable.mask, i.e. about removing the
>> side effect of unmasking USE-flags by these files.
>
> Oh, then it doesn't have to do anything with PMS. Portage config files
> are purely a choice of portage developers, and this can be done as soon
> as you convince them this is the right thing to do.

I also thought so, first, but unfortunately PMS is here clear
in its formulation:

"... package.use.stable.mask ... do the same thing [as package.use.mask].
These files, however, act only on packages which are merged due to a
stable keyword..."

There is no distinction about the location where the permission
to install an unstable keyword comes from.



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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 19:10               ` Martin Vaeth
@ 2013-11-17 19:57                 ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-17 19:57 UTC (permalink / raw
  To: vaeth; +Cc: gentoo-dev

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

On Sun, 17 Nov 2013 19:10:21 +0000 (UTC)
Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:

> Tom Wijsman <TomWij@gentoo.org> wrote:
> > Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> wrote:
> >>
> >> So keeping PMS is more important than usability?
> >
> > Being supported is more important than running into breakage.
> 
> What has a line in PMS

You can suggest such line change on the gentoo-pms mailing list;
when you do that, I can understand which change you try to refer to.

(Note that this translates to multiple changed lines in each PM)

> which has practically no influence

Specifications need to work on the theoretical side too; if it works in
practice for you, it can sill have practical implications on other
consumers. It is a dangerous assumption to think different.

> on anybody except for breaking user experience have to do
> with "being supported"?

Two sentences appear to be mixed here, do you suggest that the line
change "breaks user experience"? The PMS is what we agree to and what
we support, anything else that breaks follows something different than
the PMS and is outside the boundaries of its associated support.

> Does any developer's life change so bad that he cannot
> support it anymore if the package manager no longer gives
> misleading errors to the user?

Output of the package manager itself is outside the scope of the PMS.

> > Does support increase user experience? What about breakage?
> 
> Yeah, treating user-config files in a clearer way will break things
> horribly.

Changes indeed bring along bugs and breakage; which you need to take
into account when doing risk assessment, going for the advantages it
brings only works out if you consider whether disadvantages bug you.

> Better question: What about the breakages which the
> side effect of package.accept_keywords has just proven to cause?

What about replacing known breakages by unknown breakages?

> > Let's say I want to have PM support for bug #449094 and do bug
> > #472906.
> 
> You proved that you can find modifications of PMS which obviously
> can have bad side effects in certain situations. And so what?
> I am not going to kick your strawman.

Can you proof that your line change only has good side effects?

> > So, let's not rush this magic
> > eapi-5-kernel feature and do it properly as part of eapi-6 or later.
> 
> Sure, introducing a new feature can wait until the involved
> packages provide the new EAPI.
> But the dependency breakage of the side effect we are talking
> about will stay as long as at least one package in the dependency
> chain is not EAPI=6 or newer, i.e. "not rushing" in your term
> means waiting for ... 10 years? ... 20 years? ...forever?

It needs a clairvoyant to tell, PMS changes on their own take some time;
and even if we could get it done before the end of the month, consider
that the package managers are currently undermanned. If you want to see
a solution soon, changing the PMS does not feel like a the way to go.

> This is simply not an appropriate way how to deal with problem
> when they turn up in an already released EAPI. Especially not,
> if it is such a tiny issue which can be fixed by reformulating
> one or two lines just with having the side effects in mind
> (which had probably surprised everybody - including myself -
> in this consequence).

It will be discussed, rewritten, voted upon, added, then the EAPI gets a
new revision / release; after that, actively used Package managers need
to implement it (which is not necessarily a single line change),
releases need to be made for these Package managers as well, those
releases need to be stabilized; at this point, the Council needs to
declare the new version for use after which the Portage tree migrates
to it (assuming the EAPI change brings along other fixes as well).

It's a bit more involved than a reformulation, it takes time...

-- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D

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

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 19:32                 ` hasufell
@ 2013-11-17 20:16                   ` Tom Wijsman
  0 siblings, 0 replies; 111+ messages in thread
From: Tom Wijsman @ 2013-11-17 20:16 UTC (permalink / raw
  To: hasufell; +Cc: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Sun, 17 Nov 2013 20:32:39 +0100
hasufell <hasufell@gentoo.org> wrote:

> >> we may as well remove support for mixing stable and unstable
> >> packages. In fact, this will more likely fix a few more bugs!
> 
> It was never "officially" supported. That doesn't mean we have to
> break it, just because we introduced some misdesigned ideas.

Does that mean we can actively encourage users to use it? Is its
existence an indication of it being a good designed idea? Is Portage
designed with heavily mixing software branches in mind? 

> Design decisions should be based on what a) makes ebuild development
> easier and b) benefits the user.

Mixed software branches have a lot of untested scenarios, some devs drop
bugs for them and it has caused a lot of bugs, conflicts and blockers;
I doubt if mixing software branches makes ebuild development easier or
benefits the user. It is quite the opposite, it requires more work from
the developers and has caused a ton of headaches for our users.

> Currently there are a lot of things where gentoo devs are forced to
> follow design decisions that turned out different than expected... and
> the users pick up the pieces.
>
> I'm not saying everything of that was forseeable. But it's slipping
> out of control. It just took me another 30minutes to update a gentoo
> box which I do not log into very often. I got trapped between python
> blockers, multilib blockers, a confused portage with wrong autounmask
> messages and some other things that could not be resolved
> automatically at all.

Mixed software branches fit this description.

> Users should not be forced to micro-manage all sorts of stuff for a
> simple update.

Updates are simple in stable or unstable, but not in a mix of them.

> But yeah... let's just say we don't support custom useflag settings
> anymore, because it's so much easier then and would fix a LOT of bugs.

The same could be said about mixed software branches.

> Nice going.

We're going both ways; Gentoo's choice you to go one way, or the other.

PS: I'm not personally against this "mixed software branches" feature.
It can work out if you know about the complexity involved and know the
background of that complexity; but for the average user, this is to be
used sparingly. Pure stable and unstable has always worked fine for me.

- -- 
With kind regards,

Tom Wijsman (TomWij)
Gentoo Developer

E-mail address  : TomWij@gentoo.org
GPG Public Key  : 6D34E57D
GPG Fingerprint : C165 AF18 AB4C 400B C3D2  ABF0 95B2 1FCD 6D34 E57D
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)

iQEcBAEBAgAGBQJSiSQiAAoJEJWyH81tNOV9OfwIAKhBGat3MUlwZQnTFpFXskHk
UaEwnPGWLh1qN8ScSSnDiExar1qEI8dI4UI6p9crjawEdGhXK+g4DdMuiMa2YbBN
UzsOmcOBEpH7zqeRPFjqa8HQ7iAdPfaUwiBM5hOM2lD3hV9jRCK4CZQsMpnnx+Kc
B7opACMXA2M721nstcuEu+SCT8xMT1wPbT25XntKNVBDafrOBwSDsnLUCGKymOF5
YgMHp5sOUSvFhqV1vPN8SbM++JByTlcwV7vuIR6NkbbhOLhaz3S5F/tJGnvuHPSB
bqydOcBpnzeNf74xD9yumXzAI8npmconeAJ1nzsYUR2Jt+tHeCO9hWMUQm+695s=
=XzNX
-----END PGP SIGNATURE-----

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

* Re: [gentoo-dev] Re: Please consider removing use.stable.mask and package.use.stable.mask
  2013-11-17 19:51                   ` Martin Vaeth
@ 2013-11-17 21:41                     ` Andreas K. Huettel
  0 siblings, 0 replies; 111+ messages in thread
From: Andreas K. Huettel @ 2013-11-17 21:41 UTC (permalink / raw
  To: gentoo-dev

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

Am Sonntag, 17. November 2013, 20:51:36 schrieb Martin Vaeth:
> Michał Górny <mgorny@gentoo.org> wrote:
> > Martin Vaeth <vaeth@mathematik.uni-wuerzburg.de> napisa=C5=82(a):
> >> Even less: The discussion in this part of the thread was
> >> only about the implicit connection of package.accept_keywords
> >> with *use.stable.mask, i.e. about removing the
> >> side effect of unmasking USE-flags by these files.
> > 
> > Oh, then it doesn't have to do anything with PMS. Portage config files
> > are purely a choice of portage developers, and this can be done as soon
> > as you convince them this is the right thing to do.
> 
> I also thought so, first, but unfortunately PMS is here clear
> in its formulation:
> 
> "... package.use.stable.mask ... do the same thing [as package.use.mask].
> These files, however, act only on packages which are merged due to a
> stable keyword..."
> 
> There is no distinction about the location where the permission
> to install an unstable keyword comes from.

Yep. I wrote that.

-- 

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: 966 bytes --]

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

end of thread, other threads:[~2013-11-17 21:41 UTC | newest]

Thread overview: 111+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-13 10:28 [gentoo-dev] Please consider removing use.stable.mask and package.use.stable.mask Martin Vaeth
2013-11-13 11:39 ` Tom Wijsman
2013-11-13 13:25   ` Thomas Kahle
2013-11-13 13:37     ` Rich Freeman
2013-11-13 14:00       ` Tom Wijsman
2013-11-13 14:30       ` [gentoo-dev] " Duncan
2013-11-13 14:55         ` Thomas Kahle
2013-11-13 15:16           ` Ian Stakenvicius
2013-11-13 18:56             ` Daniel Campbell
2013-11-13 20:21               ` James Potts
2013-11-13 21:22                 ` Kent Fredric
2013-11-17 10:20                   ` Sergey Popov
2013-11-13 13:56     ` [gentoo-dev] " Tom Wijsman
2013-11-13 14:38       ` [gentoo-dev] " Martin Vaeth
2013-11-13 14:04   ` Martin Vaeth
2013-11-13 14:10 ` [gentoo-dev] " Michał Górny
2013-11-13 15:02   ` Ian Stakenvicius
2013-11-13 15:58     ` Rich Freeman
2013-11-13 23:49     ` Patrick Lauer
2013-11-14  5:13       ` Michał Górny
2013-11-14 12:03         ` Patrick Lauer
2013-11-14 12:13           ` Rich Freeman
2013-11-14 12:30             ` Patrick Lauer
2013-11-14 12:45               ` Rich Freeman
2013-11-14 19:07             ` Thomas Sachau
2013-11-14 19:35               ` Ciaran McCreesh
2013-11-14 23:40                 ` Patrick Lauer
2013-11-14 17:51           ` Michał Górny
2013-11-14 23:38             ` Patrick Lauer
2013-11-14 12:21         ` Ben de Groot
2013-11-14 12:32           ` Rich Freeman
2013-11-14 12:57             ` Ben de Groot
2013-11-14 15:12               ` Rich Freeman
2013-11-14 16:38                 ` Ben de Groot
2013-11-14 17:32                   ` Rich Freeman
2013-11-15  6:53                     ` Ben de Groot
2013-11-15  7:13                       ` Ulrich Mueller
2013-11-15 11:08                         ` [gentoo-dev] " Duncan
2013-11-15 14:30                           ` Ian Stakenvicius
2013-11-15 15:30                             ` Duncan
2013-11-15 12:14                         ` [gentoo-dev] " Patrick Lauer
2013-11-15 14:27                         ` Ian Stakenvicius
2013-11-15 13:33                       ` Rich Freeman
2013-11-15 22:39                       ` Michał Górny
2013-11-15 23:06                         ` Tom Wijsman
2013-11-16  8:22                         ` Pacho Ramos
2013-11-16 10:57                           ` Thomas Sachau
2013-11-17 16:09                             ` hasufell
2013-11-17 16:35                               ` Tom Wijsman
2013-11-17 16:52                             ` Ciaran McCreesh
2013-11-16 12:39                           ` [gentoo-dev] " Martin Vaeth
2013-11-16 12:46                             ` Michał Górny
2013-11-16 20:24                             ` Kent Fredric
2013-11-16 21:52                               ` Michał Górny
2013-11-17  0:53                                 ` Kent Fredric
2013-11-16 22:52                             ` Duncan
2013-11-13 15:23   ` Martin Vaeth
2013-11-13 15:41     ` Mike Gilbert
2013-11-14  0:11       ` Tom Wijsman
2013-11-13 15:42     ` Kent Fredric
2013-11-13 16:05       ` Martin Vaeth
2013-11-13 17:05         ` "Paweł Hajdan, Jr."
2013-11-13 15:44     ` Michał Górny
2013-11-13 16:52       ` Martin Vaeth
2013-11-13 17:03       ` Peter Stuge
2013-11-13 17:49         ` Rich Freeman
2013-11-13 18:24           ` Peter Stuge
2013-11-13 18:50             ` Rich Freeman
2013-11-15  4:56 ` [gentoo-dev] " Matt Turner
2013-11-15  5:23   ` Kent Fredric
2013-11-15 15:54   ` Peter Stuge
2013-11-15 16:05     ` Ian Stakenvicius
2013-11-15 20:18       ` [gentoo-dev] " Martin Vaeth
2013-11-15 20:22         ` Peter Stuge
2013-11-16 12:46         ` Andreas K. Huettel
2013-11-17 17:04           ` Martin Vaeth
2013-11-17 17:15             ` Michał Górny
2013-11-17 18:46               ` Martin Vaeth
2013-11-17 19:32                 ` hasufell
2013-11-17 20:16                   ` Tom Wijsman
2013-11-17 17:24             ` Tom Wijsman
2013-11-17 19:10               ` Martin Vaeth
2013-11-17 19:57                 ` Tom Wijsman
2013-11-17 18:56             ` Ian Stakenvicius
2013-11-17 19:18               ` Martin Vaeth
2013-11-17 19:27                 ` Michał Górny
2013-11-17 19:51                   ` Martin Vaeth
2013-11-17 21:41                     ` Andreas K. Huettel
2013-11-16 12:50         ` Andreas K. Huettel
2013-11-16 12:58           ` Michał Górny
2013-11-17 18:13             ` Andreas K. Huettel
2013-11-17 18:18               ` Michał Górny
2013-11-15 19:24   ` [gentoo-dev] " Tom Wijsman
2013-11-15 19:24   ` Tom Wijsman
2013-11-15 19:31     ` Ian Stakenvicius
2013-11-15 19:36     ` Matt Turner
2013-11-15 20:00   ` Tom Wijsman
2013-11-15 20:10     ` Peter Stuge
2013-11-15 20:24       ` Tom Wijsman
2013-11-15 20:25     ` Matt Turner
2013-11-15 20:53       ` Tom Wijsman
2013-11-15 21:09         ` Peter Stuge
2013-11-15 21:27           ` Tom Wijsman
2013-11-15 21:21         ` Matt Turner
2013-11-15 21:38           ` Tom Wijsman
2013-11-15 21:45             ` Matt Turner
2013-11-15 22:08               ` Tom Wijsman
2013-11-15 21:57             ` Peter Stuge
2013-11-15 22:13               ` Tom Wijsman
2013-11-15 22:26                 ` Peter Stuge
2013-11-15 22:58                   ` Tom Wijsman

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