Skip to content

Commit 6347323

Browse files
committed
Ensure that file modified time is set correctly
Commit e435bc6 introduced behavior in creating the source-dist archive that sets the file modification time to the same time as the most recent `git` commit. This facilitates reproducible builds, but it also has an issue. The code sets `TZ=`, which means that on systems running in time zones which aren't UTC, the modification time will be in the future (or past). Up until recently, this only resulted in GNU make printing warnings about modification times being in the future. However, with recent changes in how escripts are built, this results in an "infinite make loop" that is described in #14440 and #14443 The solution is to _not_ hard-code the `TZ` value when calculating the time of the most recent `git` commit. Remove `TZ=` as it is the root cause of #14440
1 parent 88ea37b commit 6347323

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ $(1): $(ERLANG_MK_RECURSIVE_DEPS_LIST)
189189
$${gen_verbose} $${RSYNC} $(2) ./ $$@/
190190
$${verbose} echo "$(PROJECT_DESCRIPTION) $(PROJECT_VERSION)" > $$@/git-revisions.txt
191191
$${verbose} echo "$(PROJECT) $$$$(git rev-parse HEAD) $$$$(git describe --tags --exact-match 2>/dev/null || git symbolic-ref -q --short HEAD)" >> $$@/git-revisions.txt
192-
$${verbose} echo "$$$$(TZ= git --no-pager log -n 1 --format='%cd' --date='format-local:%Y%m%d%H%M.%S')" > $$@.git-times.txt
192+
$${verbose} echo "$$$$(git --no-pager log -n 1 --format='%cd' --date='format-local:%Y%m%d%H%M.%S')" > $$@.git-times.txt
193193
$${verbose} cat packaging/common/LICENSE.head > $$@/LICENSE
194194
$${verbose} mkdir -p $$@/deps/licensing
195195
$${verbose} set -e; for dep in $$$$(cat $(ERLANG_MK_RECURSIVE_DEPS_LIST) | LC_COLLATE=C sort); do \
@@ -216,7 +216,7 @@ $(1): $(ERLANG_MK_RECURSIVE_DEPS_LIST)
216216
echo "$$$$(basename "$$$$dep") $$$$(git rev-parse HEAD) $$$$(git describe --tags --exact-match 2>/dev/null || git symbolic-ref -q --short HEAD)") \
217217
>> "$$@/git-revisions.txt"; \
218218
! test -d $$$$dep/.git || (cd $$$$dep; \
219-
echo "$$$$(env TZ= git --no-pager log -n 1 --format='%cd' --date='format-local:%Y%m%d%H%M.%S')") \
219+
echo "$$$$(git --no-pager log -n 1 --format='%cd' --date='format-local:%Y%m%d%H%M.%S')") \
220220
>> "$$@.git-times.txt"; \
221221
done
222222
$${verbose} cat packaging/common/LICENSE.tail >> $$@/LICENSE

0 commit comments

Comments
 (0)