aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanny Milosavljevic <dannym@scratchpost.org>2018-11-27 00:23:03 +0100
committerDanny Milosavljevic <dannym@scratchpost.org>2018-11-27 00:36:47 +0100
commitbc0d24292d776826b8ce9c9aa9d620e33160d1ed (patch)
tree3a14f68aa14b4f6bd1c084016953627491e2868a
parent8160baf8b755cc6217ac263a61724c789fcf49e8 (diff)
downloadguix-bc0d24292d776826b8ce9c9aa9d620e33160d1ed.tar
guix-bc0d24292d776826b8ce9c9aa9d620e33160d1ed.tar.gz
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.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/mono.scm11
-rw-r--r--gnu/packages/patches/mono-mdoc-timestamping.patch15
3 files changed, 26 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 23af3f67d7..250c773992 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -972,6 +972,7 @@ dist_patch_DATA = \
%D%/packages/patches/module-init-tools-moduledir.patch \
%D%/packages/patches/monero-use-system-miniupnpc.patch \
%D%/packages/patches/mongodb-support-unknown-linux-distributions.patch \
+ %D%/packages/patches/mono-mdoc-timestamping.patch \
%D%/packages/patches/mozjs17-aarch64-support.patch \
%D%/packages/patches/mozjs24-aarch64-support.patch \
%D%/packages/patches/mozjs38-pkg-config-version.patch \
diff --git a/gnu/packages/mono.scm b/gnu/packages/mono.scm
index 8ab449dd8e..17f90fe30a 100644
--- a/gnu/packages/mono.scm
+++ b/gnu/packages/mono.scm
@@ -41,7 +41,8 @@
".tar.bz2"))
(sha256
(base32
- "0jibyvyv2jy8dq5ij0j00iq3v74r0y90dcjc3dkspcfbnn37cphn"))))
+ "0jibyvyv2jy8dq5ij0j00iq3v74r0y90dcjc3dkspcfbnn37cphn"))
+ (patches (search-patches "mono-mdoc-timestamping.patch"))))
(build-system gnu-build-system)
(native-inputs
`(("gettext" ,gettext-minimal)
@@ -52,10 +53,18 @@
(arguments
`(#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'make-reproducible
+ (lambda _
+ (substitute* "mono/mini/Makefile.in"
+ (("build_date = [^;]*;")
+ "build_date = (void*) 0;"))
+ #t))
(add-after 'unpack 'set-env
(lambda _ ;;* (#:key inputs #:allow-other-keys)
;; all tests under mcs/class fail trying to access $HOME
(setenv "HOME" "/tmp")
+ ;; ZIP files have "DOS time" which starts in Jan 1980.
+ (setenv "SOURCE_DATE_EPOCH" "315532800")
#t))
(add-after 'unpack 'fix-includes
(lambda _
diff --git a/gnu/packages/patches/mono-mdoc-timestamping.patch b/gnu/packages/patches/mono-mdoc-timestamping.patch
new file mode 100644
index 0000000000..d5191a93eb
--- /dev/null
+++ b/gnu/packages/patches/mono-mdoc-timestamping.patch
@@ -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);
+ }
+