From 6a2ad069517ed7a4fe5c5fefa90d1038a8d87533 Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Tue, 25 Jul 2023 16:51:45 +0200 Subject: [PATCH 1/4] Fixup license clarification --- src/licenses/gather.rs | 116 ++++++++++++++++++++++------------------- 1 file changed, 61 insertions(+), 55 deletions(-) diff --git a/src/licenses/gather.rs b/src/licenses/gather.rs index 96700a39..5bccda81 100644 --- a/src/licenses/gather.rs +++ b/src/licenses/gather.rs @@ -15,11 +15,7 @@ fn iter_clarifications<'a>( krate: &'a Krate, ) -> impl Iterator { all.iter().filter(move |vc| { - if vc.name == krate.name { - return crate::match_req(&krate.version, vc.version.as_ref()); - } - - false + vc.name == krate.name && crate::match_req(&krate.version, vc.version.as_ref()) }) } @@ -45,8 +41,12 @@ fn find_license_files(dir: &Path) -> Result, std::io::Error> { } }; - if p.is_file() && p.file_name().map_or(false, |f| f.starts_with("LICENSE")) { - Some(p) + if p.is_file() + && p.file_name().map_or(false, |f| { + f.starts_with("LICENSE") || f.starts_with("COPYING") + }) + { + Some(p.strip_prefix(dir).unwrap().to_owned()) } else { None } @@ -55,12 +55,12 @@ fn find_license_files(dir: &Path) -> Result, std::io::Error> { .collect()) } -fn get_file_source(path: PathBuf) -> PackFile { +fn get_file_source(root: &Path, path: PathBuf) -> PackFile { use std::io::BufRead; // Normalize on plain newlines to handle terrible Windows conventions let content = { - let file = match std::fs::File::open(&path) { + let file = match std::fs::File::open(root.join(&path)) { Ok(f) => f, Err(e) => { return PackFile { @@ -114,8 +114,6 @@ struct PackFile { } enum MismatchReason<'a> { - /// The specified file was not found when gathering license files - FileNotFound, /// Encountered an I/O error trying to read the file contents Error(&'a std::io::Error), /// The hash of the license file doesn't match the expected hash @@ -123,7 +121,10 @@ enum MismatchReason<'a> { } struct LicensePack { + /// The license files discovered or clarified, relative to root license_files: Vec, + /// The krate's source root + root: PathBuf, err: Option, } @@ -136,13 +137,14 @@ struct GatheredExpr { impl LicensePack { fn read(krate: &Krate) -> Self { - let root_path = krate.manifest_path.parent().unwrap(); + let root = krate.manifest_path.parent().unwrap(); - let mut lic_paths = match find_license_files(root_path) { + let mut lic_paths = match find_license_files(root) { Ok(paths) => paths, Err(e) => { return Self { license_files: Vec::new(), + root: root.to_owned(), err: Some(e), } } @@ -152,49 +154,52 @@ impl LicensePack { // already found in the root directory if let Some(lf) = &krate.license_file { if !lic_paths.iter().any(|l| l.ends_with(lf)) { - // The `krate.license_file` is relative to the crate, while files found with - // `find_license_files()` are absolute. We prepend the directory of the current - // crate, to make sure all license file paths will be absolute. - let absolute_lf = krate.manifest_path.parent().unwrap().join(lf); - lic_paths.push(absolute_lf); + lic_paths.push(lf.clone()); } } - let mut license_files: Vec<_> = lic_paths.into_iter().map(get_file_source).collect(); + let mut license_files: Vec<_> = lic_paths + .into_iter() + .map(|path| get_file_source(root, path)) + .collect(); license_files.sort_by(|a, b| a.path.cmp(&b.path)); Self { license_files, + root: root.to_owned(), err: None, } } - fn license_files_match(&self, expected: &FileSource) -> Result<(), MismatchReason<'_>> { - let err = match self + fn insert_clarification(&mut self, clarified: &FileSource) -> Result<(), MismatchReason<'_>> { + let index = match self .license_files - .iter() - .find(|lf| lf.path.ends_with(&expected.path.value)) + .binary_search_by(|lf| lf.path.cmp(&clarified.path.value)) { - Some(lf) => match &lf.data { - PackFileData::Bad(e) => MismatchReason::Error(e), - PackFileData::Good(file_data) => { - if file_data.hash != expected.hash { - MismatchReason::HashDiffers - } else { - return Ok(()); - } - } - }, - None => MismatchReason::FileNotFound, + Ok(i) => i, + Err(i) => { + let lf = get_file_source(&self.root, clarified.path.value.clone()); + + self.license_files.insert(i, lf); + i + } }; - Err(err) + match &self.license_files[index].data { + PackFileData::Bad(e) => Err(MismatchReason::Error(e)), + PackFileData::Good(file_data) => { + if file_data.hash != clarified.hash { + Err(MismatchReason::HashDiffers) + } else { + Ok(()) + } + } + } } fn get_expression( &self, - krate: &Krate, file: FileId, strat: &askalono::ScanStrategy<'_>, confidence: f32, @@ -218,13 +223,11 @@ impl LicensePack { let mut failures = Vec::new(); synth_toml.push_str("license-files = [\n"); - let root_path = krate.manifest_path.parent().unwrap(); - for lic_contents in &self.license_files { write!( synth_toml, " {{ path = \"{}\", ", - lic_contents.path.strip_prefix(root_path).unwrap(), + self.root.join(&lic_contents.path) ) .unwrap(); @@ -246,9 +249,7 @@ impl LicensePack { } expr.push_str(id.name); - sources.push( - lic_contents.path.file_name().unwrap().to_owned(), - ); + sources.push(lic_contents.path.as_str().to_owned()); } else { write!(synth_toml, "score = {:.2}", lic_match.score) .unwrap(); @@ -530,28 +531,30 @@ impl Gatherer { // 1 if let Some(cfg) = cfg { for clarification in iter_clarifications(&cfg.clarifications, krate) { - let lp = if let Some(lp) = &license_pack { + let lp = if let Some(lp) = &mut license_pack { lp } else { license_pack = Some(LicensePack::read(krate)); - license_pack.as_ref().unwrap() + license_pack.as_mut().unwrap() }; // Check to see if the clarification provided exactly matches // the set of detected licenses, if they do, we use the clarification's // license expression as the license requirements for this crate let clarifications_match = clarification.license_files.iter().all(|clf| { - match lp.license_files_match(clf) { + match lp.insert_clarification(clf) { Ok(_) => true, Err(reason) => { - if let MismatchReason::FileNotFound = reason { - labels.push( - super::diags::MissingClarificationFile { - expected: &clf.path, - cfg_file_id: cfg.file_id, - } - .into(), - ); + if let MismatchReason::Error(err) = reason { + if err.kind() == std::io::ErrorKind::NotFound { + labels.push( + super::diags::MissingClarificationFile { + expected: &clf.path, + cfg_file_id: cfg.file_id, + } + .into(), + ); + } } false @@ -666,7 +669,7 @@ impl Gatherer { if !license_pack.license_files.is_empty() { let (id, _) = get_span("license"); - match license_pack.get_expression(krate, id, &strategy, threshold) { + match license_pack.get_expression(id, &strategy, threshold) { Ok(GatheredExpr { synthesized_toml, failures, @@ -769,7 +772,10 @@ impl Gatherer { mod test { #[test] fn normalizes_line_endings() { - let pf = super::get_file_source(crate::PathBuf::from("./tests/LICENSE-RING")); + let pf = super::get_file_source( + crate::Path::new("./tests/"), + crate::PathBuf::from("LICENSE-RING"), + ); let expected = { let text = std::fs::read_to_string("./tests/LICENSE-RING").unwrap(); From cab5c1affcff5976fe01a7ae7e4d7d532d879593 Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Tue, 25 Jul 2023 16:52:02 +0200 Subject: [PATCH 2/4] Add clarification example --- examples/13_license_clarification/Cargo.lock | 216 +++++++++++++++++++ examples/13_license_clarification/Cargo.toml | 13 ++ examples/13_license_clarification/README.md | 4 + examples/13_license_clarification/deny.toml | 27 +++ examples/13_license_clarification/main.rs | 1 + 5 files changed, 261 insertions(+) create mode 100644 examples/13_license_clarification/Cargo.lock create mode 100644 examples/13_license_clarification/Cargo.toml create mode 100644 examples/13_license_clarification/README.md create mode 100644 examples/13_license_clarification/deny.toml create mode 100644 examples/13_license_clarification/main.rs diff --git a/examples/13_license_clarification/Cargo.lock b/examples/13_license_clarification/Cargo.lock new file mode 100644 index 00000000..2172c5b3 --- /dev/null +++ b/examples/13_license_clarification/Cargo.lock @@ -0,0 +1,216 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "bumpalo" +version = "3.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" + +[[package]] +name = "cc" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ca34107f97baef6cfb231b32f36115781856b8f8208e8c580e0bcaea374842" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "js-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "libc" +version = "0.2.137" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7fcc620a3bff7cdd7a365be3376c97191aeaccc2a603e600951e452615bf89" + +[[package]] +name = "license-clarification" +version = "0.1.0" +dependencies = [ + "rustls-webpki", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "once_cell" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860" + +[[package]] +name = "proc-macro2" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6207cd5ed3d8dca7816f8f3725513a34609c0c765bf652b8c3cb4cfd87db46b" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "syn" +version = "2.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "unicode-ident" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ceab39d59e4c9499d4e5a8ee0e2735b891bb7308ac83dfb4e80cad195c9f6f3" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "wasm-bindgen" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.87" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" + +[[package]] +name = "web-sys" +version = "0.3.64" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" diff --git a/examples/13_license_clarification/Cargo.toml b/examples/13_license_clarification/Cargo.toml new file mode 100644 index 00000000..22cfb992 --- /dev/null +++ b/examples/13_license_clarification/Cargo.toml @@ -0,0 +1,13 @@ +[package] +name = "license-clarification" +version = "0.1.0" +authors = ["Jake Shadle "] +license = "MIT OR Apache-2.0" +edition = "2018" + +[[bin]] +name = "allow-license" +path = "main.rs" + +[dependencies] +rustls-webpki = "=0.100.1" diff --git a/examples/13_license_clarification/README.md b/examples/13_license_clarification/README.md new file mode 100644 index 00000000..688b1a1f --- /dev/null +++ b/examples/13_license_clarification/README.md @@ -0,0 +1,4 @@ +# 13_license_clarification + +This example shows how to clarify the license information for a project that may +have missing or non-machine readable licenses that need a human to correct. diff --git a/examples/13_license_clarification/deny.toml b/examples/13_license_clarification/deny.toml new file mode 100644 index 00000000..88f279dd --- /dev/null +++ b/examples/13_license_clarification/deny.toml @@ -0,0 +1,27 @@ +[licenses] +allow = ["MIT", "Apache-2.0", "ISC"] +private = { ignore = true } +exceptions = [ + { name = "ring", allow = [ + "OpenSSL", + ] }, + { name = "unicode-ident", allow = [ + "Unicode-DFS-2016", + ] }, + { name = "rustls-webpki", allow = [ + "BSD-3-Clause", + ] }, +] + +[[licenses.clarify]] +name = "ring" +expression = "ISC AND MIT AND OpenSSL" +license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }] + +[[licenses.clarify]] +name = "rustls-webpki" +expression = "ISC AND BSD-3-Clause" +license-files = [ + { path = "LICENSE", hash = 0x001c7e6c }, + { path = "third-party/chromium/LICENSE", hash = 0x001c7e6c }, +] diff --git a/examples/13_license_clarification/main.rs b/examples/13_license_clarification/main.rs new file mode 100644 index 00000000..f328e4d9 --- /dev/null +++ b/examples/13_license_clarification/main.rs @@ -0,0 +1 @@ +fn main() {} From dc859a6b15d07953ca490136bd3539bf6a02080e Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Tue, 25 Jul 2023 16:52:08 +0200 Subject: [PATCH 3/4] Add test --- tests/licenses.rs | 78 + tests/snapshots/licenses__clarifications.snap | 2341 +++++++++++++++++ 2 files changed, 2419 insertions(+) create mode 100644 tests/snapshots/licenses__clarifications.snap diff --git a/tests/licenses.rs b/tests/licenses.rs index 3d7245b7..31c2dc38 100644 --- a/tests/licenses.rs +++ b/tests/licenses.rs @@ -206,3 +206,81 @@ fn lax_fallback() { insta::assert_json_snapshot!(diags); } + +/// Ensures clarifications are supported, even for nested license files +#[test] +fn clarifications() { + let mut cmd = krates::Cmd::new(); + cmd.manifest_path("examples/13_license_clarification/Cargo.toml"); + + let krates: Krates = krates::Builder::new() + .build(cmd, krates::NoneFilter) + .unwrap(); + + let gatherer = licenses::Gatherer::default() + .with_store(store()) + .with_confidence_threshold(0.8); + + let mut files = codespan::Files::new(); + + let cfg: tu::Config = tu::Config::new( + r#" +allow = ["MIT", "Apache-2.0", "ISC"] +private = { ignore = true } +exceptions = [ + { name = "ring", allow = [ + "OpenSSL", + ] }, + { name = "unicode-ident", allow = [ + "Unicode-DFS-2016", + ] }, + { name = "rustls-webpki", allow = [ + "BSD-3-Clause", + ] }, +] + +[[clarify]] +name = "ring" +expression = "ISC AND MIT AND OpenSSL" +license-files = [{ path = "LICENSE", hash = 0xbd0eed23 }] + +[[clarify]] +name = "rustls-webpki" +expression = "ISC AND BSD-3-Clause" +license-files = [ + { path = "LICENSE", hash = 0x001c7e6c }, + { path = "third-party/chromium/LICENSE", hash = 0x001c7e6c }, +] +"#, + ); + + let lic_cfg = { + let des: licenses::cfg::Config = toml::from_str(&cfg.config).unwrap(); + let cfg_id = files.add("config.toml", cfg.config.clone()); + + let mut diags = Vec::new(); + use cargo_deny::UnvalidatedConfig; + des.validate(cfg_id, &mut diags) + }; + + let summary = gatherer.gather(&krates, &mut files, Some(&lic_cfg)); + + let diags = tu::gather_diagnostics_with_files::( + &krates, + "clarifications", + cfg, + files, + |ctx, _cs, tx| { + crate::licenses::check( + ctx, + summary, + diag::ErrorSink { + overrides: None, + channel: tx, + }, + ); + }, + ); + + insta::assert_json_snapshot!(diags); +} diff --git a/tests/snapshots/licenses__clarifications.snap b/tests/snapshots/licenses__clarifications.snap new file mode 100644 index 00000000..db0e202b --- /dev/null +++ b/tests/snapshots/licenses__clarifications.snap @@ -0,0 +1,2341 @@ +--- +source: tests/licenses.rs +expression: diags +--- +[ + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "bumpalo", + "version": "3.11.1" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "cc", + "version": "1.0.75" + }, + "parents": [ + { + "Krate": { + "kind": "build", + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "cfg-if", + "version": "1.0.0" + }, + "parents": [ + { + "Krate": { + "name": "log", + "version": "0.4.17" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "libc", + "version": "0.2.137" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "log", + "version": "0.4.17" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "once_cell", + "version": "1.16.0" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "proc-macro2", + "version": "1.0.66" + }, + "parents": [ + { + "Krate": { + "name": "quote", + "version": "1.0.32" + }, + "parents": [ + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + }, + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "quote", + "version": "1.0.32" + }, + "parents": [ + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ], + "labels": [ + { + "column": 15, + "line": 18, + "message": "license expression retrieved via user override", + "span": "ISC AND MIT AND OpenSSL" + }, + { + "column": 15, + "line": 18, + "message": "accepted: license is explicitly allowed", + "span": "ISC" + }, + { + "column": 23, + "line": 18, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 31, + "line": 18, + "message": "accepted: license is explicitly allowed via an exception", + "span": "OpenSSL" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression was not specified", + "span": "" + }, + { + "column": 15, + "line": 5, + "message": "license expression retrieved via LICENSE, third-party/chromium/LICENSE", + "span": "ISC AND BSD-3-Clause" + }, + { + "column": 15, + "line": 5, + "message": "accepted: license is explicitly allowed", + "span": "ISC" + }, + { + "column": 23, + "line": 5, + "message": "accepted: license is explicitly allowed via an exception", + "span": "BSD-3-Clause" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "spin", + "version": "0.5.2" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "unicode-ident", + "version": "1.0.5" + }, + "parents": [ + { + "Krate": { + "name": "proc-macro2", + "version": "1.0.66" + }, + "parents": [ + { + "Krate": { + "name": "quote", + "version": "1.0.32" + }, + "parents": [ + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + }, + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "repeat": true + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + }, + { + "Krate": { + "name": "syn", + "version": "2.0.27" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "(MIT OR Apache-2.0) AND Unicode-DFS-2016" + }, + { + "column": 13, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 20, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + }, + { + "column": 36, + "line": 4, + "message": "accepted: license is explicitly allowed via an exception", + "span": "Unicode-DFS-2016" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "untrusted", + "version": "0.7.1" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + }, + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "ISC" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "ISC" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "wasm-bindgen-shared", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-backend", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen-macro", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "wasm-bindgen", + "version": "0.2.87" + }, + "parents": [ + { + "Krate": { + "name": "js-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "repeat": true + } + ] + } + ] + } + ] + } + ] + }, + { + "Krate": { + "name": "wasm-bindgen-macro-support", + "version": "0.2.87" + }, + "repeat": true + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "web-sys", + "version": "0.3.64" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "winapi", + "version": "0.3.9" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "winapi-i686-pc-windows-gnu", + "version": "0.4.0" + }, + "parents": [ + { + "Krate": { + "name": "winapi", + "version": "0.3.9" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + }, + { + "fields": { + "code": "accepted", + "graphs": [ + { + "Krate": { + "name": "winapi-x86_64-pc-windows-gnu", + "version": "0.4.0" + }, + "parents": [ + { + "Krate": { + "name": "winapi", + "version": "0.3.9" + }, + "parents": [ + { + "Krate": { + "name": "ring", + "version": "0.16.20" + }, + "parents": [ + { + "Krate": { + "name": "rustls-webpki", + "version": "0.100.1" + }, + "parents": [ + { + "Krate": { + "name": "license-clarification", + "version": "0.1.0" + } + } + ] + } + ] + } + ] + } + ] + } + ], + "labels": [ + { + "column": 12, + "line": 4, + "message": "license expression retrieved via Cargo.toml `license`", + "span": "MIT OR Apache-2.0" + }, + { + "column": 12, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "MIT" + }, + { + "column": 19, + "line": 4, + "message": "accepted: license is explicitly allowed", + "span": "Apache-2.0" + } + ], + "message": "license requirements satisfied", + "severity": "help" + }, + "type": "diagnostic" + } +] From ea217527d003fe5119aad3c324bd8275f7032864 Mon Sep 17 00:00:00 2001 From: Jake Shadle Date: Tue, 25 Jul 2023 16:56:48 +0200 Subject: [PATCH 4/4] Remove unneeded docs directory --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index d7cab18f..402b4cc9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,7 +14,7 @@ documentation = "https://docs.rs/cargo-deny" homepage = "https://github.com/EmbarkStudios/cargo-deny" categories = ["development-tools::cargo-plugins"] keywords = ["cargo", "license", "spdx", "ci", "advisories"] -exclude = ["examples/", ".github/", "tests"] +exclude = ["docs/", "examples/", ".github/", "tests"] rust-version = "1.70.0" [badges]