|
@@ -8,10 +8,10 @@ breadcrumbs:
|
|
|
|
|
|
## Resources
|
|
|
|
|
|
-- [Various Licenses and Comments about Them (GNU Project)](https://www.gnu.org/licenses/license-list.en.html)
|
|
|
-- [How are the various GNU licenses compatible with each other? (GNU Project)](https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility)
|
|
|
-- [FOSSA - Open Source Management for Enterprise Teams](https://fossa.com/)
|
|
|
- - For managing licenses for dependencies, finding licensing conflicts, generating attibution notices, and more.
|
|
|
+- [Wikipedia: License compatibility](https://en.wikipedia.org/wiki/License_compatibility)
|
|
|
+- [GNU Project: Various Licenses and Comments about Them](https://www.gnu.org/licenses/license-list.en.html)
|
|
|
+- [GNU Project: How are the various GNU licenses compatible with each other?](https://www.gnu.org/licenses/gpl-faq.html#AllCompatibility)
|
|
|
+- [FOSSA (Open Source Management for Enterprise Teams)](https://fossa.com/) (For managing licenses for dependencies, finding licensing conflicts, generating attibution notices, and more.)
|
|
|
|
|
|
## Definitions
|
|
|
|
|
@@ -26,7 +26,7 @@ breadcrumbs:
|
|
|
- License compatibility: Licenses are said to be compatible if they can both be applied to a work without conflict.
|
|
|
In other words, it must be possible to satisfy both/all the licenses.
|
|
|
|
|
|
-## Notes
|
|
|
+## Info
|
|
|
|
|
|
- Using a library in an application generally means creating a derivative work of the library.
|
|
|
- LGPL does not consider dynamic linking as creating a derivative work.
|
|
@@ -38,8 +38,16 @@ breadcrumbs:
|
|
|
Contributed code is typically owned by whoever contributed that code.
|
|
|
- In some circumstances, multiple programs/libraries may be used by the same system/program without requiring them to be compatible.
|
|
|
E.g. multiple applications installed in the same system or multiple modules used at the same time (generally).
|
|
|
-- MIT projects can not use any GPL libraries.
|
|
|
-- GPLv2 and GPLv3 compatibility:
|
|
|
+- Exceptions can be made to the standard licenses, for instance to modify how the license for your work affects derivative works.
|
|
|
+ The work must still adhere to other imposed licenses, though.
|
|
|
+- An attibution notice must be added within your software for all direct and indirect dependencies it's using.
|
|
|
+
|
|
|
+## Compatibility
|
|
|
+
|
|
|
+- GPL and permissive licenses:
|
|
|
+ GPL programs may be libraries using the permissive licenses MIT, BSD (two- and three-clause form), MPL 2.0 and LGPL, but not the other way around.
|
|
|
+- GPLv2 and GPLv3:
|
|
|
+ - GPLv3 is generally compatible with more licenses than GPLv2.
|
|
|
- GPLv3 programs may *not* use GPLv2-only libraries.
|
|
|
- GPLv2-only programs may *not* use GPLv3 libraries.
|
|
|
- GPLv2-or-later programs may use GPLv2 libraries, resulting in a GPLv2 program.
|
|
@@ -47,9 +55,12 @@ breadcrumbs:
|
|
|
- GPLv2-or-later programs may use GPLv2-or-later libraries, resulting in a GPLv2-or-later program.
|
|
|
- GPLv3 programs may use GPLv2-or-later libraries, resulting in a GPLv3 program.
|
|
|
- Mixing GPLv2-only and GPLv3 libraries is not possible.
|
|
|
-- GPLv3 is compatible with more licenses than GPLv2.
|
|
|
-- Exceptions can be made to the standard licenses, for instance to modify how the license for your work affects derivative works.
|
|
|
- The work must still adhere to other imposed licenses, though.
|
|
|
-- An attibution notice must be added within your software for all direct and indirect dependencies it's using.
|
|
|
+- Apache 2.0 and GPL:
|
|
|
+ Apache 2.0 libraries may be used by GPLv3 programs but *not* GPLv2 programs.
|
|
|
+ Neither GPLv3 nor GPLv2 libraries may be used in Apache 2.0 programs.
|
|
|
+
|
|
|
+## Guidelines
|
|
|
+
|
|
|
+- Try to avoid licensing libraries as GPL. Using these libraries is a nightmare, even for GPL applications (due to GPLv2 and v3 incompatibilities).
|
|
|
|
|
|
{% include footer.md %}
|