build: use VPP_BUILD_TOPDIR from environment if set

Commit 3d14f036199d added the possibility to use `VPP_BUILD_USER` and
`VPP_BUILD_HOST` from environment (if they are set) to avoid
reproducibility issues by hard-coding such data in the build system.
However, there's no way to provide VPP_BUILD_TOPDIR externally. Add this
feature to improve binary reproducibility.

Type: improvement
Change-Id: I3a7ee47d75af9635b636fa3750a3688314eaa60d
Signed-off-by: Oleksandr Hnatiuk <ohnatiuk@cisco.com>
This commit is contained in:
Oleksandr Hnatiuk 2024-08-28 21:20:04 -07:00 committed by Damjan Marion
parent aac5e686f3
commit 20956385c7

View File

@ -1,6 +1,7 @@
#!/usr/bin/env bash
: ${VPP_BUILD_USER:=$(whoami)}
: ${VPP_BUILD_HOST:=$(hostname)}
: ${VPP_BUILD_TOPDIR:=$(git rev-parse --show-toplevel 2> /dev/null)}
DATE_FMT="+%Y-%m-%dT%H:%M:%S"
SOURCE_DATE_EPOCH="${SOURCE_DATE_EPOCH:-$(date +%s)}"
VPP_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")
@ -27,7 +28,7 @@ cat > ${1} << __EOF__
#define VPP_BUILD_DATE "$VPP_BUILD_DATE"
#define VPP_BUILD_USER "$VPP_BUILD_USER"
#define VPP_BUILD_HOST "$VPP_BUILD_HOST"
#define VPP_BUILD_TOPDIR "$(git rev-parse --show-toplevel 2> /dev/null)"
#define VPP_BUILD_TOPDIR "$VPP_BUILD_TOPDIR"
#define VPP_BUILD_VER "$(scripts/version)"
#endif
__EOF__