[Reproducible-builds] [Mono-dev] making mono builds reproducible (xamarin bz #26842)

Michael McGlothlin mike.mcglothlin at gmail.com
Mon Feb 16 23:17:53 UTC 2015


I'd always store time in epochs. Seconds since 1/1/1970 GMT.

The use of textual date strings instead of a epochs is one of the worst things I've seen from the C# way of doing things. I had often wondered why so many programs could have so much trouble with handling dates and times correctly..


Sent from my iPad

> On Feb 16, 2015, at 4:19 PM, Daniel Kahn Gillmor <dkg at fifthhorseman.net> wrote:
> 
> Hi Mono folks--
> 
> some good discussion has come up on the xamarin bugtracker about being
> able to make builds using the mono toolchain reproducible:
> 
>   https://bugzilla.xamarin.com/show_bug.cgi?id=26842
> 
> Jo Shields offered a one-liner fix to PEWriter.cs to allow the use of an
> environment variable to fix the timestamp epoch, but made it clear that
> more feedback is needed, so i'm raising it here:
> 
> from:
> 
>   public DWORD TimeDateStamp = (uint)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
> 
> to:
> 
>   public DWORD TimeDateStamp = Environment.GetEnvironmentVariable("IKVM_WRITER_TIMESTAMP_EPOCH") != null ?
>                                uint.Parse(Environment.GetEnvironmentVariable("IKVM_WRITER_TIMESTAMP_EPOCH")) :
>                                (uint)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
> 
> (i'm not sure whether the integer number of seconds is the best form for
> the environment variable, or whether it would be better to parse a
> standard date string -- from debian's perspective, we can deal with
> either, of course)
> 
> And this still doesn't solve the secondary issue of the assembly GUID,
> as Jo noted.
> 
> Any thoughts about how to best enable binary-reproducible builds from
> the mono toolchain if the invoker requests them?
> 
> Regards,
> 
>        --dkg
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list



More information about the Reproducible-builds mailing list