Skip to content

Shrike 2.5.5-blake2b.15 - superseded by blake2b.16

Choose a tag to compare

@kwsantiago kwsantiago released this 02 Sep 16:24
· 49 commits to master since this release
v2.5.5-blake2b.15
03c3066

Superseded by blake2b.16. Later releases add: report the protection a transaction actually has.

Shrike signing with the unified opt-in signature hash as Bitcoin Knots v29.4.1.knots20260508 defines it, on upstream Sparrow 2.5.5.

Everything in 2.5.5-blake2b.14, plus the release-integrity work below. Nothing a user does changes, so there is no reason to hurry this one if you are already on .14.

Releases cannot ship an incomplete manifest

SHA256SUMS covers every file in a release, and it is what tells you a download was not tampered with. The job that writes it runs even when a build has failed, so that one platform failing does not skip the checksums for the rest. That also meant it would write a manifest for whatever arrived and upload it.

It nearly shipped twice. A Windows build failed and the manifest lost the .msi and .zip; a macOS build failed and it lost the arm64 .dmg. Both were caught by hand, by comparing the manifest against the artifacts before publishing. Anyone on the missing platform would have had a download with no line to check it against.

The manifest is now verified against the set of files a release carries, and the job refuses to upload a short one. It has already caught a real occurrence: a macOS build failed on a transient packaging error, and the job stopped rather than publishing eleven entries where there should be twelve.

The macOS packaging step also retries when hdiutil reports the volume busy, which is the transient behind both of those, so a release is less likely to need a re-run at all.

One chain

Bitcoin hardforked. Describing software that has not adopted the fork as following a separate chain frames it as a different coin, which it is not. The wallet now says what it means throughout, including on the send screen where a signature that can be lifted out is described as spendable against nodes that have not adopted the fork.

Verified

368 wallet and 611 drongo unit tests, nine end to end suites, and the manifest check pinned against six manifests including the short one the failed macOS run actually produced.

Reproducible: this commit built locally with Eclipse Temurin 25.0.2 produces an application tree whose 171 paths, every file and symlink, hash identically to the tree CI published in shrike-2.5.5-x86_64.tar.gz. Only the Linux x86_64 build was reproduced; the archive contents are compared rather than the installers.

Upgrading

From .12 onward the Debian revision carries the release number, so apt can order releases. Coming from .11 or earlier this still needs dpkg:

sudo dpkg -i shrike_2.5.5-15_amd64.deb
/opt/shrike/bin/Shrike --version     # expect Shrike 2.5.5-blake2b.15

Wallets and configuration in ~/.shrike are untouched.

Downloads

Platform File
Windows Shrike-2.5.5.msi, or .zip for a portable copy
macOS Shrike-2.5.5-arm64-unsigned.dmg, or -x86_64-unsigned.dmg for Intel
Linux x86_64 shrike_2.5.5-15_amd64.deb, or -x86_64.tar.gz
Linux aarch64 shrike_2.5.5-15_arm64.deb, or -aarch64.tar.gz
Headless the shrikeserver-* files

Verify before running:

gpg --import privkeyio-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS

Signed by Kyle Santiago kyle@privkey.io, key A47D99B6DB0D715D40C59A2023AE8A8EA7E24E38.

The macOS builds are not code signed or notarized, so macOS reports the app as from an unidentified developer on first launch:

xattr -dr com.apple.quarantine /Applications/Shrike.app

Verify SHA256SUMS first, because clearing quarantine removes the check that would otherwise stop a tampered download. The Windows installer is not Authenticode signed either.

No warranty

This is unofficial, unaudited software provided as is, with no warranty and no liability, under the same Apache 2.0 license it inherits. It is not a Sparrow release and is neither affiliated with nor supported by the Sparrow project. Using it is entirely at your own risk, and you alone bear any loss of funds.