`cargo cbuild` needs to have the `C{C,XX}_FOR_{${platform}}`
variables set just like `cargo` since it is basically a wrapper
around cargo. Without these variables, it will try to use the
`hostPlatform` C compiler to compile `build.rs` scripts, and will
pass flags to that compiler which only make sense on the
`buildPlatform`. So it's just doomed without the environment
variables.
Right now it looks like `rav1e` is the only package we have that is
using `cargo-c`, but if that changes in the future we should factor
this out as its own hook, like `maturinBuildHook` and the others.
This is a native build input because it's used at build time by the
"built" crate, which tries to embed git info and build timestamps into
the binary (ugh).
This fixes cross-compilation from x86_64 to aarch64, because git2's
build.rs tries to use -m64, which is x86_64-only.
Rust 1.50.0 incorporated a Cargo change (rust-lang/cargo#8937) in
which cargo vendor erroneously changed permissions of vendored
crates. This was fixed in Rust
1.51.0 (rust-lang/cargo#9131). Unfortunately, this means that all
cargoSha256/cargoHashes produced during the Rust 1.50.0 cycle are
potentially broken.
This change updates cargoSha256/cargoHash tree-wide.
Fixes#121994.
The Cargo.lock file is not included in the master branch but it is
currently added for the releases (e.g. [0]). Since the GitHub deploy
action currently fails for other reasons [1] we should use the
Cargo.lock from the repository instead.
[0]: 80573d2bf7
[1]: https://github.com/xiph/rav1e/issues/2373
Changes the default fetcher in the Rust Platform to be the newer
`fetchCargoTarball`, and changes every application using the current default to
instead opt out.
This commit does not change any hashes or cause any rebuilds. Once integrated,
we will start deleting the opt-outs and recomputing hashes.
See #79975 for details.