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.