Question

If I link a program dynamically to a LGPL library (here GTK+/GLib), I'm allowed to distribute the program on my own terms (non-copyleft).

Now, the LGPL library provides loadable modules. Place a shared library (.so, .dll, .dylib) in a certain directory, and it will attempt to load it, using a well-defined interface. Am I allowed to distribute the plugin module (dynamically loaded by the LGPL library) as closed-source, according to the terms of LGPL?

I'd take care that I don't use code from the LGPLed library in my plugin, and only include such headers that would be permitted by the license, and which I could as well use in a closed-source program ("3. Object Code Incorporating Material from Library Header Files.").


Disclaimer:
I am well aware that you shouldn't take legal advice from strangers on the internet. I am asking this mainly because I'm curious. No code has been written, and no business commitments have been made at this point. Before I do anything real I probably should ask a lawyer (but they're quite expensive for just satisfying your curiosity!). I do have confidence though that I can get a good answer - maybe someone has done exactly this thing and can report on their experience. Maybe there is a definite answer from the horse's mouth (FSF) that I overlooked. I'm writing this disclaimer so that you don't have to, so please don't tell me to ask my legal department (which I don't have as an individual).

And if this rather belongs on Programmers.SE, please feel free to move. I posted this here because there might be some technical (linking) issues that are important.

Était-ce utile?

La solution

If I link a program dynamically to a LGPL library (here GTK+/GLib), I'm allowed to distribute the program on my own terms (non-copyleft).

Yes, with some restrictions. Notably, you can't lock the proprietary program to a specific version of the LGPL library; it has to allow upgrading and changing the LGPL library.

Am I allowed to distribute the plugin module (dynamically loaded by the LGPL library) as closed-source, according to the terms of LGPL?

Stated differently, your question is about reverse linking with LGPL, where you provide symbols required by the LGPL component. My guess is that the answer is actually yes, because the LGPL broadly defines Application as:

An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library.

Thus you proprietary .so makes use of an interface provided by the Library, so it qualifies as an "Application" and can make use of the linking exception.

Licencié sous: CC-BY-SA avec attribution
scroll top