Gentoo Archives: gentoo-dev

From: Ciaran McCreesh <ciaran.mccreesh@×××××××××××××.uk>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: [GLEP] Use EAPI-suffixed ebuilds (.ebuild-EAPI)
Date: Tue, 18 Dec 2007 10:21:09
Message-Id: 20071218101814.32f872ee@blueyonder.co.uk
In Reply to: [gentoo-dev] Re: [GLEP] Use EAPI-suffixed ebuilds (.ebuild-EAPI) by Duncan <1i5t5.duncan@cox.net>
1 On Tue, 18 Dec 2007 09:53:50 +0000 (UTC)
2 Duncan <1i5t5.duncan@×××.net> wrote:
3 > Put directly, what is stopping us from actually allowing DIFFERENT
4 > pre- source and post-source EAPI values?
5
6 That's effectively what happens when a package manager sources a
7 current EAPI=1 in a variable ebuild.
8
9 > Here's the thinking. In the various PM discussions I've seen, it
10 > hasn't been unusual to see remarks about (previously) waiting for
11 > support in stable, and now about EAPI incompatibility, simply due
12 > to /parsing/ the ebuild. This could offer a way around the problem,
13 > by separating initial parsing/dependency EAPI and actual build/merge
14 > EAPI. The pre-source EAPI could state the EAPI support required to
15 > properly /source/parse/ the ebuild and generate the dependency tree,
16 > etc, while allowing the post- source EAPI to be different then allows
17 > additional flexibility in actual build/merge required EAPI.
18 >
19 > We'd then have two choices in terms of declaring pre-source support
20 > (as opposed to post-source, full merge support).
21
22 There's no advantage to doing so. If you don't support the EAPI, the
23 only thing you can do is say that you don't support the EAPI.
24
25 > 1) Simply that a compatible pre-source EAPI shouldn't blow up if
26 > sourced while calculating dependencies or the like -- the ebuild may
27 > be safely sourced and it shouldn't negatively affect the dependency
28 > tree for unrelated packages, but dependencies for that specific
29 > package may or may not be correct.
30
31 But all you get is the knowledge that the ebuild uses an unsupported
32 EAPI. Which you know already.
33
34 I should state this explicitly:
35
36 If an ebuild's EAPI isn't recognised by the package manager, the
37 package manager can't and mustn't "sort of" work with that ebuild;
38 there is no such thing as a "sort of supported" EAPI. The package
39 manager can either ignore the ebuild entirely or display it in some kind
40 of super fancy "masked due to EAPI" way -- and if it does the latter,
41 the *only* information the package manager has about the ebuild is that
42 its EAPI is unsupported. The package manager can't guess "ooh, well it
43 sets SLOT, so I can assume that SLOT means what I think it does" -- a
44 future EAPI might do something crazy like say that "if SLOT=dynamic, the
45 speshul pkg_slot function is used". The package manager can't even
46 assume that it knows what the unsupported EAPI's name really is or that
47 it knows what the unsupported package's version is.
48
49 > 2) That a compatible pre-source EAPI package, when sourced, should
50 > allow generation of a reasonably reliable dependency tree for the
51 > package in question, presumably including a PM upgrade as part of
52 > that dependency tree.
53
54 EAPIs aren't to specify the dependency tree.
55
56 There's the added problem that it breaks the concept of metadata cache.
57 That gets hairy.
58
59 > OK, so it's off the wall, but tell me, is it useful and
60 > implementable, or just stupid?
61
62 It's implementable. It would just be of no use.
63
64 --
65 Ciaran McCreesh

Attachments

File name MIME type
signature.asc application/pgp-signature