[Bf-committers] extension clause

David Jeske davidj at gmail.com
Tue Nov 23 03:33:38 CET 2010

On Mon, Nov 22, 2010 at 4:05 PM, Dan Eicher <dan at trollwerks.org> wrote:

> On Mon, Nov 22, 2010 at 12:51 PM, David Jeske <davidj at gmail.com> wrote:
> > Although the BSD above is confusing the example, I agree that by my read
> of
> > the GPL, an open-source GPL blender extension can load/call to a
> third-party
> > closed-source binary code library under the GPL's "library exception".
> *Users* are the key here, the only way the gpl applies is if they try
> to bundle their extension with blender proper (or use gpl'd libs). You
> can take your copy of blender and link it to whatever you want (as in
> the 'internal tools' example given previously) and developers can
> release their independent code under whatever restrictive license they
> chose.

I don't think it matters who does the linking, except for the exception that
a user can do whatever they want with code they author, and are not forced
to do anything as long as they don't distribute it.

I think what's most important is the direction of dependence and linking. If
a third-party closed source library does not depend on any blender details
(i.e. imports no blender headers, links against no blender libraries), it
obviously can't be forced into the GPL. You can write a GPL open-source
blender extension which depends on the closed library, that closed library
is part of your "library exceptions" for the extension code.

You can wrap that all up on a CD (including blender) and ship it directly to
a customer. You are required to release the source code for blender, and for
your excention that includes blender.h and links directly to blender.
However, that extension is free to access any system libraries and any
library exceptions, including your closed-source third-party library (again,
just so long as the third-party library did NOT link against blender).

The proprietary extension links to BSD headers and implements the
> 'external' interface, Blender links to BSD headers and implements the
> internal interface and the user does the 'aggregation' in the privacy
> of their own home. Easy peasy...

Sure, that's the other way to do it. Add GPL code directly to blender to
depend on an external library under any license, and simply list is as a
'library exception'. The BSD middle ground isn't even necessary.

The wrinkle with all of this, is that all that code that DOES touch
blender.h (or whatever), and DOES depend on blender details, MUST be
open-source. This might not be desirable if a company is going to write lots
of code like this to make a really cool extension.

More information about the Bf-committers mailing list