summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-12-16 22:05:30 +0100
committerLudovic Courtès <ludo@gnu.org>2015-12-16 22:05:30 +0100
commitc5b65f7e2bd907a5b7061a42959c485d69ba1ac6 (patch)
treee44556f24055ef765ccb0febfa6e242358e047c0
parent6042f40bfa0a78bfa850a0ff469a785b2da68a61 (diff)
downloadguix-c5b65f7e2bd907a5b7061a42959c485d69ba1ac6.tar.gz
gnu: glibc: Remove timestamp from 'nscd' binary.
This makes libc bit-for-bit reproducible per '--rounds=2'.

* gnu/packages/base.scm (glibc)[arguments] <pre-configure>: Remove
__DATE__ and __TIME__ from nscd_stat.c.
-rw-r--r--gnu/packages/base.scm9
1 files changed, 9 insertions, 0 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 75f00a6f5b..ce7d1cdd77 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -595,6 +595,15 @@ store.")
                          (string-append "#define _PATH_BSHELL \""
                                         bash "/bin/bash\"\n")))
 
+                      ;; Nscd uses __DATE__ and __TIME__ to create a string to
+                      ;; make sure the client and server come from the same
+                      ;; libc.  Use something deterministic instead.
+                      (substitute* "nscd/nscd_stat.c"
+                        (("static const char compilation\\[21\\] =.*$")
+                         (string-append
+                          "static const char compilation[21] = \""
+                          (string-take (basename out) 20) "\";\n")))
+
                       ;; Make sure we don't retain a reference to the
                       ;; bootstrap Perl.
                       (substitute* "malloc/mtrace.pl"