This week’s readings (for CS 889) are primarily on the GNU General Public License, with a heavy focus on GPL v3. In this post I will focus on GPL v3, and how it differs from previous versions. I will then discuss some of the controversy with this license, and my thoughts regarding these issues.

GPL v3 vs. Previous Versions

According to the FSF document ‘A quick guide to GPLv3‘, and supported by excerpts from  an audio interview with Eben Moglen, the GPLv3 differs from its predecessors in three important ways:

  1. Internationalization. Previous versions of the GPL were very US-centric, and were based on US copyright laws. In writing the GPLv3, much attention was paid to ensuring that the GPL is internationally enforceable. This could prove to be very important reason to use this newer version of the license. Then again, previous versions of the GPL seem to have stood the test of time even when used internationally.
  2. Clauses to prevent Tivoization. This is a terrible term, but basically, the GPLv3 ensures that, should a device manufacture choose to use GPL’ed software, they must ensure that users can continue to modify the software, and that modified versions will actually run on the device. This is clearly in the spirt of the GPL, and I think it is a very important (albeit, highly-specific) point.
  3. Clauses regarding DRM. My understanding of the GPLv3 is that it allows developers to implement new DRM techniques in GPL’ed software, but goes on to state that this DRM cannot be considered an ‘effective measure’ for preventing copying. Basically, this ensure that DRM in GPL’ed software will never fall under the enforcement of the Digital Millennium Copyright Act. I think this is a very clever clause, and I am very much in agreement with the FSF on this point. However, it is highly political: no company would be crazy enough to implement DRM in open source software because it would be ineffective. DRM relies on security through obscurity for protection (since any device that allows playback has all the tools needed to circumvent the DRM… its just that this capability is very well hidden and hard to reverse engineer). By open-sourcing DRM, companies would basically be opening the kimono.
  4. Patent clauses. The GPLv3 also includes numerous clauses to protect developers and users from patent litigation. Specifically, if a company modifies and contributes to GPL’ed software, and then uses patent law to litigate against other developers and users, then the company’s license to the software is revoked. I must admit that I don’t fully understand how this works.
  5. Increased compatibility with other licences. The GPLv3 allows users to make small changes to the default terms and conditions of the license. This is designed to make GPLv3 more compatible with other licences (like the Apache licence). This is one possible response to addressing the problem of license proliferation. However, critics argue that this will only increase the number of license variations, and will make the problem worse. On this topic, Eben Moglen believes that there will initially be many variations that are tried, but (as is the case with other forms of law), a few variations will become standard; hence, there will be increased compatibility without contributing much to the proliferation problem.

GPLv3 Controversy

Ok, so those are the 5 major ways in which GPLv3 differs from previous version. These differences have been somewhat controversial in the FLOSS community. Most notably, the Linux Kernel developers have been very outspoken as to why they will not adopt  v3. On this topic, they published a position paper. This paper is based on an early draft of GPLv3 — it is not clear how their position may have changed in regards to the the licence’s final draft. In any case, the kernel developers take issue with almost all of the 5 points outlined above. Unfortunately, the position paper lacks specifics. Some of the objections become more clear in Linus’s postings [1][2] to the kernel developer mailing list. For example, on the topic DRM, Linus writes:

“I’m very much on record as not liking (DRM). That changes nothing. I’m also very much on record as saying that DRM, TPC etc have nothing at all to do with the kernel license. If you want to fight DRM, do so by joining the Creative Commons movement. (…) The whole ‘content’ discussion has nothing to do with an operating system. Trying to add that tie-in is a bad idea. It tries to link things that aren’t relevant.”
Interestingly, Linus and the kernel developers could have avoided moving to the GPLv3 based purely on technical terms: The Linux kernel opted out of the “or any future version” clause of the GPLv2. This makes it nearly impossible to update the Linux Kernel license. As such, the Linux kernel developers’ publication of the aforementioned document is again rather political.