I used to use FreeBSD to exclusion of most other *nixes (even other BSDs). So far, I’ve been pretty impressed with the changes and progress the project has made. It’s an incredible leap forward from the BSD I used to know back in the 5.x branch.
Gentoo has been annoying me as of late. I remember the days when portage used to be vastly more inclusive than the ports collection for cutting edge and beta software. Now, it seems that Gentoo has been suffering something of the “no port breakage” syndrome that once plagued *BSD. Indeed, the reason I switched my server and desktop to Gentoo was because of easy access to the latest source of my favorite projects without having to hunt down the tarball. Further, Gentoo is the most BSD-like of all the Linux distros, IMO, and as a consequence, it has been familiar territory.
However, the reason I switched in the first place was tied almost exclusively to my printer. For personal use, there isn’t much reason to spend a lot of money on a network printer when only a couple of systems in the house (at most) are going to ever print to it. I did want to access it via the network (either IPP or SMB), and FreeBSD wasn’t particularly cooperative. As it turns out, CUPS was unable to load the firmware (foo2zjs) under FreeBSD; Gentoo was much more cooperative. (I have one of those cheap laser printers without the firmware burned to its EEPROM. This cost-cutting measure employed by HP is very similar to modern wireless cards.)
Long story short, I switched my file server/development machine to Gentoo.
Sometimes Things Change
And when things change, it’s not always for the better. As much as I love toying and tweaking my desktop, I’ve found that my available time and my patience has dwindled. I’d rather just have something that does what I want without necessarily getting in the way. Sure, Ubuntu is nice, but I’ve never been too fond of Debian. It’s too much like Redhat and Mandrake for me to appreciate it; Ubuntu does look nice, plays very well with almost anything you throw at it, and I certainly have to give Canonical credit here. My roots are in *BSD. So, rather than having to play with portage overlays just to get KDE 4 working, I was pleasantly surprised to find that FreeBSD has KDE 3 and 4 in ports.
But KDE 4 is Buggy!
Yeah, KDE 4 is buggy. I like the looks of it, and if no one uses beta software, the bugs will never be found or worked out, will they? It isn’t Gnome, and given the attitude of the Gnome project toward many of its users, I’d much rather support KDE–they’re generally more polite, friendly, and helpful. It’s cluttered, sure, but so is Gnome. And, let’s not forget, the open/save dialog in Gnome just sucks. I’m sorry, it does. There’s a reason I dislike Vista, and the Gnome open/save dialog (and their file explorer for that matter) reminds me too much of Vista’s bastardization of Windows Explorer. KDE’s file browser just works. It has some nice features, too, in the right-click context menu, particularly when you’re copying or moving files. To this extend, KDE operates a bit like Windows when you click+drag while pressing five keys, grotesquely contorting your hand; except that in KDE, you don’t have to worry about injuring your hands.
My brief off-topic ramblings notwithstanding, I’d just like to confess that I dislike Gnome. I’m not sure I made that apparent. Oh, back to FreeBSD.
A Wise Man Once Told Me
I was speaking with FredBSD of Terenas fame from World of Warcraft. You know which game I’m talking about–that massive MMO I treat like an IRC minigame–and the primary reason Wine has ballooned into an incredible implementation of the Windows APIs, supplanting even Cedega. Fred told me the funniest thing about FreeBSD 7: “This isn’t your father’s BSD.”
It’s true. It isn’t.
FreeBSD was flailing when the 5.x branch became -CURRENT and -STABLE. I remember the SMP issues, the terribly lacking hardware support, the searching for hardware IDs as reported via the PCI bus just so you could get a network card working… it was dreadful. 6.x was a little better, but let’s not kid ourselves: FreeBSD Seven is amazing. sched_ule, first introduced in 5.x, was terribly slow. That has since been fixed; on multicore systems, the new scheduler is incredible!
There’s also a small bonus to people who like comparing uptimes: *BSD kernels change infrequently except between major releases, unlike Linux. With the exception of serious security flaws, there exist few reasons to rebuild world under *BSD, much less rebuild the kernel. This translates to greater uptime. As John G. put it succinctly “keeping a FreeBSD system up to date is MUCH easier than keeping a Gentoo box updated.” This, of course, is because the only way to maintain a reasonably updated Gentoo install is to almost constantly update world. Failing to do this for even a few weeks can result in so many packages requiring update that the build may as well include a fresh install!
So Why the Rant About KDE?
KDE 4 is in the ports collection for FreeBSD. Unfortunately, I confess that building it isn’t quite as straightforward as installing KDE 3 is from the package disc. There are a few libraries that need updating in the process, and in short, you’re going to run into problems; building KDE is simply going to die at the behest of packages that expect a new version, and you’re going to have to update them as they’re discovered. Of the packages that gave me minor difficulties, these are the ones I can remember off-hand:
- x11/xproto (failing to update this prevents XCB from updating correctly)
- x11/xcb (usually installed, but it’s an older version)
I’m pretty sure this list is missing one or two entries, but I have most of the more painful ones listed. When in doubt, observe the output from
configure; it’ll tell you which package it’s missing, and what version it expects.
Updates to this Section
As it turns out, there’s a few more packages that die during the build:
- audio/libao – To fix this, pixman must be updated to 0.12.0 or higher, librsvg must be updated to 2.15.0 or higher, and poppler must be updated to 0.9.2 or higher.
- graphics/cairo (configure error)
- graphics/glitz (install error)
- x11/kdebase4-runtime (configure error)
- x11-toolkits/qt33 (install error)
I think most of these problems occurred because I installed most of the packages from the CD directly. Had I chosen a minimal install and changed
portinstall‘s options at the start, all of the newest version would have been installed with it.
So there you have it: a few rants about FreeBSD and a number of other topics! I’ll be posting about tips and tricks that help reduce the management overhead associated with FreeBSD’s ports.