On Mon, 15 Nov 2010 12:56:29 +0100, Erik Cederstrand <e...@cederstrand.dk> 
wrote:
>Den 15/11/2010 kl. 12.40 skrev Tom Evans:
>> The important things for us are that given a binary, you should be
>> able to easily reproduce the source environment that the binary was
>> produced from, and any two binaries produced from the same sources
>> should be identical.
>
> I'm leaning towards not even recording the svn rev. within the binary. A
> commit only changing comments or style(9) would not change the bits of
> the binary, but the differing revision number would. A solution could be
> to have an external file, e.g. /etc/kernel-buildinfo and
> /etc/world-buildinfo, containing the output of "svn stat", "svn diff",
> src.conf, make.conf, SRCDIR and OBJDIR locations, the full
> buildworld/kernel command and whatever else could affect the build
> outcome.

A few other things that may affect the binaries produced are:

  * Runtime shell environment (CFLAGS etc.)
  * make -j JOBS count
  * the value of -frandom-seed=STRING (see NetBSD's build.sh script and
    `3.9 Options for Debugging Your Program or GCC' in the gcc.info docs)

If we are to record all these in the resulting binary snapshot of build
output, then it may be possible to fully reproduce the *exact* set of
binaries from a given source tree, but 'perfect' may be the enemy of the
good-enough solution.

Attachment: pgpFKtRpaRTsA.pgp
Description: PGP signature

Reply via email to