becks belly © Naomi / CC
There’s a new GNU/Linux distribution, gNewSense, so of course there had to be a Digg thread full of people complaining that the world doesn’t need another GNU/Linux distribution. I would argue the opposite: this is one distribution that the world absolutely does need. (It may need others too, that’s not part of this argument.)
gNewSense’s “schtick” is that it removes all the “binary blobs” from Ubuntu to create an entire operating system and packaging ecosystem that contains 100% Free Software. This means no “restricted” repository (which contains non-free video drivers) and no “multiverse” repository (which contains a multitude of other non-free packages).
Digression: the “multiverse” repository contains a number of packages that are widely believed to violate actively enforced patents, but are nonetheless distributed under Free Software or open source licenses. (A lot of video-related libraries fall into this category.) As far as I can tell, gNewSense does not make any attempt to identify these packages. Nothing from the Ubuntu “multiverse” is available in the gNewSense repositories.
Besides the separate repositories, the “binary blobs” in question are primarily drivers in the kernel which are distributed under non-free licenses or which have unclear licensing terms. Debian has been struggling with this issue and has decided to allow such drivers to ship in Debian Etch (due to be released Real Soon Now). Ubuntu also ships with a tainted kernel and a “restricted” repository that contains Canonical-supported non-free video drivers for ATI and nVidia cards. gNewSense rejects all such drivers and ships a kernel which is 100% Free Software, no matter how useless that may be in the real world. The gNewSense maintainers apparently feel that saying you’re “a little bit non-free” is akin to saying you’re “a little bit pregnant.” Close doesn’t count, and even if people don’t notice the difference today, they’ll definitely notice it nine months from now.
Digression #2: since the last time I discussed my home computing situation, I’ve made a number of hardware upgrades. One of the joys of having the world’s most boring hardware is that there’s an enormous ecosystem of compatible third-party hardware you can install. This may sound like the world’s most boring revelation, but it was actually a surprise to me. My last three computers, in reverse chronological order, were a PowerBook, an iMac, and an PowerMac 8500. OK, the 8500 had PCI slots, but the iMac and PowerBook were notoriously non-upgradeable. I worked around the problem by buying external accessories (terabyte hard drive, DVD+R/DL burner, CF card reader), but I honestly didn’t know about the wide world of internal accessories. Why would I? I couldn’t use them.
Anyway, I’ve been having fun buying internal accessories recently: a 750 GB Seagate Barracuda hard drive (replaces the default hard drive), an internal Philips DVD+R/DL burner (replaces the default DVD-ROM drive), an internal 9-in-1 card reader (fits in the floppy drive slot), a Firewire card (fits in a PCI slot), a wireless card (fits in another PCI slot), and a cordless mouse (communicates with a base station that plugs into a USB port). They all worked like a charm in Ubuntu, although I did check the wireless card compatibility list before buying the wireless card. I would have mentioned the upgrades sooner, except… they all worked. Nobody wants to read a one-line HOWTO that says “Everything just worked.”
So this is what convinced me to download the gNewSense Live CD (via the torrent, which I am still seeding). Not because I want to use it (although I might someday, if they work out all the kinks and a real community forms around it), but because I wanted to check whether my recently upgraded hardware would work.
Digression #3: the first thing I noticed when I booted the gNewSense Live CD is that it inherits Debian’s and Ubuntu’s mistake of including a program called “Firefox” with non-official artwork. Debian got put on notice about this recently, whereas Ubuntu apparently made a special agreement with the Mozilla Corporation. (No one seems to know what the terms were, and the Firefox package in Ubuntu Feisty is still firefox_2.0+0dfsg-0ubuntu3, which doesn’t seem to include any substantial changes over the package that Debian got in trouble for shipping. Presumably the changes will be made before Feisty ships next year.) The problem is that the official Firefox artwork is under a strict copyright license, not open source, and the Mozilla Corporation is insisting that any product called “Firefox” must ship with the official artwork. In other words, you can’t ship a product called “Firefox” that is open source; it has to contain at least one piece of non-free artwork. The Mozilla Corporation gave Debian a simple choice: “[Y]our usage of the trademark is not permitted in this way, and we are expecting a resolution. If your choice is to cease usage of the trademark rather than bend the DFSG a little, that is your decision to make.” Debian Etch will include a browser called “IceWeasel,” which is simply Firefox rebranded with open source artwork, whereas Ubuntu Feisty will include a browser called “Firefox” which is a little bit pregnant.
Digression to the digression: I don’t really understand why Debian needs to call it “IceWeasel.” If you check out the MOZILLA_1_8_BRANCH from cvs.mozilla.org and compile it, you’ll get a perfectly good, completely open source browser named “Bon Echo.” It comes with open source artwork and everything. Of course, if you check out CVS HEAD (or MOZILLA_1_9_BRANCH next year, once it branches), you’ll get a perfectly good, completely open source browser called “Minefield.” Maybe the Debian folks just wanted consistent branding across versions.
Digression3: Don’t confuse Debian’s IceWeasel with the Free Software Foundation’s GNU IceWeasel. Debian is pulling from cvs.mozilla.org (MOZILLA_1_8_BRANCH, the same branch that Firefox 2.0 is based on) and changing the artwork and making other Debian-specific patches. The FSF actually maintains their own source code repository, which they forked a while ago from MOZILLA_1_8_0_BRANCH (the same branch that Firefox 1.5 was based on). Good Lord, this is complicated.
The second thing I noticed about gNewSense was that, upon launching the browser-improperly-known-as-Firefox, it tried to load a local file that didn’t exist. Apparently the gNewSense maintainers removed the ubuntu-artwork package where the default home page is defined, but they didn’t bother to change the browser’s default home page. Kinks like this are why people love Ubuntu. Getting things to work well is a lot harder than getting them to work at all.
It all comes back to the issue of the tainted kernel. I had only tested my new hardware in Ubuntu. Did it all “just work” because it’s truly supported by Free Software, or did it “just work” because Ubuntu “helpfully” installed a non-free driver? Without a clean kernel, I couldn’t be sure. (Yeah yeah, I could have compiled my own kernel. I’ve done it before. It’s not terribly complicated, especially if you’re compiling it on the same machine you’re going to run it on. Downloading and burning a Live CD was easier. Plus now I get to seed the torrent.)
I am happy to report that all of my hardware worked flawlessly in gNewSense. That includes the integrated Intel 945G video, ThinkVision L192p monitor at full resolution, integrated sound chip (AD198x I think), Customizer Black keyboard (the real fucking keyboard), Logitech LX7 cordless mouse, ADS Firewire card, Philips dual-layer DVD burner, SIIG JU-91NF12 9-in-1 card reader, and Linksys WMP54G wireless networking. (Yes, I actually tested the Firewire card by hooking up my digital video camera and importing a short amount of video with dvgrab.) The default layout and applications are mostly unchanged from Ubuntu, with the exception of Emacs, which gNewSense installs by default. (It also installs build-essentials, which includes a compiler and other development tools.)
This is why I say that gNewSense is the one distribution that the world actually needs: it’s like a reference implementation for Free Software. Standards often (alas, not often enough) ship with a reference implementation which focuses on correctness at the expense of everything else (including performance, scalability, and backward compatibility). You’re not actually supposed to use reference implementations in the real world; you’re supposed to test against them. gNewSense is the reference implementation of software freedom, and my hardware passed the test.
Will I switch from Ubuntu to gNewSense? No. But I could, and that’s enough of a victory for today.

