My goal is to make a contribution to an open source Python project hosted on GitHub, which has an Apache 2.0 license. To do so, I wrote a few lines of code. However for a specific feature of my contribution, I called a python module installed through pypi, which has a LGPL-3 license.

When I asked the author of the Apache 2.0 licensed library about the possible incompatibility of the two licenses he told me:

If you just point to the the optional LGPL library in setup.py file I believe it's fine. You don't even have to change the license here. It is separate code. This library is even an optional part (kind of language-support plugin) and even GPL is allowed to license code separately in the case of plugins.

This setup.py mentioned above has an extras section where optional libraries will be installed (linked?) if the user specifies them during install.

Is this contribution possible at all, without any repercussions?
Should I include a license notice to the sub-directory where this LGPL-3 module is called (if included during setup)?

1 Answer 1


I'm going to assume for the purposes of this answer that (a) linking to a module makes a derivative work of that module, and (b) this is as true for interpreted as compiled languages.

You say that the library author said that "even GPL is allowed to license code separately in the case of plugins". This is not necessarily true.

Fortunately, this doesn't matter, because the module in question is LGPLv3. That licence allows you to link the module, unmodified, to other code without having to distribute that other code, or the resulting executable, under GPLv3. So the project can continue to be Apache-licensed, in the main. The project will have full LGPLv3 obligations with respect to that module if they distribute it (which include but are not limited to distribution of the code and copies of both the GPL and the LGPL), but otherwise it seems to me that you can do what you want to do.

  • The distribution part relates to when someone would try to use the larger library in a non-free project? Then said person would have to swap out the Apache2 for LGPv3 since the latter is more restrictive, right?
    – solid.py
    Mar 17, 2022 at 18:23
  • 1
    @solid.py no. The LGPL library must continue to be distributed under LGPL; the Apache2 content, however, can remain under Apache2, for this is one of the permissions of the LGPL. The combination can be used as a library in a non-free project, though the LGPL portion has some fairly onerous requirements associated with it (must be able to relink with an updated version, etc.)
    – MadHatter
    Mar 18, 2022 at 6:34

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.