3

I've been developing a Django app for my work (scientific stuff), and I'm planning to release it on GitHub very soon. But I do have licensing questions to be sure to do it right.

This work is modular, and made of three parts :

  • the Django app. The plan is to use the GNU AGPL v3

  • a python library called by the Django app. Plan is LGPL v3

  • a C shared library used in the python library. Plan is to also use LGPL v3, but this part is actually the tricky one, since that's a repackaging of a standalone which is under "GPL v2 or any later version". If I understood correctly, LGPL v3 is indeed considered "GPL v2 or any later version".

Am I correct about that ? If so, is my plan ok, or is there something illegal ?

Additional question :

  • On GitHub, do I need to put license headers in every files, or just configure the project with the proper licence ?

2 Answers 2

2

Your C library is a derivative of a GPL v2 or later library, thus you can only publish it under a GPL license (to your choice one of the four possibilities: v2, v2 or later, v3, v3 or later). I would recommend keeping GPL v2 or later, but GPL v3 (or later) would be fine too.

The Python library depends on the C library, thus it needs to be similarly GPL-licensed. You cannot license it under LGPL v3.

Finally, the Django app can very well be AGPL-v3-licensed (thanks to the "or later" clause of the original licensing statement; indeed GPL v3 is compatible with AGPL v3 whereas GPL v2 isn't).

2
  • Thanks ! Why would you keep it v2 or later instead of v3 ? Is it not better to update ?
    – user6748
    Nov 21, 2016 at 14:41
  • It's about allowing the upstream project to merge back some of your changes in their code-base. If you are sure that your changes won't be of interest for upstream then yes, upgrading to "v3 or later" would be fine.
    – Zimm i48
    Nov 21, 2016 at 14:44
1

Your main question:

a C shared library used in the python library. Plan is to also use LGPL v3, but this part is actually the tricky one, since that's a repackaging of a standalone which is under "GPL v2 or any later version". If I understood correctly, LGPL v3 is indeed considered "GPL v2 or any later version"

This is incorrect - LGPL is more permissive than GPL v2 so you will need to contact the original author for a waiver or for re-licencing of the original code.

Side Question:

On GitHub, do I need to put license headers in every files, or just configure the project with the proper licence ?

Accepted best practice for any Open Source distribution, not just on github is to put a brief licence & copyright statement in every file and a LICENCE.txt, sometimes LICENCE.md, just plain LICENCE or COPYING, file in the distribution with full licence details

Your Answer

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

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