A rebuilder for geth.
Reproduce and verify source-to-binary semantics of a geth binary artifact.
go build ./cmd/gethrebuild
./gethrebuild <os> <arch> <version>
For example, gethrebuild linux-amd64 1.14.3
See command documentation for optional arguments gethrebuild --help
Note
Must be run inside project directory 🩸
When reproducing an artifact, cases of non-determinism need to be controlled.
In .non-determinism/reports
four cases found for geth are shown:
- buildid: embedding of unreproducible build ids
- date: conditional embedding of release date
- path: embedding of absolute system paths
- gcc: differing gcc versions using identical build settings
Reproduce these cases by running #TODO
Supported os/arch pairs:
-
Linux
- amd64 ✅
- 386 ✅
- arm5 ✅
- arm6 ✅
- arm7 ✅
- arm64 ✅
-
Not supported currently
- Darwin ❌
- Windows ❌