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 |