mirror of https://github.com/containers/podman.git
Support Reproducible Builds by removing build path
An issue for achieving reproducible builds is build artifacts where build paths are embedded. We remove them by passing the current working directory to -gcflags and -asmflags which prefix trims the paths. Note: Go 1.13 includes `-trimpath` https://reproducible-builds.org/docs/build-path/ Signed-off-by: Morten Linderud <morten@linderud.pw>
This commit is contained in:
parent
8f7255657a
commit
156ebcbdf9
12
Makefile
12
Makefile
|
@ -58,6 +58,8 @@ else
|
|||
ISODATE ?= $(shell date --iso-8601)
|
||||
endif
|
||||
LIBPOD := ${PROJECT}/libpod
|
||||
GCFLAGS ?= all=-trimpath=${PWD}
|
||||
ASMFLAGS ?= all=-trimpath=${PWD}
|
||||
LDFLAGS_PODMAN ?= $(LDFLAGS) \
|
||||
-X $(LIBPOD).gitCommit=$(GIT_COMMIT) \
|
||||
-X $(LIBPOD).buildInfo=$(BUILD_INFO) \
|
||||
|
@ -138,16 +140,16 @@ test/goecho/goecho: .gopathok $(wildcard test/goecho/*.go)
|
|||
$(GO) build -ldflags '$(LDFLAGS)' -o $@ $(PROJECT)/test/goecho
|
||||
|
||||
podman: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman
|
||||
$(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman
|
||||
$(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o bin/$@ $(PROJECT)/cmd/podman
|
||||
|
||||
podman-remote: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman on remote environment
|
||||
$(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS) remoteclient" -o bin/$@ $(PROJECT)/cmd/podman
|
||||
$(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS) remoteclient" -o bin/$@ $(PROJECT)/cmd/podman
|
||||
|
||||
podman-remote-darwin: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman on remote OSX environment
|
||||
GOOS=darwin $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@ $(PROJECT)/cmd/podman
|
||||
GOOS=darwin $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@ $(PROJECT)/cmd/podman
|
||||
|
||||
podman-remote-windows: .gopathok $(PODMAN_VARLINK_DEPENDENCIES) ## Build with podman for a remote windows environment
|
||||
GOOS=windows $(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@.exe $(PROJECT)/cmd/podman
|
||||
GOOS=windows $(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags "remoteclient containers_image_openpgp exclude_graphdriver_devicemapper" -o bin/$@.exe $(PROJECT)/cmd/podman
|
||||
|
||||
local-cross: $(CROSS_BUILD_TARGETS) ## Cross local compilation
|
||||
|
||||
|
@ -155,7 +157,7 @@ bin/podman.cross.%: .gopathok
|
|||
TARGET="$*"; \
|
||||
GOOS="$${TARGET%%.*}" \
|
||||
GOARCH="$${TARGET##*.}" \
|
||||
$(GO) build -ldflags '$(LDFLAGS_PODMAN)' -tags '$(BUILDTAGS_CROSS)' -o "$@" $(PROJECT)/cmd/podman
|
||||
$(GO) build -gcflags '$(GCFLAGS)' -asmflags '$(ASMFLAGS)' -ldflags '$(LDFLAGS_PODMAN)' -tags '$(BUILDTAGS_CROSS)' -o "$@" $(PROJECT)/cmd/podman
|
||||
|
||||
clean: ## Clean artifacts
|
||||
rm -rf \
|
||||
|
|
Loading…
Reference in New Issue