1 |
Patrick Lauer <patrick <at> gentoo.org> writes: |
2 |
|
3 |
> |
4 |
> For quite some time (over a year, actually) we've been discussing the |
5 |
> mysterious and often misunderstood GLEP55. |
6 |
> [http://www.gentoo.org/proj/en/glep/glep-0055.html] |
7 |
> |
8 |
> The proposed solution to a problem that is never refined, in short, is to add |
9 |
> the EAPI into the ebuild filename "to make things easier". Which is a rather |
10 |
> unsubstantiated idea that doesn't really add up if you look at it ... and it |
11 |
> adds some artifacts that we've been laughing about for a decade because |
12 |
> microsoft did the exact same thing (binding the executable-ness of a file to |
13 |
> the filename). |
14 |
> |
15 |
|
16 |
The problem isn't GLEP55 (as such), it is a bit more subtle then that and runs |
17 |
deeper then just this GLEP. |
18 |
|
19 |
For starters it is the whole GLEP process |
20 |
GLEP [Gentoo Linux Enhancement Proposals] is meant as a central place to pull |
21 |
*proposals* that provide enhancements to Gentoo. |
22 |
Some are quite self-apparent (GLEP08) |
23 |
others are a bit more... lacking (GLEP55) |
24 |
Why is GLEP55 lacking? because it providing a "solution" to a problem that is |
25 |
not actually defined |
26 |
"The current way of specifying the EAPI in ebuilds is flawed" |
27 |
That is not defining the problem, that is an opening statement. |
28 |
|
29 |
"In order to get the EAPI the package manager needs to source the ebuild, which |
30 |
itself needs the EAPI in the first place." |
31 |
It then describes "a" mechanism utilising an ebuild (source /usr/portage...) to |
32 |
obtain the EAPI from within the ebuild (EAPI=...). Using this method the entire |
33 |
content of GLEP55 is accurate. |
34 |
|
35 |
However, this is not the only method to determine the EAPI of an ebuild that |
36 |
exists and as such the viability of GLEP55 as the best solution is brought into |
37 |
question |
38 |
Where is it defined that the ebuild must be sourced 1st? |
39 |
Why does the ebuild have to be sourced 1st? |
40 |
|
41 |
|
42 |
This then results in ml participants taking this GLEP as the *only* solution |
43 |
(to a problem that hasn't actually been defined...) with statements like |
44 |
"That's *obviously* completely wrong" |
45 |
If something was so obvious this GLEP would have been approved/rejected by now, |
46 |
but it hasn't because the problem isn't defined "because it is obvious" |
47 |
|
48 |
If a problem cannot be describe then the problem is not understood by the one |
49 |
writing about the problem. |
50 |
|
51 |
|
52 |
The GLEP process needs to be refined such that some means of initially raising |
53 |
a problem (be it a GLEP itself) that describes the problem in as much detail as |
54 |
possible. Once said GLEP has been accepted, ie the problem is acknowledged, |
55 |
(sub) GLEP's can be submitted providing possible solutions to the problem. |
56 |
|
57 |
This way the problems encounted with this particular GLEP, a GLEP that keeps on |
58 |
re-surfacing, would be minimised |
59 |
|
60 |
GLEP55 explicitly states that the EAPI to be recorded in the file extension, |
61 |
while, as this thread has shown, a number of methods can be used to source the |
62 |
EAPI version of the ebuild *without* the need of actually source'ing the ebuild |
63 |
(grep, sed, metacache) all of which are viable solutions to the problem, the |
64 |
problem that is so obvious it doesn't actually have to be defined |
65 |
|
66 |
|
67 |
Thing is the package manager *needs* to know the EAPI that the ebuild complies |
68 |
to before it can source it to ensure |
69 |
1) the correct EAPI-specific eclass is inherited |
70 |
2) Package manager needs to protect itself from ebuild syntax that earlier |
71 |
system packages (eg bash) would fail with |
72 |
|
73 |
|
74 |
So please just reject GLEP55, not because its wrong but because it is |
75 |
incomplete |
76 |
reject GLEP55 and have a GLEP62 submitted which defines the problem, then |
77 |
request GLEP62-{1,2,3...} be submitted providing possible solutions to the |
78 |
problem. GLEP55 can then be submitted as a possible solution. Then |
79 |
developers/council can vote on the sub-GLEP's to choose which solution is the |
80 |
best technically as well as what is best for the users (dev's and general |
81 |
users) |
82 |
|
83 |
|
84 |
Traceability of issues and solutions is needed, traceability that extends |
85 |
beyond mailing-lists and irc logs (discussion mediums which are good for |
86 |
instantaneous discussion of issues, but are rubbish for returning to an issue a |
87 |
few years down the line, no matter how many logs exist). Report the problem |
88 |
better |
89 |
|
90 |
How clear is it from the stored infomation available whether EAPI's when they |
91 |
were 1st conceived and added to portage/paludis/pkgcore was the best solution |
92 |
to the problem of expanding on ebuild capability. Or more to the point was how |
93 |
it was done partly responsible for the mess we are in now? |
94 |
|
95 |
If the problem on ebuild expansion was better documented and defined, maybe |
96 |
this GLEP wouldn't even exist, we may have been already using *.ebuild-3 |
97 |
because it was the best solution |