HOWTO: KDE 3.5.10 on Fedora 9 and Fedora 10

Motivation

Fedora 9 is the first version of Fedora which includes KDE 4, instead of KDE 3. The net is full of discussions about the maturity, stability and quality of KDE 4. I'm not interested in blaming the KDE developers or the distribution packagers for having pushed the new KDE towards users. But, having been a KDE user since version 1.0 on RedHat 5.1 (manual installation!), I really want to use KDE and mantain my daily productivity.

I wanted to upgrade from Fedora 8 to Fedora 9, but, as I found that KDE 4 was still not ready enough for me, I decided to experiment with a distribution upgrade excluding the KDE packages. The idea was to use something like yum upgrade --excludepackages=kde\*.

After a few hours of fighting with the package dependencies and the creation of compatibility packages, the upgrade succeeded. Everything was running perfectly (including my KDE 3.5 from F8).

When planning to upgrade from Fedora 9 to Fedora 10, I reconsidered the possibility to migrate to KDE 4. Unfortunately, I was still unconvinced about using KDE 4 for everyday use. Additional packages were necessary to upgrade to F10 while retaining KDE 3 from F8, so I built them.

I described my method on the fedora mailing lists, see Successfully upgraded to F9 while keeping KDE 3 and HOWTO: Use KDE 3 from F8 on F10 and there were other people interested in attempting what I had done. I finally managed to collect all the pieces and write this HOWTO.

KDE 4.2 is out and it is certainly much better than 4.0 or 4.1. I will always keep on eye on KDE 4 and I'm really looking forward to not extending this method to Fedora 11.

How to do it

My procedure was an update from F8 to F9 to F10 and it was only done on one machine. So you should not expect a simple recipe to do the same thing to your machines, expecially if you are trying something different, such as a scratch installation.

Nonetheless, it is likely that the info in this page can be useful.

I created a local repository with all the Fedora 9 packages: I downloaded the entire Everything rpm subtree, used createrepo to build the metadata files and created a repository file in /etc/yum.repos.d. This is not strictly necessary, but I didn't want to download stuff during the upgrade.

I tried the command yum upgrade --disablerepo=\* --enablerepo=local_fedora9\* --exclude=kde\* --exclude=extragear-plasma and observed the dependency errors. I'm not sure if I'm forgetting additional --exclude options; the idea is that you have to exclude everything that drags the kde4 stuff in. For some problematic packages, I just removed them and took note to re-add them at the end of the process; I did that in the past even for normal upgrades and it often involves 3rd party packages such as mplayer, vlc, pdftk, compiz; maybe having F9 repositories enabled could have involved these packages in the upgrade at the same time, but I didn't want to complicate things beyond necessity.

The result was the identification of a few substantial dependency problems. These are things that the old KDE rpms need, but the new distro is not using anymore; in particular the biggest issue regarded the libssl.so.6 and libcrypto.so.6 libs, needed for KDE 3, but replaced on F9 by newer versions upon which all the F10 rpms depend. A few compatibility packages were needed. I have a little experience in patching and rebuilding srpms, and tried to create them. All the rpms, srpms, specs and specs diff are downloadable from this page.

My new rpms were added in an additional local repository (again createrepo and adding the new repo to yum,...) and the yum command was tried again to see if something was still wrong. After a few rounds, all the dependencies were satisfied and a long upgrade process finally started.

It took some time, as you can easily imagine:

Transaction Summary
=============================================================================
Install    124 Package(s)
Update    1793 Package(s)
Remove       2 Package(s)

I finally checked that the grub config was fine and pointing to the new kernel, changed my runlevel from 5 to 3 in inittab (as the nvidia driver was not upgraded) and rebooted the machine. It came out pretty well in console mode, I fixed the nvidia crap (thanks rpmfusion repo) and run my desktop: my beautiful KDE 3.5 session came out perfectly. Everything was working well. I enabled the 3rd party repos and reinstalled the stuff I had to remove.

