| # 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.86" |
| arbitrary = { version = "1.0.3", features = ["derive"] } |
| argh = "0.1.12" |
| arrayref = "0.3.5" |
| arrayvec = "0.7.4" |
| 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-ringbuf = "0.3.1" |
| async-stream = "0.3.5" |
| async-trait = "0.1.71" |
| atty = "0.2.11" |
| base64 = "0.22.1" |
| bincode = "1.3" |
| bitfield = "0.14.0" |
| bitflags = { version = "2.4.1", features = ["serde"] } |
| bit-set = "0.5.3" |
| 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.6.0" |
| 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 = { version = "0.4.34", default-features = false } |
| 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" |
| 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.30" |
| futures-executor = "=0.3.30" |
| futures-io = "=0.3.30" |
| futures-lite = "1.11.3" |
| futures-test = "=0.3.30" |
| futures-util = "=0.3.30" |
| 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 = { version = "0.4.3", features = ["serde"] } |
| 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.158", features = ["extra_traits"] } |
| libm = "0.2.1" |
| linked-hash-map = "0.5.3" |
| lock_api = "0.4.11" |
| log = { version = "0.4.22", features = ["kv", "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" |
| mock-omaha-server = { version = "0.3.1", default-features = false } |
| mockall = "0.9" |
| munge = "0.4.1" |
| nix = "0.26.2" |
| nom = { version = "7.1.3", default-features = false, features = ["std"] } |
| nom_locate = "4.2.0" |
| num = { version = "0.4.0", features = ["rand"] } |
| num-derive = "0.4.2" |
| num-traits = "0.2.18" |
| omaha_client = "0.2" |
| once_cell = "1.17.1" |
| nu-ansi-term = "0.46.0" |
| overload = "0.1.1" |
| 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.5.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.10.0" |
| ref-cast = "1.0.9" |
| regex = "1.7.3" |
| regex-syntax = "0.8.3" |
| rend = "0.5.0-pre.6" |
| ring = "0.16.20" |
| rustc-hash = "1.0.1" |
| rustls = { version = "=0.21.7", features = ["dangerous_configuration"] } |
| rustls-pemfile = "1.0.4" |
| rustls-webpki = "0.101.6" |
| rustyline = "2.1.0" |
| rutabaga_gfx = { version = "0.1.3", features = ["gfxstream"] } |
| schemars = { version = "0.8", features = ["chrono", "preserve_order"] } |
| scopeguard = "1.1.0" |
| scrypt = "0.10.0" |
| serde = { version = "1.0.204", features = ["derive"] } |
| serde_cbor = "0.11.1" |
| serde_derive = "1.0.147" |
| serde_json = "1.0.128" |
| 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.13.1", 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" |
| strum = "0.25.0" |
| strum_macros = "0.25.3" |
| tempfile = "3.2" |
| termtree = "0.4.1" |
| tuf = { version = "=0.3.0-beta12", 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.24.1" |
| 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.2.0" |
| 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" |
| 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.21", features = ["derive", "simd"] } |
| zstd = "0.11.2" |
| |
| [dependencies.tracing-subscriber] |
| version = "0.3.18" |
| 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.24.2", 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.32.1", 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.18.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.9" |
| hyper-rustls = { version = "0.24.2", 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"] } |
| # TODO(https://fxbug.dev/106164) Remove this explicit num_cpus dependency when it can be |
| # pulled in automatically by tokio |
| num_cpus = "1.16.0" |
| # See b/42169853, not used for target-side code to avoid system-wide impact of yield in spinloops. |
| parking_lot = "0.12.0" |
| petgraph = { version = "0.6.2" } |
| proc-macro2 = { version = "1.0.86", features = ["span-locations"] } |
| pulldown-cmark = { version = "0.9.3", features = ["serde"] } |
| quote = "1.0.35" |
| rustfix = "0.6.1" |
| rustls-native-certs = "0.6.3" |
| semver = "1.0.23" |
| 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" |
| syn = { version = "2.0.69", 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.32.1", 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 |
| android-tzdata = { path = "empty/android-tzdata" } |
| android_system_properties = { path = "empty/android_system_properties" } |
| backtrace = { path = "empty/backtrace" } |
| cc = { path = "empty/cc" } |
| crossterm_winapi = { path = "empty/crossterm_winapi" } |
| ctor = { path = "empty/ctor" } |
| hermit-abi = { path = "empty/hermit-abi" } |
| iana-time-zone-haiku = { path = "empty/iana-time-zone-haiku" } |
| js-sys = { path = "empty/js-sys" } |
| miow = { path = "empty/miow" } |
| ntapi = { path = "empty/ntapi" } |
| output_vt100 = { path = "empty/output_vt100" } |
| pkg-config = { path = "empty/pkg-config" } |
| redox_syscall = { path = "empty/redox_syscall" } |
| rustversion = { path = "empty/rustversion" } |
| wasi-0_11_0_preview1 = { path = "empty/wasi-0.11.0+wasi-snapshot-preview1", package = "wasi" } |
| wasm-bindgen = { path = "empty/wasm-bindgen" } |
| 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-core = { path = "empty/windows-core" } |
| 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-sys-0_52_0 = { package = "windows-sys", path = "empty/windows-sys-0.52.0" } |
| windows-targets-0_48_5 = { package = "windows-targets", path = "empty/windows-targets-0.48.5" } |
| windows-targets-0_52_0 = { package = "windows-targets", path = "empty/windows-targets-0.52.0" } |
| |
| ### 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" } |
| nom = { path = "forks/nom" } |
| 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" } |
| rustyline = { path = "forks/rustyline" } |
| 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", |
| "tokio", |
| ] |
| |
| [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.86"] |
| # 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-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.30"] |
| env_vars = [ "CARGO_PKG_NAME=futures-channel" ] |
| |
| [gn.package.futures-core."0.3.30"] |
| env_vars = [ "CARGO_PKG_NAME=futures-core" ] |
| |
| [gn.package.futures-macro."0.3.30"] |
| env_vars = [ "CARGO_PKG_NAME=futures-macro" ] |
| rustflags = [ "--cfg=fn_like_proc_macro" ] |
| |
| [gn.package.futures-task."0.3.30"] |
| env_vars = [ "CARGO_PKG_NAME=futures-task" ] |
| |
| [gn.package.futures-util."0.3.30"] |
| 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", |
| ":loom-v0_7_1.rustdoc", |
| ":loom-v0_7_1.rustdoc.deps", |
| ":loom-v0_7_1.rustdoc.transdeps", |
| ] |
| 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.9.4"] |
| rustflags = [ |
| "--cfg=httparse_simd", |
| "--cfg=httparse_simd_neon_intrinsics", |
| ] |
| |
| [gn.package.indexmap."1.9.2"] |
| rustflags = ["--cfg=has_std"] |
| |
| [gn.package.lazy_static."1.4.0"] |
| group_visibility = { import = "//third_party/rust_crates/visibility.gni", variable = "lazy_static_visibility" } |
| |
| [gn.package.libc."0.2.158"] |
| 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.158".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"] |
| |
| # 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.md-5."0.10.5"] |
| group_visibility = { import = "//third_party/rust_crates/visibility.gni", variable = "md5_visibility" } |
| |
| [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.memoffset."0.9.1"] |
| rustflags = ["--cfg=tuple_ty", "--cfg=allow_clippy", "--cfg=maybe_uninit", "--cfg=doctests", "--cfg=raw_ref_macros"] |
| |
| [gn.package.mock-omaha-server."0.3.1"] |
| rustflags = ["--cfg=fasync"] |
| deps = [ |
| "//src/lib/fuchsia-async", |
| "//src/lib/fuchsia-hyper", |
| "//src/lib/fuchsia-sync", |
| "//third_party/rust_crates:argh" |
| ] |
| |
| [gn.package.mock-omaha-server."0.3.1".platform."cfg(not(target_os = \"fuchsia\"))"] |
| deps = [ |
| "//third_party/rust_crates:async-net", |
| "//third_party/rust_crates:tokio", |
| ] |
| |
| [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.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_cpus."1.16.0"] |
| # We need to explicitly depend on num_cpus for tokio, but we're not exposing it |
| # to first party code. |
| visibility = [ ":*" ] |
| |
| [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.18"] |
| rustflags = [ |
| "--cfg=has_copysign", |
| "--cfg=has_div_euclid", |
| "--cfg=has_float_to_from_bytes", |
| "--cfg=has_int_to_from_bytes", |
| "--cfg=has_is_subnormal", |
| "--cfg=has_leading_trailing_ones", |
| "--cfg=has_reverse_bits", |
| "--cfg=has_to_int_unchecked", |
| "--cfg=has_total_cmp", |
| ] |
| |
| [gn.package.once_cell."1.17.1"] |
| group_visibility = { import = "//third_party/rust_crates/visibility.gni", variable = "once_cell_visibility" } |
| |
| [gn.package.parking_lot."0.12.0"] |
| # Funnel usage of parking_lot through fuchsia_sync. |
| visibility = ["//src/lib/fuchsia-sync", "//third_party/rust_crates:*"] |
| |
| [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.86"] |
| rustflags = ["--cfg=span_locations", "--cfg=wrap_proc_macro"] |
| |
| [gn.package.pulldown-cmark."0.9.3"] |
| # 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.12.1"] |
| # 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_21_7", |
| ":rustls-webpki-v0_101_6", |
| ":sct-v0_7_0", |
| ":trust-dns-proto-v0_21_2", |
| ":tuf-v0_3_0-beta12", |
| ":webpki-v0_21_0", |
| |
| ":ring.rustdoc", |
| ":rustls-v0_21_7.rustdoc", |
| ":sct-v0_7_0.rustdoc", |
| ":trust-dns-proto-v0_21_2.rustdoc", |
| ":tuf-v0_3_0-beta12.rustdoc", |
| ":webpki-v0_21_0.rustdoc", |
| |
| ":ring.rustdoc.deps", |
| ":rustls-v0_21_7.rustdoc.deps", |
| ":sct-v0_7_0.rustdoc.deps", |
| ":trust-dns-proto-v0_21_2.rustdoc.deps", |
| ":tuf-v0_3_0-beta12.rustdoc.deps", |
| ":webpki-v0_21_0.rustdoc.deps", |
| |
| ":ring.rustdoc.transdeps", |
| ":rustls-v0_21_7.rustdoc.transdeps", |
| ":sct-v0_7_0.rustdoc.transdeps", |
| ":trust-dns-proto-v0_21_2.rustdoc.transdeps", |
| ":tuf-v0_3_0-beta12.rustdoc.transdeps", |
| ":webpki-v0_21_0.rustdoc.transdeps", |
| ] |
| 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.rustls."0.21.7"] |
| rustflags = [] |
| |
| [gn.package.rutabaga_gfx."0.1.3"] |
| # Has build script but no config needed. |
| |
| [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", |
| ":loom-v0_7_1", |
| ":loom-v0_7_1.rustdoc", |
| ":loom-v0_7_1.rustdoc.deps", |
| ":loom-v0_7_1.rustdoc.transdeps", |
| ] |
| 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.23"] |
| rustflags = [] |
| |
| [gn.package.serde."1.0.204"] |
| rustflags = [] |
| |
| [gn.package.serde_derive."1.0.204"] |
| rustflags = [] |
| |
| [gn.package.serde_json."1.0.128"] |
| rustflags = ["--cfg=fast_arithmetic=\\\"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.32.1"] |
| reviewed_features = [ |
| "bytes", |
| "default", |
| "fs", |
| "io-util", |
| "libc", |
| "mio", |
| "net", |
| "num_cpus", |
| "process", |
| "rt", |
| "rt-multi-thread", |
| "singal-hook-registry", |
| "socket2", |
| "sync", |
| "time", |
| ] |
| |
| [gn.package.tokio."1.32.1".platform."cfg(not(target_os = \"fuchsia\"))"] |
| deps = [ |
| ":bytes-v1_6_0", |
| ":libc-v0_2_158", |
| ":memchr-v2_7_1", |
| ":mio-v0_8_9", |
| ":num_cpus-v1_16_0", |
| ":signal-hook-registry-v1_4_1", |
| ":socket2-v0_5_5", |
| ] |
| rustflags = [ |
| "--cfg=feature=\\\"bytes\\\"", |
| "--cfg=feature=\\\"fs\\\"", |
| "--cfg=feature=\\\"io-util\\\"", |
| "--cfg=feature=\\\"libc\\\"", |
| "--cfg=feature=\\\"mio\\\"", |
| "--cfg=feature=\\\"net\\\"", |
| "--cfg=feature=\\\"num_cpus\\\"", |
| "--cfg=feature=\\\"process\\\"", |
| "--cfg=feature=\\\"rt-multi-thread\\\"", |
| "--cfg=feature=\\\"rt\\\"", |
| "--cfg=feature=\\\"signal-hook-registry\\\"", |
| "--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_22" ] |
| 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.21"] |
| 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 |