Gentoo Archives: gentoo-dev

From: Duncan <1i5t5.duncan@×××.net>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Re: Segregating KDE?
Date: Sun, 19 Sep 2004 04:43:16
Message-Id: pan.2004.09.19.04.43.16.326838@cox.net
In Reply to: Re: [gentoo-dev] Segregating KDE? by Anthony Gorecki
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

Replies

Subject Author
Re: [gentoo-dev] Re: Segregating KDE? Dan Armak <danarmak@g.o>