# cargo-deny — supply-chain + license hygiene.
#
# Complements rustfmt/clippy/test with advisory (RUSTSEC), license,
# duplicate/banned-crate, and dependency-source checks. Run locally with:
#
#     cargo deny check
#
# CI: the `deny` job in .github/workflows/ci.yml (non-blocking for now; drop its
# continue-on-error to gate once the graph stays clean).

[graph]
all-features = true

[advisories]
version = 2
ignore = []

[licenses]
version = 2
# Permissive licenses present in the dependency tree. Extend deliberately as new
# deps appear; copyleft would be handled by scoped exceptions, not blanket allows.
allow = [
    "MIT",
    "Apache-2.0",
    "Apache-2.0 WITH LLVM-exception",
    "BSD-2-Clause",
    "BSD-3-Clause",
    "CDLA-Permissive-2.0",
    "ISC",
    "Unicode-3.0",
    "Unlicense",
]
confidence-threshold = 0.8
# r-efi is LGPL-2.1-or-later but only provides UEFI ABI type definitions, pulled
# in transitively for UEFI targets — scoped, not a blanket LGPL allowance.
[[licenses.exceptions]]
crate = "r-efi"
allow = ["LGPL-2.1-or-later"]

[bans]
multiple-versions = "warn"
wildcards = "warn"
allow-wildcard-paths = true

[sources]
unknown-registry = "deny"
unknown-git = "warn"
