[Mono-dev] making mono builds reproducible (xamarin bz #26842)
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:
> 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:
> public DWORD TimeDateStamp = (uint)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
> 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?
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
More information about the Mono-devel-list