Jun 11

I’ve been happily running Debian on my ThinkPad for over a year, probably the longest time I’ve ever kept a single OS on the thing. Or rather, I had been until Saturday. Saturday is when I decided to update my X.org.

I’d had some problems with X.org before. Debian Testing upgraded to X.org 7.0, and it turned out the ATI FireGL T2 drivers in that were broken. So, no fancy new X.org 7 for me until 7.1, I thought, which was a shame because the new ATI drivers in 7.x provide full hardware acceleration, including 3D.

Still, updates were to be had, so I went ahead with what I expected to be a routine point release upgrade of 6.9. However, it turned out that the packaging of X.org has been rearranged, along with the system directories.

Result: no X.

I tried running the autoconfig, which has always worked in the past. It didn’t work, couldn’t find the perfectly ordinary USB mouse either. I upgraded everything else via apt-get upgrade and rebooted, and discovered a ton of errors now appeared during boot. I spent an hour or so dicking around before coming to the conclusion that the system was hosed in a way which would probably require some kind of reinstallation.

This isn’t my first moment of dissatisfaction with Debian. PAM was broken for months, I’m not sure if it has even been fixed yet. Sound stopped working a couple of months ago. It seems as if somehow along the way ‘testing’ has become ‘unstable’. Perhaps it’s because of the pressure to speed up the release cycle–but then, I don’t see any new stable releases on the horizon.

So, it was time to weigh options. Debian Testing had just burned me badly, so that was out. I could stick with Debian, reinstall Sarge, and live with no accelerated graphics until the next Debian release, which could be years away. I could try the IBM Linux image, which is based on a well-known commercial Linux distribution that I’m not a big fan of. Or, I could try something else.

The new distribution all the cool kids are running is Ubuntu, so I downloaded and burned a CD and booted it. All the ThinkPad hardware worked first time, including Bluetooth, ATI graphics with 3D acceleration, sound, and ACPI power control. So, it looked as though Ubuntu would give me the Debian base I liked, with the advantage of a release schedule measured in months rather than years, and accelerated graphics.

However, Ubuntu is based on GNOME, and I’ve been a KDE user in recent years. There’s a KDE-based Ubuntu variant (Kubuntu), and also one that runs the XFce windowing environment (Xubuntu). I tried all three.

GNOME is nice and simple in appearance, but it’s a terrible RAM hog. KDE has chronic optionitis, but has lots of handy programs; but I thought about the programs I run all the time, and realized that only one is actually built for KDE–the others are all GTK-based.

Then I tried XFce, which is GTK-based, and noted that I could run XFce and Firefox together and use less RAM than just the KDE desktop. So, XFce was ahead. When I noticed that XFce showed file sizes correctly but GNOME didn’t, the deal was sealed.

Next problem was to back up all my user data. I went on a cleaning out spree, burnt a DVD of old stuff I hope never to need again, and shrunk everything down to under 30GB. I used rsync to back it all up to our MP3 and e-mail server temporarily.

Then, I decided to be daring, and used resize_reiserfs and GNOME partition editor to make space for a new root partition, turning the old partition into /home. This allowed me to install Xubuntu without wiping my home directory.

I just finished confirming that I can get the VPN working, so I don’t have to go into the office in the morning. I’ll get Eclipse and all the other work stuff going again tomorrow.

May 20

Fedora Core 1 died, so I installed the latest rev of the corporate desktop based on something else… which means I’m stuck with GNOME, as there aren’t any working KDE installs I can find.

With KDE it was really easy to install fonts. Almost Mac-like, in fact. Open the fonts window in Konqueror, drag the TrueType and Type 1 font files in, drop. Done.

In GNOME, I open my directory of fonts. The file manager previews them for me. I can double-click them to see them previewed larger. However, the preview doesn’t have any kind of install button, nor does the contextual menu for the files have an install option.

GNOME doesn’t seem to have any kind of font installer either. The “Font” control panel lets you select rendering options and which fonts to use for the UI, but it doesn’t actually tell you how to install fonts. The system Control Center doesn’t include anything for installing fonts either, though it does helpfully include an icon to open itself from within itself. Aaargh.

The GNOME help is useless too. It has four entries for “font”. One is about how to import fonts into Ghostscript, two are about importing and exporting TeTeX fonts, and the fourth one suggests that the way to install fonts is to edit /etc/fonts/fonts.conf

So I tried that, and discovered that the file had a comment saying no, don’t edit /etc/fonts/fonts.conf, instead edit /etc/fonts/local.conf. So I tried that, only to find that it was a mostly empty raw XML file. In particular, it didn’t mention any of the additional fonts the system already had installed, so it was clearly the wrong place.

So I tried Google and searched for an FAQ on how to install fonts in GNOME. First up was the GNOME end-user documentation on fonts. It talks about “subpixel decimation” and “GASP tables” and how to access someone’s CVS server to download a font viewer, but totally fails to mention how to install a font. At the very bottom of the page it finally mentions that GNOME’s font selection is handled by something called fontconfig.

So, off I go to the fontconfig site, and to what they laughably call their user documentation. Hey, look, it’s that fonts.conf man page again.

OK, back to Google. I find a reference to gnome-font-install. Sensible name, but (a) it turns out to be something specific to printing, and not actually a font installer; and (b) it isn’t on my system according to locate.

Time for a different approach. I search for how to install fonts for xfs (the X font server) instead, and find out that there’s a tool called chkfontpath, which actually installs fonts in the font path rather than only doing what its name suggests. So, I pull up the man page. Looks good. % chkfontpath -a /opt/coolfonts.

chkfontpath: error opening /opt/coolfonts/fonts.dir, unwilling to add path

Back to the man page. Yes, chkfontpath needs some sort of special fonts.dir file, says right there at the bottom, before completely failing to mention what the file should contain. Is there a man page for fonts.dir? No. Is the file fonts.dir even mentioned in the xfs man page? Is it fuck.

Finally I find a web page that explains the hoops you have to jump through to install fonts in GNOME. First you have to use ttmkfdir to prepare the directory containing your fonts. Obviously I didn’t find this in my searches, because it has no fucking manual page.

Having done that, you can then run mkfontdir to generate the mysterious undocumented fonts.dir file. Obviously I didn’t find that either, because it doesn’t show up on man -k fonts.dir. Yes, I know, it’s unreasonable of me to expect that a program whose sole purpose is to generate a file fonts.dir should actually mention fonts.dir in its man page index.

Having done that, it was indeed trivial to go back and run chkfontpath and actually install the fonts.

I now understand that when people say Linux isn’t ready for the desktop, it’s because they run GNOME.

It’s not just the lack of a friendly installer that makes me angry; it’s the fact that at every step of the way, the documentation is utterly useless at describing how to do the most basic task a user needs to do, yet describes itself as user documentation.

Mar 02

So, there I was happily using my ThinkPad, when I got an I/O error from yum. Investigating the logs revealed a bad sector on the hard drive. Well, no surprises there, IBM makes us use refurbished hard drives…

Of course, the problem was how to fix it, as it was on the root filesystem. I rebooted into KNOPPIX to do the job, and then had to dick around with LVM for a while because someone thought LVM was a really good thing to make a default part of any Linux install.

An afternoon later, e2fsck had finished fixing things up, and all I lost was a few yum cache files. So, I was back in action. I installed updates to gnome-panel and pango and a few non-graphical packages and rebooted…

…and suddenly GNOME had decided it didn’t want to display any text any more. All the icons were there, but text was zero width and zero height and transparent.

I managed to log in, and discovered that everything non-Gnome worked, including Mozilla. I did some searching on the net to find out if this was a known problem other people had encountered and fixed. There was a suggestion that it might be something to do with pango, so I tried rebuilding the database for that, but it made no difference. The only other people to encounter the problem had eventually given up and fixed it by totally reinstalling GNOME.

So, I switched to KDE and spent the evening ripping out all the GNOME applications. This wasn’t made any easier by the fact that yum wouldn’t remove them and RPM has no dependency resolution. Still, eventually I got everything GNOME-related removed from the system.

It was at more or less this point that I noticed my ThinkPad was noticably faster, and that in particular, screen redraws of Mozilla and Notes were much more rapid, and the KDE terminal was way faster than the GNOME one.

So I think I’m just not going to bother putting the GNOME crap back again.

Which means that, sad to say, my prejudices have been confirmed. It seems GNOME really is a bloated crapulent piece of software which has no reason to exist except for the obstinacy of its developers and the historical details of Qt licensing circa 1999. If there was any sanity in the world, GNOME would be taken out and shot, and the resources being wasted on it would be poured into improving KDE.