# Third-party licences

Recension is proprietary and free to use (see `LICENSE`, and `ADR-029`). Its
dependencies are not ours, and this file exists because of that.

**This file is now the only place those obligations are discharged.** While the
project was MIT-licensed and its source public, a permissive dependency's
attribution requirement was satisfied almost incidentally — the notices were in
a repository anyone could read. Closed source removes that, so this file has to
travel with every distribution: it is bundled inside every installer, shown in
the application under Settings, and published at
https://recension.pages.dev/licenses.

Most dependencies are permissive (MIT, Apache-2.0, BSD, ISC) and need no
individual notice here. The components below carry **file-level copyleft**, which
`ADR-002` permits for unmodified dependencies on three conditions — one of which
is that they are listed here, with a source. `TC-PIVOT-05` fails the build if this
file and the dependency tree disagree, in either direction.

Project-level copyleft (GPL, AGPL, SSPL) remains prohibited and none is present.

---

## MPL-2.0 components

The Mozilla Public License 2.0 applies **per file**. Its §3.3 expressly permits
distributing a "Larger Work" under different terms — here, a proprietary
free-to-use grant — provided the MPL-covered files remain under MPL and their
source stays available. **None of these components has been modified**, and each
source URL below is what keeps that condition satisfied.
If any were, that file's source would carry a publication obligation under §3.2.

Full licence text: <https://www.mozilla.org/en-US/MPL/2.0/>

### cssparser 0.36.0
CSS parsing. Build-time only, via `tauri-utils`.
Source: <https://github.com/servo/rust-cssparser>

### cssparser-macros 0.6.1
Procedural macros for `cssparser`. Build-time only.
Source: <https://github.com/servo/rust-cssparser>

### dtoa-short 0.3.5
Shortest-representation float formatting, used by `cssparser`. Build-time only.
Source: <https://github.com/upsuper/dtoa-short>

### selectors 0.36.1
CSS selector matching. Build-time only, via `dom_query` → `tauri-utils`.
Source: <https://github.com/servo/stylo>

### option-ext 0.2.0
Extension methods for `Option`. Reached via `dirs` → `dirs-sys`. **This is the
only one of the five that links into the shipped binary**; the other four are
used by the build.
Source: <https://github.com/soc/option-ext>

---

## How to verify this list

```sh
cargo metadata --format-version 1 --all-features \
  | python3 -c "import json,sys; \
      print('\n'.join(f\"{p['name']} {p['version']} {p.get('license')}\" \
      for p in json.load(sys.stdin)['packages'] if 'MPL' in (p.get('license') or '')))"
```

Or simply run `./scripts/check-third-party-licences.py`, which is what CI runs.
