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?



Attachment: signature.asc
Description: PGP signature

Reproducible-builds mailing list

Reply via email to