Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
38
sources/poky/meta/recipes-devtools/rust/README-rust.md
Normal file
38
sources/poky/meta/recipes-devtools/rust/README-rust.md
Normal file
@@ -0,0 +1,38 @@
|
||||
## Introduction
|
||||
|
||||
This provides the Rust compiler, tools for building packages (cargo), and
|
||||
a few example projects.
|
||||
|
||||
## Building a rust package
|
||||
|
||||
When building a rust package in bitbake, it's usually easiest to build with
|
||||
cargo using cargo.bbclass. If the package already has a Cargo.toml file (most
|
||||
rust packages do), then it's especially easy. Otherwise you should probably
|
||||
get the code building in cargo first.
|
||||
|
||||
Once your package builds in cargo, you can use
|
||||
[cargo-bitbake](https://github.com/cardoe/cargo-bitbake) to generate a bitbake
|
||||
recipe for it. This allows bitbake to fetch all the necessary dependent
|
||||
crates, as well as a pegged version of the crates.io index, to ensure maximum
|
||||
reproducibility. Once the Rust SDK support is added to oe-core, cargo-bitbake
|
||||
may also be added to the SDK.
|
||||
|
||||
NOTE: You will have to edit the generated recipe based on the comments
|
||||
contained within it
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- TARGET_SYS _must_ be different from BUILD_SYS. This is due to the way Rust
|
||||
configuration options are tracked for different targets. This is the reason
|
||||
we use the Yocto triples instead of the native Rust triples. See rust-lang/cargo#3349.
|
||||
|
||||
## Dependencies
|
||||
|
||||
On the host:
|
||||
- Any `-sys` packages your project might need must have RDEPENDs for
|
||||
the native library.
|
||||
|
||||
On the target:
|
||||
- Any `-sys` packages your project might need must have RDEPENDs for
|
||||
the native library.
|
||||
|
||||
654
sources/poky/meta/recipes-devtools/rust/cargo-c-crates.inc
Normal file
654
sources/poky/meta/recipes-devtools/rust/cargo-c-crates.inc
Normal file
@@ -0,0 +1,654 @@
|
||||
# Autogenerated with 'bitbake -c update_crates cargo-c-native'
|
||||
|
||||
# from Cargo.lock
|
||||
SRC_URI += " \
|
||||
crate://crates.io/adler/1.0.2 \
|
||||
crate://crates.io/ahash/0.8.7 \
|
||||
crate://crates.io/aho-corasick/1.1.2 \
|
||||
crate://crates.io/allocator-api2/0.2.16 \
|
||||
crate://crates.io/anstream/0.6.11 \
|
||||
crate://crates.io/anstyle/1.0.6 \
|
||||
crate://crates.io/anstyle-parse/0.2.3 \
|
||||
crate://crates.io/anstyle-query/1.0.2 \
|
||||
crate://crates.io/anstyle-wincon/3.0.2 \
|
||||
crate://crates.io/anyhow/1.0.79 \
|
||||
crate://crates.io/arc-swap/1.6.0 \
|
||||
crate://crates.io/autocfg/1.1.0 \
|
||||
crate://crates.io/base16ct/0.2.0 \
|
||||
crate://crates.io/base64/0.21.7 \
|
||||
crate://crates.io/base64ct/1.6.0 \
|
||||
crate://crates.io/bitflags/1.3.2 \
|
||||
crate://crates.io/bitflags/2.4.2 \
|
||||
crate://crates.io/bitmaps/2.1.0 \
|
||||
crate://crates.io/block-buffer/0.10.4 \
|
||||
crate://crates.io/bstr/1.9.0 \
|
||||
crate://crates.io/btoi/0.4.3 \
|
||||
crate://crates.io/bumpalo/3.14.0 \
|
||||
crate://crates.io/bytes/1.5.0 \
|
||||
crate://crates.io/bytesize/1.3.0 \
|
||||
crate://crates.io/cargo/0.77.0 \
|
||||
crate://crates.io/cargo-credential/0.4.2 \
|
||||
crate://crates.io/cargo-credential-libsecret/0.4.2 \
|
||||
crate://crates.io/cargo-credential-macos-keychain/0.4.2 \
|
||||
crate://crates.io/cargo-credential-wincred/0.4.2 \
|
||||
crate://crates.io/cargo-platform/0.1.7 \
|
||||
crate://crates.io/cargo-util/0.2.9 \
|
||||
crate://crates.io/cbindgen/0.26.0 \
|
||||
crate://crates.io/cc/1.0.83 \
|
||||
crate://crates.io/cfg-if/1.0.0 \
|
||||
crate://crates.io/clap/4.5.0 \
|
||||
crate://crates.io/clap_builder/4.5.0 \
|
||||
crate://crates.io/clap_derive/4.5.0 \
|
||||
crate://crates.io/clap_lex/0.7.0 \
|
||||
crate://crates.io/clru/0.6.1 \
|
||||
crate://crates.io/color-print/0.3.5 \
|
||||
crate://crates.io/color-print-proc-macro/0.3.5 \
|
||||
crate://crates.io/colorchoice/1.0.0 \
|
||||
crate://crates.io/const-oid/0.9.6 \
|
||||
crate://crates.io/core-foundation/0.9.4 \
|
||||
crate://crates.io/core-foundation-sys/0.8.6 \
|
||||
crate://crates.io/cpufeatures/0.2.12 \
|
||||
crate://crates.io/crates-io/0.39.2 \
|
||||
crate://crates.io/crc32fast/1.3.2 \
|
||||
crate://crates.io/crossbeam-channel/0.5.11 \
|
||||
crate://crates.io/crossbeam-deque/0.8.5 \
|
||||
crate://crates.io/crossbeam-epoch/0.9.18 \
|
||||
crate://crates.io/crossbeam-utils/0.8.19 \
|
||||
crate://crates.io/crypto-bigint/0.5.5 \
|
||||
crate://crates.io/crypto-common/0.1.6 \
|
||||
crate://crates.io/ct-codecs/1.1.1 \
|
||||
crate://crates.io/curl/0.4.45 \
|
||||
crate://crates.io/curl-sys/0.4.72+curl-8.6.0 \
|
||||
crate://crates.io/der/0.7.8 \
|
||||
crate://crates.io/deranged/0.3.11 \
|
||||
crate://crates.io/digest/0.10.7 \
|
||||
crate://crates.io/dunce/1.0.4 \
|
||||
crate://crates.io/ecdsa/0.16.9 \
|
||||
crate://crates.io/ed25519-compact/2.1.1 \
|
||||
crate://crates.io/either/1.9.0 \
|
||||
crate://crates.io/elliptic-curve/0.13.8 \
|
||||
crate://crates.io/encoding_rs/0.8.33 \
|
||||
crate://crates.io/equivalent/1.0.1 \
|
||||
crate://crates.io/erased-serde/0.4.2 \
|
||||
crate://crates.io/errno/0.3.8 \
|
||||
crate://crates.io/fallible-iterator/0.3.0 \
|
||||
crate://crates.io/fallible-streaming-iterator/0.1.9 \
|
||||
crate://crates.io/faster-hex/0.9.0 \
|
||||
crate://crates.io/fastrand/2.0.1 \
|
||||
crate://crates.io/ff/0.13.0 \
|
||||
crate://crates.io/fiat-crypto/0.2.6 \
|
||||
crate://crates.io/filetime/0.2.23 \
|
||||
crate://crates.io/flate2/1.0.28 \
|
||||
crate://crates.io/foreign-types/0.3.2 \
|
||||
crate://crates.io/foreign-types-shared/0.1.1 \
|
||||
crate://crates.io/form_urlencoded/1.2.1 \
|
||||
crate://crates.io/generic-array/0.14.7 \
|
||||
crate://crates.io/getrandom/0.2.12 \
|
||||
crate://crates.io/git2/0.18.2 \
|
||||
crate://crates.io/git2-curl/0.19.0 \
|
||||
crate://crates.io/gix/0.56.0 \
|
||||
crate://crates.io/gix-actor/0.28.1 \
|
||||
crate://crates.io/gix-attributes/0.20.1 \
|
||||
crate://crates.io/gix-bitmap/0.2.10 \
|
||||
crate://crates.io/gix-chunk/0.4.7 \
|
||||
crate://crates.io/gix-command/0.3.4 \
|
||||
crate://crates.io/gix-commitgraph/0.22.1 \
|
||||
crate://crates.io/gix-config/0.32.1 \
|
||||
crate://crates.io/gix-config-value/0.14.4 \
|
||||
crate://crates.io/gix-credentials/0.22.0 \
|
||||
crate://crates.io/gix-date/0.8.3 \
|
||||
crate://crates.io/gix-diff/0.38.0 \
|
||||
crate://crates.io/gix-discover/0.27.0 \
|
||||
crate://crates.io/gix-features/0.35.0 \
|
||||
crate://crates.io/gix-features/0.36.1 \
|
||||
crate://crates.io/gix-filter/0.7.0 \
|
||||
crate://crates.io/gix-fs/0.8.1 \
|
||||
crate://crates.io/gix-glob/0.14.1 \
|
||||
crate://crates.io/gix-hash/0.13.3 \
|
||||
crate://crates.io/gix-hashtable/0.4.1 \
|
||||
crate://crates.io/gix-ignore/0.9.1 \
|
||||
crate://crates.io/gix-index/0.27.1 \
|
||||
crate://crates.io/gix-lock/11.0.1 \
|
||||
crate://crates.io/gix-macros/0.1.3 \
|
||||
crate://crates.io/gix-negotiate/0.10.0 \
|
||||
crate://crates.io/gix-object/0.39.0 \
|
||||
crate://crates.io/gix-odb/0.55.0 \
|
||||
crate://crates.io/gix-pack/0.45.0 \
|
||||
crate://crates.io/gix-packetline/0.17.3 \
|
||||
crate://crates.io/gix-packetline-blocking/0.17.3 \
|
||||
crate://crates.io/gix-path/0.10.5 \
|
||||
crate://crates.io/gix-pathspec/0.4.1 \
|
||||
crate://crates.io/gix-prompt/0.8.2 \
|
||||
crate://crates.io/gix-protocol/0.42.0 \
|
||||
crate://crates.io/gix-quote/0.4.10 \
|
||||
crate://crates.io/gix-ref/0.39.1 \
|
||||
crate://crates.io/gix-refspec/0.20.0 \
|
||||
crate://crates.io/gix-revision/0.24.0 \
|
||||
crate://crates.io/gix-revwalk/0.10.0 \
|
||||
crate://crates.io/gix-sec/0.10.4 \
|
||||
crate://crates.io/gix-submodule/0.6.0 \
|
||||
crate://crates.io/gix-tempfile/11.0.1 \
|
||||
crate://crates.io/gix-trace/0.1.7 \
|
||||
crate://crates.io/gix-transport/0.39.0 \
|
||||
crate://crates.io/gix-traverse/0.35.0 \
|
||||
crate://crates.io/gix-url/0.25.2 \
|
||||
crate://crates.io/gix-utils/0.1.9 \
|
||||
crate://crates.io/gix-validate/0.8.3 \
|
||||
crate://crates.io/gix-worktree/0.28.0 \
|
||||
crate://crates.io/glob/0.3.1 \
|
||||
crate://crates.io/globset/0.4.14 \
|
||||
crate://crates.io/group/0.13.0 \
|
||||
crate://crates.io/hashbrown/0.12.3 \
|
||||
crate://crates.io/hashbrown/0.14.3 \
|
||||
crate://crates.io/hashlink/0.8.4 \
|
||||
crate://crates.io/heck/0.4.1 \
|
||||
crate://crates.io/hermit-abi/0.3.5 \
|
||||
crate://crates.io/hex/0.4.3 \
|
||||
crate://crates.io/hkdf/0.12.4 \
|
||||
crate://crates.io/hmac/0.12.1 \
|
||||
crate://crates.io/home/0.5.9 \
|
||||
crate://crates.io/http-auth/0.1.9 \
|
||||
crate://crates.io/humantime/2.1.0 \
|
||||
crate://crates.io/idna/0.5.0 \
|
||||
crate://crates.io/ignore/0.4.22 \
|
||||
crate://crates.io/im-rc/15.1.0 \
|
||||
crate://crates.io/indexmap/1.9.3 \
|
||||
crate://crates.io/indexmap/2.2.2 \
|
||||
crate://crates.io/is-terminal/0.4.11 \
|
||||
crate://crates.io/itertools/0.12.1 \
|
||||
crate://crates.io/itoa/1.0.10 \
|
||||
crate://crates.io/jobserver/0.1.28 \
|
||||
crate://crates.io/js-sys/0.3.68 \
|
||||
crate://crates.io/kstring/2.0.0 \
|
||||
crate://crates.io/lazy_static/1.4.0 \
|
||||
crate://crates.io/lazycell/1.3.0 \
|
||||
crate://crates.io/libc/0.2.153 \
|
||||
crate://crates.io/libgit2-sys/0.16.2+1.7.2 \
|
||||
crate://crates.io/libloading/0.8.1 \
|
||||
crate://crates.io/libnghttp2-sys/0.1.9+1.58.0 \
|
||||
crate://crates.io/libsqlite3-sys/0.27.0 \
|
||||
crate://crates.io/libssh2-sys/0.3.0 \
|
||||
crate://crates.io/libz-sys/1.1.15 \
|
||||
crate://crates.io/linux-raw-sys/0.4.13 \
|
||||
crate://crates.io/lock_api/0.4.11 \
|
||||
crate://crates.io/log/0.4.20 \
|
||||
crate://crates.io/matchers/0.1.0 \
|
||||
crate://crates.io/maybe-async/0.2.9 \
|
||||
crate://crates.io/memchr/2.7.1 \
|
||||
crate://crates.io/memmap2/0.9.4 \
|
||||
crate://crates.io/minimal-lexical/0.2.1 \
|
||||
crate://crates.io/miniz_oxide/0.7.2 \
|
||||
crate://crates.io/miow/0.6.0 \
|
||||
crate://crates.io/nom/7.1.3 \
|
||||
crate://crates.io/normpath/1.1.1 \
|
||||
crate://crates.io/nu-ansi-term/0.46.0 \
|
||||
crate://crates.io/num-conv/0.1.0 \
|
||||
crate://crates.io/num-traits/0.2.18 \
|
||||
crate://crates.io/num_threads/0.1.6 \
|
||||
crate://crates.io/once_cell/1.19.0 \
|
||||
crate://crates.io/opener/0.6.1 \
|
||||
crate://crates.io/openssl/0.10.63 \
|
||||
crate://crates.io/openssl-macros/0.1.1 \
|
||||
crate://crates.io/openssl-probe/0.1.5 \
|
||||
crate://crates.io/openssl-src/300.2.2+3.2.1 \
|
||||
crate://crates.io/openssl-sys/0.9.99 \
|
||||
crate://crates.io/ordered-float/2.10.1 \
|
||||
crate://crates.io/orion/0.17.6 \
|
||||
crate://crates.io/os_info/3.7.0 \
|
||||
crate://crates.io/overload/0.1.1 \
|
||||
crate://crates.io/p384/0.13.0 \
|
||||
crate://crates.io/parking_lot/0.12.1 \
|
||||
crate://crates.io/parking_lot_core/0.9.9 \
|
||||
crate://crates.io/pasetors/0.6.8 \
|
||||
crate://crates.io/pathdiff/0.2.1 \
|
||||
crate://crates.io/pem-rfc7468/0.7.0 \
|
||||
crate://crates.io/percent-encoding/2.3.1 \
|
||||
crate://crates.io/pin-project-lite/0.2.13 \
|
||||
crate://crates.io/pkcs8/0.10.2 \
|
||||
crate://crates.io/pkg-config/0.3.29 \
|
||||
crate://crates.io/powerfmt/0.2.0 \
|
||||
crate://crates.io/ppv-lite86/0.2.17 \
|
||||
crate://crates.io/primeorder/0.13.6 \
|
||||
crate://crates.io/proc-macro2/1.0.78 \
|
||||
crate://crates.io/prodash/26.2.2 \
|
||||
crate://crates.io/pulldown-cmark/0.9.6 \
|
||||
crate://crates.io/quote/1.0.35 \
|
||||
crate://crates.io/rand/0.8.5 \
|
||||
crate://crates.io/rand_chacha/0.3.1 \
|
||||
crate://crates.io/rand_core/0.6.4 \
|
||||
crate://crates.io/rand_xoshiro/0.6.0 \
|
||||
crate://crates.io/redox_syscall/0.4.1 \
|
||||
crate://crates.io/regex/1.10.3 \
|
||||
crate://crates.io/regex-automata/0.1.10 \
|
||||
crate://crates.io/regex-automata/0.4.5 \
|
||||
crate://crates.io/regex-syntax/0.6.29 \
|
||||
crate://crates.io/regex-syntax/0.8.2 \
|
||||
crate://crates.io/rfc6979/0.4.0 \
|
||||
crate://crates.io/rusqlite/0.30.0 \
|
||||
crate://crates.io/rustfix/0.7.0 \
|
||||
crate://crates.io/rustix/0.38.31 \
|
||||
crate://crates.io/ryu/1.0.16 \
|
||||
crate://crates.io/same-file/1.0.6 \
|
||||
crate://crates.io/schannel/0.1.23 \
|
||||
crate://crates.io/scopeguard/1.2.0 \
|
||||
crate://crates.io/sec1/0.7.3 \
|
||||
crate://crates.io/security-framework/2.9.2 \
|
||||
crate://crates.io/security-framework-sys/2.9.1 \
|
||||
crate://crates.io/semver/1.0.21 \
|
||||
crate://crates.io/serde/1.0.196 \
|
||||
crate://crates.io/serde-untagged/0.1.5 \
|
||||
crate://crates.io/serde-value/0.7.0 \
|
||||
crate://crates.io/serde_derive/1.0.196 \
|
||||
crate://crates.io/serde_ignored/0.1.10 \
|
||||
crate://crates.io/serde_json/1.0.113 \
|
||||
crate://crates.io/serde_spanned/0.6.5 \
|
||||
crate://crates.io/sha1/0.10.6 \
|
||||
crate://crates.io/sha1_smol/1.0.0 \
|
||||
crate://crates.io/sha2/0.10.8 \
|
||||
crate://crates.io/sharded-slab/0.1.7 \
|
||||
crate://crates.io/shell-escape/0.1.5 \
|
||||
crate://crates.io/shell-words/1.1.0 \
|
||||
crate://crates.io/signature/2.2.0 \
|
||||
crate://crates.io/sized-chunks/0.6.5 \
|
||||
crate://crates.io/smallvec/1.13.1 \
|
||||
crate://crates.io/socket2/0.5.5 \
|
||||
crate://crates.io/spki/0.7.3 \
|
||||
crate://crates.io/static_assertions/1.1.0 \
|
||||
crate://crates.io/strsim/0.11.0 \
|
||||
crate://crates.io/subtle/2.5.0 \
|
||||
crate://crates.io/supports-hyperlinks/2.1.0 \
|
||||
crate://crates.io/syn/1.0.109 \
|
||||
crate://crates.io/syn/2.0.48 \
|
||||
crate://crates.io/tar/0.4.40 \
|
||||
crate://crates.io/tempfile/3.10.0 \
|
||||
crate://crates.io/terminal_size/0.3.0 \
|
||||
crate://crates.io/thiserror/1.0.56 \
|
||||
crate://crates.io/thiserror-impl/1.0.56 \
|
||||
crate://crates.io/thread_local/1.1.7 \
|
||||
crate://crates.io/time/0.3.34 \
|
||||
crate://crates.io/time-core/0.1.2 \
|
||||
crate://crates.io/time-macros/0.2.17 \
|
||||
crate://crates.io/tinyvec/1.6.0 \
|
||||
crate://crates.io/tinyvec_macros/0.1.1 \
|
||||
crate://crates.io/toml/0.5.11 \
|
||||
crate://crates.io/toml/0.8.10 \
|
||||
crate://crates.io/toml_datetime/0.6.5 \
|
||||
crate://crates.io/toml_edit/0.21.1 \
|
||||
crate://crates.io/toml_edit/0.22.4 \
|
||||
crate://crates.io/tracing/0.1.40 \
|
||||
crate://crates.io/tracing-attributes/0.1.27 \
|
||||
crate://crates.io/tracing-core/0.1.32 \
|
||||
crate://crates.io/tracing-log/0.2.0 \
|
||||
crate://crates.io/tracing-subscriber/0.3.18 \
|
||||
crate://crates.io/typenum/1.17.0 \
|
||||
crate://crates.io/unicase/2.7.0 \
|
||||
crate://crates.io/unicode-bidi/0.3.15 \
|
||||
crate://crates.io/unicode-bom/2.0.3 \
|
||||
crate://crates.io/unicode-ident/1.0.12 \
|
||||
crate://crates.io/unicode-normalization/0.1.22 \
|
||||
crate://crates.io/unicode-width/0.1.11 \
|
||||
crate://crates.io/unicode-xid/0.2.4 \
|
||||
crate://crates.io/url/2.5.0 \
|
||||
crate://crates.io/utf8parse/0.2.1 \
|
||||
crate://crates.io/valuable/0.1.0 \
|
||||
crate://crates.io/vcpkg/0.2.15 \
|
||||
crate://crates.io/version_check/0.9.4 \
|
||||
crate://crates.io/walkdir/2.4.0 \
|
||||
crate://crates.io/wasi/0.11.0+wasi-snapshot-preview1 \
|
||||
crate://crates.io/wasm-bindgen/0.2.91 \
|
||||
crate://crates.io/wasm-bindgen-backend/0.2.91 \
|
||||
crate://crates.io/wasm-bindgen-macro/0.2.91 \
|
||||
crate://crates.io/wasm-bindgen-macro-support/0.2.91 \
|
||||
crate://crates.io/wasm-bindgen-shared/0.2.91 \
|
||||
crate://crates.io/winapi/0.3.9 \
|
||||
crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
|
||||
crate://crates.io/winapi-util/0.1.6 \
|
||||
crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
|
||||
crate://crates.io/windows-sys/0.48.0 \
|
||||
crate://crates.io/windows-sys/0.52.0 \
|
||||
crate://crates.io/windows-targets/0.48.5 \
|
||||
crate://crates.io/windows-targets/0.52.0 \
|
||||
crate://crates.io/windows_aarch64_gnullvm/0.48.5 \
|
||||
crate://crates.io/windows_aarch64_gnullvm/0.52.0 \
|
||||
crate://crates.io/windows_aarch64_msvc/0.48.5 \
|
||||
crate://crates.io/windows_aarch64_msvc/0.52.0 \
|
||||
crate://crates.io/windows_i686_gnu/0.48.5 \
|
||||
crate://crates.io/windows_i686_gnu/0.52.0 \
|
||||
crate://crates.io/windows_i686_msvc/0.48.5 \
|
||||
crate://crates.io/windows_i686_msvc/0.52.0 \
|
||||
crate://crates.io/windows_x86_64_gnu/0.48.5 \
|
||||
crate://crates.io/windows_x86_64_gnu/0.52.0 \
|
||||
crate://crates.io/windows_x86_64_gnullvm/0.48.5 \
|
||||
crate://crates.io/windows_x86_64_gnullvm/0.52.0 \
|
||||
crate://crates.io/windows_x86_64_msvc/0.48.5 \
|
||||
crate://crates.io/windows_x86_64_msvc/0.52.0 \
|
||||
crate://crates.io/winnow/0.5.39 \
|
||||
crate://crates.io/zerocopy/0.7.32 \
|
||||
crate://crates.io/zerocopy-derive/0.7.32 \
|
||||
crate://crates.io/zeroize/1.7.0 \
|
||||
"
|
||||
|
||||
SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
|
||||
SRC_URI[ahash-0.8.7.sha256sum] = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01"
|
||||
SRC_URI[aho-corasick-1.1.2.sha256sum] = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
|
||||
SRC_URI[allocator-api2-0.2.16.sha256sum] = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
|
||||
SRC_URI[anstream-0.6.11.sha256sum] = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5"
|
||||
SRC_URI[anstyle-1.0.6.sha256sum] = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
|
||||
SRC_URI[anstyle-parse-0.2.3.sha256sum] = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
|
||||
SRC_URI[anstyle-query-1.0.2.sha256sum] = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
|
||||
SRC_URI[anstyle-wincon-3.0.2.sha256sum] = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
|
||||
SRC_URI[anyhow-1.0.79.sha256sum] = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
|
||||
SRC_URI[arc-swap-1.6.0.sha256sum] = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
|
||||
SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
SRC_URI[base16ct-0.2.0.sha256sum] = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
|
||||
SRC_URI[base64-0.21.7.sha256sum] = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
|
||||
SRC_URI[base64ct-1.6.0.sha256sum] = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
|
||||
SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
|
||||
SRC_URI[bitflags-2.4.2.sha256sum] = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
|
||||
SRC_URI[bitmaps-2.1.0.sha256sum] = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
|
||||
SRC_URI[block-buffer-0.10.4.sha256sum] = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
|
||||
SRC_URI[bstr-1.9.0.sha256sum] = "c48f0051a4b4c5e0b6d365cd04af53aeaa209e3cc15ec2cdb69e73cc87fbd0dc"
|
||||
SRC_URI[btoi-0.4.3.sha256sum] = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad"
|
||||
SRC_URI[bumpalo-3.14.0.sha256sum] = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec"
|
||||
SRC_URI[bytes-1.5.0.sha256sum] = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
|
||||
SRC_URI[bytesize-1.3.0.sha256sum] = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc"
|
||||
SRC_URI[cargo-0.77.0.sha256sum] = "4a399e5bde59d144aa2c7ba643765e2f8c6c3c601daa2da03202caf66f2552b3"
|
||||
SRC_URI[cargo-credential-0.4.2.sha256sum] = "ec27ad011c37339b865c765fa28096cd63d5b25fab680c04d9e410cb586c327d"
|
||||
SRC_URI[cargo-credential-libsecret-0.4.2.sha256sum] = "26b0ff7a44dd0af0fcd8d09bb1a6d7f7652847cba10aad017a6ea0a25ba7f00f"
|
||||
SRC_URI[cargo-credential-macos-keychain-0.4.2.sha256sum] = "4b7cf89a47dc2c20ae3a7c94335e151be32c20f85cc2790defdb1f5dac818de5"
|
||||
SRC_URI[cargo-credential-wincred-0.4.2.sha256sum] = "341df45dc893bdffa36e2f7cbe3da90b38c5c74e7f4c0088ac801fd055b6df5b"
|
||||
SRC_URI[cargo-platform-0.1.7.sha256sum] = "694c8807f2ae16faecc43dc17d74b3eb042482789fd0eb64b39a2e04e087053f"
|
||||
SRC_URI[cargo-util-0.2.9.sha256sum] = "74862c3c6e53a1c1f8f0178f9d38ab41e49746cd3a7cafc239b3d0248fd4e342"
|
||||
SRC_URI[cbindgen-0.26.0.sha256sum] = "da6bc11b07529f16944307272d5bd9b22530bc7d05751717c9d416586cedab49"
|
||||
SRC_URI[cc-1.0.83.sha256sum] = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
|
||||
SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
SRC_URI[clap-4.5.0.sha256sum] = "80c21025abd42669a92efc996ef13cfb2c5c627858421ea58d5c3b331a6c134f"
|
||||
SRC_URI[clap_builder-4.5.0.sha256sum] = "458bf1f341769dfcf849846f65dffdf9146daa56bcd2a47cb4e1de9915567c99"
|
||||
SRC_URI[clap_derive-4.5.0.sha256sum] = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
|
||||
SRC_URI[clap_lex-0.7.0.sha256sum] = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
|
||||
SRC_URI[clru-0.6.1.sha256sum] = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807"
|
||||
SRC_URI[color-print-0.3.5.sha256sum] = "7a858372ff14bab9b1b30ea504f2a4bc534582aee3e42ba2d41d2a7baba63d5d"
|
||||
SRC_URI[color-print-proc-macro-0.3.5.sha256sum] = "57e37866456a721d0a404439a1adae37a31be4e0055590d053dfe6981e05003f"
|
||||
SRC_URI[colorchoice-1.0.0.sha256sum] = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
|
||||
SRC_URI[const-oid-0.9.6.sha256sum] = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
|
||||
SRC_URI[core-foundation-0.9.4.sha256sum] = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
|
||||
SRC_URI[core-foundation-sys-0.8.6.sha256sum] = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
|
||||
SRC_URI[cpufeatures-0.2.12.sha256sum] = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
|
||||
SRC_URI[crates-io-0.39.2.sha256sum] = "6622f902c3c338eced1f000091f034846ae36aadaf35d0acd1ab0469a2d8ef1f"
|
||||
SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
|
||||
SRC_URI[crossbeam-channel-0.5.11.sha256sum] = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b"
|
||||
SRC_URI[crossbeam-deque-0.8.5.sha256sum] = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
|
||||
SRC_URI[crossbeam-epoch-0.9.18.sha256sum] = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
|
||||
SRC_URI[crossbeam-utils-0.8.19.sha256sum] = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
|
||||
SRC_URI[crypto-bigint-0.5.5.sha256sum] = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
|
||||
SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
|
||||
SRC_URI[ct-codecs-1.1.1.sha256sum] = "f3b7eb4404b8195a9abb6356f4ac07d8ba267045c8d6d220ac4dc992e6cc75df"
|
||||
SRC_URI[curl-0.4.45.sha256sum] = "f8e5123ab8c31200ce725939049ecd4a090b242608f24048131dedf9dd195aed"
|
||||
SRC_URI[curl-sys-0.4.72+curl-8.6.0.sha256sum] = "29cbdc8314c447d11e8fd156dcdd031d9e02a7a976163e396b548c03153bc9ea"
|
||||
SRC_URI[der-0.7.8.sha256sum] = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
|
||||
SRC_URI[deranged-0.3.11.sha256sum] = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
|
||||
SRC_URI[digest-0.10.7.sha256sum] = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
|
||||
SRC_URI[dunce-1.0.4.sha256sum] = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b"
|
||||
SRC_URI[ecdsa-0.16.9.sha256sum] = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca"
|
||||
SRC_URI[ed25519-compact-2.1.1.sha256sum] = "e9b3460f44bea8cd47f45a0c70892f1eff856d97cd55358b2f73f663789f6190"
|
||||
SRC_URI[either-1.9.0.sha256sum] = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
|
||||
SRC_URI[elliptic-curve-0.13.8.sha256sum] = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47"
|
||||
SRC_URI[encoding_rs-0.8.33.sha256sum] = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
|
||||
SRC_URI[equivalent-1.0.1.sha256sum] = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
|
||||
SRC_URI[erased-serde-0.4.2.sha256sum] = "55d05712b2d8d88102bc9868020c9e5c7a1f5527c452b9b97450a1d006140ba7"
|
||||
SRC_URI[errno-0.3.8.sha256sum] = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
|
||||
SRC_URI[fallible-iterator-0.3.0.sha256sum] = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
|
||||
SRC_URI[fallible-streaming-iterator-0.1.9.sha256sum] = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
|
||||
SRC_URI[faster-hex-0.9.0.sha256sum] = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
|
||||
SRC_URI[fastrand-2.0.1.sha256sum] = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
|
||||
SRC_URI[ff-0.13.0.sha256sum] = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
|
||||
SRC_URI[fiat-crypto-0.2.6.sha256sum] = "1676f435fc1dadde4d03e43f5d62b259e1ce5f40bd4ffb21db2b42ebe59c1382"
|
||||
SRC_URI[filetime-0.2.23.sha256sum] = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
|
||||
SRC_URI[flate2-1.0.28.sha256sum] = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
|
||||
SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
|
||||
SRC_URI[foreign-types-shared-0.1.1.sha256sum] = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
SRC_URI[form_urlencoded-1.2.1.sha256sum] = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
|
||||
SRC_URI[generic-array-0.14.7.sha256sum] = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
|
||||
SRC_URI[getrandom-0.2.12.sha256sum] = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
|
||||
SRC_URI[git2-0.18.2.sha256sum] = "1b3ba52851e73b46a4c3df1d89343741112003f0f6f13beb0dfac9e457c3fdcd"
|
||||
SRC_URI[git2-curl-0.19.0.sha256sum] = "78e26b61608c573ffd26fc79061a823aa5147449a1afe1f61679a21e2031f7c3"
|
||||
SRC_URI[gix-0.56.0.sha256sum] = "5b0dcdc9c60d66535897fa40a7ea2a635e72f99456b1d9ae86b7e170e80618cb"
|
||||
SRC_URI[gix-actor-0.28.1.sha256sum] = "2eadca029ef716b4378f7afb19f7ee101fde9e58ba1f1445971315ac866db417"
|
||||
SRC_URI[gix-attributes-0.20.1.sha256sum] = "0f395469d38c76ec47cd1a6c5a53fbc3f13f737b96eaf7535f4e6b367e643381"
|
||||
SRC_URI[gix-bitmap-0.2.10.sha256sum] = "78b6cd0f246180034ddafac9b00a112f19178135b21eb031b3f79355891f7325"
|
||||
SRC_URI[gix-chunk-0.4.7.sha256sum] = "003ec6deacf68076a0c157271a127e0bb2c031c1a41f7168cbe5d248d9b85c78"
|
||||
SRC_URI[gix-command-0.3.4.sha256sum] = "c82b5e9494e61983e61049bbd15fe0fa6b70672dd236362bdb5b2b50fc428f10"
|
||||
SRC_URI[gix-commitgraph-0.22.1.sha256sum] = "85a7007ba021f059803afaf6f8a48872422abc20550ac12ede6ddea2936cec36"
|
||||
SRC_URI[gix-config-0.32.1.sha256sum] = "0341471d55d8676e98b88e121d7065dfa4c9c5acea4b6d6ecdd2846e85cce0c3"
|
||||
SRC_URI[gix-config-value-0.14.4.sha256sum] = "5b8a1e7bfb37a46ed0b8468db37a6d8a0a61d56bdbe4603ae492cb322e5f3958"
|
||||
SRC_URI[gix-credentials-0.22.0.sha256sum] = "513dac42450b27946bd0a0535a3a5a88e473d6522e5e3439a129cab779c88f3d"
|
||||
SRC_URI[gix-date-0.8.3.sha256sum] = "fb7f3dfb72bebe3449b5e642be64e3c6ccbe9821c8b8f19f487cf5bfbbf4067e"
|
||||
SRC_URI[gix-diff-0.38.0.sha256sum] = "8119a985887cfe68f4bdf92e51bd64bc758a73882d82fcfc03ebcb164441c85d"
|
||||
SRC_URI[gix-discover-0.27.0.sha256sum] = "6fad89416ebe0b3b7df78464124e2a02417b6cd3743d48ad93df86f4d2929c07"
|
||||
SRC_URI[gix-features-0.35.0.sha256sum] = "9b9ff423ae4983f762659040d13dd7a5defbd54b6a04ac3cc7347741cec828cd"
|
||||
SRC_URI[gix-features-0.36.1.sha256sum] = "4d46a4a5c6bb5bebec9c0d18b65ada20e6517dbd7cf855b87dd4bbdce3a771b2"
|
||||
SRC_URI[gix-filter-0.7.0.sha256sum] = "6d6a5c9d8e55c364e7c226919c19c9a28be1392d6208b5008059fa94ff7e2bf0"
|
||||
SRC_URI[gix-fs-0.8.1.sha256sum] = "20e86eb040f5776a5ade092282e51cdcad398adb77d948b88d17583c2ae4e107"
|
||||
SRC_URI[gix-glob-0.14.1.sha256sum] = "5db19298c5eeea2961e5b3bf190767a2d1f09b8802aeb5f258e42276350aff19"
|
||||
SRC_URI[gix-hash-0.13.3.sha256sum] = "1f8cf8c2266f63e582b7eb206799b63aa5fa68ee510ad349f637dfe2d0653de0"
|
||||
SRC_URI[gix-hashtable-0.4.1.sha256sum] = "feb61880816d7ec4f0b20606b498147d480860ddd9133ba542628df2f548d3ca"
|
||||
SRC_URI[gix-ignore-0.9.1.sha256sum] = "a215cc8cf21645bca131fcf6329d3ebd46299c47dbbe27df71bb1ca9e328b879"
|
||||
SRC_URI[gix-index-0.27.1.sha256sum] = "f3f308f5cd2992e96a274b0d1931e9a0e44fdcba87695ead3f6df30d8a697e9c"
|
||||
SRC_URI[gix-lock-11.0.1.sha256sum] = "7e5c65e6a29830a435664891ced3f3c1af010f14900226019590ee0971a22f37"
|
||||
SRC_URI[gix-macros-0.1.3.sha256sum] = "d75e7ab728059f595f6ddc1ad8771b8d6a231971ae493d9d5948ecad366ee8bb"
|
||||
SRC_URI[gix-negotiate-0.10.0.sha256sum] = "979f6accd9c051b3dd018b50adf29c0a2459edddf6105cc70b767976cd6f8014"
|
||||
SRC_URI[gix-object-0.39.0.sha256sum] = "febf79c5825720c1c63fe974c7bbe695d0cb54aabad73f45671c60ce0e501e33"
|
||||
SRC_URI[gix-odb-0.55.0.sha256sum] = "1fae5f971540c99c6ecc8d4368ecc9d18a9dc8b9391025c68c4399747dc93bac"
|
||||
SRC_URI[gix-pack-0.45.0.sha256sum] = "4569491c92446fddf373456ff360aff9a9effd627b40a70f2d7914dcd75a3205"
|
||||
SRC_URI[gix-packetline-0.17.3.sha256sum] = "09ff45eef7747bde4986429a3e813478d50c2688b8f239e57bd3aa81065b285f"
|
||||
SRC_URI[gix-packetline-blocking-0.17.3.sha256sum] = "ca8ef6dd3ea50e26f3bf572e90c034d033c804d340cd1eb386392f184a9ba2f7"
|
||||
SRC_URI[gix-path-0.10.5.sha256sum] = "97e9ad649bf5e109562d6acba657ca428661ec08e77eaf3a755d8fa55485be9c"
|
||||
SRC_URI[gix-pathspec-0.4.1.sha256sum] = "1dbbb92f75a38ef043c8bb830b339b38d0698d7f3746968b5fcbade7a880494d"
|
||||
SRC_URI[gix-prompt-0.8.2.sha256sum] = "02bd89d058258e53e0fd6c57f13ee16c5673a83066a68e11f88626fc8cfda5f6"
|
||||
SRC_URI[gix-protocol-0.42.0.sha256sum] = "95736ef407db0bd15a5bdea791fbfcf523b9f13b96c852c240cd86a9ee0ef817"
|
||||
SRC_URI[gix-quote-0.4.10.sha256sum] = "9f7dc10303d73a960d10fb82f81188b036ac3e6b11b5795b20b1a60b51d1321f"
|
||||
SRC_URI[gix-ref-0.39.1.sha256sum] = "3b2069adc212cf7f3317ef55f6444abd06c50f28479dbbac5a86acf3b05cbbfe"
|
||||
SRC_URI[gix-refspec-0.20.0.sha256sum] = "76d9d3b82e1ee78fc0dc1c37ea5ea76c2dbc73f407db155f0dfcea285e583bee"
|
||||
SRC_URI[gix-revision-0.24.0.sha256sum] = "fe5dd51710ce5434bc315ea30394fab483c5377276494edd79222b321a5a9544"
|
||||
SRC_URI[gix-revwalk-0.10.0.sha256sum] = "69d4ed2493ca94a475fdf147138e1ef8bab3b6ebb56abf3d9bda1c05372ec1dd"
|
||||
SRC_URI[gix-sec-0.10.4.sha256sum] = "f8d9bf462feaf05f2121cba7399dbc6c34d88a9cad58fc1e95027791d6a3c6d2"
|
||||
SRC_URI[gix-submodule-0.6.0.sha256sum] = "02a3d7f60a95bdcaeb8981663c99d1c9f4de42aab1169524c949e948989809f9"
|
||||
SRC_URI[gix-tempfile-11.0.1.sha256sum] = "388dd29114a86ec69b28d1e26d6d63a662300ecf61ab3f4cc578f7d7dc9e7e23"
|
||||
SRC_URI[gix-trace-0.1.7.sha256sum] = "02b202d766a7fefc596e2cc6a89cda8ad8ad733aed82da635ac120691112a9b1"
|
||||
SRC_URI[gix-transport-0.39.0.sha256sum] = "f731cfefc4d62468c6dd2053f5c6707828256a6d2f5488c1811e3f42c178b144"
|
||||
SRC_URI[gix-traverse-0.35.0.sha256sum] = "df2112088122a0206592c84fbd42020db63b2ccaed66a0293779f2e5fbf80474"
|
||||
SRC_URI[gix-url-0.25.2.sha256sum] = "0c427a1a11ccfa53a4a2da47d9442c2241deee63a154bc15cc14b8312fbc4005"
|
||||
SRC_URI[gix-utils-0.1.9.sha256sum] = "56e839f3d0798b296411263da6bee780a176ef8008a5dfc31287f7eda9266ab8"
|
||||
SRC_URI[gix-validate-0.8.3.sha256sum] = "ac7cc36f496bd5d96cdca0f9289bb684480725d40db60f48194aa7723b883854"
|
||||
SRC_URI[gix-worktree-0.28.0.sha256sum] = "7f1d0ae01dee14abe8c8117d78d7518f9a507de2dc4522546fbf4c444e9860b4"
|
||||
SRC_URI[glob-0.3.1.sha256sum] = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
|
||||
SRC_URI[globset-0.4.14.sha256sum] = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
|
||||
SRC_URI[group-0.13.0.sha256sum] = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
|
||||
SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
||||
SRC_URI[hashbrown-0.14.3.sha256sum] = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
|
||||
SRC_URI[hashlink-0.8.4.sha256sum] = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7"
|
||||
SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
|
||||
SRC_URI[hermit-abi-0.3.5.sha256sum] = "d0c62115964e08cb8039170eb33c1d0e2388a256930279edca206fff675f82c3"
|
||||
SRC_URI[hex-0.4.3.sha256sum] = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
|
||||
SRC_URI[hkdf-0.12.4.sha256sum] = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7"
|
||||
SRC_URI[hmac-0.12.1.sha256sum] = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
|
||||
SRC_URI[home-0.5.9.sha256sum] = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
|
||||
SRC_URI[http-auth-0.1.9.sha256sum] = "643c9bbf6a4ea8a656d6b4cd53d34f79e3f841ad5203c1a55fb7d761923bc255"
|
||||
SRC_URI[humantime-2.1.0.sha256sum] = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
|
||||
SRC_URI[idna-0.5.0.sha256sum] = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
|
||||
SRC_URI[ignore-0.4.22.sha256sum] = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
|
||||
SRC_URI[im-rc-15.1.0.sha256sum] = "af1955a75fa080c677d3972822ec4bad316169ab1cfc6c257a942c2265dbe5fe"
|
||||
SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
||||
SRC_URI[indexmap-2.2.2.sha256sum] = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520"
|
||||
SRC_URI[is-terminal-0.4.11.sha256sum] = "fe8f25ce1159c7740ff0b9b2f5cdf4a8428742ba7c112b9f20f22cd5219c7dab"
|
||||
SRC_URI[itertools-0.12.1.sha256sum] = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
|
||||
SRC_URI[itoa-1.0.10.sha256sum] = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
|
||||
SRC_URI[jobserver-0.1.28.sha256sum] = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
|
||||
SRC_URI[js-sys-0.3.68.sha256sum] = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee"
|
||||
SRC_URI[kstring-2.0.0.sha256sum] = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747"
|
||||
SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
|
||||
SRC_URI[lazycell-1.3.0.sha256sum] = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
|
||||
SRC_URI[libc-0.2.153.sha256sum] = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
|
||||
SRC_URI[libgit2-sys-0.16.2+1.7.2.sha256sum] = "ee4126d8b4ee5c9d9ea891dd875cfdc1e9d0950437179104b183d7d8a74d24e8"
|
||||
SRC_URI[libloading-0.8.1.sha256sum] = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
|
||||
SRC_URI[libnghttp2-sys-0.1.9+1.58.0.sha256sum] = "b57e858af2798e167e709b9d969325b6d8e9d50232fcbc494d7d54f976854a64"
|
||||
SRC_URI[libsqlite3-sys-0.27.0.sha256sum] = "cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716"
|
||||
SRC_URI[libssh2-sys-0.3.0.sha256sum] = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee"
|
||||
SRC_URI[libz-sys-1.1.15.sha256sum] = "037731f5d3aaa87a5675e895b63ddff1a87624bc29f77004ea829809654e48f6"
|
||||
SRC_URI[linux-raw-sys-0.4.13.sha256sum] = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
|
||||
SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
|
||||
SRC_URI[log-0.4.20.sha256sum] = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
|
||||
SRC_URI[matchers-0.1.0.sha256sum] = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
|
||||
SRC_URI[maybe-async-0.2.9.sha256sum] = "afc95a651c82daf7004c824405aa1019723644950d488571bd718e3ed84646ed"
|
||||
SRC_URI[memchr-2.7.1.sha256sum] = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
|
||||
SRC_URI[memmap2-0.9.4.sha256sum] = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
|
||||
SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
|
||||
SRC_URI[miniz_oxide-0.7.2.sha256sum] = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
|
||||
SRC_URI[miow-0.6.0.sha256sum] = "359f76430b20a79f9e20e115b3428614e654f04fab314482fc0fda0ebd3c6044"
|
||||
SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
|
||||
SRC_URI[normpath-1.1.1.sha256sum] = "ec60c60a693226186f5d6edf073232bfb6464ed97eb22cf3b01c1e8198fd97f5"
|
||||
SRC_URI[nu-ansi-term-0.46.0.sha256sum] = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
|
||||
SRC_URI[num-conv-0.1.0.sha256sum] = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
|
||||
SRC_URI[num-traits-0.2.18.sha256sum] = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
|
||||
SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
|
||||
SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
|
||||
SRC_URI[opener-0.6.1.sha256sum] = "6c62dcb6174f9cb326eac248f07e955d5d559c272730b6c03e396b443b562788"
|
||||
SRC_URI[openssl-0.10.63.sha256sum] = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
|
||||
SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
|
||||
SRC_URI[openssl-probe-0.1.5.sha256sum] = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
|
||||
SRC_URI[openssl-src-300.2.2+3.2.1.sha256sum] = "8bbfad0063610ac26ee79f7484739e2b07555a75c42453b89263830b5c8103bc"
|
||||
SRC_URI[openssl-sys-0.9.99.sha256sum] = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
|
||||
SRC_URI[ordered-float-2.10.1.sha256sum] = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c"
|
||||
SRC_URI[orion-0.17.6.sha256sum] = "7abdb10181903c8c4b016ba45d6d6d5af1a1e2a461aa4763a83b87f5df4695e5"
|
||||
SRC_URI[os_info-3.7.0.sha256sum] = "006e42d5b888366f1880eda20371fedde764ed2213dc8496f49622fa0c99cd5e"
|
||||
SRC_URI[overload-0.1.1.sha256sum] = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
|
||||
SRC_URI[p384-0.13.0.sha256sum] = "70786f51bcc69f6a4c0360e063a4cac5419ef7c5cd5b3c99ad70f3be5ba79209"
|
||||
SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
|
||||
SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
|
||||
SRC_URI[pasetors-0.6.8.sha256sum] = "6b36d47c66f2230dd1b7143d9afb2b4891879020210eddf2ccb624e529b96dba"
|
||||
SRC_URI[pathdiff-0.2.1.sha256sum] = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
|
||||
SRC_URI[pem-rfc7468-0.7.0.sha256sum] = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
|
||||
SRC_URI[percent-encoding-2.3.1.sha256sum] = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
||||
SRC_URI[pin-project-lite-0.2.13.sha256sum] = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
|
||||
SRC_URI[pkcs8-0.10.2.sha256sum] = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
|
||||
SRC_URI[pkg-config-0.3.29.sha256sum] = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb"
|
||||
SRC_URI[powerfmt-0.2.0.sha256sum] = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
|
||||
SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
|
||||
SRC_URI[primeorder-0.13.6.sha256sum] = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6"
|
||||
SRC_URI[proc-macro2-1.0.78.sha256sum] = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
|
||||
SRC_URI[prodash-26.2.2.sha256sum] = "794b5bf8e2d19b53dcdcec3e4bba628e20f5b6062503ba89281fa7037dd7bbcf"
|
||||
SRC_URI[pulldown-cmark-0.9.6.sha256sum] = "57206b407293d2bcd3af849ce869d52068623f19e1b5ff8e8778e3309439682b"
|
||||
SRC_URI[quote-1.0.35.sha256sum] = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
|
||||
SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
|
||||
SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
|
||||
SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
|
||||
SRC_URI[rand_xoshiro-0.6.0.sha256sum] = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa"
|
||||
SRC_URI[redox_syscall-0.4.1.sha256sum] = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
|
||||
SRC_URI[regex-1.10.3.sha256sum] = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
|
||||
SRC_URI[regex-automata-0.1.10.sha256sum] = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
|
||||
SRC_URI[regex-automata-0.4.5.sha256sum] = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd"
|
||||
SRC_URI[regex-syntax-0.6.29.sha256sum] = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
|
||||
SRC_URI[regex-syntax-0.8.2.sha256sum] = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
|
||||
SRC_URI[rfc6979-0.4.0.sha256sum] = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2"
|
||||
SRC_URI[rusqlite-0.30.0.sha256sum] = "a78046161564f5e7cd9008aff3b2990b3850dc8e0349119b98e8f251e099f24d"
|
||||
SRC_URI[rustfix-0.7.0.sha256sum] = "7ec10cbeb92a2e494ef354d66126882da8c0a244ad769e2a7193efc5de625175"
|
||||
SRC_URI[rustix-0.38.31.sha256sum] = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949"
|
||||
SRC_URI[ryu-1.0.16.sha256sum] = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c"
|
||||
SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
|
||||
SRC_URI[schannel-0.1.23.sha256sum] = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
|
||||
SRC_URI[scopeguard-1.2.0.sha256sum] = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
|
||||
SRC_URI[sec1-0.7.3.sha256sum] = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc"
|
||||
SRC_URI[security-framework-2.9.2.sha256sum] = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
|
||||
SRC_URI[security-framework-sys-2.9.1.sha256sum] = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
|
||||
SRC_URI[semver-1.0.21.sha256sum] = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0"
|
||||
SRC_URI[serde-1.0.196.sha256sum] = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32"
|
||||
SRC_URI[serde-untagged-0.1.5.sha256sum] = "6a160535368dfc353348e7eaa299156bd508c60c45a9249725f5f6d370d82a66"
|
||||
SRC_URI[serde-value-0.7.0.sha256sum] = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c"
|
||||
SRC_URI[serde_derive-1.0.196.sha256sum] = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67"
|
||||
SRC_URI[serde_ignored-0.1.10.sha256sum] = "a8e319a36d1b52126a0d608f24e93b2d81297091818cd70625fcf50a15d84ddf"
|
||||
SRC_URI[serde_json-1.0.113.sha256sum] = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79"
|
||||
SRC_URI[serde_spanned-0.6.5.sha256sum] = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
|
||||
SRC_URI[sha1-0.10.6.sha256sum] = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
|
||||
SRC_URI[sha1_smol-1.0.0.sha256sum] = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012"
|
||||
SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
|
||||
SRC_URI[sharded-slab-0.1.7.sha256sum] = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
|
||||
SRC_URI[shell-escape-0.1.5.sha256sum] = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f"
|
||||
SRC_URI[shell-words-1.1.0.sha256sum] = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde"
|
||||
SRC_URI[signature-2.2.0.sha256sum] = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
|
||||
SRC_URI[sized-chunks-0.6.5.sha256sum] = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e"
|
||||
SRC_URI[smallvec-1.13.1.sha256sum] = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
|
||||
SRC_URI[socket2-0.5.5.sha256sum] = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9"
|
||||
SRC_URI[spki-0.7.3.sha256sum] = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
|
||||
SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||
SRC_URI[strsim-0.11.0.sha256sum] = "5ee073c9e4cd00e28217186dbe12796d692868f432bf2e97ee73bed0c56dfa01"
|
||||
SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
|
||||
SRC_URI[supports-hyperlinks-2.1.0.sha256sum] = "f84231692eb0d4d41e4cdd0cabfdd2e6cd9e255e65f80c9aa7c98dd502b4233d"
|
||||
SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
|
||||
SRC_URI[syn-2.0.48.sha256sum] = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
|
||||
SRC_URI[tar-0.4.40.sha256sum] = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb"
|
||||
SRC_URI[tempfile-3.10.0.sha256sum] = "a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67"
|
||||
SRC_URI[terminal_size-0.3.0.sha256sum] = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
|
||||
SRC_URI[thiserror-1.0.56.sha256sum] = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
|
||||
SRC_URI[thiserror-impl-1.0.56.sha256sum] = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
|
||||
SRC_URI[thread_local-1.1.7.sha256sum] = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
|
||||
SRC_URI[time-0.3.34.sha256sum] = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
|
||||
SRC_URI[time-core-0.1.2.sha256sum] = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
|
||||
SRC_URI[time-macros-0.2.17.sha256sum] = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
|
||||
SRC_URI[tinyvec-1.6.0.sha256sum] = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
|
||||
SRC_URI[tinyvec_macros-0.1.1.sha256sum] = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
|
||||
SRC_URI[toml-0.5.11.sha256sum] = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
||||
SRC_URI[toml-0.8.10.sha256sum] = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
|
||||
SRC_URI[toml_datetime-0.6.5.sha256sum] = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
|
||||
SRC_URI[toml_edit-0.21.1.sha256sum] = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
||||
SRC_URI[toml_edit-0.22.4.sha256sum] = "0c9ffdf896f8daaabf9b66ba8e77ea1ed5ed0f72821b398aba62352e95062951"
|
||||
SRC_URI[tracing-0.1.40.sha256sum] = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
|
||||
SRC_URI[tracing-attributes-0.1.27.sha256sum] = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
|
||||
SRC_URI[tracing-core-0.1.32.sha256sum] = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
|
||||
SRC_URI[tracing-log-0.2.0.sha256sum] = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
|
||||
SRC_URI[tracing-subscriber-0.3.18.sha256sum] = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
|
||||
SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
|
||||
SRC_URI[unicase-2.7.0.sha256sum] = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
|
||||
SRC_URI[unicode-bidi-0.3.15.sha256sum] = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
|
||||
SRC_URI[unicode-bom-2.0.3.sha256sum] = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217"
|
||||
SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
|
||||
SRC_URI[unicode-normalization-0.1.22.sha256sum] = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
|
||||
SRC_URI[unicode-width-0.1.11.sha256sum] = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
|
||||
SRC_URI[unicode-xid-0.2.4.sha256sum] = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
|
||||
SRC_URI[url-2.5.0.sha256sum] = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
|
||||
SRC_URI[utf8parse-0.2.1.sha256sum] = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
|
||||
SRC_URI[valuable-0.1.0.sha256sum] = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
||||
SRC_URI[vcpkg-0.2.15.sha256sum] = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
|
||||
SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
|
||||
SRC_URI[walkdir-2.4.0.sha256sum] = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee"
|
||||
SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
|
||||
SRC_URI[wasm-bindgen-0.2.91.sha256sum] = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f"
|
||||
SRC_URI[wasm-bindgen-backend-0.2.91.sha256sum] = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b"
|
||||
SRC_URI[wasm-bindgen-macro-0.2.91.sha256sum] = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed"
|
||||
SRC_URI[wasm-bindgen-macro-support-0.2.91.sha256sum] = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66"
|
||||
SRC_URI[wasm-bindgen-shared-0.2.91.sha256sum] = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838"
|
||||
SRC_URI[winapi-0.3.9.sha256sum] = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
|
||||
SRC_URI[winapi-i686-pc-windows-gnu-0.4.0.sha256sum] = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
|
||||
SRC_URI[winapi-util-0.1.6.sha256sum] = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
|
||||
SRC_URI[winapi-x86_64-pc-windows-gnu-0.4.0.sha256sum] = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
|
||||
SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
|
||||
SRC_URI[windows-sys-0.52.0.sha256sum] = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
|
||||
SRC_URI[windows-targets-0.48.5.sha256sum] = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
|
||||
SRC_URI[windows-targets-0.52.0.sha256sum] = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd"
|
||||
SRC_URI[windows_aarch64_gnullvm-0.48.5.sha256sum] = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
|
||||
SRC_URI[windows_aarch64_gnullvm-0.52.0.sha256sum] = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea"
|
||||
SRC_URI[windows_aarch64_msvc-0.48.5.sha256sum] = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
|
||||
SRC_URI[windows_aarch64_msvc-0.52.0.sha256sum] = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef"
|
||||
SRC_URI[windows_i686_gnu-0.48.5.sha256sum] = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
|
||||
SRC_URI[windows_i686_gnu-0.52.0.sha256sum] = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313"
|
||||
SRC_URI[windows_i686_msvc-0.48.5.sha256sum] = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
|
||||
SRC_URI[windows_i686_msvc-0.52.0.sha256sum] = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a"
|
||||
SRC_URI[windows_x86_64_gnu-0.48.5.sha256sum] = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
|
||||
SRC_URI[windows_x86_64_gnu-0.52.0.sha256sum] = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd"
|
||||
SRC_URI[windows_x86_64_gnullvm-0.48.5.sha256sum] = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
|
||||
SRC_URI[windows_x86_64_gnullvm-0.52.0.sha256sum] = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e"
|
||||
SRC_URI[windows_x86_64_msvc-0.48.5.sha256sum] = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
|
||||
SRC_URI[windows_x86_64_msvc-0.52.0.sha256sum] = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04"
|
||||
SRC_URI[winnow-0.5.39.sha256sum] = "5389a154b01683d28c77f8f68f49dea75f0a4da32557a58f68ee51ebba472d29"
|
||||
SRC_URI[zerocopy-0.7.32.sha256sum] = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
|
||||
SRC_URI[zerocopy-derive-0.7.32.sha256sum] = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
|
||||
SRC_URI[zeroize-1.7.0.sha256sum] = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
|
||||
@@ -0,0 +1,17 @@
|
||||
SUMMARY = "cargo applet to build and install C-ABI compatible dynamic and static libraries."
|
||||
HOMEPAGE = "https://crates.io/crates/cargo-c"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://LICENSE;md5=384ed0e2e0b2dac094e51fbf93fdcbe0 \
|
||||
"
|
||||
|
||||
SRC_URI = "crate://crates.io/cargo-c/${PV};name=cargo-c"
|
||||
SRC_URI[cargo-c.sha256sum] = "ec77e3635cdb0d211f88f22d0460eef0ba031eb616ded57f2ffb98a90365c445"
|
||||
S = "${CARGO_VENDORING_DIRECTORY}/cargo-c-${PV}"
|
||||
|
||||
inherit cargo cargo-update-recipe-crates pkgconfig native
|
||||
|
||||
DEPENDS = "openssl curl"
|
||||
|
||||
require ${BPN}-crates.inc
|
||||
|
||||
86
sources/poky/meta/recipes-devtools/rust/cargo_1.75.0.bb
Normal file
86
sources/poky/meta/recipes-devtools/rust/cargo_1.75.0.bb
Normal file
@@ -0,0 +1,86 @@
|
||||
SUMMARY = "Cargo, a package manager for Rust."
|
||||
HOMEPAGE = "https://crates.io"
|
||||
LICENSE = "MIT | Apache-2.0"
|
||||
SECTION = "devel"
|
||||
|
||||
DEPENDS = "openssl zlib curl ca-certificates libssh2"
|
||||
|
||||
LIC_FILES_CHKSUM = " \
|
||||
file://LICENSE-MIT;md5=b377b220f43d747efdec40d69fcaa69d \
|
||||
file://LICENSE-APACHE;md5=71b224ca933f0676e26d5c2e2271331c \
|
||||
file://LICENSE-THIRD-PARTY;md5=f257ad009884cb88a3a87d6920e7180a \
|
||||
"
|
||||
|
||||
require rust-source.inc
|
||||
require rust-snapshot.inc
|
||||
|
||||
S = "${RUSTSRC}/src/tools/cargo"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
|
||||
inherit cargo pkgconfig
|
||||
|
||||
DEBUG_PREFIX_MAP += "-fdebug-prefix-map=${RUSTSRC}/vendor=${TARGET_DBGSRC_DIR}"
|
||||
|
||||
do_cargo_setup_snapshot () {
|
||||
${WORKDIR}/rust-snapshot-components/${CARGO_SNAPSHOT}/install.sh --prefix="${WORKDIR}/${CARGO_SNAPSHOT}" --disable-ldconfig
|
||||
# Need to use uninative's loader if enabled/present since the library paths
|
||||
# are used internally by rust and result in symbol mismatches if we don't
|
||||
if [ ! -z "${UNINATIVE_LOADER}" -a -e "${UNINATIVE_LOADER}" ]; then
|
||||
patchelf-uninative ${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo --set-interpreter ${UNINATIVE_LOADER}
|
||||
fi
|
||||
}
|
||||
|
||||
addtask cargo_setup_snapshot after do_unpack before do_configure
|
||||
do_cargo_setup_snapshot[dirs] += "${WORKDIR}/${CARGO_SNAPSHOT}"
|
||||
do_cargo_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
|
||||
|
||||
|
||||
do_compile:prepend () {
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d "${D}${bindir}"
|
||||
install -m 755 "${B}/target/${CARGO_TARGET_SUBDIR}/cargo" "${D}${bindir}"
|
||||
}
|
||||
|
||||
do_install:append:class-nativesdk() {
|
||||
# To quote the cargo docs, "Cargo also sets the dynamic library path when compiling
|
||||
# and running binaries with commands like `cargo run` and `cargo test`". Sadly it
|
||||
# sets to libdir but not base_libdir leading to symbol mismatches depending on the
|
||||
# host OS. Fully set LD_LIBRARY_PATH to contain both to avoid this.
|
||||
create_wrapper ${D}/${bindir}/cargo LD_LIBRARY_PATH=${libdir}:${base_libdir}
|
||||
|
||||
ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
|
||||
mkdir "${ENV_SETUP_DIR}"
|
||||
CARGO_ENV_SETUP_SH="${ENV_SETUP_DIR}/cargo.sh"
|
||||
|
||||
cat <<- EOF > "${CARGO_ENV_SETUP_SH}"
|
||||
# Keep the below off as long as HTTP/2 is disabled.
|
||||
export CARGO_HTTP_MULTIPLEXING=false
|
||||
|
||||
export CARGO_HTTP_CAINFO="\$OECORE_NATIVE_SYSROOT/etc/ssl/certs/ca-certificates.crt"
|
||||
EOF
|
||||
}
|
||||
|
||||
FILES:${PN} += "${base_prefix}/environment-setup.d"
|
||||
|
||||
# Disabled due to incompatibility with libgit2 0.28.x (https://github.com/rust-lang/git2-rs/issues/458, https://bugs.gentoo.org/707746#c1)
|
||||
# as shipped by Yocto Dunfell.
|
||||
# According to https://github.com/rust-lang/git2-rs/issues/458#issuecomment-522567539, there are no compatibility guarantees between
|
||||
# libgit2-sys and arbitrary system libgit2 versions, so better keep this turned off.
|
||||
#export LIBGIT2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
# Needed for pkg-config to be used
|
||||
export LIBSSH2_SYS_USE_PKG_CONFIG = "1"
|
||||
|
||||
# When building cargo-native we don't have cargo-native to use and depend on,
|
||||
# so we must use the locally set up snapshot to bootstrap the build.
|
||||
BASEDEPENDS:remove:class-native = "cargo-native"
|
||||
CARGO:class-native = "${WORKDIR}/${CARGO_SNAPSHOT}/bin/cargo"
|
||||
|
||||
DEPENDS:append:class-nativesdk = " nativesdk-rust"
|
||||
RUSTLIB:append:class-nativesdk = " -L ${STAGING_DIR_HOST}/${SDKPATHNATIVE}/usr/lib/rustlib/${RUST_HOST_SYS}/lib"
|
||||
RUSTLIB_DEP:class-nativesdk = ""
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
@@ -0,0 +1,46 @@
|
||||
From 5e37ea7cb9d99d91f2c5ac6edf19ff777f95bb88 Mon Sep 17 00:00:00 2001
|
||||
From: Arlo Siemsen <arsiem@microsoft.com>
|
||||
Date: Thu, 4 Jan 2024 11:40:56 -0600
|
||||
Subject: [PATCH] Handle vendored sources when remapping paths
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/119582]
|
||||
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
||||
---
|
||||
src/bootstrap/src/core/builder.rs | 19 ++++++++++++-------
|
||||
1 file changed, 12 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/bootstrap/src/core/builder.rs b/src/bootstrap/src/core/builder.rs
|
||||
index cd276674dee6..48fdb2c7f7b7 100644
|
||||
--- a/src/bootstrap/src/core/builder.rs
|
||||
+++ b/src/bootstrap/src/core/builder.rs
|
||||
@@ -1789,15 +1789,20 @@ pub fn cargo(
|
||||
}
|
||||
|
||||
if self.config.rust_remap_debuginfo {
|
||||
- // FIXME: handle vendored sources
|
||||
- let registry_src = t!(home::cargo_home()).join("registry").join("src");
|
||||
let mut env_var = OsString::new();
|
||||
- for entry in t!(std::fs::read_dir(registry_src)) {
|
||||
- if !env_var.is_empty() {
|
||||
- env_var.push("\t");
|
||||
- }
|
||||
- env_var.push(t!(entry).path());
|
||||
+ if self.config.vendor {
|
||||
+ let vendor = self.build.src.join("vendor");
|
||||
+ env_var.push(vendor);
|
||||
env_var.push("=/rust/deps");
|
||||
+ } else {
|
||||
+ let registry_src = t!(home::cargo_home()).join("registry").join("src");
|
||||
+ for entry in t!(std::fs::read_dir(registry_src)) {
|
||||
+ if !env_var.is_empty() {
|
||||
+ env_var.push("\t");
|
||||
+ }
|
||||
+ env_var.push(t!(entry).path());
|
||||
+ env_var.push("=/rust/deps");
|
||||
+ }
|
||||
}
|
||||
cargo.env("RUSTC_CARGO_REGISTRY_SRC_TO_REMAP", env_var);
|
||||
}
|
||||
--
|
||||
2.39.0
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
From 8bf0c566387e6a48d854d5f69c43c8bfa45092f9 Mon Sep 17 00:00:00 2001
|
||||
From: Alex Kiernan <alexk@zuma.ai>
|
||||
Date: Sun, 24 Dec 2023 09:40:01 +0000
|
||||
Subject: [PATCH] Revert "Map source absolute paths to OUT_DIR as relative.
|
||||
(#684)"
|
||||
|
||||
This reverts commit c4f414f449bb7cffba3bc923f277704d1d08a8ec.
|
||||
|
||||
Upstream-Status: Inappropriate [patches need rework]
|
||||
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
||||
---
|
||||
src/lib.rs | 22 ++--------------------
|
||||
1 file changed, 2 insertions(+), 20 deletions(-)
|
||||
|
||||
Index: rustc-1.72.0-src/vendor/cc/src/lib.rs
|
||||
===================================================================
|
||||
--- rustc-1.72.0-src.orig/vendor/cc/src/lib.rs
|
||||
+++ rustc-1.72.0-src/vendor/cc/src/lib.rs
|
||||
@@ -56,12 +56,11 @@
|
||||
#![allow(deprecated)]
|
||||
#![deny(missing_docs)]
|
||||
|
||||
-use std::collections::{hash_map, HashMap};
|
||||
+use std::collections::HashMap;
|
||||
use std::env;
|
||||
use std::ffi::{OsStr, OsString};
|
||||
use std::fmt::{self, Display, Formatter};
|
||||
use std::fs;
|
||||
-use std::hash::Hasher;
|
||||
use std::io::{self, BufRead, BufReader, Read, Write};
|
||||
use std::path::{Component, Path, PathBuf};
|
||||
use std::process::{Child, Command, Stdio};
|
||||
@@ -1037,24 +1036,7 @@ impl Build {
|
||||
|
||||
let mut objects = Vec::new();
|
||||
for file in self.files.iter() {
|
||||
- let obj = if file.has_root() {
|
||||
- // If `file` is an absolute path, prefix the `basename`
|
||||
- // with the `dirname`'s hash to ensure name uniqueness.
|
||||
- let basename = file
|
||||
- .file_name()
|
||||
- .ok_or_else(|| Error::new(ErrorKind::InvalidArgument, "file_name() failure"))?
|
||||
- .to_string_lossy();
|
||||
- let dirname = file
|
||||
- .parent()
|
||||
- .ok_or_else(|| Error::new(ErrorKind::InvalidArgument, "parent() failure"))?
|
||||
- .to_string_lossy();
|
||||
- let mut hasher = hash_map::DefaultHasher::new();
|
||||
- hasher.write(dirname.to_string().as_bytes());
|
||||
- dst.join(format!("{:016x}-{}", hasher.finish(), basename))
|
||||
- .with_extension("o")
|
||||
- } else {
|
||||
- dst.join(file).with_extension("o")
|
||||
- };
|
||||
+ let obj = dst.join(file).with_extension("o");
|
||||
let obj = if !obj.starts_with(&dst) {
|
||||
dst.join(obj.file_name().ok_or_else(|| {
|
||||
Error::new(ErrorKind::IOError, "Getting object file details failed.")
|
||||
Index: rustc-1.72.0-src/vendor/cc/.cargo-checksum.json
|
||||
===================================================================
|
||||
--- rustc-1.72.0-src.orig/vendor/cc/.cargo-checksum.json
|
||||
+++ rustc-1.72.0-src/vendor/cc/.cargo-checksum.json
|
||||
@@ -1 +1 @@
|
||||
-{"files":{"Cargo.lock":"dddb9c49058d411a098e98dc1c06e3bc89f859a2080d96c11b11aec67394bb8c","Cargo.toml":"1953a8bc4b98e351fe75917c151b1e08a46531d562aebba25a90add4aadecac2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"58af5106352aafa62175a90f8a5f25fa114028bf909220dc0735d79745999ec1","src/bin/gcc-shim.rs":"36dc4e447428e73c548cc7106ca1e8f282c098463b014e13a729a44445de4880","src/com.rs":"29d0dee08a656ab1a4cc3e5fe24542e0fab5c1373cbc9b05059f7572cf9b8313","src/lib.rs":"17a4659710aa290c4ed9c23063c7b202c5bcf2a84de33aa1f01fc6fded69a1f8","src/registry.rs":"98ae2b71781acc49297e5544fa0cf059f735636f8f1338edef8dbf7232443945","src/setup_config.rs":"72deaf1927c0b713fd5c2b2d5b8f0ea3a303a00fda1579427895cac26a94122d","src/vs_instances.rs":"2d3f8278a803b0e7052f4eeb1979b29f963dd0143f4458e2cb5f33c4e5f0963b","src/winapi.rs":"e128e95b2d39ae7a02f54a7e25d33c488c14759b9f1a50a449e10545856950c3","src/windows_registry.rs":"1f973f804b4b451e48ff6d98ce660355772f164dfdf79a6ae514645c7c764005","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"a3c8d116973bb16066bf6ec4de5143183f97de7aad085d85f8118a2eaac3e1e0","tests/test.rs":"61fb35ae6dd5cf506ada000bdd82c92e9f8eac9cc053b63e83d3f897436fbf8f"},"package":"50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"}
|
||||
\ No newline at end of file
|
||||
+{"files":{"Cargo.lock":"dddb9c49058d411a098e98dc1c06e3bc89f859a2080d96c11b11aec67394bb8c","Cargo.toml":"1953a8bc4b98e351fe75917c151b1e08a46531d562aebba25a90add4aadecac2","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"58af5106352aafa62175a90f8a5f25fa114028bf909220dc0735d79745999ec1","src/bin/gcc-shim.rs":"36dc4e447428e73c548cc7106ca1e8f282c098463b014e13a729a44445de4880","src/com.rs":"29d0dee08a656ab1a4cc3e5fe24542e0fab5c1373cbc9b05059f7572cf9b8313","src/lib.rs":"dfb36b17362e9a5b266cb19a229d982e8c0bba784b1e99769f690692b0cd5c4e","src/registry.rs":"98ae2b71781acc49297e5544fa0cf059f735636f8f1338edef8dbf7232443945","src/setup_config.rs":"72deaf1927c0b713fd5c2b2d5b8f0ea3a303a00fda1579427895cac26a94122d","src/vs_instances.rs":"2d3f8278a803b0e7052f4eeb1979b29f963dd0143f4458e2cb5f33c4e5f0963b","src/winapi.rs":"e128e95b2d39ae7a02f54a7e25d33c488c14759b9f1a50a449e10545856950c3","src/windows_registry.rs":"1f973f804b4b451e48ff6d98ce660355772f164dfdf79a6ae514645c7c764005","tests/cc_env.rs":"e02b3b0824ad039b47e4462c5ef6dbe6c824c28e7953af94a0f28f7b5158042e","tests/cflags.rs":"57f06eb5ce1557e5b4a032d0c4673e18fbe6f8d26c1deb153126e368b96b41b3","tests/cxxflags.rs":"c2c6c6d8a0d7146616fa1caed26876ee7bc9fcfffd525eb4743593cade5f3371","tests/support/mod.rs":"a3c8d116973bb16066bf6ec4de5143183f97de7aad085d85f8118a2eaac3e1e0","tests/test.rs":"61fb35ae6dd5cf506ada000bdd82c92e9f8eac9cc053b63e83d3f897436fbf8f"},"package":"50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"}
|
||||
\ No newline at end of file
|
||||
@@ -0,0 +1,51 @@
|
||||
From 065d7c263091118437465d714d8a29dbb6296921 Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex@linutronix.de>
|
||||
Date: Mon, 13 May 2024 14:57:54 +0200
|
||||
Subject: [PATCH] cargo: do not write host information into compilation unit
|
||||
hashes
|
||||
|
||||
This breaks reproducibility in cross-builds where the cross-target
|
||||
can be the same, but build hosts are different, as seen with
|
||||
"rustc --version -v":
|
||||
...
|
||||
host: x86_64-unknown-linux-gnu
|
||||
|
||||
vs.
|
||||
|
||||
host: aarch64-unknown-linux-gnu
|
||||
|
||||
This can possibly be improved by only hashing host info if the build
|
||||
is a native one (e.g. there's no --target option passed to cargo
|
||||
invocation) but I'm not sure how.
|
||||
|
||||
Upstream-Status: Inappropriate [reported at https://github.com/rust-lang/cargo/issues/13922]
|
||||
Signed-off-by: Alexander Kanavin <alex@linutronix.de>
|
||||
---
|
||||
.../src/cargo/core/compiler/context/compilation_files.rs | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs b/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs
|
||||
index d83dbf10c..b2ad8d9f3 100644
|
||||
--- a/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs
|
||||
+++ b/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs
|
||||
@@ -652,7 +652,7 @@ fn hash_rustc_version(bcx: &BuildContext<'_, '_>, hasher: &mut StableHasher) {
|
||||
if vers.pre.is_empty() || bcx.config.cli_unstable().separate_nightlies {
|
||||
// For stable, keep the artifacts separate. This helps if someone is
|
||||
// testing multiple versions, to avoid recompiles.
|
||||
- bcx.rustc().verbose_version.hash(hasher);
|
||||
+ //bcx.rustc().verbose_version.hash(hasher);
|
||||
return;
|
||||
}
|
||||
// On "nightly"/"beta"/"dev"/etc, keep each "channel" separate. Don't hash
|
||||
@@ -665,7 +665,7 @@ fn hash_rustc_version(bcx: &BuildContext<'_, '_>, hasher: &mut StableHasher) {
|
||||
// Keep "host" since some people switch hosts to implicitly change
|
||||
// targets, (like gnu vs musl or gnu vs msvc). In the future, we may want
|
||||
// to consider hashing `unit.kind.short_name()` instead.
|
||||
- bcx.rustc().host.hash(hasher);
|
||||
+ //bcx.rustc().host.hash(hasher);
|
||||
// None of the other lines are important. Currently they are:
|
||||
// binary: rustc <-- or "rustdoc"
|
||||
// commit-hash: 38114ff16e7856f98b2b4be7ab4cd29b38bed59a
|
||||
--
|
||||
2.39.2
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
Detect and fetch custom target configurations when rustc is
|
||||
bootstrapped in rust oe-selftest.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/119619/commits/26c71cbcf1a9bce6ceb962d753c467d098f63cf6]
|
||||
|
||||
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
||||
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
|
||||
---
|
||||
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
|
||||
index e85f6319936..c45c0b3c652 100644
|
||||
--- a/src/tools/compiletest/src/common.rs
|
||||
+++ b/src/tools/compiletest/src/common.rs
|
||||
@@ -479,6 +479,7 @@ fn new(config: &Config) -> TargetCfgs {
|
||||
let mut targets: HashMap<String, TargetCfg> = serde_json::from_str(&rustc_output(
|
||||
config,
|
||||
&["--print=all-target-specs-json", "-Zunstable-options"],
|
||||
+ Default::default(),
|
||||
))
|
||||
.unwrap();
|
||||
|
||||
@@ -491,16 +492,33 @@ fn new(config: &Config) -> TargetCfgs {
|
||||
let mut all_families = HashSet::new();
|
||||
let mut all_pointer_widths = HashSet::new();
|
||||
|
||||
- // Handle custom target specs, which are not included in `--print=all-target-specs-json`.
|
||||
- if config.target.ends_with(".json") {
|
||||
- targets.insert(
|
||||
- config.target.clone(),
|
||||
- serde_json::from_str(&rustc_output(
|
||||
- config,
|
||||
- &["--print=target-spec-json", "-Zunstable-options", "--target", &config.target],
|
||||
- ))
|
||||
- .unwrap(),
|
||||
- );
|
||||
+ // If current target is not included in the `--print=all-target-specs-json` output,
|
||||
+ // we check whether it is a custom target from the user or a synthetic target from bootstrap.
|
||||
+ if !targets.contains_key(&config.target) {
|
||||
+ let mut envs: HashMap<String, String> = HashMap::new();
|
||||
+
|
||||
+ if let Ok(t) = std::env::var("RUST_TARGET_PATH") {
|
||||
+ envs.insert("RUST_TARGET_PATH".into(), t);
|
||||
+ }
|
||||
+
|
||||
+ // This returns false only when the target is neither a synthetic target
|
||||
+ // nor a custom target from the user, indicating it is most likely invalid.
|
||||
+ if config.target.ends_with(".json") || !envs.is_empty() {
|
||||
+ targets.insert(
|
||||
+ config.target.clone(),
|
||||
+ serde_json::from_str(&rustc_output(
|
||||
+ config,
|
||||
+ &[
|
||||
+ "--print=target-spec-json",
|
||||
+ "-Zunstable-options",
|
||||
+ "--target",
|
||||
+ &config.target,
|
||||
+ ],
|
||||
+ envs,
|
||||
+ ))
|
||||
+ .unwrap(),
|
||||
+ );
|
||||
+ }
|
||||
}
|
||||
|
||||
for (target, cfg) in targets.iter() {
|
||||
@@ -545,7 +563,9 @@ fn get_current_target_config(
|
||||
// code below extracts them from `--print=cfg`: make sure to only override fields that can
|
||||
// actually be changed with `-C` flags.
|
||||
for config in
|
||||
- rustc_output(config, &["--print=cfg", "--target", &config.target]).trim().lines()
|
||||
+ rustc_output(config, &["--print=cfg", "--target", &config.target], Default::default())
|
||||
+ .trim()
|
||||
+ .lines()
|
||||
{
|
||||
let (name, value) = config
|
||||
.split_once("=\"")
|
||||
@@ -624,11 +644,12 @@ pub enum Endian {
|
||||
Big,
|
||||
}
|
||||
|
||||
-fn rustc_output(config: &Config, args: &[&str]) -> String {
|
||||
+fn rustc_output(config: &Config, args: &[&str], envs: HashMap<String, String>) -> String {
|
||||
let mut command = Command::new(&config.rustc_path);
|
||||
add_dylib_path(&mut command, iter::once(&config.compile_lib_path));
|
||||
command.args(&config.target_rustcflags).args(args);
|
||||
command.env("RUSTC_BOOTSTRAP", "1");
|
||||
+ command.envs(envs);
|
||||
|
||||
let output = match command.output() {
|
||||
Ok(output) => output,
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
When building for the target, some build paths end up embedded in the binaries.
|
||||
These changes remove that. Further investigation is needed to work out the way
|
||||
to resolve these issues properly upstream.
|
||||
|
||||
Upstream-Status: Inappropriate [patches need rework]
|
||||
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
|
||||
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
|
||||
|
||||
diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs
|
||||
index b4b2ab1e1f8a..8bb3e3f0557c 100644
|
||||
--- a/compiler/rustc_codegen_llvm/src/context.rs
|
||||
+++ b/compiler/rustc_codegen_llvm/src/context.rs
|
||||
@@ -158,46 +158,6 @@ pub unsafe fn create_module<'ll>(
|
||||
}
|
||||
}
|
||||
|
||||
- // Ensure the data-layout values hardcoded remain the defaults.
|
||||
- if sess.target.is_builtin {
|
||||
- // tm is disposed by its drop impl
|
||||
- let tm = crate::back::write::create_informational_target_machine(tcx.sess);
|
||||
- llvm::LLVMRustSetDataLayoutFromTargetMachine(llmod, &tm);
|
||||
-
|
||||
- let llvm_data_layout = llvm::LLVMGetDataLayoutStr(llmod);
|
||||
- let llvm_data_layout = str::from_utf8(CStr::from_ptr(llvm_data_layout).to_bytes())
|
||||
- .expect("got a non-UTF8 data-layout from LLVM");
|
||||
-
|
||||
- // Unfortunately LLVM target specs change over time, and right now we
|
||||
- // don't have proper support to work with any more than one
|
||||
- // `data_layout` than the one that is in the rust-lang/rust repo. If
|
||||
- // this compiler is configured against a custom LLVM, we may have a
|
||||
- // differing data layout, even though we should update our own to use
|
||||
- // that one.
|
||||
- //
|
||||
- // As an interim hack, if CFG_LLVM_ROOT is not an empty string then we
|
||||
- // disable this check entirely as we may be configured with something
|
||||
- // that has a different target layout.
|
||||
- //
|
||||
- // Unsure if this will actually cause breakage when rustc is configured
|
||||
- // as such.
|
||||
- //
|
||||
- // FIXME(#34960)
|
||||
- let cfg_llvm_root = option_env!("CFG_LLVM_ROOT").unwrap_or("");
|
||||
- let custom_llvm_used = !cfg_llvm_root.trim().is_empty();
|
||||
-
|
||||
- if !custom_llvm_used && target_data_layout != llvm_data_layout {
|
||||
- bug!(
|
||||
- "data-layout for target `{rustc_target}`, `{rustc_layout}`, \
|
||||
- differs from LLVM target's `{llvm_target}` default layout, `{llvm_layout}`",
|
||||
- rustc_target = sess.opts.target_triple,
|
||||
- rustc_layout = target_data_layout,
|
||||
- llvm_target = sess.target.llvm_target,
|
||||
- llvm_layout = llvm_data_layout
|
||||
- );
|
||||
- }
|
||||
- }
|
||||
-
|
||||
let data_layout = SmallCStr::new(&target_data_layout);
|
||||
llvm::LLVMSetDataLayout(llmod, data_layout.as_ptr());
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
rust: reproducibility issue fix with v1.75
|
||||
|
||||
With 1.75 rust release, the '.rustc' section of shared object libs are embedded with absolute path names which is casuing reproducibility issues.
|
||||
This change will fix the path name format back to '/rust/$hash' as in earlier versions.
|
||||
|
||||
Below are the links for detailed bug description & discusssion with upstream rust.
|
||||
https://github.com/rust-lang/rust/issues/120825#issuecomment-1964307219
|
||||
https://github.com/rust-lang/rust/issues/120825#issuecomment-1964652656
|
||||
|
||||
Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/121959/commits/a9a979839bbdfec48c75d618ab0dce8a953589b8]
|
||||
Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com>
|
||||
---
|
||||
--- a/compiler/rustc_session/src/session.rs 2023-12-21 08:55:28.000000000 -0800
|
||||
+++ b/compiler/rustc_session/src/session.rs 2024-02-26 07:29:15.527577022 -0800
|
||||
@@ -1260,19 +1260,6 @@
|
||||
}
|
||||
|
||||
pub fn should_prefer_remapped_for_codegen(&self) -> bool {
|
||||
- // bail out, if any of the requested crate types aren't:
|
||||
- // "compiled executables or libraries"
|
||||
- for crate_type in &self.opts.crate_types {
|
||||
- match crate_type {
|
||||
- CrateType::Executable
|
||||
- | CrateType::Dylib
|
||||
- | CrateType::Rlib
|
||||
- | CrateType::Staticlib
|
||||
- | CrateType::Cdylib => continue,
|
||||
- CrateType::ProcMacro => return false,
|
||||
- }
|
||||
- }
|
||||
-
|
||||
let has_split_debuginfo = match self.split_debuginfo() {
|
||||
SplitDebuginfo::Off => false,
|
||||
SplitDebuginfo::Packed => true,
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
When rust.channel is set to either beta or stable, we can't use
|
||||
nightly features on bootstrap without RUSTC_BOOTSTRAP. Set RUSTC_BOOTSTRAP=1
|
||||
to use nightly features on stable or beta.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/119619/commits/8aa7dd06f6e50621dc10f9f9490681be8a45876f]
|
||||
|
||||
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
||||
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
|
||||
---
|
||||
diff --git a/src/bootstrap/synthetic_targets.rs b/ src/bootstrap/synthetic_targets.rs
|
||||
index d2c65b740da..45baf56f46b 100644
|
||||
--- a/src/bootstrap/src/core/build_steps/synthetic_targets.rs
|
||||
+++ b/src/bootstrap/src/core/build_steps/synthetic_targets.rs
|
||||
@@ -59,6 +59,7 @@ fn create_synthetic_target(
|
||||
let mut cmd = Command::new(builder.rustc(compiler));
|
||||
cmd.arg("--target").arg(base.rustc_target_arg());
|
||||
cmd.args(["-Zunstable-options", "--print", "target-spec-json"]);
|
||||
+ cmd.env("RUSTC_BOOTSTRAP", "1");
|
||||
cmd.stdout(Stdio::piped());
|
||||
|
||||
let output = cmd.spawn().unwrap().wait_with_output().unwrap();
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,26 @@
|
||||
Add correct build value for cross-compiled targets on stage1 when
|
||||
bootstapping rustc.
|
||||
|
||||
Upstream-Status: Backport [https://github.com/rust-lang/rust/pull/119619/commits/b888e2f82b9dbe81875f50d13adbc0271a9401ff]
|
||||
|
||||
Signed-off-by: onur-ozkan <work@onurozkan.dev>
|
||||
Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
|
||||
---
|
||||
diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs
|
||||
--- a/src/bootstrap/src/core/build_steps/test.rs
|
||||
+++ b/src/bootstrap/src/core/build_steps/test.rs
|
||||
@@ -1489,8 +1489,12 @@
|
||||
// NOTE: Only stage 1 is special cased because we need the rustc_private artifacts to match the
|
||||
// running compiler in stage 2 when plugins run.
|
||||
let stage_id = if suite == "ui-fulldeps" && compiler.stage == 1 {
|
||||
- compiler = builder.compiler(compiler.stage - 1, target);
|
||||
- format!("stage{}-{}", compiler.stage + 1, target)
|
||||
+ // At stage 0 (stage - 1) we are using the beta compiler. Using `self.target` can lead finding
|
||||
+ // an incorrect compiler path on cross-targets, as the stage 0 beta compiler is always equal
|
||||
+ // to `build.build` in the configuration.
|
||||
+ let build = builder.build.build;
|
||||
+ compiler = builder.compiler(compiler.stage - 1, build);
|
||||
+ format!("stage{}-{}", compiler.stage + 1, build)
|
||||
} else {
|
||||
format!("stage{}-{}", compiler.stage, target)
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (C) 2022 Wind River Systems
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*
|
||||
*/
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
{
|
||||
unsetenv("LD_LIBRARY_PATH");
|
||||
execvp("target-rust-ccld-wrapper", argv);
|
||||
|
||||
return 0;
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
55
sources/poky/meta/recipes-devtools/rust/libstd-rs_1.75.0.bb
Normal file
55
sources/poky/meta/recipes-devtools/rust/libstd-rs_1.75.0.bb
Normal file
@@ -0,0 +1,55 @@
|
||||
SUMMARY = "Rust standard libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "(MIT | Apache-2.0) & Unicode-TOU"
|
||||
LIC_FILES_CHKSUM = "file://../../COPYRIGHT;md5=c2cccf560306876da3913d79062a54b9"
|
||||
|
||||
require rust-source.inc
|
||||
|
||||
# The dummy crate named `sysroot` represents the standard library target.
|
||||
#
|
||||
# See fd4c81f4c19e ("Add a `sysroot` crate to represent the standard library crates")
|
||||
# https://github.com/rust-lang/rust/pull/108865/
|
||||
S = "${RUSTSRC}/library/sysroot"
|
||||
|
||||
RUSTLIB_DEP = ""
|
||||
inherit cargo
|
||||
|
||||
CVE_PRODUCT = "rust"
|
||||
|
||||
DEPENDS:append:libc-musl = " libunwind"
|
||||
# rv32 does not have libunwind ported yet
|
||||
DEPENDS:remove:riscv32 = "libunwind"
|
||||
DEPENDS:remove:riscv64 = "libunwind"
|
||||
|
||||
# Embed bitcode in order to allow compiling both with and without LTO
|
||||
RUSTFLAGS += "-Cembed-bitcode=yes"
|
||||
# Needed so cargo can find libbacktrace
|
||||
RUSTFLAGS += "-L ${STAGING_LIBDIR} -C link-arg=-Wl,-soname,libstd.so"
|
||||
|
||||
CARGO_FEATURES ?= "panic-unwind backtrace"
|
||||
CARGO_BUILD_FLAGS += "--features '${CARGO_FEATURES}'"
|
||||
CARGO_VENDORING_DIRECTORY = "${RUSTSRC}/vendor"
|
||||
|
||||
do_compile:prepend () {
|
||||
export CARGO_TARGET_DIR="${B}"
|
||||
# For Rust 1.13.0 and newer
|
||||
export RUSTC_BOOTSTRAP="1"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
mkdir -p ${D}${rustlibdir}
|
||||
|
||||
# With the incremental build support added in 1.24, the libstd deps directory also includes dependency
|
||||
# files that get installed. Those are really only needed to incrementally rebuild the libstd library
|
||||
# itself and don't need to be installed.
|
||||
rm -f ${B}/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/*.d
|
||||
cp ${B}/${RUST_TARGET_SYS}/${BUILD_DIR}/deps/* ${D}${rustlibdir}
|
||||
}
|
||||
|
||||
BBCLASSEXTEND = "nativesdk"
|
||||
|
||||
# Since 1.70.0 upgrade this fails to build with gold:
|
||||
# http://errors.yoctoproject.org/Errors/Details/708194/
|
||||
# ld: error: version script assignment of to symbol __rust_alloc_error_handler_should_panic failed: symbol not defined
|
||||
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
|
||||
@@ -0,0 +1,74 @@
|
||||
SUMMARY = "Rust compiler and runtime libaries (cross-canadian for ${TARGET_ARCH} target)"
|
||||
PN = "rust-cross-canadian-${TRANSLATED_TARGET_ARCH}"
|
||||
CVE_PRODUCT = "rust"
|
||||
|
||||
inherit rust-target-config
|
||||
inherit rust-common
|
||||
|
||||
LICENSE = "MIT"
|
||||
|
||||
MODIFYTOS = "0"
|
||||
|
||||
DEPENDS += "virtual/${SDK_PREFIX}gcc virtual/nativesdk-libc virtual/nativesdk-${SDK_PREFIX}compilerlibs"
|
||||
|
||||
SRC_URI += "file://target-rust-ccld.c"
|
||||
LIC_FILES_CHKSUM = "file://target-rust-ccld.c;md5=af4e0e29f81a34cffe05aa07c89e93e9;endline=7"
|
||||
S = "${WORKDIR}"
|
||||
|
||||
# As per NVD, this CVE only affects to Windows platform
|
||||
# Link: https://nvd.nist.gov/vuln/detail/CVE-2024-43402
|
||||
CVE_STATUS[CVE-2024-43402] = "not-applicable-platform: Issue only applies on Windows"
|
||||
|
||||
# Need to use our SDK's sh here, see #14878
|
||||
create_sdk_wrapper () {
|
||||
file="$1"
|
||||
shift
|
||||
cat <<- EOF > "${file}"
|
||||
#!/bin/sh
|
||||
\$$1 \$@
|
||||
EOF
|
||||
|
||||
chmod +x "$file"
|
||||
}
|
||||
|
||||
do_install () {
|
||||
# Rust requires /usr/lib to contain the libs.
|
||||
# The required structure is retained for simplicity.
|
||||
SYS_LIBDIR=$(dirname ${D}${libdir})
|
||||
SYS_BINDIR=$(dirname ${D}${bindir})
|
||||
RUSTLIB_DIR=${SYS_LIBDIR}/${TARGET_SYS}/rustlib
|
||||
|
||||
install -d ${RUSTLIB_DIR}
|
||||
install -m 0644 "${RUST_TARGETS_DIR}/${RUST_HOST_SYS}.json" "${RUSTLIB_DIR}"
|
||||
install -m 0644 "${RUST_TARGETS_DIR}/${RUST_TARGET_SYS}.json" "${RUSTLIB_DIR}"
|
||||
|
||||
# Uses SDK's CC as linker so linked binaries works out of box.
|
||||
# We have a problem as rust sets LD_LIBRARY_PATH and this will break running host
|
||||
# binaries (even /bin/sh) in the SDK as they detect a newer glibc from the SDK
|
||||
# in those paths and we hit symbol errors. We saw particular problems with symbol
|
||||
# mismatch on ubuntu1804 during development. To avoid this we have an SDK built
|
||||
# binary which unsets LD_LIBRARY_PATH, which can then call the wrapper script
|
||||
# where the context is easier to do the env maniupations needed
|
||||
install -d ${SYS_BINDIR}
|
||||
outfile="${SYS_BINDIR}/target-rust-ccld"
|
||||
${CC} ${WORKDIR}/target-rust-ccld.c -o $outfile
|
||||
chmod +x "$outfile"
|
||||
create_sdk_wrapper "${SYS_BINDIR}/target-rust-ccld-wrapper" "CC"
|
||||
|
||||
ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
|
||||
mkdir "${ENV_SETUP_DIR}"
|
||||
RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/${RUST_TARGET_SYS}_rust.sh"
|
||||
|
||||
RUST_TARGET_TRIPLE=`echo ${RUST_TARGET_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'`
|
||||
|
||||
cat <<- EOF > "${RUST_ENV_SETUP_SH}"
|
||||
export CARGO_TARGET_${RUST_TARGET_TRIPLE}_RUSTFLAGS="--sysroot=\$OECORE_TARGET_SYSROOT/usr -C link-arg=--sysroot=\$OECORE_TARGET_SYSROOT"
|
||||
export RUST_TARGET_PATH="\$OECORE_NATIVE_SYSROOT/usr/lib/${TARGET_SYS}/rustlib"
|
||||
EOF
|
||||
|
||||
chown -R root.root ${D}
|
||||
|
||||
}
|
||||
|
||||
FILES:${PN} += "${base_prefix}/environment-setup.d"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
inherit cross-canadian
|
||||
require rust-cross-canadian.inc
|
||||
@@ -0,0 +1,31 @@
|
||||
From 86940d87026432683fb6741cd8a34d3b9b18e40d Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Fri, 27 Nov 2020 10:11:08 +0000
|
||||
Subject: [PATCH] AsmMatcherEmitter: sort ClassInfo lists by name as well
|
||||
|
||||
Otherwise, there are instances which are identical in
|
||||
every other field and therefore sort non-reproducibly
|
||||
(which breaks binary and source reproducibiliy).
|
||||
|
||||
Upstream-Status: Submitted [https://reviews.llvm.org/D97477]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
llvm/utils/TableGen/AsmMatcherEmitter.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
index ccf0959389b..1f801e83b7d 100644
|
||||
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
@@ -359,7 +359,10 @@ public:
|
||||
// name of a class shouldn't be significant. However, some of the backends
|
||||
// accidentally rely on this behaviour, so it will have to stay like this
|
||||
// until they are fixed.
|
||||
- return ValueName < RHS.ValueName;
|
||||
+ if (ValueName != RHS.ValueName)
|
||||
+ return ValueName < RHS.ValueName;
|
||||
+ // All else being equal, we should sort by name, for source and binary reproducibility
|
||||
+ return Name < RHS.Name;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 7111770e8290082530d920e120995bf81431b0aa Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kelly <mkelly@xevo.com>
|
||||
Date: Fri, 19 May 2017 00:22:57 -0700
|
||||
Subject: [PATCH 12/18] llvm: allow env override of exe path
|
||||
|
||||
When using a native llvm-config from inside a sysroot, we need llvm-config to
|
||||
return the libraries, include directories, etc. from inside the sysroot rather
|
||||
than from the native sysroot. Thus provide an env override for calling
|
||||
llvm-config from a target sysroot.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
Signed-off-by: Martin Kelly <mkelly@xevo.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/llvm/tools/llvm-config/llvm-config.cpp
|
||||
+++ b/llvm/tools/llvm-config/llvm-config.cpp
|
||||
@@ -226,6 +226,13 @@ Typical components:\n\
|
||||
|
||||
/// Compute the path to the main executable.
|
||||
std::string GetExecutablePath(const char *Argv0) {
|
||||
+ // Hack for Yocto: we need to override the root path when we are using
|
||||
+ // llvm-config from within a target sysroot.
|
||||
+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH");
|
||||
+ if (Sysroot != nullptr) {
|
||||
+ return Sysroot;
|
||||
+ }
|
||||
+
|
||||
// This just needs to be some symbol in the binary; C++ doesn't
|
||||
// allow taking the address of ::main however.
|
||||
void *P = (void *)(intptr_t)GetExecutablePath;
|
||||
@@ -0,0 +1,25 @@
|
||||
Subject: LLVM_INCLUDE_BENCHMARKS with llvm 14.0.1 failing to build
|
||||
|
||||
https://github.com/llvm/llvm-project/issues/54941
|
||||
|
||||
The LLVM_INCLUDE_BENCHMARKS is turned OFF to fix the build error as
|
||||
per the discussions in the above link. We will work on the issue and
|
||||
replace the workaround with actual fix once committed in LLVM.
|
||||
|
||||
Please refer the following link for more discussions on the issue:-
|
||||
https://github.com/rust-lang/rust/issues/96054
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Pgowda <pgowda.cve@gmail.com>
|
||||
|
||||
--- a/llvm/CMakeLists.txt 2022-04-22 00:45:30.543445478 -0700
|
||||
+++ b/llvm/CMakeLists.txt 2022-04-22 00:45:42.095232974 -0700
|
||||
@@ -615,7 +615,7 @@ option(LLVM_INCLUDE_GO_TESTS "Include th
|
||||
|
||||
option(LLVM_BUILD_BENCHMARKS "Add LLVM benchmark targets to the list of default
|
||||
targets. If OFF, benchmarks still could be built using Benchmarks target." OFF)
|
||||
-option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." ON)
|
||||
+option(LLVM_INCLUDE_BENCHMARKS "Generate benchmark targets. If OFF, benchmarks can't be built." OFF)
|
||||
|
||||
option (LLVM_BUILD_DOCS "Build the llvm documentation." OFF)
|
||||
option (LLVM_INCLUDE_DOCS "Generate build targets for llvm documentation." ON)
|
||||
File diff suppressed because it is too large
Load Diff
95
sources/poky/meta/recipes-devtools/rust/rust-llvm_1.75.0.bb
Normal file
95
sources/poky/meta/recipes-devtools/rust/rust-llvm_1.75.0.bb
Normal file
@@ -0,0 +1,95 @@
|
||||
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
||||
LICENSE ?= "Apache-2.0-with-LLVM-exception"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
|
||||
# check src/llvm-project/llvm/CMakeLists.txt for llvm version in use
|
||||
#
|
||||
LLVM_RELEASE = "17.0.6"
|
||||
|
||||
require rust-source.inc
|
||||
|
||||
SRC_URI += "file://0002-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
|
||||
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
|
||||
file://0003-llvm-fix-include-benchmarks.patch;striplevel=2 \
|
||||
file://0004-llvm-Fix-CVE-2024-0151.patch;striplevel=2"
|
||||
|
||||
S = "${RUSTSRC}/src/llvm-project/llvm"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe"
|
||||
|
||||
inherit cmake
|
||||
|
||||
DEPENDS += "ninja-native rust-llvm-native"
|
||||
|
||||
ARM_INSTRUCTION_SET:armv5 = "arm"
|
||||
ARM_INSTRUCTION_SET:armv4t = "arm"
|
||||
|
||||
# rustc_llvm with debug info is not recognized as a valid crate that's
|
||||
# generated by rust-llvm-native.
|
||||
CFLAGS:remove = "-g"
|
||||
CXXFLAGS:remove = "-g"
|
||||
|
||||
LLVM_DIR = "llvm${LLVM_RELEASE}"
|
||||
|
||||
RUST_LLVM_TARGETS ?= "ARM;AArch64;Mips;PowerPC;RISCV;X86"
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_TARGETS_TO_BUILD='${RUST_LLVM_TARGETS}' \
|
||||
-DLLVM_BUILD_DOCS=OFF \
|
||||
-DLLVM_ENABLE_TERMINFO=OFF \
|
||||
-DLLVM_ENABLE_ZLIB=OFF \
|
||||
-DLLVM_ENABLE_ZSTD=OFF \
|
||||
-DLLVM_ENABLE_LIBXML2=OFF \
|
||||
-DLLVM_ENABLE_FFI=OFF \
|
||||
-DLLVM_INSTALL_UTILS=ON \
|
||||
-DLLVM_BUILD_EXAMPLES=OFF \
|
||||
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
||||
-DLLVM_BUILD_TESTS=OFF \
|
||||
-DLLVM_INCLUDE_TESTS=OFF \
|
||||
-DLLVM_TARGET_ARCH=${TARGET_ARCH} \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${libdir}/llvm-rust \
|
||||
"
|
||||
|
||||
# Forcibly disable the detection of these packages as otherwise
|
||||
# it will look at the host Python install
|
||||
EXTRA_OECMAKE += "\
|
||||
-DPY_PYGMENTS_FOUND=OFF \
|
||||
-DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF \
|
||||
-DPY_YAML_FOUND=OFF \
|
||||
"
|
||||
|
||||
EXTRA_OECMAKE:append:class-target = "\
|
||||
-DLLVM_BUILD_TOOLS=OFF \
|
||||
-DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
|
||||
-DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
|
||||
"
|
||||
|
||||
EXTRA_OECMAKE:append:class-nativesdk = "\
|
||||
-DLLVM_BUILD_TOOLS=OFF \
|
||||
-DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
|
||||
-DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
|
||||
"
|
||||
|
||||
# The debug symbols are huge here (>2GB) so suppress them since they
|
||||
# provide almost no value. If you really need them then override this
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
|
||||
|
||||
do_install:append () {
|
||||
# we don't need any of this stuff to build Rust
|
||||
rm -rf "${D}/usr/lib/cmake"
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liblto"
|
||||
|
||||
# Add the extra locations to avoid the complaints about unpackaged files
|
||||
FILES:${PN}-bugpointpasses = "${libdir}/llvm-rust/lib/BugpointPasses.so"
|
||||
FILES:${PN}-llvmhello = "${libdir}/llvm-rust/lib/LLVMHello.so"
|
||||
FILES:${PN}-liblto = "${libdir}/llvm-rust/lib/libLTO.so.*"
|
||||
FILES:${PN}-staticdev =+ "${libdir}/llvm-rust/*/*.a"
|
||||
FILES:${PN} += "${libdir}/libLLVM*.so.* ${libdir}/llvm-rust/lib/*.so.* ${libdir}/llvm-rust/bin"
|
||||
FILES:${PN}-dev += "${datadir}/llvm ${libdir}/llvm-rust/lib/*.so ${libdir}/llvm-rust/include ${libdir}/llvm-rust/share ${libdir}/llvm-rust/lib/cmake"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
58
sources/poky/meta/recipes-devtools/rust/rust-snapshot.inc
Normal file
58
sources/poky/meta/recipes-devtools/rust/rust-snapshot.inc
Normal file
@@ -0,0 +1,58 @@
|
||||
## This is information on the rust-snapshot (binary) used to build our current release.
|
||||
## snapshot info is taken from rust/src/stage0.json
|
||||
## Rust is self-hosting and bootstraps itself with a pre-built previous version of itself.
|
||||
## The exact (previous) version that has been used is specified in the source tarball.
|
||||
## The version is replicated here.
|
||||
|
||||
SNAPSHOT_VERSION = "1.74.0"
|
||||
|
||||
SRC_URI[cargo-snapshot-aarch64.sha256sum] = "a18dc9132cf76ccba90bcbb53b56a4d37ebfb34845f61e79f7b5d4710a269647"
|
||||
SRC_URI[rust-std-snapshot-aarch64.sha256sum] = "c5ad01692bc08ce6f4db2ac815be63498b45013380c71f22b3d33bf3be767270"
|
||||
SRC_URI[rustc-snapshot-aarch64.sha256sum] = "a49bb365481913ead305658e7e9dc621da7895036b840fb57b1bc85c721d07e6"
|
||||
|
||||
SRC_URI[cargo-snapshot-i686.sha256sum] = "9f5b5226a69f95950a381ec5bb15dde7a90865a6df8aa0b470082a40d42d9f38"
|
||||
SRC_URI[rust-std-snapshot-i686.sha256sum] = "69757b72def9c433753e8bb575c817fc1ba389cf1a9c25276db1491ec025e495"
|
||||
SRC_URI[rustc-snapshot-i686.sha256sum] = "7a2bc1bf7e51942d32e82f461eacebe7f929c3eec210dcb7dc6624efd997d7da"
|
||||
|
||||
SRC_URI[cargo-snapshot-loongarch64.sha256sum] = "77d6d55122150d8fc56d31fb166fd1b2ae48bff7376459c1b0030727fc604998"
|
||||
SRC_URI[rust-std-snapshot-loongarch64.sha256sum] = "13b85a882e912d0d8b3228feb5c263d34ec353d483c9defbd3e6bba38935553b"
|
||||
SRC_URI[rustc-snapshot-loongarch64.sha256sum] = "703e8c81f9ca3100fc459db92fd5899de62cf77393f334f98159cd97feb11633"
|
||||
|
||||
SRC_URI[cargo-snapshot-powerpc.sha256sum] = "08ea8a345839f34d26f21b94ed6d458e6a38513999f7ddc05175c371983e6deb"
|
||||
SRC_URI[rust-std-snapshot-powerpc.sha256sum] = "458ee056fbeccf1cf96c20506654e5e9104c4e8f23d46cd4bb9b97ff5b3f4d55"
|
||||
SRC_URI[rustc-snapshot-powerpc.sha256sum] = "d4095cbe26ec197274dae9409e68843653e8c08c0b79e8cd74e72d9907e99816"
|
||||
|
||||
SRC_URI[cargo-snapshot-powerpc64.sha256sum] = "696863642318f139634e6856f5e946ea970318ce79d4d9b1595871a70a662a89"
|
||||
SRC_URI[rust-std-snapshot-powerpc64.sha256sum] = "7ec56629b7d887753ce3a895fb73b77d2d395acac30207c2b69237ef63279872"
|
||||
SRC_URI[rustc-snapshot-powerpc64.sha256sum] = "ca162463db262df9d646687386a1c19f15c8ca9bf1f29eea94f2a8a6d7a6102d"
|
||||
|
||||
SRC_URI[cargo-snapshot-powerpc64le.sha256sum] = "2eccd404aabe5137a8e45b6173c27d08862a0e674d5866be71aff1434f271d50"
|
||||
SRC_URI[rust-std-snapshot-powerpc64le.sha256sum] = "785956d68855de18546c87d6d06cd2505cb8a10edba84327bf2b448420a31d55"
|
||||
SRC_URI[rustc-snapshot-powerpc64le.sha256sum] = "8727b1a92e88ac1ce05198ee185dac86553edd7f50b726781c9ab64544b59809"
|
||||
|
||||
SRC_URI[cargo-snapshot-riscv64gc.sha256sum] = "5b224e465e006b5fe959ad64d0df0540c4318ba4e39edd89794d520eef60b026"
|
||||
SRC_URI[rust-std-snapshot-riscv64gc.sha256sum] = "2a500156825dde03a53c965e5764a440b1ebce973b8a31f21e8bd8104271d56e"
|
||||
SRC_URI[rustc-snapshot-riscv64gc.sha256sum] = "f4f27f1c40208b61ea7e61f9edf2de1787aea78a1edb7fe15bceb20de5c7a4a3"
|
||||
|
||||
SRC_URI[cargo-snapshot-s390x.sha256sum] = "06267377c811271d6e4ba6feea1d4b84a9f4c5c8d1dbd46092d0a0595f24e9b6"
|
||||
SRC_URI[rust-std-snapshot-s390x.sha256sum] = "35142541b88a1244c8225c64ee18585446d7e67841a9335ccaa95acf2d34dde5"
|
||||
SRC_URI[rustc-snapshot-s390x.sha256sum] = "41eae7788549aec58a6980ae6222d3330a01a37d1e7856d087a4e9c8a19aa890"
|
||||
|
||||
SRC_URI[cargo-snapshot-x86_64.sha256sum] = "f219386d4569c40b660518e99267afff428c13bf980bda7a614c8d4038d013f6"
|
||||
SRC_URI[rust-std-snapshot-x86_64.sha256sum] = "548413213012e2f62b08ed8a913a51210ae7402619027224580176031f2789ea"
|
||||
SRC_URI[rustc-snapshot-x86_64.sha256sum] = "7d464be2ae0d6ce69f056d1ea9a8ce2b3b1d537418caea216fdd303903972181"
|
||||
|
||||
SRC_URI[rust-std-snapshot-i586.sha256sum] = "bd4502462c5e2b2617b23f28862e544f14c4d02658f6d331f0cfbbba914aa4c0"
|
||||
|
||||
SRC_URI[rust-std-snapshot-sparc64.sha256sum] = "68e96875ca7fc6ed0e023fcf752f28b95e9cc7d9881af4e8e167259fdaec7168"
|
||||
|
||||
SRC_URI += " \
|
||||
${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
${RUST_DIST_SERVER}/dist/${RUSTC_SNAPSHOT}.tar.xz;name=rustc-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
${RUST_DIST_SERVER}/dist/${CARGO_SNAPSHOT}.tar.xz;name=cargo-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \
|
||||
"
|
||||
|
||||
RUST_DIST_SERVER = "https://static.rust-lang.org"
|
||||
RUST_STD_SNAPSHOT = "rust-std-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
|
||||
RUSTC_SNAPSHOT = "rustc-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
|
||||
CARGO_SNAPSHOT = "cargo-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
|
||||
25
sources/poky/meta/recipes-devtools/rust/rust-source.inc
Normal file
25
sources/poky/meta/recipes-devtools/rust/rust-source.inc
Normal file
@@ -0,0 +1,25 @@
|
||||
RUST_VERSION ?= "${@d.getVar('PV').split('-')[0]}"
|
||||
|
||||
SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;name=rust \
|
||||
file://hardcodepaths.patch;patchdir=${RUSTSRC} \
|
||||
file://zlib-off64_t.patch;patchdir=${RUSTSRC} \
|
||||
file://0001-Revert-Map-source-absolute-paths-to-OUT_DIR-as-relat.patch;patchdir=${RUSTSRC} \
|
||||
file://rv32-missing-syscalls.patch;patchdir=${RUSTSRC} \
|
||||
file://rv32-rustix-libc-backend.patch;patchdir=${RUSTSRC} \
|
||||
file://rv32-cargo-rustix-0.38.19-fix.patch;patchdir=${RUSTSRC} \
|
||||
file://custom-target-cfg.patch;patchdir=${RUSTSRC} \
|
||||
file://rustc-bootstrap.patch;patchdir=${RUSTSRC} \
|
||||
file://target-build-value.patch;patchdir=${RUSTSRC} \
|
||||
file://0001-Handle-vendored-sources-when-remapping-paths.patch;patchdir=${RUSTSRC} \
|
||||
file://repro-issue-fix-with-v175.patch;patchdir=${RUSTSRC} \
|
||||
file://0001-cargo-do-not-write-host-information-into-compilation.patch;patchdir=${RUSTSRC} \
|
||||
"
|
||||
SRC_URI[rust.sha256sum] = "4526f786d673e4859ff2afa0bab2ba13c918b796519a25c1acce06dba9542340"
|
||||
|
||||
RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
|
||||
UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
|
||||
|
||||
CVE_STATUS[CVE-2024-24576] = "not-applicable-platform: Issue only applies on Windows"
|
||||
CVE_STATUS[CVE-2024-43402] = "not-applicable-platform: Issue only applies on Windows"
|
||||
380
sources/poky/meta/recipes-devtools/rust/rust_1.75.0.bb
Normal file
380
sources/poky/meta/recipes-devtools/rust/rust_1.75.0.bb
Normal file
@@ -0,0 +1,380 @@
|
||||
SUMMARY = "Rust compiler and runtime libaries"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
SECTION = "devel"
|
||||
LICENSE = "(MIT | Apache-2.0) & Unicode-TOU"
|
||||
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c2cccf560306876da3913d79062a54b9"
|
||||
|
||||
inherit rust
|
||||
inherit cargo_common
|
||||
|
||||
DEPENDS += "file-native python3-native"
|
||||
DEPENDS:append:class-native = " rust-llvm-native"
|
||||
DEPENDS:append:class-nativesdk = " nativesdk-rust-llvm"
|
||||
|
||||
# native rust uses cargo/rustc from binary snapshots to bootstrap
|
||||
# but everything else should use our native builds
|
||||
DEPENDS:append:class-target = " cargo-native rust-native"
|
||||
DEPENDS:append:class-nativesdk = " cargo-native rust-native"
|
||||
|
||||
DEPENDS += "rust-llvm (=${PV})"
|
||||
|
||||
RDEPENDS:${PN}:append:class-target = " gcc g++ binutils"
|
||||
|
||||
# Otherwise we'll depend on what we provide
|
||||
INHIBIT_DEFAULT_RUST_DEPS:class-native = "1"
|
||||
# We don't need to depend on gcc-native because yocto assumes it exists
|
||||
PROVIDES:class-native = "virtual/${TARGET_PREFIX}rust"
|
||||
|
||||
S = "${RUSTSRC}"
|
||||
|
||||
# Use at your own risk, accepted values are stable, beta and nightly
|
||||
RUST_CHANNEL ?= "stable"
|
||||
PV .= "${@bb.utils.contains('RUST_CHANNEL', 'stable', '', '-${RUST_CHANNEL}', d)}"
|
||||
|
||||
export FORCE_CRATE_HASH="${BB_TASKHASH}"
|
||||
|
||||
RUST_ALTERNATE_EXE_PATH ?= "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
|
||||
RUST_ALTERNATE_EXE_PATH_NATIVE = "${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config"
|
||||
|
||||
# We don't want to use bitbakes vendoring because the rust sources do their
|
||||
# own vendoring.
|
||||
CARGO_DISABLE_BITBAKE_VENDORING = "1"
|
||||
|
||||
setup_cargo_environment () {
|
||||
# The first step is to build bootstrap and some early stage tools,
|
||||
# these are build for the same target as the snapshot, e.g.
|
||||
# x86_64-unknown-linux-gnu.
|
||||
# Later stages are build for the native target (i.e. target.x86_64-linux)
|
||||
cargo_common_do_configure
|
||||
}
|
||||
|
||||
inherit rust-target-config
|
||||
|
||||
do_rust_setup_snapshot () {
|
||||
for installer in "${WORKDIR}/rust-snapshot-components/"*"/install.sh"; do
|
||||
"${installer}" --prefix="${WORKDIR}/rust-snapshot" --disable-ldconfig
|
||||
done
|
||||
|
||||
# Some versions of rust (e.g. 1.18.0) tries to find cargo in stage0/bin/cargo
|
||||
# and fail without it there.
|
||||
mkdir -p ${RUSTSRC}/build/${RUST_BUILD_SYS}
|
||||
ln -sf ${WORKDIR}/rust-snapshot/ ${RUSTSRC}/build/${RUST_BUILD_SYS}/stage0
|
||||
|
||||
# Need to use uninative's loader if enabled/present since the library paths
|
||||
# are used internally by rust and result in symbol mismatches if we don't
|
||||
if [ ! -z "${UNINATIVE_LOADER}" -a -e "${UNINATIVE_LOADER}" ]; then
|
||||
for bin in cargo rustc rustdoc; do
|
||||
patchelf-uninative ${WORKDIR}/rust-snapshot/bin/$bin --set-interpreter ${UNINATIVE_LOADER}
|
||||
done
|
||||
fi
|
||||
}
|
||||
addtask rust_setup_snapshot after do_unpack before do_configure
|
||||
addtask do_test_compile after do_configure do_rust_gen_targets
|
||||
do_rust_setup_snapshot[dirs] += "${WORKDIR}/rust-snapshot"
|
||||
do_rust_setup_snapshot[vardepsexclude] += "UNINATIVE_LOADER"
|
||||
|
||||
RUSTC_BOOTSTRAP = "${STAGING_BINDIR_NATIVE}/rustc"
|
||||
CARGO_BOOTSTRAP = "${STAGING_BINDIR_NATIVE}/cargo"
|
||||
RUSTC_BOOTSTRAP:class-native = "${WORKDIR}/rust-snapshot/bin/rustc"
|
||||
CARGO_BOOTSTRAP:class-native = "${WORKDIR}/rust-snapshot/bin/cargo"
|
||||
|
||||
python do_configure() {
|
||||
import json
|
||||
import configparser
|
||||
|
||||
# toml is rather similar to standard ini like format except it likes values
|
||||
# that look more JSON like. So for our purposes simply escaping all values
|
||||
# as JSON seem to work fine.
|
||||
|
||||
e = lambda s: json.dumps(s)
|
||||
|
||||
config = configparser.RawConfigParser()
|
||||
|
||||
# [target.ARCH-poky-linux]
|
||||
host_section = "target.{}".format(d.getVar('RUST_HOST_SYS'))
|
||||
config.add_section(host_section)
|
||||
|
||||
llvm_config_target = d.expand("${RUST_ALTERNATE_EXE_PATH}")
|
||||
llvm_config_build = d.expand("${RUST_ALTERNATE_EXE_PATH_NATIVE}")
|
||||
config.set(host_section, "llvm-config", e(llvm_config_target))
|
||||
|
||||
config.set(host_section, "cxx", e(d.expand("${RUST_TARGET_CXX}")))
|
||||
config.set(host_section, "cc", e(d.expand("${RUST_TARGET_CC}")))
|
||||
config.set(host_section, "linker", e(d.expand("${RUST_TARGET_CCLD}")))
|
||||
if "musl" in host_section:
|
||||
config.set(host_section, "musl-root", e(d.expand("${STAGING_DIR_HOST}${exec_prefix}")))
|
||||
|
||||
# If we don't do this rust-native will compile it's own llvm for BUILD.
|
||||
# [target.${BUILD_ARCH}-unknown-linux-gnu]
|
||||
build_section = "target.{}".format(d.getVar('RUST_BUILD_SYS'))
|
||||
if build_section != host_section:
|
||||
config.add_section(build_section)
|
||||
|
||||
config.set(build_section, "llvm-config", e(llvm_config_build))
|
||||
|
||||
config.set(build_section, "cxx", e(d.expand("${RUST_BUILD_CXX}")))
|
||||
config.set(build_section, "cc", e(d.expand("${RUST_BUILD_CC}")))
|
||||
config.set(build_section, "linker", e(d.expand("${RUST_BUILD_CCLD}")))
|
||||
|
||||
target_section = "target.{}".format(d.getVar('RUST_TARGET_SYS'))
|
||||
if target_section != host_section and target_section != build_section:
|
||||
config.add_section(target_section)
|
||||
|
||||
config.set(target_section, "llvm-config", e(llvm_config_target))
|
||||
|
||||
config.set(target_section, "cxx", e(d.expand("${RUST_TARGET_CXX}")))
|
||||
config.set(target_section, "cc", e(d.expand("${RUST_TARGET_CC}")))
|
||||
config.set(target_section, "linker", e(d.expand("${RUST_TARGET_CCLD}")))
|
||||
|
||||
# [llvm]
|
||||
config.add_section("llvm")
|
||||
config.set("llvm", "static-libstdcpp", e(False))
|
||||
if "llvm" in (d.getVar('TC_CXX_RUNTIME') or ""):
|
||||
config.set("llvm", "use-libcxx", e(True))
|
||||
|
||||
# [rust]
|
||||
config.add_section("rust")
|
||||
config.set("rust", "rpath", e(True))
|
||||
config.set("rust", "remap-debuginfo", e(True))
|
||||
config.set("rust", "channel", e(d.expand("${RUST_CHANNEL}")))
|
||||
|
||||
# Whether or not to optimize the compiler and standard library
|
||||
config.set("rust", "optimize", e(True))
|
||||
|
||||
# Emits extraneous output from tests to ensure that failures of the test
|
||||
# harness are debuggable just from logfiles
|
||||
config.set("rust", "verbose-tests", e(True))
|
||||
|
||||
# [build]
|
||||
config.add_section("build")
|
||||
config.set("build", "submodules", e(False))
|
||||
config.set("build", "docs", e(False))
|
||||
|
||||
rustc = d.getVar('RUSTC_BOOTSTRAP')
|
||||
config.set("build", "rustc", e(rustc))
|
||||
|
||||
cargo = d.getVar('CARGO_BOOTSTRAP')
|
||||
config.set("build", "cargo", e(cargo))
|
||||
|
||||
config.set("build", "vendor", e(True))
|
||||
|
||||
config.set("build", "target", e([d.getVar("RUST_TARGET_SYS")]))
|
||||
|
||||
config.set("build", "host", e([d.getVar("RUST_HOST_SYS")]))
|
||||
|
||||
# We can't use BUILD_SYS since that is something the rust snapshot knows
|
||||
# nothing about when trying to build some stage0 tools (like fabricate)
|
||||
config.set("build", "build", e(d.getVar("RUST_BUILD_SYS")))
|
||||
|
||||
# [install]
|
||||
config.add_section("install")
|
||||
# ./x.py install doesn't have any notion of "destdir"
|
||||
# but we can prepend ${D} to all the directories instead
|
||||
config.set("install", "prefix", e(d.getVar("D") + d.getVar("prefix")))
|
||||
config.set("install", "bindir", e(d.getVar("D") + d.getVar("bindir")))
|
||||
config.set("install", "libdir", e(d.getVar("D") + d.getVar("libdir")))
|
||||
config.set("install", "datadir", e(d.getVar("D") + d.getVar("datadir")))
|
||||
config.set("install", "mandir", e(d.getVar("D") + d.getVar("mandir")))
|
||||
config.set("install", "sysconfdir", e(d.getVar("D") + d.getVar("sysconfdir")))
|
||||
|
||||
with open("config.toml", "w") as f:
|
||||
f.write('change-id = 116881\n\n')
|
||||
config.write(f)
|
||||
|
||||
# set up ${WORKDIR}/cargo_home
|
||||
bb.build.exec_func("setup_cargo_environment", d)
|
||||
}
|
||||
|
||||
rust_runx () {
|
||||
echo "COMPILE ${PN}" "$@"
|
||||
|
||||
# CFLAGS, LDFLAGS, CXXFLAGS, CPPFLAGS are used by rust's build for a
|
||||
# wide range of targets (not just TARGET). Yocto's settings for them will
|
||||
# be inappropriate, avoid using.
|
||||
unset CFLAGS
|
||||
unset LDFLAGS
|
||||
unset CXXFLAGS
|
||||
unset CPPFLAGS
|
||||
|
||||
export RUSTFLAGS="${RUST_DEBUG_REMAP}"
|
||||
|
||||
# Copy the natively built llvm-config into the target so we can run it. Horrible,
|
||||
# but works!
|
||||
if [ ${RUST_ALTERNATE_EXE_PATH_NATIVE} != ${RUST_ALTERNATE_EXE_PATH} -a ! -f ${RUST_ALTERNATE_EXE_PATH} ]; then
|
||||
mkdir -p `dirname ${RUST_ALTERNATE_EXE_PATH}`
|
||||
cp ${RUST_ALTERNATE_EXE_PATH_NATIVE} ${RUST_ALTERNATE_EXE_PATH}
|
||||
if [ -e ${STAGING_LIBDIR_NATIVE}/libc++.so.1 ]; then
|
||||
chrpath -r \$ORIGIN/../../../../../`basename ${STAGING_DIR_NATIVE}`${libdir_native} ${RUST_ALTERNATE_EXE_PATH}
|
||||
else
|
||||
chrpath -d ${RUST_ALTERNATE_EXE_PATH}
|
||||
fi
|
||||
fi
|
||||
|
||||
oe_cargo_fix_env
|
||||
|
||||
python3 src/bootstrap/bootstrap.py ${@oe.utils.parallel_make_argument(d, '-j %d')} "$@" --verbose
|
||||
}
|
||||
rust_runx[vardepsexclude] += "PARALLEL_MAKE"
|
||||
|
||||
require rust-source.inc
|
||||
require rust-snapshot.inc
|
||||
|
||||
INSANE_SKIP:${PN}:class-native = "already-stripped"
|
||||
FILES:${PN} += "${libdir}/rustlib"
|
||||
FILES:${PN} += "${libdir}/*.so"
|
||||
FILES:${PN}-dev = ""
|
||||
|
||||
do_compile () {
|
||||
}
|
||||
|
||||
do_test_compile[dirs] = "${B}"
|
||||
do_test_compile () {
|
||||
rust_runx build src/tools/remote-test-server --target "${RUST_TARGET_SYS}"
|
||||
}
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
|
||||
PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt"
|
||||
FILES:${PN}-rustdoc = "${bindir}/rustdoc"
|
||||
FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver"
|
||||
FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt"
|
||||
RDEPENDS:${PN}-rustdoc = "${PN}"
|
||||
RDEPENDS:${PN}-tools-clippy = "${PN}"
|
||||
RDEPENDS:${PN}-tools-rustfmt = "${PN}"
|
||||
|
||||
SUMMARY:${PN}-tools-clippy = "A collection of lints to catch common mistakes and improve your Rust code"
|
||||
SUMMARY:${PN}-tools-rustfmt = "A tool for formatting Rust code according to style guidelines"
|
||||
|
||||
do_install () {
|
||||
rust_do_install
|
||||
}
|
||||
|
||||
rust_do_install() {
|
||||
rust_runx install
|
||||
}
|
||||
|
||||
rust_do_install:class-nativesdk() {
|
||||
export PSEUDO_UNLOAD=1
|
||||
rust_runx install
|
||||
rust_runx install clippy
|
||||
rust_runx install rustfmt
|
||||
unset PSEUDO_UNLOAD
|
||||
|
||||
install -d ${D}${bindir}
|
||||
for i in cargo-clippy clippy-driver rustfmt; do
|
||||
cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir}
|
||||
chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i
|
||||
done
|
||||
|
||||
chown root:root ${D}/ -R
|
||||
rm ${D}${libdir}/rustlib/uninstall.sh
|
||||
rm ${D}${libdir}/rustlib/install.log
|
||||
rm ${D}${libdir}/rustlib/manifest*
|
||||
|
||||
ENV_SETUP_DIR=${D}${base_prefix}/environment-setup.d
|
||||
mkdir "${ENV_SETUP_DIR}"
|
||||
RUST_ENV_SETUP_SH="${ENV_SETUP_DIR}/rust.sh"
|
||||
RUST_HOST_TRIPLE=`echo ${RUST_HOST_SYS} | tr '[:lower:]' '[:upper:]' | sed 's/-/_/g'`
|
||||
SDKLOADER=${@bb.utils.contains('SDK_ARCH', 'x86_64', 'ld-linux-x86-64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'i686', 'ld-linux.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'aarch64', 'ld-linux-aarch64.so.1', '', d)}${@bb.utils.contains('SDK_ARCH', 'ppc64le', 'ld64.so.2', '', d)}${@bb.utils.contains('SDK_ARCH', 'riscv64', 'ld-linux-riscv64-lp64d.so.1', '', d)}
|
||||
|
||||
cat <<- EOF > "${RUST_ENV_SETUP_SH}"
|
||||
export CARGO_TARGET_${RUST_HOST_TRIPLE}_RUNNER="\$OECORE_NATIVE_SYSROOT/lib/${SDKLOADER}"
|
||||
EOF
|
||||
}
|
||||
|
||||
FILES:${PN} += "${base_prefix}/environment-setup.d"
|
||||
|
||||
EXTRA_TOOLS ?= "cargo-clippy clippy-driver rustfmt"
|
||||
rust_do_install:class-target() {
|
||||
export PSEUDO_UNLOAD=1
|
||||
rust_runx install
|
||||
rust_runx install clippy
|
||||
rust_runx install rustfmt
|
||||
unset PSEUDO_UNLOAD
|
||||
|
||||
install -d ${D}${bindir}
|
||||
for i in ${EXTRA_TOOLS}; do
|
||||
cp build/${RUST_BUILD_SYS}/stage2-tools/${RUST_HOST_SYS}/release/$i ${D}${bindir}
|
||||
chrpath -r "\$ORIGIN/../lib" ${D}${bindir}/$i
|
||||
done
|
||||
|
||||
install -d ${D}${libdir}/rustlib/${RUST_HOST_SYS}
|
||||
install -m 0644 ${WORKDIR}/rust-targets/${RUST_HOST_SYS}.json ${D}${libdir}/rustlib/${RUST_HOST_SYS}/target.json
|
||||
|
||||
chown root:root ${D}/ -R
|
||||
rm ${D}${libdir}/rustlib/uninstall.sh
|
||||
rm ${D}${libdir}/rustlib/install.log
|
||||
rm ${D}${libdir}/rustlib/manifest*
|
||||
}
|
||||
|
||||
addtask do_update_snapshot after do_patch
|
||||
do_update_snapshot[nostamp] = "1"
|
||||
|
||||
# Run with `bitbake -c update_snapshot rust` to update `rust-snapshot.inc`
|
||||
# with the checksums for the rust snapshot associated with this rustc-src
|
||||
# tarball.
|
||||
python do_update_snapshot() {
|
||||
import json
|
||||
import re
|
||||
import sys
|
||||
|
||||
from collections import defaultdict
|
||||
|
||||
with open(os.path.join(d.getVar("S"), "src", "stage0.json")) as f:
|
||||
j = json.load(f)
|
||||
|
||||
config_dist_server = j['config']['dist_server']
|
||||
compiler_date = j['compiler']['date']
|
||||
compiler_version = j['compiler']['version']
|
||||
|
||||
src_uri = defaultdict(list)
|
||||
for k, v in j['checksums_sha256'].items():
|
||||
m = re.search(f"dist/{compiler_date}/(?P<component>.*)-{compiler_version}-(?P<arch>.*)-unknown-linux-gnu\\.tar\\.xz", k)
|
||||
if m:
|
||||
component = m.group('component')
|
||||
arch = m.group('arch')
|
||||
src_uri[arch].append(f"SRC_URI[{component}-snapshot-{arch}.sha256sum] = \"{v}\"")
|
||||
|
||||
snapshot = """\
|
||||
## This is information on the rust-snapshot (binary) used to build our current release.
|
||||
## snapshot info is taken from rust/src/stage0.json
|
||||
## Rust is self-hosting and bootstraps itself with a pre-built previous version of itself.
|
||||
## The exact (previous) version that has been used is specified in the source tarball.
|
||||
## The version is replicated here.
|
||||
|
||||
SNAPSHOT_VERSION = "%s"
|
||||
|
||||
""" % compiler_version
|
||||
|
||||
for arch, components in src_uri.items():
|
||||
snapshot += "\n".join(components) + "\n\n"
|
||||
|
||||
snapshot += """\
|
||||
SRC_URI += " \\
|
||||
${RUST_DIST_SERVER}/dist/${RUST_STD_SNAPSHOT}.tar.xz;name=rust-std-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \\
|
||||
${RUST_DIST_SERVER}/dist/${RUSTC_SNAPSHOT}.tar.xz;name=rustc-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \\
|
||||
${RUST_DIST_SERVER}/dist/${CARGO_SNAPSHOT}.tar.xz;name=cargo-snapshot-${RUST_BUILD_ARCH};subdir=rust-snapshot-components \\
|
||||
"
|
||||
|
||||
RUST_DIST_SERVER = "%s"
|
||||
|
||||
RUST_STD_SNAPSHOT = "rust-std-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
|
||||
RUSTC_SNAPSHOT = "rustc-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
|
||||
CARGO_SNAPSHOT = "cargo-${SNAPSHOT_VERSION}-${RUST_BUILD_ARCH}-unknown-linux-gnu"
|
||||
""" % config_dist_server
|
||||
|
||||
with open(os.path.join(d.getVar("THISDIR"), "rust-snapshot.inc"), "w") as f:
|
||||
f.write(snapshot)
|
||||
}
|
||||
|
||||
RUSTLIB_DEP:class-nativesdk = ""
|
||||
|
||||
# musl builds include libunwind.a
|
||||
INSANE_SKIP:${PN} = "staticdev"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
# Since 1.70.0 upgrade this fails to build with gold:
|
||||
# http://errors.yoctoproject.org/Errors/Details/708196/
|
||||
# ld: error: version script assignment of to symbol __rust_alloc_error_handler_should_panic failed: symbol not defined
|
||||
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd', '', d)}"
|
||||
Reference in New Issue
Block a user