1 |
On Sunday 19 September 2004 21:08, Simone Gotti wrote: |
2 |
> By the way, I think that it's possible to split EVERY kde program/libs in a |
3 |
> single package, this can be possibile by heavily patching the Makefiles |
4 |
> like you've said so they can link to an installed lib instead of the local |
5 |
> one, this libs will be a dep of the program and it should be of course a |
6 |
> different ebuild. |
7 |
It's certainly possible. I even think (well, intuition...) the patching won't |
8 |
have to be very heavy. |
9 |
|
10 |
> |
11 |
> I'm already giving a little help to caleb and carlo on the kde ebuilds and |
12 |
> if ypu and they think that a lot of people thinks that having single kde |
13 |
> programs instead of the standard modules will be a better idea I'll be VERY |
14 |
> happy to start hacking on this. My great fear is that it will slow down the |
15 |
> development of the ebuilds because this bring to a lot of additional work! |
16 |
> Think that probably the Makefile's patches must be changed on every kde |
17 |
> major release. |
18 |
> |
19 |
> All I need is to know if you (gentoo kde developers) are really interested |
20 |
> on this work. Let me know! |
21 |
As I said, I'm definitely going to try making this work, but won't have real |
22 |
time until the weekend after next (and most days after that, hopefully), so |
23 |
you can beat me to it. |
24 |
|
25 |
I've just tried the confcache patch. It's integrated into portage .51 cvs |
26 |
snapshots here http://dev.gentoo.org/~ferringb/ebuild-daemon/51-pre20-cvs/ - |
27 |
they apparently include other highly experimental stuff and the last one has |
28 |
some bugs already fixed in cvs, so be in touch with #gentoo-portage if using |
29 |
these. To enable confcache, add 'confcache' to FEATURES and change the kde |
30 |
ebuilds to use econf rather than call configure directly. This results in the |
31 |
kde.eclass attached - the change is trivial, but as I'm on rsync not cvs atm, |
32 |
I can't make a diff immediately, sorry. The change for split packages should |
33 |
also be on the order of a five-liner in kde.eclass, apart from the makefile |
34 |
changes. |
35 |
|
36 |
On my athlon xp 2600, this makes the kdelibs configure run go down from 66 |
37 |
seconds to 28 seconds. At least 10-12 seconds of each of these two numbers is |
38 |
due to makefile generation, which will be very much reduced in split-up |
39 |
ebuilds, so we get 54 sec -> 16 sec, or a 5x improvement. |
40 |
|
41 |
Also, on slower machines a far larger percent of time spent in (non-cached) |
42 |
configure is due to slow compilations rather than (as here) IO, so the |
43 |
benefit will be even greater there. This indicates we should at least |
44 |
reevluate the emerge performance factor of splitting up the kde ebuilds. |
45 |
|
46 |
Using my old rough formula, we get: |
47 |
17 configure scripts (before splitting ebuilds) --> 20-60 minutes total |
48 |
running time |
49 |
splitting up --> >=220 packages (? but at least that many, I believe) |
50 |
splitting up without confcache --> 220-660 minutes, i.e. 3.6-11 hours, total |
51 |
running time (clearly unacceptable) |
52 |
splitting up with confcache --> about 15-20% of above, i.e. 1-2.2 hours total |
53 |
running time |
54 |
|
55 |
According to these numbers, if we both add confcache and split the ebuilds, |
56 |
the total time for emerging all or nearly all of kde will increase by 0.6-1.2 |
57 |
hours, plus the overhead from running the emerge cycle 200 more times, which |
58 |
I hope is relatively negligible (a few minutes?). |
59 |
|
60 |
Compared with the benefits (to those who don't want all of kde, and |
61 |
considering that >95% of people typing 'emerge kde' to save package selection |
62 |
time don't really want kdetoys and kdeedu and such, this seems on first sight |
63 |
to be a reasonable tradeoff for the added functionality. What do you think, |
64 |
everyone? Also note that my benchmarking is hardly scientific, so I'd be glad |
65 |
if someone bothered to repeat it and compare his results to mine. |
66 |
|
67 |
-- |
68 |
Dan Armak |
69 |
Gentoo Linux developer (KDE) |
70 |
Matan, Israel |
71 |
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key |
72 |
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD 0069 508D 9143 8D5F 8951 |