Linguistic Problems of GPL Advocacy


There’s a highly interesting article over at /. on the Linguistic Problems of GPL Advocacy. It’s really about the linguistic problems of BSD advocacy as well, but it’s written by a BSD advocat, so you have to forgive that little blunder.

The article raises a few interesting points, or rather looks at the problem in an interesting way. I’m not sure I can bring myself to agree, however.

It all boils down to this part of the linked article:

Consider a situation where a user has a GPL-licensed program that converts a JPEG image to a GIF image and his own program (which he sells, or distributes under some other incompatible license) that can only view GIF images. It is legal for him and his customers to call the GPL program from the command line to convert JPEG images and then view them with his program. Suppose he gets fed up with this sequence and writes a shell script to do both operations in sequence. Is this legal? Probably. But what if he cuts out the conversion part of the GPL program and embeds it in his viewer? That would make his viewer a derived work, and so illegal to distribute under anything but GPL.

From the GPL advocate’s view, this is perfectly logical. It is his code, and he wants all instances of his code to be free. The instance can not be free if it is embedded in another executable that is not free, since it can not be easily modified, which was Stallman’s gripe and the reason for the GPL’s existence.

I think this shows clearly that Chemisor (the author of the /. article) misunderstands the intent of the GPL, and therefore misunderstands the whole debate a little.

Historically speaking, he is correct in that Stallman was upset at the unavailability of a printer driver’s code1, and that’s at the root of his Free Software movement.

But Chemisor pulls verbal kung-fu on us by linking that story to the reason for the GPL’s existence. The story explains the origins of the GPL very well, but not necessarily it’s intent — which makes for a subtle but very important difference.

The GPL’s intent is to create a world in which all source code is freely modifiable and reusable, not just the piece of code you happen to be working on right now. It’s intent is to free humanity of the shackles of monopoly over knowledge — and that means that ultimately all source code must be free. Of course, for the time being, closed source code is acceptable… but the idea is that it’ll get displaced over time by free code, because the free software concept will prove to be superiour in the long run.

What may sound a bit lyrical shows clearly that the GPL’s intent is not to keep a particular piece of code or project2 free, it’s intent is to carve out more and more space in the software world for free software.

In that it is viral, and intended to be viral. If I immerse myself completely into a GPL mindset, I do not like the sound of that either. I really prefer to liken GPL’d code to dominant genes — if you incorporate such a piece of code into your product, it’s license is determined by it. Thus the GPL becomes — dare I say it? — a meme.

In that way, GPL advocates look to the future when they speak of software being free — BSD advocates merely look at the past3. And that’s more likely the reason BSD and GPL advocates clash so often.

  1. You can read up on that here. []
  2. It really doesn’t matter whether you differentiate between the two. []
  3. As exemplified by Chemisor’s example of 15 year old BSD-licensed projects that to this day remain free — but utterly obsolete. []