"The smartest one of us is all of us."
Anon
On June 29, 2007, the Free Software Foundation (FSF) issued the GNU General Public License Version 3 (GPLv3). The issuance of GPLv3 marked the end of a remarkable public consultation process aimed at revamping the license to address issues that the FSF considers to be a threat to the Free Software movement, and to clarify issues that have been misunderstood or debated since the publications of GPL Version 2 (GPLv2).
This article introduces the rationale for changing the GPL and introduces the changes that affect patents, Digital Rights Management (DRM), license compatibility, and the linking issue.
Why Make Changes?
Despite its wide-spread use, the FSF concluded that GPLv2 had some shortcomings. In particular, the FSF was concerned that developments in the law since the publication of GPLv2, such as the increasing prevalence of software patents and laws prohibiting the circumvention of Digital Rights Management (DRM) technology, threatened the freedoms that it sought to protect and which were not adequately addressed in GPLv2. In addition, it wished to increase the number of licenses with which the GPL is compatible so as to enlarge the pool of software code that can be combined with GPL-covered code. Finally, the FSF wanted to clarify certain provisions of the GPLv2 that it thought had either been misinterpreted or were incomplete. If such agreement does not extend to down-stream users of the program, the distributor will be in the position of being able to exercise the freedoms provided under GPL, but down-stream users will not.
To address this inequity, the FSF concluded that the recipient of a license to a patent that would otherwise be infringed by the use and distribution of a GPLv3-covered work must, as a condition to distributing such work, take certain actions to protect down-stream users. A beneficiary who "knowingly relies on" the patent license must either arrange to deprive itself from the benefit of the patent license for the affected program or arrange to extend the license to downstream recipients.
It should be noted that the words "knowingly relying on" were included in Section 11 to provide some comfort to those persons who have entered into blanket cross-licensing arrangements with others whereby they might not even know what patents have been licensed to them. As a third alternative, the beneficiary of the license may cause the source code to the program to be made available for anyone to copy, free of charge and under the terms of GPLv3.
Discriminatory Patent Licenses
In November 2006, Microsoft and Novell announced that they had entered into a broad business, technical and patent cooperation agreement under which Microsoft agreed not to assert its patents against users of Novell's SUSE Linux Enterprise Server product; provided such users do not make or distribute additional copies. Instead, the grant of patent license applies only to those persons who distribute versions of the program that they have modified. It is important to note, however, that the patent license covers the entire work and not just the portions modified by the distributor. Patent holders who distribute modified versions of GPLv3-covered software will still have to institute and follow appropriate diligence procedures to ensure that they do not inadvertently grant a license to one or more of their patents.
Retaliation Clause
A patent retaliation clause provides that the license to use the computer program is terminated if a licensee brings a claim for patent infringement against the licensor. Retaliation clauses can be either narrow in scope, by restricting its effect to claims of infringement that relate to the licensed program, or broad and result in the termination of the license if the licensee brings a claim against the licensor for any patent infringement, regardless of whether or not it relates to the licensed program. GPLv3 adopts a narrow retaliation approach which is implemented through the interaction of Section 8 and Section 10 of GPLv3.
Extension of Patent License
Another instance in which software patents can threaten the freedoms which the GPL aims to protect occurs when a distributor of a GPL-covered computer program enters into an agreement with the holder of a patent that is essential to the use of such program whereby the patent holder covenants not to sue, or otherwise grants permission to, the distributor for its use and distribution of the program. If such agreement does not extend to down-stream users of the program, the distributor will be in the position of being able to exercise the freedoms provided under GPL, but down-stream users will not.
To address this inequity, the FSF concluded that the recipient of a license to a patent that would otherwise be infringed by the use and distribution of a GPLv3-covered work must, as a condition to distributing such work, take certain actions to protect down-stream users. Section 11 of GPLv3 states that if the source code for the affected work "is not available for anyone to copy, free of charge and under the terms of this License". A beneficiary who "knowingly relies on" the patent license must either arrange to deprive itself from the benefit of the patent license for the affected program or arrange to extend the license to downstream recipients.
It should be noted that the words "knowingly relying on" were included in Section 11 to provide some comfort to those persons who have entered into blanket cross-licensing arrangements with others whereby they might not even know what patents have been licensed to them. As a third alternative, the beneficiary of the license may cause the source code to the program to be made available for anyone to copy, free of charge and under the terms of GPLv3.
Discriminatory Patent Licenses
In November 2006, Microsoft and Novell announced that they had entered into a broad business, technical and patent cooperation agreement under which, among other things, Microsoft agreed not to assert its patents against users of Novell's SUSE Linux Enterprise Server product; provided such users do not make or distribute additional copes of such program. By structuring the deal as a covenant not to sue, rather than as grant of a patent license to Novell, the parties sought to by-pass the GPL provisions that would restrict Novell from redistributing GPL-covered programs in SUSE Linux Enterprise Server if it could not extend the benefit of a patent license to down-stream recipients. In the opinion of the FSF, the Microsoft/Novell deal, and any similar arrangements, threaten the goals of the FSF and have the effect of making the affected GPL-covered program proprietary.
To address this threat, the FSF included in Section 6 of GPLv3 provisions to automatically extend patent licenses to all recipients of a GPLv3-covered program if the distributor grants a patent license to one of the recipients. Section 11 of GPLv3 also includes provisions which are intended to prevent other parties from entering into arrangements that are similar to Microsoft's deal with Novell. While there has been much debate regarding the effectiveness of such provisions, the uncertainty resulted in Microsoft stating that its deal with Novell would not extend to programs distributed under GPLv3.
Key Change #2: DRM
DRM is a term that is used to generally describe any system or method of protecting copyrighted or other proprietary material or data. While the FSF cannot outlaw the implementation of DRM-technology, in drafting GPLv3 it sought to prevent the use of GPL-covered computer programs from being used in such a manner. The FSF often cites TiVo as an example of GPL-covered computer programs being used as part of DRM systems. TiVo, a personal digital recorder for television programs, includes GPL-covered computer programs. Pursuant to the terms of the GPL, TiVo provides the source code and users are permitted to make modifications to the programs. However, if a user attempts to run modified software on the TiVo hardware, the TiVo system will not operate.
To address its concern with DRM technology, Section 6 of GPLv3 provides that if any person distributes object code versions of a work licensed under GPLv3 as part of or for use with a "User Product" (as defined in GPLv3), such person must (with some exceptions) also make available "Installation Information", which includes authorization keys or other information necessary to install and execute modified versions of the work in that User Product.
Section 3 of GPLv3 also contains provisions which seek to limit the application of various DRM and anti-circumvention statutes to GPLv3-covered software.
Key Change #3: Compatibility
While the GPL is the most widely-used open source license, there are many other licenses, not all of which are compatible with the various versions of the GPL. For a license to be compatible, a user must be able to combine the programs, or portions thereof, and distribute the combined work under the GPL. If one cannot distribute the combined work under the GPL and still be in compliance with the other license, the two licenses are not compatible and the two programs cannot be distributed as a combined work.
In drafting GPLv3, the FSF wished to increase the number of open source software (OSS) licenses with which the GPLv3 is compatible without sacrificing the freedoms that the FSF seeks to preserve for users. To achieve this goal, Section 7 of GPLv3 permits additional permissions and a limited number of additional restrictions, or non-permissive provisions, to supplement the terms of GPLv3.
License incompatability is true even with GPLv2 and GPLv3, as these two versions of the GPL are not compatible with one another. Fortunately, many programs that are licensed under GPLv2 state that the program may be used under the terms of GPLv2 "or any later version". In such cases, the GPLv2-covered program can be combined with GPLv3-covered code and the combined work can be distributed under GPLv3. However, programs that are licensed under "GPLv2 only" may not be distributed as part of a combined work under GPLv3 unless the copyright holders of such program otherwise agree. For example, the Linux kernel is licensed under GPLv2 only.
Key Change #4: The Linking Issue
A computer program does not operate in isolation, and most programs are designed to utilize or link to other code, such as libraries. In discussions regarding the reach of the GPL, it has often been debated whether a covered work includes code that is linked to GPL-covered code. For GPLv2-covered programs, the difficultly is a result of the absence of any operative language regarding linking and by confusing references to "derivative works" and "collective works". In GPLv3, these terms have been removed and a specific reference to linked code has been included. However, the FSF has not eliminated all ambiguities and it is not certain that the revisions have resolved the issue. It is clear that those who have used creative methods to avoid "contaminating" proprietary code, for example, by separately distributing libraries and add-ons, will have to re-evaluate their practices.
Conclusion
In revamping the GPL, the FSF addressed difficult, and often controversial, issues. The success of GPLv3 will be measured in large part by the rate at which it is adopted by developers and users of Free Software and Open Source Software. While many development projects have already migrated to, or adopted, GPLv3, others appear to be taking a "wait and see" approach. For companies that include Free Software and Open Source Software in products that they distribute, it is too soon to tell whether those that have previously distributed GPLv2-covered software will similarly embrace GPLv3-covered software. However, as this article explains, no decision should be made with respect to the use of GPLv3-covered software without first carefully considering the impact that the new provisions of GPLv3, such as the patent and DRM provisions, could have on one's business.