Bug#868843: xorg-server: please make the BUILD_{DATE,TIME} reproducible
tags 868843 - moreinfo
forwarded 868843 https://lists.x.org/archives/xorg-devel/2017-July/thread.html
thanks
Hi Julien,
Thanks for the quick followup. :)
> How portable is the change to non-gnu date?
My previous patch was not. The updated attached patch is compatible
with BSD date(1). I am removing the "moreinfo" tag, assuming that was
why you added it.
> Can you send this patch upstream per
> https://www.x.org/wiki/Development/Documentation/SubmittingPatches/?
Done: https://lists.x.org/archives/xorg-devel/2017-July/thread.html
Best wishes,
--
,''`.
: :' : Chris Lamb, Debian Project Leader
`. `'` lamby@debian.org / chris-lamb.co.uk
`-
From bb171c65af6ee0c8b48e9108b277b1f9ff21f978 Mon Sep 17 00:00:00 2001
From: Chris Lamb <chris@chris-lamb.co.uk>
Date: Thu, 20 Jul 2017 15:42:15 +0100
Subject: [PATCH] configure.ac: Make BUILD_{DATE,TIME} respect
SOURCE_DATE_EPOCH if set
Whilst working on the Reproducible Builds effort [0], we noticed that
xorg-server could not be built reproducibly. One reason is because it
embeds a "current" build and date time.
This should be compatible with both GNU and BSD date(1).
[0] https://reproducible-builds.org/
---
configure.ac | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/configure.ac b/configure.ac
index e202770c1..f10a94cb4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2405,9 +2405,15 @@ AC_DEFINE_DIR(PROJECTROOT, prefix, [Overall prefix])
AC_DEFINE_DIR(SYSCONFDIR, sysconfdir, [sysconfdir])
AC_SUBST([RELEASE_DATE])
-BUILD_DATE="`date +'%Y%m%d'`"
+DATE_FMT="%Y-%m-%d"
+TIME_FMT="1%H%M%S"
+BUILD_DATE="`date "+$DATE_FMT"`"
+BUILD_TIME="`date "+$TIME_FMT"`"
+if test "x$SOURCE_DATE_EPOCH" != "x"; then
+ BUILD_DATE="`date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$DATE_FMT" 2>/dev/null || date -u "+$DATE_FMT"`"
+ BUILD_TIME="`date -u -d "@$SOURCE_DATE_EPOCH" "+$TIME_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$TIME_FMT" 2>/dev/null || date -u "+$TIME_FMT"`"
+fi
AC_SUBST([BUILD_DATE])
-BUILD_TIME="`date +'1%H%M%S'`"
AC_SUBST([BUILD_TIME])
DIX_CFLAGS="-DHAVE_DIX_CONFIG_H $XSERVER_CFLAGS"
--
2.13.3
Reply to: