Combining or linking proprietary software with unmodified code licensed under GPLv2

Version 2 of the General Public License, the most well-known of the so-called "copyleft" open source software licenses, achieves its aims by requiring that derivative works based on GPL-based code, such as modifications to that code, be subject to the same terms as the original code; namely, the entire work must be made available in source code form and without royalty or license fee obligations.

The challenge with dealing with the GPL is that the license terms are vague and subject to debate, especially with respect to the question of derivative works. The protector and keeper of the GPLv2, the Free Software Foundation (FSF), takes the position that merely linking with or into GPL code and distributing the combined whole renders the entire work subject to the requirements of GPL – even to the point of claiming that applications running on Linux can be subject to the GPL’s inheritance obligations:

It has always been the FSF's position that dynamically linking applications to libraries creates a single work derived from both the library code and the application code. The GPL requires that all derivative works be licensed under the GPL, an effect which can be described as "hereditary."  So, if an application links to a library licensed under the GPL, the application too must be licensed under the GPL. …

While there is some support in the text of the GPL for the FSF’s position, colorable arguments can be made that such activity, without more, is not enough to render the entire combined work subject to GPL, especially if the original GPL-licensed library has not been modified.

This post presents arguments, under US law, for and against the proposition that linking (dynamically or statically) source code with umodified GPLv2 libraries creates a single work, the entirety of which becomes subject to the GPL. The analysis here is focused on version 2, rather than version 3, of the General Public License, as version 2 is by far the more common version in use today.

A. Reasons Supportive of the Position that Combining or Linking Independent Code with GPL Code Makes the Entire Bundle Subject to the GPL

1. The GPL, in section 2, requires that any work “based on the Program” (“Program” being the program licensed under GPL originally) be licensed at no charge under the terms of the GPL.  A “work based on the Program” is defined in the GPL as “any derivative work under copyright law; that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language.”  So any program which is a combination of GPL-licensed code with other code falls within this definition of a work containing the original program.

2. If the new code that is added to or linked with the original GPL-licensed code, or, to be precise, “identifiable portions” of the new code, are not derived from the original program, and can be “reasonably considered to be independent and separate works in themselves”, the GPL does not apply to such separate portions “when you distribute them as separate works” (section 2).  The necessary and logical corollary to this statement is that if such independent works are not distributed separately but are distributed together, then the GPL applies to the entire bundle.

3. The second to final paragraph in section 2 makes clear that it is the intention of this section 2 to “control the distribution of derivative or collective works” based on the original GPL-licensed program. A collective work, as defined by the US Copyright Act, is a work in which a number of contributions, constituting separate and independent works in themselves, are assembled into a collective whole. (A collective work can also qualify as a “compilation”, defined under the Copyright Act as a work formed by the collection and assembling of preexisting materials or data that are selected, coordinated or arranged in such a way that the resulting work as a whole constitutes an original work of authorship.) Thus, linking proprietary non-GPL programs with GPL-licensed programs creates a collective work, subjecting the entire collection to the GPL’s terms.

4. The last paragraph of section 2 states that “mere aggregation of another work not based on the Program with the Program [or a work based on it] on a volume of a storage or distribution medium does not bring the other work under the scope of this License.” This sentence merely states that including: (a) another separate work with (b) any GPL-licensed works, on the same storage medium, does not trigger the GPL’s inheritance effect, especially if (a) is not a work containing any portion of the original GPL-licensed program.  If (a) and (b) are ever combined, then the combination becomes a "work based on the Program", in the sense that (a) + (b) is a "work containing the Program or a portion of it".

5. In the section entitled, “How to Apply These Terms to Your New Programs”, the GPL states, “This General Public License does not permit incorporating your program into proprietary programs.”  This is a clear indication of the GPL’s reach.

6. Numerous statements in the FSF FAQ support this reading of the GPL.  For example:

It has always been the FSF's position that dynamically linking applications to libraries creates a single work derived from both the library code and the application code. …. So, if an application links to a library licensed under the GPL, the application too must be licensed under the GPL. By contrast, libraries licensed under the GNU Lesser General Public License (LGPL) may be linked to proprietary applications.

