Documentation index

Test bench

It is important to detect reproducibility problems in the build system before the users do, to avoid any false alarms.

The method is usually as follows:

  1. Build a first time.
  2. Save the result.
  3. Perform as many changes to the environment as possible.
  4. Build a second time.
  5. Compare the results.

diffoscope is a tool that has been initially designed to help understand issues when comparing build results.

Here is a list of interesting variations that have been identified so far:

  • date and time,
  • build path,
  • hostname,
  • domain name,
  • filesystem,
  • environment variables,
  • timezone,
  • language,
  • locale,
  • user name,
  • user id,
  • group name,
  • group id,
  • kernel version,
  • umask,
  • CPU type,
  • number of CPU cores.

disorderfs can help in testing variations due to filesystems in a deterministic manner.

The list of variations tested for Debian is available as an actual example.

Documentation index

Follow us on Twitter @ReproBuilds & Reddit and please consider making a donation. Content licensed under CC BY-SA 4.0, style licensed under MIT. Templates and styles based on the Tor Styleguide. Logos and trademarks belong to their respective owners. Patches welcome via our Git repository (instructions) or via our mailing list.