For more than ten years, the GNU General Public License has provided the legal foundation for much of what’s been accomplished with free and open source software. Now the license’s steward, the Free Software Foundation, is revising the venerable document to comprehend the complexities of developing and distributing open source software in the modern day. In this exclusive article, Groklaw founder and editor Pamela Jones analyzes many of the proposed changes found in GPL Version 3 and explains what’s in store for you if your name is Joe Coder.
The GPL has succeeded in preventing a proprietary enclosure of the commons. So why update it?
Two things have happened that make an update of the GPL desirable: the world has become more complex legally (think of software patents), and the whole world has become interested in GPL’d software. In the first instance, the new complexities must be addressed in the license; in the second, the license needs to be worded to be effective beyond US borders, under other countries’ legal systems, not just under United States copyright and patent law.
As the rationale explains:
â€œMost countries have followed the direction of the United States, permitting software to be patented to at least some degree. This worldwide shift in patent law has brought about immense harm and injusticeâ€¦ A program’s own license cannot protect it from the threat of software patents. The only real solution to the problem of software patents is to abolish them. However, we can protect against attempts by some participants in a program’s development to use patents against other participants. GPLv3 provides an explicit patent license covering any patents held by the program’s developers, replacing the implicit license on which GPLv2 relies. GPLv3 also implements a narrow scheme of patent retaliation against those who undertake this precise form of aggression.â€
Updating the GPL is in part, then, to deal with the new landscape and to make sure that the GPL works internationally.
And as an example of drafting globally, the word â€œdistributionâ€ doesn’t mean the same thing everywhere. Hence, the draft of GPLv3 uses the word â€œpropagateâ€ instead. Here’s the explanation offered in Comment 157 on the FSF page for comments on the draft:
â€œThe term ‘propagate’ serves two purposes. First, ‘propagate’ provides a simple and convenient means for distinguishing between the kinds of uses of a work that the GPL imposes conditions on and the kinds of uses that the GPL does not (for the most part) impose conditions on.
â€œSecond, ‘propagate’ furthers our goal of making the license as global as possible in its wording and effect. When a work is licensed under the GPL, the copyright law of some particular country will govern certain legal issues arising under the license. A term like ‘distribute,’ or its equivalent in languages other than English, is used in several national copyright statutes. The scope of ‘distribution’ in the copyright context can differ from country to country. We do not wish to force on the GPL the specific meaning of ‘distribution’ that exists under United States copyright law or any other country’s copyright law.
â€œWe therefore define the term ‘propagate’ to reference activities that require permission under ‘applicable copyright law,’ but we exclude execution and private modification from the definition. Our definition gives examples of activities that may be included within ‘propagation,’ but it also makes clear that, under the copyright laws of a given country, ‘propagation’ may include other activities as well.â€
Another example of a â€œglobalâ€ change comes in the first sentence of Section 2: â€œAll rights granted under this license are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met.â€ The FSF’s Bradley Kuhn comments in Comment 163 on the rationale here:
â€œFurther[ s] internationaliz[ ation of] the GPL. Under the copyright laws of some countries, it may be necessary for a copyright license to include an explicit provision setting forth the duration of the rights being granted. In other countries, including the United States, such a provision is unnecessary but permissible.â€
Improving Upon GPLv2
Other proposed changes in GPLv3 stem from real life, from seeing how some have used and misused the text of GPLv2 to work around the mechanisms of the license. For example, GPLv2′s definition of source code has often been intentionally and accidentally misinterpreted. Comment 165 says:
â€œRetains GPLv2′s definition of ‘source code’ and adds an explicit definition of ‘object code’ as ‘any non-source version of a work.’ Object code is not restricted to a narrow technical meaning and is to be understood broadly as including any form of the work other than the preferred form for making modifications to it. Object code therefore includes any kind of transformed version of source code, such as bytecode. The definition of object code also ensures that licensees cannot escape their obligations under the GPL by resorting to shrouded source or obfuscated programming.â€
Another example of real life experience affecting the wording of the GPL is found in Comment 186, regarding the text, â€œThis License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it.â€ The comment states, â€œExplicitly recognizes the validity of disjunctive dual-licensing.â€
Finally, some of the proposed changes simply stem from other proposed changes. For example, Section 7 allows for certain exceptions. That requires the wording, â€œobey any additional terms present on parts of the Program in accord with Section 7.â€ Obviously, for the exceptions to work, a distributor of verbatim copies of the program’s source code must obey the terms of any additional terms that apply to the exceptions. Similarly, the wording â€œunmodifiedâ€ regarding the license has to be altered to read, â€œunmodified except as permitted by Section 7 below.â€