public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] The future of eclasses
@ 2002-02-06 20:45 Dan Armak
  2002-02-07 19:27 ` Karl Trygve Kalleberg
  0 siblings, 1 reply; 7+ messages in thread
From: Dan Armak @ 2002-02-06 20:45 UTC (permalink / raw
  To: gentoo-dev

Hi everyone,

About five months ago I came up with the idea of eclasses, and drobbins 
agreed for me to make a test case of all the kde ebuilds, since they are and 
were extremely similar to one another.

The test has been a success but because of big differences between inheriting 
and regular ebuilds, non-kde ebuilds have not become inheriting. They are 
also less uniform then the kde ones and are harder to generalise.

Unfortunately other developers almost never write inheriting ebuilds. The 
main complaint against eclasses as they are now, voiced by Hallski and 
others, is that they change the interface the ebuild writer has to deal with 
too radically. So developers stay away from the eclasses. Also eclasses are 
too separate from the rest of portage; at one point I had to recreate some 
basic version comparison functionality from scratch (that's scrapped now).

To remedy that, I propose to merge at least the lower levels of the ebuilds 
(e.g. base.eclass, newdepend(), etc.) into portage (e.g. ebuild.sh). What 
would be left is a high-level interface for the kde ebuilds. Ideally nothing 
but the kde*.eclass files should be left outside portage.

What might be merged includes stuff which is similar to what is already in 
portage. A quick list:

- Default functions (i.e. src_unpack calling unpack $A, src_compile calling 
make). These have existed in base.eclass for months, but recently similar 
functions have been added to ebuild.sh (the einstall stuff). Obviously this 
is needless duplication of effort.

- newdepend(), which adds its parameters to $DEPEND and $RDEPEND at the same 
time. It can also accept special parameters, for example the parameter 
"/autotools" adds autoconf, automake, make etc. to DEPEND (but not RDEPEND).

- inherit(), which is really just a stub for source eclass || die. 

- (possibly) need-qt(), need-kde(), set-kdedir(), set-qtdir(), 
qtver-from-kdever(), min-qt-ver(): these are the functions dealing with the 
location of KDE2 and 3. They tell apps where to install and against which 
kdelibs/qt to link. They are based on the make.{globals,conf} $KDE{2,3}DIR, 
$KDE{2,3}LIBSDIR settings.

What's left will then be a very simple and coherent interface for kde 
ebuilds, and will be hopefully be followed by eclasses for other things, such 
as Azarah's autotools.eclass which allows you to use autoconf 2.5 and 
automake 2.4.

I've just now committed a big cleanup of the eclasses (transparent from the 
inheriting ebuild's point of view) which eliminated several eclasses and 
brought all misc functions together in a new functions.eclass. I'll update 
the docs tomorrow.

This is all almost certainly portage v2 stuff. However I'd like everyone 
working on portage (e.g. Bevin, with whom I've spoken) to know where we 
stand, to coordinate our efforts. As always, any ideas, forecasts, 
suggestions etc. are always welcome.

-- 
Dan Armak
Gentoo Linux Developer, Desktop Team (KDE)
Matan, Israel


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-02-07 20:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-02-06 20:45 [gentoo-dev] The future of eclasses Dan Armak
2002-02-07 19:27 ` Karl Trygve Kalleberg
2002-02-07 16:51   ` John Stalker
2002-02-07 17:43   ` Tod M. Neidt
2002-02-07 18:41     ` Dan Armak
2002-02-07 20:07       ` Tod M. Neidt
2002-02-07 18:38   ` Dan Armak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox