Gentoo Archives: gentoo-announce

From: Dan Armak <danarmak@g.o>
To: gentoo-announce@g.o, gentoo-dev@g.o, gentoo-user@g.o
Subject: [gentoo-announce] Announce: new multiple KDEDIRs support
Date: Wed, 09 Jan 2002 13:23:30
Announce: KDE multiple KDEDIRs support

I am now committing a new "kde scheme". It is considerably different from the 
previous one. All KDE users are strongly advised to follow the upgrading 
instructions below before emerging/remerging any KDE-related programs.

There have been several such changes in the last weeks, and I understand 
remerging kde every time isn't pleasant. I've tried to make sure that the new 
scheme is scalable and customisable enough to satisfy everybody and not just 
the proverbial 99%, and is stable and solid enough to be used in its default
configuration for many KDEs to come. (Reminder: we have support for running 
kde2 apps under kde3 and vice versa.)

Short description:
KDE 2,3 apps now install in /usr/kde/{2,3}, together with their respective 
kdelibs, not in /usr anymore. This allows for multiple KDEs (even more than 
two) and solves issues like the noatun crash-on-startup and the lack of icons 
in kdm, and some other things too. Also apps from different KDE trees can be 
run under any of the KDEs, which is a Gentoo-unique feature afaik.

Upgrading instructions:
Ideally, unmerge kde-base/* and all kde apps, then remerge them.
Remerging kdelibs and kdebase should be enough though. However, in this case, 
after merging a new version of a kde app, unmerge all previous versions or 
strange things may happen!
Before starting the new kde for the first time, rename your ~/.kde dir to 
~/.kde2, or it'll be deleted (kdebase2 creates a symlink .kde -> .kde2).

Have fun!


Detailed info:
You don't need to read this unless you want to know how things work.
Also, DO NOT USE the technique described here for enabling custom KDEDIRs!
It is untested, unsupported and very un-standard. Please don't use it if you 
don't have to. It is only for those who really need it, and even they should 
wait a few days as I haven't really tested the non-standard KDEDIRs part yet.

The previous setup was this: kdelibs 2,3 lived in /usr/kde/{2,3}. *All* other 
apps lived in /usr. Some (noatun, kdm...) and many Makefiles didn't like that 
at all. Also you couldn't have more than 1 version of a package, particularly 
of kdebase etc. So the whole multi-kdelibs idea was being wasted.

Due to all the problems KDE's unique (severely non-standard :-( ) structure 
has presented, we have decided to abandon the attempt to make it behave in 
/usr and will now give it a tree of its own.

The new setup:
There are 2 variables with default values set in make.globals:

kde.eclass (which all kde ebuilds use) directs all kde2 apps to install in 
KDE2DIR, and all kde3 apps in KDE3DIR. It also tells them to use a kdelibs 
installed there. Support for separating kdelibs and kde apps (for custom 
solutions) isn't yet in, wait a few days for that.

A kde app installs into the current setting of KDE?DIR, so you can just 
change that and things will install into your custom kdedir. Again, users are 
highly discouraged from doing this! Detailed instructions and support for 
those who really do need it (e.g. kde developers) will follow in a few days.

kdelibs adds the dir into which it installs to PATH (via env.d), and newer 
kdelibs have higher priority (are nearer the beginning of the path). So, if 
you install kde 2 and 3 (when 3 is available), KDE3DIR/bin will come before 
KDE2DIR/bin in your path. The same goes for KDE?DIR/lib in LDPATH.

kdebase has a custom startkde script; it exports KDEDIR=<this kdebase's 
prefix>. It also symlinks ~/.kde to ~/.kde2 (for kdebase2) or ~/.kde3 (for 
kdebase3). It'll delete your ~/.kde, so back it up as per the instructions 

You'll have to configure your apps twice (once for kde2, once for kde3). When 
you start using kde2/3, that is, when kde3-final comes out. You might play 
with symlinks for the config files, or something like that, or I might come 
up with some automation for this in the future.

kdm has a rather long list of session types, since the list is static all 
possibilities are included. The correct ones for kde are kde-$version i.e. 
kde-2.2.2 (the old setup had a symlink called kde).

That's about it. Enjoy!

Dan Armak
Gentoo Linux, Desktop Team
Matan, Israel