Re: meaning of "Automatic date update in version.in" commits

Simon Marchi
2017-09-21T16:01:02Z

On 2017-09-21 17:46, Petr Ovtchenkov wrote:
>> Binary reproducible builds mean that if you and I start with the same
>> source code and same build tools, we will get exactly the same build
>> artifacts. Here the build can't "depend on what date you use":
>
> If "date stamp" inserted into binary is a build date,

It is definitely not a build date (as in the date at which you run
make), I don't think anybody is suggesting that.

> then we will have different
> binaries. If we will use something else, for example "last commit"
> date,
> then we may have "same" build, but may not. From equality of "last
> commit" date
> not follow binary equivalence (consider cherry-picked commit, for
> example,
> or variations of sample "git diff 3110f4be18a2 f625a739" I show above).

That's the part I don't understand in your reasoning.

f625a739 is the commit that bumps the date to Sept 20 in the
binutils-2_29-branch, 3110f4be18a2 is the commit that bumps the date to
Sept 20 in the gdb-8.0-branch. They happen to have the same title and
same diff, but they are otherwise not related. Those two branches do
not contain the same code, and therefore are not expected to produce the
same build artifacts.

So if you checkout the repo at f625a739 (state at which the gdb 8.0
branch was on Sept 20) and I do the same, we'll be able to get
reproducible builds if we use the same toolchain (unless something else
entirely causes the build to not be reproducible, I haven't tried).

Simon