Re: Libpropc++

 > Since template code cannot be 'separated' from the rest of a program
 > into a shared library, all the files that depend on a template library
 > (such as, in fact, libsigc++) will have to be open-sourced in order to
 > comply with the terms of the LGPL. This does indeed implicate that you'd
 > have to open-source at least a part of your program in order to be able
 > to use libsigc++.
But this is your interpretation. Clearly, the authors of gtkmm and
libsigc++ didn't intend this interpretation. Especially for libsigc++
it simply does not make any sense to license it under LGPL if the
template parts weren't covered by the same pattern of use - i.e. as
long as you are just using the library, there are no restrictions on
your license as long as people can get to the source of the library
itself (and do the relinking stuff).

Well this is where the fun begins. First, "the authors of gtkmm and libsigc++ didn't intend this interpretation" is completely irrelevant. Not the 'intent' of the authors is what gives the license its validity, a reasonable interpretation of the wording of it does. So then we get to the 'reasonable' part, and yes, in this case it could be argued both ways. I still maintain that the case of gtkmm/libsigc++, a strict interpretation of the LGPL is in order, which would not allow people to use it in closed-source software. Notice that eg wxWidgets explicitly allows static linking (they use the LGPL with this addition, at least the last time I checked). I'd argue that if other projects are aware of this deficiency in the LGPL, then the projects that continue to use it unmodified want a strict interpretation, otherwise they'd use a modified form as well. LGPL is legally very muddy water. Even Richard Stallman and Eben Moglen don't agree on the details of it, and they wrote the thing! (I don't have time to dig up references now, I think I mentioned them last time this issue came up on this list).

Also, I think 6a) in the LGPL

covers this with the paranthesis:
(It is understood that the user who changes the contents of
  definitions files in the Library will not necessarily be able to
  recompile the application to use the modified definitions.)

The question here is if template code is still a 'definition' file. I'd argue not, a template class/function necessarily has to be both definition and implementation.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]