# cargo-deny configuration for the Fluxer workspace. # # Applies to the root workspace (Cargo.toml at the repo root). [graph] all-features = true no-default-features = false [output] feature-depth = 1 # --------------------------------------------------------------------------- # Advisories (RustSec advisory DB) # --------------------------------------------------------------------------- [advisories] version = 2 yanked = "deny" unmaintained = "all" # Placeholder for future per-advisory ignores. Prefer fixing/upgrading the # crate before adding an entry here. Each entry should be a string ID, e.g. # "RUSTSEC-2024-0000", optionally as { id = "...", reason = "..." }. ignore = [] # --------------------------------------------------------------------------- # Licenses # --------------------------------------------------------------------------- # This repo is AGPL-3.0-or-later. Dependency licenses below are vetted to be # compatible with AGPL distribution. If a crate is essential and ships under a # license not listed here, add it explicitly (do NOT route around via # [[licenses.exceptions]] or [[licenses.clarify]] without justification in the # commit message). [licenses] version = 2 confidence-threshold = 0.93 allow = [ "MIT", "Apache-2.0", "Apache-2.0 WITH LLVM-exception", "BSD-2-Clause", "BSD-3-Clause", "ISC", "MPL-2.0", "Unicode-3.0", "Zlib", "CC0-1.0", "AGPL-3.0-or-later", "BSL-1.0", "CDLA-Permissive-2.0", ] # Explicitly deny GPL-only / strong-copyleft licenses that don't compose with # AGPL-3.0-or-later linking semantics in a library context. exceptions = [] # ring uses a custom BSD-ish + OpenSSL license combo that cargo-deny can't # auto-classify; clarify it as the ISC/OpenSSL/MIT triple it actually is. [[licenses.clarify]] crate = "ring" expression = "ISC AND MIT AND OpenSSL" license-files = [ { path = "LICENSE", hash = 0xbd0eed23 }, ] # --------------------------------------------------------------------------- # Bans # --------------------------------------------------------------------------- [bans] multiple-versions = "warn" wildcards = "deny" # Internal workspace crates use path dependencies without registry versions. # Registry wildcards remain denied. allow-wildcard-paths = true highlight = "all" workspace-default-features = "allow" external-default-features = "allow" # Keep workspace artifacts away from the obsolete libfuse2 stack. # AppImage packaging must use the static electron-builder runtime instead. deny = [ { crate = "fuse", reason = "libfuse2-based Rust wrapper; use a maintained FUSE3-native crate only if Fluxer ever needs FUSE directly" }, { crate = "fuse-sys", reason = "libfuse2 FFI crate; Fluxer AppImages must not reintroduce libfuse2 through native Rust dependencies" }, ] skip = [ { crate = "block-buffer@0.10.4", reason = "transitive dependency requires the older digest API" }, { crate = "const-oid@0.9.6", reason = "transitive dependency requires the older digest API" }, { crate = "cpufeatures@0.2.17", reason = "transitive dependency requires the older crypto API" }, { crate = "crypto-common@0.1.7", reason = "transitive dependency requires the older digest API" }, { crate = "digest@0.10.7", reason = "transitive dependency requires the older digest API" }, { crate = "foldhash@0.1.5", reason = "transitive dependency requires the older hashbrown API" }, { crate = "getrandom@0.2.17", reason = "transitive dependency requires the older randomness API" }, { crate = "getrandom@0.3.4", reason = "transitive dependency requires the prior randomness API" }, { crate = "hashbrown@0.14.5", reason = "transitive dependency requires the older hashbrown API" }, { crate = "hashbrown@0.15.5", reason = "transitive dependency requires the older hashbrown API" }, { crate = "hashbrown@0.16.1", reason = "transitive dependency requires the prior hashbrown API" }, { crate = "hmac@0.12.1", reason = "transitive dependency requires the older digest API" }, { crate = "http@0.2.12", reason = "transitive dependency requires the older HTTP API" }, { crate = "http-body@0.4.6", reason = "transitive dependency requires the older HTTP body API" }, { crate = "r-efi@5.3.0", reason = "transitive dependency requires the older WASI API" }, { crate = "rand@0.8.6", reason = "transitive dependency requires the older randomness API" }, { crate = "rand@0.9.4", reason = "transitive dependency requires the prior randomness API" }, { crate = "rand_chacha@0.3.1", reason = "transitive dependency requires the older randomness API" }, { crate = "rand_chacha@0.9.0", reason = "transitive dependency requires the prior randomness API" }, { crate = "rand_core@0.6.4", reason = "transitive dependency requires the older randomness API" }, { crate = "rand_core@0.9.5", reason = "transitive dependency requires the prior randomness API" }, { crate = "sha1@0.10.6", reason = "transitive dependency requires the older digest API" }, { crate = "sha2@0.10.9", reason = "transitive dependency requires the older digest API" }, { crate = "socket2@0.5.10", reason = "transitive dependency requires the older socket API" }, { crate = "wasi@0.11.1+wasi-snapshot-preview1", reason = "transitive dependency requires the legacy WASI API" }, { crate = "windows-sys@0.52.0", reason = "transitive dependency requires the older Windows API" }, { crate = "windows-sys@0.59.0", reason = "transitive dependency requires the prior Windows API" }, { crate = "wit-bindgen@0.51.0", reason = "transitive dependency requires the older WASI binding API" }, ] skip-tree = [] # --------------------------------------------------------------------------- # Sources # --------------------------------------------------------------------------- [sources] unknown-registry = "deny" unknown-git = "deny" allow-registry = ["https://github.com/rust-lang/crates.io-index"] allow-git = [] [sources.allow-org] github = []