Gentoo Archives: gentoo-dev

From: Ciaran McCreesh <ciaranm@×××××××.org>
To: gentoo-dev@l.g.o
Subject: Re: EAPI spec (was Re: [gentoo-dev] Re: let's clear things up (was Slacker archs))
Date: Tue, 20 Feb 2007 21:42:08
Message-Id: 20070220213852.1937ec61@snowdrop
In Reply to: Re: EAPI spec (was Re: [gentoo-dev] Re: let's clear things up (was Slacker archs)) by Daniel Robbins
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/

Attachments

File name MIME type
signature.asc application/pgp-signature