1 |
On Wed, Nov 13, 2013 at 2:28 AM, Martin Vaeth |
2 |
<vaeth@××××××××××××××××××××××××.de> wrote: |
3 |
> The new "features" use.stable.mask and package.use.stable.mask |
4 |
> have turned maintaining systems with mixed ARCH and ~ARCH keywords |
5 |
> into a nightmare: |
6 |
|
7 |
I agree. I have helped two friends convert to Gentoo recently (one |
8 |
used it a few years ago). They both came from Arch, and one told me |
9 |
that before he resumed using Gentoo recently he considered these two |
10 |
distros in the same category in terms of difficulty of use and |
11 |
maintenance. After using it for a month, he's now convinced that |
12 |
Gentoo is clearly the most difficult to use. |
13 |
|
14 |
I'm inclined to agree, and I think in large part recently it's because |
15 |
of use.stable.mask and package.use.stable.mask. These really are a |
16 |
nightmare for users. Heck, they're really a nightmare for me and I've |
17 |
been using Gentoo for nine years and feel like I have a pretty good |
18 |
ability to decipher portage's error messages. |
19 |
|
20 |
I think most of the confusion is caused by the necessity to put a |
21 |
*stable* package atom into package.keywords to unmask a *USE* flag. |
22 |
(Am I doing something wrong that would prevent 'x11-proto/kbproto |
23 |
-abi_x86_32' in /etc/portage/package.use.stable.mask from |
24 |
un-stable-masking the abi_x86_32 USE flag for kbproto?) |
25 |
|
26 |
And then in addition, we did really weird things like stabilizing |
27 |
package versions whose only difference from the previous is that it |
28 |
supports multilib (e.g., kbproto-1.0.6 vs kbproto-1.0.6-r1). Except |
29 |
that it's package.use.stable.mask'd. So you have to keyword a stable |
30 |
package to get its only defining feature. (Why did we stabilize it in |
31 |
the first place?) |
32 |
|
33 |
Portage correctly shows that unstable USE flags are masked by printing |
34 |
parenthesis around them, like use.mask'd flags, but the error messages |
35 |
are really unhelpful. Take for instance dropping the stable |
36 |
=x11-proto/kbproto-1.0.6-r1 from package.keywords, in order implicitly |
37 |
mask the abi_x86_32. Attempting to merge =x11-proto/kbproto-1.0.6-r1 |
38 |
results in: |
39 |
|
40 |
x11-proto/kbproto:0 |
41 |
|
42 |
(x11-proto/kbproto-1.0.6-r1::gentoo, ebuild scheduled for merge) pulled in by |
43 |
(no parents that aren't satisfied by other packages in this slot) |
44 |
|
45 |
(x11-proto/kbproto-1.0.6-r1::gentoo, installed) pulled in by |
46 |
x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?] |
47 |
required by (x11-libs/libX11-1.6.2::gentoo, installed) |
48 |
x11-proto/kbproto[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?] |
49 |
required by (x11-libs/libXt-1.1.4::gentoo, installed) |
50 |
|
51 |
There's a single problem. It can't enable abi_x86_32. Why didn't it |
52 |
just say that? |
53 |
|
54 |
You could even go beyond this and explain why it can't do it, but at |
55 |
this point I'd settle for a concise explanation of *what* it can't do. |