https://bugs.gentoo.org/520818 https://bugs.gentoo.org/574492 https://lists.gnu.org/archive/html/bug-automake/2014-10/msg00003.html https://lists.gnu.org/archive/html/bug-automake/2014-10/msg00004.html https://debbugs.gnu.org/20314 https://bugs.debian.org/782345 https://lists.gnu.org/archive/html/automake-patches/2015-04/msg00000.html From: Reiner Herrmann Date: Sat, 18 Jul 2015 14:10:35 -0400 Subject: Make output of mdate-sh deterministic mdate-sh pretty-prints the modification time of a file. But it's output can vary depending on the timezone of the caller. Someone in timezone GMT-12 will get a different result (day) than someone in timezone GMT+12. As this output is also used to create/update stamp files, which influence the further build process, the build result can vary. To enable reproducible builds and to have a more deterministic build behavior, this change fixes the timezone to UTC. Signed-off-by: Reiner Herrmann --- lib/mdate-sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/mdate-sh b/lib/mdate-sh index e8dfaca..9e2c0c9 100755 --- a/lib/mdate-sh +++ b/lib/mdate-sh @@ -1,7 +1,7 @@ #!/bin/sh # Get modification time of a file or directory and pretty-print it. -scriptversion=2010-08-21.06; # UTC +scriptversion=2015-04-09.19; # UTC # Copyright (C) 1995-2014 Free Software Foundation, Inc. # written by Ulrich Drepper , June 1995 @@ -74,6 +74,10 @@ export LC_ALL LC_TIME=C export LC_TIME +# Use UTC to get reproducible result +TZ=UTC +export TZ + # GNU ls changes its time format in response to the TIME_STYLE # variable. Since we cannot assume 'unset' works, revert this # variable to its documented default.