Gentoo Archives: gentoo-dev

From: Brian Harring <ferringb@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: The big eclasses massacre
Date: Mon, 08 Nov 2004 05:38:35
Message-Id: 1099892591.2017.35.camel@localhost.localdomain
In Reply to: Re: [gentoo-dev] RFC: The big eclasses massacre by Donnie Berkholz
1 On Sun, 2004-11-07 at 21:32 +0000, Stuart Herbert wrote:
2 > > On Sunday 07 November 2004 21:23, Ciaran McCreesh wrote:
3 > > > Well, that wouldn't be a problem if people kept code in eclasses for as
4 > > > long as necessary. Avoiding the need to change multiple files more than
5 > > > necessary is one of the reasons we have eclasses. Versioned eclasses
6 > > > could very easily lead to that kind of horrid mess we already have with
7 > > > having to update zillions of profiles whenever something changes.
8 Offhand, I'll just state I'm against versioned eclasses. I assume
9 you're attempting to free up the eclass development so that you can
10 basically forget about about backwards compatability, by leaving older
11 eclasses sitting in the tree for all of enternity so that packages
12 installed w/ that eclass can be removed.
13
14 You're attempting to restructure eclasses to compensate for a portage
15 deficiency. Fix the deficiency, don't build kludges/duct tape to get
16 around it :)
17
18 The env code I worked up for in bug #56408 is in portage cvs- among
19 other things, the _only_ time the ebuild/eclasses are required for any
20 package phase is setup. I'll be adjusting the code so that it's only
21 required for setup when building, not for setup when installing from a
22 package also, so eclasses from the tree are no longer used with binpkgs.
23
24 What this means is that when that code is released, eclass versioning is
25 no longer an issue. The env is saved, and portage no longer cares if
26 the eclass exists- you could wipe your tree (exempting profiles), and go
27 and uninstall packages without any major issue, exempting a couple of
28 trivial aux_get exceptions that amount to noisy complaints.
29
30 Ultimately, I'd like to see the tree get to the point where everything
31 but the basic ebuild functions (internal ebuild.sh functions, like
32 dyn_preinst) are stored in the tree- basically move everything so that
33 the tree contains the needed code for creation of the stored ebuild env,
34 and buildling. For a binpkg, you don't need the ebuilds, the tree
35 format is different, so the issue of having eclasses available shouldn't
36 be a requirement (this is a whole other thread however, one I'll bring
37 back up in the near future).
38
39 Back on topic, regarding having multiple eclasses of the same name
40 across repositories, that's a nastier/fuzzier issue. Basically, portage
41 kind of crap shoots which repository it'll raid the eclass from- this
42 should be nailed down so that an ebuild merged from xyz repo, uses xyz's
43 eclasses -first-, then defaulting back to the main repository (portdir).
44 At the moment, inherit doesn't function in this manner- it basically
45 splits the PORTDIR_OVERLAY var, and walks it looking for an appropriate
46 eclass. So if you had repositories a, b, and c, and repositories b and
47 c had eclass xfree, and you were merging an ebuild from, portage would
48 use repository c's xfree eclass.
49 /me notes that was wordy, but it's how it functions currently
50
51 If that seems sane, a bug could be filed regarding it and the inherit
52 function modified to work in the desired manner...
53
54 > What this says to me is that eclasses should be handled using
55 > DEPEND-like syntax. inherit x11, or inherit >=x11-2.
56 Err. no. That dirties things up for minimal gain, imo. Versioning
57 eclasses -will- allow you to make a clean break from the existing eclass
58 implementation, however its adding additional logic to inherit that's
59 ultimately no different then inheritting a different eclass name. What
60 does the proposed inherit syntax bring to the table, that isn't already
61 available?
62
63 My two cents :)
64 ~brian
65
66
67 --
68 gentoo-dev@g.o mailing list

Replies

Subject Author
Re: [gentoo-dev] RFC: The big eclasses massacre Travis Tilley <lv@g.o>