summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-containers/docker/docker-ce/0001-build-use-build-script-without-docker.patch26
-rw-r--r--recipes-containers/docker/docker-ce/0001-cli-use-go-cross-compiler.patch25
-rw-r--r--recipes-containers/docker/docker-ce_git.bb95
-rw-r--r--recipes-containers/docker/docker-moby/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch27
-rw-r--r--recipes-containers/docker/docker-moby/0001-dynbinary-use-go-cross-compiler.patch23
-rw-r--r--recipes-containers/docker/docker-moby/0001-libnetwork-use-GO-instead-of-go.patch59
-rw-r--r--recipes-containers/docker/docker-moby_git.bb94
-rw-r--r--recipes-containers/docker/docker.inc95
-rw-r--r--recipes-containers/docker/files/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch (renamed from recipes-containers/docker/docker-ce/0001-cli-use-external-GO111MODULE-and-cross-compiler.patch)0
-rw-r--r--recipes-containers/docker/files/0001-dynbinary-use-go-cross-compiler.patch (renamed from recipes-containers/docker/docker-ce/0001-dynbinary-use-go-cross-compiler.patch)0
-rw-r--r--recipes-containers/docker/files/0001-libnetwork-use-GO-instead-of-go.patch (renamed from recipes-containers/docker/docker-ce/0001-libnetwork-use-GO-instead-of-go.patch)0
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 @@
1From 45d03c7b04353d2e5955e573bc1063fcb0647a0c Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@gmail.com>
3Date: Thu, 15 Apr 2021 16:30:37 -0400
4Subject: [PATCH] build: use build script without docker
5
6Signed-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
11diff --git git/src/import/components/cli/Makefile git/src/import/components/cli/Makefile
12index 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--
252.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 @@
1From ae6f4a1e685394fb7b9539f134b66ca84ddc91c2 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@gmail.com>
3Date: Tue, 30 Jun 2020 22:19:56 -0400
4Subject: [PATCH] cli: use go cross compiler
5
6Signed-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
11diff --git git/src/import/components/cli/scripts/build/dynbinary git/src/import/components/cli/scripts/build/dynbinary
12index 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--
242.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
50LICENSE = "Apache-2.0" 50LICENSE = "Apache-2.0"
51LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" 51LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28"
52 52
53GO_IMPORT = "import"
54
55S = "${WORKDIR}/git"
56
57DOCKER_VERSION = "20.10.6-ce" 53DOCKER_VERSION = "20.10.6-ce"
58PV = "${DOCKER_VERSION}+git${SRCREV_docker}" 54PV = "${DOCKER_VERSION}+git${SRCREV_docker}"
59
60PACKAGES =+ "${PN}-contrib"
61
62DOCKER_PKG="github.com/docker/docker"
63# in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056
64BUILD_TAGS = "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
65
66inherit go
67inherit goarch
68inherit pkgconfig
69
70do_configure[noexec] = "1"
71
72do_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
118do_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
146FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker"
147
148FILES_${PN}-contrib += "${datadir}/docker/check-config.sh"
149RDEPENDS_${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 @@
1From 650c882d3c53db118b01dd5e15fa1bc0ddaa36f1 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@gmail.com>
3Date: Thu, 15 Apr 2021 11:28:05 -0400
4Subject: [PATCH] cli: use external GO111MODULE and cross compiler
5
6Signed-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
11diff --git git/cli/scripts/build/binary git/cli/scripts/build/binary
12index 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--
262.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 @@
1From bbf600cc4d46c3f7ec0c1b486790a2402d41f550 Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@gmail.com>
3Date: Tue, 30 Jun 2020 22:23:33 -0400
4Subject: [PATCH] dynbinary: use go cross compiler
5
6Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
7---
8 hack/make/.binary | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11Index: 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 @@
1From 04c07804930faad708218a3134c81de06a9c742a Mon Sep 17 00:00:00 2001
2From: Bruce Ashfield <bruce.ashfield@windriver.com>
3Date: Fri, 6 Apr 2018 23:58:22 -0400
4Subject: [PATCH] libnetwork: use $(GO) instead of go
5
6Ensure that the libnetwork makefile uses the go cross flags and
7utilities.
8
9Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
10---
11 Makefile | 14 +++++++-------
12 1 file changed, 7 insertions(+), 7 deletions(-)
13
14Index: 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'
38SRCREV_moby = "ce826938232fbee567c8805460a8b2c82dc2e493" 37SRCREV_moby = "ce826938232fbee567c8805460a8b2c82dc2e493"
39SRCREV_libnetwork = "b3507428be5b458cb0e2b4086b13531fb0706e46" 38SRCREV_libnetwork = "b3507428be5b458cb0e2b4086b13531fb0706e46"
40SRCREV_cli = "370c28948e3c12dce3d1df60b6f184990618553f" 39SRCREV_cli = "370c28948e3c12dce3d1df60b6f184990618553f"
@@ -54,99 +53,6 @@ require docker.inc
54LICENSE = "Apache-2.0" 53LICENSE = "Apache-2.0"
55LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" 54LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28"
56 55
57GO_IMPORT = "import"
58
59S = "${WORKDIR}/git"
60
61DOCKER_VERSION = "20.10.6" 56DOCKER_VERSION = "20.10.6"
62PV = "${DOCKER_VERSION}+git${SRCREV_moby}" 57PV = "${DOCKER_VERSION}+git${SRCREV_moby}"
63 58
64PACKAGES =+ "${PN}-contrib"
65
66DOCKER_PKG="github.com/docker/docker"
67# in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056
68BUILD_TAGS = "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
69
70inherit go
71inherit goarch
72
73do_configure[noexec] = "1"
74
75do_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
121do_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
149FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker"
150
151FILES_${PN}-contrib += "${datadir}/docker/check-config.sh"
152RDEPENDS_${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"
46PACKAGECONFIG[docker-init] = ",,,docker-init" 46PACKAGECONFIG[docker-init] = ",,,docker-init"
47PACKAGECONFIG[transient-config] = "transient-config" 47PACKAGECONFIG[transient-config] = "transient-config"
48 48
49
50GO_IMPORT = "import"
51S = "${WORKDIR}/git"
52
53
49inherit systemd update-rc.d 54inherit systemd update-rc.d
55inherit go
56inherit goarch
57inherit pkgconfig
58
59do_configure[noexec] = "1"
60
61DOCKER_PKG="github.com/docker/docker"
62# in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056
63BUILD_TAGS ?= "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper"
64
65do_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
111do_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
51SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}" 140SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}"
52SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker.socket','',d)}" 141SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','docker.socket','',d)}"
@@ -63,3 +152,9 @@ GROUPADD_PARAM_${PN} = "-r docker"
63COMPATIBLE_HOST = "^(?!(qemu)?mips).*" 152COMPATIBLE_HOST = "^(?!(qemu)?mips).*"
64 153
65INSANE_SKIP_${PN} += "ldflags textrel" 154INSANE_SKIP_${PN} += "ldflags textrel"
155
156FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker"
157
158PACKAGES =+ "${PN}-contrib"
159FILES_${PN}-contrib += "${datadir}/docker/check-config.sh"
160RDEPENDS_${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