Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@×××××.com>
To: zmedico@g.o
Cc: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFD: EAPI specification in ebuilds
Date: Mon, 12 Mar 2012 01:56:14
Message-Id: 20120312015533.GD7579@localhost
In Reply to: Re: [gentoo-dev] RFD: EAPI specification in ebuilds by Zac Medico
1 On Sat, Mar 10, 2012 at 08:06:50AM -0800, Zac Medico wrote:
2 > On 03/09/2012 11:20 AM, Ciaran McCreesh wrote:
3 > > On Fri, 09 Mar 2012 11:49:44 -0500
4 > > Michael Orlitzky <michael@××××××××.com> wrote:
5 > >>>> isnt the whole point of the proposal to get eapi without sourcing ?
6 > >>>>
7 > >>>> so that we can use new bash features at local or global scope
8 > >>>> without risking that people with an old bash get syntax errors
9 > >>>> trying to get the eapi
10 > >>>
11 > >>> Right. Michael has lost sight of the goal and is moving off on a
12 > >>> tangent.
13 > >>
14 > >> The point was to be able to get the EAPI without crashing if the
15 > >> ebuild uses newer features.
16 > >
17 > > No, it's not. There's more to it than that.
18 > >
19 > > Some EAPIs really require defining certain environment variables, shell
20 > > options, sandbox things etc *before* the sourcing starts. It's a massive
21 > > pain in the ass to try to handle setting that kind of thing on the fly
22 > > once the sourcing has already started. Knowing the EAPI before having
23 > > to spawn a bash process isn't just about performance, it's also about
24 > > making ebuilds much less difficult to deal with.
25 >
26 > Yeah. Another way of putting it is that the requirement to spawn a bash
27 > process and source the ebuild adds a ridiculous amount of unnecessary
28 > complexity, in violation of the KISS principle [1].
29
30 This statement is incorrect.
31
32 Even if EAPI could be parsed via some non sourcing approach, we
33 *still* have to source the ebuild to get the metadata for when the
34 EAPI is supported (the vast majority of usage). That complexity is
35 there one way or another- we wouldn't be trying to extract the EAPI
36 from the ebuild unless the cache was invalid/missing.
37
38 Phrasing it more bluntly: you can only avoid the sourcing step if you
39 can isolate that the EAPI is unsupported (which is extremely rare in
40 terms of actual user experience). For the rest of the time (well past
41 the 99% mark) sourcing is the immediate step following.
42
43
44 Also, stop referencing wikipedia. People know what "trivial
45 objection" and "KISS" is. Pointing at random wikipedia links when
46 people object is just a form of fallacious argument from authority
47 ( http://en.wikipedia.org/wiki/Argument_from_authority ). :P
48
49 ~brian

Replies

Subject Author
Re: [gentoo-dev] RFD: EAPI specification in ebuilds Zac Medico <zmedico@g.o>