64

I have read this questions and answers, but I still don't understand what exactly do I need to do if I dynamically link with a library that uses a LGPL license (the SDL library in my case).

If I understand LGPL text correctly, I need to somehow provide the source for the library. Is this enough? If not, what else needs to be done?

3 Answers 3

63

LGPL's basic requirement is to separate the LGPL-licensed library and your own product well enough. That should allow users to supply their own version of the library instead of the one you've shipped with your software (with the bugs fixed, for instance). To accomplish this, you have two options:

  • use the LGPL code as a shared library (so the users would just copy their binary of the library over the one you ship), or
  • supply the source code of the whole project (so the users can copy their source of the library and recompile everything).

Note, however, that mere separation is not enough, though required. You should provide your users a documented way to replace a library with their version (i.e., how to upload firmware, or to recompile a Python wrapper for an LGPL C++ library).

The second notable clause is attribution requirement. This should help to promote the name of the original developer of the library, and state that what is cool software might have been developed by someone else :). In the relevant section of "About" window or a README file (if your license is Apache, this would be NOTICE file), you should list the name of the LGPL work you used.

Note that I am not a lawyer, and this is not a legal advice. Note that I am also not a plumber, and this is not a sanitary advice.

1
  • For the second option, I think it is also okay to supply the "object code" of the whole project (so the users can copy their source of the library and recompile everything).
    – JW.
    Commented Jan 25 at 14:45
15

If you are statically linking the LGPL library then you need to provide the source of the library and either the source or object code of your application.

If you are dynamically linking the LGPL library then you can either distribute you application alone, without the library and tell people where to download it from and how to include it, to use it. Or you can include a copy of the library binaries and its source with your application.

This explains it pretty well: http://answers.google.com/answers/threadview/id/439136.html (which I took from an answer in the question linked in the OP)

IANAS

4
  • 3
    ^This. The key is this: consumer of product gets an application with an LGPL'd library. Can they make an improvement to the LGPL'd part and use the new improved version with the original product? If yes, then you've complied with the intended purpose of the LGPL. LGPLv3 makes it explicit that even if the product is embedded firmware, you still must make it possible for the end-user to replace the LGPL'd part. That means being able to recompile the full firmware with a new version of the library and load it onto the device. (My understanding, IANAL, this is not legal advice.) Commented Jun 22, 2011 at 14:04
  • @Scott: I believe the embedded/firmware portion applies only if it is possible to change the firmware on the device. Commented Jun 22, 2011 at 14:23
  • What does the "S" in "IANAS" mean?
    – Joe Z.
    Commented Jan 5, 2013 at 15:19
  • 1
    @JoeZeng Solicitor
    – Matt Ellen
    Commented Jan 5, 2013 at 16:01
1

IANAL, but my understanding is that the point of the LGPL is that it doesn't "infect" the code depending on it like the GPL or AGPL. So you can have LGPL code as a dependency, and you don't have to do anything.

That being said, if you alter/modify/distribute LGPL code with your application, you need to make that code publicly available.

1
  • Wasn't there an agreement / understanding that "making the source publicly available" could be satisfied by including a URL that linked to the original source/repo? (Assuming you used an unmodified version for your product, of course.) I was a little surprised when I heard this, so it could in fact be dead wrong :).
    – TMN
    Commented Jun 22, 2011 at 16:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.