NOTE: even though the latest upstream version is 2.1.46 we cannot use
this as every rustracer version technically requires nightly Rust. We
work around this by setting `RUSTC_BOOTSTRAP`, but also have to stick to
older versions where each used "nightly" feature is already in a `rustc`
that's also available in `nixpkgs`.
ZHF #122042Closes#119155
Hydra build: https://hydra.nixos.org/build/142609369
Failing build: https://hydra.nixos.org/build/134175791
ChangeLog: https://github.com/racer-rust/racer/blob/v2.1.40/CHANGELOG.md
A few more things are worth noting:
* It's not possible to update to latest version (2.1.42) at the time of
committing since this requires a newer `rustc` (1.51 to be precise) to
compile.
* For proper completion, `rustLibSrc` rather than `rustcSrc` must be
used now. The two were separated here previously[1].
* Dropped the `checkPhase` and replaced it with a list of `checkFlags`.
This has the benefit that the default `checkPhase` from
`buildRustPackage` can be used which properly configures parallelism
and which target to use (i.e. `release` in this case which reduces
build time).
[1] 68060f6f6f
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.
https://crates.io/crates/racer/2.1.29
The package is now pinned to the git rev that is published as 2.1.29 on
crates.io (there's no 2.1.29 tag on GitHub unfortunately).
A recent upgrade of cargo-vendor changed its output slightly, which
broke all cargoSha256 hashes in nixpkgs.
See https://github.com/NixOS/nixpkgs/issues/60668 for more information.
Since then, a few hashes have been fixed in master by hand, but there
were a lot still to do, so I did all of the ones left over with some
scripts I wrote.
The one hash I wasn’t able to update was habitat's, because it’s
currently broken and the build doesn’t get far enough to produce a
hash anyway.
racer builds fine on Linux and macOS without racer as a dependency.
racer does not actually use rustup, but 'rustc --print sysroot', which
is already available through the rustc dependency.
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>
Instead, discover it automatically when building the package.
This makes `buildRustPackage` more future-proof with respect to changes
in how `cargo` generates the hash.
Also, it fixes broken builds in i686 because apparently, cargo generates
a different registry index hash in this architecture (compared to
x86-64).
This makes buildRustPackage portable to non-Linux platforms.
Additionally, now we also save the `Cargo.lock` file into the fetch output, so
that we don't have to run $cargoUpdateHook again just before building.
I was asked to add this for backwards comparability when I renamed `rust`
to `rustc` and added `rustcMaster`. It has been a few months so I'd hope
deprecating this is acceptable.