We all know that blender addons are required to be GPL, and the way I saw it been put is that if a script has calls to the blender APIthen its a blender addon and therefore has to be GPL.
I wonder how far this definition extends.
–SItuation 1
let’s say I have a separate executable, which might be anything, and a python script has calls to both the executable and blender API.
Does it mean the executable has to be GPL also?
let’s say I own the rights to this executable/library…
Can I distribute this executable along with the addon?
Or I can only distribute the executable if I also distribute its source code?
–Situtation 2
lets say I have two files.
the first is hello.py, it doesnt contains any calls to python API, only two lines containing an ordinary function hello()
I don’t know any such thing. Oracle vs Google notwithstanding, most open-source developers would agree that APIs are not copyrightable. Using Blender’s Python API is not the same thing as copying Blender’s code into your own. And you can license your own code any way you see fit.
My understanding is that you can license it if you have some kind of library/binary that has nothing to do with Blender (Api and source wise) Your Py add-on merely makes calls to that library to process some form of data which your add-on then will push that data back to the Blender memory space.
Lets say you have a cloth engine written purely in C, it has its own data format and makes no calls to any files/libs in the Blender install folder or Blender directly or indirectly. Your add-on exports some data to an external place, then your cloth lib processes that data, then your add-on puts that data back in Blender. In this example, according to the document, the cloth lib can be licensed anyway you want.
You are right. It appears they are trying to claim copyright on the Blender Python API. This is generally agreed to be a bad thing.
However, the current state of Oracle vs Google is that the jury determined that such API usage is allowed under “fair use”. Of course, Oracle is trying to get that overturned.
I hate to get into a license debate since those never go well, also it’s hard to tell what a 3rd party is thinking, but i think you may be on the wrong track here with the API copyrights and oracle v google
If i had to guess on how they came to that conclusion (i’m not a lawyer so i have nothing to back up this suspicion with and i upfront admit i’m wildly speculating here) but I can imagine the train of thought may have been along the following lines: When you run your addon code with our code you make a new combined work (even if it’s just in the memory of the blender process), and given we are GPL, the new combined work should be GPL hence the addon needs to be GPL.
but i’ll be honest, your guess is as good as my guess
They are not claiming copyright on it, because they licensed their code as GPL, it forces you to use GPL for your Python add-ons. Any code that makes an API call has to be GPL.
Remember that the GPL source requirement applies to redistribution of the code (Freedom 3), not use of the code (Freedom 0).
Here is an FSF statement where they make it quite clear that they do not believe APIs should be copyrightable. That is my understanding of the general feeling among developers of Free Software. I find it disappointing that the Blender developers don’t agree.
The GPL V3 is way more complicated to interpret than V2 was. If you plan to bet a lot of money on some interpretation of the GPL, then you need VERY competent legal advice, and I’m not sure any of us on this forum have that kind of knowledge. But it’s always fun to play a pretend lawyer on the internet
The GPL (with my fake lawyer hat on) as I understand it, tries to prevent you from bypassing the goal of making your associated work be also covered by it by trying to prevent you being clever with things like just putting all your code in a proprietary binary library and calling it from the original GPLed program. There’s somewhere where they use an example where the GPL program is creating an output file for consumption by a proprietary program (like making a RIB file scene description for Renderman to later consume say) and that’s fine, but exposing a complex interactive API to an external proprietary library would not be OK because you’re effectively making that external code deeply integrated into the GPL application and that’s cheating. This restriction might be an inconvenient truth for certain add-ons.
But there’s also the community standard to consider, where if it doesn’t bother anyone, then probably it will go on all happily forever because there’s really no GPL police who are going to come and break down your door. It requires someone with standing to be willing to file (or at least threaten to file) a civil lawsuit against someone for violating their rights under the GPL, and I’m pretty sure the Blender Foundation has LOTS of better ways they’d like to spend their limited money. But if someone is violating the community standards and generally being a butt-head and pisses off Ton then the violator might well find themselves in an uncomfortable position.
Ton’s position, if I understand it correctly based on recent tweets etc., is that everything bundled with an add-on that integrates through the Blender API needs to be under the GPL. So your add-on itself can’t include any proprietary components (textures, models, images, etc.) that would prevent someone from redistributing that add-on under the terms of the GPL. I think you can offer (or even charge for) proprietary components or “content” via separate downloads, or downloads within the add-on, but things can get complicated pretty quickly so I cant even guess at all the fine details of licensing there.
Hi, no idea about bundled binary but Octane Render use a server client system to connect the Blender open source addon to an external closed source binary.
As fas as I know they use HTTP to connect.
I guess Otoy have good lawyers to make sure it is licence proof.
That was not my impression at all. I doubt that any add-on would break if the assets are not included in the add-on. On top of that, images, textures etc can be licensed under artistic licenses depending on the origination. If what you are saying is true then Ton is overreaching with his assessment of the creative content inside add-ons that can constitute images, audio, textures (because you mentioned Ton) . Bear in mind that artists are the copyright holders of their work.
So when the dev distributes an add-on with her or someone else’s artistic content inside, she might not need to license them under GPL. GPL is for the source code.
If adding a piece of art you created to the add-on Zip file would allow you to subvert the GPL and claim control over the add-on because it includes a component that you control exclusively then it seems like the GPL would be useless and anyone could just add something like this to their copy of your GPL program and say "well, yes, the code is GPL but you can’t distribute it because it needs this file I own in order to work. A lot of people have the idea that the GPL only applies to “code” but that feels fishy to me.
As before it all becomes very complex from a legal standpoint when you get into these “but what if…” games and even if you wanted to hire a lawyer with international copyright and IP expertise and familiarity with Open Source and the GPL, those probably aren’t that easy to come by.
I think a good first rule is “Anyone who tells you they understand how the GPL works is probably wrong.” and a good second rule is “Maybe just don’t spend all that much time worrying about it.” because chances are after all the arguments and drama you may find yourself right back where you started.
I think there is an important difference between the Oracle vs Google case and an Addon using Blender, an API is simply a description of how you would interface with something, which methods to call, data formats etc… how you interface between two systems.
Oracle (from Sun) owned Java, which is Java API + Oracles Standard Java Libraries/implementation of said language/API.
Google made a Java API + Googles Libraries/Implementation of said language/api. None of the code my Android application used was Oracles implementation of the Java language. However, the Google ‘Java’ API I am using is 99% a copy of Oracles Java API.
Oracle was saying that Googles Java API (not the code behind it) was a copy of Oracles API, which it was. The case determined that an API is not copyrightable.
In comparison, when using Blenders ‘API’, you are also using Blenders actual code, the libraries that API calls. As this code is GPL, you must abide by its license terms.
I could theoretically create my own 3D Modelling program with the exact same API as Blenders but I coded it myself. That would be compatible with Blender addons as the API is the same. If my program was MIT licensed, then the addons would not need to release their code.
lets suppose.
This script seems GPL according to the definition:
import bpy
bpy.ops.image.new(name = "my_image")
Does this make it not GPL?
## bpy.py this file is public domain, or something like that, blah, blah
class image:
def __init__(self, name="Untitled"):
self.name = name
class ops:
class image:
def new(name="Untitled", width=1024, height=1024, color=(0,0,1,1),
alpha=1, generated_type="BLANK", float=True, use_stereo_3d=True):
data.images[name] = image(name)
class data:
images = {}
If you create an exe that links with Blender source code that has to be GPL.
If you create an exe that uses blender python api that has to be GPL unless
it only exchange data with Blender. This is a data exchange exception to the GPL (as per the FAQ)
HTH