Licensing and Python Scripts

General discussion about the development of the open source Blender

Moderators: jesterKing, stiv

Post Reply
Digiproc
Posts: 0
Joined: Tue Dec 28, 2010 2:02 pm

Licensing and Python Scripts

Post by Digiproc » Tue Dec 28, 2010 3:36 pm

Hi all,

I’m thinking about distributing an aggregate installer program that includes:

1. An unmodified Blender distribution (under GPL, of course)
2. A python plugin that I wrote for Blender (which will be public domain)
3. A Windows DLL I wrote that will be under a non-free, closed-source (but GPL-compatible) license.

The python script would run under Blender and import only the BPY library and my non-free DLL. No other libraries will be imported.

I have some experience with GPL and I believe this complies with the licenses involved.

But what has confused me are the statements on http://www.blender.org/education-help/f ... or-artists

First there’s this (which makes sense to me):

“When a script uses calls that are part of the Blender Python Script Interpreter, the interpreted program, to Blender, is just data; you can run it any way you like, and there are no requirements about licensing that data to anyone.”

But then that same section asserts a restriction that scripts that call third-party libraries must follow the GPL apparently regardless of the license for that library, thus:

“If you link a Blender Python script to other libraries, plug-ins or programs, the GPL license defines they form a single program, and that the terms of the GPL must be followed for all components when this case gets distributed.”

-and-

"Not OK is: Author publishes a Blender script, calling a compiled C library with own code, both under own license. "

If the script is not under the GPL (as stated by the first quote above), and the library it is calling is not under the GPL, then the second and third quotes above are false. Is that correct?

Any help will be appreciated.

stiv
Posts: 0
Joined: Tue Aug 05, 2003 7:58 am
Location: 45N 86W

Post by stiv » Tue Dec 28, 2010 5:50 pm

a non-free, closed-source (but GPL-compatible) license.
This statement contradicts itself. GPL means the source is available. Closed source means it is not. You cannot have a closed source GPL-compatible license.

The fundamental issue here is the DLL - a dynamically linked library. Being linked means it is part of the program and not just data that is interpreted like a script.

Digiproc
Posts: 0
Joined: Tue Dec 28, 2010 2:02 pm

Post by Digiproc » Tue Dec 28, 2010 6:38 pm

stiv wrote:
a non-free, closed-source (but GPL-compatible) license.
This statement contradicts itself. GPL means the source is available. Closed source means it is not. You cannot have a closed source GPL-compatible license.

The fundamental issue here is the DLL - a dynamically linked library. Being linked means it is part of the program and not just data that is interpreted like a script.
OK I see. And here is what you say in black and white: http://www.gnu.org/licenses/license-lis ... areLicense

But after thinking about it I realize my question still remains in spite of my muddled understanding and misuse of the term "GPL-compatible":

Let's say a user installs a vanilla interpreter released under GPL and then writes a script that uses a non-free non-system library. We know this happens all over the place, so I thought it would be acceptable because I thought such a GPL interpreter considers the script as "just data" and free of licensing issues, exactly like that Blender web page says about scripts. So then my question is why does the page go on to say that "data" suddenly must obey GPL when it links with a library that is not even GPL? I can't help think that whoever wrote that statement meant only that the script must obey GPL assuming the library was GPL--like one of the many libs distributed for Python.

(On a side note, I know the vanilla Python license is even looser than GPL. But it doesn't seem that would make a difference when another flavor of the Python interpreter (i.e. Blender) says scripts are just data and free of Blender's license).

EDIT: GPL's main purposes are to protect the developer from legal action and protect the developer from theft of their software. If a developer writes an interpreter and distributes it under GPL, a user redistributing it with a script that uses a non-free library most certainly does not harm the developer.

Digiproc
Posts: 0
Joined: Tue Dec 28, 2010 2:02 pm

Post by Digiproc » Tue Dec 28, 2010 8:28 pm

The following link clarifies things (the pertinent statements on that Blender page were obviously based on this but neglected to mention the lib is assumed to be GPL!): http://www.gnu.org/licenses/gpl-faq.htm ... reterIsGPL

So the bottom line is the script is separate software but must, of course, obey licenses in libs that it links to. In my case I distribute the script as public domain and it links ONLY to my DLL, which is under a separate non-free license. So these licenses are compatible, and nothing is "linked" to Blender because its just "data".

Post Reply