1 |
On Tue, 28 Nov 2006, Zac Medico wrote: |
2 |
|
3 |
> -----BEGIN PGP SIGNED MESSAGE----- |
4 |
> Hash: SHA1 |
5 |
> |
6 |
> Daniel Barkalow wrote: |
7 |
> > If the configuration has keywords "foo bar", and a package has "-foo |
8 |
> > bar", mask the package ("masked by -bar keyword"). |
9 |
> > |
10 |
> > This is the sensible behavior if we ever make use of listing multiple |
11 |
> > keywords in the configuration, which is currently implemented but not |
12 |
> > used for anything. |
13 |
> |
14 |
> Personally, I'd prefer not to support -foo or -* in the KEYWORDS of |
15 |
> an ebuild. For one thing, seems like it's trying to accomplish |
16 |
> something similar to what package.mask is intended for. |
17 |
|
18 |
It's documented in the Ebuild HOWTO (at least, -foo). And the current |
19 |
state is sort of broken: if you manage to get -foo in your |
20 |
ACCEPT_KEYWORDS, you can build a known-broken package, but you can never |
21 |
build a package that doesn't have -foo/~foo/foo. So you can only build a |
22 |
package if you know it doesn't work. |
23 |
|
24 |
I'd say, make it impossible to set -foo (or -*) in ACCEPT_KEYWORDS. People |
25 |
who want to build -foo packages can use * (or ~*) in their |
26 |
package.keywords, which actually gives you the latest version that's |
27 |
stable somewhere (or testing somewhere). |
28 |
|
29 |
With my patch, you'd additionally need -foo in package.keywords to build a |
30 |
-foo package, but then it means "don't worry about my foo keyword", which |
31 |
is appropriate and really is the usual incremental stack thing. |
32 |
|
33 |
Incidently, I think with current trunk a package.keywords value of "-x86" |
34 |
means "use an ebuild if and only if it is broken on x86", meaning that if |
35 |
a newer version actually works, users using the broken version won't |
36 |
upgrade. I bet that's not really what people want. |
37 |
|
38 |
> Another problem is that is uses -foo and -* in completely different ways |
39 |
> than they are used elsewhere in portage (for negation of values in |
40 |
> an incremental stack). |
41 |
|
42 |
I think KEYWORDS (as opposed to ACCEPT_KEYWORDS) being thought of as an |
43 |
incremental stack is sort of broken. (Not that it isn't done, but I think |
44 |
that KEYWORDS in eclasses is just evil and generally wrong; check out |
45 |
enlightenment.eclass and x11-wm/e/e-9999.ebuild for weird and wrong.) |
46 |
|
47 |
But maybe !foo would be more appropriate anyway for "don't match if foo". |
48 |
It might confuse people if what you do to unmask a "!foo" package is |
49 |
"-foo *" (meaning "hide my foo keyword, match anything that works"), not |
50 |
"!foo". Although I think the real way of unmasking these things should be |
51 |
to put a modified version in your overlay. |
52 |
|
53 |
-Daniel |
54 |
*This .sig left intentionally blank* |
55 |
-- |
56 |
gentoo-portage-dev@g.o mailing list |