[erlang-questions] Reproducible Erlang builds - still some time stamps

Pjotr Prins pjotr.public12@REDACTED
Thu Jun 9 19:31:27 CEST 2016


Hi all,

We noticed the great improvement in the recent release of Erlang, but
there are still some problems. Leo found the following:


----- Forwarded message from Leo Famulari <leo@REDACTED> -----

Date: Tue, 24 May 2016 12:07:10 -0400
From: Leo Famulari <leo@REDACTED>
To: Pjotr Prins <pjotr2016@REDACTED>
Subject: Re: [v3] Erlang
User-Agent: Mutt/1.6.0 (2016-04-01)

Sort of! The compiler does reproducibly build the attached
helloworld.erl.

But, the Erlang package itself does not build repeatedly. I've attached
the diffoscope report (in HTML format) of two build iterations from my
machine.

Basically, there are still timestamps in 'lib/erlang/erts-8.0/bin/beam'
and it's neighbour, 'beam.smp'.

There are also a variety of files that include lines like:
"%%%·​This·​file·​was·​automatically·​generated·​by·​snmpc_mib_to_hrl·​version·​5.​2.​3 
%%%·​Date:​·​24-​May-​2016:​:​15:​33:​12"

I remember finding the code that generates these lines and thinking it
should not be too hard for us to patch. I could crudely replace the
timestamp generator with "1", or an Erlang programmer could make it
respect SOURCE_DATE_EPOCH.

Or, should we contact Erlang to see if they can fix these issues before
the final release?

On Tue, May 24, 2016 at 03:44:08PM +0200, Pjotr Prins wrote:
> Does it work?
> 
> On Mon, May 23, 2016 at 02:59:14PM -0400, Leo Famulari wrote:
> > On Mon, May 23, 2016 at 01:48:11PM +0200, Pjotr Prins wrote:
> > > Good news. The changelog for
> > > 
> > >   http://erlang.org/download/OTP-19.0-rc1.README
> > > 
> > > says that 
> > > 
> > > OTP-13504    Application(s): compiler
> > > 
> > >                The compiler will no longer put the compilation date
> > >                and time into BEAM files. That means that two BEAM
> > >                files compiled on the same computer from the same
> > >                source code and compilation options will be identical.
> > > 
> > >                Note: If you want to find out whether a BEAM file on
> > >                disk is different from the loaded code, compared the
> > >                MD5 value obtained from Mod:module_info(md5) with the
> > >                MD5 value obtained from beam_lib:md5(BeamFileForMod)`
> > > 
> > > This means that Erlang and Elixir may go into GNU Guix :)
> > 
> > Indeed, great news :) I will try building it with Guix today.
> > 
> 
> -- 




More information about the erlang-questions mailing list