From 9d98a04b2646cfc1db9dc36e628ebdced7cff2d9 Mon Sep 17 00:00:00 2001 From: Bruce Ashfield Date: Thu, 29 Apr 2021 17:09:31 -0400 Subject: docker: unify common parts of docker-ce and docker-moby recipes Now that docker-ce is being built from the same repos as docker-moby, the only unique things in the recipes are the SRCREVs. We move the common packaging, compile/install routines and configuration to the .inc files. We also move the patches to the generic 'files' directory, so they can be shared. If we there are SRCREV bumps in the future that diverge moby and docker, we'll hold patches in their named directorys and tweak the compile/install routines as necessary. Signed-off-by: Bruce Ashfield --- recipes-containers/docker/docker-ce_git.bb | 95 ------------------------------ 1 file changed, 95 deletions(-) (limited to 'recipes-containers/docker/docker-ce_git.bb') 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 LICENSE = "Apache-2.0" LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=4859e97a9c7780e77972d989f0823f28" -GO_IMPORT = "import" - -S = "${WORKDIR}/git" - DOCKER_VERSION = "20.10.6-ce" PV = "${DOCKER_VERSION}+git${SRCREV_docker}" - -PACKAGES =+ "${PN}-contrib" - -DOCKER_PKG="github.com/docker/docker" -# in order to exclude devicemapper and btrfs - https://github.com/docker/docker/issues/14056 -BUILD_TAGS = "exclude_graphdriver_btrfs exclude_graphdriver_devicemapper" - -inherit go -inherit goarch -inherit pkgconfig - -do_configure[noexec] = "1" - -do_compile() { - # Set GOPATH. See 'PACKAGERS.md'. Don't rely on - # docker to download its dependencies but rather - # use dependencies packaged independently. - cd ${S}/src/import - rm -rf .gopath - mkdir -p .gopath/src/"$(dirname "${DOCKER_PKG}")" - ln -sf ../../../.. .gopath/src/"${DOCKER_PKG}" - - ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork - ln -sf ${WORKDIR}/git/cli .gopath/src/github.com/docker/cli - - export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go" - export GOROOT="${STAGING_DIR_NATIVE}/${nonarch_libdir}/${HOST_SYS}/go" - - # Pass the needed cflags/ldflags so that cgo - # can find the needed headers files and libraries - export GOARCH=${TARGET_GOARCH} - export CGO_ENABLED="1" - export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}" - export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" - export DOCKER_BUILDTAGS='${BUILD_TAGS} ${PACKAGECONFIG_CONFARGS}' - - export DISABLE_WARN_OUTSIDE_CONTAINER=1 - export GO111MODULE=off - - cd ${S}/src/import/ - - # this is the unsupported build structure that doesn't rely on an - # existing docker to build this: - VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_docker}" ./hack/make.sh dynbinary - - # build the proxy - cd ${S}/src/import - ln -sf ${WORKDIR}/git/libnetwork .gopath/src/github.com/docker/libnetwork - cd ${S}/src/import/.gopath/src/github.com/docker/libnetwork - oe_runmake cross-local - - # build the cli - cd ${S}/src/import/.gopath/src/github.com/docker/cli - export CFLAGS="" - export LDFLAGS="" - export DOCKER_VERSION=${DOCKER_VERSION} - VERSION="${DOCKER_VERSION}" DOCKER_GITCOMMIT="${SRCREV_docker}" make dynbinary -} - -do_install() { - mkdir -p ${D}/${bindir} - cp ${WORKDIR}/git/cli/build/docker ${D}/${bindir}/docker - cp ${S}/src/import/bundles/dynbinary-daemon/dockerd ${D}/${bindir}/dockerd - cp ${WORKDIR}/git/libnetwork/bin/docker-proxy* ${D}/${bindir}/docker-proxy - - if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${S}/src/import/contrib/init/systemd/docker.* ${D}/${systemd_unitdir}/system - # replaces one copied from above with one that uses the local registry for a mirror - install -m 644 ${S}/src/import/contrib/init/systemd/docker.service ${D}/${systemd_unitdir}/system - rm -f ${D}/${systemd_unitdir}/system/docker.service.rpm - else - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/docker.init ${D}${sysconfdir}/init.d/docker.init - fi - # TLS key that docker creates at run-time if not found is what resides here - if ${@bb.utils.contains('PACKAGECONFIG','transient-config','true','false',d)}; then - install -d ${D}${sysconfdir} - ln -s ..${localstatedir}/run/docker ${D}${sysconfdir}/docker - else - install -d ${D}${sysconfdir}/docker - fi - - mkdir -p ${D}${datadir}/docker/ - install -m 0755 ${S}/src/import/contrib/check-config.sh ${D}${datadir}/docker/ -} - -FILES_${PN} += "${systemd_unitdir}/system/* ${sysconfdir}/docker" - -FILES_${PN}-contrib += "${datadir}/docker/check-config.sh" -RDEPENDS_${PN}-contrib += "bash" -- cgit v1.2.3-54-g00ecf