Files
triangles_v5/scripts
Sami Ahmed 3e20a1df6e chore(build): verify-reproducible-build auto-builds libtor + libi2pd
The script previously assumed libtor.a and libi2pd*.a were already
present, but on a fresh checkout they only exist after running
src/tor/build-libtor.sh and src/i2p/build-libi2pd.sh. CI does this
in build-all.yml but local verification didn't, which bit me during
the v6.1.5 release.

Detect missing static libs and invoke the build scripts (passing
/usr paths for native Linux, matching what CI does). On a fresh
checkout this adds ~8 min to first-run verification; subsequent
runs skip the build step.

Logs go to /tmp/triangles-build-lib{tor,i2pd}.log for debugging.
Exit code 5 distinguishes build-prep failures from cmake/build
failures (3) and binary-compare failures (1/4).
2026-07-08 13:13:55 -07:00
..
2026-04-29 16:48:16 -07:00
2026-07-07 13:33:12 -07:00

Scripts

Operational scripts for the Triangles project. See also doc/release-process.md for the canonical release pipeline documentation.

Build verification

  • verify-reproducible-build.sh — builds the daemon (or another target) twice from the same source tree and verifies the SHA256 hashes match. Catches accidental introduction of non-determinism (e.g. __DATE__/__TIME__ regressions, dirty git state, PIE base-address drift).

Release signing

  • sign-release.sh — generates SHA256SUMS, writes detached PGP signatures (.asc) over each release artifact and over SHA256SUMS. Supports --verify for independent third-party verification. Uses TRIANGLES_RELEASE_KEY env var (defaults to sami@cryptographic-triangles.org).

Existing infrastructure

  • bump-version.sh — sync version numbers across all manifests from src/clientversion.h.
  • sign-snapshot.sh — sign a UTXO snapshot file with the wallet's signing address (not a PGP key; this is a chain-level signature, not a release signature).
  • validate_onion_seeds.py — validate every .onion address in triangles.conf against the v3 hidden-service checksum.
  • ibd-smoke-test.sh — fresh-datadir IBD smoke test for catching the classic "stalls early / loops around 570" failure mode.
  • ci/build-rocksdb.sh — build and install a pinned RocksDB version for CI.
  • ci/package-linux-daemon.sh — Linux packaging step (.deb).
  • ci/package-windows-daemon.sh — Windows packaging step.
  • tri/ — operator-facing CLI for node administration.