Home / Knowledge hub / Reproducible builds
Knowledge hub
Reproducible builds
Builds that produce identical output every time, so tampering shows up.
What it means
A build is reproducible when anyone who builds the same source code, with the same tools and settings, gets exactly the same output, bit for bit. The Reproducible Builds project defines it this way. The result is a file you can check against someone else's. Anyone can then confirm the file is what the source says it is.
Many builds are not reproducible by accident. A timestamp, the order of files or the path of the build folder can end up inside the output and make each run different. Making it reproducible means removing those differences. It is a property of the build process, and it takes deliberate effort to reach and to keep.
Why it matters
If the same source always makes the same file, you can build it twice, on separate machines, and compare. A mismatch tells you something changed the output between source and release: a compromised build server, a poisoned tool or a swapped dependency. It is a rare case where trust can be replaced with a check you run yourself.
That check matters because the build pipeline is a prized target. Reading the source tells you little if the file you ship is not what the source builds. Reproducibility lets customers and auditors verify the link. Without it, you are trusting the machine that built the file.
How it shows up
You meet the idea in package builds, container images and release files. Pin tool and dependency versions, remove timestamps, sort file lists and build in a clean, fixed environment. Compare hashes from two independent builds. Document the settings so a second team can repeat the build without guessing.
Frameworks such as SLSA treat reproducibility as a strong way to support a claim about build provenance. The common mistake is aiming for it everywhere at once. Begin with your most critical release artefact, fix the sources of difference one by one and monitor for drift.
Questions people ask
Reproducible builds, answered
Are reproducible builds the same as repeatable builds?
Close. A repeatable build can be run again by you. A reproducible build can be run by others and give the same bytes.
The second is the stronger claim, because it does not depend on trusting one machine.
Why would two builds of the same code differ?
Common reasons are embedded timestamps, unsorted file listings, build paths in the output, and unpinned dependencies that changed between runs.
Each can be removed with settings or tooling. Fixing them is usually a matter of settings.
Do reproducible builds stop supply chain attacks?
They do not stop an attack, but they make some kinds visible. If a build server is tampered with, an independent build will not match.
They do not help if the malicious code was in the source itself.
Is it practical for a small team?
For many projects, yes, for a limited set of artefacts. Containers with pinned bases and fixed build settings are a good start.
Perfect reproducibility across every file can take real effort. Start with one artefact and widen later.
How does this relate to provenance?
Provenance records how an artefact was built. Reproducibility lets someone else confirm that record by rebuilding.
The two together give stronger evidence than either alone. Neither claim replaces review of the source.
Sources
Where this comes from
Related
Terms that sit next to this one
Build provenance
A signed record of where, when and how a piece of software was built.
SLSA
A framework of levels for how trustworthy a software build and its output are.
Build pipeline compromise
An attacker altering your build system so every release carries their code.
Code signing
Signing software so users and systems can check who released it and that it is intact.
Software supply chain security
Protecting the code, tools and people that go into building your software.
Is it the file you built?
Build integrity covers what you ship. Cyberlop covers what an outsider can break in the running app, and it reports only what it actually exploited, with the request and response. Book a pilot on one app.
Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.