Marco Tabini describes why he finds the GPL to be “morally repugnant” in the context of discussing the copyright infringement lawsuit facing Verizon right now. Verizon is accused of distributing the GNU General Public Licensed software “BusyBox” without distributing the complete corresponding source code as that license requires. Verizon is clearly in the wrong here, there’s no question about what they’re doing, and GPL enforcement is generally an open-and-shut case. Tabini has problems with what he perceives are the GPL’s terms and he’s sympathetic to would-be proprietary derivatives of free software.
Morally, however, I find the GPL repugnant. Its fight-fire-with-fire principle of forcing anyone who uses a piece of software to disclose all their source code in turn betrays its purported ideals of freedom in a disgusting way. There is nothing free about inflicting the GPL on someone just because they use GPL’ed software””it is no different from, say, your cellular provider preventing you from connecting anything but their devices to their network, or forcing you into a contract in exchange for a discount on the cost of your handset.
The GPL says no such thing; anyone is free to use GPLed software without distributing source code to anyone else, or even possessing a copy of the source code to a GPLed program. Under GPL version 2, distributing complete corresponding source code (or a written promise for said source code) is required only when one distributes a copy of the GPLed program. Merely running the program doesn’t require the user to do anything with the program’s source code. In GPL version 3 the requirements are much the same while the language has changed (the GPLv3 talks about “conveyance” instead of distribution for increased portability among copyright regimes).
Distributing (GPLv2) or conveying (GPLv3) a copy of the complete corresponding source code (the code a human can read but a computer can’t) is required so that the recipients of the GPLed program can have the same freedom the distributor had. Allowing one to distribute only the object code (the code a computer can read but a human generally can’t) would let a recipient of the program run the program but not inspect the program (to see what the program is really doing), change the program (to make it do what one wants the program to do), and share the improved program (for the benefit of others). The GPL exists to spread and defend a user’s software freedom—the freedom to run, share, and modify computer software.
Open-source software should exist and thrive not necessarily because it is better from a technical perspective (although that is usually a consequence of its other characteristics), but because it is unencumbered with artificial limitations that throttle’s someone’s ability to use it. These could take the form of a commercial developer preventing changes that encroach on their business model, or non-commercial developers who impose limitations on usage and development on others to “encourage” transparency and openness.
Now we see why Tabini has such strong objections to the preservation of software freedom—he argues against the GPL from the open source movement’s perspective. That movement was founded to be more acceptable to business, and in the eyes of the founders that meant, in part, to never raise a user’s software freedom as an issue. The Open Source Initiative, the organization that coined the term “open source”, does not teach that users deserve software freedom. So it’s not surprising that open source advocates take the side of a business over society at large or side with a proprietor over a free software activist by agitating for apparently desirable software to be released under a license that would allow proprietary derivatives (such as the new BSD license as Tabini mentions).
The GPL doesn’t prevent any commercial developer from using, sharing, or improving the program. The GPL merely requires that those who get a copy of the program get the freedom to use, share, and modify the program further. This is fair and just. Defending software freedom means defending against any “developer [who would prevent] changes that encroach on their business model” because software freedom says that every computer user should be free to make their computer do what they want, limited only by their own expertise, willingess, time, and money (all factors beyond a licenses purview). Not just commercial developers.
But more importantly, we shouldn’t prioritize commercial interests. Commercial development and distribution is a fine thing, but it’s properly a secondary concern. What’s chiefly important is social solidarity and free people. We need to be free to organize as we deem necessary, not as commercial interests are said to require. That’s what the free software movement is really all about. The free software movement is a social movement that advocates for the freedom to determine one’s own fate, to build and defend a society of such people who are free to work together for our mutual benefit.
Of course we can’t have all possible freedoms, as some freedoms conflict. So we have to choose which freedoms we want to value and then curtail conflicting freedoms. Hence the GPL disallows proprietary derivatives.
Update (2007-12-17): Marco Tabini responds saying that he “believe[s] that true freedom doesn’t need to be picked-and-chosen”.
“True freedom” doesn’t tell us which freedoms we’re talking about. Conflicting freedoms occur frequently—the freedom to drive your car anywhere you want conflicts with a pedestrian’s freedom to walk down that street in safety. Society must choose which freedoms it wishes to value and then curtail conflicting freedoms accordingly. Societies which value pedestrians more than drivers restrict cars to traveling on roads and require their drivers to obey traffic rules which often give the right-of-way to pedestrians.
Given what the free software movement values (more on this), it’s not surprising that this movement finds the new BSD license to be acceptable (as it grants users of covered software these freedoms). It’s also not surprising that this movement places a higher value on licenses which also preserve these freedoms for derivative programs as well (what’s known as a “copyleft” free software license—where copyright denies copying, distribution, and modification by default, copyleft is a method which ensures these freedoms).
Digital restrictions management (DRM) and software patents also threaten a user’s software freedom by reducing a user’s means to technically and legally change a program and share a program with others. Hence it’s also no surprise that the GPL would be changed to ensure these freedoms in the face of those threats by neutralizing DRM for GPLv3-covered software (closing the “Tivoization” hole, so named for the first major use of the GPLv2 weakness which allows Tivo to distribute GPLv2-covered software that users cannot effectively modify), and clarify language about the threat of software patents. By contrast, the new BSD license says nothing about software patents or DRM. This is part of why proprietors like that license; proprietors can use their superior advertising power to make their DRM and/or patent-encumbered derivative of a free software program more widely used than the free version. Then the free software developers are left to compete against a derivative of their own work, which is quite demoralizing. The act of licensing is itself a power, not a freedom, but free software licenses use that power to help the community mindful of the psycho-social effect it has when people are prohibited from helping themselves and their fellows. The new BSD license and the MIT X11 licenses allow anyone to turn a freedom into a power.
Tabini also asks “is the value of BusyBox enhanced or reduced by their choice of license? Or, otherwise stated, if there were a compatible BusyBox replacement that were licensed under a BSD-style license, would it be more successful?”. Until we know which value we’re being asked about and how success is being measured it’s impossible to have an answer. Typically when people ask questions like this they use the term “success” to mean popularity. Popularity can be beneficial when it is coupled with teaching people to value software freedom for its own sake; making software freedom popular is a fine goal to have. When people learn why we fight for software freedom they tend to favor free software, so there’s an increase in popularity while teaching others about the more important goal of of software freedom.