diff options
11 files changed, 95 insertions, 349 deletions
diff --git a/recipes-containers/docker/docker-ce/0001-build-use-build-script-without-docker.patch b/recipes-containers/docker/docker-ce/0001-build-use-build-script-without-docker.patch deleted file mode 100644 index 070ebd63..00000000 --- a/recipes-containers/docker/docker-ce/0001-build-use-build-script-without-docker.patch +++ /dev/null | |||
| @@ -1,26 +0,0 @@ | |||
| 1 | From 45d03c7b04353d2e5955e573bc1063fcb0647a0c Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 3 | Date: Thu, 15 Apr 2021 16:30:37 -0400 | ||
| 4 | Subject: [PATCH] build: use build script without docker | ||
| 5 | |||
| 6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 7 | --- | ||
| 8 | git/src/import/components/cli/Makefile | 2 +- | ||
| 9 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 10 | |||
| 11 | diff --git git/src/import/components/cli/Makefile git/src/import/components/cli/Makefile | ||
| 12 | index 9e62210c33..9c7631f674 100644 | ||
| 13 | --- git/src/import/components/cli/Makefile | ||
| 14 | +++ git/src/import/components/cli/Makefile | ||
| 15 | @@ -51,7 +51,7 @@ plugins-osx: ## build example CLI plugins for macOS | ||
| 16 | |||
| 17 | .PHONY: dynbinary | ||
| 18 | dynbinary: ## build dynamically linked binary | ||
| 19 | - USE_GLIBC=1 docker buildx bake dynbinary | ||
| 20 | + GO_LINKMODE=dynamic ./scripts/build/binary | ||
| 21 | |||
| 22 | vendor: vendor.conf ## check that vendor matches vendor.conf | ||
| 23 | rm -rf vendor | ||
| 24 | -- | ||
| 25 | 2.19.1 | ||
| 26 | |||
diff --git a/recipes-containers/docker/docker-ce/0001-cli-use-go-cross-compiler.patch b/recipes-containers/docker/docker-ce/0001-cli-use-go-cross-compiler.patch deleted file mode 100644 index d9924112..00000000 --- a/recipes-containers/docker/docker-ce/0001-cli-use-go-cross-compiler.patch +++ /dev/null | |||
| @@ -1,25 +0,0 @@ | |||
| 1 | From ae6f4a1e685394fb7b9539f134b66ca84ddc91c2 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 3 | Date: Tue, 30 Jun 2020 22:19:56 -0400 | ||
| 4 | Subject: [PATCH] cli: use go cross compiler | ||
| 5 | |||
| 6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 7 | --- | ||
| 8 | git/cli/scripts/build/dynbinary | 2 +- | ||
| 9 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 10 | |||
| 11 | diff --git git/src/import/components/cli/scripts/build/dynbinary git/src/import/components/cli/scripts/build/dynbinary | ||
| 12 | index 4feb7e71d8..f990d0e040 100755 | ||
| 13 | --- git/src/import/components/cli/scripts/build/dynbinary | ||
| 14 | +++ git/src/import/components/cli/scripts/build/dynbinary | ||
| 15 | @@ -9,6 +9,6 @@ source ./scripts/build/.variables | ||
| 16 | |||
| 17 | echo "Building dynamically linked $TARGET" | ||
| 18 | export CGO_ENABLED=1 | ||
| 19 | -go build -o "${TARGET}" -tags pkcs11 --ldflags "${LDFLAGS}" -buildmode=pie "${SOURCE}" | ||
| 20 | +${GO} build -o "${TARGET}" -tags pkcs11 --ldflags "${LDFLAGS}" -buildmode=pie "${SOURCE}" | ||
| 21 | |||
| 22 | ln -sf "$(basename "${TARGET}")" build/docker | ||
| 23 | -- | ||
| 24 | 2.19.1 | ||
| 25 | |||
diff --git a/recipes-containers/docker/docker-ce_git.bb b/recipes-containers/docker/docker-ce_git.bb index 54cfa5d8..42e97a18 100644 --- a/recipes-containers/docker/docker-ce_git.bb +++ b/recipes-containers/docker/docker-ce_git.bb | |||
| @@ -50,100 +50,5 @@ require docker.inc | |||
| 50 | LICENSE = "Apache-2.0" | 50 | LICENSE = "Apache-2.0" |
| 51 | LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" | 51 | LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" |
| 52 | 52 | ||
| 53 | GO_IMPORT = "import" | ||
| 54 | |||
| 55 | S = "${WORKDIR}/git" | ||
| 56 | |||
| 57 | DOCKER_VERSION = "20.10.6-ce" | 53 | DOCKER_VERSION = "20.10.6-ce" |
| 58 | PV = "${DOCKER_VERSION}+git${SRCREV_docker}" | 54 | PV = "${DOCKER_VERSION}+git${SRCREV_docker}" |
| 59 | |||
| 60 | PACKAGES =+ "${PN}-contrib" | ||
| 61 | |||
| 62 | DOCKER_PKG="github.com/docker/docker" | ||
| 63 | # in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056 | ||
| 64 | BUILD_TAGS = "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper" | ||
| 65 | |||
| 66 | inherit go | ||
| 67 | inherit goarch | ||
| 68 | inherit pkgconfig | ||
| 69 | |||
| 70 | do_configure[noexec] = "1" | ||
| 71 | |||
| 72 | do_compile() { | ||
| 73 | # Set GOPATH. See 'PACKAGERS.md'. Don't rely on | ||
| 74 | # docker to download its dependencies but rather | ||
| 75 | # use dependencies packaged independently. | ||
| 76 | cd ${S}/src/import | ||
| 77 | rm -rf .gopath | ||
| 78 | mkdir -p .gopath/src/"$(dirname "${DOCKER_PKG}")" | ||
| 79 | ln -sf ../../../.. .gopath/src/"${DOCKER_PKG}" | ||
| 80 | |||
| 81 | ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork | ||
| 82 | ln -sf ${WORKDIR}/git/cli .gopath/src/github.com/docker/cli | ||
| 83 | |||
| 84 | export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go" | ||
| 85 | export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go" | ||
| 86 | |||
| 87 | # Pass the needed cflags/ldflags so that cgo | ||
| 88 | # can find the needed headers files and libraries | ||
| 89 | export GOARCH=${TARGET_GOARCH} | ||
| 90 | export CGO_ENABLED="1" | ||
| 91 | export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}" | ||
| 92 | export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" | ||
| 93 | export DOCKER_BUILDTAGS='${BUILD_TAGS} ${PACKAGECONFIG_CONFARGS}' | ||
| 94 | |||
| 95 | export DISABLE_WARN_OUTSIDE_CONTAINER=1 | ||
| 96 | export GO111MODULE=off | ||
| 97 | |||
| 98 | cd ${S}/src/import/ | ||
| 99 | |||
| 100 | # this is the unsupported build structure that doesn't rely on an | ||
| 101 | # existing docker to build this: | ||
| 102 | VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_docker}" ./hack/make.sh dynbinary | ||
| 103 | |||
| 104 | # build the proxy | ||
| 105 | cd ${S}/src/import | ||
| 106 | ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork | ||
| 107 | cd ${S}/src/import/.gopath/src/github.com/docker/libnetwork | ||
| 108 | oe_runmake cross-local | ||
| 109 | |||
| 110 | # build the cli | ||
| 111 | cd ${S}/src/import/.gopath/src/github.com/docker/cli | ||
| 112 | export CFLAGS="" | ||
| 113 | export LDFLAGS="" | ||
| 114 | export DOCKER_VERSION=${DOCKER_VERSION} | ||
| 115 | VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_docker}" make dynbinary | ||
| 116 | } | ||
| 117 | |||
| 118 | do_install() { | ||
| 119 | mkdir -p ${D}/${bindir} | ||
| 120 | cp ${WORKDIR}/git/cli/build/docker ${D}/${bindir}/docker | ||
| 121 | cp ${S}/src/import/bundles/dynbinary-daemon/dockerd ${D}/${bindir}/dockerd | ||
| 122 | cp ${WORKDIR}/git/libnetwork/bin/docker-proxy* ${D}/${bindir}/docker-proxy | ||
| 123 | |||
| 124 | if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then | ||
| 125 | install -d ${D}${systemd_unitdir}/system | ||
| 126 | install -m 644 ${S}/src/import/contrib/init/systemd/docker.* ${D}/${systemd_unitdir}/system | ||
| 127 | # replaces one copied from above with one that uses the local registry for a mirror | ||
| 128 | install -m 644 ${S}/src/import/contrib/init/systemd/docker.service ${D}/${systemd_unitdir}/system | ||
| 129 | rm -f ${D}/${systemd_unitdir}/system/docker.service.rpm | ||
| 130 | else | ||
| 131 | install -d ${D}${sysconfdir}/init.d | ||
| 132 | install -m 0755 ${WORKDIR}/docker.init ${D}${sysconfdir}/init.d/docker.init | ||
| 133 | fi | ||
| 134 | # TLS key that docker creates at run-time if not found is what resides here | ||
| 135 | if ${@bb.utils.contains('PACKAGECONFIG','transient-config','true','false',d)}; then | ||
| 136 | install -d ${D}${sysconfdir} | ||
| 137 | ln -s ..${localstatedir}/run/docker ${D}${sysconfdir}/docker | ||
| 138 | else | ||
| 139 | install -d ${D}${sysconfdir}/docker | ||
| 140 | fi | ||
| 141 | |||
| 142 | mkdir -p ${D}${datadir}/docker/ | ||
| 143 | install -m 0755 ${S}/src/import/contrib/check-config.sh ${D}${datadir}/docker/ | ||
| 144 | } | ||
| 145 | |||
| 146 | FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker" | ||
| 147 | |||
| 148 | FILES_${PN}-contrib += "${datadir}/docker/check-config.sh" | ||
| 149 | RDEPENDS_${PN}-contrib += "bash" | ||
diff --git a/recipes-containers/docker/docker-moby/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch b/recipes-containers/docker/docker-moby/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch deleted file mode 100644 index dc322612..00000000 --- a/recipes-containers/docker/docker-moby/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch +++ /dev/null | |||
| @@ -1,27 +0,0 @@ | |||
| 1 | From 650c882d3c53db118b01dd5e15fa1bc0ddaa36f1 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 3 | Date: Thu, 15 Apr 2021 11:28:05 -0400 | ||
| 4 | Subject: [PATCH] cli: use external GO111MODULE and cross compiler | ||
| 5 | |||
| 6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 7 | --- | ||
| 8 | git/cli/scripts/build/binary | 3 +-- | ||
| 9 | 1 file changed, 1 insertion(+), 2 deletions(-) | ||
| 10 | |||
| 11 | diff --git git/cli/scripts/build/binary git/cli/scripts/build/binary | ||
| 12 | index e4c5e12a6b..7c47b75c2f 100755 | ||
| 13 | --- git/cli/scripts/build/binary | ||
| 14 | +++ git/cli/scripts/build/binary | ||
| 15 | @@ -73,8 +73,7 @@ fi | ||
| 16 | |||
| 17 | echo "Building $GO_LINKMODE $(basename "${TARGET}")" | ||
| 18 | |||
| 19 | -export GO111MODULE=auto | ||
| 20 | |||
| 21 | -go build -o "${TARGET}" -tags "${GO_BUILDTAGS}" --ldflags "${LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}" | ||
| 22 | +${GO} build -o "${TARGET}" -tags "${GO_BUILDTAGS}" --ldflags "${LDFLAGS}" ${GO_BUILDMODE} "${SOURCE}" | ||
| 23 | |||
| 24 | ln -sf "$(basename "${TARGET}")" "$(dirname "${TARGET}")/docker" | ||
| 25 | -- | ||
| 26 | 2.19.1 | ||
| 27 | |||
diff --git a/recipes-containers/docker/docker-moby/0001-dynbinary-use-go-cross-compiler.patch b/recipes-containers/docker/docker-moby/0001-dynbinary-use-go-cross-compiler.patch deleted file mode 100644 index 971c60d7..00000000 --- a/recipes-containers/docker/docker-moby/0001-dynbinary-use-go-cross-compiler.patch +++ /dev/null | |||
| @@ -1,23 +0,0 @@ | |||
| 1 | From bbf600cc4d46c3f7ec0c1b486790a2402d41f550 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 3 | Date: Tue, 30 Jun 2020 22:23:33 -0400 | ||
| 4 | Subject: [PATCH] dynbinary: use go cross compiler | ||
| 5 | |||
| 6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> | ||
| 7 | --- | ||
| 8 | hack/make/.binary | 2 +- | ||
| 9 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
| 10 | |||
| 11 | Index: git/src/import/hack/make/.binary | ||
| 12 | =================================================================== | ||
| 13 | --- git.orig/src/import/hack/make/.binary | ||
| 14 | +++ git/src/import/hack/make/.binary | ||
| 15 | @@ -81,7 +81,7 @@ | ||
| 16 | |||
| 17 | echo "Building: $DEST/$BINARY_FULLNAME" | ||
| 18 | echo "GOOS=\"${GOOS}\" GOARCH=\"${GOARCH}\" GOARM=\"${GOARM}\"" | ||
| 19 | - go build \ | ||
| 20 | + ${GO} build \ | ||
| 21 | -o "$DEST/$BINARY_FULLNAME" \ | ||
| 22 | "${BUILDFLAGS[@]}" \ | ||
| 23 | -ldflags " | ||
diff --git a/recipes-containers/docker/docker-moby/0001-libnetwork-use-GO-instead-of-go.patch b/recipes-containers/docker/docker-moby/0001-libnetwork-use-GO-instead-of-go.patch deleted file mode 100644 index c623b260..00000000 --- a/recipes-containers/docker/docker-moby/0001-libnetwork-use-GO-instead-of-go.patch +++ /dev/null | |||
| @@ -1,59 +0,0 @@ | |||
| 1 | From 04c07804930faad708218a3134c81de06a9c742a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 3 | Date: Fri, 6 Apr 2018 23:58:22 -0400 | ||
| 4 | Subject: [PATCH] libnetwork: use $(GO) instead of go | ||
| 5 | |||
| 6 | Ensure that the libnetwork makefile uses the go cross flags and | ||
| 7 | utilities. | ||
| 8 | |||
| 9 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
| 10 | --- | ||
| 11 | Makefile | 14 +++++++------- | ||
| 12 | 1 file changed, 7 insertions(+), 7 deletions(-) | ||
| 13 | |||
| 14 | Index: git/libnetwork/Makefile | ||
| 15 | =================================================================== | ||
| 16 | --- git.orig/libnetwork/Makefile | ||
| 17 | +++ git/libnetwork/Makefile | ||
| 18 | @@ -45,9 +45,9 @@ | ||
| 19 | build-local: | ||
| 20 | @echo "🐳 $@" | ||
| 21 | @mkdir -p "bin" | ||
| 22 | - go build -tags experimental -o "bin/dnet" ./cmd/dnet | ||
| 23 | - go build -o "bin/docker-proxy" ./cmd/proxy | ||
| 24 | - CGO_ENABLED=0 go build -o "bin/diagnosticClient" ./cmd/diagnostic | ||
| 25 | + $(GO) build -tags experimental -o "bin/dnet" ./cmd/dnet | ||
| 26 | + $(GO) build -o "bin/proxy" ./cmd/proxy | ||
| 27 | + CGO_ENABLED=0 $(GO) build -o "bin/diagnosticClient" ./cmd/diagnostic | ||
| 28 | CGO_ENABLED=0 go build -o "bin/testMain" ./cmd/networkdb-test/testMain.go | ||
| 29 | |||
| 30 | build-images: | ||
| 31 | @@ -82,8 +82,8 @@ | ||
| 32 | |||
| 33 | cross-local: | ||
| 34 | @echo "🐳 $@" | ||
| 35 | - go build -o "bin/dnet-$$GOOS-$$GOARCH" ./cmd/dnet | ||
| 36 | - go build -o "bin/docker-proxy-$$GOOS-$$GOARCH" ./cmd/proxy | ||
| 37 | + @$(GO) build -linkshared $(GOBUILDFLAGS) -o "bin/docker-proxy-$$GOOS-$$GOARCH" ./cmd/proxy | ||
| 38 | + @$(GO) build -linkshared $(GOBUILDFLAGS) -o "bin/dnet-$$GOOS-$$GOARCH" ./cmd/dnet | ||
| 39 | |||
| 40 | # Rebuild protocol buffers. | ||
| 41 | # These may need to be rebuilt after vendoring updates, so .proto files are declared .PHONY so they are always rebuilt. | ||
| 42 | @@ -130,7 +130,7 @@ | ||
| 43 | if ls $$dir/*.go &> /dev/null; then \ | ||
| 44 | pushd . &> /dev/null ; \ | ||
| 45 | cd $$dir ; \ | ||
| 46 | - go test ${INSIDECONTAINER} -test.parallel 5 -test.v -covermode=count -coverprofile=./profile.tmp ; \ | ||
| 47 | + $(GO) test ${INSIDECONTAINER} -test.parallel 5 -test.v -covermode=count -coverprofile=./profile.tmp ; \ | ||
| 48 | ret=$$? ;\ | ||
| 49 | if [ $$ret -ne 0 ]; then exit $$ret; fi ;\ | ||
| 50 | popd &> /dev/null; \ | ||
| 51 | @@ -145,7 +145,7 @@ | ||
| 52 | # Depends on binaries because vet will silently fail if it can not load compiled imports | ||
| 53 | vet: ## run go vet | ||
| 54 | @echo "🐳 $@" | ||
| 55 | - @test -z "$$(go vet ${PACKAGES} 2>&1 | grep -v 'constant [0-9]* not a string in call to Errorf' | egrep -v '(timestamp_test.go|duration_test.go|exit status 1)' | tee /dev/stderr)" | ||
| 56 | + @test -z "$$($(GO) vet ${PACKAGES} 2>&1 | grep -v 'constant [0-9]* not a string in call to Errorf' | egrep -v '(timestamp_test.go|duration_test.go|exit status 1)' | tee /dev/stderr)" | ||
| 57 | |||
| 58 | misspell: | ||
| 59 | @echo "🐳 $@" | ||
diff --git a/recipes-containers/docker/docker-moby_git.bb b/recipes-containers/docker/docker-moby_git.bb index 9f5be5c6..1d76dff8 100644 --- a/recipes-containers/docker/docker-moby_git.bb +++ b/recipes-containers/docker/docker-moby_git.bb | |||
| @@ -34,7 +34,6 @@ DESCRIPTION = "Linux container runtime \ | |||
| 34 | # - The common components of this recipe and docker-ce do need to be moved | 34 | # - The common components of this recipe and docker-ce do need to be moved |
| 35 | # to a docker.inc recipe | 35 | # to a docker.inc recipe |
| 36 | 36 | ||
| 37 | # moby commit matches the docker-engine bump on the 19.03 branch' | ||
| 38 | SRCREV_moby = "ce826938232fbee567c8805460a8b2c82dc2e493" | 37 | SRCREV_moby = "ce826938232fbee567c8805460a8b2c82dc2e493" |
| 39 | SRCREV_libnetwork = "b3507428be5b458cb0e2b4086b13531fb0706e46" | 38 | SRCREV_libnetwork = "b3507428be5b458cb0e2b4086b13531fb0706e46" |
| 40 | SRCREV_cli = "370c28948e3c12dce3d1df60b6f184990618553f" | 39 | SRCREV_cli = "370c28948e3c12dce3d1df60b6f184990618553f" |
| @@ -54,99 +53,6 @@ require docker.inc | |||
| 54 | LICENSE = "Apache-2.0" | 53 | LICENSE = "Apache-2.0" |
| 55 | LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" | 54 | LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" |
| 56 | 55 | ||
| 57 | GO_IMPORT = "import" | ||
| 58 | |||
| 59 | S = "${WORKDIR}/git" | ||
| 60 | |||
| 61 | DOCKER_VERSION = "20.10.6" | 56 | DOCKER_VERSION = "20.10.6" |
| 62 | PV = "${DOCKER_VERSION}+git${SRCREV_moby}" | 57 | PV = "${DOCKER_VERSION}+git${SRCREV_moby}" |
| 63 | 58 | ||
| 64 | PACKAGES =+ "${PN}-contrib" | ||
| 65 | |||
| 66 | DOCKER_PKG="github.com/docker/docker" | ||
| 67 | # in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056 | ||
| 68 | BUILD_TAGS = "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper" | ||
| 69 | |||
| 70 | inherit go | ||
| 71 | inherit goarch | ||
| 72 | |||
| 73 | do_configure[noexec] = "1" | ||
| 74 | |||
| 75 | do_compile() { | ||
| 76 | # Set GOPATH. See 'PACKAGERS.md'. Don't rely on | ||
| 77 | # docker to download its dependencies but rather | ||
| 78 | # use dependencies packaged independently. | ||
| 79 | cd ${S}/src/import | ||
| 80 | rm -rf .gopath | ||
| 81 | mkdir -p .gopath/src/"$(dirname "${DOCKER_PKG}")" | ||
| 82 | ln -sf ../../../.. .gopath/src/"${DOCKER_PKG}" | ||
| 83 | |||
| 84 | mkdir -p .gopath/src/github.com/docker | ||
| 85 | ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork | ||
| 86 | ln -sf ${WORKDIR}/git/cli .gopath/src/github.com/docker/cli | ||
| 87 | |||
| 88 | export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go" | ||
| 89 | export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go" | ||
| 90 | |||
| 91 | # Pass the needed cflags/ldflags so that cgo | ||
| 92 | # can find the needed headers files and libraries | ||
| 93 | export GOARCH=${TARGET_GOARCH} | ||
| 94 | export CGO_ENABLED="1" | ||
| 95 | export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}" | ||
| 96 | export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" | ||
| 97 | export DOCKER_BUILDTAGS='${BUILD_TAGS} ${PACKAGECONFIG_CONFARGS}' | ||
| 98 | export GO111MODULE=off | ||
| 99 | |||
| 100 | export DISABLE_WARN_OUTSIDE_CONTAINER=1 | ||
| 101 | |||
| 102 | cd ${S}/src/import/ | ||
| 103 | |||
| 104 | # this is the unsupported built structure | ||
| 105 | # that doesn't rely on an existing docker | ||
| 106 | # to build this: | ||
| 107 | VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_moby}" ./hack/make.sh dynbinary | ||
| 108 | |||
| 109 | # build the cli | ||
| 110 | cd ${S}/src/import/.gopath/src/github.com/docker/cli | ||
| 111 | export CFLAGS="" | ||
| 112 | export LDFLAGS="" | ||
| 113 | export DOCKER_VERSION=${DOCKER_VERSION} | ||
| 114 | VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_moby}" make dynbinary | ||
| 115 | |||
| 116 | # build the proxy | ||
| 117 | cd ${S}/src/import/.gopath/src/github.com/docker/libnetwork | ||
| 118 | oe_runmake cross-local | ||
| 119 | } | ||
| 120 | |||
| 121 | do_install() { | ||
| 122 | mkdir -p ${D}/${bindir} | ||
| 123 | cp ${WORKDIR}/git/cli/build/docker ${D}/${bindir}/docker | ||
| 124 | cp ${S}/src/import/bundles/dynbinary-daemon/dockerd ${D}/${bindir}/dockerd | ||
| 125 | cp ${WORKDIR}/git/libnetwork/bin/docker-proxy* ${D}/${bindir}/docker-proxy | ||
| 126 | |||
| 127 | if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then | ||
| 128 | install -d ${D}${systemd_unitdir}/system | ||
| 129 | install -m 644 ${S}/src/import/contrib/init/systemd/docker.* ${D}/${systemd_unitdir}/system | ||
| 130 | # replaces one copied from above with one that uses the local registry for a mirror | ||
| 131 | install -m 644 ${S}/src/import/contrib/init/systemd/docker.service ${D}/${systemd_unitdir}/system | ||
| 132 | rm -f ${D}/${systemd_unitdir}/system/docker.service.rpm | ||
| 133 | else | ||
| 134 | install -d ${D}${sysconfdir}/init.d | ||
| 135 | install -m 0755 ${WORKDIR}/docker.init ${D}${sysconfdir}/init.d/docker.init | ||
| 136 | fi | ||
| 137 | # TLS key that docker creates at run-time if not found is what resides here | ||
| 138 | if ${@bb.utils.contains('PACKAGECONFIG','transient-config','true','false',d)}; then | ||
| 139 | install -d ${D}${sysconfdir} | ||
| 140 | ln -s ..${localstatedir}/run/docker ${D}${sysconfdir}/docker | ||
| 141 | else | ||
| 142 | install -d ${D}${sysconfdir}/docker | ||
| 143 | fi | ||
| 144 | |||
| 145 | mkdir -p ${D}${datadir}/docker/ | ||
| 146 | install -m 0755 ${S}/src/import/contrib/check-config.sh ${D}${datadir}/docker/ | ||
| 147 | } | ||
| 148 | |||
| 149 | FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker" | ||
| 150 | |||
| 151 | FILES_${PN}-contrib += "${datadir}/docker/check-config.sh" | ||
| 152 | RDEPENDS_${PN}-contrib += "bash" | ||
diff --git a/recipes-containers/docker/docker.inc b/recipes-containers/docker/docker.inc index 65b7368d..a011366f 100644 --- a/recipes-containers/docker/docker.inc +++ b/recipes-containers/docker/docker.inc | |||
| @@ -46,7 +46,96 @@ PACKAGECONFIG[seccomp] = "seccomp,,libseccomp" | |||
| 46 | PACKAGECONFIG[docker-init] = ",,,docker-init" | 46 | PACKAGECONFIG[docker-init] = ",,,docker-init" |
| 47 | PACKAGECONFIG[transient-config] = "transient-config" | 47 | PACKAGECONFIG[transient-config] = "transient-config" |
| 48 | 48 | ||
| 49 | |||
| 50 | GO_IMPORT = "import" | ||
| 51 | S = "${WORKDIR}/git" | ||
| 52 | |||
| 53 | |||
| 49 | inherit systemd update-rc.d | 54 | inherit systemd update-rc.d |
| 55 | inherit go | ||
| 56 | inherit goarch | ||
| 57 | inherit pkgconfig | ||
| 58 | |||
| 59 | do_configure[noexec] = "1" | ||
| 60 | |||
| 61 | DOCKER_PKG="github.com/docker/docker" | ||
| 62 | # in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056 | ||
| 63 | BUILD_TAGS ?= "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper" | ||
| 64 | |||
| 65 | do_compile() { | ||
| 66 | # Set GOPATH. See 'PACKAGERS.md'. Don't rely on | ||
| 67 | # docker to download its dependencies but rather | ||
| 68 | # use dependencies packaged independently. | ||
| 69 | cd ${S}/src/import | ||
| 70 | rm -rf .gopath | ||
| 71 | mkdir -p .gopath/src/"$(dirname "${DOCKER_PKG}")" | ||
| 72 | ln -sf ../../../.. .gopath/src/"${DOCKER_PKG}" | ||
| 73 | |||
| 74 | mkdir -p .gopath/src/github.com/docker | ||
| 75 | ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork | ||
| 76 | ln -sf ${WORKDIR}/git/cli .gopath/src/github.com/docker/cli | ||
| 77 | |||
| 78 | export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go" | ||
| 79 | export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go" | ||
| 80 | |||
| 81 | # Pass the needed cflags/ldflags so that cgo | ||
| 82 | # can find the needed headers files and libraries | ||
| 83 | export GOARCH=${TARGET_GOARCH} | ||
| 84 | export CGO_ENABLED="1" | ||
| 85 | export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}" | ||
| 86 | export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" | ||
| 87 | export DOCKER_BUILDTAGS='${BUILD_TAGS} ${PACKAGECONFIG_CONFARGS}' | ||
| 88 | export GO111MODULE=off | ||
| 89 | |||
| 90 | export DISABLE_WARN_OUTSIDE_CONTAINER=1 | ||
| 91 | |||
| 92 | cd ${S}/src/import/ | ||
| 93 | |||
| 94 | # this is the unsupported built structure | ||
| 95 | # that doesn't rely on an existing docker | ||
| 96 | # to build this: | ||
| 97 | VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_moby}" ./hack/make.sh dynbinary | ||
| 98 | |||
| 99 | # build the cli | ||
| 100 | cd ${S}/src/import/.gopath/src/github.com/docker/cli | ||
| 101 | export CFLAGS="" | ||
| 102 | export LDFLAGS="" | ||
| 103 | export DOCKER_VERSION=${DOCKER_VERSION} | ||
| 104 | VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_moby}" make dynbinary | ||
| 105 | |||
| 106 | # build the proxy | ||
| 107 | cd ${S}/src/import/.gopath/src/github.com/docker/libnetwork | ||
| 108 | oe_runmake cross-local | ||
| 109 | } | ||
| 110 | |||
| 111 | do_install() { | ||
| 112 | mkdir -p ${D}/${bindir} | ||
| 113 | cp ${WORKDIR}/git/cli/build/docker ${D}/${bindir}/docker | ||
| 114 | cp ${S}/src/import/bundles/dynbinary-daemon/dockerd ${D}/${bindir}/dockerd | ||
| 115 | cp ${WORKDIR}/git/libnetwork/bin/docker-proxy* ${D}/${bindir}/docker-proxy | ||
| 116 | |||
| 117 | if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then | ||
| 118 | install -d ${D}${systemd_unitdir}/system | ||
| 119 | install -m 644 ${S}/src/import/contrib/init/systemd/docker.* ${D}/${systemd_unitdir}/system | ||
| 120 | # replaces one copied from above with one that uses the local registry for a mirror | ||
| 121 | install -m 644 ${S}/src/import/contrib/init/systemd/docker.service ${D}/${systemd_unitdir}/system | ||
| 122 | rm -f ${D}/${systemd_unitdir}/system/docker.service.rpm | ||
| 123 | else | ||
| 124 | install -d ${D}${sysconfdir}/init.d | ||
| 125 | install -m 0755 ${WORKDIR}/docker.init ${D}${sysconfdir}/init.d/docker.init | ||
| 126 | fi | ||
| 127 | # TLS key that docker creates at run-time if not found is what resides here | ||
| 128 | if ${@bb.utils.contains('PACKAGECONFIG','transient-config','true','false',d)}; then | ||
| 129 | install -d ${D}${sysconfdir} | ||
| 130 | ln -s ..${localstatedir}/run/docker ${D}${sysconfdir}/docker | ||
| 131 | else | ||
| 132 | install -d ${D}${sysconfdir}/docker | ||
| 133 | fi | ||
| 134 | |||
| 135 | mkdir -p ${D}${datadir}/docker/ | ||
| 136 | install -m 0755 ${S}/src/import/contrib/check-config.sh ${D}${datadir}/docker/ | ||
| 137 | } | ||
| 138 | |||
| 50 | 139 | ||
| 51 | SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}" | 140 | SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}" |
| 52 | SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker.socket','',d)}" | 141 | SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker.socket','',d)}" |
| @@ -63,3 +152,9 @@ GROUPADD_PARAM_${PN} = "-r docker" | |||
| 63 | COMPATIBLE_HOST = "^(?!(qemu)?mips).*" | 152 | COMPATIBLE_HOST = "^(?!(qemu)?mips).*" |
| 64 | 153 | ||
| 65 | INSANE_SKIP_${PN} += "ldflags textrel" | 154 | INSANE_SKIP_${PN} += "ldflags textrel" |
| 155 | |||
| 156 | FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker" | ||
| 157 | |||
| 158 | PACKAGES =+ "${PN}-contrib" | ||
| 159 | FILES_${PN}-contrib += "${datadir}/docker/check-config.sh" | ||
| 160 | RDEPENDS_${PN}-contrib += "bash" | ||
diff --git a/recipes-containers/docker/docker-ce/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch b/recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch index dc322612..dc322612 100644 --- a/recipes-containers/docker/docker-ce/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch +++ b/recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch | |||
diff --git a/recipes-containers/docker/docker-ce/0001-dynbinary-use-go-cross-compiler.patch b/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch index 971c60d7..971c60d7 100644 --- a/recipes-containers/docker/docker-ce/0001-dynbinary-use-go-cross-compiler.patch +++ b/recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch | |||
diff --git a/recipes-containers/docker/docker-ce/0001-libnetwork-use-GO-instead-of-go.patch b/recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch index c623b260..c623b260 100644 --- a/recipes-containers/docker/docker-ce/0001-libnetwork-use-GO-instead-of-go.patch +++ b/recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch | |||
