Commit bab51097 authored by Herbert Valerio Riedel's avatar Herbert Valerio Riedel 🕺

Make git-committer inferred version-date TZ-invariant

The existing code suffers from the issue of converting the
committer date to localtime, thereby resulting in varying
inferred dates for the same commit-hash depending on the currently
set local timezone.

In order to have a universally unique mapping between commit-hashes and
their snapshot-version-date it's better to convert to the date expressed
in a fixed timezone like e.g. UTC.

Sadly, `git` doesn't seem to provide a way to directly format dates the
way we need it, so we shell out to `perl` for this.

Reviewers: austin, thomie, erikd, bgamari

Differential Revision: https://phabricator.haskell.org/D1711
parent 295085c3
......@@ -1458,10 +1458,11 @@ if test "$RELEASE" = "NO"; then
AC_MSG_RESULT(given $PACKAGE_VERSION)
elif test -d .git; then
changequote(, )dnl
ver_date=`git log -n 1 --date=short --pretty=format:%ci | cut -d ' ' -f 1 | tr -d -`
ver_posixtime=`git log -1 --pretty=format:%ct`
ver_date=`perl -MPOSIX -e "print strftime('%Y%m%d', gmtime($ver_posixtime));"`
if echo $ver_date | grep '^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$' 2>&1 >/dev/null; then true; else
changequote([, ])dnl
AC_MSG_ERROR([failed to detect version date: check that git is in your path])
AC_MSG_ERROR([failed to detect version date: check that git and perl are in your path])
fi
PACKAGE_VERSION=${PACKAGE_VERSION}.$ver_date
AC_MSG_RESULT(inferred $PACKAGE_VERSION)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment