Free and open-source software (FOSS) has assisted in the spread of emerging technologies, allowing users to utilize freely publicly available software and developers to incorporate third party source code into their implementations. As the number of components in software systems increases, so does the complexity of deciding which license(s) can be applied on the final system, or of checking if there are any incompatibilities among the terms defined in the licenses adopted in the different software components.
Formal lists of licenses can be found in the Open Source Initiative (OSI) and the Free Software Foundation (FSF). A larger license list is maintained by the Software Package Data Exchange (SPDX).
The variety of open source licenses makes it difficult for organizations to cope with incompatibilities that might exist due to the use of software libraries based on different licenses. License A is considered one-way ‘compatible’ with license B, if software that contains components from both licenses can be licensed under license B. The term ‘one-way’ is used to highlight that license A is compatible with license B, but the reverse case (i.e., license B is compatible with license A) is not assured.
A general rule of compatibility is that old versions of a license are compatible with newer version(s) of the same license, but the reverse is not true. This plus (+) sign used in some licenses means that we are referring to the indicated version of the license or later versions of that.
A graph that provides an indication of compatibility or lack of compatibility through two different types of edges: compatibility edges and incompatibility edges is shown below. The graph covers main license families, i.e., Apache, BSD, MPL, LGPL, GPL, AGPL.
The details of the graph creation can be found in a relevant research publication:
- Georgia M. Kapitsaki, Nikolaos D. Tselikas, Ioannis E. Foukarakis: An insight into license tools for open source software systems. Journal of Systems and Software 102: 72-87 (2015)
You can also find a previous graph created by David A. Wheeler in the Free-Libre / Open Source Software (FLOSS) License Slide here.
The above information is an indication of compatibility, but for detailed legal advice legal experts need to be consulted.