fix(tvix/cli): handle SRI hashes in outputHash
Instead of being called with `md5`, `sha1`, `sha256` or `sha512`, `fetchurl.nix` (from corepkgs / `<nix`) can also be called with a `hash` attribute, being an SRI hash. In that case, `builtin.derivation` is called with `outputHashAlgo` being an empty string, and `outputHash` being an SRI hash string. In other cases, an SRI hash is passed as outputHash, but outputHashAlgo is set too. Nix does modify these values in (single, fixed) output specification it serializes to ATerm, but keeps it unharmed in `env`. Move this into a construct_output_hash helper function, that can be tested better in isolation. Change-Id: Id9d716a119664c44ea7747540399966752e20187 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7933 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
bda5fc58d0
commit
a94a1434cc
5 changed files with 573 additions and 38 deletions
318
tvix/Cargo.nix
318
tvix/Cargo.nix
|
|
@ -635,7 +635,24 @@ rec {
|
|||
];
|
||||
|
||||
};
|
||||
"base64" = rec {
|
||||
"base64 0.10.1" = rec {
|
||||
crateName = "base64";
|
||||
version = "0.10.1";
|
||||
edition = "2015";
|
||||
sha256 = "13k6bvd3n6dm7jqn9x918w65dd9xhx454bqphbnv0bkd6n9dj98b";
|
||||
authors = [
|
||||
"Alice Maz <alice@alicemaz.com>"
|
||||
"Marshall Pierce <marshall@mpierce.org>"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "byteorder";
|
||||
packageId = "byteorder";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
"base64 0.13.1" = rec {
|
||||
crateName = "base64";
|
||||
version = "0.13.1";
|
||||
edition = "2018";
|
||||
|
|
@ -743,7 +760,7 @@ rec {
|
|||
}
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest";
|
||||
packageId = "digest 0.10.6";
|
||||
optional = true;
|
||||
features = [ "mac" ];
|
||||
}
|
||||
|
|
@ -768,7 +785,7 @@ rec {
|
|||
};
|
||||
resolvedDefaultFeatures = [ "default" "digest" "rayon" "std" ];
|
||||
};
|
||||
"block-buffer" = rec {
|
||||
"block-buffer 0.10.3" = rec {
|
||||
crateName = "block-buffer";
|
||||
version = "0.10.3";
|
||||
edition = "2018";
|
||||
|
|
@ -779,7 +796,52 @@ rec {
|
|||
dependencies = [
|
||||
{
|
||||
name = "generic-array";
|
||||
packageId = "generic-array";
|
||||
packageId = "generic-array 0.14.6";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
"block-buffer 0.7.3" = rec {
|
||||
crateName = "block-buffer";
|
||||
version = "0.7.3";
|
||||
edition = "2015";
|
||||
sha256 = "12v8wizynqin0hqf140kmp9s38q223mp1b0hkqk8j5pk8720v560";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "block-padding";
|
||||
packageId = "block-padding";
|
||||
}
|
||||
{
|
||||
name = "byte-tools";
|
||||
packageId = "byte-tools";
|
||||
}
|
||||
{
|
||||
name = "byteorder";
|
||||
packageId = "byteorder";
|
||||
usesDefaultFeatures = false;
|
||||
}
|
||||
{
|
||||
name = "generic-array";
|
||||
packageId = "generic-array 0.12.4";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
"block-padding" = rec {
|
||||
crateName = "block-padding";
|
||||
version = "0.1.5";
|
||||
edition = "2015";
|
||||
sha256 = "1xbkmysiz23vimd17rnsjpw9bgjxipwfslwyygqlkx4in3dxwygs";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "byte-tools";
|
||||
packageId = "byte-tools";
|
||||
}
|
||||
];
|
||||
|
||||
|
|
@ -795,6 +857,16 @@ rec {
|
|||
features = { };
|
||||
resolvedDefaultFeatures = [ "default" ];
|
||||
};
|
||||
"byte-tools" = rec {
|
||||
crateName = "byte-tools";
|
||||
version = "0.3.1";
|
||||
edition = "2015";
|
||||
sha256 = "1mqi29wsm8njpl51pfwr31wmpzs5ahlcb40wsjyd92l90ixcmdg3";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
|
||||
};
|
||||
"byteorder" = rec {
|
||||
crateName = "byteorder";
|
||||
version = "1.4.3";
|
||||
|
|
@ -1503,7 +1575,7 @@ rec {
|
|||
dependencies = [
|
||||
{
|
||||
name = "generic-array";
|
||||
packageId = "generic-array";
|
||||
packageId = "generic-array 0.14.6";
|
||||
features = [ "more_lengths" ];
|
||||
}
|
||||
{
|
||||
|
|
@ -1564,7 +1636,7 @@ rec {
|
|||
];
|
||||
|
||||
};
|
||||
"digest" = rec {
|
||||
"digest 0.10.6" = rec {
|
||||
crateName = "digest";
|
||||
version = "0.10.6";
|
||||
edition = "2018";
|
||||
|
|
@ -1575,7 +1647,7 @@ rec {
|
|||
dependencies = [
|
||||
{
|
||||
name = "block-buffer";
|
||||
packageId = "block-buffer";
|
||||
packageId = "block-buffer 0.10.3";
|
||||
optional = true;
|
||||
}
|
||||
{
|
||||
|
|
@ -1604,6 +1676,26 @@ rec {
|
|||
};
|
||||
resolvedDefaultFeatures = [ "alloc" "block-buffer" "core-api" "default" "mac" "std" "subtle" ];
|
||||
};
|
||||
"digest 0.8.1" = rec {
|
||||
crateName = "digest";
|
||||
version = "0.8.1";
|
||||
edition = "2015";
|
||||
sha256 = "1madjl27f3kj5ql7kwgvb9c8b7yb7bv7yfgx7rqzj4i3fp4cil7k";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "generic-array";
|
||||
packageId = "generic-array 0.12.4";
|
||||
}
|
||||
];
|
||||
features = {
|
||||
"blobby" = [ "dep:blobby" ];
|
||||
"dev" = [ "blobby" ];
|
||||
};
|
||||
resolvedDefaultFeatures = [ "std" ];
|
||||
};
|
||||
"dirs" = rec {
|
||||
crateName = "dirs";
|
||||
version = "4.0.0";
|
||||
|
|
@ -1806,6 +1898,16 @@ rec {
|
|||
];
|
||||
features = { };
|
||||
};
|
||||
"fake-simd" = rec {
|
||||
crateName = "fake-simd";
|
||||
version = "0.1.2";
|
||||
edition = "2015";
|
||||
sha256 = "1vfylvk4va2ivqx85603lyqqp0zk52cgbs4n5nfbbbqx577qm2p8";
|
||||
authors = [
|
||||
"The Rust-Crypto Project Developers"
|
||||
];
|
||||
|
||||
};
|
||||
"fastcdc" = rec {
|
||||
crateName = "fastcdc";
|
||||
version = "2.0.0";
|
||||
|
|
@ -2214,7 +2316,27 @@ rec {
|
|||
];
|
||||
|
||||
};
|
||||
"generic-array" = rec {
|
||||
"generic-array 0.12.4" = rec {
|
||||
crateName = "generic-array";
|
||||
version = "0.12.4";
|
||||
edition = "2015";
|
||||
sha256 = "1gfpay78vijl9vrwl1k9v7fbvbhkhcmnrk4kfg9l6x24y4s9zpzz";
|
||||
libName = "generic_array";
|
||||
authors = [
|
||||
"Bartłomiej Kamiński <fizyk20@gmail.com>"
|
||||
"Aaron Trent <novacrazy@gmail.com>"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "typenum";
|
||||
packageId = "typenum";
|
||||
}
|
||||
];
|
||||
features = {
|
||||
"serde" = [ "dep:serde" ];
|
||||
};
|
||||
};
|
||||
"generic-array 0.14.6" = rec {
|
||||
crateName = "generic-array";
|
||||
version = "0.14.6";
|
||||
edition = "2015";
|
||||
|
|
@ -2478,6 +2600,16 @@ rec {
|
|||
};
|
||||
resolvedDefaultFeatures = [ "default" ];
|
||||
};
|
||||
"hex" = rec {
|
||||
crateName = "hex";
|
||||
version = "0.3.2";
|
||||
edition = "2015";
|
||||
sha256 = "0xsdcjiik5j750j67zk42qdnmm4ahirk3gmkmcqgq7qls2jjcl40";
|
||||
authors = [
|
||||
"KokaKiwi <kokakiwi@kokakiwi.net>"
|
||||
];
|
||||
features = { };
|
||||
};
|
||||
"http" = rec {
|
||||
crateName = "http";
|
||||
version = "0.2.8";
|
||||
|
|
@ -3748,6 +3880,16 @@ rec {
|
|||
"Simon Heath <icefox@dreamquest.io>"
|
||||
];
|
||||
|
||||
};
|
||||
"opaque-debug" = rec {
|
||||
crateName = "opaque-debug";
|
||||
version = "0.2.3";
|
||||
edition = "2015";
|
||||
sha256 = "172j6bs8ndclqxa2m64qc0y1772rr73g4l9fg2svscgicnbfff98";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
|
||||
};
|
||||
"os_str_bytes" = rec {
|
||||
crateName = "os_str_bytes";
|
||||
|
|
@ -5514,7 +5656,51 @@ rec {
|
|||
};
|
||||
resolvedDefaultFeatures = [ "serde" ];
|
||||
};
|
||||
"sha2" = rec {
|
||||
"sha-1" = rec {
|
||||
crateName = "sha-1";
|
||||
version = "0.8.2";
|
||||
edition = "2015";
|
||||
sha256 = "1pv387q0r7llk2cqzyq0nivzvkgqgzsiygqzlv7b68z9xl5lvngp";
|
||||
libName = "sha1";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "block-buffer";
|
||||
packageId = "block-buffer 0.7.3";
|
||||
}
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest 0.8.1";
|
||||
}
|
||||
{
|
||||
name = "fake-simd";
|
||||
packageId = "fake-simd";
|
||||
}
|
||||
{
|
||||
name = "opaque-debug";
|
||||
packageId = "opaque-debug";
|
||||
}
|
||||
];
|
||||
devDependencies = [
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest 0.8.1";
|
||||
features = [ "dev" ];
|
||||
}
|
||||
];
|
||||
features = {
|
||||
"asm" = [ "sha1-asm" ];
|
||||
"asm-aarch64" = [ "asm" "libc" ];
|
||||
"default" = [ "std" ];
|
||||
"libc" = [ "dep:libc" ];
|
||||
"sha1-asm" = [ "dep:sha1-asm" ];
|
||||
"std" = [ "digest/std" ];
|
||||
};
|
||||
resolvedDefaultFeatures = [ "default" "std" ];
|
||||
};
|
||||
"sha2 0.10.6" = rec {
|
||||
crateName = "sha2";
|
||||
version = "0.10.6";
|
||||
edition = "2018";
|
||||
|
|
@ -5534,13 +5720,13 @@ rec {
|
|||
}
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest";
|
||||
packageId = "digest 0.10.6";
|
||||
}
|
||||
];
|
||||
devDependencies = [
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest";
|
||||
packageId = "digest 0.10.6";
|
||||
features = [ "dev" ];
|
||||
}
|
||||
];
|
||||
|
|
@ -5554,6 +5740,49 @@ rec {
|
|||
};
|
||||
resolvedDefaultFeatures = [ "default" "std" ];
|
||||
};
|
||||
"sha2 0.8.2" = rec {
|
||||
crateName = "sha2";
|
||||
version = "0.8.2";
|
||||
edition = "2015";
|
||||
sha256 = "0s9yddvyg6anaikdl86wmwfim25c0d4m0xq0y2ghs34alxpg8mm2";
|
||||
authors = [
|
||||
"RustCrypto Developers"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "block-buffer";
|
||||
packageId = "block-buffer 0.7.3";
|
||||
}
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest 0.8.1";
|
||||
}
|
||||
{
|
||||
name = "fake-simd";
|
||||
packageId = "fake-simd";
|
||||
}
|
||||
{
|
||||
name = "opaque-debug";
|
||||
packageId = "opaque-debug";
|
||||
}
|
||||
];
|
||||
devDependencies = [
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest 0.8.1";
|
||||
features = [ "dev" ];
|
||||
}
|
||||
];
|
||||
features = {
|
||||
"asm" = [ "sha2-asm" ];
|
||||
"asm-aarch64" = [ "asm" "libc" ];
|
||||
"default" = [ "std" ];
|
||||
"libc" = [ "dep:libc" ];
|
||||
"sha2-asm" = [ "dep:sha2-asm" ];
|
||||
"std" = [ "digest/std" ];
|
||||
};
|
||||
resolvedDefaultFeatures = [ "default" "std" ];
|
||||
};
|
||||
"sharded-slab" = rec {
|
||||
crateName = "sharded-slab";
|
||||
version = "0.1.4";
|
||||
|
|
@ -5730,6 +5959,51 @@ rec {
|
|||
features = { };
|
||||
resolvedDefaultFeatures = [ "all" ];
|
||||
};
|
||||
"ssri" = rec {
|
||||
crateName = "ssri";
|
||||
version = "7.0.0";
|
||||
edition = "2018";
|
||||
sha256 = "1wi3yk801a0bgkd51ly83dxzjfq5726hwq5asxwvx7zki39w1km9";
|
||||
authors = [
|
||||
"Kat Marchán <kzm@zkat.tech>"
|
||||
];
|
||||
dependencies = [
|
||||
{
|
||||
name = "base64";
|
||||
packageId = "base64 0.10.1";
|
||||
}
|
||||
{
|
||||
name = "digest";
|
||||
packageId = "digest 0.8.1";
|
||||
}
|
||||
{
|
||||
name = "hex";
|
||||
packageId = "hex";
|
||||
}
|
||||
{
|
||||
name = "serde";
|
||||
packageId = "serde";
|
||||
optional = true;
|
||||
}
|
||||
{
|
||||
name = "sha-1";
|
||||
packageId = "sha-1";
|
||||
}
|
||||
{
|
||||
name = "sha2";
|
||||
packageId = "sha2 0.8.2";
|
||||
}
|
||||
{
|
||||
name = "thiserror";
|
||||
packageId = "thiserror";
|
||||
}
|
||||
];
|
||||
features = {
|
||||
"default" = [ "serde" ];
|
||||
"serde" = [ "dep:serde" ];
|
||||
};
|
||||
resolvedDefaultFeatures = [ "default" "serde" ];
|
||||
};
|
||||
"static_assertions" = rec {
|
||||
crateName = "static_assertions";
|
||||
version = "1.1.0";
|
||||
|
|
@ -6635,7 +6909,7 @@ rec {
|
|||
}
|
||||
{
|
||||
name = "base64";
|
||||
packageId = "base64";
|
||||
packageId = "base64 0.13.1";
|
||||
}
|
||||
{
|
||||
name = "bytes";
|
||||
|
|
@ -7439,6 +7713,10 @@ rec {
|
|||
packageId = "clap 4.0.32";
|
||||
features = [ "derive" "env" ];
|
||||
}
|
||||
{
|
||||
name = "data-encoding";
|
||||
packageId = "data-encoding";
|
||||
}
|
||||
{
|
||||
name = "dirs";
|
||||
packageId = "dirs";
|
||||
|
|
@ -7451,6 +7729,10 @@ rec {
|
|||
name = "smol_str";
|
||||
packageId = "smol_str";
|
||||
}
|
||||
{
|
||||
name = "ssri";
|
||||
packageId = "ssri";
|
||||
}
|
||||
{
|
||||
name = "tvix-derivation";
|
||||
packageId = "tvix-derivation";
|
||||
|
|
@ -7459,6 +7741,16 @@ rec {
|
|||
name = "tvix-eval";
|
||||
packageId = "tvix-eval";
|
||||
}
|
||||
{
|
||||
name = "tvix-store-bin";
|
||||
packageId = "tvix-store-bin";
|
||||
}
|
||||
];
|
||||
devDependencies = [
|
||||
{
|
||||
name = "test-case";
|
||||
packageId = "test-case";
|
||||
}
|
||||
];
|
||||
|
||||
};
|
||||
|
|
@ -7492,7 +7784,7 @@ rec {
|
|||
}
|
||||
{
|
||||
name = "sha2";
|
||||
packageId = "sha2";
|
||||
packageId = "sha2 0.10.6";
|
||||
}
|
||||
{
|
||||
name = "thiserror";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue