On Wed, Nov 25, 2015 at 11:17:27AM +0100, Pierre Pronchery wrote: > The automatic approach is great because we don't want reproducible > builds only for releases. It can be documented for releases regardless.
The automatic aproach relies on local file times in your source tree. I don't see how that can usefully work if you want to reproduce a build on a different machine later. Having a tool to calculate the timestamp and invoking ./build.sh -V MKREPROTIME=$( $tooldir/bin/latest-plus-one-sec . ) is fine, of course (even better if $MKREPROTIME goes into BUILDINFO). Then when trying to reproduce that build you grep the timestamp from /etc/release and do ./build.sh -V MKREPROTIME=1448447287 and you don't have to play games with your filetimes. The easiest way for freebsd (using subversion) is to check for the timestamp of the latest subversion change on the current branch and use that. However, that is not good for folks doing local MKREPRO builds. Anyway, my point is: the information needs to be explicitly passed on the build.sh command line. Calculating it automatically internaly is not good. Generating it (sensibly) for the command line optionally automatically of course is fine. Martin