From 66c81a0024da4503deb4a782d1ae6e375e79f4a7 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 12:49:20 +0000 Subject: [PATCH 1/7] tidy: Add check that license exceptions are actually used --- src/tools/tidy/src/deps.rs | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index 3164dcc77be1d..66d035cd01156 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -34,7 +34,7 @@ const LICENSES: &[&str] = &[ "MIT / Apache-2.0", "MIT AND (MIT OR Apache-2.0)", "MIT AND Apache-2.0 WITH LLVM-exception AND (MIT OR Apache-2.0)", // compiler-builtins - "MIT OR Apache-2.0 OR LGPL-2.1-or-later", // r-efi, r-efi-alloc + "MIT OR Apache-2.0 OR LGPL-2.1-or-later", // r-efi, r-efi-alloc; LGPL is not acceptable, but we use it under MIT OR Apache-2.0 "MIT OR Apache-2.0 OR Zlib", // tinyvec_macros "MIT OR Apache-2.0", "MIT OR Zlib OR Apache-2.0", // miniz_oxide @@ -174,13 +174,10 @@ const EXCEPTIONS: ExceptionList = &[ ("blake3", "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception"), // rustc ("colored", "MPL-2.0"), // rustfmt ("constant_time_eq", "CC0-1.0 OR MIT-0 OR Apache-2.0"), // rustc - ("dissimilar", "Apache-2.0"), // rustdoc, rustc_lexer (few tests) via expect-test, (dev deps) - ("fluent-langneg", "Apache-2.0"), // rustc (fluent translations) ("foldhash", "Zlib"), // rustc ("option-ext", "MPL-2.0"), // cargo-miri (via `directories`) ("rustc_apfloat", "Apache-2.0 WITH LLVM-exception"), // rustc (license is the same as LLVM uses) ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 // cargo/... (because of serde) - ("self_cell", "Apache-2.0"), // rustc (fluent translations) ("wasi-preview1-component-adapter-provider", "Apache-2.0 WITH LLVM-exception"), // rustc // tidy-alphabetical-end ]; @@ -201,9 +198,6 @@ const EXCEPTIONS_CARGO: ExceptionList = &[ ("arrayref", "BSD-2-Clause"), ("bitmaps", "MPL-2.0+"), ("blake3", "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception"), - ("ciborium", "Apache-2.0"), - ("ciborium-io", "Apache-2.0"), - ("ciborium-ll", "Apache-2.0"), ("constant_time_eq", "CC0-1.0 OR MIT-0 OR Apache-2.0"), ("dunce", "CC0-1.0 OR MIT-0 OR Apache-2.0"), ("encoding_rs", "(Apache-2.0 OR MIT) AND BSD-3-Clause"), @@ -211,30 +205,22 @@ const EXCEPTIONS_CARGO: ExceptionList = &[ ("foldhash", "Zlib"), ("im-rc", "MPL-2.0+"), ("libz-rs-sys", "Zlib"), - ("normalize-line-endings", "Apache-2.0"), - ("openssl", "Apache-2.0"), ("ring", "Apache-2.0 AND ISC"), ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 - ("similar", "Apache-2.0"), ("sized-chunks", "MPL-2.0+"), ("subtle", "BSD-3-Clause"), - ("supports-hyperlinks", "Apache-2.0"), - ("unicode-bom", "Apache-2.0"), ("zlib-rs", "Zlib"), // tidy-alphabetical-end ]; const EXCEPTIONS_RUST_ANALYZER: ExceptionList = &[ // tidy-alphabetical-start - ("dissimilar", "Apache-2.0"), ("foldhash", "Zlib"), ("notify", "CC0-1.0"), ("option-ext", "MPL-2.0"), - ("pulldown-cmark-to-cmark", "Apache-2.0"), ("rustc_apfloat", "Apache-2.0 WITH LLVM-exception"), ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 - ("scip", "Apache-2.0"), - // tidy-alphabetical-end + // tidy-alphabetical-end ]; const EXCEPTIONS_RUSTC_PERF: ExceptionList = &[ @@ -300,9 +286,7 @@ const EXCEPTIONS_BOOTSTRAP: ExceptionList = &[ ("ryu", "Apache-2.0 OR BSL-1.0"), // through serde. BSL is not acceptble, but we use it under Apache-2.0 ]; -const EXCEPTIONS_UEFI_QEMU_TEST: ExceptionList = &[ - ("r-efi", "MIT OR Apache-2.0 OR LGPL-2.1-or-later"), // LGPL is not acceptable, but we use it under MIT OR Apache-2.0 -]; +const EXCEPTIONS_UEFI_QEMU_TEST: ExceptionList = &[]; #[derive(Clone, Copy)] struct ListLocation { @@ -867,6 +851,11 @@ fn check_license_exceptions( } } } + if LICENSES.contains(license) { + check.error(format!( + "dependency exception `{name}` is not necessary. `{license}` is an allowed license" + )); + } } let exception_names: Vec<_> = exceptions.iter().map(|(name, _license)| *name).collect(); From 3621785401cfce280ceff7216f680d2814194c2e Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 12:51:46 +0000 Subject: [PATCH 2/7] Add Apache-2.0 WITH LLVM-exception to list of allowed licenses It is more permissive than Apache-2.0 which is already allowed. --- src/tools/tidy/src/deps.rs | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index 66d035cd01156..dd885e1e9d88b 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -27,6 +27,7 @@ const LICENSES: &[&str] = &[ "Apache-2.0 OR ISC OR MIT", "Apache-2.0 OR MIT", "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", // wasi license + "Apache-2.0 WITH LLVM-exception", "Apache-2.0", "Apache-2.0/MIT", "BSD-2-Clause OR Apache-2.0 OR MIT", // zerocopy @@ -169,16 +170,13 @@ pub(crate) const WORKSPACES: &[WorkspaceInfo<'static>] = &[ #[rustfmt::skip] const EXCEPTIONS: ExceptionList = &[ // tidy-alphabetical-start - ("ar_archive_writer", "Apache-2.0 WITH LLVM-exception"), // rustc ("arrayref", "BSD-2-Clause"), // rustc ("blake3", "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception"), // rustc ("colored", "MPL-2.0"), // rustfmt ("constant_time_eq", "CC0-1.0 OR MIT-0 OR Apache-2.0"), // rustc ("foldhash", "Zlib"), // rustc ("option-ext", "MPL-2.0"), // cargo-miri (via `directories`) - ("rustc_apfloat", "Apache-2.0 WITH LLVM-exception"), // rustc (license is the same as LLVM uses) ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 // cargo/... (because of serde) - ("wasi-preview1-component-adapter-provider", "Apache-2.0 WITH LLVM-exception"), // rustc // tidy-alphabetical-end ]; @@ -218,7 +216,6 @@ const EXCEPTIONS_RUST_ANALYZER: ExceptionList = &[ ("foldhash", "Zlib"), ("notify", "CC0-1.0"), ("option-ext", "MPL-2.0"), - ("rustc_apfloat", "Apache-2.0 WITH LLVM-exception"), ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 // tidy-alphabetical-end ]; @@ -250,28 +247,8 @@ const EXCEPTIONS_RUSTBOOK: ExceptionList = &[ const EXCEPTIONS_CRANELIFT: ExceptionList = &[ // tidy-alphabetical-start - ("cranelift-assembler-x64", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-assembler-x64-meta", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-bforest", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-bitset", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-codegen", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-codegen-meta", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-codegen-shared", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-control", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-entity", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-frontend", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-isle", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-jit", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-module", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-native", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-object", "Apache-2.0 WITH LLVM-exception"), - ("cranelift-srcgen", "Apache-2.0 WITH LLVM-exception"), ("foldhash", "Zlib"), ("mach2", "BSD-2-Clause OR MIT OR Apache-2.0"), - ("regalloc2", "Apache-2.0 WITH LLVM-exception"), - ("target-lexicon", "Apache-2.0 WITH LLVM-exception"), - ("wasmtime-jit-icache-coherence", "Apache-2.0 WITH LLVM-exception"), - ("wasmtime-math", "Apache-2.0 WITH LLVM-exception"), // tidy-alphabetical-end ]; From 8510865d64a70038357732cd26533b969c1ac892 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 13:02:53 +0000 Subject: [PATCH 3/7] Add a couple of licenses that are can be used as MIT, Apache-2.0 or as both --- src/tools/tidy/src/deps.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index dd885e1e9d88b..622fa1d534f5d 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -31,10 +31,15 @@ const LICENSES: &[&str] = &[ "Apache-2.0", "Apache-2.0/MIT", "BSD-2-Clause OR Apache-2.0 OR MIT", // zerocopy + "BSD-2-Clause OR MIT OR Apache-2.0", + "BSD-3-Clause/MIT", + "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception", + "CC0-1.0 OR MIT-0 OR Apache-2.0", "ISC", "MIT / Apache-2.0", "MIT AND (MIT OR Apache-2.0)", "MIT AND Apache-2.0 WITH LLVM-exception AND (MIT OR Apache-2.0)", // compiler-builtins + "MIT OR Apache-2.0 OR BSD-1-Clause", "MIT OR Apache-2.0 OR LGPL-2.1-or-later", // r-efi, r-efi-alloc; LGPL is not acceptable, but we use it under MIT OR Apache-2.0 "MIT OR Apache-2.0 OR Zlib", // tinyvec_macros "MIT OR Apache-2.0", @@ -171,9 +176,7 @@ pub(crate) const WORKSPACES: &[WorkspaceInfo<'static>] = &[ const EXCEPTIONS: ExceptionList = &[ // tidy-alphabetical-start ("arrayref", "BSD-2-Clause"), // rustc - ("blake3", "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception"), // rustc ("colored", "MPL-2.0"), // rustfmt - ("constant_time_eq", "CC0-1.0 OR MIT-0 OR Apache-2.0"), // rustc ("foldhash", "Zlib"), // rustc ("option-ext", "MPL-2.0"), // cargo-miri (via `directories`) ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 // cargo/... (because of serde) @@ -195,11 +198,7 @@ const EXCEPTIONS_CARGO: ExceptionList = &[ // tidy-alphabetical-start ("arrayref", "BSD-2-Clause"), ("bitmaps", "MPL-2.0+"), - ("blake3", "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception"), - ("constant_time_eq", "CC0-1.0 OR MIT-0 OR Apache-2.0"), - ("dunce", "CC0-1.0 OR MIT-0 OR Apache-2.0"), ("encoding_rs", "(Apache-2.0 OR MIT) AND BSD-3-Clause"), - ("fiat-crypto", "MIT OR Apache-2.0 OR BSD-1-Clause"), ("foldhash", "Zlib"), ("im-rc", "MPL-2.0+"), ("libz-rs-sys", "Zlib"), @@ -224,8 +223,6 @@ const EXCEPTIONS_RUSTC_PERF: ExceptionList = &[ // tidy-alphabetical-start ("alloc-no-stdlib", "BSD-3-Clause"), ("alloc-stdlib", "BSD-3-Clause"), - ("brotli", "BSD-3-Clause/MIT"), - ("brotli-decompressor", "BSD-3-Clause/MIT"), ("encoding_rs", "(Apache-2.0 OR MIT) AND BSD-3-Clause"), ("inferno", "CDDL-1.0"), ("option-ext", "MPL-2.0"), @@ -248,7 +245,6 @@ const EXCEPTIONS_RUSTBOOK: ExceptionList = &[ const EXCEPTIONS_CRANELIFT: ExceptionList = &[ // tidy-alphabetical-start ("foldhash", "Zlib"), - ("mach2", "BSD-2-Clause OR MIT OR Apache-2.0"), // tidy-alphabetical-end ]; From e7b96944dfd0c57d7ff4fb032a0578a330e74a1a Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 13:08:09 +0000 Subject: [PATCH 4/7] Add a separate licenses list for licenses that are fine in tools only With this the only remaining license exceptions are for licenses that are to copyleft to varying degrees. --- src/tools/tidy/src/deps.rs | 51 ++++++++++++++------------------------ 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index 622fa1d534f5d..db7751ea086c5 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -54,6 +54,20 @@ const LICENSES: &[&str] = &[ // tidy-alphabetical-end ]; +/// These are licenses that are allowed for rustc, tools, etc. But not for the runtime! +#[rustfmt::skip] +const LICENSES_TOOLS: &[&str] = &[ + // tidy-alphabetical-start + "(Apache-2.0 OR MIT) AND BSD-3-Clause", + "Apache-2.0 AND ISC", + "Apache-2.0 OR BSL-1.0", // BSL is not acceptble, but we use it under Apache-2.0 + "BSD-2-Clause", + "BSD-3-Clause", + "CC0-1.0", + "Zlib", + // tidy-alphabetical-end +]; + type ExceptionList = &'static [(&'static str, &'static str)]; #[derive(Clone, Copy)] @@ -175,11 +189,8 @@ pub(crate) const WORKSPACES: &[WorkspaceInfo<'static>] = &[ #[rustfmt::skip] const EXCEPTIONS: ExceptionList = &[ // tidy-alphabetical-start - ("arrayref", "BSD-2-Clause"), // rustc ("colored", "MPL-2.0"), // rustfmt - ("foldhash", "Zlib"), // rustc ("option-ext", "MPL-2.0"), // cargo-miri (via `directories`) - ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 // cargo/... (because of serde) // tidy-alphabetical-end ]; @@ -196,39 +207,22 @@ const EXCEPTIONS_STDLIB: ExceptionList = &[ const EXCEPTIONS_CARGO: ExceptionList = &[ // tidy-alphabetical-start - ("arrayref", "BSD-2-Clause"), ("bitmaps", "MPL-2.0+"), - ("encoding_rs", "(Apache-2.0 OR MIT) AND BSD-3-Clause"), - ("foldhash", "Zlib"), ("im-rc", "MPL-2.0+"), - ("libz-rs-sys", "Zlib"), - ("ring", "Apache-2.0 AND ISC"), - ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 ("sized-chunks", "MPL-2.0+"), - ("subtle", "BSD-3-Clause"), - ("zlib-rs", "Zlib"), // tidy-alphabetical-end ]; const EXCEPTIONS_RUST_ANALYZER: ExceptionList = &[ // tidy-alphabetical-start - ("foldhash", "Zlib"), - ("notify", "CC0-1.0"), ("option-ext", "MPL-2.0"), - ("ryu", "Apache-2.0 OR BSL-1.0"), // BSL is not acceptble, but we use it under Apache-2.0 - // tidy-alphabetical-end + // tidy-alphabetical-end ]; const EXCEPTIONS_RUSTC_PERF: ExceptionList = &[ // tidy-alphabetical-start - ("alloc-no-stdlib", "BSD-3-Clause"), - ("alloc-stdlib", "BSD-3-Clause"), - ("encoding_rs", "(Apache-2.0 OR MIT) AND BSD-3-Clause"), ("inferno", "CDDL-1.0"), ("option-ext", "MPL-2.0"), - ("ryu", "Apache-2.0 OR BSL-1.0"), - ("snap", "BSD-3-Clause"), - ("subtle", "BSD-3-Clause"), // tidy-alphabetical-end ]; @@ -238,15 +232,10 @@ const EXCEPTIONS_RUSTBOOK: ExceptionList = &[ ("cssparser-macros", "MPL-2.0"), ("dtoa-short", "MPL-2.0"), ("mdbook", "MPL-2.0"), - ("ryu", "Apache-2.0 OR BSL-1.0"), // tidy-alphabetical-end ]; -const EXCEPTIONS_CRANELIFT: ExceptionList = &[ - // tidy-alphabetical-start - ("foldhash", "Zlib"), - // tidy-alphabetical-end -]; +const EXCEPTIONS_CRANELIFT: ExceptionList = &[]; const EXCEPTIONS_GCC: ExceptionList = &[ // tidy-alphabetical-start @@ -255,9 +244,7 @@ const EXCEPTIONS_GCC: ExceptionList = &[ // tidy-alphabetical-end ]; -const EXCEPTIONS_BOOTSTRAP: ExceptionList = &[ - ("ryu", "Apache-2.0 OR BSL-1.0"), // through serde. BSL is not acceptble, but we use it under Apache-2.0 -]; +const EXCEPTIONS_BOOTSTRAP: ExceptionList = &[]; const EXCEPTIONS_UEFI_QEMU_TEST: ExceptionList = &[]; @@ -824,7 +811,7 @@ fn check_license_exceptions( } } } - if LICENSES.contains(license) { + if LICENSES.contains(license) || LICENSES_TOOLS.contains(license) { check.error(format!( "dependency exception `{name}` is not necessary. `{license}` is an allowed license" )); @@ -852,7 +839,7 @@ fn check_license_exceptions( continue; } }; - if !LICENSES.contains(&license.as_str()) { + if !LICENSES.contains(&license.as_str()) && !LICENSES_TOOLS.contains(&license.as_str()) { check.error(format!( "invalid license `{}` for package `{}` in workspace `{workspace}`", license, pkg.id From 6ab00baad0c935ea111388644591de8cd7ddc76e Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 13:08:28 +0000 Subject: [PATCH 5/7] Minor change --- src/tools/tidy/src/deps.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index db7751ea086c5..b2404edd8d0ed 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -109,17 +109,15 @@ pub(crate) const WORKSPACES: &[WorkspaceInfo<'static>] = &[ )), submodules: &[], }, - { - WorkspaceInfo { - path: "compiler/rustc_codegen_cranelift", - exceptions: EXCEPTIONS_CRANELIFT, - crates_and_deps: Some(( - &["rustc_codegen_cranelift"], - PERMITTED_CRANELIFT_DEPENDENCIES, - PERMITTED_CRANELIFT_DEPS_LOCATION, - )), - submodules: &[], - } + WorkspaceInfo { + path: "compiler/rustc_codegen_cranelift", + exceptions: EXCEPTIONS_CRANELIFT, + crates_and_deps: Some(( + &["rustc_codegen_cranelift"], + PERMITTED_CRANELIFT_DEPENDENCIES, + PERMITTED_CRANELIFT_DEPS_LOCATION, + )), + submodules: &[], }, WorkspaceInfo { path: "compiler/rustc_codegen_gcc", From 2ed1f47f7c3466e88dac60f5bfa3eaca1cc0068f Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 17:46:18 +0200 Subject: [PATCH 6/7] Fix typo Co-authored-by: Josh Triplett --- src/tools/tidy/src/deps.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index b2404edd8d0ed..8555959774107 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -60,7 +60,7 @@ const LICENSES_TOOLS: &[&str] = &[ // tidy-alphabetical-start "(Apache-2.0 OR MIT) AND BSD-3-Clause", "Apache-2.0 AND ISC", - "Apache-2.0 OR BSL-1.0", // BSL is not acceptble, but we use it under Apache-2.0 + "Apache-2.0 OR BSL-1.0", // BSL is not acceptable, but we use it under Apache-2.0 "BSD-2-Clause", "BSD-3-Clause", "CC0-1.0", From dd70015f4692fc6eba5367ec399d9c50eb3f8268 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Sat, 18 Oct 2025 15:51:52 +0000 Subject: [PATCH 7/7] Deny all licenses that are not like MIT for the runtime libraries --- src/tools/tidy/src/deps.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/tools/tidy/src/deps.rs b/src/tools/tidy/src/deps.rs index 8555959774107..60ad88e7c4e14 100644 --- a/src/tools/tidy/src/deps.rs +++ b/src/tools/tidy/src/deps.rs @@ -19,21 +19,15 @@ mod proc_macro_deps; #[rustfmt::skip] const LICENSES: &[&str] = &[ // tidy-alphabetical-start - "(MIT OR Apache-2.0) AND Unicode-3.0", // unicode_ident (1.0.14) - "(MIT OR Apache-2.0) AND Unicode-DFS-2016", // unicode_ident (1.0.12) "0BSD OR MIT OR Apache-2.0", // adler2 license - "0BSD", "Apache-2.0 / MIT", "Apache-2.0 OR ISC OR MIT", "Apache-2.0 OR MIT", "Apache-2.0 WITH LLVM-exception OR Apache-2.0 OR MIT", // wasi license - "Apache-2.0 WITH LLVM-exception", - "Apache-2.0", "Apache-2.0/MIT", "BSD-2-Clause OR Apache-2.0 OR MIT", // zerocopy "BSD-2-Clause OR MIT OR Apache-2.0", "BSD-3-Clause/MIT", - "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception", "CC0-1.0 OR MIT-0 OR Apache-2.0", "ISC", "MIT / Apache-2.0", @@ -46,11 +40,8 @@ const LICENSES: &[&str] = &[ "MIT OR Zlib OR Apache-2.0", // miniz_oxide "MIT", "MIT/Apache-2.0", - "Unicode-3.0", // icu4x - "Unicode-DFS-2016", // tinystr "Unlicense OR MIT", "Unlicense/MIT", - "Zlib OR Apache-2.0 OR MIT", // tinyvec // tidy-alphabetical-end ]; @@ -59,11 +50,20 @@ const LICENSES: &[&str] = &[ const LICENSES_TOOLS: &[&str] = &[ // tidy-alphabetical-start "(Apache-2.0 OR MIT) AND BSD-3-Clause", + "(MIT OR Apache-2.0) AND Unicode-3.0", // unicode_ident (1.0.14) + "(MIT OR Apache-2.0) AND Unicode-DFS-2016", // unicode_ident (1.0.12) + "0BSD", "Apache-2.0 AND ISC", "Apache-2.0 OR BSL-1.0", // BSL is not acceptable, but we use it under Apache-2.0 + "Apache-2.0 WITH LLVM-exception", + "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", + "CC0-1.0 OR Apache-2.0 OR Apache-2.0 WITH LLVM-exception", "CC0-1.0", + "Unicode-3.0", // icu4x + "Unicode-DFS-2016", // tinystr + "Zlib OR Apache-2.0 OR MIT", // tinyvec "Zlib", // tidy-alphabetical-end ];