Gentoo Archives: gentoo-dev

From: Dan Armak <danarmak@g.o>
To: gentoo-dev@××××××××××××.org
Subject: Re: [gentoo-dev] KDE 3.4.0; reminder - there are split ebuilds
Date: Thu, 17 Mar 2005 18:39:18
Message-Id: 200503172105.37587.danarmak@gentoo.org
In Reply to: Re: [gentoo-dev] KDE 3.4.0; reminder - there are split ebuilds by "W.Kenworthy"
1 On Thursday 17 March 2005 04:09, W.Kenworthy wrote:
2 > One thing missing from this how to avoid using the spit ebuilds (i.e.,
3 > some kind of use flag may be needed?).
4 'avoid'? You can still get the monolithic ebuilds if you emerge kde rather
5 than emerge kde-meta (and kdebase rather than kdebase-meta), etc.
6
7 > Even with distcc and multiple
8 > helpers, it only takes a few separate packages to blow the time needed
9 > to compile past a single package.
10 Are you saying it takes longer to compile just a few split packages derived
11 from kdebase than the monolithic kdebase package? Could you give actual
12 numbers to back that up?
13
14 It's true that distcc gives an advantage to the monolithic ebuilds because
15 they get to parallelize a lot more. But the solution to this should be
16 parallel emerging and sharing compiled packages, not huge packages.
17
18 >
19 > Example on a K6-500, kdelibs took (according to genlop) 11hrs 39 mins.
20 kdelibs is the same whether you use monolithic or split ebuilds.
21
22 > This was out of some 3 and a bit days compiling 86 packages (big update
23 > - mostly gnome related - see last paragraph). You say in the documents
24 > that a split kde will do around 100 packages in a typical update.
25 I don't know if that's typical... Anyway, monolithic ebuilds install the
26 equivalent of 300 packages every time. Even today's split ebuilds, which are
27 not optimal, take a lot less time to do an upgrade (with 100 changed
28 packages) than a monolithic ebuilds upgrade (recompiling everything).
29
30 > On
31 > the above figures, that looks like it will blow my compile times way
32 > out! Not just an acceptable small amount.
33 The time required to emerge kdelibs is far far bigger than any other kde split
34 package, and all but a few monolithic ones.
35
36 > Is it only me that thinks this idea is crazy, as the biggest single
37 > criticism of gentoo is build from source compile time, especially on the
38 > first install where this will hit really really badly? Monolithic
39 > builds are not ideal and have problems of their own, but here I think
40 > practicality needs to come into it.
41 You talk as if splitting kdebase into 40 ebuilds makes the total kdebase-meta
42 compile time 40 times greater than that of kdebase...
43
44 The very worst-case is several tens of percents more time. This is bad, but
45 it's not hopeless, and we'll be improving it in various ways.
46
47 > Alternatively, some major fixes to
48 > the build system to fix the core problem (mostly the configure stage
49 > needs caching properly) well before this is implemented.
50 This is true. It's why we still provide and support the monolithic ebuilds.
51
52 KDE4 will (probably? hopefully?) use SCons instead of autotools, which will be
53 1) a lot faster and 2) easily and powerfully cacheable (confcache for
54 autoconf configure scripts is a hack...). Even if they don't, there's
55 confcache, and unsermake, and we can avoid running make -f
56 admin/Makefile.common with some work. And other speedups like gcc 4 (faster
57 c++ frontend, precompiled headers...) coming up in the same timeframe.
58
59 As I've said elsewhere, our goal is that for kde 4 at the latest the split
60 ebuilds will be 1) almost as fast as the monolithic ones _then_ and 2) faster
61 than the monolithic ones are _now_. That accomplished, we'll drop the
62 monolithic ebuilds.
63
64 Remember that the split ebuilds provide a lot of benefits, they're not just a
65 gimmick.
66
67 --
68 Dan Armak
69 Gentoo Linux developer (KDE)
70 Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
71 Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD 0069 508D 9143 8D5F 8951