I've had a question for a long time on how to license my project. I would really appreciate your guidance to help me choosing the right licenses for my specific case. My main goal is to make available the source code for free use but also to prevent any commercial use or monetary gain.

Here is a detailed description:

My project is written in python and it uses some packages/frameworks with the following licenses:

Apache License, Version 2.0, GNU General Public Licence (v2), and MIT license

Given this, what licenses should I obtain to (jointly with these last) make my code available for free usage and disallow any commercial use? If I ever want to sell my software to a private company, how should I proceed? Can I do that?

  • 1
    Is it GPL v2 or GPL v2-or-later? This is relevant because GPL v2-only and Apache are unfortunately incompatible.
    – amon
    Jan 28, 2021 at 13:15
  • @amon it is GPL v2-or-later.
    – mljistcart
    Jan 28, 2021 at 16:35

1 Answer 1


Due to it's strong copyleft, it is not possible to use anything else but GPL. That is unless you eliminate the GPL dependency.

GPL allows commercial use so you can not prevent that.

However no licence you could ever choose will disable your right to sell the software later if you find a willing customer. It's still your copyright. Although some jurisdictions do allow selling the whole copyright.

  • Thanks for the answer. What version of GPL should I use? What about using a dual-license (GPL + non-commercial activity)?
    – mljistcart
    Jan 27, 2021 at 22:47
  • You can not use a different license than GPL because of your dependency. Not alone and not in a dual license model. GPLv2 vs GPLv3 is a different question. The differences are subtle and if you don't have a piece of software where it really matters, use v3. Jan 28, 2021 at 8:35
  • Okok. Can I use AGPL too?
    – mljistcart
    Jan 28, 2021 at 10:23
  • 2
    Because of the Apache requirement, it will need to be GPLv3(+), as amon points out above.
    – MadHatter
    Jan 30, 2021 at 6:29

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.