I'm trying to understand the licensing situation for the open source version of TBB. The libstd++ exception to the GPL (which apparently is used for the template header files) 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.
This could be read in at least three different ways:
- Just from reading the first sentence ("you may use this file as part of a free software library"), I could be led to assume that even with the libstd++ exception, this software is not intended to be used in commercial software at all. (Which would contradict Intel's stated intentions as I interpret them from the TBB FAQs.)
- As long as I use the binaries and header files from the official distribution, I can use them wherever I like. However, if I want to make a change in the core libraries (i.e. in the non-template code), I need to rebuild those, and if I then use that modified/rebuilt library in my commercial app, I may be in trouble.
- I can modify/rebuild both the template headers and the core libraries as I see fit, and link or compile them with my app.
We really can't give you legal advice on licensing; we can just tell you what the licensing is.
However, you might find the Q&A portion following the actual license text at http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/license.html helpful. I note that there the FSF says: "Hopefully that text is self-explanatory. If it isn't, you need to speak to your lawyer, or the Free Software Foundation.
Q: So any program which uses libstdc++ falls under the
A: No. The special exception permits use of the library in proprietary applications."
Well, legal advice is one thing, and I understand that nobody here can provide any kind legal counseling,but I'd be interested in what the original intention behind the choice was. Are we supposed to use the open source version of TBB in commercial applications, even if we need to modify the original code?
Again, I can't tell you what you're supposed to use. I can tell you what I, in my opinion, would use if I were developing a commercial product--I would opt for the commercial version, especially if I planned to modify the code. That is my opinion, not legal advice!