public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] Segregating KDE?
@ 2004-09-18  7:57 Anthony Gorecki
  2004-09-18  9:16 ` Dan Armak
  2004-09-18 13:11 ` [gentoo-dev] " Caleb Tennis
  0 siblings, 2 replies; 27+ messages in thread
From: Anthony Gorecki @ 2004-09-18  7:57 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1280 bytes --]

Gentoo Developers and Users,

After having an "enlightening" chat with #kde several weeks ago regarding 
their (bloated) packaging scheme, it mas made clear that their stance is to 
continue with that method of packaging. While I can understand that their 
packaging scheme may benefit the intended target audience, it unfortunately 
leaves me feeling considerably less than satisfied. 

During the discussion it was mentioned that they consider it the 
responsibility of the individual Linux distribution to separate the software 
applications for distribution (the file hierarchy of the KDE packages 
simplifies that task) to the community, if it was appropriate for the 
distribution's design philosophy.

If Gentoo is committed to offering users a large degree of customizability, 
wouldn't segregating the various KDE components lend itself to continuing the 
evolution of that flexibility? I would cheer at the ability to type "emerge 
kmail" rather than "emerge kdepim".

I would like to request that any interested parties contribute their opinions 
on this subject. It would be interesting to see how Gentoo users feel about 
the current packaging scheme and what, if anything, could be improved.


-- 
Anthony Gorecki
Ectro-Linux Foundation


[-- Attachment #2: Type: application/pgp-signature, Size: 828 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18  7:57 [gentoo-dev] Segregating KDE? Anthony Gorecki
@ 2004-09-18  9:16 ` Dan Armak
  2004-09-18 18:02   ` Anthony Gorecki
  2004-09-18 13:11 ` [gentoo-dev] " Caleb Tennis
  1 sibling, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-18  9:16 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1516 bytes --]

On Saturday 18 September 2004 10:57, Anthony Gorecki wrote:
> If Gentoo is committed to offering users a large degree of customizability,
> wouldn't segregating the various KDE components lend itself to continuing
> the evolution of that flexibility? I would cheer at the ability to type
> "emerge kmail" rather than "emerge kdepim".

This defnitely should go onto our FAQ if we have one.

Please see bug #11123 for the previous discussion on the subject.

This is the key paragraph quoted from there:
A kde configure script takes as much as a minute or more to run. Today when 
you emerge all of kde you run ~17 configure scripts, i.e. as much as 20 
minutes goes there (of course everything depends on the speed of the 
machine). If all kde-base packages are split into separate subpackage 
ebuilds, you'll get hundreds of subpackags (200+). That means an extra 200 
minutes -- 3.5 hours -- added to the compilation time of all of KDE. And most 
people do want the whole of kde. This is unacceptable

That said, the recent config-cache patch to portage, if accepted, could make 
this rather painless, so now this issue is finally worth raising again. (And 
perhaps unsermake could also help somehow?) I haven't tried it out yet 
though, so let's have some active KDE maintainer comment ;-)

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18  7:57 [gentoo-dev] Segregating KDE? Anthony Gorecki
  2004-09-18  9:16 ` Dan Armak
@ 2004-09-18 13:11 ` Caleb Tennis
  2004-09-18 14:06   ` Nick Dimiduk
  1 sibling, 1 reply; 27+ messages in thread
From: Caleb Tennis @ 2004-09-18 13:11 UTC (permalink / raw
  To: gentoo-dev; +Cc: Anthony Gorecki


> If Gentoo is committed to offering users a large degree of
> customizability,
> wouldn't segregating the various KDE components lend itself to continuing
> the
> evolution of that flexibility? I would cheer at the ability to type
> "emerge
> kmail" rather than "emerge kdepim".

It would be wonderful to have this functionality - there are two hurdles
though.  One is that someone needs to implement it.  The other is that
someone needs to maintain it.  The second part is the harder of the two.

Currently, it's pretty difficult to just maintain the ebuilds in their
current state, if you consider how in flux dependencies are between
releases.

I would love to see this packaging scheme migrated to sub packages within
portage, but after having spent the past year and half with Gentoo/KDE I
can tell you it's not something I'm personally going to try and implement.
 If you're up for the challenge, then let's talk.

Caleb




--
gentoo-dev@gentoo.org mailing list


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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 13:11 ` [gentoo-dev] " Caleb Tennis
@ 2004-09-18 14:06   ` Nick Dimiduk
  0 siblings, 0 replies; 27+ messages in thread
From: Nick Dimiduk @ 2004-09-18 14:06 UTC (permalink / raw
  To: Caleb Tennis; +Cc: gentoo-dev, Anthony Gorecki

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Caleb Tennis wrote:
| I would love to see this packaging scheme migrated to sub packages within
| portage

Would you mind elaborating in regard to this sub-packages proposition?
Possibly provide an example using a common package?  Also, how would
this differ from having a virtual with a set of depends, such as found
in kde-base/kde?

- -Nick Dimiduk
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFBTEDKMRGACoLVQ1kRAgCqAJ41wBpm/FmjHC/DUNHTi++UVE+sCQCeO/2Q
/nCXUojFbSaJWUNzoAMH+iw=
=ui8C
-----END PGP SIGNATURE-----

--
gentoo-dev@gentoo.org mailing list


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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18  9:16 ` Dan Armak
@ 2004-09-18 18:02   ` Anthony Gorecki
  2004-09-18 18:29     ` Dan Armak
  2004-09-19  4:43     ` [gentoo-dev] " Duncan
  0 siblings, 2 replies; 27+ messages in thread
From: Anthony Gorecki @ 2004-09-18 18:02 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1361 bytes --]

On Saturday 18 September 2004 2:16 am, Dan Armak wrote:
> A kde configure script takes as much as a minute or more to run. Today when
> you emerge all of kde you run ~17 configure scripts, i.e. as much as 20
> minutes goes there (of course everything depends on the speed of the
> machine). If all kde-base packages are split into separate subpackage
> ebuilds, you'll get hundreds of subpackags (200+). 

Perhaps instead of using completely independent packages for the software 
applications, a set of "pseudo-packages" could be created to alleviate the 
extra configuration requirements? 

I've previously used the DO_NOT_COMPILE option for the KDE ebuilds and 
successfully screened out many of the unwanted packages. If the dependencies 
for any given software application were known (herein lies the large amount 
of maintenance), it should then be possible to manipulate that environment 
variable to only compile what is necessary for the user. Granted it would 
take a fair amount of script-work, however it's an option to consider.


> And most people do want the whole of kde.

Unfortunately, I don't fall into the category of "most people" when it comes 
to KDE's software; the above comment is a prime example of why I migrated to 
Gentoo and Linux as opposed to windows.


-- 
Anthony Gorecki
Ectro-Linux Foundation


[-- Attachment #2: Type: application/pgp-signature, Size: 828 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 18:02   ` Anthony Gorecki
@ 2004-09-18 18:29     ` Dan Armak
  2004-09-18 18:31       ` Dan Armak
  2004-09-18 19:09       ` Anthony Gorecki
  2004-09-19  4:43     ` [gentoo-dev] " Duncan
  1 sibling, 2 replies; 27+ messages in thread
From: Dan Armak @ 2004-09-18 18:29 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2225 bytes --]

On Saturday 18 September 2004 21:02, Anthony Gorecki wrote:
> Perhaps instead of using completely independent packages for the software
> applications, a set of "pseudo-packages" could be created to alleviate the
> extra configuration requirements?
I don't understand what you mean by pseudo-packages, unless it's the 
DO_NOT_COMPILE thing below. Please elaborate.

>
> I've previously used the DO_NOT_COMPILE option for the KDE ebuilds and
> successfully screened out many of the unwanted packages. 
Which doesn't scale, because portage can't manage those dependencies. You 
can't depend on just one piece of kdebase (eg khtml) this way, and you can't 
add/remove just one piece without also recompiling all other pieces you want 
to keep.

This and similar solutions have been discussed to death before now, see bug 
#11123.

> If the 
> dependencies for any given software application were known (herein lies the
> large amount of maintenance), 
IIRC debian and other distributions already provide separate packages for the 
individual kde apps, and so presumably have the entire dependency tree mapped 
out. Besides, missing dependencies as such are relatively easy to catch and, 
once diagnosed, trivial to fix compared, to other problems.

> it should then be possible to manipulate that 
> environment variable to only compile what is necessary for the user.
> Granted it would take a fair amount of script-work, however it's an option
> to consider.
See above.

>
> > And most people do want the whole of kde.
>
> Unfortunately, I don't fall into the category of "most people" when it
> comes to KDE's software; the above comment is a prime example of why I
> migrated to Gentoo and Linux as opposed to windows.
I mentioned 'most people' simply to point out that we're assigning limited 
resources to the greatest demand. As Caleb says, with enough maintainers this 
would be quite doable (provided the config caching portage enhancement 
alleviated the performance issue).

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 18:29     ` Dan Armak
@ 2004-09-18 18:31       ` Dan Armak
  2004-09-18 19:19         ` Seemant Kulleen
  2004-09-18 19:09       ` Anthony Gorecki
  1 sibling, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-18 18:31 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 565 bytes --]

On Saturday 18 September 2004 21:29, Dan Armak wrote:
> Which doesn't scale, because portage can't manage those dependencies. You
> can't depend on just one piece of kdebase (eg khtml) this way, and you
> can't add/remove just one piece without also recompiling all other pieces
> you want to keep.
Err, of course, khtml _is_ in kdelibs. Bad example, sorry.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 18:29     ` Dan Armak
  2004-09-18 18:31       ` Dan Armak
@ 2004-09-18 19:09       ` Anthony Gorecki
  2004-09-18 19:45         ` Dan Armak
  1 sibling, 1 reply; 27+ messages in thread
From: Anthony Gorecki @ 2004-09-18 19:09 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2551 bytes --]

On Saturday 18 September 2004 11:29 am, Dan Armak wrote:
> I don't understand what you mean by pseudo-packages, unless it's the
> DO_NOT_COMPILE thing below. Please elaborate.

I would have used "virtual packages", however I don't believe they provide the 
functionality that the subsequent example would have required.


> Which doesn't scale, because portage can't manage those dependencies. You
> can't depend on just one piece of kdebase (eg khtml) this way, and you
> can't add/remove just one piece without also recompiling all other pieces
> you want to keep.

It would certainly require a fair amount of new scripting, regardless of how 
the system was implemented.

Regarding adding and removing packages, what prevents Portage from compiling 
only the KMail components (and dependencies) of the kdepim package, and then 
merging it onto the filesystem? Likewise, they could be removed in a similar 
fashion. It seems as though the only major difference is that the source 
files would be stored in a shared archive rather than an independent archive.


> This and similar solutions have been discussed to death before now, see bug
> #11123.

I have, though we're still no closer to an actual solution. Bug #11123 was 
last updated quite a while ago, and I don't believe that twelve replies 
constitutes a heavily discussed topic. I don't mean to seem abrasive, however 
this issue needs to be addressed, not deferred.


> I mentioned 'most people' simply to point out that we're assigning limited
> resources to the greatest demand. As Caleb says, with enough maintainers
> this would be quite doable (provided the config caching portage enhancement
> alleviated the performance issue).

I realize that community support only extends as far as it is volunteered, but 
perhaps instead of simply stating that it would be possible with more 
contributions and passing off the topic, a more concrete solution can be 
found? 

At the very least, if the Gentoo community were to agree on the best way to 
implement the KDE package segregation, regardless of the required volunteer 
time, it would be a step in the right direction. I would certainly be willing 
to volunteer in helping to maintain the packages if they could be properly 
handled by Portage.

You mentioned "enough" maintainers. Assuming that the current maintainers are 
already strained with keeping packages up-to-date, approximately how many new 
volunteers would be needed?


-- 
Anthony Gorecki
Ectro-Linux Foundation


[-- Attachment #2: Type: application/pgp-signature, Size: 828 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 18:31       ` Dan Armak
@ 2004-09-18 19:19         ` Seemant Kulleen
  2004-09-18 19:36           ` Dan Armak
  0 siblings, 1 reply; 27+ messages in thread
From: Seemant Kulleen @ 2004-09-18 19:19 UTC (permalink / raw
  To: danarmak; +Cc: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 735 bytes --]

The way I see it is that part of the problem with dependency resolution
is that we're source based.  Debian and the other binary based distros
have an easier time because for them it (probably) boils down to compile
once, and then split the binaries, libraries and headers into separate
binary trees and do the dependency resolution on those.  For example,
you compile kdelibs, separate out kdelib and khtml and make the latter
depend on the former, et voila.  With Gentoo this process takes on a
much much higher complexity.
-- 
Seemant Kulleen
http://dev.gentoo.org/~seemant

Public Key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x3458780E
Key fingerprint = 23A9 7CB5 9BBB 4F8D 549B 6593 EDA2 65D8 3458 780E


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 19:19         ` Seemant Kulleen
@ 2004-09-18 19:36           ` Dan Armak
  2004-09-19  8:30             ` Simone Gotti
  0 siblings, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-18 19:36 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1815 bytes --]

On Saturday 18 September 2004 22:19, Seemant Kulleen wrote:
> The way I see it is that part of the problem with dependency resolution
> is that we're source based.  Debian and the other binary based distros
> have an easier time because for them it (probably) boils down to compile
> once, and then split the binaries, libraries and headers into separate
> binary trees and do the dependency resolution on those.  For example,
> you compile kdelibs, separate out kdelib and khtml and make the latter
> depend on the former, et voila.  With Gentoo this process takes on a
> much much higher complexity.

I'm probably missing your point. How are the dependencies more complex for us? 
KDE apps have very few DEPENDS that aren't also RDEPENDS, so if we had 
separate ebuilds for all the apps, it would be relatively easy to enter all 
the dependencies - it would only require major effort once.

AFAICS the only complex dependency issue arises if you want to separate 
kdelibs into pieces as well, and iirc even debian doesn't go that far; I 
don't think we need to, either.

Come to think of it, there is one other issue; some kde makefiles are badly 
written, and link against libraries built in the source tree under $S rather 
than against installed libraries under /usr/kde/.... To separate the library 
and app into two ebuilds we'd need to fix such makefiles. Because I'm 
speaking from somewhat dated knowledge here, and have nevr actually tried to 
fix such makefiles ;-), I don't know how difficult it'd be or how widespread 
the problem is today.

Anything else I'm forgetting?

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 19:09       ` Anthony Gorecki
@ 2004-09-18 19:45         ` Dan Armak
  2004-09-18 20:13           ` Anthony Gorecki
  0 siblings, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-18 19:45 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 3460 bytes --]

On Saturday 18 September 2004 22:09, Anthony Gorecki wrote:
> > Which doesn't scale, because portage can't manage those dependencies. You
> > can't depend on just one piece of kdebase (eg khtml) this way, and you
> > can't add/remove just one piece without also recompiling all other pieces
> > you want to keep.
>
> It would certainly require a fair amount of new scripting, regardless of
> how the system was implemented.
>
> Regarding adding and removing packages, what prevents Portage from
> compiling only the KMail components (and dependencies) of the kdepim
> package, and then merging it onto the filesystem? Likewise, they could be
> removed in a similar fashion. It seems as though the only major difference
> is that the source files would be stored in a shared archive rather than an
> independent archive.
Doesn't that simply kmail etc. are in separate ebuilds? How are your proposed 
pseudo-packages different (less costly) from regular ebuilds?

>
> > This and similar solutions have been discussed to death before now, see
> > bug #11123.
>
> I have, though we're still no closer to an actual solution. Bug #11123 was
> last updated quite a while ago, and I don't believe that twelve replies
> constitutes a heavily discussed topic. I don't mean to seem abrasive,
> however this issue needs to be addressed, not deferred.
I'm sorry if I seemed dismissive. 11123 isn't the sole previous discussion of 
this issue; it is itself a summary of previous and parallel discussions 
gentoo-dev etc, which is why it only has 12 replies - it wasn't used as the 
main discussion forum. It may even be that some rejected solution(s) isn't 
mentioned in.

The key point of previous discussions, which is also described in 11123, is 
the paragraph about the speed of configure i quoted here previously. To me 
this always was the major stumbling block. Lack of manpower is rather Caleb's 
problem, so I guess I'll let him comment about it ;-)

> At the very least, if the Gentoo community were to agree on the best way to
> implement the KDE package segregation, regardless of the required volunteer
> time, it would be a step in the right direction. I would certainly be
> willing to volunteer in helping to maintain the packages if they could be
> properly handled by Portage.
>
> You mentioned "enough" maintainers. Assuming that the current maintainers
> are already strained with keeping packages up-to-date, approximately how
> many new volunteers would be needed?
IMHO the best way, from the maintainers' POV, would be to be able to use 
perfectly ordinary separate ebuilds for KDE apps. And, this would require 
something like the config cache to be viable.

A word about my position here; I -used- to be one of the gentoo-KDE 
maintainers but left about a year ago (my sig nonwithstanding, since I didn't 
use it until now) and came back just a few days ago and straight into this 
discussion ;-)

