One should do this when needed executables at run time. It is more
honest and cross-friendly than refering to binutils directly, if one
neeeds the default binary tools for the target platform, rather than
binutils in particular.
The biggest benefit is that we no longer have to update the registry
package. This means that just about any cargo package can be built by
nix. No longer does `cargo update` need to be feared because it will
update to packages newer then what is available in nixpkgs.
Instead of fetching the cargo registry this bundles all the source code
into a "vendor/" folder.
This also uses the new --frozen and --locked flags which is nice.
Currently cargo-vendor only provides binaries for Linux and
macOS 64-bit. This can be solved by building it for the other
architectures and uploading it somewhere (like the NixOS cache).
This also has the downside that it requires a change to everyone's deps
hash. And if the old one is used because it was cached it will fail to
build as it will attempt to use the old version. For this reason the
attribute has been renamed to `cargoSha256`.
Authors:
* Kevin Cox <kevincox@kevincox.ca>
* Jörg Thalheim <Mic92@users.noreply.github.com>
* zimbatm <zimbatm@zimbatm.com>
simplify the boostrap hashes a bit
build with bundled llvm:
the rust project has forked the llvm compiler to solve some
issues.
With pkgs.llvm the test suite fails.
See https://github.com/rust-lang/rust/pull/43026
And PR #30088
Packages get --host and --target by default, but can explicitly request
any subset to be passed as needed. See docs for more info.
rustc: Avoid hash breakage by using the old (ignored)
dontSetConfigureCross when not cross building
Also updates beta, nightly, nightlyBin, and bootstrap compilers.
Also updates the registry.
Also consolidates logic between bootstrap and nightlyBin compilers.
Also contains some miscellaneous cleanups.
Also patches firefox to build with the newer cargo
This reverts commit 9f86136cef.
Rust is nowadays required for building Firefox, so the channel updates
are blocked on this.
(It also builds fine for me.)
Since cargo build became a rust package, postInstall hook was no longer
called. When the hook was reenabled in
cdd11368426380db545cad84c76e350e5e201adc, it revealed that scripts
leftover from the component based installer are no longer present.
Newer nightlies check a new environment variable that if set will loosen
restrictions on which compiler version can be used for bootstrapping.
Upstream issue is at https://github.com/rust-lang/rust/pull/37265