After a few months, Fedora 10 was released.

I had to build a few additional rpms: this time they were taken from Fedora 9. The command I used to upgrade was this time something like: yum upgrade --disablerepo=\* --enablerepo=local_fedora10\* -x kde\* -x amarok -x ktorrent -x kover -x kdepim -x kipi-plugins -x digikam -x gnokii -x kplayer -x kmod\* .

After a successful upgrade, you have to be careful when installing updates, as the entire KDE4 will try to replace the KDE3. I personally use yum list updates and then select packages manually with yum update this_one that_one that_one_too.

WARNING

Before deciding to do anything to your system, please consider that:

ANTI WARNING

Before deciding to avoid doing anything to your system, please consider that:

Packages

Finally, here is the stuff I had to build, including a description of the changes. If you want to use wget or just don't like HTML links, you can enter this directory.

Fedora 8 to Fedora 9

libopensync

Taken from Fedora 8, modified and recompiled on Fedora 8.
Needed by kdepim-libs.

spec (ORIGINAL)8 KiBorig/libopensync.spec
src.rpm (ORIGINAL)489 KiBorig/libopensync-0.22-4.fc8.src.rpm
spec diff4 KiBlibopensync022.spec.patch
spec (modified)8 KiBlibopensync022.spec
src.rpm (modified)489 KiBlibopensync022-0.22-4.fc8.src.rpm
rpm (modified)260 KiBlibopensync022-0.22-4.fc8.i386.rpm
rpm (modified)553 KiBlibopensync022-debuginfo-0.22-4.fc8.i386.rpm
rpm (modified)20 KiBlibopensync022-devel-0.22-4.fc8.i386.rpm

mikmod

Taken from Fedora 8, modified and recompiled on Fedora 8.
Needed by alsaplayer.

spec (ORIGINAL)12 KiBorig/mikmod.spec
src.rpm (ORIGINAL)909 KiBorig/mikmod-3.2.2-6.fc8.src.rpm
spec diff4 KiBmikmod322.spec.patch
spec (modified)12 KiBmikmod322.spec
src.rpm (modified)909 KiBmikmod322-3.2.2-6.fc8.src.rpm
rpm (modified)168 KiBmikmod322-3.2.2-6.fc8.i386.rpm
rpm (modified)324 KiBmikmod322-debuginfo-3.2.2-6.fc8.i386.rpm
rpm (modified)204 KiBmikmod322-devel-3.2.2-6.fc8.i386.rpm

openldap

Taken from Fedora 8, modified and recompiled on Fedora 8.
An updated to 2.3.39-4 exists too.
Needed by kdebase.

spec (ORIGINAL)60 KiBorig/openldap.spec
src.rpm (ORIGINAL)14362 KiBorig/openldap-2.3.39-3.fc8.src.rpm
spec diff4 KiBopenldap2339.spec.patch
spec (modified)60 KiBopenldap2339.spec
src.rpm (modified)14362 KiBopenldap2339-2.3.39-3.fc8.src.rpm
rpm (modified)288 KiBopenldap2339-2.3.39-3.fc8.i386.rpm
rpm (modified)216 KiBopenldap2339-clients-2.3.39-3.fc8.i386.rpm
rpm (modified)9617 KiBopenldap2339-debuginfo-2.3.39-3.fc8.i386.rpm
rpm (modified)1594 KiBopenldap2339-devel-2.3.39-3.fc8.i386.rpm
rpm (modified)1982 KiBopenldap2339-servers-2.3.39-3.fc8.i386.rpm
rpm (modified)124 KiBopenldap2339-servers-sql-2.3.39-3.fc8.i386.rpm

openssl

Taken from bugzilla.redhat.com #440560 as candidate compat package, recompiled on Fedora 8.
Needed by kdebase, kdenetwork, openldap2339, kphone.