B. Reasons Supportive of the Position that Merely Linking or Combining Code, Without Modifying the Original GPL Code, Is Not Enough to Render the Entire Work Subject to the GPL

1. The scope of the GPL is limited to copying, distribution and modification, and use rights are not restricted by the GPL (“Activities other than copying, distribution and modification are not covered by this License; they are outside its scope.  The act of running the Program is not restricted ....”).

The GPL is organized into 3 sections:

a) Section 1 deals with reproduction and distribution of verbatim copies of the Program’s source code.

b) Section 2 deals with modifying the source code.  It is here that the GPL contains the inheritance features described in paragraphs A.2, A.3, and A.4 above.

c) Section 3 deals with reproduction and distribution of binary code.  Section 3 requires that the source code form of the executable be made available in one of three ways (to wit:  by distributing the source alongside the binary; by making an offer to provide access to the source for a charge of no more than the cost of physically transferring the source; or by passing along an offer that was made to the licensee by an upstream GPL licensee).

As noted, only Section 2 deals with modifications.  Section 2 states that “You may modify your copy of the Program or any portion of it, thus forming a work based on the Program, provided that ... you must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

For purposes of this analysis, the phrase following "provided that" (i.e., "...you must cause any work that you distribute ... that contains or is derived from the Program ... to be licensed ... under the terms of [GPL]") will be referred to in this post as the "Modification Condition".  This terminology is adopted here because the right to modify the GPL-licensed library is conditioned on compliance with the requirement that any work containing or derived from the Program be licensed as a whole under the GPL.

The rest of this section 2 is devoted to explaining and clarifying this Modification Condition. The next full paragraph states that “these requirements apply to the modified work as a whole.” The remainder of the text, as discussed in paragraphs A.2, A.3 and A.4 above, are all attempting to add gloss to the Modification Condition. For example, the second to last paragraph in section 2 (discussed in A.3 above) states, “It is not the intent of this section to claim rights or contest your rights to work written entirely by you, rather the intent is to exercise the right to control the distribution of derivative works or collective works ....”

Therefore, under a plain reading of section 2, if the licensee does not modify the original GPL-licensed program, the Modification Condition and all of its explanatory provisions in section 2 simply do not apply. That leaves sections 1 and 3, governing rights to copy and reproduce in binary or source code forms, neither of which contain any language whatsoever to the effect that merely combining independent works with GPL-licensed code renders the independent works subject to GPL as well.

In short, under the structure of the GPL, the licensee can take GPL code as it is, and copy and reproduce it, in binary and source code form, entirely under authority of sections 1 and 2.  The act of running or using the GPL-licensed program is not restricted by the terms of the license itself.  So long as the licensee makes no modifications to that GPL-licensed library, section 2 never comes into play.  Linking to the code is not a modification of it; rather, this is nothing more than "aggregating" the GPL-licensed program with a non-GPL program on the same storage medium, an activity not triggering GPL inheritance as expressly stated in the last paragraph of section 2 ("… mere aggregation of another work not based on the Program with the Program (or a work based on the Program) on a volume of storage or distribution medium does not bring the other work under the scope of the License.").

2. Even assuming, for the sake of argument, that section 2 regulates the licensee even in the absence of modifications, the GPL's inheritance requirements in section 2 apply only to "works based on the Program".  For reasons explained below, this definition can only sensibly be construed to mean derivative works as defined by applicable copyright law, and not merely collective works or compilations.

To reiterate, the GPL defines a “work based on the Program” as

“any derivative work under copyright law:  that is to say, a work containing the Program or a portion of it ….”

Under US law, a derivative work is defined under the US Copyright Act as a work that is

based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.

The US Copyright Act's definition contemplates that the original work must be transformed, recast or modified in some way.  US case law supports this notion; for example, a person who took notecard and lithographic art from copies lawfully bought at retail, and who pasted those purchased copies on ceramic tile plates for sale as souvenirs, was held not to have created derivative works of the original art (Lee v. A.R.T. Co., 125 F.3d 580 (7th Cir. 1997)).  A work that merely contains the unmodified preexisting work, without more, is at best a compilation or collective work, and not a derivative work.  As noted GPL expert Lawrence Rosen observed, "Simply combining a copyrighted work with another work does not create a derivative work.  The original copyrighted work must be modified in some way.  The resulting derivative work must itself 'represent an original work of authorship.'  So if the licensee doesn’t modify the original GPL-licensed program, but merely runs it, he is not creating a derivative work."The Unreasonable Fear of Infection, Lawrence Rosen, 2001.