Meanwhile Caleb's been the lead (only?) maintainer, so it's all up to him, my 
opinions are just that - opinions. That said I do want to re-join the KDE 
maintainers team; it'll probably take me a couple of weeks to get up to 
speed, right now I'm still struggling with the gcc 3.4 upgrade.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 19:45         ` Dan Armak
@ 2004-09-18 20:13           ` Anthony Gorecki
  2004-09-18 20:33             ` Sami Samhuri
  2004-09-18 20:38             ` Dan Armak
  0 siblings, 2 replies; 27+ messages in thread
From: Anthony Gorecki @ 2004-09-18 20:13 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2256 bytes --]

On Saturday 18 September 2004 12:45 pm, Dan Armak wrote:
> Doesn't that simply kmail etc. are in separate ebuilds? How are your
> proposed pseudo-packages different (less costly) from regular ebuilds?

Please keep in mind that the example below is only intended to serve as such.

Partially separate, but not quite. What I had in mind is more in line with a 
piece of functionality similar to that of a symlink: Instead of manually 
tearing apart the individual KDE distribution packages after every revision, 
they could be left as-is. When a KMail installation was requested, for 
example, its dependencies could be calculated against the existing KDE 
packages and configured using DO_NOT_INSTALL to build only the files that 
were required for KMail and were not already merged onto the filesystem. 

This would add a certain degree of complexity, in that the system would be 
working with large collections of software in a closed environment, however 
it would lessen the amount of maintenance for the package maintainers, who 
would otherwise need to be continually breaking up software components into 
dedicated packages. I also suspect that Portage would need to be modified to 
accommodate that method of operation.


> I'm sorry if I seemed dismissive. 11123 isn't the sole previous discussion
> of this issue

I wish I could claim that the developers and users in #kde were only being 
dismissive, rather than absolute, about their packaging scheme. Individual 
packages would save me a lot of time and effort in hacking their software to 
suit my workstation :)


>  Lack of manpower is rather Caleb's problem

Thankfully.


> IMHO the best way, from the maintainers' POV, would be to be able to use
> perfectly ordinary separate ebuilds for KDE apps. And, this would require
> something like the config cache to be viable.

ccache could be quite helpful, regardless of the package that was being built; 
I agree that it would improve KDE compilation time, especially. What do you 
mean by "being viable"? I haven't had a chance to experiment with the 
software, though I thought it was already working reasonably well for most 
computer systems.


-- 
Anthony Gorecki
Ectro-Linux Foundation

[-- Attachment #2: Type: application/pgp-signature, Size: 828 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 20:13           ` Anthony Gorecki
@ 2004-09-18 20:33             ` Sami Samhuri
  2004-09-18 20:33               ` Anthony Gorecki
  2004-09-18 20:38             ` Dan Armak
  1 sibling, 1 reply; 27+ messages in thread
From: Sami Samhuri @ 2004-09-18 20:33 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 851 bytes --]

* On Sat Sep-18-2004 at 01:13:20 PM -0700, Anthony Gorecki said:
> On Saturday 18 September 2004 12:45 pm, Dan Armak wrote:
> 
> > IMHO the best way, from the maintainers' POV, would be to be able to use
> > perfectly ordinary separate ebuilds for KDE apps. And, this would require
> > something like the config cache to be viable.
> 
> ccache could be quite helpful, regardless of the package that was being built; 
> I agree that it would improve KDE compilation time, especially. What do you 
> mean by "being viable"? I haven't had a chance to experiment with the 
> software, though I thought it was already working reasonably well for most 
> computer systems.

ccache != config cache!

ccache caches binaries built from C code.

Dan was talking about a configure (as in ./configure before a make)
cache.

-- 
Sami Samhuri

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 20:33             ` Sami Samhuri
@ 2004-09-18 20:33               ` Anthony Gorecki
  0 siblings, 0 replies; 27+ messages in thread
From: Anthony Gorecki @ 2004-09-18 20:33 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 396 bytes --]

On Saturday 18 September 2004 1:33 pm, Sami Samhuri wrote:
> ccache != config cache!
>
> ccache caches binaries built from C code.
>
> Dan was talking about a configure (as in ./configure before a make)
> cache.

Ah, my mistake. I should have known better, considering his statement wasn't 
sensible when used in reference to ccache.


-- 
Anthony Gorecki
Ectro-Linux Foundation


[-- Attachment #2: Type: application/pgp-signature, Size: 828 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 20:13           ` Anthony Gorecki
  2004-09-18 20:33             ` Sami Samhuri
@ 2004-09-18 20:38             ` Dan Armak
  2004-09-18 20:40               ` Dan Armak
  1 sibling, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-18 20:38 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2474 bytes --]

On Saturday 18 September 2004 23:13, Anthony Gorecki wrote:
> Partially separate, but not quite. What I had in mind is more in line with
> a piece of functionality similar to that of a symlink: Instead of manually
> tearing apart the individual KDE distribution packages after every
> revision, they could be left as-is. When a KMail installation was
> requested, for example, its dependencies could be calculated against the
> existing KDE packages and configured using DO_NOT_INSTALL to build only the
> files that were required for KMail and were not already merged onto the
> filesystem.
We wouldn't need to 'tear apart' the kde packages except just once, when we 
first wrote the broken-out ebuilds. After that each ebuild would essentially 
do what you describe: take eg the kdepim tarball and build only kmail using 
DO_NOT_COMPILE and related techniques.

> > IMHO the best way, from the maintainers' POV, would be to be able to use
> > perfectly ordinary separate ebuilds for KDE apps. And, this would require
> > something like the config cache to be viable.
>
> ccache could be quite helpful, regardless of the package that was being
> built; I agree that it would improve KDE compilation time, especially. What
> do you mean by "being viable"? I haven't had a chance to experiment with
> the software, though I thought it was already working reasonably well for
> most computer systems.

Misunderstanding here.

ccache=='compiler cache', which caches the work done by gcc/g++.

I was talking about the recently proposed, and still experimental afaik, 
'configure cache' patch to portage, posted to this list on September 10th by 
Stuart Hebert: 
http://dev.gentoo.org/~stuart/confcache/

It caches the tests run by configure scripts. I haven't tried it yet and 
haven't seen any reports on how well it works for kde specifically. We -need- 
a solution to the configure script run times issue, as described in #11123. 
If that's not resolved, no amount of maintainer manpower can help, because 
the move to separate ebuilds would mean a large increase in emerging time for 
people who do want all of kde. If this configure cache works well and is 
accepted into portage, it'd be the best possible solution to the problem.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 20:38             ` Dan Armak
@ 2004-09-18 20:40               ` Dan Armak
  0 siblings, 0 replies; 27+ messages in thread
From: Dan Armak @ 2004-09-18 20:40 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1181 bytes --]

On Saturday 18 September 2004 23:38, Dan Armak wrote:
> I was talking about the recently proposed, and still experimental afaik,
> 'configure cache' patch to portage, posted to this list on September 10th
> by Stuart Hebert:
> http://dev.gentoo.org/~stuart/confcache/
>
> It caches the tests run by configure scripts. I haven't tried it yet and
> haven't seen any reports on how well it works for kde specifically. We
> -need- a solution to the configure script run times issue, as described in
> #11123. If that's not resolved, no amount of maintainer manpower can help,
> because the move to separate ebuilds would mean a large increase in
> emerging time for people who do want all of kde. If this configure cache
> works well and is accepted into portage, it'd be the best possible solution
> to the problem.

...Which is why we've been dismissive of this issue until just now: no such 
config cache, or an laternative solution to the problem, was available.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* [gentoo-dev] Re: Segregating KDE?
  2004-09-18 18:02   ` Anthony Gorecki
  2004-09-18 18:29     ` Dan Armak
@ 2004-09-19  4:43     ` Duncan
  2004-09-19 14:56       ` Dan Armak
  1 sibling, 1 reply; 27+ messages in thread
From: Duncan @ 2004-09-19  4:43 UTC (permalink / raw
  To: gentoo-dev

Anthony Gorecki posted <200409181103.01872.anthony@ectrolinux.com>,
excerpted below,  on Sat, 18 Sep 2004 11:02:53 -0700:

> On Saturday 18 September 2004 2:16 am, Dan Armak wrote:
>> A kde configure script takes as much as a minute or more to run. Today when
>> you emerge all of kde you run ~17 configure scripts, i.e. as much as 20
>> minutes goes there (of course everything depends on the speed of the
>> machine). If all kde-base packages are split into separate subpackage
>> ebuilds, you'll get hundreds of subpackags (200+). 
> 
> Perhaps instead of using completely independent packages for the software 
> applications, a set of "pseudo-packages" could be created to alleviate the 
> extra configuration requirements? 
> 
> I've previously used the DO_NOT_COMPILE option for the KDE ebuilds and 
> successfully screened out many of the unwanted packages. If the dependencies 
> for any given software application were known (herein lies the large amount 
> of maintenance), it should then be possible to manipulate that environment 
> variable to only compile what is necessary for the user. Granted it would 
> take a fair amount of script-work, however it's an option to consider.

As a Gentoo and KDE user that hopes to someday be a Gentoo developer..

I to have had a bit of experience with DO_NOT_COMPILE.  Namely, with the
KDE 3.3.0 beta ebuilds, on AMD64 (and often running ~amd64 keyword added
then removed toolchain elements, mainly binutils and glibc, so bug reports
might be "noise"), I had to use that to tell KPovModeler (IIRC) from
kdegraphics not to compile, as it was running into an error rather more
advanced than my ability to fix.

I have a suggestion based on the now ~* masked due to linux26-headers
requirement glibc-2.3.4-20040916 and its new method for handling locales. 
It has a new "userlocales" use flag, which when activated, only merges the
locales listed in /etc/locales.build.  Since I only use en-US and can't
read anything other than en anyway, that's a pretty neat way to cut
compile time for all those locales I don't need.  I like the idea!

I'd like to see it expanded, with perhaps several *.build files, maybe
moved out of /etc/ directly into /etc/portage/build or some such.  In each
case, the idea would be to allow user configuration of only parts of a
generally large package to be merged.  Another perfect example might be
xorg.  Create a /etc/portage/build/xorg.build file, which would have two
specifiers, graphics adaptor modules to be compiled, and input modules to
be compiled, so I could simply say ATI (or better yet Radeon) and
mouse/keyboard only.  (The make.conf VIDEO_CARDS= thing that I saw hinted
at in some post I read never seems to work, here, possibly because I don't
have it set quite right, as I've never come across anything listing
exactly what the options are and I probably have it wrong.  On the last
xorg merge I did I used ebuild and limited it by hand, and found it took
ati not radeon even tho they are separate drivers, and I have radeon in
the make.conf entry, so next time I'm going to try ati and see if it takes
that automatically.  It'd help if there was a comment in the ebuild
listing the choices...)

Of course, there'd be a kde.build file as well.  It would provide a
section for each kdexxx ebuild, and simply subtract anything not listed
from the build process by adding it to DO_NOT_COMPILE.

The idea here would be to control it in two ways.  First, as with glibc,
it'd only be enabled if the required use flag (disabled by default) was
on.  Otherwise, as glibc does with the locales, it would just build
all of them.  Second, the file would be put there by default, with all
sub-packages in it by default, so even if the use flag was enabled, unless
a user specifically commented out or deleted a subpackage from the list,
it would be compiled as it is now.  I'd suggest not even giving the option
of breaking kdelibs apart, and possibly keeping kdebase whole, as well,
simply to minimize the possibility of breaking anything else that depends
on them.

Then, at the top of the file put a big hairy warning about how some
package components, particularly in kdebase, are depended on by others,
and to disable the use flag and recompile all packages if there are
dependency issues, and then leave everything else up to the user.  Any
bugs on related dependency issues would be marked invalid, see the warning
in the file, etc. so it wouldn't become a big support issue.  Further, all
it would take for implementation would be a function added to kde-dist, to
parse kde.build, and add anything not listed in the appropriate ebuild
section to the DO_NOT_COMPILE env-var.   This function could then either
be invoked by the appropriate kde-dist function directly (thus requiring
no individual ebuild mods at all, keeping in mind that it defaults to
current build-all behavior so it could be added without changing current
behavior on current ebuilds except that another use flag would be there
now), or called by the specific ebuilds.

Alternatively, kde.build could list only the packages one did NOT want
merged, in each section.  That would probably be simpler to implement with
KDE, since all that would be required is to brainlessly put everything
listed directly in the env-var, but it might be preferable for all the
*.build files to operate the same, and since glibc's locale.build already
operates by inclusion of what's listed, that's the way I wrote it, above.

IMO, this idea fills all the customizability requirements, while at the
same time being quite simple to implement and support, because it doesn't
do any subpackaging with the subsequent dependency and maintenance issues.

The one disadvantage from a user perspective is that it would require
remerging the entire ebuild if another subpackage was desired, but given
the trade-offs, I see that as quite acceptable.  Users would either
compile and merge everything as they now do by default, or they'd be
excising subpackages as they so chose, with results no different than a
forced recompile if they changed their mind about use flags.

>From my perspective, this would be a perfect way to implement
configurability at a level beyond that which it is practical to do with
use flags, due to their incredible proliferation if one tries.  Obviously,
I really like the solution as I've seen it in glibc! =:^)

-- 
Duncan - List replies preferred.   No HTML msgs.
"They that can give up essential liberty to obtain a little
temporary safety, deserve neither liberty nor safety." --
Benjamin Franklin



--
gentoo-dev@gentoo.org mailing list


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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-18 19:36           ` Dan Armak
@ 2004-09-19  8:30             ` Simone Gotti
  2004-09-19 14:48               ` Dan Armak
  0 siblings, 1 reply; 27+ messages in thread
