[OTR-dev] Reproducible builds of pidgin-otr for Windows

Ian Goldberg ian at cypherpunks.ca
Mon Mar 28 18:52:37 EDT 2016


OK, there was a weird issue with reproducible builds of the tarball for
libotr.

It turns out (at least with the current Ubuntu 14.04 version of
automake) that the first time you run autoreconf, which itself runs
automake, automake does not find config/depcomp (since it does not yet
exist), and so does not list config/depcomp in the resulting
Makefile.in.  (Which is weird, because it lists other files in config/
that it just created, but not depcomp.)  Running autoreconf *again*
causes config/depcomp to become correctly listed in Makefile.in.

So I committed a change to the ./bootstrap program to run autoreconf,
then grep -q config/depcomp Makefile.in, then run it again if the grep
failed.

Now "make dist" will produce identical output, whether you run it from a
fresh clone or a directory you've used before.  And if you untar the
"make dist" output tarball, and "./configure; make dist", or even
"./bootstrap; ./configure; make dist", you get the byte-for-byte
identical tarball to the one you started with.

At least I do.

With the current commit (libotr devel branch commit 0774db331766), I
get (on Ubuntu 14.04):

f54fc56b979f10a5ea7861975bec13110951d0508d7625dfb40b326bb1142b68  libotr-4.1.1.tar.gz

   - Ian


More information about the OTR-dev mailing list