Subject: Re: I'm leaning toward going with gplv3 but...
From: Ben Tilly <btilly@gmail.com>
Date: Thu, 6 Aug 2009 23:24:00 -0700

 Thu, 6 Aug 2009 23:24:00 -0700
2009/8/6 Dag-Erling Smørgrav <des@des.no>:
> Aaron Aichlmayr <waterfoul@gmail.com> writes:
>> I'm thinking of going with gplv3 but I have a few questions first that
>> I don't care that I get "no warantee" answers as they approach the
>> legal side. First I wanted to have an extension system where the
>> extension devs are encouraged to share but are allowed to keep their
>> extensions in house as long as they did not edit the original
>> code.
>
> http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins

It should be noted that while that is the legal opinion of the FSF,
there is no guarantee that a court will rule that way.  For an
interesting alternative, the opinions of Linus on binary kernel
modules is interesting.  See
http://linuxmafia.com/faq/Kernel/proprietary-kernel-modules.html.
While his answers to the question of binary kernel modules changes
over time, he consistently holds to several principles:

1. Whether you're bound by the GPL depends on whether you're a
derivative work of the Linux kernel.  Which will be true depending on
the facts.

2. When the plugin API was a generic limited subset of standard Unix
interfaces, there was no question that things which went against it
were not derivative of Linux.

3. When the plugin API was later expanded to expose a lot of Linux
specific details, things that use the full API become derivative of
Linux.

If you want to make plugins OK, the simplest with the GPL v3 or the
Affero GPL v3 would be to take advantage of section 7 and include an
extra permission.  However if you do that, then you will need to avoid
incorporating other GPLed code in your program (because that code
doesn't have the additional permission).

As a non-lawyer I would think that a more flexible approach is to
define an independent library that sits between your main application
and potential plugins.  Release that library under a non-copyleft
license like the MIT license.  Incorporate that library into your
application.  Include a licensing explanation that plugins can be
developed against that library without being derivative works of your
GPLed code.  However if you compile a program that incorporates plugin
and your GPLed code, that compiled program is a derivative work, and
so you cannot distribute without triggering the GPL.

Check that with a real lawyer, and note that you'll need to be very
careful to keep the in between layer from becoming derivative of your
main program.  (This history of the interface exposed to loadable
modules by the Linux kernel shows how easy it is to expose everything
over time...)

>> Second I wanted to allow people to have paid services for
>> hosting this framework but any users are welcome to download a copy of
>> the source themselves.
>
> http://www.gnu.org/licenses/gpl-faq.html#UnreleasedMods

That sounds a lot like the Affero GPL.  See
http://www.fsf.org/licensing/licenses/agpl-3.0.html.

Ben