Gentoo Archives: gentoo-portage-dev

From: Daniel Barkalow <barkalow@××××××××.org>
To: gentoo-portage-dev@l.g.o
Subject: Re: [gentoo-portage-dev] [RFC] Mask packages that don't cross-compile
Date: Thu, 23 Nov 2006 00:29:00
Message-Id: Pine.LNX.4.64.0611221849440.20138@iabervon.org
In Reply to: Re: [gentoo-portage-dev] [RFC] Mask packages that don't cross-compile by Brian Harring
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

Replies

Subject Author
Re: [gentoo-portage-dev] [RFC] Mask packages that don't cross-compile Brian Harring <ferringb@×××××.com>