Open source licensing

The one idea to hold on to

A licence is never a problem in the abstract. It is a problem in a scenario.

The same library under AGPL-3.0 is harmless in an internal tool and fatal in a SaaS backend. The same library under GPL-3.0 is unremarkable on a desktop and blocking in a locked-down connected device. A CC-BY-NC asset is irrelevant in a mock-up and prohibited in a product you sell.

What triggers an obligation is not the licence’s name: it is what you do with the software — do you distribute it? to whom? in what form? do you expose it over a network? can the user replace the component?

That is why this section is built as a matrix: the licence families on one axis, the distribution scenarios on the other, and what connects them in between.

The matrix, on one page

Key: no difficulty · conditional, needs review · avoid · incompatible in practice.

Scenario Permissive Weak copyleft, file Weak copyleft, library Strong copyleft Network copyleft Source-available
MIT, Apache-2.0 MPL-2.0, EPL-2.0 LGPL-2.1/3.0 GPL-2.0/3.0 AGPL-3.0 BSL, SSPL, ELv2
Worst case
SaaS backend
Web frontend
Desktop / CLI app
Mobile app
Library / SDK
On-premises
Embedded / IoT ○ v2 / ✕ v3
Internal tool

Every cell is explained on the corresponding scenario page. The symbols do not replace the reading: a can hide a heavy engineering constraint, and a never removes the attribution duty.

What this section is not

It does not replace legal advice. Free software licensing rests on copyright, which is national; the notion of a “derivative work” has no settled European case law for software, and the positions taken by licence authors — on linking in particular — are not binding law. Where a question is contested, the page says so.

It also does not cover your internal process: the licence policy, the allow / review / deny lists, the exception register and the attribution deliverables are in Intellectual property.

How this relates to the CRA

Regulation (EU) 2024/2847 does not require licence compliance. It makes it measurable, and it turns it into a diligence matter:

  • the mandatory inventory (Annex I, Part II, point 1) carries licence identifiers: for the first time, legal compliance becomes computable across the portfolio;
  • due diligence on third-party components (Art. 13(5)) includes examining the licence, alongside maintenance and security history;
  • the duty to report fixes upstream (Art. 13(6)) presupposes a contribution policy that allows your engineers to publish code;
  • the five-to-ten-year support period requires keeping the corresponding source and the build chain — exactly what the GPL requires anyway.

Put differently: CRA compliance work and licence compliance work share their artefacts. Running them separately means paying for them twice.

Where to start

In this section

  • Cross-cutting

    The licence families

    Public domain, permissive, weak copyleft by file or by library, strong copyleft, network copyleft, source-available, content licences: what each one actually requires.

  • Cross-cutting

    What triggers an obligation

    Distribution, network interaction, derivative works, static or dynamic linking, mere aggregation, consumer products, patents: the eight mechanisms that make a licence bite — or not.

  • Cross-cutting

    Nine distribution scenarios

    The same component, nine contexts: what changes, what gets triggered, and the verdict per licence family for each type of product.

  • Cross-cutting

    Pitfalls the matrix does not show

    Upstream licence changes, missing licences, copied code, AI-generated code, assets, CLAs, mutual incompatibilities: what the family × scenario grid cannot capture.