GPL does not tie your hands necessarily - Re: Rchard Stallman vs Darl McBride
torriem at gmail.com
Tue Jul 20 20:53:37 MDT 2010
On 07/20/2010 08:35 PM, Levi Pearson wrote:
> Yes, that's it. If there's a chunk of your code that's linked to the
> rest that you want to keep private, for whatever reason, you cannot
> use the GPL with the rest of your code.
It pains me to see misunderstanding of the GPL and how it works.
If your wrote *all* the code yourself, you absolutely can release only
part of it under the GPL. Most projects tend to have a written
exception clause to the GPL, but that is not strictly required. It's
your code; you can license it anyway you want. So I could write a
program with a closed-source plugin, and release everything but the
plugin under the GPL. Any derivatives of my code must be GPL, since
that's the license I specified. My having a closed module in no way
changes that. Derivatives of your program (the GPL'd part) could or
could not ship a closed module, depending on exceptions that you as the
copyright holder make and append to your license. See the Linux
Kernel's license, or GCC's license for exceptions to the GPL that are
On the other hand, if I made a derivative of some GPL's project and then
wanted to also ship a closed module for use with that, then you
obviously cannot, because that would violate the terms that someone else
(who owns the copyright on the code) dictated. You could, of course,
get the copyright owner to grant an exception for your closed module.
In this case, if the GPL doesn't work for you, write your own code,
negotiate a different license with the copyright holder, or find some
other code whose license works for you.
I hope that makes sense. Copyright and licenses are not magical.
Nothing is *automatic*. Certainly in the case of the GPL, the license
is there to ensure the freedom of the *developer* first. The end user
is of course always free, provided he does not distribute, as the GPL
does not require the end user to agree to anything to use GPL'd
software. Just try to use Java on a nuclear submarine...
More information about the PLUG