On Tue, Feb 22, 2005 at 04:57:50PM +0100, Gustavo de Lama wrote: > The matter is I cant but give my two cents and say: SLOT. Not possible, unfortunately :)
The problem is, eclasses aren't installed really- they're just updated alongside ebuilds. They are _part_ of the ebuild in essence, so they're required to be available just to get the metadata out of an ebuild (the SLOT setting for example). So that ixnays it pretty effectively- slot is useful/relevant only for installing packages- since eclasses themselves aren't installed (any more then an unmerged ebuild is 'installed'), not possible. The other issue, and this is why eclasses are proposed to be moved within the tree, is that since eclasses are 'live', constantly in use, the slotting concept doesn't work- you need some way to transfer over from the existing eclasses in the tree, to a point where the eclasses no longer have to maintain the exact api for years on end. If you're proposing basically having a 'new' eclass whenever the api is changed, for stable portage, yeah, that's the route that would _have_ to be taken for any removals from an eclasses existing api. For portage cvs head, it's not _required_ though, so instead of it being a req (never remove an eclass, or a func from it's api, only add), the decision of 'versioning'/'slotting' via a new eclass name is completely up to the eclass maintainer. Re-iterating, that is the reason why the relocation of eclasses within the tree is required- the 'new' eclasses that don't have the non-subtractable api requirements, due to their dynamic nature *cannot* be accessible by older portage versions. If (for example) current stable portage could use one of the 'dynamic' eclasses, it would result in pretty much continual borkage/failures for that system, which isn't desirable. :) ~brian -- [email protected] mailing list
