DEBREPRO(1)

NAME
debrepro - reproduciblity tester for Debian packages

SYNOPSIS
debrepro [SOURCEDIR]

DESCRIPTION
debrepro will build a given source directory twice, with a set of variation between the first and second build, and compare the binary packages produced. If diffoscope is installed, it is used to compare non-matching binaries. If disorderfs is installed, it is used during the build to inject non-determinism in filesystem listing operations.

SOURCEDIR must be a directory containing an unpacked Debian source package. If SOURCEDIR is omitted, the current directory is assumed.

OUTPUT DIRECTORY
At the very end of a build, debrepro will inform the location of the output directory where the build artifacts can be found. The contents of this directory is as follows:

«outdir»/first
    contains the results of the first build, including a copy of the source tree, and the resulting binary packages.

«outdir»/first/build.sh
    contains the exact build script that was used in the first build.

«outdir»/second
    contains the results of the second build, including a copy of the source tree, and the resulting binary packages.

«outdir»/second/build.sh
    contains the exact build script that was used in the second build.

diff'ing «outdir»/first/build.sh and «outdir»/second/build.sh is an excellent way of figuring out exactly what changed between the two builds.

SUPPORTED VARIATIONS

USER
    The $USER environment name will contain different values between the first and second builds.

PATH
    During the second build, a fake, unexisting directory will be appended to the $PATH environment variable.

umask
    The builds will use different umask settings.

locale
    Both $LC_ALL and $LANG will be different across the two builds.

timezone
    $TZ will be different across builds.

filesystem ordering
    If disorderfs is installed, both builds will be done under a disorderfs overlay directory. This will cause filesystem listing operations to be return items in a non-deterministic order.

time
    The second build will be executed 213 days, 7 hours and 13 minutes in the future with regards to the current time.

SEE ALSO
diffoscope(1), disorderfs(1),

AUTHOR
Antonio Terceiro <terceiro@debian.org>.