1 |
Anthony Gorecki posted <200409181103.01872.anthony@××××××××××.com>, |
2 |
excerpted below, on Sat, 18 Sep 2004 11:02:53 -0700: |
3 |
|
4 |
> On Saturday 18 September 2004 2:16 am, Dan Armak wrote: |
5 |
>> A kde configure script takes as much as a minute or more to run. Today when |
6 |
>> you emerge all of kde you run ~17 configure scripts, i.e. as much as 20 |
7 |
>> minutes goes there (of course everything depends on the speed of the |
8 |
>> machine). If all kde-base packages are split into separate subpackage |
9 |
>> ebuilds, you'll get hundreds of subpackags (200+). |
10 |
> |
11 |
> Perhaps instead of using completely independent packages for the software |
12 |
> applications, a set of "pseudo-packages" could be created to alleviate the |
13 |
> extra configuration requirements? |
14 |
> |
15 |
> I've previously used the DO_NOT_COMPILE option for the KDE ebuilds and |
16 |
> successfully screened out many of the unwanted packages. If the dependencies |
17 |
> for any given software application were known (herein lies the large amount |
18 |
> of maintenance), it should then be possible to manipulate that environment |
19 |
> variable to only compile what is necessary for the user. Granted it would |
20 |
> take a fair amount of script-work, however it's an option to consider. |
21 |
|
22 |
As a Gentoo and KDE user that hopes to someday be a Gentoo developer.. |
23 |
|
24 |
I to have had a bit of experience with DO_NOT_COMPILE. Namely, with the |
25 |
KDE 3.3.0 beta ebuilds, on AMD64 (and often running ~amd64 keyword added |
26 |
then removed toolchain elements, mainly binutils and glibc, so bug reports |
27 |
might be "noise"), I had to use that to tell KPovModeler (IIRC) from |
28 |
kdegraphics not to compile, as it was running into an error rather more |
29 |
advanced than my ability to fix. |
30 |
|
31 |
I have a suggestion based on the now ~* masked due to linux26-headers |
32 |
requirement glibc-2.3.4-20040916 and its new method for handling locales. |
33 |
It has a new "userlocales" use flag, which when activated, only merges the |
34 |
locales listed in /etc/locales.build. Since I only use en-US and can't |
35 |
read anything other than en anyway, that's a pretty neat way to cut |
36 |
compile time for all those locales I don't need. I like the idea! |
37 |
|
38 |
I'd like to see it expanded, with perhaps several *.build files, maybe |
39 |
moved out of /etc/ directly into /etc/portage/build or some such. In each |
40 |
case, the idea would be to allow user configuration of only parts of a |
41 |
generally large package to be merged. Another perfect example might be |
42 |
xorg. Create a /etc/portage/build/xorg.build file, which would have two |
43 |
specifiers, graphics adaptor modules to be compiled, and input modules to |
44 |
be compiled, so I could simply say ATI (or better yet Radeon) and |
45 |
mouse/keyboard only. (The make.conf VIDEO_CARDS= thing that I saw hinted |
46 |
at in some post I read never seems to work, here, possibly because I don't |
47 |
have it set quite right, as I've never come across anything listing |
48 |
exactly what the options are and I probably have it wrong. On the last |
49 |
xorg merge I did I used ebuild and limited it by hand, and found it took |
50 |
ati not radeon even tho they are separate drivers, and I have radeon in |
51 |
the make.conf entry, so next time I'm going to try ati and see if it takes |
52 |
that automatically. It'd help if there was a comment in the ebuild |
53 |
listing the choices...) |
54 |
|
55 |
Of course, there'd be a kde.build file as well. It would provide a |
56 |
section for each kdexxx ebuild, and simply subtract anything not listed |
57 |
from the build process by adding it to DO_NOT_COMPILE. |
58 |
|
59 |
The idea here would be to control it in two ways. First, as with glibc, |
60 |
it'd only be enabled if the required use flag (disabled by default) was |
61 |
on. Otherwise, as glibc does with the locales, it would just build |
62 |
all of them. Second, the file would be put there by default, with all |
63 |
sub-packages in it by default, so even if the use flag was enabled, unless |
64 |
a user specifically commented out or deleted a subpackage from the list, |
65 |
it would be compiled as it is now. I'd suggest not even giving the option |
66 |
of breaking kdelibs apart, and possibly keeping kdebase whole, as well, |
67 |
simply to minimize the possibility of breaking anything else that depends |
68 |
on them. |
69 |
|
70 |
Then, at the top of the file put a big hairy warning about how some |
71 |
package components, particularly in kdebase, are depended on by others, |
72 |
and to disable the use flag and recompile all packages if there are |
73 |
dependency issues, and then leave everything else up to the user. Any |
74 |
bugs on related dependency issues would be marked invalid, see the warning |
75 |
in the file, etc. so it wouldn't become a big support issue. Further, all |
76 |
it would take for implementation would be a function added to kde-dist, to |
77 |
parse kde.build, and add anything not listed in the appropriate ebuild |
78 |
section to the DO_NOT_COMPILE env-var. This function could then either |
79 |
be invoked by the appropriate kde-dist function directly (thus requiring |
80 |
no individual ebuild mods at all, keeping in mind that it defaults to |
81 |
current build-all behavior so it could be added without changing current |
82 |
behavior on current ebuilds except that another use flag would be there |
83 |
now), or called by the specific ebuilds. |
84 |
|
85 |
Alternatively, kde.build could list only the packages one did NOT want |
86 |
merged, in each section. That would probably be simpler to implement with |
87 |
KDE, since all that would be required is to brainlessly put everything |
88 |
listed directly in the env-var, but it might be preferable for all the |
89 |
*.build files to operate the same, and since glibc's locale.build already |
90 |
operates by inclusion of what's listed, that's the way I wrote it, above. |
91 |
|
92 |
IMO, this idea fills all the customizability requirements, while at the |
93 |
same time being quite simple to implement and support, because it doesn't |
94 |
do any subpackaging with the subsequent dependency and maintenance issues. |
95 |
|
96 |
The one disadvantage from a user perspective is that it would require |
97 |
remerging the entire ebuild if another subpackage was desired, but given |
98 |
the trade-offs, I see that as quite acceptable. Users would either |
99 |
compile and merge everything as they now do by default, or they'd be |
100 |
excising subpackages as they so chose, with results no different than a |
101 |
forced recompile if they changed their mind about use flags. |
102 |
|
103 |
>From my perspective, this would be a perfect way to implement |
104 |
configurability at a level beyond that which it is practical to do with |
105 |
use flags, due to their incredible proliferation if one tries. Obviously, |
106 |
I really like the solution as I've seen it in glibc! =:^) |
107 |
|
108 |
-- |
109 |
Duncan - List replies preferred. No HTML msgs. |
110 |
"They that can give up essential liberty to obtain a little |
111 |
temporary safety, deserve neither liberty nor safety." -- |
112 |
Benjamin Franklin |
113 |
|
114 |
|
115 |
|
116 |
-- |
117 |
gentoo-dev@g.o mailing list |