Skip to content

chore(license): centralize crate license inheritance under Apache-2.0 - #848

Merged
norrietaylor merged 2 commits into
mainfrom
pr/01-licensing-baseline
Jul 20, 2026
Merged

chore(license): centralize crate license inheritance under Apache-2.0#848
norrietaylor merged 2 commits into
mainfrom
pr/01-licensing-baseline

Conversation

@norrietaylor

@norrietaylor norrietaylor commented Jul 20, 2026

Copy link
Copy Markdown
Member

First PR in the staged decomposition of oss/integration for the OSS launch. Establishes the licensing baseline.

What

  • Sets the workspace package.license = "Apache-2.0" and switches all 28 crates to license.workspace = true (they previously declared license = "MIT OR Apache-2.0"). Main already shipped an Apache-2.0 LICENSE in docs(README, CLA, CODE_OF_CONDUCT, CONTRIBUTING, LICENSE): prep for open source #836 but the manifests still said dual — this aligns them.
  • Adds NOTICE covering the darwin release artifacts' redistribution of libkrun (Apache-2.0) and gvproxy (Apache-2.0).
  • Documents the LGPL dependency exceptions in deny.toml — hakoniwa (LGPL-3.0-only with linking exception) and the malachite family (LGPL-3.0-only, static-linked via nickel-lang-core) — and drops the now-unused souk4711 git-source allowance.

Decision: Apache-2.0-only

Not dual MIT/Apache. Rationale: uniform, non-optional patent grant; simpler attribution; and GPLv2-only downstream consumability is already precluded by the LGPL-3.0 malachite dependency, so the MIT arm bought little in practice. Main's #836 LICENSE had already committed to Apache-2.0.

Verification

  • cargo deny check licenses bans sourcesok / ok / ok
  • cargo metadata → all 28 workspace crates resolve to Apache-2.0
  • No unintended reverts: confirmed every staged Cargo.toml diff is license-only (restored main's tracing-appender line in crates/minvmd/Cargo.toml that a path-based checkout had briefly dropped).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation

    • Added an Apache License 2.0 notice and third-party attribution details for distributed macOS release components.
    • Documented applicable LGPL exception guidance, including linking and source availability considerations.
  • Chores

    • Standardized project license metadata across components, improving consistency and visibility for package consumers.
    • Refined license compliance configuration and removed outdated source-allowlist settings.

Main already ships an Apache-2.0 LICENSE (#836), but the crate manifests
still declared `license = "MIT OR Apache-2.0"`. Align them: set the workspace
package.license to Apache-2.0 and switch all 28 crates to
`license.workspace = true`.

Add a NOTICE covering the darwin release's redistribution of libkrun and
gvproxy. Document the LGPL dependency exceptions in deny.toml (hakoniwa's
linking exception; the malachite family, static-linked via nickel-lang-core)
and drop the now-unused souk4711 git-source allowance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 278351ed-d244-41f2-94f6-ab23a90a6840

📥 Commits

Reviewing files that changed from the base of the PR and between 8e54f90 and 5b27569.

📒 Files selected for processing (31)
  • Cargo.toml
  • NOTICE
  • crates/args/Cargo.toml
  • crates/async-dialog/Cargo.toml
  • crates/check/Cargo.toml
  • crates/checkouts/Cargo.toml
  • crates/common/Cargo.toml
  • crates/decode/Cargo.toml
  • crates/diagnostics/Cargo.toml
  • crates/graph/Cargo.toml
  • crates/lcache/Cargo.toml
  • crates/mctx/Cargo.toml
  • crates/mfile/Cargo.toml
  • crates/minimal/Cargo.toml
  • crates/minimald-rpc/Cargo.toml
  • crates/minimald/Cargo.toml
  • crates/minvmd/Cargo.toml
  • crates/mip/Cargo.toml
  • crates/op/Cargo.toml
  • crates/orchestrator/Cargo.toml
  • crates/ot/Cargo.toml
  • crates/paths/Cargo.toml
  • crates/rcache/Cargo.toml
  • crates/remote-client/Cargo.toml
  • crates/remote-proto/Cargo.toml
  • crates/sandbox2/Cargo.toml
  • crates/sessions/Cargo.toml
  • crates/stdlib/Cargo.toml
  • crates/switch/Cargo.toml
  • crates/version/Cargo.toml
  • deny.toml

📝 Walkthrough

Walkthrough

The workspace now declares Apache-2.0 licensing, crate manifests inherit it, NOTICE documents third-party macOS artifacts, and cargo-deny licensing/source configuration is updated.

Changes

Licensing metadata and compliance

Layer / File(s) Summary
Workspace and crate license inheritance
Cargo.toml, crates/*/Cargo.toml
The workspace defines Apache-2.0, and affected crates use license.workspace = true instead of hard-coded or missing license metadata.
Attribution and cargo-deny configuration
NOTICE, deny.toml
NOTICE adds Apache and macOS third-party attribution details; cargo-deny exception comments and source allowlisting are updated.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: twitchyliquid64

Poem

A rabbit hops through Cargo’s rows,
Where shared Apache licensing grows.
Notices bloom, attestations align,
And deny rules trace each license line.
“Thump-thump!” says Bunny, “Metadata shines!”

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: moving crate licenses to workspace inheritance under Apache-2.0.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@norrietaylor
norrietaylor enabled auto-merge (squash) July 20, 2026 21:23
@norrietaylor
norrietaylor merged commit 13cb066 into main Jul 20, 2026
28 checks passed
@norrietaylor
norrietaylor deleted the pr/01-licensing-baseline branch July 20, 2026 21:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants