fontina0.2.0

Next: 0008 — The CLI is the plugin surface, and here is what it promises,  Previous: 0006 — CLI first; the desktop shell is deferred,  Up: Architecture decision records

0007 — Project license: GPL-3.0-or-later

Status: accepted, 2026-09-04. Supersedes ADR 0004.

Context

ADR 0004 chose MIT OR Apache-2.0 for one reason: it is the Rust ecosystem convention. That reason is real but it is about fitting in, not about what the license does.

What it does is this. PLAN.md §2 names the competition: FontBase — Electron, closed source, 300 MB of RAM, paid tiers. Under MIT, FontBase can vendor fontina-core, ship the parsing, the index, the health checks and the specimen inside a proprietary paid tier, and owe their users nothing: no source, no right to modify, no right to pass it on. Every hour spent on this project would become unpaid labour for a program that denies its users the freedoms this one is built to protect. A permissive license does not merely allow that outcome; against an incumbent with a proprietary product already shipping, it invites it.

The project’s own principles already answer the question. Principle 2 is that your data stays yours in formats you can read. Principle 3 is that nothing leaves the machine. Principle 9 says “free software”. Those are promises about the user’s control over their own computer, and a license that lets an intermediary strip them is not the license those promises call for.

The counter-argument for permissive licensing of a library is adoption: if a free alternative is already entrenched, a copyleft library will simply be ignored in its favour, and the copyleft achieves nothing. That argument is why the FSF recommends the LGPL for a small number of libraries. It does not apply here. There is no entrenched free font-metadata crate that fontina-core must dislodge; the crate’s own reason to exist (PLAN.md §2) is that no such library exists. Nothing is won by giving away the copyleft in advance.

Decision

Every crate in the workspace, and the CLI, is licensed GPL-3.0-or-later. The full text is in COPYING; each source file carries the standard notice.

Contributions are accepted under the same terms. There is no CLA and no copyright assignment: contributors keep their copyright, which is what makes the license hard for any single party — including this project’s maintainers — to revoke later.

Documentation (README.md, PLAN.md, docs/, the man page and the Texinfo manual) is under the GNU Free Documentation License 1.3 or later, no invariant sections, no front- or back-cover texts. Its text is in docs/COPYING.DOC.

Fixture fonts keep their own licenses and are listed in fixtures/README.md.

Consequences

Alternatives considered