From: Reiner Herrmann Date: Fri, 15 Sep 2017 09:43:53 +0000 (+0200) Subject: mdate-sh: Ensure reproducible time output X-Git-Tag: v1.16~31^2~4 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=7c25c996d1c7c212a5981aa0e9c4434b6f33f7b8;p=thirdparty%2Fautomake.git mdate-sh: Ensure reproducible time output This change fixes automake bug#20314. '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. * lib/mdate-sh: Set 'TZ' to UTC which ensures reproducible output. * NEWS: Announce bug fix. Copyright-paperwork-exempt: yes --- diff --git a/NEWS b/NEWS index e50a95561..c7a83a20c 100644 --- a/NEWS +++ b/NEWS @@ -118,6 +118,9 @@ New in ?.?.?: build, the build sub-directory defined by AC_CONFIG_LIBOBJ_DIR is now properly created. (automake bug#27781) + - The time printed by 'mdate-sh' is now using the UTC time zone to support + the reproducible build effort. (automake bug#20314) + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ New in 1.15.1: diff --git a/lib/mdate-sh b/lib/mdate-sh index f80075c04..b6a116f92 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=2016-01-11.22; # UTC +scriptversion=2017-09-15.09; # UTC # Copyright (C) 1995-2017 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.