After an introduction to Open Source software and some salient issues with respect to it, I follow up with an article focused on the most widely used open source licenses, the GNU GPL licenses. As discussed in my previous post, the GPL licenses fall under the restrictive licenses category. The GPL licenses can be extremely complex for both lawyers and programmers to interpret as programmers are not well versed with the law and lawyers know little about programming. The problem is compounded by the fact that GPL and existing copyright law often don’t see eye-to-eye. In this post, I have tried to break down some of the contentious clauses about derivative works in the GPL licenses to see how they might play out.
GPL AND THE ISSUES WITH THE DERIVATIVE WORKS
The impetus of the GPL is to keep the software licensed under it free. This means that the freedom to access the software and its source code, and make modifications to it is accompanied by an obligation to distribute the software and any derivative works under the same terms. This reciprocity condition, known as “copyleft,” is a key legal innovation of the GPL Licenses. It perpetuates the right of all users to copy and modify both current and future versions (as created through derivative works by a user) of programs.
Copyright law in the US defines ‘derivative work.’ It states that ‘derivative work’ is a work based upon a preexisting work (17 U.S.C. § 101). Version 2 of the GPL, on the other hand, uses the term ‘a work based on the Program.’ Section 1 of the GPL defines it as a work formed by modifying the original program. This definition is in line with how derivative works are understood under copyright law. But things become complicated because Section 0 of the same license broadens the definition of ‘a work based on the Program’ to any work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (GPLv2.0 section 0). This wider definition includes not only modified works, but also collective works. A collective work is an aggregation of independent works, i.e. a work containing other preexisting works. This issue of what comes under ‘a work based on the Program’ is important in the domain of software because it raises serious concerns for those who want to create software that links to a GPL licensed program. If linking leads to their software becoming ‘work based on a Program,’ the reciprocity obligation of the GPL would have to apply to the other linked programs as well.
Section 2 of the license offers some guidance on how to interpret the GPL in the case of linking. It states—
“If identifiable sections of [work using GPL licensed programs] are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.” (GPLv2.0 section 2.)
The first sentence here makes a reference to parts “not derived from the Program,” It is stated that the GPL shall not apply to those components when they are distributed as separate works on their own. The next sentence addresses the scenario in which the whole containing these components is distributed. If we read these two sentences together, ‘independent and separate work’ when distributed as a ‘part of the whole which is a work based on the program,’ would fall under the GPL License.
Another thing to note here is how current law addresses the issue of copyright with regard to collective and derivative work—
“The copyright in a compilation or derivative work extends only to the material contributed by the author of such work, as distinguished from the preexisting material employed in the work, and does not imply any exclusive right in the preexisting material.” (17 U.S.C. § 103.)
The law, as stated above, is very clear. A right in any work cannot be granted to components of the work with a pre-existing copyright. If we were to apply this same logic to an aggregation of programs which includes both ‘independent and separate programs’ and GPL licensed programs,the license would not affect the copyrights already existing in the independent and separate programs. That is, however, certainly not how the provision outlined in Section 2of the GPL reads.
In version 3 of the GPL, the contradiction between ‘derivative works’ and ‘a work based on the Program’ was removed by introducing a new definition, ‘covered work.’ This definition seems to go back to the idea of derivative work under copyright law and does not include collective works within its purview. The GPL v3.0 goes on to state in Section 5 that “a compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an aggregate if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation’s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.” That said,GPLv3 also states that if a program is “specifically designed” to work with a GPL-governed library, then the program is considered part of the overall work and the entire application is governed by the GPL. This seems to suggest that if one substitutes the program with another one not “specifically designed” to work with the GPL library, then it would not be would not be governed by the GPL license.
While version 3 of the GPL clears up some of the confusion about derivative works, the license continues to have important implicationsfor linking a program (dynamically or statically) with a GPL licensed one. One of the prevalent views is that a program dynamically linked to a GPL module would not be subject to the GPL. The drafters of the GPL, on the other hand, argue that the kind of linking does not make a difference. “If the modules are included in the same executable file [static linking], they are definitely combined in one program. If modules are designed to run linked together in a shared address space [dynamic linking], that almost surely means combining them into one program.”
The matter becomes even more complex when we delve into the issue of plugins. A helpful example to explain this would be looking at the caseof plugins for a browser licensed under the GPL. The GPL FAQ addresses this issue specifically—
“If the program uses fork and exec to invoke plug-ins, then the plug-ins are separate programs, so the license for the main program makes no requirements for them. If the program dynamically links plug-ins, and they make function calls to each other and share data structures, we believe they form a single program, which must be treated as an extension of both the main program and the plug-ins. This means you must license the plug-in under the GPL or a GPL-compatible free software license and distribute it with source code in a GPL-compliant way.”
It is noteworthy here that that the creator of the plugin is merely writing the code for the plugin and distributing it on a standalone basis. There is no question of a covered work being created until the end user install the plugin and runs it on his system. This suggests that despite the updated version 3 of the GPL, the definition of ‘covered work’ continues to be broader than that of ‘derivative work’ under existing copyright law.
None of this is helped by the fact that the terrain of jurisprudence on derivative work with regard to software is full of inconsistencies.As illustrated above,GPL seems to diverge from accepted positions under copyright law for various points. And since there are no legal precedents where courts have attempted to tackle this issue, there are no settled positions for these matters.In light of this, one should be extremely clear of the manner in which one uses or modifies a GPL licensed software and if the software is being distributed, be aware that only under very limited circumstances shall the whole work not be subject to the GPL license.