Skip to content

Generate complete third-party license notices #446

Description

@lukewilliamboswell

Context

#417 ensured that THIRD_PARTY_LICENSES.md is included in release bundles. The remaining gap is completeness.

The current file contains notices only for:

  • musl libc;
  • LLVM libunwind.

The statically linked host also includes direct and transitive Rust crates such as crossterm, Hyper, rustls, ring, Tokio, and libsqlite3-sys. The Windows build copies a set of Windows SDK import libraries into the platform bundle in scripts/build.py:200-207.

This issue is about producing and validating a complete notice set, not merely ensuring the existing file is archived.

Suggested direction

Use a reproducible tool such as cargo-about or a suitably configured cargo-deny license report to generate notices from Cargo.lock. Add any non-Cargo inputs separately:

  • musl and crt objects;
  • LLVM libunwind;
  • bundled SQLite/public-domain status;
  • Windows SDK libraries and applicable redistribution terms;
  • the external Roc HTTP package if its contents are redistributed transitively.

Have the release workflow fail when the generated notice differs from the committed/bundled notice.

This should receive an appropriate maintainership/legal review; the issue does not assume a particular legal conclusion for Windows SDK files.

Acceptance criteria

  • Every statically linked Cargo dependency is represented in generated license metadata/notices.
  • Non-Cargo binary inputs have documented source, version/provenance, and license status.
  • Windows SDK redistribution is explicitly reviewed and documented.
  • CI detects stale or incomplete notices.
  • The generated notice remains included in the final .tar.zst bundle.
  • The generation/update procedure is documented for contributors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions