As most of you know, KDE 3.5 is getting off the Gentoo train for various reasons mentioned elsewhere (in short: security, lack of upstream interest).
Some people are still using it though and they have been asking how they can keep it on their system, without emerge screaming each time they try to update world.
I’m writing this post to guide those people (you?
) on how they can achieve that.
1. Adding the kde-sunset overlay
Perhaps the most important thing you need to remember is that the ebuilds will be completely removed from the tree, so you need to add an overlay called kde-sunset to portage which contains a copy of most of them.
To add the overlay you need to have layman with git USE flag enabled:
USE="git" emerge -av layman
make sure you add the git USE flag in your package.use or make.conf
you can then use layman to install the overlay:
layman -f
layman -a kde-sunset
if this is your first time using layman, you’ll have to add the following line @ the end of your make.conf:
source /usr/local/portage/layman/make.conf
you can keep the overlay updated by running:
layman -s kde-sunset
2. KDE 3.5 is masked (this is necessary only while KDE 3.5 is still in tree)
Now we have the overlay, but until KDE 3.5 is completely wiped off the tree, there’s a mask to warn users about it.
Portage will scream about this mask each time you try to emerge so you need to unmask KDE 3.5 manually.
There are two (and a half) ways to do this:
a1) if your package.unmask is a folder, symlink the unmask file from kde-sunset to /etc/portage/package.unmask/
ln -s /usr/local/portage/layman/kde-sunset/Documentation/package.unmask/kde-3.5 /etc/portage/package.unmask/kde-3.5
a2) if your package.unmask is not a folder you can append the file (but you’ll have to update it manually)
cat /usr/local/portage/layman/kde-sunset/Documentation/package.unmask/kde-3.5 >> /etc/portage/package.unmask
b) if you don’t like all that, you can emerge autounmask
emerge -av autounmask
and ask it to unmask stuff for you – note that autounmask doesn’t like :slot and will only work with -version
autounmask kde-meta-3.5
3. I don’t want KDE 4 (yet)
So all is great now but portage wants to install KDE 4 when you emerge world.
This is happening because KDE 4 went stable recently and portage thinks you want to upgrade (you should btw
).
To fix this one we need to tell portage that we actually want the 3.5 version of KDE and we don’t care about 4.
we need to edit /var/lib/portage/world and add a version (or a slot) to every kde 3.5 app we have in there.
* be careful with this file *
for example, lets say that you installed kde 3.5 using the kde-meta ebuild.
if you open /var/lib/portage/world you’ll find a line saying
kde-base/kde-meta
you need to add :3.5 which is the 3.5 slot, or -3.5.10 which is the version (or both, version first) at the end. if you add the version, you’ll have to prepend a “=” as well.
the line should now read:
kde-base/kde-meta:3.5
do this for each KDE 3.5 app you have in the world file. If you’re unsure of the slot/version, use eix packagename to find it out.
4. All systems go
emerge -avDuN world
^^ this should now be clean of any KDE 4 traces and mask warnings
If you have any issues or are interested in maintaining kde-sunset, you may visit us over @ #gentoo-kde in freenode’s IRC network or drop us an email at kde _at_ gentoo _dot_ org. We’ll do our best to help you
Maybe after reading this post your KDE 3 installation will last a bit longer
Enjoy and see you w/ KDE 4 soon