How to choose Open Source license

The article deals with popular Open Source licenses:

  • GNU GPLv3
  • GNU AGPLv3
  • GNU LGPLv3
  • Mozilla Public License 2.0
  • Apache License 2.0
  • MIT License
  • The Unlicense

Before choosing a license, let's first understand what a license is.

License is a permission to perform certain actions on a work.

Such actions may include the use, distribution, and modification of the work.
It is forbidden to perform these actions without an issued license, as the work is protected by copyright.

Copyright

Copyright means that the author of the original work is protected by copyright.
The author is given the exclusive right to dispose of his work and only he can allow other people to use it.

The author of a work is usually listed in the copyright notice.
An example of such a notice is "© 2022 Author Name".

Original work is a novelty product whose production was not based on copying.

Copyright protection restricts people from using, distributing, and modifying an author's work. As a reaction to this restriction, copyleft appeared, the purpose of which is to remove this restriction.

Copyleft is a license to use the original work without the need to obtain permission from the author, but with the condition that the derivative work will also be free from the permission of the author.

Derivative work is a modified version of the original work in which the changes constituted a smaller part, in terms of usefulness, of the entire original work. A work that only uses parts of the original work without modifying it is, in most cases, also considered a derivative work.

Requirements for source code in popular Open Source licenses

GNU GPLv3 (copyleft license) requires to supply the source code of the derivative work.

GNU AGPLv3 (enhanced copyleft license) requires to supply the source code of a derivative work if it is accessed over a network. If the derivative work is a web application, then the source code must be provided.

GNU LGPLv3 (weakened copyleft license) requires to supply the source code of a derivative work only if the original work has been modified. If the original work was used as a library, then no source code is required to be provided.

Mozilla Public License 2.0 requires to supply the source code of a derivative work if the files of the original work have been modified.

Apache License 2.0 does not require to supply the source code of the derivative work.

MIT License does not require to supply the source code of a derivative work. The developer can restrict the use of a derivative work in the event of a patent registration.

The Unlicense does not require to supply the source code of the derivative work. A derivative work is considered to be in the public domain and may be used in any way.

Full list of permissions, terms and restrictions for these licenses

Patent law

Patent transfer licenses allow people to use the work even if it has been patented. These licenses include the GNU GPLv3, GNU AGPLv3, GNU LGPLv3, Mozilla Public License 2.0, and Apache License 2.0.

If you plan to register a patent for a derivative work, you should choose a non-transferable license. These licenses include the MIT License and The Unlicense.

Source Code Condition

Providing the source code of a derivative work is required only if it is distributed (released). If the derivative work is used for personal purposes, then it is not required to provide the source code.

Choosing an appropriate Open Source license

The following are examples of original and derivative work developments and their respective licenses.

To the developer of the original work with a requirement to provide source code

As the developer of the original work, I require that users and editors provide the source code of the derivative work if it is distributed (released).
In this case, the GNU GPLv3 license is appropriate.

As the developer of the original work, I require that users and editors provide the source code of the derivative work if it is distributed (released) and accessed over the network.
In this case, the GNU AGPLv3 license is appropriate.

As the developer of the original work, I require that users and editors provide the source code for a derivative work if redistributing it, and only if they have modified the source code of the original work, but not the development source code of their own components.
If the original work is a library, then the GNU LGPLv3 license is appropriate, otherwise the Mozilla Public License 2.0 is appropriate.

For the developer of the original work without the requirement to provide source code

As the developer of the original work, I do not require users and editors to provide source code for derivative works.
In this case, the MIT License (no transfer of patent right) or Apache License 2.0 (with transfer of patent right) is suitable.

As the developer of the original work, I do not require users and editors to provide source code for their derivative work, and I want it to be considered in the public domain.
In this case, The Unlicense is suitable.

For the developer of a derivative work with the ability to provide source code

As a developer of a derivative work, I have the opportunity to provide the source code for my work.
In this case, any of the licenses under which the original work was developed is suitable.

To the developer of a derivative work without the ability to provide source code

As a developer of a derivative work, I am unable to provide the source code for my work.
In this case, only the following licenses are relevant under which the original work was developed GNU LGPLv3, Mozilla Public License 2.0, Apache License 2.0, MIT License, The Unlicense.

"How to choose Open Source license" by web-mastering.blogspot.com, licensed under CC BY-SA 4.0

The author of the article is not a lawyer, and therefore does not provide any guarantees or obligations to the readers of this article.
If you are an expert in this subject and found an inaccuracy, then please write about it to email r.gluhenko@gmail.com, it will be useful to all readers of the article.

Last modified: May 27, 2022