blob: 61385b38d519e619ebc164c109e15e8a5736c7b5 [file] [log] [blame]
# Copyright 2018 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# -------------- READ BEFORE EDITING ---------------
# This file describes the third-party packages used by Rust code and
# how they should be built.
#
# Every edit to this file should be followed by:
# - fx update-rustc-third-party
#
# Always request non-default features you use. This can sometimes get
# missed if another third-party crate in our build requests the same
# feature you use: your builds will usually work, but `fx rustdoc` will
# fail.
#
# More information is available in
# https://fuchsia.dev/fuchsia-src/development/languages/rust/external_crates .
[package]
name = "fuchsia-third-party"
version = "0.1.0"
[dependencies]
# Keep this sorted alphabetically, please.
aead = { version = "0.4.2", features = ["std"] }
aes = "0.8.4"
aes-gcm = "0.10.1"
aes-gcm-siv = { version = "0.11.1", features = ["std"] }
ahash = { version = "0.8.6", default-features = false, features = [ "runtime-rng" ] }
ansi_term = "0.12.0"
anyhow = "1.0.75"
arbitrary = { version = "1.0.3", features = ["derive"] }
argh = "0.1.12"
arrayref = "0.3.5"
arrayvec = "0.7.1"
ash = { version = "0.37.0", features = ["linked"], default-features = false }
assert_matches = "1.5.0"
async-channel = "1.8.0"
async-lock = "2.3"
async-stream = "0.3.5"
async-trait = "0.1.71"
atty = "0.2.11"
base64 = "0.21.7"
bincode = "1.3"
bitfield = "0.14.0"
bitflags = { version = "2.4.1", features = ["serde"] }
bit-set = "0.5.0"
bit-vec = { version = "0.6.3", features = [ "serde" ] }
blocking = "1.0.2"
bstr = { version = "1.5.0", default-features = false, features = [ "std" ] }
bumpalo = { version = "3.2.1", features = [ "collections" ] }
byteorder = { version = "1.4.3", features = ["i128"] }
bytes = "1.0.1"
camino = { version = "1.1.1", features = ["proptest1", "serde1"] }
# NB: morally we'd like to default-features = false here, but we have
# transitive dependencies on this crate that *do* enable default features.
# Cargo does something called "feature unification"
# (https://doc.rust-lang.org/cargo/reference/features.html#feature-unification)
# which causes a particular crate to be compiled with the superset of all
# features requested of it by any of its dependents. In this case, that means
# we get chrono with its default dependencies regardless of what we write here
# so long as any of our dependencies themselves depend on chrono with its
# default dependencies. In particular, an old version of the time crate is an
# optional dependency of chrono that is enabled by default; we don't want to
# write default-features = false here lest we prevent some unrelated crate
# upgrade by causing it to unexpectedly remove features we ourselves rely on.
#
# The sanity of this behavior is debated in
# https://github.com/rust-lang/cargo/issues/4463. Until there's an escape
# hatch, all we can do is document and shed a silent tear while we wait for the
# ecosystem to migrate away from time 0.1.
chrono = "0.4.11"
chrono-english = "0.1.7"
clap = "2.34"
crc = "1.8.1"
criterion = { version = "0.2", default-features = false }
crossbeam = "0.8.0"
crossbeam-utils = "0.8.14"
crypto-mac = { version = "0.11.1", features = ["std"] }
cfg-if = "1.0.0"
chacha20 = "0.9.0"
csv = "1.2.1"
darling = "0.12.0"
data-encoding = "2.1.2"
derivative = { version = "2.2.0", features = ["use_core"] }
derive_builder = "0.11.1"
derp = "0.0.14"
difference = "2.0.0"
digest = "0.10.7"
downcast-rs = "1.2.0"
dyn-clone = "1.0.5"
ecdsa = { version = "0.14.3", features = ["pkcs8"] }
elliptic-curve = { version = "0.12.3", features = [ "ecdh" ] }
either = "1.5.0"
eui48 = { version = "1.1.0", default-features = false, features = ["serde", "disp_hexstring"] }
event-listener = "2.5.1"
# TODO(https://fxbug.dev/112722): We're importing this explicitly for now, but eventually
# it will be imported by valico and the dt-schema tool.
# Remove this line when valico uses fancy-regex.
fancy-regex = "0.8"
fatfs = "0.3.6"
flate2 = { version = "1.0.14", default-features = false, features = ["rust_backend"] }
fragile = "=1.0.0"
futures = "=0.3.19"
futures-executor = "=0.3.19"
futures-io = "=0.3.19"
futures-lite = "1.11.3"
futures-test = "=0.3.19"
futures-util = "=0.3.19"
getrandom = { version = "0.2.10" }
glob = "0.3.0"
gpt = "3.0.0"
half = "1.6.0"
handlebars = "4.3.5"
heck = "0.3.1"
hex = "0.3.2"
hmac = "0.12.1"
hkdf = "0.12.3"
hound = "3.5.0"
humansize = "1.1.1"
http = "0.2.4"
# TODO(https://fxbug.dev/100964): We intentionally did not enable http2, since we're
# currently not using it on Fuchsia. Please see this ticket if you want to
# enable it.
hyper = { version = "0.14.19", default-features = false, features = ["stream", "http1", "client", "server"] }
indexmap = "1.9.2"
iota = "0.2.2"
itertools = "0.10"
itoa = "0.4"
json5format = "0.2.6"
lazy_static = "1.4"
libc = { version = "0.2.149", features = ["extra_traits"] }
libm = "0.2.1"
linked-hash-map = "0.5.3"
lock_api = "0.4.11"
log = { version = "0.4.20", features = ["std"] }
lru-cache = "0.1.2"
maplit = "1.0"
macro_rules_attribute = "0.1.3"
maybe-owned = "0.3.2"
md-5 = "0.10.5"
memchr = "2.7.1"
memoffset = "0.7.1"
miniz_oxide = "0.3.6"
mockall = "0.9"
netlink-packet-core = "0.7.0"
netlink-packet-route = "0.20.0"
netlink-packet-sock-diag = "0.4.2"
netlink-packet-utils = "0.5.2"
netlink-packet-generic = "0.3.3"
nix = "0.26.2"
nom = { version = "5.0.0", default-features = false, features = ["std", "regexp_macros"] }
nom_locate = "2.0.0"
num = { version = "0.4.0", features = ["rand"] }
num-derive = "0.3"
num-traits = "0.2"
omaha_client = "0.1"
once_cell = "1.17.0"
p256 = { version = "0.11.1", features = ["pem", "serde"] }
pkcs8 = "0.9.0"
paste = "1.0"
pathdiff = { version = "0.2.1", features = ["camino"] }
pem = "0.8.3"
percent-encoding = "2.1"
pest = "2.7.8"
pest_derive = "2.7.8"
pin-project = "1.0.11"
pin-project-lite = "0.2.13"
png = "0.14" # saved for future use
pretty_assertions = "1.2.1"
prettytable-rs = "0.8.0"
proptest = "1.0.0"
proptest-derive = "0.3.0"
prost = "0.11.0"
prost-build = "0.11.1"
prost-types = "0.11.1"
rand = { version = "0.8", features = ["small_rng"] }
rand_xorshift = "0.3"
rayon = "1.2.1"
ref-cast = "1.0.9"
regex = "1.7.3"
regex-syntax = "0.6.5"
ring = "0.16.20"
rustc-hash = "1.0.1"
rustls = { version = "0.19.1", features = ["dangerous_configuration"] }
rustyline = "2.1.0"
schemars = { version = "0.8", features = ["chrono", "preserve_order"] }
scopeguard = "1.1.0"
scrypt = "0.10.0"
serde = { version = "1.0.147", features = ["derive"] }
serde_cbor = "0.11.1"
serde_derive = "1.0.147"
serde_json = "1.0.87"
serde_json5 = "0.1.0"
serde_repr = "0.1.7"
sha1 = "0.10.5"
sha2 = "0.10.2"
signature = "1.4.0"
siphasher = "0.3.10"
slab = "0.4.7"
smallvec = {version= "1.8", features = ["const_generics", "const_new", "union"]}
socket2 = { version = "0.5.5", features = ["all"] }
splines = "2.2.0"
static_assertions = "1.1.0"
strsim = "0.10.0"
structopt = "0.2.14"
tempfile = "3.2"
termtree = "0.4.1"
tuf = { version = "0.3.0-beta11", default-features = false, features = ["hyper"] }
termion = "1.5.3"
test-case = "3.2.1"
textwrap = "0.11.0"
thiserror = "1.0.57"
tokio-rustls = "0.22.0"
toml = "0.5"
toml_edit = "0.2.1"
tracing = { version = "0.1.40", default-features = false, features = ["std", "attributes"] }
tracing-core = "0.1.32"
tracing-log = "0.1.3"
tracing-mutex = { version = "0.3.0", features = ["lockapi", "parkinglot"] }
typed-builder = "0.10.0"
unicase = "2.7.0"
untrusted = "0.7.1"
url = "2.3"
uuid = { version = "1.1.2", features = ["serde", "v4"] } # move ?
valico = "2.4.2"
vte = "0.3"
webpki = "0.21"
xml-rs = "0.8"
unic-char-range = "0.9"
unic-ucd-block = "0.9"
unicode-segmentation = "1.10"
unicode-width = "0.1.3"
unicode-xid = "0.2.0"
utf8parse = "0.1"
vm-device = "0.1.0"
walkdir = "2.2.7"
which = "4.0.2"
zerocopy = { version = "0.8.0-alpha.5", features = ["derive", "simd"] }
zstd = "0.11.2"
[dependencies.tracing-subscriber]
version = "0.3.15"
default-features = false
features = ["env-filter", "fmt", "registry", "std", "tracing-log"]
# Target-side only dependencies
[target.'cfg(target_os = "fuchsia")'.dependencies]
# do not add back without verifying certificate transparency is ready to use - see https://fxbug.dev/25100
# ct-logs = "0.6"
euclid = { version = "0.22.1", features = [ "serde" ] }
getopts = "0.2"
hyper-rustls = { version = "0.22.1", default-features = false }
lipsum = "0.6.0"
openat = "0.1.17"
pretty = "0.5.2"
rust_icu_common = { version = "5.0.0", default-features = false, features = ["renaming"] }
rust_icu_sys = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_ucal = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uchar = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_udat = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_udata = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uenum = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
rust_icu_uloc = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_unorm2 = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env", "icu_version_67_plus"] }
rust_icu_ustring = { version = "5.0.0", default-features = false, features = ["renaming", "icu_version_in_env"] }
tokio = { version = "=1.25.2", default-features = false }
trust-dns-proto = { version = "0.22.0", default-features = false, features = ["testing"] }
trust-dns-resolver = { version = "0.22.0", default-features = false, features = ["testing"] }
ttf-parser = "0.10.1"
unicode-normalization = "0.1"
vk-sys = "0.7.0"
# Host-side only dependencies
[target.'cfg(not(target_os = "fuchsia"))'.dependencies]
async-executor = "1.5.0"
async-fs = "1.6.0"
async-io = "1.12.0"
async-net = "1.7.0"
cargo_metadata = "0.14.1"
crossterm = "0.19"
easy-parallel = "3.1"
fs_extra = "1.2.0"
fuse3 = { version = "0.6.1", features = ["tokio-runtime", "unprivileged"] }
home = "0.5.3"
hyper-rustls = { version = "0.22.1", default-features = false, features = ["rustls-native-certs"] }
indoc = "1.0.3"
loom = "0.7.1"
# TODO(https://fxbug.dev/106164) Remove this explicit mio dependency when it can be
# pulled in automatically by tokio
mio = { version = "0.8.9", features = ["net", "os-ext", "os-poll"] }
notify = { version = "5.1.0", default-features = false, features = ["macos_fsevent"] }
# See b/42169853, not used for target-side code to avoid system-wide impact of yield in spinloops.
parking_lot = "0.9"
petgraph = { version = "0.6.2" }
proc-macro2 = { version = "1.0.79", features = ["span-locations"] }
pulldown-cmark = "0.6.0"
quote = "1.0.35"
rustfix = "0.6.1"
rustls-native-certs = "0.5.0"
serde_yaml = "0.9.14" # To use on Fuchsia, serde_yaml and unsafe-libyaml will need to be re-audited.
serial_test = "0.5.1" # Not for use on Fuchsia, only for a single process.
shared_child = "1.0.0"
signal-hook = "0.3.17"
simplelog = "0.10.2"
strum = "0.25.0"
strum_macros = "0.25.3"
syn = { version = "2.0.52", features = ["full", "visit", "visit-mut", "extra-traits"] }
synstructure = "0.12.1"
tar = "0.4.25"
term_grid = "0.2.0"
termios = "0.3.2"
tinyjson = "2.5.0"
# TODO(https://fxbug.dev/106164) Enable the "rt" and "net" features here once gnaw
# supports target-specific feature resolution
tokio = { version = "=1.25.2", default-features = false }
tokio-stream = "0.1.14"
zip = { version = "0.5.5", default-features = false, features = ["deflate"] }
# For crates we don't want to vendor, follow instructions at
# //docs/development/languages/rust/external_crates.md.
[patch.crates-io]
# Keep each section sorted alphabetically, please.
### In-tree Crates: crates which are on crates.io but which we build from our in-tree copy
fuchsia-cprng = { path = "intree/fuchsia-cprng" }
### Ask to Patch: crates which require a policy exception to contribute to.
aho-corasick = { path = "ask2patch/aho-corasick" }
byteorder = { path = "ask2patch/byteorder" }
csv = { path = "ask2patch/csv" }
csv-core = { path = "ask2patch/csv-core" }
memchr = { path = "ask2patch/memchr" }
regex-automata = { path = "ask2patch/regex-automata" }
same-file = { path = "ask2patch/same-file" }
termcolor = { path = "ask2patch/termcolor" }
walkdir = { path = "ask2patch/walkdir" }
### Empty Forks: empty forks kept only for satisfying cargo's resolution
cc = { path = "empty/cc" }
crossterm_winapi = { path = "empty/crossterm_winapi" }
ctor = { path = "empty/ctor" }
miow = { path = "empty/miow" }
ntapi = { path = "empty/ntapi" }
output_vt100 = { path = "empty/output_vt100" }
redox_syscall = { path = "empty/redox_syscall" }
rustversion = { path = "empty/rustversion" }
wasi-0_10_1 = { path = "empty/wasi-0.10.1", package = "wasi" }
wasi-0_10_0_preview1 = { path = "empty/wasi-0.10.0+wasi-snapshot-preview1", package = "wasi" }
wasi-0_11_0_preview1 = { path = "empty/wasi-0.11.0+wasi-snapshot-preview1", package = "wasi" }
web-sys = { path = "empty/web-sys" }
wepoll-ffi = { path = "empty/wepoll-ffi" }
winapi = { path = "empty/winapi" }
winapi-util = { path = "empty/winapi-util" }
windows = { path = "empty/windows" }
windows-sys-0_42_0 = { package = "windows-sys", path = "empty/windows-sys-0.42.0" }
windows-sys-0_45_0 = { package = "windows-sys", path = "empty/windows-sys-0.45.0" }
windows-sys-0_48_0 = { package = "windows-sys", path = "empty/windows-sys-0.48.0" }
windows-targets = { path = "empty/windows-targets" }
### Forks: vendored crates whose code doesn't match the upstream version
async-io = { path = "forks/async-io" }
fatfs = { path = "forks/fatfs" }
fuse3 = { path = "forks/fuse3" }
hound = { path = "forks/hound" }
libm = { path = "forks/libm" }
# FIXME(121001): Revert once pull request is accepted and rolled into a crates.io release.
nix = { path = "forks/nix" }
notify = { path = "forks/notify" }
# FIXME(118248): We can unfork once undefined behavior is resolved.
prettytable-rs = { path = "forks/prettytable-rs" }
pulldown-cmark = { path = "forks/pulldown-cmark" }
# FIXME(87798): We can unfork to 0.19.1 once we've updated hyper to 0.14.x, and
# tokio to 1.x.
rustls = { path = "forks/rustls" }
rustyline = { path = "forks/rustyline" }
netlink-packet-route = { path="forks/netlink-packet-route-0.20.0" }
netlink-packet-utils = { path="forks/netlink-packet-utils-0.5.2" }
netlink-packet-core = {path = "forks/netlink-packet-core-0.7.0"}
netlink-packet-sock-diag = {path = "forks/netlink-packet-sock-diag-0.4.2"}
netlink-packet-generic = {path = "forks/netlink-packet-generic-0.3.3"}
security-framework = { path = "forks/security-framework" }
tracing-core = { path = "forks/tracing-core" }
zeroize = { path = "forks/zeroize" }
zstd-sys = { path = "forks/zstd-sys" }
### Mirrors: forked crates managed as separate git repos
serde_json5 = { path = "mirrors/serde_json5" } # TODO(https://fxbug.dev/75491) remove
#################################################################################
### Cargo GNaw Configs ###
### ###
### See GNaw's documentation in //tools/cargo-gnaw/README.md for more details ###
### and examples. ###
#################################################################################
# IMPORTANT: The expression ${gn_source_root} must be used to reference
# a path to the root source directory relative to the current directory
# (which would be the Ninja build directory in the case of Fuchsia).
#
# Apart from that, it is ok to use relative paths with any number of ../ in them
# as long as these are relative to source locations instead.
#
# Global GN configs that will be added or removed from all generated targets
[gn.config]
remove_cfgs = [
# Fuchsia forces targets to comply with 2018 idioms. third_party can ignore this
"//build/config/rust:2018_idioms",
]
add_cfgs = []
require_licenses = true
#################################################################################
# Per-package config
#################################################################################
# The below config data is for the targets being used by cargo-gnaw. This
# provides custom input that is usually provided by build.rs scripts. If the
# build.rs script is simple enough,
# cargo-gnaw will suggest what to put in here. if not, usually reading the
# build.rs script is sufficient.
#
# Some dependencies have build scripts but do not actually requiring setting any
# config here. cargo-gnaw still requires an empty config section to acknowledge
# the presence of the build script.
#
# Some dependencies do not have build scripts but make use of environment
# variables normally populated by cargo, those can be configured here as well.
#
# Keep this sorted alphabetically, please.
[gn]
# Crates which only have a subset of features audited and approved for use. See individual package
# configs for approved features.
require_feature_reviews = [
"bitflags",
"bstr",
]
[gn.package.aes."0.8.4"]
rustflags = [ "--cfg=aes_armv8" ]
[gn.package.ahash."0.8.6".platform."cfg(any(target_arch = \"x86_64\", target_arch = \"aarch64\", target_arch = \"mips64\", target_arch = \"powerpc64\", target_arch = \"riscv64gc\", target_arch = \"s390x\"))"]
rustflags = [ "--cfg=feature=\\\"folded_multiply\\\"" ]
[gn.package.anyhow."1.0.75"]
# TODO(https://github.com/rust-lang/rust/pull/99301): uncomment when generic member access is stable
#rustflags = ["--cfg=backtrace"]
[gn.package.ash."0.37.0+1.3.209"]
rustflags = []
[gn.package.async-fs."1.6.0"]
rustflags = []
[gn.package.async-io."1.12.0"]
rustflags = []
[gn.package.async-net."1.7.0"]
rustflags = []
[gn.package.async-trait."0.1.71"]
rustflags = []
[gn.package.base64."0.13.0"]
#visibility = [":*", "//third_party/alacritty/alacritty_terminal:*" ]
# FIXME: temporarily allow anyone to depend on 0.13.0 to enable a soft migration.
visibility = [":*", "//*"]
[gn.package.bitflags."1.3.2"]
visibility = [":*", "//third_party/alacritty/alacritty_terminal:*" ]
reviewed_features = ["default"]
[gn.package.bitflags."2.4.1"]
reviewed_features = ["serde"]
# The unicode feature is excluded so we don't need to spend time auditing it.
[gn.package.bstr."1.5.0"]
reviewed_features = [ "std", "alloc" ]
[gn.package.camino."1.1.1"]
rustflags = [
"--cfg=path_buf_capacity",
"--cfg=shrink_to",
"--cfg=try_reserve_2",
]
[gn.package.core-foundation-sys."0.8.3".platform."cfg(target_os = \"macos\")"]
rustflags = ["-lframework=CoreFoundation"]
[gn.package.crc."1.8.1"]
env_vars = ["OUT_DIR=../../../compat/crc"]
[gn.package.crc32fast."1.2.0"]
rustflags = ["--cfg=crc32fast_stdarchx86"]
[gn.package.crossbeam-epoch."0.8.2"]
# Has build script but no config needed.
[gn.package.crossbeam-utils."0.7.2"]
# Has build script but no config needed.
[gn.package.crossbeam-utils."0.8.14"]
rustflags = []
[gn.package.fancy-regex."0.8.0"]
# TODO(https://fxbug.dev/112722): We're importing this explicitly for now, but eventually
# it will be imported by valico and the dt-schema tool.
# Remove this line when valico uses fancy-regex.
visibility = [":*"]
[gn.package.fuchsia-cprng."0.1.1"]
# Lives in-tree
uses_fuchsia_license = true
[gn.package.futures-channel."0.3.19"]
env_vars = [ "CARGO_PKG_NAME=futures-channel" ]
[gn.package.futures-core."0.3.19"]
env_vars = [ "CARGO_PKG_NAME=futures-core" ]
[gn.package.futures-macro."0.3.19"]
env_vars = [ "CARGO_PKG_NAME=futures-macro" ]
rustflags = [ "--cfg=fn_like_proc_macro" ]
[gn.package.futures-task."0.3.19"]
env_vars = [ "CARGO_PKG_NAME=futures-task" ]
[gn.package.futures-util."0.3.19"]
env_vars = [ "CARGO_PKG_NAME=futures-util" ]
rustflags = [ "--cfg=fn_like_proc_macro" ]
# generator has not gone through a thorough safety review yet, and needs to be
# re-reviewed before it can be used outside of tests.
[gn.package.generator."0.7.5"]
visibility = [ ":loom-v0_7_1" ]
testonly = true
deps = [
"//build/validate:non_production_tag",
]
# generator's asm deps are only supported on x64 and arm64 so far, and we need
# to not include the asm target when there's no suitable implementation to be
# selected.
[gn.package.generator."0.7.5".platform."cfg(not(target_os = \"fuchsia\"))"]
deps = [
"//third_party/rust_crates/compat/generator:asm",
]
[gn.package.generic-array."0.14.5"]
rustflags = [ "--cfg=relaxed_coherence" ]
[gn.package.getrandom."0.2.10"]
env_vars = [ "CARGO_PKG_NAME=getrandom", "CARGO_PKG_VERSION=0.2.10", "CARGO_MANIFEST_DIR=${gn_source_root}/third_party/rust_crates/vendor/getrandom-0.2.10" ]
rustflags = []
[gn.package.handlebars."4.3.5"]
# pest relies on this being set to find the grammar file
env_vars = [ "CARGO_MANIFEST_DIR=${gn_source_root}/third_party/rust_crates/vendor/handlebars-4.3.5" ]
[gn.package.httparse."1.7.1"]
rustflags = ["--cfg=httparse_simd"]
[gn.package.indexmap."1.9.2"]
rustflags = ["--cfg=has_std"]
[gn.package.libc."0.2.149"]
rustflags = [
"--cfg=libc_priv_mod_use",
"--cfg=libc_union",
"--cfg=libc_const_size_of",
"--cfg=libc_align",
"--cfg=libc_core_cvoid",
"--cfg=libc_packedN",
"--cfg=libc_cfg_target_vendor",
"--cfg=libc_int128",
"--cfg=libc_non_exhaustive",
"--cfg=libc_long_array",
"--cfg=libc_ptr_addr_of",
"--cfg=libc_underscore_const_names",
"--cfg=libc_const_extern_fn",
]
[gn.package.libc."0.2.149".platform."cfg(target_os = \"freebsd\")"]
rustflags = ["--cfg=freebsd11"]
[gn.package.libm."0.2.1"]
# It is a fork:
uses_fuchsia_license = true
[gn.package.lock_api."0.4.11"]
rustflags = ["--cfg=has_const_fn_trait_bound"]
[gn.package.log."0.4.20"]
group_visibility = { import = "//src/lib/diagnostics/log/log_visibility.gni", variable = "third_party_rust_crate_log_visibility" }
# Loom has not gone through a thorough safety review yet, and needs to be
# re-reviewed before it can be used outside of tests.
[gn.package.loom."0.7.1"]
deps = [ "//build/validate:non_production_tag" ]
testonly = true
[gn.package.maybe-uninit."2.0.0"]
rustflags = ["--cfg=derive_copy", "--cfg=repr_transparent", "--cfg=native_uninit"]
[gn.package.md-5."0.10.5"]
group_visibility = { import = "//third_party/rust_crates/visibility.gni", variable = "md5_visibility" }
[gn.package.memoffset."0.5.3"]
# Has build script but no config needed.
[gn.package.memoffset."0.6.3"]
rustflags = ["--cfg=tuple_ty", "--cfg=allow_clippy", "--cfg=maybe_uninit", "--cfg=doctests", "--cfg=raw_ref_macros"]
[gn.package.memoffset."0.7.1"]
rustflags = ["--cfg=tuple_ty", "--cfg=allow_clippy", "--cfg=maybe_uninit", "--cfg=doctests", "--cfg=raw_ref_macros"]
[gn.package.mockall."0.9.0"]
deps = ["//build/validate:non_production_tag"]
[gn.package.nix."0.26.2"]
group_visibility = { import = "//src/lib/fuchsia_nix/nix_visibility.gni", variable = "nix_visibility" }
visibility = [":*", "//third_party/rust_crates/compat/rustyline:*"]
[gn.package.nom."5.0.0"]
# Has build script but no config needed.
[gn.package.num-bigint."0.4.3"]
rustflags = [
"--cfg=u64_digit",
"--cfg=has_try_from",
]
env_vars = ["OUT_DIR=../../../../compat/num-bigint"]
[gn.package.num-bigint."0.4.3".platform."cfg(target_arch = \"x86_64\")"]
rustflags = ["--cfg=use_addcarry"]
[gn.package.num-complex."0.4.0"]
rustflags = ["--cfg=has_i128", "--cfg=has_const_fn"]
[gn.package.num-integer."0.1.44"]
rustflags = ["--cfg=has_i128"]
[gn.package.num-iter."0.1.42"]
rustflags = ["--cfg=has_i128"]
[gn.package.num-rational."0.4.0"]
rustflags = ["--cfg=has_int_exp_fmt"]
[gn.package.num-traits."0.2.14"]
rustflags = ["--cfg=has_i128"]
[gn.package.parking_lot."0.9.0"]
# Funnel usage of parking_lot through fuchsia_sync.
visibility = ["//src/lib/fuchsia-sync", "//third_party/rust_crates:*"]
[gn.package.parking_lot_core."0.6.2"]
# Has build script but no config needed.
[gn.package.parking_lot_core."0.9.9"]
rustflags = []
[gn.package.polling."2.4.0"]
rustflags = []
# "--cfg=use_fallback" is required in order to avoid using the unstable
# proc_macro_diagnostic feature.
[gn.package.proc-macro-error."1.0.4"]
rustflags = ["--cfg=use_fallback"]
# "--cfg=use_fallback" is required in order to avoid using the unstable
# proc_macro_diagnostic feature.
[gn.package.proc-macro-error-attr."1.0.4"]
rustflags = ["--cfg=use_fallback"]
[gn.package.proc-macro2."0.4.27"]
rustflags = ["--cfg=u128", "--cfg=use_proc_macro", "--cfg=wrap_proc_macro"]
# cargo-gnaw suggested "--cfg=proc_macro_span" as well but proc_macro_span is still an unstable feature.
[gn.package.proc-macro2."1.0.79"]
rustflags = ["--cfg=span_locations", "--cfg=wrap_proc_macro"]
[gn.package.pulldown-cmark."0.6.0"]
# Has build script but no config needed.
# The `build.rs` file in this version of quote checks for rustc versions less
# than 53; for later rustc versions (including the one that we vendor with
# Fuchsia), the logic in `build.rs` is a no-op.
[gn.package.quote."1.0.35"]
rustflags = []
[gn.package.rand."0.6.5"]
rustflags = ["--cfg=rustc_1_25","--cfg=rustc_1_26", "--cfg=rustc_1_27",]
[gn.package.rand_chacha."0.1.1"]
rustflags = ["--cfg=rustc_1_26"]
[gn.package.rand_pcg."0.1.1"]
rustflags = ["--cfg=rust_1_26"]
[gn.package.rayon-core."1.7.0"]
# Has build script but no config needed.
[gn.package.ref-cast."1.0.9"]
rustflags = []
[gn.package.ring."0.16.20"]
# See https://fxbug.dev/104855 if you want to change this: Please talk to Security team.
# Thank you!
visibility = [
":ring",
":rustls-v0_19_1",
":sct-v0_6_0",
":trust-dns-proto-v0_21_2",
":tuf-v0_3_0-beta11",
":webpki-v0_21_0",
]
deps = [ "//third_party/rust_crates/compat/ring:ring-core" ]
# Please keep the rust_icu_* crates together in this list.
# Refer to //build/icu/README.md for the details of the approach.
[gn.package.rust_icu_common."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_sys."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_ucal."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_uchar."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_udat."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_udata."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_uenum."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_uloc."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_unorm2."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.rust_icu_ustring."5.0.0"]
configs = [ "//src/lib/icu:version" ]
target_renaming = { import = "//build/icu/icu_rust_crates.gni", group_name = "icu_group", rule_name = "icu_rust_library" }
[gn.package.ryu."1.0.3"]
rustflags = ["--cfg=integer128", "--cfg=must_use_return", "--cfg=maybe_uninit"]
[gn.package.schemars."0.8.10"]
rustflags = ["--cfg=std_atomic64", "--cfg=std_atomic"]
# scoped-tls has not gone through a thorough safety review yet, and needs to be
# re-reviewed before it can be used outside of tests.
[gn.package.scoped-tls."1.0.1"]
deps = [ "//build/validate:non_production_tag" ]
visibility = [ ":loom-v0_7_1" ]
testonly = true
# We always want to optimize scrypt for speed, because a single key derivation
# that takes 150 msec when speed-optimized takes 20 seconds (!) when not
# optimized, and that's a terrible experience for checking passwords.
[gn.package.scrypt."0.10.0"]
configs = [ "//build/config:optimize_speed" ]
[gn.package.semver."1.0.4"]
rustflags = []
[gn.package.serde."1.0.147"]
rustflags = []
[gn.package.serde_derive."1.0.147"]
rustflags = []
[gn.package.serde_json."1.0.87"]
rustflags = ["--cfg=limb_width_64"]
[gn.package.sha1."0.10.5"]
group_visibility = { import = "//third_party/rust_crates/visibility.gni", variable = "sha1_visibility" }
[gn.package.signal-hook."0.3.17"]
rustflags = []
[gn.package.slab."0.4.7"]
rustflags = []
[gn.package.syn."1.0.98"]
# Has build script but no config needed.
# FIXME(https://fxbug.dev/332277415): temporarily allow legacy targets to
# depend on 1.0.98 to enable a soft migration. New projects should be using syn
# 2.x.
visibility = [
":*",
"//src/connectivity/bluetooth/testing/test-harness-macro:*",
"//src/connectivity/lib/ip-test-macro:*",
"//src/connectivity/lib/ip-test-macro/test:*",
"//src/connectivity/lib/net-declare:*",
"//src/connectivity/lib/net-types:*",
"//src/connectivity/lowpan/lib/spinel_pack/spinel_pack_macros:*",
"//src/connectivity/network/lib/todo_unused:*",
"//src/connectivity/network/netstack3/core/macros:*",
"//src/connectivity/network/tests/integration/macros:*",
"//src/connectivity/network/tests/integration/multicast-forwarding/macros:*",
"//src/connectivity/wlan/lib/bitfield:*",
"//src/connectivity/wlan/lib/frame_writer/macro:*",
"//src/connectivity/wlan/lib/statemachine/macro:*",
"//src/developer/ffx/config/macro/proc_macro:*",
"//src/developer/ffx/core/macro:*",
"//src/developer/ffx/lib/fho/macro:*",
"//src/developer/ffx/lib/protocols/macros:*",
"//src/developer/ffx/lib/validation/proc_macro:*",
"//src/developer/ffx/plugins/fuzz/shell_args:*",
"//src/lib/assembly/file_relative_path:*",
"//src/lib/diagnostics/inspect/derive/macro:*",
"//src/lib/fidl_table_validation/fidl_table_validation_derive:*",
"//src/lib/from-enum:*",
"//src/lib/fuchsia-async-macro:*",
"//src/lib/fuchsia/macro:*",
"//src/lib/fuzzing/rust:*",
"//src/lib/include_bytes_from_working_dir:*",
"//src/lib/include_str_from_working_dir:*",
"//src/lib/testing/fixture:*",
"//src/starnix/lib/filter_methods_macro:*",
"//src/storage/fxfs:*",
"//src/storage/fxfs/trace/macros:*",
"//src/storage/lib/vfs/rust/macros:*",
"//src/storage/type-fprint:*",
"//src/sys/lib/cm_rust:*",
"//src/sys/time/lib/inspect-writable/macro:*",
"//tools/lib/config_client:*",
"//tools/lib/reference_doc/macro:*",
]
[gn.package.thiserror."1.0.57"]
# Has build script but no config needed.
# Not actually used in the gn build at all, just for the rules_rust bazel rules.
[gn.package.tinyjson."2.5.0"]
group_visibility = { import = "//third_party/rust_crates/private_visibility.gni", variable = "private_visibility" }
# TODO(https://fxbug.dev/106164) This manual configuration enables the "rt", "net"
# "fs" and "sync" features on non-Fuchsia targets. It should be removed
# once gnaw supports target-specific features.
[gn.package.tokio."1.25.2".platform."cfg(not(target_os = \"fuchsia\"))"]
deps = [
":bytes-v1_0_1",
":libc-v0_2_149",
":memchr-v2_7_1",
":mio-v0_8_9",
":num_cpus-v1_13_0",
":signal-hook-registry-v1_4_1",
":socket2-v0_4_4",
]
rustflags = [
"--cfg=feature=\\\"libc\\\"",
"--cfg=feature=\\\"fs\\\"",
"--cfg=feature=\\\"mio\\\"",
"--cfg=feature=\\\"net\\\"",
"--cfg=feature=\\\"num_cpus\\\"",
"--cfg=feature=\\\"process\\\"",
"--cfg=feature=\\\"io-util\\\"",
"--cfg=feature=\\\"bytes\\\"",
"--cfg=feature=\\\"signal-hook-registry\\\"",
"--cfg=feature=\\\"rt\\\"",
"--cfg=feature=\\\"rt-multi-thread\\\"",
"--cfg=feature=\\\"socket2\\\"",
"--cfg=feature=\\\"sync\\\"",
"--cfg=feature=\\\"time\\\"",
]
# TODO(https://fxbug.dev/106164) This manual configuration enables the "log" so that
# tracing macros also emit log events and binaries with setting up a
# log::Logger receive tracing events as logs. On Fuchsia we don't need that
# since all binaries set up a tracing Subscriber.
[gn.package.tracing."0.1.40".platform."cfg(not(target_os = \"fuchsia\"))"]
deps = [ ":log-v0_4_20" ]
rustflags = [
"--cfg=feature=\\\"log\\\"",
]
# No build script but relies on cargo to populate environment variables.
[gn.package.trust-dns-resolver."0.22.0"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.22.0\\\"" ]
[gn.package.typenum."1.15.0"]
env_vars = [
"TYPENUM_BUILD_CONSTS=../../../compat/typenum/consts.rs",
"TYPENUM_BUILD_OP=../../../compat/typenum/op.rs",
]
[gn.package.unic-common."0.9.0"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-common\\\"", "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[gn.package.unic-ucd-version."0.9.0"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-ucd-version\\\"", "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[gn.package.unic-char-range."0.9.0"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-char-range\\\"", "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[gn.package.unic-char-property."0.9.0"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-char-property\\\"", "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[gn.package.unic-ucd-block."0.9.0"]
env_vars = [ "CARGO_PKG_VERSION=\\\"0.9.0\\\"", "CARGO_PKG_NAME=\\\"unic-ucd-block\\\"", "CARGO_PKG_DESCRIPTION=\\\"\\\"", ]
[gn.package.unicase."2.7.0"]
rustflags = [
"--cfg=__unicase__iter_cmp",
"--cfg=__unicase__default_hasher",
"--cfg=__unicase__const_fns",
"--cfg=__unicase__core_and_alloc",
]
[gn.package.url."1.7.2"]
# FIXME(91750): Blocked on updating valico to 3.x.
visibility = [":*", "//build/sdk/meta:*"]
[gn.package.valico."2.4.2"]
env_vars = ["OUT_DIR=../../../../compat/valico"]
[gn.package.valuable."0.1.0"]
rustflags = []
[gn.package.zerocopy."0.8.0-alpha.5"]
rustflags = [ "--cfg=zerocopy_generic_bounds_in_const_fn", "--cfg=zerocopy_aarch64_simd", "--cfg=zerocopy_panic_in_const" ]
[gn.package.zstd-safe."5.0.2+zstd.1.5.2"]
rustflags = []
[gn.package.zstd-sys."2.0.1+zstd.1.5.2"]
rustflags = []
# It is a fork:
uses_fuchsia_license = true