Suppose we have this scenario:

  1. there are 4 Free softwares (under GPL version 2);
  2. a man puts them in a Stack and codes some glue-tools and a GUI to wrap them all together;
  3. now the stack is a Platform, provided in a bundle;

If the man writes a program, which uses other softwares under GPLv2, he must release his code, as well under GPLv2, so the glue-scripts and the GUI are "Derivative Works" and he's not allowed to Dual License neither the tools, nor the GUI. As far as I know, Dual licensing is possible only when he writes his code from scratch, but not when he's basing it on some GPLv2 programs.

Am I missing something, such as particular exceptions?

I'm wondering about it, because I found similar real cases and I'm not so sure they're following the rules. I'm just curious about it.

1 Answer 1


The glue code and GUI code are original works by their author. When considered in isolation from any other code, they likely not derivative works under copyright law. They don't include any of the GPL-license code; they merely use its API or invoke it as a separate process.

The author is certainly free to dual-license the work. The fact that he is distributing the work as part of a larger GPL work merely means that he must license the work in a GPL-compatible way whenever he does so.

The recent rulings in Oracle v. Google in the U.S. about the copyrightability of an API suggest that possibly the use of the GPL software's API could make it a derivative work, but considering that Google's complete re-implementation of the Java API still qualified as fair use, some tiny use (not even re-implementation) of some software's API is not likely to cause the creation of a derivative work of that software.

Since the glue code is an original work of authorship, the author may license it however he pleases. Obviously, when he chooses to distribute a GPL-licensed work in combination with his own work, he must abide by section 2(b) of the GPLv2 and release the whole combination under the GPL:

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.

But this requirement is immediately qualified by:

If identifiable sections of that work 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.

So long as the glue code and GUI are "not derived from the Program, and can be reasonably considered independent and separate works in themselves" then the author may license them individually without regard to the GPL, whenever no actual GPL code is involved.

When GPL code is involved, the author must include source code for his component, if the combination forms a derivative work under copyright law. If the combination is not a derivative (i.e., the new work "uses" the GPL work "at arm's length" but does not become part of the GPL work), then the GPL requirements do not apply to the new work. The GPL FAQ has a good overview of the FSF's position on the issue, which is quoted in part below (but I recommend you read the whole thing!):

What is the difference between an "aggregate" and other kinds of "modified versions"?

An "aggregate" consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. [...]

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. [...]

If the modules are included in the same executable file, they are definitely combined in one program. [...]

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. [...]

  • The glue-tools and the GUI are original works, by the way they're useless without the Stack itself (which is composed by free software).
    – Novice09
    Commented Aug 23, 2016 at 16:48
  • @Novice09 Whether or not software A can operate meaningfully without software B is largely irrelevant when determining whether A is a derivative of B under copyright law. Consider if you made a clean-room re-implementation of the GPL software and licensed it differently. Does the mere existence of that work in the world suddenly make your glue code less of a derivative of the original GPL work? It does not (because it was never a derivative to begin with, when considered in isolation).
    – apsillers
    Commented Aug 23, 2016 at 17:14
  • So few lines of new code represent a separate work. If it's this way, people could just write wrappers...Doesn't this sound unfair to you (I'm not arguing you're wrong).
    – Novice09
    Commented Aug 23, 2016 at 17:17
  • @Novice09 In those cases, the wrappers in isolation can be licensed however the author wants, but when they are distributed alongside the GPL program they wrap, the work as a whole must be licensed under the GPL. This is covered exactly by a GPL FAQ item: "The X11 license is compatible with the GPL, so you can add a module to the GPL-covered program and put it under the X11 license. But if you were to incorporate them both in a larger program... it would have to be licensed as a whole under the GNU GPL."
    – apsillers
    Commented Aug 23, 2016 at 17:23
  • @Novice09 In other words, when a GPL work is physically part of your distributed work, you (usually -- except for aggregate works) have to license the distribution as a whole under the GPL. When GPL code is physically absent from what you're distributing, then the requirements of the GPL do not apply.
    – apsillers
    Commented Aug 23, 2016 at 17:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.