1 |
On Wed, 22 Nov 2006, Brian Harring wrote: |
2 |
|
3 |
> On Wed, Nov 22, 2006 at 05:04:36PM -0500, Daniel Barkalow wrote: |
4 |
> > |
5 |
> > I wouldn't change ACCEPT_KEYWORDS at all or anything in the computation of |
6 |
> > pgroups or mygroups in portdbapi.gvisible(), so package.keywords is |
7 |
> > unchanged and the whole incremental ACCEPT_KEYWORDS is also unchanged. |
8 |
> |
9 |
> Find that a bit hard to believe frankly; inserting cross into a |
10 |
> packages keywords _has_ to undergo the transformation somewhere. If |
11 |
> you're not doing it there, then you're probably doing it somewhere |
12 |
> that you shouldn't be ;) |
13 |
|
14 |
I'm not inserting cross into a package's keywords. I'm saying that perl |
15 |
ebuilds (for example) should have in their KEYWORDS "-cross" to indicate |
16 |
that they don't work with the "cross" keyword. The logic is the completely |
17 |
universal thing where a package puts its keywords in KEYWORDS, and the |
18 |
configuration has keywords in make.conf. The proper place for an ebuild to |
19 |
specify that it doesn't work when cross-compiling is, obviously, in the |
20 |
ebuild, since the maintainers obviously know, or can be told. |
21 |
|
22 |
With mainline emerge (and a locally-modified perl ebuild that adds |
23 |
"-cross" to KEYWORDS) and ACCEPT_KEYWORDS="cross", I get: |
24 |
|
25 |
mygroups = "alpha amd64 arm hppa ia64 m68k mips ppc ~ppc-macos ppc64 s390 |
26 |
sh sparc ~sparc-fbsd x86 ~x86-fbsd -cross" |
27 |
pgroups = "arm cross" |
28 |
|
29 |
> > The present documentation (Ebuild HOWTO, for example) says "If the |
30 |
> > KEYWORDS flag has a preceding -, then the package does not work with the |
31 |
> > given keyword." But this is ignored by portage, because "Packages that do |
32 |
> > not support the native architecture are automatically masked by Portage", |
33 |
> > which means that "-x86" has no effect, because an ebuild with "-x86" won't |
34 |
> > have "x86" or "~x86", and is therefore masked. I'm proposing that "-foo" |
35 |
> > be taken seriously as meaning that the package does not work with the |
36 |
> > "foo" keyword, even if the ebuild would otherwise be visible. |
37 |
> |
38 |
> Why would you propose that? That's already the case as is, folks just |
39 |
> have a way around it if they try hard enough (which isn't necessarily |
40 |
> a bad thing). |
41 |
|
42 |
That is not the case currently. If a package has "-foo" (when the user has |
43 |
"foo" and doesn't have "-foo"), the ebuild still can pass the keyword |
44 |
check. E.g., if an ebuild has KEYWORDS="* -x86", it will be built on x86. |
45 |
|
46 |
In the example above, the package is not masked under the current |
47 |
implementation, because "arm" matches and "-cross" is completely ignored. |
48 |
|
49 |
> Not seeing how that proposal is related to xcompile either. |
50 |
|
51 |
It's not specificly connected to xcompile. It just lets ebuilds specify |
52 |
negative keywords that have actual effects. It's just that "I'm |
53 |
cross-compiling" is a property that isn't tied to a particular profile and |
54 |
which a number of ebuilds could use to say "this ebuild won't work for |
55 |
you". |
56 |
|
57 |
-Daniel |
58 |
*This .sig left intentionally blank* |
59 |
-- |
60 |
gentoo-portage-dev@g.o mailing list |