CentOS: Fixing Ugly KDE Fonts

On CentOS/RHEL 5 in particular, I found the fonts in KDE 3 were ragged, and unresponsive to efforts to clean them up via recompiling Freetype2 libs with bytecode hinting turned on. After reading up on it a bit, I decided it might be possible to fix it by recompiling the basic Qt libraries from the source RPM.

As of this writing, the current SRPM is qt-3.3.6-23.

If you follow the canonical method, you’ll place the source RPM in /usr/src/redhat/SRPMS/ and install from there:

rpm -ivh qt-3.3.6-23.el5.src.rpm

Then you navigate to /usr/src/redhat/SPEC/ and run the command:

rpmbuild -bb qt.spec

If you are missing any build requirements, it will complain and you can install them using yum. Run the RPMbuild command again. After a while, you’ll get the prompt back, hopefully indicating nothing went wrong.

Navigate to /usr/src/redhat/RPMS/ and choose the folder containing files matching your hardware architecture. Mine was i386, where I found the newly made qt-3.3.6-23.i386.rpm.

You’ll have to use the --force switch because RPM can’t tell this is different from the one already installed:

rpm -Uvh --force qt-3.3.6-23.i386.rpm

Once it’s installed, you’ll need to restart any part of KDE currently running to get the full effect. Just for good measure, I used the same procedure and rebuilt the kdelibs package on the new Qt libraries. However, I doubt it really makes that much difference in the results. As far as I can tell, Qt handles most of the font rendering operations in KDE. Something in the way it builds under RedHat and clones requires building Qt with the changed Freetype libraries.

Caveat: I have tested KDE 4 on other systems and hate it, so don’t waste your time with comments insisting it’s better. That’s entirely subjective. KDE 3 was fine, basically, but the developers never bothered to fix everything, just abandoned it and moved onto the next, even buggier release. That’s the way Open Source works, and I accept that, but the criticism still stands. When you have a system which is developer-centric, the user will never be satisfied because the developers don’t care about users, for the most part.

This entry was posted in computers and tagged , . Bookmark the permalink.