For this definition to make sense, therefore, it must be read (a) to require that the work in question be a "work based on the Program", that is, it must "contain the Program or a portion of it", and (b) qualify as a derivative work under copyright law.  To interpret this clause otherwise renders the first part of the definition – that it be a derivative work under copyright law – an empty nullity.  Merely including an original work with another work, without more, is not enough to constitute the entire work as derivative.  For the definition to make sense, the entire definition must be considered.  Courts generally refuse to interpret any contract in such a way that fails to give meaning to each part of that contract.

Consequently, the only reasonable interpretation of the definition of "works based on the Program" are works which qualify as derivative works under the Copyright Act, and not merely collective works or compilations.  In other words, if the new work contains the Program or a copy of it, but nothing more – no modifications, recastings or transformations of that original Program – then such work is the functional equivalent of pasting postcard art (linking GPL-licensed code) with ceramic tile (proprietary or non-GPL code).

The very last sentence of section 2 strongly supports the conclusion that collective or compilation works are not subject to GPL:  "In addition, mere aggregation of another work not based on the Program with the Program (or a work based on the Program) on a volume of storage or distribution medium does not bring the other work under the scope of the License." A collective work or compilation can readily be characterized as nothing more than the aggregation of two or more independent programs.

Admittedly, section 2 states that

"… it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program."

This far into the license, this is the first and only reference in the entire GPL to collective works.  We were told in the beginning of the license that the GPL applies only to the original program and any "work based on the Program" – which of necessity must be defined as a derivative work, as explained above.  The FSF's position, that mere collective works are subject to GPL's inheritance obligations, can prevail only if that part of the definition of a "work based on the Program" – requiring that it be a derivative work under the Copyright Act – be completely ignored.  This definition does not say that a "work based on a Program" is "any derivative or collective work under the copyright law"; rather, it is simply a derivative work (and one that contains the original program).

In any event, this statement, as explained in B.1 above, must be characterized as supplementary to or explanatory of the Modification Condition ("… it is not the intent of this section ….").  If no modifications are made, section 2, and this statement describing the intention to capture collective works, is irrelevant.  While the intent of the GPL may have been to capture collective works, the actual operative language of the GPL fails to do so.

3. The FSF's FAQs make clear the FSF's position on its interpretation of the GPL.   These statements have no more probative or legally binding effect than the arguments in this article.  In fact, the FSF would have no standing to introduce these statements into evidence at any trial unless the FSF is the licensor of the code at issue.  The vast majority of software licensed under GPL is licensed by parties other than the FSF, some of whom, like Linus Torvalds, licensor of the Linux kernel, have expressly disclaimed any interpretation of the GPL that would require subjecting merely linked code to the GPL.  As Torvalds explains in a comment embedded in the Linux kernel source code:

/usr/src/linux/COPYING:  "NOTE!  This copyright does not cover user programs that use kernel services by normal system calls – this is merely considered normal use of the kernel, and does not fall under the heading of "derived work".  Also note that the GPL below is copyrighted by the Free Software Foundation, but the instance of code that it refers to (the Linux kernel) is copyrighted by me and others who actually wrote it.

4. The phrase, "This General Public License does not permit incorporating your program into proprietary programs", comes after the "END OF TERMS AND CONDITIONS" statement.  It is not part of the license itself.  In any case, the statement is not supported by the text of the license.  The GPL does not prohibit incorporating proprietary programs; at best, it requires that proprietary programs be subject to the GPL's inheritance obligations.

As the above discussion demonstrates, the GPL is not exactly a model of clarity with respect to the issue of derivative and collective works.  Enough support exists for the positions of those on either side of the debate.  Above all, independent and knowledgeable counsel should be retained prior to initiation of any GPL-based development project.

notices    log in

© 2006, 2017 Sean Hogle PC. All rights reserved. These pages constitute ATTORNEY ADVERTISEMENT.