From: Simone Gotti @ 2004-09-19  8:30 UTC (permalink / raw
  To: gentoo-dev

On Saturday 18 September 2004 21:36, Dan Armak wrote:
> Come to think of it, there is one other issue; some kde makefiles are badly
> written, and link against libraries built in the source tree under $S
> rather than against installed libraries under /usr/kde/....  To separate the 
> library and app into two ebuilds we'd need to fix such makefiles. Because
> I'm speaking from somewhat dated knowledge here, and have nevr actually
> tried to fix such makefiles ;-), I don't know how difficult it'd be or how
> widespread the problem is today.
>
> Anything else I'm forgetting?
The aren't badly written, this is the right behavior, For example kmail wants 
to compile against libkdepim. You can't link against a library that isn't 
already installed o an old installed one with less functions.

Bye!
-- 
Simone Gotti
<simone.gotti@email.it>
http://kde-bluetooth.sf.net

--
gentoo-dev@gentoo.org mailing list


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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19  8:30             ` Simone Gotti
@ 2004-09-19 14:48               ` Dan Armak
  2004-09-19 18:08                 ` Simone Gotti
  0 siblings, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-19 14:48 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1310 bytes --]

On Sunday 19 September 2004 11:30, Simone Gotti wrote:
> On Saturday 18 September 2004 21:36, Dan Armak wrote:
> > Come to think of it, there is one other issue; some kde makefiles are
> > badly written, and link against libraries built in the source tree under
> > $S rather than against installed libraries under /usr/kde/....  To
> > separate the library and app into two ebuilds we'd need to fix such
> > makefiles. Because I'm speaking from somewhat dated knowledge here, and
> > have nevr actually tried to fix such makefiles ;-), I don't know how
> > difficult it'd be or how widespread the problem is today.
> >
> > Anything else I'm forgetting?
>
> The aren't badly written, this is the right behavior, For example kmail
> wants to compile against libkdepim. You can't link against a library that
> isn't already installed o an old installed one with less functions.
Should be a fallback IMHO. configure can check for things like that. At least, 
we're going to have to make it do that if we go through with this :-)

As for old versions, isn't that what library versions are for?

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Re: Segregating KDE?
  2004-09-19  4:43     ` [gentoo-dev] " Duncan
@ 2004-09-19 14:56       ` Dan Armak
  2004-09-19 19:46         ` Paul de Vrieze
  0 siblings, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-19 14:56 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1608 bytes --]

On Sunday 19 September 2004 07:43, Duncan wrote:
> Then, at the top of the file put a big hairy warning about how some
> package components, particularly in kdebase, are depended on by others,
> and to disable the use flag and recompile all packages if there are
> dependency issues, and then leave everything else up to the user.  Any
> bugs on related dependency issues would be marked invalid, see the warning
> in the file, etc. so it wouldn't become a big support issue. 
As you say, this solution is hairy (or anything else that doesn't create real 
separate ebuilds for the separate apps). I personally don't like it at all 
and don't really want to see it happen even as an alternative to nothing at 
all, because it's so ugly. Of course, it's very easy to implement, but it 
takes away all the advantages of having a proper package manager - all the 
advantages of using portage rather than state-less invocations on the order 
of 'ebuild.sh file.ebuild'...

And of course this solution entails more or less not supporting it despite 
having it in the portage tree - marking related bugs as invalid etc. That's 
another reason I don't like it.

Perhaps I don't have the right to say this at this point, having been incative 
for over a year, but this solution simply takes away too much functionality 
and support from the user in order to decrease the maintainer's workload.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19 14:48               ` Dan Armak
@ 2004-09-19 18:08                 ` Simone Gotti
  2004-09-19 19:33                   ` Dan Armak
  0 siblings, 1 reply; 27+ messages in thread
From: Simone Gotti @ 2004-09-19 18:08 UTC (permalink / raw
  To: gentoo-dev

On Sunday 19 September 2004 16:48, Dan Armak wrote:
> > The aren't badly written, this is the right behavior, For example kmail
> > wants to compile against libkdepim. You can't link against a library that
> > isn't already installed o an old installed one with less functions.
>
> Should be a fallback IMHO. configure can check for things like that. At
> least, we're going to have to make it do that if we go through with this
> :-)
> As for old versions, isn't that what library versions are for?
You're right. The real problem is that library version usually are the same in 
ALL kde 3.X. Because they must be Binary Compatible (B.C.) (this means of 
course al source compatible). In c++ you can mantain the B.C. also adding 
some new methods to a class, with the exception that this one doesn't have to 
be a virtual method. I've noticed that between every version of kde some libs 
ends with the same *.so.X.X also if they adds some new functions (I hope to 
be wrong...).


By the way, I think that it's possible to split EVERY kde program/libs in a 
single package, this can be possibile by heavily patching the Makefiles like 
you've said so they can link to an installed lib instead of the local one, 
this libs will be a dep of the program and it should be of course a different 
ebuild. 

I'm already giving a little help to caleb and carlo on the kde ebuilds and if 
ypu and they think that a lot of people thinks that having single kde 
programs instead of the standard modules will be a better idea I'll be VERY 
happy to start hacking on this. My great fear is that it will slow down the 
development of the ebuilds because this bring to a lot of additional work! 
Think that probably the Makefile's patches must be changed on every kde major 
release.
 
All I need is to know if you (gentoo kde developers) are really interested on 
this work. Let me know!

Bye!
-- 
Simone Gotti
<simone.gotti@email.it>
http://kde-bluetooth.sf.net

--
gentoo-dev@gentoo.org mailing list


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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19 18:08                 ` Simone Gotti
@ 2004-09-19 19:33                   ` Dan Armak
  2004-09-19 19:42                     ` Dan Armak
                                       ` (2 more replies)
  0 siblings, 3 replies; 27+ messages in thread
