- The GPL Bargain
- Copyleft and Reciprocity
- Policy Objectives
- The Preamble to the GPL
- GPL as Template
- The GPL Applies to Programs
- Linking to GPL Software
- Copyright Law and Linking
- The LGPL Alternative
- GPL Grant of License
- Access to Source Code
- "At No Charge"
- Other Obligations in the GPL
- The GPL and Patents
- Accepting the GPL
The GPL Applies to Programs
Rather than use the generic term software, the GPL instead defines the term Program as a program or other work. We generally understand that a program (with lower case p) is computer software, but the phrase other work is left undefined.
The GPL, in section 0, then defines the phrase work based on the Program as either a Program or a derivative work under copyright law. (Careful readers will remember that, under copyright law a derivative work is a work based upon one or more preexisting works.... 17 U.S.C. § 101.) This definition is repeated in a different way in section 1 of the GPL, which says that a work based on the Program is formed by modifying the original Program. (Remember that a modification is one of the specific kinds of derivative works mentioned in the copyright law.) Thus far, the GPL is entirely consistent with copyright law definitions, and so it applies to Programs and to derivative works of those Programs.
Unfortunately, the section 0 definition of work based on the Program is then broadened beyond what is generally considered in the copyright law to be a derivative work:
...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. (GPL section 0.)
Is a work based on the Program really the same as a work containing the Program or a portion of it?
I have already explained the fundamental difference in copyright law between a collective work and a derivative work. You will recall generally that the former is a collection of independent works and the latter is a work based upon one or more preexisting works. A work containing another work is a collective work. A work based on another work is a derivative work. Merging those concepts in the GPL would leave no distinction between a derivative and collective work, an absurd result considering the importance of those two defined terms in copyright law.
The issue is critical for another reason. It is the basis for a long-running dispute about the reach of the GPL to separate unmodified programs that merely link to each other but that are collected into one program for convenience. If, through linking to a program that is included in a collective work, one creates a derivative work, how widely does the reciprocity obligation of the GPL reach?