I want to use TBB is a closed-source(propietary) and non-free(commercial) project in this way:
I'll generate an executable application just using the TBB library which dynamically-links to the TBB runtime DLL. I won't modify the TBB sources nor the runtime binary... I just want to use TBB runtime+TBB C++ templates in my executable closed-sourced and non-free application.
Finally, as I need to create a Windows installer for my application, I need to embed the runtime TBB library inside the installer and then, on the installation process, to copy the TBB runtime DLL to my app's folder.
I see TBB is now licensed over the GPL2 with the runtime exception which says:
"As a special exception, you may use this file as part of a FREE software
library without restriction. Specifically, if other files instantiate
templates or use macros or inline functions from this file, or you compile
this file and link it with other files to produce an executable, this
file does not by itself cause the resulting executable to be covered by
the GNU General Public License. This exception does not however
invalidate any other reasons why the executable file might be covered by
the GNU General Public License."
The problem is that "free" word. As my application is not-free(commercial) I don't know if I could use your TBB library without having to provide all my source codes in a direct or indirect way(FTP,etc).
Could you clarify me that, please?
(Added 2009-03-17) Also see TBB FAQ.
This is not a legal opinion and I am not authorized by Intel to provide legal advice, but... it sounds to me like you might want to buy a commerical IntelThreading Building Blocks (Intel TBB) license to use with your closed-source, commerical project/product. Then it doesn't matter what is the correct legal interpretation of the GPL V2 license with runtime exception with respect to the word, "free," because you'd be distributing on the commercial license, which offers a redistribution license contained in the file, redist.txt. It lets commercial licensees redistribute both libraries and header files. Intel offers commercial licensing to provide just such flexibility.
Btw, I think this situation is not new... I really hope Intel could replace that license by a better one.
I'm sorry to hear that a licensing issue is keeping you from experimenting with Intel Threading Building Blocks, but I think you'll find that this dual-licensing model is very similar to what other companies provide, for example, Qt: http://www.qtsoftware.com/products/licensing.
Even easier: if you've already purchased a copy of IntelCompiler Professional Edition, you may alreadyhave a commercial Intel TBB license.But if not, I hope some day you'll be able to reconsider.
Duh... it only just occurred to me that "as part of a free software library" (my emphasis) means the library itself, i.e., Threading Building Blocks! So it says nothing about your application at all (that's the "without restriction" part): unless there are other reasons than TBB to prohibit it, you may distribute that as only an executable, and charge whatever you like for it.
As far as distributing the dynamic library goes (.so/.dll/...): you should probably refer to Intel's distribution (for everything or just for the source code), and if you built one from a modified version of the library, make the source code for that modified version available as well (or perhaps ship it along with the application). But you don't (even) need to make it possible for the customer to relink the application with an updated version of the library (as with the LGPL), so this only seems like a minor "hassle".
Disclaimer: this is just my personal interpretation (please tell me if I'm mistaken), offered for your (and/or your lawyer's) consideration in making up your own mind.