Source-linked AI summary
Reproducible Builds: Increasing the Integrity of Software Supply Chains
Chris Lamb, Stefano Zacchiroli
TL;DR
Even when build inputs are controlled, nondeterminism can make repeated builds produce different artifacts. The paper presents reproducible builds and describes how the project addresses build causes and applies the approach across software collections. Using this model, the Debian operating system achieved 95% reproducibility in over 30,000+ packages.
Problem
Even when build inputs are controlled, nondeterminism can make repeated builds produce different artifacts.
Source: REPRODUCIBILITY IN THE SMALL · p. 3Method
The paper presents reproducible builds and describes how the project addresses build causes and applies the approach across software collections.
Source: CONCLUSION · p. 8Results
Using this model, the Debian operating system achieved 95% reproducibility in over 30,000+ packages.
Source: CONCLUSION · p. 9Takeaways & Limitations
The community-oriented effort extends reproducibility and software-quality improvements to users.
Source: REPRODUCIBILITY IN THE LARGE · p. 8Centralized .buildinfo distribution remains an attack target, while decentralized alternatives and a practical checksum-consensus mechanism remain future challenges.
Source: REPRODUCIBILITY IN THE LARGE · p. 6
Abstract
from arXiv · showhide
Although it is possible to increase confidence in Free and Open Source Software (FOSS) by reviewing its source code, trusting code is not the same as trusting its executable counterparts. These are typically built and distributed by third-party vendors, with severe security consequences if their supply chains are compromised. In this paper, we present reproducible builds, an approach that can determine whether generated binaries correspond with their original source code. We first define the problem, and then provide insight into the challenges of making real-world software build in a "reproducible" manner-this is, when every build generates bit-for-bit identical results. Through the experience of the Reproducible Builds project making the Debian Linux distribution reproducible, we also describe the affinity between reproducibility and quality assurance (QA).
REPRODUCIBLE BUILDS
Reproducible builds let users compare binaries from vendors with independently built artifacts to establish trust. The approach depends on identical outputs for a designated source version and build dependencies.
- With distributed consensus, users may trust the checksum reported by at least 50% of builders when reports disagree.The passage says coercing users under this scheme would require taking over at least 50% of the builder community.Source: REPRODUCIBLE BUILDS · p. 2
- A reproducible build produces bit-for-bit identical artifacts for a designated source version and its build dependencies, regardless of environment.Source: REPRODUCIBLE BUILDS · p. 2
- Users can verify vendor binaries by comparing their checksums with outputs from multiple independent builders.Source: Figure 1 · p. 3
REPRODUCIBILITY IN THE SMALL
Debian’s reproducibility effort addresses both uncontrolled build inputs and nondeterministic behavior, which can make repeated builds differ. It combines practical fixes with large-scale testing, and over 95% of its 30,000+ development-branch packages became reproducible after seven years.
- Jailed builds can sanitize environments but slow builds, restrict developers’ tool choices, and often fail to address nondeterminism.Source: REPRODUCIBILITY IN THE SMALL · p. 3
- Uncontrolled inputs such as timestamps, build paths, archive metadata, and environment details can change artifacts; timestamps are the biggest source of unreproducibility.Source: REPRODUCIBILITY IN THE SMALL · pp. 3–4
- Nondeterministic filesystem, hash-table, and parallel-task ordering can affect artifacts, so build systems should impose deterministic ordering where those results are encoded.Source: REPRODUCIBILITY IN THE SMALL · pp. 4–5
- Fixes include normalizing archive metadata and using GCC options that embed relative rather than absolute paths.Source: REPRODUCIBILITY IN THE SMALL · p. 4
- Over 95% of Debian’s 30,000+ development-branch packages became reproducible after seven years of work.Source: REPRODUCIBILITY IN THE SMALL · p. 5
- Debian’s CI tests reproducibility by rebuilding packages in deliberately varied environments, including different clocks, hostnames, languages, and kernels.The second build’s clock is set 18 months ahead, and the system varies more than 30 environmental factors.Source: REPRODUCIBILITY IN THE SMALL · p. 5
REPRODUCIBILITY IN THE LARGE
Debian’s large-scale reproducibility work combines build records, varied rebuilds, and diagnostic tools. The effort also connects reproducibility testing to quality assurance and community-wide software improvements.
REPRODUCIBILITY IN THE LARGE
- Centralized .buildinfo distribution remains an attack target, while decentralized alternatives and a practical consensus mechanism remain future challenges.Source: REPRODUCIBILITY IN THE LARGE · p. 6
- The .buildinfo format records build inputs and artifact checksums so a build can be reconstructed and its outputs compared.Source: REPRODUCIBILITY IN THE LARGE · p. 6
- Diffoscope recursively unpacks archives and translates binary formats into readable forms to reveal meaningful differences between builds.Source: REPRODUCIBILITY IN THE LARGE · p. 6, Figure 2 · p. 7
- In the dolfinx-doc example, diffoscope identified differently ordered entries in CMakeLists.txt; deciding whether to fix the package or CMake still required engineering judgment.Source: REPRODUCIBILITY IN THE LARGE · p. 7
- Reproducibility testing can expose systemic build and documentation problems, and addressing them improves Debian’s correctness and robustness.Source: REPRODUCIBILITY IN THE LARGE · p. 7
THE REPRODUCIBLE BUILDS ECOSYSTEM
- The project’s community-oriented approach aims to extend reproducibility and software-quality benefits to as many users as possible.Source: REPRODUCIBILITY IN THE LARGE · p. 8
- Testing has also exposed a GBrowse secret generated at build time and shared among users; the fix moved secret generation to installation time.Source: THE REPRODUCIBLE BUILDS ECOSYSTEM · p. 8
- Centralized testing in distributions can efficiently detect issues, while fixes should be integrated upstream rather than kept in distribution-specific patches.Source: THE REPRODUCIBLE BUILDS ECOSYSTEM · p. 8
CONCLUSION
The conclusion presents reproducible builds as a way to establish trust in open-source executables built by untrusted third parties and describes project work across FOSS and toolchains. It reports QA processes accompanying Debian’s 95% reproducibility in over 30 000+ packages.
CONCLUSION
- Reproducible builds let end-users establish trust in open-source executables even when untrusted third parties build them.Source: CONCLUSION · p. 8
- The Reproducible Builds project contributed to hundreds of FOSS projects and worked with key toolchains including GCC, Rust, and OCaml.Source: CONCLUSION · p. 8
- 95% reproducibility in over 30 000+ packages was achieved for Debian using QA processes and tools to make large open-source software collections reproducible.Source: CONCLUSION · p. 9
Related papers
Cited by
- What You Sign Is Not What You Run: The Verifiability Gap in Quantized LLM Supply Chains2026
- "They don't care about this": A Systematic Study of TEE Build Reproducibility in the Wild2026
- AROMA+: A Study of Factors Affecting Reproducible Builds in the Maven Ecosystem2026
- Four Ways to Forge a Bundle My Own Verifier Calls Clean: Refusal-Site Mutation Testing of an Evidence-Bundle Verifier2026
- The Software Supply Chain as a Market for Lemons: A Multivocal Review of Trust Signal Collapse2026
- Bootstrapping Mutual Attestation with Kleene's Second Recursion Theorem2026