mirror of
https://github.com/containers/podman.git
synced 2025-06-21 01:19:15 +08:00
Support SOURCE_DATE_EPOCH
Build artifacts embeds the current date of the build into the artifact. If anyone want to reproduce the software at a later date there is no way to pass a recorded date or fake it in the build system at a later point. https://reproducible-builds.org/docs/source-date-epoch/ Signed-off-by: Morten Linderud <morten@linderud.pw>
This commit is contained in:
10
Makefile
10
Makefile
@ -49,14 +49,20 @@ SELINUXOPT ?= $(shell test -x /usr/sbin/selinuxenabled && selinuxenabled && echo
|
||||
|
||||
COMMIT_NO ?= $(shell git rev-parse HEAD 2> /dev/null || true)
|
||||
GIT_COMMIT ?= $(if $(shell git status --porcelain --untracked-files=no),${COMMIT_NO}-dirty,${COMMIT_NO})
|
||||
BUILD_INFO ?= $(shell date +%s)
|
||||
DATE_FMT = %s
|
||||
ifdef SOURCE_DATE_EPOCH
|
||||
BUILD_INFO ?= $(shell 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)")
|
||||
ISODATE ?= $(shell date -d "@$(SOURCE_DATE_EPOCH)" --iso-8601)
|
||||
else
|
||||
BUILD_INFO ?= $(shell date "+$(DATE_FMT)")
|
||||
ISODATE ?= $(shell date --iso-8601)
|
||||
endif
|
||||
LIBPOD := ${PROJECT}/libpod
|
||||
LDFLAGS_PODMAN ?= $(LDFLAGS) \
|
||||
-X $(LIBPOD).gitCommit=$(GIT_COMMIT) \
|
||||
-X $(LIBPOD).buildInfo=$(BUILD_INFO) \
|
||||
-X $(LIBPOD).installPrefix=$(PREFIX) \
|
||||
-X $(LIBPOD).etcDir=$(ETCDIR)
|
||||
ISODATE ?= $(shell date --iso-8601)
|
||||
#Update to LIBSECCOMP_COMMIT should reflect in Dockerfile too.
|
||||
LIBSECCOMP_COMMIT := release-2.3
|
||||
|
||||
|
Reference in New Issue
Block a user