Gentoo Archives: gentoo-dev

From: Rich Freeman <rich0@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFD: EAPI specification in ebuilds
Date: Mon, 12 Mar 2012 15:21:22
Message-Id: CAGfcS_n3KBqjfA0HqTdmF2RQgb_raCZ=eRNa8aoaOgNRs1p3Ww@mail.gmail.com
In Reply to: Re: [gentoo-dev] RFD: EAPI specification in ebuilds by Kent Fredric
1 On Mon, Mar 12, 2012 at 6:12 AM, Kent Fredric <kentfredric@×××××.com> wrote:
2 >
3 > There's the obvious case of compiled-binaries where that might not be
4 > possible, but thats definately strawman stuff and I wouldn't support
5 > that sort of nonsense anyway. Compiled binaries for ebuilds can gtfo.
6 >
7
8 Why do I feel like a similar debate must have happened on some list
9 back when the SMTP message terminator was worked out? The problem is
10 that we're running into is the use of in-band control information.
11
12 An advantage of sticking the EAPI in the filename is that it is
13 completely out-of-band. Other options like an external file or POSIX
14 attributes have the same advantage (with the disadvantage that they
15 are harder to keep in-sync or support in general).
16
17 If you want to stick the EAPI inside the file then we have to go with
18 one of two routes:
19
20 1. Make the file directly interpret-able by some existing tool like
21 bash, xml parsers, or (gtfo) ld-linux.so. This requires making the
22 EAPI in-band info, and thus if the file format changes there is risk
23 that any existing code that interprets EAPIs could break, to the
24 degree that we weren't infinitely clever in designing the spec.
25
26 2. Make the file require pre-processing before being fed to another
27 interpreter. This breaks syntax-highlighting and such, and is
28 generally more of a pita. However, this allows in-file EAPI info to
29 remain out-of-band. An ebuild might be an xml file with EAPI and
30 other meta-data, and might contain sections that get ripped out and
31 handed over to bash, python, or ld-linux.so to the extent that you
32 want to be told to gtfo.
33
34 In my thinking the option with the fewest drawbacks and the greatest
35 extent of future-proofing is to go with GLEP 55 and stick it in the
36 filename. Every filesystem and rsync tool handles filenames, they're
37 impossible to separate from file contents, and every interpreter out
38 there ignores them.
39
40 If we don't want to stick it in the filename then either we have to
41 decide that whatever we come up with could break, or that we really
42 have to change what ebuilds look like.
43
44 Rich