spec (ORIGINAL)40 KiBorig/openssl098b.spec
src.rpm (ORIGINAL)2835 KiBorig/openssl098b-0.9.8b-1.fc9.src.rpm
spec diff0 KiBopenssl098b.spec.patch
spec (modified)40 KiBopenssl098b.spec
src.rpm (modified)2835 KiBopenssl098b-0.9.8b-1.fc8.src.rpm
rpm (modified)917 KiBopenssl098b-0.9.8b-1.fc8.i386.rpm
rpm (modified)2422 KiBopenssl098b-debuginfo-0.9.8b-1.fc8.i386.rpm

Fedora 9 to Fedora 10

bluez-libs

Taken from Fedora 9 updates, modified and recompiled on Fedora 9.
Needed by gnokii.

spec (ORIGINAL)8 KiBorig/bluez-libs.spec
src.rpm (ORIGINAL)316 KiBorig/bluez-libs-3.36-1.fc9.src.rpm
spec diff4 KiBbluez-libs.spec.patch
spec (modified)8 KiBbluez-libs.spec
src.rpm (modified)316 KiBbluez-libs-compat336-3.36-1.fc9.src.rpm
rpm (modified)48 KiBbluez-libs-compat336-3.36-1.fc9.i386.rpm
rpm (modified)128 KiBbluez-libs-compat336-debuginfo-3.36-1.fc9.i386.rpm
rpm (modified)76 KiBbluez-libs-compat336-devel-3.36-1.fc9.i386.rpm

exiv2

Taken from Fedora 9, modified and recompiled on Fedora 9.
Needed by libkexiv2 (needed by kipi-plugins, digikam).

spec (ORIGINAL)8 KiBorig/exiv2.spec
src.rpm (ORIGINAL)1566 KiBorig/exiv2-0.16-2.fc9.src.rpm
spec diff4 KiBexiv2.spec.patch
spec (modified)8 KiBexiv2.spec
src.rpm (modified)1566 KiBexiv2-compat0162-0.16-2.fc9.src.rpm
rpm (modified)88 KiBexiv2-compat0162-0.16-2.fc9.i386.rpm
rpm (modified)2655 KiBexiv2-compat0162-debuginfo-0.16-2.fc9.i386.rpm
rpm (modified)272 KiBexiv2-compat0162-devel-0.16-2.fc9.i386.rpm
rpm (modified)533 KiBexiv2-compat0162-libs-0.16-2.fc9.i386.rpm

libmtp

Taken from Fedora 9, modified and recompiled on Fedora 9.
Needed by amarok.

spec (ORIGINAL)8 KiBorig/libmtp.spec
src.rpm (ORIGINAL)529 KiBorig/libmtp-0.2.6.1-1.fc9.src.rpm
spec diff4 KiBlibmtp.spec.patch
spec (modified)8 KiBlibmtp.spec
src.rpm (modified)529 KiBlibmtp-compat0261-0.2.6.1-1.fc9.src.rpm
rpm (modified)76 KiBlibmtp-compat0261-0.2.6.1-1.fc9.i386.rpm
rpm (modified)308 KiBlibmtp-compat0261-debuginfo-0.2.6.1-1.fc9.i386.rpm
rpm (modified)60 KiBlibmtp-compat0261-devel-0.2.6.1-1.fc9.i386.rpm
rpm (modified)40 KiBlibmtp-compat0261-examples-0.2.6.1-1.fc9.i386.rpm

Contacts

I can't promise to be able to help you in trying this kind of upgrade. In any case, you could try to send a mail to mail@zzzrobertoragusazzz.zzzitzzz (it could be a good idea to remove all the 'z' from the address).

Changelog

2009-03-01
Page is available online.
2009-02-15
Started working on the first version of this page.

Valid XHTML 1.0! Valid CSS!

© Copyright 2009 Roberto Ragusa, www.robertoragusa.it