Is this legal acording to Blender license?

Hi, I need to make a new class of texture, since Texture Plugin support is broken on 2.5X versions I’ll need to make an internal texture and compile the whole Blender itself containing that texture class.

This modified version will be free, but not opensource since it reveals some “tricks” used in the company I work for.

Is this according to the license, or anyone knows something about TexturePlugin support in 2.5X ?

Thanks in advance.

I’m not 100% certain, but I imagine the plugin api for textures and the sequencer will not be coming back to blender 2.5+. There’s really no point to it from a FOSS development model when patches can be sent in to be included in the main code base.

If you want to build proprietary features into blender there are limitations to how that can be done without violating the license.

If your modified code is only for internal private company use, that is no problem. But if you plan to distribute it and make it publicly available then it becomes a problem if the source code is not included.

There are ways to get around it. The best way would be to see if you could utilize the new addons API. I’m not sure if the API gives access to creating a new texture class or not, but you could look and see. It’s python based, but python can load compiled C code. Another option could be to put all the proprietary code in an external library, and the create an open-source abstraction layer API to load the library from within blender. You have to be careful when doing that that because the license can be particular about what is allowed with different types of linking.

Per GPLv2, as long as you guys aren’t distributing the compiled binaries you don’t have to distribute your source code. If you’re using it internally only, you’re good to go. If you release binaries, the source has to be available. Distributing the art made with your “special” version is fine too. Have your company’s legal department read the GPL. That’s what it’s there for.

Thank you both, that couln’t be possible since there is made for public distribution (a shader for a renderer).

So there is no chance to make new (not-opensource) materials ?

I’ll look for that addons API :eek: but I really think that it can’t be done without a proper dll loader.

harkyman (Roland),

Your footer does not point to “Blender Foundations: The Essential Guide to Blender 2.5”. It points to your other book “Animating with Blender: How to Create Short Animations from Start to Finish”.

Also, searching Amazon show a book by you called “Blender Foundations: The Essential Guide to Learning Blender 2.6”, see (http://www.amazon.com/Blender-Foundations-Essential-Guide-Learning/dp/0240814304/ref=sr_1_1?s=books&ie=UTF8&qid=1284168783&sr=1-1)

Blender 2.6?? :confused:

you can have your plug-in run in a separate process this is ok according to the GPL.
I may end up doing this so we can use the FBX SDK.

While not in the spirit of the GPL there are some ways to get around this…

While still opensource if you want to make it so people cant read your code I think its not so hard.

Thanks to all, I’m glad with the forum community :slight_smile: ,Is there another way to create a new custom texture?

Depends. It might be possible to execute your texturing algorithm with texture nodes.

Sure, but I need to add a Texture Node to the blender source so there is the same problem again …

I have this patch (libplugin) that uses libffi and libltdl so you can automagically attach functions at runtime.

What I’d do is make a new node type with an exec function that just calls a function pointer like so;


void (*fn_pntr)(int number, char* string) = NULL;

void node_exec(int number, char* string) {
    if (fn_pntr)
        fn_pntr(number, string);
    else
        <do stuff so blender doesn't crash>
}

and have it load and attach your texture function from an external .so/.dll to *fn_pntr at runtime.

I’ve been meaning to look into porting the texture/composite plugin system over to libplugin but I’m way too easily distracted and there’s the whole feature freeze thing…

Just make sure you don’t link to blender or call any internal functions from your lib and you should be ok with the GPL.

It’s also super easy to get nodes to call python functions (I have this patch…) but that’s a lot slower than a pure C implementation.

ideasman,

While not in the spirit of the GPL there are some ways to get around this…

  • confusticate your code. just scramble it so much that it makes no sense, I had to do this once so customers could export models to an encrypted format.

  • (this is evil), distribute the source but not the build system, then you can have defines in the build system that the source uses and would be non-trivial to get it working without the build system.
    see: http://yro.slashdot.org/story/10/05/...Around-the-GPL

I believe that the GPL clause

The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable.

Would be violated by either of those methods.

It sounds great, could you explain it more indeep :o I’m a newbie on Blender and I don’t understad it at all, of course I mean the conexion between blender and my .dll not the dll by itself

But you aren’t a lawyer. None of this thread can be taken as legal advice, for that talk to a lawyer.