From: Dan Armak @ 2004-09-19 19:33 UTC (permalink / raw
  To: gentoo-dev


[-- Attachment #1.1: Type: text/plain, Size: 3937 bytes --]

On Sunday 19 September 2004 21:08, Simone Gotti wrote:
> By the way, I think that it's possible to split EVERY kde program/libs in a
> single package, this can be possibile by heavily patching the Makefiles
> like you've said so they can link to an installed lib instead of the local
> one, this libs will be a dep of the program and it should be of course a
> different ebuild.
It's certainly possible. I even think (well, intuition...) the patching won't 
have to be very heavy.

>
> I'm already giving a little help to caleb and carlo on the kde ebuilds and
> if ypu and they think that a lot of people thinks that having single kde
> programs instead of the standard modules will be a better idea I'll be VERY
> happy to start hacking on this. My great fear is that it will slow down the
> development of the ebuilds because this bring to a lot of additional work!
> Think that probably the Makefile's patches must be changed on every kde
> major release.
>
> All I need is to know if you (gentoo kde developers) are really interested
> on this work. Let me know!
As I said, I'm definitely going to try making this work, but won't have real 
time until the weekend after next (and most days after that, hopefully), so 
you can beat me to it.

I've just tried the confcache patch. It's integrated into portage .51 cvs 
snapshots here http://dev.gentoo.org/~ferringb/ebuild-daemon/51-pre20-cvs/ - 
they apparently include other highly experimental stuff and the last one has 
some bugs already fixed in cvs, so be in touch with #gentoo-portage if using 
these.  To enable confcache, add 'confcache' to FEATURES and change the kde 
ebuilds to use econf rather than call configure directly. This results in the 
kde.eclass attached - the change is trivial, but as I'm on rsync not cvs atm, 
I can't make a diff immediately, sorry. The change for split packages should 
also be on the order of a five-liner in kde.eclass, apart from the makefile 
changes.

On my athlon xp 2600, this makes the kdelibs configure run go down from 66 
seconds to 28 seconds. At least 10-12 seconds of each of these two numbers is 
due to makefile generation, which will be very much reduced in split-up 
ebuilds, so we get 54 sec -> 16 sec, or a 5x improvement.

Also, on slower machines a far larger percent of time spent in (non-cached) 
configure is due to slow compilations rather than (as here) IO, so the 
benefit will be even greater there. This indicates we should at least 
reevluate the emerge performance factor of splitting up the kde ebuilds.

Using my old rough formula, we get:
17 configure scripts (before splitting ebuilds) --> 20-60 minutes total 
running time
splitting up --> >=220 packages (? but at least that many, I believe)
splitting up without confcache --> 220-660 minutes, i.e. 3.6-11 hours, total 
running time (clearly unacceptable)
splitting up with confcache --> about 15-20% of above, i.e. 1-2.2 hours total 
running time

According to these numbers, if we both add confcache and split the ebuilds, 
the total time for emerging all or nearly all of kde will increase by 0.6-1.2 
hours, plus the overhead from running the emerge cycle 200 more times, which 
I hope is relatively negligible (a few minutes?). 

Compared with the benefits (to those who don't want all of kde, and 
considering that >95% of people typing 'emerge kde' to save package selection 
time don't really want kdetoys and kdeedu and such, this seems on first sight 
to be a reasonable tradeoff for the added functionality. What do you think, 
everyone? Also note that my benchmarking is hardly scientific, so I'd be glad 
if someone bothered to repeat it and compare his results to mine.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #1.2: kde.eclass --]
[-- Type: text/plain, Size: 5701 bytes --]

# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/eclass/kde.eclass,v 1.106 2004/09/15 23:10:21 kugelfang Exp $
#
# Author Dan Armak <danarmak@gentoo.org>
#
# Revisions Caleb Tennis <caleb@gentoo.org>
# The kde eclass is inherited by all kde-* eclasses. Few ebuilds inherit straight from here.

inherit base eutils kde-functions
ECLASS=kde
INHERITED="$INHERITED $ECLASS"
DESCRIPTION="Based on the $ECLASS eclass"
HOMEPAGE="http://www.kde.org/"
IUSE="${IUSE} debug arts"

DEPEND=">=sys-devel/automake-1.7.0
	sys-devel/autoconf
	sys-devel/make
	dev-util/pkgconfig
	dev-lang/perl
	~kde-base/kde-env-3"

RDEPEND="~kde-base/kde-env-3"

# overridden in other places like kde-dist, kde-source and some individual ebuilds
SLOT="0"

kde_src_unpack() {

	debug-print-function $FUNCNAME $*
	
	# call base_src_unpack, which implements most of the functionality and has sections,
	# unlike this function. The change from base_src_unpack to kde_src_unpack is thus
	# wholly transparent for ebuilds.
	base_src_unpack $*
	
	# kde-specific stuff stars here
	
	# fix the 'languageChange undeclared' bug group: touch all .ui files, so that the
	# makefile regenerate any .cpp and .h files depending on them.
	cd $S
	debug-print "$FUNCNAME: Searching for .ui files in $PWD"
	UIFILES="`find . -name '*.ui' -print`"
	debug-print "$FUNCNAME: .ui files found:"
	debug-print "$UIFILES"
	# done in two stages, because touch doens't have a silent/force mode
	if [ -n "$UIFILES" ]; then
		debug-print "$FUNCNAME: touching .ui files..."
		touch $UIFILES
	fi

	# shorthand for removing specified subdirectories fom the build process
	[ -n "$KDE_REMOVE_DIR" ] && kde_remove_dir $KDE_REMOVE_DIR

}

kde_src_compile() {

	debug-print-function $FUNCNAME $*
	[ -z "$1" ] && kde_src_compile all

	cd ${S}
	export kde_widgetdir="$KDEDIR/$(get_libdir)/kde3/plugins/designer"

	# fix the sandbox errors "can't writ to .kde or .qt" problems.
	# this is a fake homedir that is writeable under the sandbox, so that the build process
	# can do anything it wants with it.
	REALHOME="$HOME"
	mkdir -p $T/fakehome/.kde
	mkdir -p $T/fakehome/.qt
	export HOME="$T/fakehome"
	addwrite "${QTDIR}/etc/settings"
	# things that should access the real homedir
	[ -d "$REALHOME/.ccache" ] && ln -sf "$REALHOME/.ccache" "$HOME/"	
	[ -n "$UNSERMAKE" ] && addwrite "/usr/kde/unsermake"
	
	while [ "$1" ]; do

		case $1 in
			myconf)
				debug-print-section myconf
				myconf="$myconf --host=${CHOST} --prefix=${PREFIX} --with-x --enable-mitshm --with-xinerama --with-qt-dir=${QTDIR} --enable-mt"
				# calculate dependencies separately from compiling, enables ccache to work on kde compiles
				[ -z "$UNSERMAKE" ] && myconf="$myconf --disable-dependency-tracking"
				if use debug ; then
					myconf="$myconf --enable-debug=full --with-debug"
				else
					myconf="$myconf --disable-debug --without-debug"
				fi
				[ -z "$KDEBASE" ] && myconf="$myconf $(use_with arts)"
				[ -n "$KDEBASE" -a "$KDEMINORVER" -ge 3 ] && myconf="$myconf $(use_with arts)"
				debug-print "$FUNCNAME: myconf: set to ${myconf}"
				;;
			configure)
				debug-print-section configure
				debug-print "$FUNCNAME::configure: myconf=$myconf"

				# rebuild configure script, etc
				# This can happen with e.g. a cvs snapshot			
				if [ ! -f "./configure" ] || [ -n "$UNSERMAKE" ]; then
					for x in Makefile.cvs admin/Makefile.common; do
						if [ -f "$x" ] && [ -z "$makefile" ]; then makefile="$x"; fi
					done
					if [ -f "$makefile" ]; then
						debug-print "$FUNCNAME: configure: generating configure script, running make -f $makefile"
						make -f $makefile
					fi
					[ -f "./configure" ] || die "no configure script found, generation unsuccessful"
				fi

				export PATH="${KDEDIR}/bin:${PATH}"
				
				# configure doesn't need to know about the other KDEs installed.
				# in fact, if it does, it sometimes tries to use the wrong dcopidl, etc.
				# due to the messed up way configure searches for things
				export KDEDIRS="${PREFIX}:${KDEDIR}"

				cd $S
				econf \
					--mandir=${PREFIX}/share/man --infodir=${PREFIX}/share/info \
					--datadir=${PREFIX}/share --sysconfdir=${PREFIX}/etc \
					--localstatedir=${PREFIX}/var/lib \
					${myconf} \
					--libdir="\${exec_prefix}/$(get_libdir)" \
					|| die "died running ./configure, $FUNCNAME:configure"
					
				# Seems ./configure add -O2 by default but hppa don't want that but we need -ffunction-sections
				if [ "${ARCH}" = "hppa" ]
				then
					einfo Fixating Makefiles
					find ${S} -name Makefile | while read a; do sed -e s/-O2/-ffunction-sections/ -i "${a}" ; done
				fi
				;;
			make)
				export PATH="${KDEDIR}/bin:${PATH}"
				debug-print-section make
				emake || die "died running emake, $FUNCNAME:make"
				;;
			all)
				debug-print-section all
				kde_src_compile myconf configure make
				;;
		esac

	shift
	done

}

