4
$\begingroup$

If someone writes an add-on and choose a license which is GNU GPL incompatible,

For arguments sake, by adding the clause:

The Software shall be used for Good, not Evil.

Which is GPL incompatible.

For reference, see: jsmin and some of the problems this caused (wikipedia, hackernews).

For the purpose of this question, it might as well be any kind of incompatibility.


While the Blender FAQ states:

Python scripts – if they use the Blender API calls – have to be compliant to the GNU GPL as well. We are currently reviewing this with Free Software Foundation though.

My understanding is this only applies when you distribute the script with Blender, not to scripts you write yourself and distribute on their own.

Simply having a file which imports and calls some API's Blender happens to define - doesn't automatically make it a derived work of Blender (as far as I know), Since there could be multiple implementations of the Blender Python API, with different licenses.


So my question is:

What are the implications exactly for using a GPL incompatible license for Python scripts that use Blender's Python API?


Notes:

$\endgroup$
2
$\begingroup$

I think law.stackexchange.com would be the best place online for an accurate answer, the following should be consider when formulating an answer and not taken as legal advice.

The issue comes from how python works, a python script is often viewed as a simple text file (or interpreted script) by most people, technically it is a source file that gets compiled into bytecode -

bytecode
Python source code is compiled into bytecode, the internal representation of a Python program in the CPython interpreter. ... This “intermediate language” is said to run on a virtual machine that executes the machine code corresponding to each bytecode.

The action of compiling a script means python scripts are a source code file used to generate a binary code that then links to (or dynamically calls) functions within blender, this means they could be treated as derivative works the same as adding a source file to the blender code base, this makes blender the library file that the python script links to. As well as a plain python script linking to blender, an addon script is compiled into code that blender calls, which would make an addon closer to a derived work than a plain python script used to automate a task.

It could therefore be said that any user that adds an addon to blender is building their own custom variation of blender. Placing the addon in a location that blender can find it, or installing with the install from file button in preferences, causes the compilation of the addon, then enabling the addon links blender and the addon into a derived work.

The LGPL was created specifically to allow a program to link to covered code without having to be released under the same terms as the code being linked to.

In contrast a shell script is read at run time to invoke external programs to execute with given parameters and retrieve the result output from the program. This means a shell script does not generate binary code that links to other code so does not get considered as a derivative work.

$\endgroup$
3
  • $\begingroup$ This is also my understanding of it. The crux of the matter is that the binding happens on the users system, at run-time. So installing an add-on which is GPL incompatible means the user would be creating a version of Blender which they could not re-distribute. So the implication would be: "By using a GPL incompatible add-on, users will be running a derived work that is not GPL compatible and cannot legally re-distribute to others, unless they distribute separately" - does this seem correct? $\endgroup$ – ideasman42 Feb 27 '16 at 21:28
  • $\begingroup$ If you make an addon only for your personal use, you can keep it to yourself. But if you make an addon and share it with someone else then you would need to comply with the GPL and provide access to source code etc. Using a commercial license would then put you in violation of the GPL. The burden of following the GPL falls to the developer/copyright owner of the addon, by sharing it you allow a user to build their own derivation of blender, but the developer is creating the derived work and sharing it with a user, so the developer cannot prevent the user from also sharing it. $\endgroup$ – sambler Feb 28 '16 at 6:50
  • $\begingroup$ You should be ok by providing a link to download blender's source and not hosting it yourself, but you couldn't use cython to compile your addon and share it without the source. You only need to share with the users of your addon, so a studio creating custom addons should be OK by having the source on a fileserver within the office. $\endgroup$ – sambler Feb 28 '16 at 6:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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