Re: FAST C++ open-source contribution
Konstantin Stepanyuk / CQG Inc. <>
24 Mar 2008 3:12AM ETRolf, you are right. Sorry, I did not take it into account.
If the library uses templates it is impossible to replace the LGPL code with modified version without rebuilding. The only way is to add the same "exception": use the library but make public all changes you did.
BTW, LGPLv3 contains the following section which I don't understand properly:
"3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from
a header file that is part of the Library. You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the
Library is used in it and that the Library and its use are
covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this
license document."
So it possible to use LGPL for C++ library but it is almost impossible to measure "ten or fewer lines" and "small macros".
-Konstantin.
> Konstantin,
>
> AFAICT Q&A #2 says "... rendering the LGPL equivalent to the GPL" in the
> case of a C++ library with inline functions and templates.
>
> Q: How is that different from the GNU {Lesser,Library} GPL?
> R: The LGPL requires that users be able to replace the LGPL code with a
> modified version; this is trivial if the library in question is a C
> shared library. But there's no way to make that work with C++, where
> much of the library consists of inline functions and templates,
> which are expanded inside the code that uses the library. So to
> allow people to replace the library code, someone using the library
> would have to distribute their own source, rendering the LGPL
> equivalent to the GPL.
>
> Am I missing something here?
>
> /Rolf
>
> > libstdc++ is licensed under the terms of GPLv2 license with "runtime
> > exception" that is explained in FAQ form:
> > Q: So any program which uses libstdc++ falls under the GPL?
> > R: No. The special exception permits use of the library in proprietary
> > applications.
> >
> > But we are talking about LGPL license:
> > http://www.gnu.org/licenses/lgpl.html
> >
> > The main difference between GPL and LGPL that LGPL-ed library can be
> > used by non-(L)GPL program. This program can be distributed under any
> > chosen license.
> >
> > Wikipedia provides a good introduction to LGPL:
> > http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License
> >
> > -Konstantin
> >
> >> I got some feedback off-line and it seems that LGPL and C++ libs may
> >> be problematic. I suggest you check:
> >>
> >> http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/license.html
> >>
> >> Best, Rolf
> >>