docs/rust: describe cargoHash
This commit is contained in:
parent
67a10c88bb
commit
b6728fa15c
@ -27,16 +27,16 @@ Rust applications are packaged by using the `buildRustPackage` helper from `rust
|
|||||||
```
|
```
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "ripgrep";
|
pname = "ripgrep";
|
||||||
version = "11.0.2";
|
version = "12.1.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "BurntSushi";
|
owner = "BurntSushi";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1iga3320mgi7m853la55xip514a3chqsdi1a1rwv25lr9b1p7vd3";
|
sha256 = "1hqps7l5qrjh9f914r5i6kmcz6f1yb951nv4lby0cjnp5l253kps";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoSha256 = "17ldqr3asrdcsh4l29m3b5r37r5d0b3npq1lrgjmxb6vlx6a36qh";
|
cargoSha256 = "03wf9r2csi6jpa7v5sw5lpxkrk4wfzwmzx7k3991q3bdjzcwnnwp";
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "A fast line-oriented regex search tool, similar to ag and ack";
|
description = "A fast line-oriented regex search tool, similar to ag and ack";
|
||||||
@ -47,10 +47,31 @@ rustPlatform.buildRustPackage rec {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
`buildRustPackage` requires a `cargoSha256` attribute which is computed over
|
`buildRustPackage` requires either the `cargoSha256` or the
|
||||||
all crate sources of this package. Currently it is obtained by inserting a
|
`cargoHash` attribute which is computed over all crate sources of this
|
||||||
fake checksum into the expression and building the package once. The correct
|
package. `cargoHash256` is used for traditional Nix SHA-256 hashes,
|
||||||
checksum can then be taken from the failed build.
|
such as the one in the example above. `cargoHash` should instead be
|
||||||
|
used for [SRI](https://www.w3.org/TR/SRI/) hashes. For example:
|
||||||
|
|
||||||
|
```
|
||||||
|
cargoHash = "sha256-l1vL2ZdtDRxSGvP0X/l3nMw8+6WF67KPutJEzUROjg8=";
|
||||||
|
```
|
||||||
|
|
||||||
|
Both types of hashes are permitted when contributing to nixpkgs. The
|
||||||
|
Cargo hash is obtained by inserting a fake checksum into the
|
||||||
|
expression and building the package once. The correct checksum can
|
||||||
|
then be taken from the failed build. A fake hash can be used for
|
||||||
|
`cargoSha256` as follows:
|
||||||
|
|
||||||
|
```
|
||||||
|
cargoSha256 = stdenv.lib.fakeSha256;
|
||||||
|
```
|
||||||
|
|
||||||
|
For `cargoHash` you can use:
|
||||||
|
|
||||||
|
```
|
||||||
|
cargoHash = stdenv.lib.fakeHash;
|
||||||
|
```
|
||||||
|
|
||||||
Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
|
Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
|
||||||
best practices guide, Rust applications should always commit the `Cargo.lock`
|
best practices guide, Rust applications should always commit the `Cargo.lock`
|
||||||
|
Loading…
x
Reference in New Issue
Block a user