On Wed, Nov 13, 2013 at 2:28 AM, Martin Vaeth
<va...@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.

Reply via email to