You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 9 Next »

Overall information and licence lists

Permissive and copyleft licenses

  • Permissive licences have simple requirements – to credit original work, describe changes, provide disclaimer…
  • Copyleft licences (“reciprocal”, “protective”, “restrictive”, derogatory: “viral”) require the rights to be preserved in derivative works
  • If you use any components (libraries) with copyleft, you are obliged to make derived source code available, which may include the entire product/project!
  • Permissive – do anything
    • MIT – short and simple
    • ISC (OpenBSD) – further shortened equivalent
    • BSD – some versions require to include the disclaimer
    • Apache 2.0 – requires notice of changes, grants licence to patents unless litigating and mentions preservation of trademark rights
  • Weak copyleft – file (library) scope
    • MPL 2.0 – simple, allows static linking and licence variants with additional terms
    • LGPL 2.1 – cleaned text of LGPL 2.0, allows dynamic linking without enforcing copyleft
    • LGPL 3.0 – grants use of patents; the end-user must be able to install a modified version – it prohibits closed devices, DRM or hardware encryption or patents retaliation; compatible with Apache2.0
  • Strong copyleft – project scope
    • GPL 2.0 – often used
    • GPL 3.0 – grants use of patents, the end-user must be able to install modified software, compatible with Apache2.0
    • AGPL 3.0 (Affero) – network protective: external use of modified(!) code requires its availability – network use is a distribution of the software, modified source code must be available
  • Proprietary – typically restrict user rights and protect commercial interests of copyright owners

Per-feature or tabular comparisons of licences and categorised lists

Licence compatibility

GPL licences compatibility

Arrows are transitive and go from licences of the components toward the one of your project


A chart illustrating compatibility relationships between different free software licenses.  For details, see the FSF's license list page.

(From https://www.gnu.org/licenses/quick-guide-gplv3.html)

Above, dotted line – “GPL 2 only” is not compatible with GPL 3”, but ”GPL 2 or later” is. A more detailed view with precisely stated licences:

(From David A. Wheeler 2007, https://web.archive.org/web/20210101030518/https://dwheeler.com/essays/floss-license-slide.html, SVG variant: https://en.wikipedia.org/wiki/License_compatibility#/media/File:Floss-license-slide-image.svg)

On AGPL compatibility:

  • (L)GPL 3.0(+) components can be used in software under AGPL, thanks to an explicit rule in GPL
  • Code under AGPL cannot be used in (L)GPL projects unless dual-licensed

Dual and multi-licensing

  • Dual and multi-licences help in avoiding licence compatibility issues, which makes the use of components more flexible
  • Dual and multi-licences help in avoiding licence compatibility issues, which makes the use of components more flexible
  • You can choose a licence compatible with the one used for your software. But you cannot dual-licence your software to match some components with one and others with another licence. Licences of all used components must be compatible with all of your licences!
  • “Or later”(often as “+”) licenses variants just imply the applicability of later, possibly still non-existing, versions of these licences. This is sometimes implied unless you explicitly decline it.
  • Some licences include automatic relicensing (MPL 2.0, EUPL 1.2, CeCILL) – EUPL comes with the full and exhaustive list…

License compatibility matrices or checkers

Joinup Licensing Assistant, https://joinup.ec.europa.eu/collection/eupl/solution/joinup-licensing-assistant/jla-compatibility-checker

License Compatibility Checker software

In-licences (licences of components) are in rows, out-licences in columns:

(From https://github.com/HansHammel/license-compatibility-checker)

Open Source Automation Development Lab (OSADL) matrix and rules

In-licences are in columns, out-licences in rows:

(From https://events19.linuxfoundation.org/wp-content/uploads/2018/07/OSLS-2019-Fulfilling-Open-Source-license-obligations-Can-checklists-help.pdf)

More at

GNU GPL licences compatibility 

EUPL 1.2

Creative Commons licences

Risks of permissive licences

Risk mitigation against potentially harmful legal threats or behaviours by free-software licenses

Frequently used protective and permissive licenses


AGPLv3

GPLv3

GPLv2.1

LGPLv3

LGPLv2.1

MPL-2

BSD

SaaS/cloud

Yes

No

No

No

No

No

No

Tivoization

Yes

Yes

No

Yes

No

No

No

Patent trolling

Yes

Yes

No

Yes

No

No

No

Proprietization

Yes

Yes

Yes

Partial

Partial

Partial

No

Granularity / reach

Project

Project

Project

Library

Library

File

N/A

Trademark grant

Yes

Yes

?

Yes

?

No

No

(From https://en.wikipedia.org/wiki/Free-software_license)

Licence selection tools

WhiteSource resources

Alternative software inventory tools

Ideally, compliance should be continuously monitored as a part of the build process.

Compliance methodology

  • No labels