Sara Harrington, Suzanne Bell, and Adit Khorana are partners in the technology transactions practice at Wilson Sonsini Goodrich and Rosati, operating out of the Palo Alto office.
On June 29, 2007, the Free Software Foundation released the final text of the GNU General Public License, Version 3 (GPLv3) and the GNU Lesser General Public License, Version 3 (LGPLv3). The release of these licenses is of interest to both those considering the use of third-party software governed by the GPLv3 or LGPLv3, and those considering the adoption of the GPLv3 or LGPLv3 for an open source project. Given the importance and prevalence of the GNU General Public License, Version 2 (GPLv2), which governs such widely used software as the Linux kernel, our discussion below primarily addresses the GPLv3, the successor to the GPLv2. The GPLv3 retains many of the key features of the GPLv2, but also includes some noteworthy changes.
Application to GPLv2 Code
The release of the GPLv3 does not necessarily alter a licensee’s current obligations with respect to software governed by the GPLv2 (GPLv2 Code), and users of GPLv2 Code should in most cases continue to abide by the terms of the GPLv2 with respect to such software. While some open source projects (e.g., Samba and GnuPG) have announced their adoption of the GPLv3 going forward, this does not affect the applicability of the GPLv2 to code distributed prior to the release of the GPLv3. Notably, a number of prominent Linux kernel developers, including Linus Torvalds, have voiced their reluctance to adopt the GPLv3, and it seems likely that, for now, the Linux kernel will remain subject to the GPLv2.
Similarities between GPLv3 and GPLv2
Like the GPLv2, the GPLv3 is intended to promote the free availability and use of software, and continues to provide the same fundamental bargain: A GPLv3 licensee is allowed to freely use, redistribute, and improve software governed by the GPLv3 (GPLv3 Code), provided that the licensee complies with the terms of the GPLv3, including the obligation to make the source code for the original code and any modifications conveyed by the licensee available under the terms of the GPLv3.
Differences between GPLv3 and GPLv2
One of the common issues facing those who utilize GPLv2 software is the uncertainty as to whether other code that is used or distributed in conjunction with GPLv2 Code would be subject to the terms of the GPLv2, including the obligation to make the source code available under the terms of the GPLv2. Prior to the GPLv3, the open source community commonly made a distinction between software that was dynamically linked and software that was statically linked to GPL-governed code, with many presuming that dynamically linked code was a separate program that would not be governed by the GPLv2. The GPLv3 sheds some new light as to the scope of software that is subject to the GPLv3, but does not provide complete clarity on this issue. The GPLv3 requires that a work that copies or adapts “all or part of” the GPLv3 Code and that would require “copyright permission” would be subject to the terms of the GPLv3. In describing the source code that must be made available under the GPLv3, Section 1 of the GPLv3 includes a requirement that “the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require” must also be made available in source code form under the terms of the GPLv3. Accordingly, under the GPLv3, one needs to conduct an analysis based on the facts and circumstances in determining which code that is used and conveyed with GPLv3 Code is subject to the terms of the GPLv3, and should not rely merely on the distinction between dynamically linking and statically linking in making this determination.
Express Patent Terms
Unlike the GPLv2, the GPLv3 expressly addresses the issue of patent licenses, including:
- Under Section 11 of the GPLv3, each contributor explicitly grants a non-exclusive, worldwide, royalty-free patent license to all licensees of the GPLv3 Code under all patent claims owned or licensable by the contributor that would be infringed by making, using, or selling the GPLv3 Code. Unlike some open source licenses that limit the scope of a patent grant, Sections 5 and 11 of the GPLv3 provide that the scope of the patent license granted by a contributor extends not just to the contributor’s modifications to a work licensed under the GPLv3, but to the entire work licensed under the GPLv3. Although early drafts of the proposed GPLv3 stated that the patent license grant applied even in the case of mere redistribution with no additional changes to the GPLv3 Code, in the final version, the patent license grant provision applies only to contributors who have modified the GPLv3 Code.
- The GPLv3 also includes language to address the situation in which a third party that licenses its patents to selected GPLv3 Code recipients (where the patent licensor is not itself a distributor of such GPLv3 Code) purports to extend such patent license to all users of such GPLv3 Code. In effect, this language is an attempt to prohibit arrangements such as the reported Microsoft-Novell agreement in which Microsoft licensed its patents to recipients of Novell’s SUSE Linux, but not to others.
- Section 10 of the GPLv3 also prohibits the licensee from initiating any patent infringement litigation (including cross-claims and counterclaims) related to the GPLv3 Code licensed to it.
Accordingly, those conveying GPLv3 Code or considering asserting a patent related to particular GPLv3 Code should carefully consider the impact of these patent provisions.
User Products and Anti-Circumvention Law
In response to the recent proliferation of consumer products that utilize free software but then attempt to restrict a consumer’s ability to access and modify the code, the GPLv3 requires vendors of these products to permit users to modify the GPLv3 Code. Section 6 of the GPLv3 requires that all GPLv3 Code be accompanied by all necessary installation information, such as authorization keys, to ensure that the product continues to function with modified versions of the GPLv3 Code, unless it is physically impossible to install modified software on the device. Section 3 of the GPLv3 further purports to prohibit vendors of products that include GPLv3 Code from enforcing their rights under laws prohibiting circumvention of digital rights management technologies (e.g., the Digital Millennium Copyright Act) if the circumvention involves the GPLv3 Code.
Compatibility with the GPLv2 and Other Open Source Licenses
While the GPLv3 improves compatibility with several other open source software licenses (such as the Apache License, version 2.0, and the GNU Affero General Public License for works distributed as a Web service), it is incompatible with a number of other licenses. Most notably, the GPLv3 is not backwards-compatible with the GPLv2. Accordingly, in the event that GPLv3 Code is combined with GPLv2 Code, there is the possibility that the resulting combined code would be subject to conflicting obligations under the GPLv2 and the GPLv3. As a practical matter, a number of free software projects already license their code under the terms of the GPLv2 that expressly permit redistribution or modification under the terms of “any later version” of the GPL, in which case that code would be GPLv3-compatible. Consequently, those utilizing free software, including software licensed under the GPLv2, will need to carefully evaluate their ability to comply with the GPLv3.
The GPLv3 also clarifies a licensee’s obligations in those cases in which a licensee provides access to GPLv3 Code solely as a hosted service, providing that “mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.” Accordingly, certain GPLv3 obligations – such as making source code available – do not apply in those cases. Section 13 of the GPLv3 permits GPLv3 Code to be linked with works licensed under the GNU Affero Public License as long as the resulting combination is licensed under the Affero license. Under the terms of that license, users interacting with the program via a network must be able to obtain the source code to the program from a network server free of charge. Therefore, businesses operating an ASP should pay particular attention to their use of software distributed under the Affero GPL.
The GPLv3 introduces a number of additional important changes, including:
- Unlike the GPLv2, Section 8 of the GPLv3 now provides express cure periods for first-time violators of the license and a window in which the copyright holders must move to terminate the license to their GPLv3 Code for breach, or else the right to terminate the GPLv3 lapses.
- Section 6 of the GPLv3 provides that a distributor of GPLv3 Code in object code form that is embodied in a physical product (including CDs) now is expressly permitted to meet its source code distribution obligations via a network server.
- GPLv3 now expressly permits licensors to supplement the license from a list of additional terms set forth in Section 7 of the GPLv3 (including prohibiting misrepresentation of the origin of the licensed software, declining to grant rights for use of certain trademarks, and requiring indemnification of upstream authors and licensors by distributors for any liability arising out of contractual assumptions of liability assumed by the distributor).
- Finally, the license includes a number of changes intended to improve its enforceability in foreign jurisdictions.
The release of the final text of the GPLv3 is an important milestone for the open source software community, and undoubtedly will affect many businesses relying on open source software. Special thanks to Renat Lumpau for his significant contributions to this article. Reprinted with permission from Wilson Sonsini Goodrich and Rosati’s Client Alert, July 2007.