gnu: mono: Make build reproducible.

* gnu/packages/patches/mono-mdoc-timestamping.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/mono.scm (mono)[source]: Use patch.
[arguments]<#:phases>[make-reproducible]: New phase.
<#:phases>[set-env]: Set SOURCE_DATE_EPOCH.
This commit is contained in:
Danny Milosavljevic 2018-11-27 00:23:03 +01:00
parent 8160baf8b7
commit bc0d24292d
No known key found for this signature in database
GPG key ID: E71A35542C30BAA5
3 changed files with 26 additions and 1 deletions

View file

@ -0,0 +1,15 @@
--- mono-4.4.1/mcs/class/monodoc/Monodoc/storage/ZipStorage.cs.orig 2018-11-26 22:16:25.008879747 +0100
+++ mono-4.4.1/mcs/class/monodoc/Monodoc/storage/ZipStorage.cs 2018-11-26 22:21:53.969770985 +0100
@@ -74,6 +74,12 @@
id = GetNewCode ();
ZipEntry entry = new ZipEntry (id);
+ var SOURCE_DATE_EPOCH_string = Environment.GetEnvironmentVariable("SOURCE_DATE_EPOCH");
+ if (SOURCE_DATE_EPOCH_string != null)
+ {
+ var SOURCE_DATE_EPOCH = Convert.ToInt64(SOURCE_DATE_EPOCH_string);
+ entry.DateTime = new DateTime(SOURCE_DATE_EPOCH, DateTimeKind.Utc);
+ }
zipOutput.PutNextEntry (entry);
}