("ryu", "Apache-2.0 OR BSL-1.0"), // rls/cargo/... (because of serde)
("bytesize", "Apache-2.0"), // cargo
("im-rc", "MPL-2.0+"), // cargo
- ("constant_time_eq", "CC0-1.0"), // rustfmt
("sized-chunks", "MPL-2.0+"), // cargo via im-rc
("bitmaps", "MPL-2.0+"), // cargo via im-rc
("crossbeam-queue", "MIT/Apache-2.0 AND BSD-2-Clause"), // rls via rayon
- ("arrayref", "BSD-2-Clause"), // cargo-miri/directories/.../rust-argon2 (redox)
("instant", "BSD-3-Clause"), // rustc_driver/tracing-subscriber/parking_lot
("snap", "BSD-3-Clause"), // rustc
// FIXME: this dependency violates the documentation comment above:
const RUNTIME_CRATES: &[&str] = &["std", "core", "alloc", "test", "panic_abort", "panic_unwind"];
/// Crates whose dependencies must be explicitly permitted.
-const RESTRICTED_DEPENDENCY_CRATES: &[&str] = &["rustc_middle", "rustc_codegen_llvm"];
+const RESTRICTED_DEPENDENCY_CRATES: &[&str] = &["rustc_driver", "rustc_codegen_llvm"];
/// Crates rustc is allowed to depend on. Avoid adding to the list if possible.
///
"cc",
"cfg-if",
"chalk-derive",
+ "chalk-engine",
"chalk-ir",
+ "chalk-solve",
+ "chrono",
"cmake",
"compiler_builtins",
"cpuid-bool",
"expect-test",
"fake-simd",
"filetime",
+ "fixedbitset",
"flate2",
"fortanix-sgx-abi",
"fuchsia-zircon",
"indexmap",
"instant",
"itertools",
+ "itoa",
"jobserver",
"kernel32-sys",
"lazy_static",
"libz-sys",
"lock_api",
"log",
+ "matchers",
"maybe-uninit",
"md-5",
"measureme",
"memoffset",
"miniz_oxide",
"num_cpus",
+ "num-integer",
+ "num-traits",
"object",
"once_cell",
"opaque-debug",
"parking_lot_core",
"pathdiff",
"perf-event-open-sys",
+ "petgraph",
"pin-project-lite",
"pkg-config",
"polonius-engine",
"rand_xorshift",
"redox_syscall",
"regex",
+ "regex-automata",
"regex-syntax",
"remove_dir_all",
+ "rls-data",
+ "rls-span",
"rustc-demangle",
"rustc-hash",
"rustc-rayon",
"rustc-rayon-core",
"rustc_version",
+ "ryu",
"scoped-tls",
"scopeguard",
"semver",
"semver-parser",
"serde",
"serde_derive",
+ "serde_json",
"sha-1",
"sha2",
"smallvec",
+ "sharded-slab",
"snap",
"stable_deref_trait",
"stacker",
"termcolor",
"termize",
"thread_local",
+ "time",
+ "tinyvec",
"tracing",
"tracing-attributes",
"tracing-core",
+ "tracing-log",
+ "tracing-serde",
+ "tracing-subscriber",
+ "tracing-tree",
"typenum",
"unicode-normalization",
"unicode-script",
}
// Check that the license hasn't changed.
for pkg in metadata.packages.iter().filter(|p| p.name == *name) {
- if pkg.name == "fuchsia-cprng" {
- // This package doesn't declare a license expression. Manual
- // inspection of the license file is necessary, which appears
- // to be BSD-3-Clause.
- assert!(pkg.license.is_none());
- continue;
- }
match &pkg.license {
None => {
tidy_error!(
}
Some(pkg_license) => {
if pkg_license.as_str() != *license {
- if *name == "crossbeam-queue"
- && *license == "MIT/Apache-2.0 AND BSD-2-Clause"
- {
- // We have two versions of crossbeam-queue and both
- // are fine.
- continue;
- }
-
println!("dependency exception `{}` license has changed", name);
println!(" previously `{}` now `{}`", license, pkg_license);
println!(" update EXCEPTIONS for the new license");
.iter()
.find(|n| &n.id == pkg_id)
.unwrap_or_else(|| panic!("could not find `{}` in resolve", pkg_id));
- // Don't care about dev-dependencies.
- // Build dependencies *shouldn't* matter unless they do some kind of
- // codegen. For now we'll assume they don't.
- let deps = node.deps.iter().filter(|node_dep| {
- node_dep
- .dep_kinds
- .iter()
- .any(|kind_info| kind_info.kind == cargo_metadata::DependencyKind::Normal)
- });
- for dep in deps {
+ for dep in &node.deps {
normal_deps_of_r(resolve, &dep.pkg, result);
}
}