From efe47381c599b07e4c7bbdb2e91e8090a541c887 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:53:52 +0200 Subject: Adding upstream version 2.23.4+deb12u1. Signed-off-by: Daniel Baumann --- scripts/debrepro.pod | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 scripts/debrepro.pod (limited to 'scripts/debrepro.pod') diff --git a/scripts/debrepro.pod b/scripts/debrepro.pod new file mode 100644 index 0000000..6cc7b2d --- /dev/null +++ b/scripts/debrepro.pod @@ -0,0 +1,177 @@ +=head1 NAME + +debrepro - reproducibility tester for Debian packages + +=head1 SYNOPSIS + +B [I] [I] + +=head1 DESCRIPTION + +B will build a given source directory twice, with a set of +variations between the first and the second build, and compare the +produced binary packages. If B is installed, it is used to +compare non-matching binaries. If B is installed, it is used +during the build to inject non-determinism in filesystem listing +operations. + +I must be a directory containing an unpacked Debian source +package. If I is omitted, the current directory is assumed. + +=head1 OUTPUT DIRECTORY + +At the very end of a build, B will inform the location of the +output directory where the build artifacts can be found. In that +directory, you will find: + +=over + +=item I<$OUTPUTDIR/first> + +Contains the results of the first build, including a copy of the source +tree, and the resulting binary packages. + +=item I<$OUTPUTDIR/first/build.sh> + +Contains the exact build script that was used in the first build. + +=item I<$OUTPUTDIR/second> + +Contains the results of the second build, including a copy of the source tree, +and the resulting binary packages. + +=item I<$OUTPUTDIR/second/build.sh> + +Contains the exact build script that was used in the second build. + +=back + +Taking a B between I<$OUTPUTDIR/first/build.sh> and +I<$OUTPUTDIR/second/build.sh> is an excellent way of figuring out +exactly what changed between the two builds. + +=head1 SUPPORTED VARIATIONS + +=over + +=item B + +The I<$USER> environment variable will contain different values between the +first and second builds. + +=item B + +During the second build, a fake, non-existing directory will be appended to the +I<$PATH> environment variable. + +=item B + +The builds will use different umask settings. + +=item B + +Both I<$LC_ALL> and I<$LANG> will be different across the two builds. + +=item B + +I<$TZ> will be different across builds. + +=item B + +If B 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. + +=item B