GNU bug report logs - #20272
Support reproducible builds

Previous Next

Package: guile;

Reported by: ludo <at> gnu.org (Ludovic Courtès)

Date: Tue, 7 Apr 2015 11:49:01 UTC

Severity: important

Tags: patch

Full log


Message #36 received at 20272 <at> debbugs.gnu.org (full text, mbox):

From: Jan Nieuwenhuizen <janneke <at> gnu.org>
To: 20272 <at> debbugs.gnu.org
Subject: bug#20272: Support reproducible builds
Date: Mon, 14 Nov 2016 22:44:20 +0100
[Message part 1 (text/plain, inline)]
Jan Nieuwenhuizen writes:

I have been building quite some versions of Guile the past week.  There
re a couple of .go files that keep giving me problems wrt
nondeterminism:

    web/server/http.go

(define *timer* (gettimeofday)) seemed suspect, but seems harmless.

    rnrs/arithmetic/fixnums.go

make-implementation-restriction-violation seemed suspect, but commenting
it out does not seem to help.

After commenting out all of http.scm and fixnums.scm, yesterday I had 3
Guix builds on two machines (GuixSD and one Ubuntu+Guix) that were
bit-identical, but one build showed differences in

    system/repl/commands.go

Apparently most of the time this file builds deterministicly, but some
times it does not!?  Ideas?

In the mean time, one more obviously correct and trivial patch attatched
that removes a build time stamp.

Greetings,
Jan

[0001-Reproducible-build-Set-buildstamp-to-EPOCH.patch (text/x-patch, inline)]
From 2050673bffaa0ba18fabb8e92c3bc388f40bcea5 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke <at> gnu.org>
Date: Fri, 4 Nov 2016 16:12:55 +0100
Subject: [PATCH] Reproducible build: Set buildstamp to EPOCH.

* libguile/Makefile.am (libpath.h): Set buildstamp to EPOCH.
---
 libguile/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libguile/Makefile.am b/libguile/Makefile.am
index 31cff75..4471d16 100644
--- a/libguile/Makefile.am
+++ b/libguile/Makefile.am
@@ -743,7 +743,7 @@ libpath.h: $(srcdir)/Makefile.in  $(top_builddir)/config.status
 		>> libpath.tmp
 	@echo '	{ "LIBS",	   "@GUILE_LIBS@" }, \' >> libpath.tmp
 	@echo '	{ "CFLAGS",	   "@GUILE_CFLAGS@" }, \' >> libpath.tmp
-	@echo '	{ "buildstamp",    "'`date -u +'%Y-%m-%d %T'`'" }, \' >> libpath.tmp
+	@echo '	{ "buildstamp",    "'`date -u -d <at> 0`'" }, \' >> libpath.tmp
 	@echo '}' >> libpath.tmp
 	$(AM_V_GEN)mv libpath.tmp libpath.h
 
-- 
2.10.1

[Message part 3 (text/plain, inline)]
-- 
Jan Nieuwenhuizen <janneke <at> gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar®  http://AvatarAcademy.nl  

This bug report was last modified 1 year and 66 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.