--- layout: page title: Tools permalink: /tools/ order: 3 ---

Several tools are available to make your life easier when working on reproducible builds. Signed tarballs are available.


diffoscope will try to get to the bottom of what makes files or directories different. It will recursively unpack archives of many kinds and transform various binary formats into more human-readable forms for comparison. It can compare two tarballs, ISO images, or PDFs just as easily.

See an example text output.

diffoscope is also available on PyPI.


If you wish to just experiment with diffoscope without installing a large number of run-time dependencies, you can use the try.diffoscope.org service directly from your web browser. A lightweight command-line client is also available in Debian and on PyPI.


Problems with unstable order of inputs or other variations introduced by filesystems can sometimes be hard to track down. disorderfs is an overlay FUSE filesystem that deliberately introduces non-determinism into filesystem metadata. For example, it can randomize the order in which directory entries are read.


Some tools used in build systems might introduce non-determinism in ways difficult to fix at the source, which requires post-processing. strip-nondeterminism knows how to normalize various file formats such as gzipped files, ZIP archives, and Jar files. It is written in Perl with extensibility in mind.


reprotest builds the same source code in different environments and then checks the binaries produced by the builds to see if changing the environment, without changing the source code, changed the generated binaries.

more tools