From 6d27e0048963955b547584f004109bbbad6e9baf Mon Sep 17 00:00:00 2001 From: Nicolas Williams Date: Wed, 27 Sep 2017 15:30:00 -0500 Subject: [PATCH] Make builds reproduceable (#336) --- Makefile.am | 1 - cf/krb-version.m4 | 24 ------------------------ configure.ac | 51 ++++++++++++++++++++++++++++++++++++++++++++++----- 3 files changed, 46 insertions(+), 30 deletions(-) delete mode 100644 cf/krb-version.m4 diff --git a/Makefile.am b/Makefile.am index f2bb5ac116..7fb69fdf4e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -50,7 +50,6 @@ EXTRA_DIST = \ cf/krb-prog-yacc.m4 \ cf/krb-sys-aix.m4 \ cf/krb-sys-nextstep.m4 \ - cf/krb-version.m4 \ cf/roken.m4 \ cf/valgrind-suppressions \ cf/maybe-valgrind.sh \ diff --git a/cf/krb-version.m4 b/cf/krb-version.m4 deleted file mode 100644 index e196d993de..0000000000 --- a/cf/krb-version.m4 +++ /dev/null @@ -1,24 +0,0 @@ -dnl $Id$ -dnl -dnl -dnl output a C header-file with some version strings -dnl - -AC_DEFUN([AC_KRB_VERSION],[ -cat > include/newversion.h.in </dev/null | sed 1q` - Date=`date` - mv -f include/newversion.h.in include/version.h.in - sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h -fi -]) diff --git a/configure.ac b/configure.ac index 806b639730..212a7d2744 100644 --- a/configure.ac +++ b/configure.ac @@ -663,22 +663,63 @@ dnl dnl This is the release version name-number[beta] dnl -cat > include/newversion.h.in < include/newversion.h.in < include/newversion.h.in </dev/null | sed 1q` - Date=`date` + if test -n "$SOURCE_DATE_EPOCH"; then + Date=`date -u -d "@$SOURCE_DATE_EPOCH" "+%Y-%m-%dT%H:%M:%SZ"` + else + Date=`date -u "+%Y-%m-%dT%H:%M:%SZ"` + fi + if test -n "$SOURCE_HOST"; then + Host=$SOURCE_HOST + else + Host=`uname -n` + fi + if test -n "$SOURCE_USER"; then + User=$SOURCE_USER + else + User=${USER:-${LOGNAME:-`id -nu`}} + fi + if test -d "$srcdir/.git"; then + GitCommit=`git rev-parse HEAD` + GitBranch=`git rev-parse --abbrev-ref HEAD` + if test "x$GitBranch" = master; then + GitDesc=`git describe --all --dirty` + else + GitDesc=`git describe --tags --match 'heimdal-*' --dirty` + fi + else + GitCommit='' + GitBranch='' + GitDesc='' + fi mv -f include/newversion.h.in include/version.h.in - sed -e "s/@USER@/$User/" -e "s/@HOST@/$Host/" -e "s/@DATE@/$Date/" include/version.h.in > include/version.h + sed -e "s/@HOST@/$Host/" \ + -e "s;@USER@;$User;" \ + -e "s;@DATE@;$Date;" \ + -e "s;@BRANCH@;$GitBranch;" \ + -e "s;@TAG@;$GitDesc;" \ + -e "s;@COMMIT@;$GitCommit;" \ + include/version.h.in > include/version.h fi