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
This requires some small changes in the stdenv, then working around the
weird choice LLVM made to hardcode @rpath in its install name, and then
lets us remove a ton of annoying workaround hacks in many of our Go
packages. With any luck this will mean less hackery going forward.
The source distribution contains binaries (probably for testing) that
make the Avira virus scanner treat it as malware on account of a “bad
ELF header”. Apart from being preferable in general, the HTTPS download
makes the file opaque to the overeager AV scanner in transparent
proxying setups.
Also adapt to the fact that the canonical downloads now point to a URL
like this:
https://releases.llvm.org/4.0.1/llvm-4.0.1.src.tar.xz
Due to https://github.com/crystal-lang/crystal/issues/4719,
when building Crystal with LLVM 4 with debug infos from prebuilt binary (w/ LLVM 3.8) will always be failed.
The temporary solution is to build a LLVM 4 version without debug info,
then use it to build Crystal with debug info on LLVM 4.
This will cause building phrase going longer then normal.
We can remove this hack after Crystal fix the issue.