Python – Accomodating a LGPL Python module into a BSD project

bsd licenselgpllicensingpython

I have a program written in Python that I would like to make available to the public under a three-clause BSD license. My program has an import blah statement, where blah is a Python module that is licensed under LGPL version 3.

Now, I don't even plan to include blah in my distribution… I plan to make users download and install it themselves. (Sorry in advance, users.)

My own reading of the LGPL version 3 suggests that all I need to do to make this legit is the following:

  • Acknowledge that my program uses blah (LGPL section 4a)
  • State that blah is covered by LGPL 3 (LGPL section 4a)
  • Provide copies of the GPL and LGPL licenses (LGPL section 4b)
  • Provide blah's copyright tag, as in 'blah is copyright 2014 by A. Person' (LGPL section 4c – but only if blah displays copyrights during execution, which it actually does not)

Am I missing anything? Specifically, have I automatically met the requirements of LGPL section 4d and 4e since the user will install blah themselves?

The ultimate question, though – was any of this necessary? (Personally, I want to acknowledge others' work, so I will anyway.) Does simply having an import statement mean that I am conveying it?

Best Answer

If your program depends on an LGPL licensed module/library, then the basic requirement on you is that you must ensure that the users of your program or derived versions of it have the possibility to replace the LGPL licensed code with a different, compatible, version.

One way to ensure this is by putting your code under the (L)GPL license, which ensures that also the source code of derived projects remains available.

Another way is to link dynamically to the module/library, so that the module/library is located at run-time and can be replaced by the user.
As dynamic loading/linking is the default for Python (and just about all interpreted languages), your usage of the blah module also falls under this case.

As you are not even distributing the blah module yourself, you just need to tell your users that they must download/install this module. You don't need to mention what license it is under or provide a copy of the license, because all that will be provided when your users take the action to obtain the blah module.

Related Topic