diff --git a/pkgs/applications/blockchains/electrs/default.nix b/pkgs/applications/blockchains/electrs/default.nix index ae06fe7ff2ba..d37ace710734 100644 --- a/pkgs/applications/blockchains/electrs/default.nix +++ b/pkgs/applications/blockchains/electrs/default.nix @@ -9,16 +9,16 @@ rustPlatform.buildRustPackage rec { pname = "electrs"; - version = "0.9.0"; + version = "0.9.1"; src = fetchFromGitHub { owner = "romanz"; repo = pname; rev = "v${version}"; - sha256 = "04dqbn2nfzllxfcn3v9vkfy2hn2syihijr575621r1pj65pcgf8y"; + hash = "sha256-GDO8iGntQncvdJiDMBJk9GrGF9JToasbLRzju3S0TS0="; }; - cargoSha256 = "0hl8q62lankrab8gq9vxmkn68drs0hw5pk0q6aiq8fxsb63dzsw0"; + cargoHash = "sha256-Ms785+3Z4xEUW8FRRu1FIHk7HSWYLBThKlJDFjW6j0I="; # needed for librocksdb-sys nativeBuildInputs = [ llvmPackages.clang ]; diff --git a/pkgs/applications/blockchains/electrs/update.sh b/pkgs/applications/blockchains/electrs/update.sh new file mode 100755 index 000000000000..3e4d90db59de --- /dev/null +++ b/pkgs/applications/blockchains/electrs/update.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p coreutils curl jq git gnupg common-updater-scripts +set -euo pipefail + +# Fetch latest release, GPG-verify the tag, update derivation + +scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd) +nixpkgs=$(realpath "$scriptDir"/../../../..) + +oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).electrs.version" | tr -d '"') +version=$(curl -s --show-error "https://api.github.com/repos/romanz/electrs/releases/latest" | jq -r '.tag_name' | tail -c +2) + +if [[ $version == $oldVersion ]]; then + echo "Already at latest version $version" + exit 0 +fi +echo "New version: $version" + +tmpdir=$(mktemp -d /tmp/electrs-verify-gpg.XXX) +repo=$tmpdir/repo +trap "rm -rf $tmpdir" EXIT + +git clone --depth 1 --branch v${version} -c advice.detachedHead=false https://github.com/romanz/electrs $repo + +export GNUPGHOME=$tmpdir +echo +echo "Fetching romanz's key" +gpg --keyserver hkps://keys.openpgp.org --recv-keys 15c8c3574ae4f1e25f3f35c587cae5fa46917cbb 2> /dev/null +echo +echo "Verifying commit" +git -C $repo verify-tag v${version} + +rm -rf $repo/.git +hash=$(nix hash path $repo) + +(cd "$nixpkgs" && update-source-version electrs "$version" "$hash") +sed -i 's|cargoHash = .*|cargoHash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=";|' "$scriptDir/default.nix" +echo +echo "electrs: $oldVersion -> $version"