سؤال

I am writing a system in OCaml which I'd like to release open source with a GPL license. However, I'm calling Batteries, which is LGPL, from within my code. Does this contaminate my code with the LGPL license? At first, I'd say NO, but I'm having a hard time distinguishing between: (1) my GPL "standalone" program requires a LGPL library you need to install on your machine if you want to use it and (2) my program in fact "includes" another program which is LGPL and therefore can only be released with the LGPL license.

But then, if it is (2), then GTK+ for example is also LGPL, so that would mean any program with a GUI (a GTK+ one) would not be allowed to be GPL, which doesn't ring true.

Does the distinction between (1) and (2) lie on whether the LGPL library my program depends on is actually distributed along with my program or not? Does it depend on whether I'm using static links to the LGPL library?

Thanks for any clarifications, Surikator.

هل كانت مفيدة؟

المحلول

http://en.wikipedia.org/wiki/GNU_General_Public_License#Compatibility_and_multi-licensing

...code licensed under several other licenses can be combined with a program under the GPL without conflict, as long as the combination has the GPL applied to the whole. [...] Many of the most common free software licenses, such as the original MIT/X license, the BSD license (in its current 3-clause form), and the LGPL, are "GPL-compatible"

I hope this means that linking an LGPL lib to a GPL1 or GPL2 program is ok.

نصائح أخرى

From wikipedia:

One feature of the LGPL is that one can convert any LGPLed piece of software into a GPLed piece of software (section 3 of the license). This feature is useful for direct reuse of LGPLed code in GPLed libraries and applications, or if one wants to create a version of the code that cannot be used in proprietary software products.

Are you sure Batteries is LGPL? I should think not, because it is designed to be a replacement for the Ocaml standard library, which is also not LGPL. No, the Ocaml library is LGPLX, that is LGPL with linking exception. This is a special clause that allows you to link statically into code with any licence, it is added to LGPL because without it Ocaml would be useless, since it's primary mode of operation is static linkage, and a lot of people will never accept the social division caused by the GPL epidemic.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top