Gentoo Archives: gentoo-amd64

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-amd64@l.g.o
Subject: [gentoo-amd64] Re: ~amd64 vs portage.unmask
Date: Wed, 28 Jan 2009 01:32:28
Message-Id: pan.2009.01.28.01.32.10@cox.net
In Reply to: Re: [gentoo-amd64] ~amd64 vs portage.unmask by Mark Knecht
1 Mark Knecht <markknecht@×××××.com> posted
2 5bdc1c8b0901271531q5fe91aa9nc10e7202e3300b06@××××××××××.com, excerpted
3 below, on Tue, 27 Jan 2009 15:31:24 -0800:
4
5 > On Tue, Jan 27, 2009 at 3:08 PM, Sebastian Redl
6 > <sebastian.redl@×××××××××××.at> wrote:
7 >> Mark Knecht wrote:
8 >>> I seem to be a bit confused about the correct usage of ~amd64 vs
9 >>> unmasking a package in the portage.unmask file. Thanks in advance.
10 >>>
11 >>>
12 >>> What's the proper way for me to limit glib at the currently installed
13 >>> revision level?
14 >>>
15 >>>
16 >> portage.unmask is for masking, portage.keywords for keywording. These
17 >> are not the same.
18 >>
19 >> You can accept the ~amd64 keyword for just a single version the same
20 >> way you can unmask just a single version. Put this in portage.keywords:
21 >>
22 >> =dev-libs/glib-2.18.4 ~amd64
23 >>
24 >>
25 >> Sebastian
26 >
27 > Thank you Sebastian. That worked fine.
28 >
29 > Now, the same thing didn't work for portage-2.2_rc23. For that one I
30 > actually had to add it to portage.unmask also. I think that's because
31 > it's actually hard masked? Is that correct?
32
33 Yes, that's correct.
34
35 Really, Gentoo has four levels of masking available to devs to use,
36 depending on what they think is appropriate. Three of these are keyword
37 masks (one stronger than another), the other is hard mask.
38
39 A really new package may be masked three of the four ways. It may have
40 no keywords at all, plus be hard-masked in the main profiles/package.mask
41 file.
42
43 As it becomes clear that it can work on the various archs, it will get
44 ~arch keywords for each where it is known to work at all. Also, new
45 versions of packages that had previously known to work on an arch
46 versions will usually start as ~arch masked. ~arch (for whichever arch,
47 ~amd64, ~x86, etc) means the upstream package version is known to work on
48 a particular arch, and is reasonably stable such that it's a "Gentoo
49 stable candidate", but that there may still be problems with the ebuild
50 itself (as opposed to the upstream package), or problems between it and
51 other Gentoo stable packages that need to be resolved before it can go
52 stable. Also, if one or more of a package's dependencies remain
53 unstable, the ebuild itself cannot be stablized until all its
54 dependencies are stable.
55
56 Conversely, if a package is tested and is now known NOT to work on a
57 particular arch, and that isn't likely to change, a -arch (as in -amd64,
58 -x86, etc) keyword may be used. This may be used for instance if the
59 package only works on little-endian systems such as x86 and amd64, but
60 not on big-endian systems such as ppc. An x86 binary-only package would
61 likely be marked -mips, etc, but not -amd64, since multilib will probably
62 allow it to run there.
63
64 Once all potential problems have been resolved (including all
65 dependencies are stable) and there are no open bugs on a particular
66 version for, typically, 30 days, it can go arch-stable, that is, keyword
67 x86, amd64, etc.
68
69 That covers three of the four types, all keyword related, no-keyword,
70 ~arch, and -arch, plus arch-stable. The fourth type of masking is called
71 hard-masking. That's an entry in the package.mask file either for
72 everyone (in profile/package.mask) or for specific profiles (nomultilib
73 profiles will have 32-bit x86-only binaries masked, as they require
74 multilib). Typically, this is used for entirely inappropriate for stable
75 packages, say the KDE-4.0 packages, because it was simply too immature
76 yet to ever go stable, and for otherwise stable packages that are found
77 to have security issues, etc.
78
79 To see what versions of a package are available, period, along with their
80 keywording and mask status, you can use the epkginfo <pkg> command. If
81 you know a version exists in the tree (or an overlay you have active) and
82 you wish to see why portage isn't considering it for merging, use emerge
83 --pretend =<pkg-ver> or a variant such as a slot (gcc:4.2 for the 4.2
84 slot of gcc, for instance).
85
86 Two things to note: One, if you have a package listed in package.unmask,
87 it won't matter which package.mask file it's listed in (the main profiles/
88 package.mask, another package.mask file in your cascading profile, or
89 your own package.mask in /etc/portage), that will hard-unmask (but not
90 change the keyword status of, so it may still be keyword masked) that
91 package. package.unmask therefore overrides all package.mask files
92 including your own, and you need to be careful with it, because it'll
93 override security masks as a result.
94
95 Two, if for some reason you want to try a package that isn't keyworded
96 for your arch at all, you can use the ** keyword in package.keyword.
97
98 --
99 Duncan - List replies preferred. No HTML msgs.
100 "Every nonfree program has a lord, a master --
101 and if you use the program, he is your master." Richard Stallman