Re: FAST C++ open-source contribution
Alexis Richardson
24 Mar 2008 10:22AM ET
Hi Dimitry, Konstantin, everyone,
I would recommend dual licensing the software under the GPL and any other OSI-approved license that you are comfortable with and that is reasonably non-viral. For the latter you may wish to consider: MPL 1.1, APL 2, or perhaps simplest of all - BSD.
Dual licensing means that users can choose under which of the two licenses they wish to use the code.
* For people who must use it under the GPL in order to achieve compatibility with other software, this choice is available.
* For people who do not wish to be restricted by the GPL, the other license is also available.
Also, if I were you, I would not use the LGPL unless you really have to, since this can lead to confusion over what the L means.
Best wishes
alexis richardson
CohesiveFT
> Rolf, 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
> > >>