by Ralf Banning, Frankfurt University of Applied Sciences

Status

DECIDED

Stakeholders
OutcomeUse GPLv3+ license
Due date
Owner

Background

Setting the right license type is of vital importance for the reuse-ability of code and for legal compliance w.r.t. software licenses. Since this project uses software from other contributors and 3rd party libraries, the project license has to be chosen as a compatible type to all licenses of included work or such who are to be considered as a base of derivative work of this project. Moreover, after setting a license, all future components have to be selected as they are compatible with the chosen flecsimo License (see Discussion below).

The following list shows the current situation:

ComponentVersion DependencyLicenseInstalledLinkedCompatibility [10]






RelevantGPLv3 [1, 2]MIT [3-5]BSD [6,7]

Apache [8,9]

Django3.0.7
BSDNO?NO



ftrobopy1.80
MIT / ExpatYESYESYES(Plus)(Plus)(Plus)(Plus)
fysom2.1.5
MIT / ExpatYESYES
(Plus)(Plus)(Plus)(Plus)
memory-profiler0.57.0psutilBSDYESYESNO(Plus)(Plus)(Plus)(Plus)
paho-mqtt1.5.0
EPL 1.0 or EDL 1.0 1YESYESYES

(Minus)(Plus)2

(Plus)3

(Plus)3(Plus)3
pip20.1.1
MIT / ExpatYESNONO



python3.8.1
PSFLYESNOYES(Plus)(Plus)(Plus)(Plus)
psutil5.7.0
BSDYESINDIRECTLYNO



pyreadline2.1.5
BSDYESYESYES(Plus)(Minus) 4
(Plus)(Plus)
setuptools46.1.3
MIT / ExpatYESNONO



six1.14.0
MIT / ExpatYESINDIRECTLYYES(Plus)(Plus)(Plus)(Plus)
transitions0.8.1sixMIT / ExpatYESYESYES(Plus)(Plus)(Plus)(Plus)
wheel0.34.2
MIT / ExpatYESYESNO



Windows-curses2.1.0
PSFLYES
YES(Plus)(Plus)(Plus)(Plus)

1) EPL: Eclipse Public License, EDL: Eclipse distribution License. EDL is equivalent to New BSD License. paho-mqtt is dual licensed - i. e. one can choose an appropriate license.

2) Whereas EPLv2 can be made optional compatible with GPLv3, version 1.0 is not, see [12].

3) According to eclipse.org pure "linking" is not a derivative work, therefore linking the paho-mqtt module is compatible with publishing under MIT and others licenses

4) But: linking may be allowed.

Discussion

The general situation is shown in a diagram following Janelia Farm [15] and Wheeler [11]

License compatibility (see [10, 17] for more details) concerns if common use of code, licensed under different license conditions, is permissible under license law. This is especially important for copyleft licenses. The main considerations for compatibility are

  • strength of copyleft protection
  • "virulence" w.r.t to "linking" of libraries or modules

Copyleft protection prevents a software to be relicenced under stricter conditions as it was initially published. "Virulence" describes the extend to what this applies also for "derivative work" (or: the notion of this). Strongly protective copyleft licenses define even hard- or soft-linking libraries to ones own code as a derivation of the libraries, and therefore the own code has to be published under the same license terms as the library. Weakly protective copyleft licenses allow linking to non GPL / copyleft licensed code without forcing the code to under GPL.

Applicable GPL licenses

Following the comments of the GNU organization in [17], the MIT, BSD (with exception of 4-clause BSD) and Apache 2.0 licenses are compatible with GPLv3, whereas Eclipse Public license v1 is not. From this, using EPLv1 for paho-mqtt would prevent to set the flecsimo project under LGPLv3+ or GPLv3+ license. But, due to the dual license model of the paho-mqtt (see [16, 18]), choosing the EDLv1 license, which is equivalent to BSD 3-clause, all LGLPv3, LGPLv3+, GPLv3 and GPLv3+ license types could be used. Following the statements in [19] all python licenses of version 2.2. and above are also compatible with GPL.type licenses.

Applicable Permissible License

Most of the modules (dynamically) linked into flecsimo code are under MIT or BSD-type licenses. Since all listed permissive license (MIT, BSD and Apache) are tolerating "linking", and no GPL libraries or code are linked or used, the flecsimo may be set under all these license types as well. It is important to understand that this is only true with respect to "linking", because distributing or modifying code of a "stronger" license type under weaker conditions may not be permitted.

Eco System considerations

This license for flecsimo is not only a matter of legal permission but a question of acceptance and reusability of the code. Following [5] the MIT license is the most applied license in open software projects, followed by GPL and Apache, The 3rd party modules used in flecsimo are (up to now) mainly licensed under MIT or some BSD license.

Main differences between licenses

The following table is based on [2, 5, 7, 9, 20 and 21]


MIT / expatBSD 4-clauseBSD 3-clauseBSD 2-clauseApache2.0LGPL3LGPL3+GPL3GPL3+










Published
19901999199920041998
FSF approved(Haken)(Haken)(Haken)(Haken)(Haken)(Haken)
OSI approved(Haken)

(Fehler)

(Haken)(Haken)(Haken)(Haken)
GPL compatible(Haken)(Fehler)(Haken)(Haken)(Haken)(Haken)
Copyleft(Fehler)(Fehler)(Fehler)(Fehler)(Fehler)(Haken)
Link with different license(Haken)(Haken)

(Haken)

(Haken)

(Haken)(Haken)(Haken)(Fehler)(Fehler)
Derivative with different license(Haken)(Haken)(Haken)(Haken)(Haken)(Fehler)(Fehler)(Fehler)(Fehler)
Source re-license-able(Haken)(Fehler)(Fehler)(Fehler)(Fehler)(Fehler)(Frage)(Fehler)(Frage)
Force patent licensing(Fehler)6(Fehler)(Fehler)5(Fehler)5(Haken)(Haken)
Limited liability(Haken)(Haken)(Haken)(Haken)(Haken)(Haken)
No warranty(Haken)(Haken)(Haken)(Haken)(Haken)(Haken)
No trademark use(Fehler)(Haken)(Haken)(Fehler)(Haken)(Fehler)
ConditionsLicense and copyright notice must be includedLicense and copyright notice must be includedLicense and copyright notice must be includedLicense and copyright notice must be included

License and copyright notice must be included

Changes made to code must be documented

License and copyright notice must be included

Changes made to code must be documented

Disclosure of source with distribution

Modification must be released under same license (or similar license if "+")

RemarksMIT/X11 has additional endorsement clause w.r.t MIT/expat"original" also referred as "BSD-old"Advertising clause removed, also referred as "BSD-new"Advertising and non-endorsement clause removed, also known as "FreeBSD License".Only version 2.0 is compatible with GPLv3

5 There is also a BSD+Patent license available, see https://opensource.org/licenses/BSDplusPatent

6 Patent granting may be added manually

Rationale

From the flecsimo viewpoint, taking into account the discussed topics from above, the following pros and cons have to be considered:

TopicPermissive LicensesCopyleft Licenses
Openness with other licenses

(Plus)

(Minus)
Protection against privatization(Minus)(Plus)
Community ecosystem fit(Plus)(Frage)

References

[1] GNU Operating System: Licenses. URL: https://www.gnu.org/licenses/licenses.html,  at 14.06.2020.

[2] Wikipedia. GNU General Public License. URL: https://en.wikipedia.org/wiki/GNU_General_Public_License, at 14.06.2020.

[3] Massachusetts Institute of Technology. The MIT License. URL: https://www.mit.edu/~amini/LICENSE.md, at 14.06.2020.

[4] Open Source initiative, The MIT License. URL: https://opensource.org/licenses/mit-license.php, at 14.06.2020.

[5] Wikipedia. MIT License. URL: https://en.wikipedia.org/wiki/MIT_License, at 14.06.2020.

[6] FreeBsd Foundation. The FreeBsd Copyright. URL: https://www.freebsd.org/copyright/freebsd-license.html, at 14.06.2020

[7] Wikipedia. BSD licenses. URL: https://en.wikipedia.org/wiki/BSD_licenses, at 14.06.2020.

[8] Apache Software Foundation. Apache Licenses. URL: https://www.apache.org/licenses/, at 14.06.2020

[9] Wikipedia. Apache license. URL: https://en.wikipedia.org/wiki/Apache_License, at 14.06.2020.

[10] ifrOSS. What is license compatibility? URL: https://www.ifross.org/en/what-license-compatibility, at 14.06.2020.

[11] Wheeler, David A. The Fre-Libre / open Source Software (FLOSS) License Slide, version of 2017-01-26. URL: https://dwheeler.com/essays/floss-license-slide.html, at 14.06.2020.

[12] ECLIPSE Foundation. Eclipse Public License Version 2.0 Approved By OSI and Eclipse Foundation Board of Directors, Press Release August 24, 2017, URL: https://www.eclipse.org/org/press-release/20170829eplv2.php, at 14.06.2020.

[13] Janelia Farm FlyEM Project. Open Source Licenses and their Compatibility. URL: https://dwheeler.com/essays/floss-license-slide.html, at 14.06.2020.

[14] Janelia Farm FlyEM Project, FlyEM Software Dependencies. http://janelia-flyem.github.io/dependencies.html, 14.06.2020.

[15] "Diagram of FLOSS licenses and compatability" by Janelia Farm under CC BY-SA 3.0, at 14.06.2020.

[16] Eclipse / paho.qtt.python. License.tyt. URL: https://github.com/eclipse/paho.mqtt.python/blob/master/LICENSE.txt, at 14.06.2020.

[17] GNU Operating System. Various Licenses and comments about them. URL: https://www.gnu.org/licenses/license-list.html, at 14.06.2020.

[18] Wikipadia. Multi-licensing. URL: https://en.wikipedia.org/wiki/Multi-licensing, at 14.06.2020.

[19] Python Software Foundation. History and License. URL: https://docs.python.org/3/license.html, at 14.06.2020.

[20] Choose an open source license. URL: https://choosealicense.com/, at 14.06.2020.

[21] Wikipedia. Comparison of free and open-source software licenses. URL: https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licences, at 14.06.2020.


Action items

  •