kde_src_install() {

	debug-print-function $FUNCNAME $*
	[ -z "$1" ] && kde_src_install all

	cd ${S}

	while [ "$1" ]; do

		case $1 in
			make)
				debug-print-section make
				make install DESTDIR=${D} destdir=${D} || die "died running make install, $FUNCNAME:make"
				;;
	    	dodoc)
				debug-print-section dodoc
				for doc in AUTHORS ChangeLog* README* COPYING NEWS TODO; do
					[ -s "$doc" ] && dodoc $doc
				done
				;;
	    	all)
				debug-print-section all
				kde_src_install make dodoc
				;;
		esac

	shift
	done

}

EXPORT_FUNCTIONS src_unpack src_compile src_install

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19 19:33                   ` Dan Armak
@ 2004-09-19 19:42                     ` Dan Armak
  2004-09-19 19:59                       ` Dan Armak
  2004-09-19 21:00                     ` Simone Gotti
  2004-09-21  0:10                     ` Simone Gotti
  2 siblings, 1 reply; 27+ messages in thread
From: Dan Armak @ 2004-09-19 19:42 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1202 bytes --]

On Sunday 19 September 2004 22:33, Dan Armak wrote:
> On my athlon xp 2600, this makes the kdelibs configure run go down from 66
> seconds to 28 seconds. At least 10-12 seconds of each of these two numbers
> is due to makefile generation, which will be very much reduced in split-up
> ebuilds, so we get 54 sec -> 16 sec, or a 5x improvement.
Er. Well. Sorry about that, here are corrected figures:
54 seconds -> 16 seconds == 3.3x improvement.
Therefore:
17 configure scripts (before splitting ebuilds) --> 20-60 minutes total 
running time
splitting up --> >=220 packages (? but at least that many, I believe)
splitting up without confcache --> 220-660 minutes, i.e. 3.6-11 hours, total 
running time (clearly unacceptable)
splitting up with confcache --> about 25-30% of above, i.e. 1-3.3 hours total 
running time

According to these numbers, if we both add confcache and split the ebuilds, 
the total time for emerging all or nearly all of kde will increase by 0.6-2.3 
hours.

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Re: Segregating KDE?
  2004-09-19 14:56       ` Dan Armak
@ 2004-09-19 19:46         ` Paul de Vrieze
  0 siblings, 0 replies; 27+ messages in thread
From: Paul de Vrieze @ 2004-09-19 19:46 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2028 bytes --]

On Sunday 19 September 2004 16:56, Dan Armak wrote:
> On Sunday 19 September 2004 07:43, Duncan wrote:
> > Then, at the top of the file put a big hairy warning about how some
> > package components, particularly in kdebase, are depended on by others,
> > and to disable the use flag and recompile all packages if there are
> > dependency issues, and then leave everything else up to the user.  Any
> > bugs on related dependency issues would be marked invalid, see the
> > warning in the file, etc. so it wouldn't become a big support issue.
>
> As you say, this solution is hairy (or anything else that doesn't create
> real separate ebuilds for the separate apps). I personally don't like it at
> all and don't really want to see it happen even as an alternative to
> nothing at all, because it's so ugly. Of course, it's very easy to
> implement, but it takes away all the advantages of having a proper package
> manager - all the advantages of using portage rather than state-less
> invocations on the order of 'ebuild.sh file.ebuild'...
>
> And of course this solution entails more or less not supporting it despite
> having it in the portage tree - marking related bugs as invalid etc. That's
> another reason I don't like it.
>
> Perhaps I don't have the right to say this at this point, having been
> incative for over a year, but this solution simply takes away too much
> functionality and support from the user in order to decrease the
> maintainer's workload.

Well, I'll second you in any case. It is not a solution and offering something 
willingly and then saying it is unsupported is in these kinds of cases a 
medicine worse than the cure. The only "possible" solution I see would 
involve useflags and useflag dependencies (still "in the works"). But I agree 
that we must avoid in any case to get back the stateless mess that the lack 
of dependency tracking entails.

Paul

-- 
Paul de Vrieze
Gentoo Developer
Mail: pauldv@gentoo.org
Homepage: http://www.devrieze.net

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19 19:42                     ` Dan Armak
@ 2004-09-19 19:59                       ` Dan Armak
  0 siblings, 0 replies; 27+ messages in thread
From: Dan Armak @ 2004-09-19 19:59 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1292 bytes --]

On Sunday 19 September 2004 22:42, Dan Armak wrote:
> According to these numbers, if we both add confcache and split the ebuilds,
> the total time for emerging all or nearly all of kde will increase by
> 0.6-2.3 hours.

Oh, and some packages (eg kdebase) run automake right now, which takes a lot 
more time than a non-cached configure run. Couldn't that be eliminated? Just 
distribute pregenerated Makefile.in files, a configure scripts etc generated 
with our patches included.

And unsermake is supposed to make disrtibuted/multiprocess compiling of kde 
much faster - right now distcc with more than a few boxen isn't really used 
by kde compiles - and also possibly to speed up normal compiles through a 
nonrecursive makefile system and such nice things.

disclaimer; I haven't tried unsermake myself yet and don't know how mature it 
is.

So we might be able to optimize the build system sufficiently that the net 
performance price for the added features won't be too high even in the worst 
case. Of course, that's where the lack-of-manpower issue comes in...

-- 
Dan Armak
Gentoo Linux developer (KDE)
Matan, Israel
Public GPG key: http://dev.gentoo.org/~danarmak/danarmak-gpg-public.key
Fingerprint: DD70 DBF9 E3D4 6CB9 2FDD  0069 508D 9143 8D5F 8951

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19 19:33                   ` Dan Armak
  2004-09-19 19:42                     ` Dan Armak
@ 2004-09-19 21:00                     ` Simone Gotti
  2004-09-21  0:10                     ` Simone Gotti
  2 siblings, 0 replies; 27+ messages in thread
From: Simone Gotti @ 2004-09-19 21:00 UTC (permalink / raw
  To: gentoo-dev

On Sunday 19 September 2004 21:33, Dan Armak wrote:
> As I said, I'm definitely going to try making this work, but won't have
> real time until the weekend after next (and most days after that,
> hopefully), so you can beat me to it.

There are other few issues, for example some libraries aren't installed in the 
system because defined in the Makefile.am as "noinst_LTLIBRARIES". And some 
programs in differents subdirs are linking to them, so these library must be 
recompiled for every program we are compiling that needs them and this will 
bring to more compilation time. I can't see a solution to this, installing 
them will go against the kde developers decisions and there's a reason 
because they aren't installed.


> I've just tried the confcache patch. It's integrated into portage .51 cvs
> snapshots here http://dev.gentoo.org/~ferringb/ebuild-daemon/51-pre20-cvs/
> - they apparently include other highly experimental stuff and the last one
> has some bugs already fixed in cvs, so be in touch with #gentoo-portage if
> using these.  To enable confcache, add 'confcache' to FEATURES and change
> the kde ebuilds to use econf rather than call configure directly. This
> results in the kde.eclass attached - the change is trivial, but as I'm on
> rsync not cvs atm, I can't make a diff immediately, sorry. The change for
> split packages should also be on the order of a five-liner in kde.eclass,
> apart from the makefile changes.
>
> On my athlon xp 2600, this makes the kdelibs configure run go down from 66
> seconds to 28 seconds. At least 10-12 seconds of each of these two numbers
> is due to makefile generation, which will be very much reduced in split-up
> ebuilds, so we get 54 sec -> 16 sec, or a 5x improvement.
>
> Also, on slower machines a far larger percent of time spent in (non-cached)
> configure is due to slow compilations rather than (as here) IO, so the
> benefit will be even greater there. This indicates we should at least
> reevluate the emerge performance factor of splitting up the kde ebuilds.
>
> Using my old rough formula, we get:
> 17 configure scripts (before splitting ebuilds) --> 20-60 minutes total
> running time
> splitting up --> >=220 packages (? but at least that many, I believe)
> splitting up without confcache --> 220-660 minutes, i.e. 3.6-11 hours,
> total running time (clearly unacceptable)
> splitting up with confcache --> about 15-20% of above, i.e. 1-2.2 hours
> total running time
>
> According to these numbers, if we both add confcache and split the ebuilds,
> the total time for emerging all or nearly all of kde will increase by
> 0.6-1.2 hours, plus the overhead from running the emerge cycle 200 more
> times, which I hope is relatively negligible (a few minutes?).
>
> Compared with the benefits (to those who don't want all of kde, and
> considering that >95% of people typing 'emerge kde' to save package
> selection time don't really want kdetoys and kdeedu and such, this seems on
> first sight to be a reasonable tradeoff for the added functionality. What
> do you think, everyone? Also note that my benchmarking is hardly
> scientific, so I'd be glad if someone bothered to repeat it and compare his
> results to mine.
I'll try it. Thanks.

Bye!
--- 
Simone Gotti
<simone.gotti@email.it>
http://kde-bluetooth.sf.net

--
gentoo-dev@gentoo.org mailing list


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

* Re: [gentoo-dev] Segregating KDE?
  2004-09-19 19:33                   ` Dan Armak
  2004-09-19 19:42                     ` Dan Armak
  2004-09-19 21:00                     ` Simone Gotti
