It would help if we use specific examples. Let's say that you have
// foo.cpp // Copyright 2007 Joe Q. Author. All rights reserved.
#include
int main() { boost::shared_ptr<int> px( new int( 5 ) ); }
Are you concerned that this foo.cpp may be considered a derivative work of boost/shared_ptr.hpp?
Yes, this is the case I'm talking about. My intention is to make my application, *including* its sources, available under a dual-licensing scheme, pretty much in the way Trolltech does it.
My non-lawyer opinion is that it isn't, even if we use a Boost interface that is not already in TR1 and on its way to C++0x.
That was also my original assumption when I did a quick cross-check of the licenses of third-party software involved in my application, and I still believe that the case you mention above is *not* derivative work. However, during research on the Web I have realised that there is a rather large variety of opinions about this topic. Indeed the very first answer to my post to this list showed a different opinion (see Noah's post). So some clarification (e.g. in the FAQ) might be needed, *particularly if library authors have a different understanding of this topic* . On the boost.devel list, David Abrahams strongly emphasizes the need for one license. That, I would think, requires an agreement amongst Boost authors of what the license entails. If two authors use the BSL for their code, and one defines "usage" as "derivative work" and the other doesn't, then they are not using the same license.
Are you concerned that foo.o/.obj is a derivative work of shared_ptr.hpp? It may or may not be - this is a somewhat gray area because of the inlining - but the BSL specifically places no restrictions on derivative works in .obj form.
Yes, I've seen that there is no restriction to derivative works in object form. BTW, IANAL. Best, Ruediger (and sorry for kicking off this thread ... ;-)