1 |
On Tue, 20 Feb 2007 14:12:12 -0700 "Daniel Robbins" |
2 |
<drobbins.daniel@×××××.com> wrote: |
3 |
| 1) ebuilds and *especially* eclasses do way too many weird things and |
4 |
| can often depend on idiosyncrasies of portage. The eclass bash scripts |
5 |
| can be quite complex and probably 9 out of 10 (99 out of 100?) times |
6 |
| I'd put the burden of compatibility on the eclass rather than the |
7 |
| package manager, because it's the eclass that's trying to do "weird |
8 |
| stuff." |
9 |
|
10 |
Yep. Here's the problem though: |
11 |
|
12 |
How much of the tree is it ok to modify, and how complex are the |
13 |
modifications allowed to be, for the sake of compatibility? |
14 |
|
15 |
The aim with Paludis is to ask for modifications only where it's a hard |
16 |
dried "the ebuild / eclass is doing something highly stupid", simply |
17 |
because that's the only way it will be accepted. Even then, some |
18 |
maintainers refuse to make changes to code that works with one |
19 |
particular version of Portage. And until PMS is standardised, there's |
20 |
nothing that can be done to make them do otherwise. |
21 |
|
22 |
| 2) to ensure cross-package-manager compatibility, all one would need |
23 |
| to do is document what one can and cannot assume regarding Portage |
24 |
| functionality. I see no harm in having the ebuilds/eclasses assume |
25 |
| less and encourage others to write more robust and compatible ebuild |
26 |
| and eclass functions. |
27 |
|
28 |
In principle, I agree. In practice, writing robust bash code is a pain |
29 |
in the ass. If it's the case of a couple of lines of hacks in the |
30 |
package manager or a dozen lines of hacks in hundreds of ebuilds, it's |
31 |
simply more practical to impose a weird requirement upon the package |
32 |
manager. |
33 |
|
34 |
| 3) I regretfully added eclasses to portage. Although they're useful, I |
35 |
| don't think they ever made sense from an architecture perspective and |
36 |
| are certainly not pretty. Eclasses are nearly ubiquitous now, which is |
37 |
| unfortunate. I can't remember seeing an eclass that I ever liked, even |
38 |
| if the functionality was really useful and everything was |
39 |
| well-written, thought out, documented, etc. |
40 |
|
41 |
Eh, my objections to eclasses are purely based upon the limitations |
42 |
imposed by Portage (the "no API change" one). As a general idea they |
43 |
make the tree a lot less complex, and they often move all the package |
44 |
manager dependent hacks into one place... |
45 |
|
46 |
| If you wanted to get me to agree with you by giving me lots of eclass |
47 |
| compatibility issues, then it worked :) |
48 |
|
49 |
Hm. Maybe I should have picked up some of the dodgy ebuild code |
50 |
instead... There's a heck of a lot of that too. It's just that eclass |
51 |
weirdness is easier to find. |
52 |
|
53 |
-- |
54 |
Ciaran McCreesh |
55 |
Mail : ciaranm at ciaranm.org |
56 |
Web : http://ciaranm.org/ |
57 |
Paludis, the secure package manager : http://paludis.pioto.org/ |