diff options
| author | Andrei Gherzan <andrei.gherzan@huawei.com> | 2022-07-05 12:17:49 +0200 |
|---|---|---|
| committer | Bruce Ashfield <bruce.ashfield@gmail.com> | 2022-07-05 16:25:25 -0400 |
| commit | a33188fab89bc16a82742b0cc865dda239c225dc (patch) | |
| tree | dd4d64652a61862836b0b6ba01600b8ce0ace148 | |
| parent | 320f44c6e9af463a85b58e0d87ca70273c6b87f6 (diff) | |
| download | meta-virtualization-a33188fab89bc16a82742b0cc865dda239c225dc.tar.gz | |
podman: Fix host contamination
The project's internal Makefile uses BUILDFLAGS variable to pass
arguments to `go build` while Yocto/OE defines it as GOBUILDFLAGS. Add a
patch to align this and avoid using host headers in which case, a musl
build will fail similarly to:
| [...]ld: /tmp/go-link-3172010154/000015.o: in function `vfprintf':
| /usr/include/x86_64-linux-gnu/bits/stdio2.h:130: undefined reference to `__vfprintf_chk'
| [...]ld: /tmp/go-link-3172010154/000016.o: in function `fprintf':
| /usr/include/x86_64-linux-gnu/bits/stdio2.h:100: undefined reference to `__fprintf_chk'
| collect2: error: ld returned 1 exit status
Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com>
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
| -rw-r--r-- | recipes-containers/podman/podman/0001-Rename-BUILDFLAGS-to-GOBUILDFLAGS.patch | 125 | ||||
| -rw-r--r-- | recipes-containers/podman/podman_git.bb | 1 |
2 files changed, 126 insertions, 0 deletions
diff --git a/recipes-containers/podman/podman/0001-Rename-BUILDFLAGS-to-GOBUILDFLAGS.patch b/recipes-containers/podman/podman/0001-Rename-BUILDFLAGS-to-GOBUILDFLAGS.patch new file mode 100644 index 00000000..13a736e4 --- /dev/null +++ b/recipes-containers/podman/podman/0001-Rename-BUILDFLAGS-to-GOBUILDFLAGS.patch | |||
| @@ -0,0 +1,125 @@ | |||
| 1 | From 3e18f3a4db638a3df48f49aa0a539f8bb048afc9 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Andrei Gherzan <andrei.gherzan@huawei.com> | ||
| 3 | Date: Tue, 5 Jul 2022 11:51:56 +0200 | ||
| 4 | Subject: [PATCH] Rename BUILDFLAGS to GOBUILDFLAGS | ||
| 5 | |||
| 6 | Yocto uses GOBUILDFLAGS to pass the right build flags while the Makefile | ||
| 7 | uses BUILDFLAGS. Align them accordingly. | ||
| 8 | |||
| 9 | See go.bbclass for more information. | ||
| 10 | |||
| 11 | Upstream-Status: Inappropriate [OE specific] | ||
| 12 | Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> | ||
| 13 | --- | ||
| 14 | Makefile | 24 ++++++++++++------------ | ||
| 15 | 1 file changed, 12 insertions(+), 12 deletions(-) | ||
| 16 | |||
| 17 | diff --git a/Makefile b/Makefile | ||
| 18 | index cb230d8e9..538b28d41 100644 | ||
| 19 | --- a/Makefile | ||
| 20 | +++ b/Makefile | ||
| 21 | @@ -69,7 +69,7 @@ PRE_COMMIT = $(shell command -v bin/venv/bin/pre-commit ~/.local/bin/pre-commit | ||
| 22 | # triggered. | ||
| 23 | SOURCES = $(shell find . -path './.*' -prune -o \( \( -name '*.go' -o -name '*.c' \) -a ! -name '*_test.go' \) -print) | ||
| 24 | |||
| 25 | -BUILDFLAGS := -mod=vendor $(BUILDFLAGS) | ||
| 26 | +GOBUILDFLAGS := -mod=vendor $(GOBUILDFLAGS) | ||
| 27 | |||
| 28 | BUILDTAGS_CROSS ?= containers_image_openpgp exclude_graphdriver_btrfs exclude_graphdriver_devicemapper exclude_graphdriver_overlay | ||
| 29 | CONTAINER_RUNTIME := $(shell command -v podman 2> /dev/null || echo docker) | ||
| 30 | @@ -264,11 +264,11 @@ gofmt: ## Verify the source code gofmt | ||
| 31 | |||
| 32 | .PHONY: test/checkseccomp/checkseccomp | ||
| 33 | test/checkseccomp/checkseccomp: .gopathok $(wildcard test/checkseccomp/*.go) | ||
| 34 | - $(GOCMD) build $(BUILDFLAGS) $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o $@ ./test/checkseccomp | ||
| 35 | + $(GOCMD) build $(GOBUILDFLAGS) $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' -tags "$(BUILDTAGS)" -o $@ ./test/checkseccomp | ||
| 36 | |||
| 37 | .PHONY: test/testvol/testvol | ||
| 38 | test/testvol/testvol: .gopathok $(wildcard test/testvol/*.go) | ||
| 39 | - $(GOCMD) build $(BUILDFLAGS) $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' -o $@ ./test/testvol | ||
| 40 | + $(GOCMD) build $(GOBUILDFLAGS) $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' -o $@ ./test/testvol | ||
| 41 | |||
| 42 | .PHONY: volume-plugin-test-image | ||
| 43 | volume-plugin-test-img: | ||
| 44 | @@ -276,7 +276,7 @@ volume-plugin-test-img: | ||
| 45 | |||
| 46 | .PHONY: test/goecho/goecho | ||
| 47 | test/goecho/goecho: .gopathok $(wildcard test/goecho/*.go) | ||
| 48 | - $(GOCMD) build $(BUILDFLAGS) $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' -o $@ ./test/goecho | ||
| 49 | + $(GOCMD) build $(GOBUILDFLAGS) $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' -o $@ ./test/goecho | ||
| 50 | |||
| 51 | test/version/version: .gopathok version/version.go | ||
| 52 | $(GO) build -o $@ ./test/version/ | ||
| 53 | @@ -318,7 +318,7 @@ ifeq (,$(findstring systemd,$(BUILDTAGS))) | ||
| 54 | distro for journald support." | ||
| 55 | endif | ||
| 56 | $(GOCMD) build \ | ||
| 57 | - $(BUILDFLAGS) \ | ||
| 58 | + $(GOBUILDFLAGS) \ | ||
| 59 | $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' \ | ||
| 60 | -tags "$(BUILDTAGS)" \ | ||
| 61 | -o $@ ./cmd/podman | ||
| 62 | @@ -329,14 +329,14 @@ $(SRCBINDIR): | ||
| 63 | |||
| 64 | $(SRCBINDIR)/podman$(BINSFX): $(SRCBINDIR) .gopathok $(SOURCES) go.mod go.sum | ||
| 65 | $(GOCMD) build \ | ||
| 66 | - $(BUILDFLAGS) \ | ||
| 67 | + $(GOBUILDFLAGS) \ | ||
| 68 | $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' \ | ||
| 69 | -tags "${REMOTETAGS}" \ | ||
| 70 | -o $@ ./cmd/podman | ||
| 71 | |||
| 72 | $(SRCBINDIR)/podman-remote-static: $(SRCBINDIR) .gopathok $(SOURCES) go.mod go.sum | ||
| 73 | $(GOCMD) build \ | ||
| 74 | - $(BUILDFLAGS) \ | ||
| 75 | + $(GOBUILDFLAGS) \ | ||
| 76 | $(GO_LDFLAGS) '$(LDFLAGS_PODMAN_STATIC)' \ | ||
| 77 | -tags "${REMOTETAGS}" \ | ||
| 78 | -o $@ ./cmd/podman | ||
| 79 | @@ -371,7 +371,7 @@ podman-winpath: .gopathok $(SOURCES) go.mod go.sum | ||
| 80 | CGO_ENABLED=0 \ | ||
| 81 | GOOS=windows \ | ||
| 82 | $(GO) build \ | ||
| 83 | - $(BUILDFLAGS) \ | ||
| 84 | + $(GOBUILDFLAGS) \ | ||
| 85 | -ldflags -H=windowsgui \ | ||
| 86 | -o bin/windows/winpath.exe \ | ||
| 87 | ./cmd/winpath | ||
| 88 | @@ -390,14 +390,14 @@ podman-mac-helper: ## Build podman-mac-helper for macOS | ||
| 89 | GOOS=darwin \ | ||
| 90 | GOARCH=$(GOARCH) \ | ||
| 91 | $(GO) build \ | ||
| 92 | - $(BUILDFLAGS) \ | ||
| 93 | + $(GOBUILDFLAGS) \ | ||
| 94 | -o bin/darwin/podman-mac-helper \ | ||
| 95 | ./cmd/podman-mac-helper | ||
| 96 | |||
| 97 | bin/rootlessport: .gopathok $(SOURCES) go.mod go.sum | ||
| 98 | CGO_ENABLED=$(CGO_ENABLED) \ | ||
| 99 | $(GO) build \ | ||
| 100 | - $(BUILDFLAGS) \ | ||
| 101 | + $(GOBUILDFLAGS) \ | ||
| 102 | -o $@ ./cmd/rootlessport | ||
| 103 | |||
| 104 | .PHONY: rootlessport | ||
| 105 | @@ -420,7 +420,7 @@ bin/podman.cross.%: .gopathok | ||
| 106 | GOARCH="$${TARGET##*.}"; \ | ||
| 107 | CGO_ENABLED=0 \ | ||
| 108 | $(GO) build \ | ||
| 109 | - $(BUILDFLAGS) \ | ||
| 110 | + $(GOBUILDFLAGS) \ | ||
| 111 | $(GO_LDFLAGS) '$(LDFLAGS_PODMAN)' \ | ||
| 112 | -tags '$(BUILDTAGS_CROSS)' \ | ||
| 113 | -o "$@" ./cmd/podman | ||
| 114 | @@ -864,7 +864,7 @@ install.tools: .install.goimports .install.gitvalidation .install.md2man .instal | ||
| 115 | .PHONY: .install.ginkgo | ||
| 116 | .install.ginkgo: .gopathok | ||
| 117 | if [ ! -x "$(GOBIN)/ginkgo" ]; then \ | ||
| 118 | - $(GO) install $(BUILDFLAGS) ./vendor/github.com/onsi/ginkgo/ginkgo ; \ | ||
| 119 | + $(GO) install $(GOBUILDFLAGS) ./vendor/github.com/onsi/ginkgo/ginkgo ; \ | ||
| 120 | fi | ||
| 121 | |||
| 122 | .PHONY: .install.gitvalidation | ||
| 123 | -- | ||
| 124 | 2.25.1 | ||
| 125 | |||
diff --git a/recipes-containers/podman/podman_git.bb b/recipes-containers/podman/podman_git.bb index 913aea84..547bc4e7 100644 --- a/recipes-containers/podman/podman_git.bb +++ b/recipes-containers/podman/podman_git.bb | |||
| @@ -20,6 +20,7 @@ DEPENDS = " \ | |||
| 20 | SRCREV = "cedbbfa543651a13055a1fe093a4d0a2a28ccdfd" | 20 | SRCREV = "cedbbfa543651a13055a1fe093a4d0a2a28ccdfd" |
| 21 | SRC_URI = " \ | 21 | SRC_URI = " \ |
| 22 | git://github.com/containers/libpod.git;branch=v4.1;protocol=https \ | 22 | git://github.com/containers/libpod.git;branch=v4.1;protocol=https \ |
| 23 | file://0001-Rename-BUILDFLAGS-to-GOBUILDFLAGS.patch;patchdir=src/import \ | ||
| 23 | " | 24 | " |
| 24 | 25 | ||
| 25 | LICENSE = "Apache-2.0" | 26 | LICENSE = "Apache-2.0" |
