GPL and definitions of freedom

This is a response to John Sullivan of the Free Software Foundation on why it's worthwhile to consider utility when deciding on a course of action.

John Sullivan, a Program Administrator over at the FSF, responded to a previous blog post where I questioned whether the GPL really needs the ideals expressed by its authors in order to pursue the productivity advantages of a community development model. Not surprisingly, he argued that the GPL needs those ideals, as those ideals are the only thing which protects the rights enumerated in the GPL. Quoting from that response:

What the GPL does do, and what the GPLv3 does more thoroughly, is ensure that you can make modified versions of free software that work differently than the version you received, that you can use your modified version instead of the original version, and that you can share your version with others.

This is the problem with DRM, according to Sullivan. By ensuring that modified code can't run on hardware designed to run only signed versions of software (the signing keys for which are not available to end-users), the ability to run your modified version is curtailed, thus undermining the freedoms championed by the GPL. Again, quoting from the response:

Without these freedoms, you can only choose among the practical development models allowed to you by the manufacturers of DRM-laden hardware. It's likely that they will allow you no development model at all.


If no hardware sold in the world will run a user's modified code, then how will anyone learn to modify code? How will people share code?

Perhaps I'm being too practical here, but is there NO VALUE in having hardware that only allows a particular vendor-controlled version of software to be run? Think of mission critical systems where the risks of uncontrolled execution of code is high. Automatic Teller Machines (ATMs) may be a good example, but it could even extend to bomb-sniffing robots that run Linux (it's true, they do).

The question as to whether a particular configuration NEEDS to have such protections should be in the hands of the user, a group that includes not just individual hackers working out of their homes, but companies making products that they sell on to consumers. Where it shouldn't be is in the hands of license authors at the Free Software Foundation as they attempt to make broad statements about the proper way to use GPL software for an entire industry.

On that note, I consider the fear that "no hardware sold in the world will run a user's modified code" to be a red herring. I can assemble a computer from cheap parts in under an hour. Is he suggesting that some hardware Gestapo will manage to centrally control all hardware and ensure that NOBODY can build systems unencumbered with hardware DRM? That's unlikely. Since it is unlikely, the fact that it is POSSIBLE to make DRM-free hardware, and the fact that there is clearly a demand in some quarters for hardware that enables custom modifications to be run, will ensure that someone, somewhere will sell hardware that does not prevent modifications for those who don't feel like rolling their own configuration.

Slight left turn here...

That the current GPLv3 text seeks to prevent such distribution is not a sign of a new, dispensable layer of ideology being added. It is a sign of loyalty to a core principle of copyleft and the free software movement. To think that you can remove it, leaving only some useful development model behind, is to forget both the commitments that were necessary to enable the models we have now, and more importantly, the value of freedom itself.

This is where we get into different definitions of freedom. To understand my definition, however, it's best to start with an understanding of the information commons.

What is the information commons? The information commons is knowledge that anyone can use however they wish with no restrictions or fees. The wheel is in the "information commons." The complete works of Mark Twain are in the Information Commons. The scientific principles which govern electricity are in the information commons.

This is truly free information, as anyone can use it, whether they are trying to make more free and unencumbered knowledge, or are making products that are proprietary and for which a fee is involved.

Proprietary software is not in the information commons. It is software that you have to pay a fee to use, and the details of which are kept secret. Patented IP is not in the information commons. It is knowledge that you have to pay for the right to use. Last, GPL software is NOT in the information commons. You can't use it to make proprietary software, something which you can do with all the aforementioned items of knowledge which are rightfully considered to be in the information commons.

Now, there are reasons to make things less "free." In proprietary software, you are monetizing an intellectual asset and thus creating financial incentives to innovate (more than might exist if people just did it for the sake of doing it). As I expressed in the blog post to which John Sullivan responded, the utility of the restrictions on freedom which exist in the GPL is that it enables community development while making forks in the code more difficult.

Both reasons to make things "less free," however, are based on utility. I can't burn my apartment down when I'm in a bad mood, because it might harm my neighbors. I can't drive my car 100 mph down the road, because that puts other drivers at risk. I can't take my neighbor's car and call it my own, because the system of property rights, properly conceived and defended, yields vibrant market economies that makes it possible for us glorified apes to have these discussions on a technology news site on computers that keep getting cheaper and more powerful. 

This is why talking about abstract principles of "freedom" makes me itchy, as it ignores the very real fact that our definition of freedom is always based on what works. My argument in the original blog post was that the GPLv3 is creating a situation that will hinder use of GPLv3-licensed code in a world where DRM is likely to only grow in importance. They are, essentially, abandoning large parts of the software country out of principle, leaving their opponents to do as they will in those undefended territories.

Is that useful?

If I'm playing a tennis game, it's a bad idea to use a baseball bat instead of a tennis racket. Yes, I'm FREE to do that, but I'm likely to lose the game, and badly. If I want to drive a car, it's probably not a good idea to sit in the back seat. In other words, it's all well and good to declare yourself unable to do things on abstract principles. But if the net result is worse than if you are somewhat flexible on those principles, then the principled stance is NOT useful.

That's all I was suggesting in my previous blog post, and that's not an original idea straight out of the brain of John Carroll. Linus Torvalds seems to be of that opinion, hence his opposition to the DRM provisions in the GPLv3.