From 596f27bad3f5aa7a8b1e0c049b3d8c956325d2d4 Mon Sep 17 00:00:00 2001 From: Helmut Buchsbaum Date: Sun, 5 Apr 2020 09:56:29 +0200 Subject: [PATCH] Makefile: Make builds reproducible Make builds reproducible by honoring SOURCE_DATE_EPOCH and USER environment variables in the respective Makefiles. Just follow the recommendations at https://reproducible-builds.org/ Build tools (e.g. Debian packaging, Yocto) use this to ensure reproducibility of packages. Tracked-On: #6035 Signed-off-by: Helmut Buchsbaum --- devicemodel/Makefile | 4 ++-- hypervisor/Makefile | 4 ++-- misc/debug_tools/acrn_crashlog/acrnprobe/Makefile | 4 ++-- misc/debug_tools/acrn_crashlog/usercrash/Makefile | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/devicemodel/Makefile b/devicemodel/Makefile index 4472dc6dd..fb71657f9 100644 --- a/devicemodel/Makefile +++ b/devicemodel/Makefile @@ -224,8 +224,8 @@ $(VERSION_H): PATCH=$(DM_BUILD_VERSION);\ DAILY_TAG=$(DM_BUILD_TAG);\ fi;\ - TIME=`date "+%Y-%m-%d %H:%M:%S"`;\ - USER=`id -u -n`; \ + TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ + USER="$${USER:-$$(id -u -n)}"; \ echo "/*" > $(VERSION_H); \ sed 's/^/ * /' ../LICENSE >> $(VERSION_H);\ echo " */" >> $(VERSION_H);\ diff --git a/hypervisor/Makefile b/hypervisor/Makefile index b9521c5c4..8aa2510c1 100644 --- a/hypervisor/Makefile +++ b/hypervisor/Makefile @@ -476,8 +476,8 @@ $(VERSION): $(HV_CONFIG_H) DIRTY=`git diff-index --name-only HEAD`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ DAILY_TAG=`git tag --merged HEAD|grep "acrn"|tail -n 1`;\ - TIME=`date "+%F %T"`;\ - USER=`id -u -n`; \ + TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%F %T"); \ + USER="$${USER:-$$(id -u -n)}"; \ if [ x$(CONFIG_RELEASE) = "xy" ];then BUILD_TYPE="REL";else BUILD_TYPE="DBG";fi;\ echo "/*" > $(VERSION); \ sed 's/^/ * /' ../LICENSE >> $(VERSION); \ diff --git a/misc/debug_tools/acrn_crashlog/acrnprobe/Makefile b/misc/debug_tools/acrn_crashlog/acrnprobe/Makefile index 86f6f49e8..52692f31e 100644 --- a/misc/debug_tools/acrn_crashlog/acrnprobe/Makefile +++ b/misc/debug_tools/acrn_crashlog/acrnprobe/Makefile @@ -66,8 +66,8 @@ $(VERSION_H): @COMMIT=`git log -1 --pretty=format:%h . 2>/dev/null`;\ DIRTY=`git diff --name-only $(CURDIR)`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - TIME=`date "+%Y-%m-%d %H:%M:%S"`;\ - USER=`id -u -n`; \ + TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ + USER="$${USER:-$$(id -u -n)}"; \ cat $(CURDIR)/../license_header > $(VERSION_H);\ echo "#define AP_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\ echo "#define AP_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\ diff --git a/misc/debug_tools/acrn_crashlog/usercrash/Makefile b/misc/debug_tools/acrn_crashlog/usercrash/Makefile index dec5a0f99..a7e5471c1 100644 --- a/misc/debug_tools/acrn_crashlog/usercrash/Makefile +++ b/misc/debug_tools/acrn_crashlog/usercrash/Makefile @@ -45,8 +45,8 @@ $(VERSION_H): @COMMIT=`git log -1 --pretty=format:%h . 2>/dev/null`;\ DIRTY=`git diff --name-only $(CURDIR)`;\ if [ -n "$$DIRTY" ];then PATCH="$$COMMIT-dirty";else PATCH="$$COMMIT";fi;\ - TIME=`date "+%Y-%m-%d %H:%M:%S"`;\ - USER=`id -u -n`; \ + TIME=$$(date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" "+%Y-%m-%d %H:%M:%S"); \ + USER="$${USER:-$$(id -u -n)}"; \ cat $(CURDIR)/../license_header > $(VERSION_H);\ echo "#define UC_MAJOR_VERSION $(MAJOR_VERSION)" >> $(VERSION_H);\ echo "#define UC_MINOR_VERSION $(MINOR_VERSION)" >> $(VERSION_H);\