If code components that were licensed under different license conditions are compiled to form a new work, a question arises: Is the common use of the code permissible under license law? If for example code A under license X is linked with code B under license Y to form a new program, licenses X and Y must permit this. If this is the case, license compatibility exists.
License compatibility is particularly important for copyleft licenses (→ What types of licenses are there for open-source software, and how do they differ?) since licenses such as the GPL provide that derived works may only be used under the same license conditions (that is, those of the GPL). Hence copyleft licenses are only compatible with other open source licenses when one of the following conditions is met:
a) The other open-source license does not contain any license requirements that are not provided by the compatible copyleft license. This is the case with the BSD license without an advertising clause, whereas the BSD license with an advertising clause contains an information requirement that the GPL and other copyleft licenses do not provide.
b) The other open-source license contains a special compatibility or opening clause. This is the case for example in sec. 3 of the LGPL, Version 2.1 that permits the use of LGPL code under the GPL. GPLv3 contains a compatibility clause for the Affero GPL and opening clauses for Apache license 2.0 and other licenses. The European Public License (EUPL) and German free software license (d-fsl) contain compatibility clauses for the GPL.
The question of compatibility also arises when combining code under GPLv2 and GPLv3 (→ When is GPLv2 used, and when is GPLv3 used?).
Next section The GNU General Public License (GPL), Version 2, next FAQ: What is the GPL?
Back to the overview of all FAQs