Subject: Old build daemons lead to non-reproducible builds

From: [email-masked] (Ludovic Courtès)
Date: Thu, 24 Nov 2016 14:09:50 +0100

Hi!

Old versions of guix-daemon would use /tmp/nix-build-… as the build
directory name instead of /tmp/guix-build-… (commit
7a57c96a1024e6b74359ba561110f19f92b89b06), and versions prior to 0.11.0
could use a different directory prefix (.drv-0, .drv-1, etc.)  whereas
current versions systematically use .drv-0 (commit
cb9601029ea164b86bdf997f7160d494c15d344b).

However, some of our build machines run old daemons, which leads to
discrepancies such has:

--8<---------------cut here---------------start------------->8---
$ wget -O - https://mirror.hydra.gnu.org/nar/3kxg1wvc1dnw9bdnp61pfc6vy14v4ikl-bash-4.4.0-include |bunzip2 |guix archive -x /tmp/foo
[…]
$ diff -ruBb /gnu/store/3kxg1wvc1dnw9bdnp61pfc6vy14v4ikl-bash-4.4.0-include /tmp/foo
diff -ruBb /gnu/store/3kxg1wvc1dnw9bdnp61pfc6vy14v4ikl-bash-4.4.0-include/lib/bash/Makefile.inc /tmp/foo/lib/bash/Makefile.inc
--- /gnu/store/3kxg1wvc1dnw9bdnp61pfc6vy14v4ikl-bash-4.4.0-include/lib/bash/Makefile.inc	1970-01-01 01:00:01.000000000 +0100
+++ /tmp/foo/lib/bash/Makefile.inc	2016-11-24 14:00:26.449665970 +0100
@@ -38,7 +38,7 @@
 headersdir = $(includedir)/$(PACKAGE_NAME)
 
 topdir = ../..
-BUILD_DIR = /tmp/guix-build-bash-4.4.0.drv-0/bash-4.4
+BUILD_DIR = /tmp/nix-build-bash-4.4.0.drv-0/bash-4.4
 srcdir = .
--8<---------------cut here---------------end--------------->8---

This can lead to hash mismatches between what the narinfo claims and
what the nar actually contains (due to caching), which annoys users.

We should update all our build machines to a newer daemon.

Ludo’.