@ 2004-09-21  0:10                     ` Simone Gotti
  2 siblings, 0 replies; 27+ messages in thread
From: Simone Gotti @ 2004-09-21  0:10 UTC (permalink / raw
  To: gentoo-dev; +Cc: Dan Armak, Caleb Tennis, Carsten Lohrke

I was thinking that is probably possible to make a bash script that will 
automatically found what libraries name must be changed in the Makefiles.am.

So today I started putting down an initial script that will do this.
How and if it works is quite difficult to explain by now, because probably 
there are corner cases that I haven't taked in account.

My idea is this:

1) This script will provide a function from ${PN} which is equal to the 
subproject we want to compile, will modify the subprojects makefiles.
for example:

libkaddressbook_la_LIBADD = 
$(top_builddir)/kaddressbook/printing/libprinter.la \
              $(top_builddir)/kaddressbook/interfaces/libkabinterfaces.la \
              $(top_builddir)/libkdepim/libkdepim.la -lkabc_file

will become:

$(top_builddir)/kaddressbook/printing/libprinter.la \
              $(top_builddir)/kaddressbook/interfaces/libkabinterfaces.la \
              -lkdepim -lkabc_file

like you can see in this way we will use the already installed (from a 
previous "libkdepim" ebuild) libkdepim instead of compiling the local one.
libkabinterfaces.la can't be treated in the same way because is compiled when 
we compile kaddressbook for the fact that is in the same subproject.

2) Create a list of the used subprojects, a subproject is equal to the first 
kde-module subdir. kaddressbook don't need any other subproject, but for 
example other programs will need a library defined like "noinst_LTLIBRARY" 
and so unfortunately this can't be installed and must be recompiled for every 
program that needs it. An example is libkcal that needs libical (and this is 
a "noinst_LTLIBRARY" ).

3a) from this list we can remove the configure.in.in in the not needed 
subproject, We can also remove the Makefiles.{in, am} and the recreate the 
configure (and of course only the neede Makefiles.in).
 Slow but quite right.

3b) create a list of DO_NOT_COMPILE
 Fast but will leave some don't needed configure check. BUT I don't think this 
will be a problem because of course the deps are already satisfied by the 
deps of the subproject we are going to emerge.

Tomorrow I'll try to finish this script, implement it in an eclass and create 
some simple ebuild to test them and if it works I'll post it and some 
results.

Let me know what do you think about this idea.

Bye!
-- 
Simone Gotti
<simone.gotti@email.it>
http://kde-bluetooth.sf.net

--
gentoo-dev@gentoo.org mailing list


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

end of thread, other threads:[~2004-09-21  0:04 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-18  7:57 [gentoo-dev] Segregating KDE? Anthony Gorecki
2004-09-18  9:16 ` Dan Armak
2004-09-18 18:02   ` Anthony Gorecki
2004-09-18 18:29     ` Dan Armak
2004-09-18 18:31       ` Dan Armak
2004-09-18 19:19         ` Seemant Kulleen
2004-09-18 19:36           ` Dan Armak
2004-09-19  8:30             ` Simone Gotti
2004-09-19 14:48               ` Dan Armak
2004-09-19 18:08                 ` Simone Gotti
2004-09-19 19:33                   ` Dan Armak
2004-09-19 19:42                     ` Dan Armak
2004-09-19 19:59                       ` Dan Armak
2004-09-19 21:00                     ` Simone Gotti
2004-09-21  0:10                     ` Simone Gotti
2004-09-18 19:09       ` Anthony Gorecki
2004-09-18 19:45         ` Dan Armak
2004-09-18 20:13           ` Anthony Gorecki
2004-09-18 20:33             ` Sami Samhuri
2004-09-18 20:33               ` Anthony Gorecki
2004-09-18 20:38             ` Dan Armak
2004-09-18 20:40               ` Dan Armak
2004-09-19  4:43     ` [gentoo-dev] " Duncan
2004-09-19 14:56       ` Dan Armak
2004-09-19 19:46         ` Paul de Vrieze
2004-09-18 13:11 ` [gentoo-dev] " Caleb Tennis
2004-09-18 14:06   ` Nick Dimiduk

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