GPLv3, Clarity and Simplicity

The first I heard about plans for a GPLv3 revision was from Bradley Kuhn early in 2005 at a meeting I organized for The Perl Foundation (a public review of the Artistic License 2.0). My first thought was “Great! We can finally clean up some of those ambiguities in the GPL, and make it easier to understand and more legally precise.” These were my primary goals in driving the Artistic 2.0 revision, so it’s understandable that I expected something similar from the GPLv3. I don’t know that clarity and simplicity was ever a goal that Richard Stallman, Eben Moglen, or any of the GPLv3 team desired to achieve. Looking at the near-finished draft, I have to say it’s unlikely that they ever considered simplicity a priority, if they considered it at all.

I can’t fault them for failing to achieve a goal they never had in the first place. But clarity and simplicity are important goals for an open source license.

The audience for an open source license is not just lawyers, it’s the whole open source community. In the same way that it’s important to have the source code broadly accessible, it’s important to have the terms of the license broadly accessible. Power should not be held by a small elite group of lawyers. Every individual should be enabled to comprehend the terms of the license, and make informed decisions about the software they use and the license they choose to release their own software. Power in the hands of individuals is one of the core tenets of freedom. The language choices of an open source license can support that freedom, can empower the users and the developers. The GPLv3 doesn’t.

On the purely practical side, the more dense the legalese, the more likely it is to have unintended side-effects. Humans, even highly trained lawyers, make mistakes. The harder it is to decode the meaning of a particular section, the more likely it is that the people drafting it will miss a glaring hole in the terms. Every hole they try to patch with bandages of additional verbiage introduces new ambiguities, more holes, and more chances for malicious misinterpretation of the language. It’s better to strip down to the simplest, clearest, most legally precise, and legally concise phrasing possible. This is closely related to the development principle of “Do the simplest thing that could possibly work.” Developers know that if you have a 2000 line program and a 200 line program that do exactly the same thing, the 200 line program will be easier to maintain and easier to debug, and generally more reliable too.

I’m sympathetic to the perspective that added verbiage in the license can act as an embedded FAQ, guiding the interpretation of the core terms. But the interpretation of the GPLv2 depends heavily on the unwritten case history of GPL enforcement. From the FSF’s conversations with Committee A, it sounds like they plan to take the same approach with the GPLv3. With so much of the interpretation external to the license text anyway, there’s really no benefit to cramming it full of FAQ information. A clear and simple license with a separate explanatory FAQ would be far more effective.

I’ll leave you with some license text I drafted during one of the Committee A conference calls last year. I extracted the essential terms of the GPL into a greatly simplified form, and polished it with Roberta Cairney (primary legal counsel for the Artistic License 2.0). I hope that someday we’ll have a Creative Commons of open source licenses as simple as this one, and simpler. For now, consider it a plain English guide to the terms of the GPLv3.

The goal of this License is to promote the freedom of all users to share and change free software.

Definitions:
“You” means any individual exercising the rights granted in this License.

The “Work” means the work of authorship distributed under this License. A “Modified Work” means any altered version of the Work.

The “Source Code” for a Work means the preferred form of the Work for making modifications to it. “Object Code” means any non-source form of a Work.

“Distribute” means copying a Work or Modified Work, making it available to the public, and enabling other parties to make or receive copies. It does not mean sublicensing.

Permissions:
1) You may use the Work, without limitation.

2) You may Distribute the Work as Source Code, provided that you:
a) make the Work available under this License,
b) retain all of the copyright notices and warranty disclaimers of the original Work unchanged in the distribution, and
c) provide to the user any information necessary to install modified versions from the Source Code.

3) You may Distribute a Modified Work as Source Code, provided that you prominently note the changes you made and provided that you satisfy the requirements of section 2.

4) You may Distribute a Work or Modified Work as Object Code, provided that you satisfy the requirements of sections 2 or 3, and provided that you make the corresponding Source Code available to the user under this License.

5) You may charge any price or no price for each Work or Modified Work that you Distribute, and you may offer support or warranty protection for a fee.

6) Aggregation of the Work with other separate and independent works on a volume of storage or distribution medium does not cause this License to apply to those other separate and independent parts of the aggregate.

7) You are not permitted to Distribute the Work or Modified Work in a way that denies the users any of the rights granted in this license. You are not permitted to impose a fee for the rights granted in this license. You are not permitted to limit operation or modification of the Work or Modified Work as a means of enforcing your legal rights or the legal rights of any third party against any users of the Work or Modified Work.

8) By Modifying or Distributing the Work or Modified Work, you indicate your acceptance of this License, and all its terms and conditions. You may contact the copyright holder of the Work directly and arrange terms to use, distribute, or modify the Work other than those of this License.

9) Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor’s patent claims in its contribution, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contribution.

Termination:
10) The permission granted by this License to distribute or modify the Work will terminate if you bring a legal action for infringement of any patent claim licensable by you that is applicable to any element of the Work or any Modified Work, against anyone based on their use, modification or distribution of the Work or a Modified Work.

11) The permissions granted under this License cannot be terminated as long as you are in compliance with this License. If you violate this License, and you do not correct the violation and return to compliance within 30 days after receiving notice of the violation from the copyright holder, the permissions will terminate as of the end of the 30 day period.

Warranty and Liability:
12) There is no warranty for the Work, to the extent permitted by applicable law. Unless otherwise stated in writing, the copyright holders and/or other parties provide the Work “as is” and without warranty of any kind, either expressed or implied, and the excluded warranties include without limitation implied warranties of merchantability and fitness for a particular purpose.

13) Unless required by applicable law or agreed to in writing by a copyright holder, in no event will any copyright holder, or any other party who may modify and/or distribute the Work under this License, be liable to you for damages, including any general, special, incidental or consequential damages arising out of the use or inability to use the Work, even if such holder or other party has been advised of the possibility of such damages.

tags: