solana-validator: adapt update script to new nix-prefetch-github

The update script is also already broken and needs:

1. Add missing packages to the shebang.
2. Retrieve cargo hash from the proper package.

We also take the opportunity to switch ot using the newer "hash" and
"cargoHash" properties.
This commit is contained in:
Theodore Ni 2023-07-07 23:02:01 -07:00
parent c249486edb
commit c06efc2173
No known key found for this signature in database
GPG key ID: 48B67583BDDD4474
3 changed files with 15 additions and 15 deletions

View file

@ -42,8 +42,8 @@
let
pinData = lib.importJSON ./pin.json;
version = pinData.version;
sha256 = pinData.sha256;
cargoSha256 = pinData.cargoSha256;
hash = pinData.hash;
cargoHash = pinData.cargoHash;
in
rustPlatform.buildRustPackage rec {
pname = "solana-validator";
@ -53,11 +53,11 @@ rustPlatform.buildRustPackage rec {
owner = "solana-labs";
repo = "solana";
rev = "v${version}";
inherit sha256;
inherit hash;
};
# partly inspired by https://github.com/obsidiansystems/solana-bridges/blob/develop/default.nix#L29
inherit cargoSha256;
inherit cargoHash;
cargoBuildFlags = builtins.map (n: "--bin=${n}") solanaPkgs;

View file

@ -1,5 +1,5 @@
{
"version": "1.10.35",
"sha256": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
"cargoSha256": "sha256-idlu9qkh2mrF6MxstRcvemKrtTGNY/InBnIDqRvDQPs"
"hash": "sha256-y7+ogMJ5E9E/+ZaTCHWOQWG7iR+BGuVqvlNUDT++Ghc=",
"cargoHash": "sha256-idlu9qkh2mrF6MxstRcvemKrtTGNY/InBnIDqRvDQPs"
}

View file

@ -1,9 +1,9 @@
#!/usr/bin/env nix-shell
#! nix-shell -i oil -p jq sd nix-prefetch-github ripgrep
#! nix-shell -i oil -p jq moreutils nix-prefetch-github gnused
# TODO set to `verbose` or `extdebug` once implemented in oil
shopt --set xtrace
# we need failures inside of command subs to get the correct cargoSha256
# we need failures inside of command subs to get the correct cargoHash
shopt --unset inherit_errexit
const directory = $(dirname $0 | xargs realpath)
@ -11,23 +11,23 @@ const owner = "solana-labs"
const repo = "solana"
const latest_rev = $(curl -q https://api.github.com/repos/${owner}/${repo}/releases/latest | \
jq -r '.tag_name')
const latest_version = $(echo $latest_rev | sd 'v' '')
const latest_version = $(echo ${latest_rev#v})
const current_version = $(jq -r '.version' $directory/pin.json)
if ("$latest_version" === "$current_version") {
echo "solana is already up-to-date"
return 0
} else {
const tarball_meta = $(nix-prefetch-github $owner $repo --rev "$latest_rev")
const tarball_hash = "sha256-$(echo $tarball_meta | jq -r '.sha256')"
const tarball_hash = $(echo $tarball_meta | jq -r '.hash')
jq ".version = \"$latest_version\" | \
.\"sha256\" = \"$tarball_hash\" | \
.\"cargoSha256\" = \"\"" $directory/pin.json | sponge $directory/pin.json
.\"hash\" = \"$tarball_hash\" | \
.\"cargoHash\" = \"\"" $directory/pin.json | sponge $directory/pin.json
const new_cargo_sha256 = $(nix-build -A solana-testnet 2>&1 | \
const new_cargo_hash = $(nix-build -A solana-validator 2>&1 | \
tail -n 2 | \
head -n 1 | \
sd '\s+got:\s+' '')
sed 's/\s*got:\s*//')
jq ".cargoSha256 = \"$new_cargo_sha256\"" $directory/pin.json | sponge $directory/pin.json
jq ".cargoHash = \"$new_cargo_hash\"" $directory/pin.json | sponge $directory/pin.json
}