January 30th, 2010

Rant: That Old Linux Package Format Blues

I described my FreePascal from Square One book project in detail a couple of weeks ago, and I work on it as time allows. There have been some hangups; in fact, I sometimes wonder if I'm not Cing evil spirits at work hereabouts, frustrating my efforts to popularize Pascal.

A lot of this has to do with Linux software package formats. I'm trying to write a chapter in a beginners' book describing how to install the FreePascal/Lazarus compiler/IDE combo. For Windows it's easy: Download the executable installer, run it, and answer the wizard's questions. I ran into a stone will with Ubuntu: There is a deb package for Lazarus (which includes the FreePascal compiler binaries) but it's ancient, and much worse, it does not install the compiler source code, which Lazarus needs. Now, why an IDE needs the source code for its compiler is obscure, but that's how they wrote it, and when you run Lazarus in the absence of FreePascal's source code, it complains, and warns that some (unspecified) subset of its features may not work.

The rpm package, on the other hand, is current and complete. In the installation chapter I'd like to describe installation in detail for Windows and the three most popular Linux distros: Ubuntu, Fedora Core, and OpenSuSE. Fedora and OpenSuSE use RPMs. No problem there. Installing Lazarus under Fedora may in fact be as simple as opening a console and typing "yum install lazarus." (I haven't tried that yet; more on why a little later.) YaST has OpenSuSE covered. But with the Linux market leader, I'm hosed.

Yes, I know, there are solutions: Get the tarballs from the Web site, build the whole damned thing from source, convert from rpm to deb with Alien, etc. etc. etc. I can do that stuff. But this isn't about or for me. It's for people who are just starting in on programming and may be just trying out Linux. I don't want to explain how to frakking rebuild the whole damned 200 MB monstrosity from source code. (Wasn't CP/M Turbo Pascal happy to take up 24 KB? Does anybody even remember that old letter "K"?) All that is beside the point. The real question is this: Why can't the FreePascal/Lazarus guys keep a workable deb package together? I know enough about Debian package management to be sure that it's possible. (I don't knows enough, alas, to do it myself.) It isn't being done. And nobody seems to want to talk about why.

Not having a complete install for Ubuntu made me uneasy about running tests in Lazarus under Ubuntu, so I realized I would have to get instances of Fedora Core and OpenSuSE together. How hard could that be? Well...

  • I created a new VM in Workstation 5 for Fedora Core 12. The install failed partway through, with the VM locked up. "He dies and gives no sign."
  • Ditto a VM for OpenSuSE. Ditto. The YaST installer could not detect the virtual hard drive created for the VM, so we didn't even get as far as installation.
  • I reformatted an old Kubuntu partition on a machine downstairs and attempted to install Fedora on it. Different fail, but fail nonetheless. The DVD vetted itself with a clear bill of health, but I may download it again anyway.

I managed to get OpenSuSE to install on that same partition, so I finally have a complete and trustworthy Linux installation of Lazarus. And I will say that I really like OpenSuSE. (This is the first time I've ever laid hands on it.) The OpenSuSE Build Service is a thing of beauty.

The double VM fail is a puzzler. And that led to me wonder if newer distros just don't play well with 2004-era Workstation 5. So I finally took my still-sealed retail copy of Workstation 6 off the shelf, installed it, registered it...and VMware doesn't seem to know how to license it. I'm sure they don't do much business in boxed product, but that's no excuse. Email tech support with their Indian support people has a 24-hour turnaround, and the last time I got a response, the guy sent me the serial number for my copy of Workstation 5 and told me to use that, as it was already licensed. Gakkh. So they have my $180, and I have a copy of Workstation 6 that won't run. We're three days into this adventure, and I'm sure nothing will get resolved until Monday. If then.

You wonder why I hate activation systems so violently.

And people wonder why tech books take so long to write.

Screw it. It's the weekend. I'm going to find the nearest bag of potato chips and eat the whole damned thing.