diff options
Diffstat (limited to 'recipes-containers/containerd/containerd-opencontainers_git.bb')
-rw-r--r-- | recipes-containers/containerd/containerd-opencontainers_git.bb | 104 |
1 files changed, 94 insertions, 10 deletions
diff --git a/recipes-containers/containerd/containerd-opencontainers_git.bb b/recipes-containers/containerd/containerd-opencontainers_git.bb index 347eae5d..10d1ce8b 100644 --- a/recipes-containers/containerd/containerd-opencontainers_git.bb +++ b/recipes-containers/containerd/containerd-opencontainers_git.bb @@ -1,16 +1,100 @@ -SRCREV = "fd103cb716352c7e19768e4fed057f71d68902a0" -SRC_URI = "git://github.com/containerd/containerd;branch=release/1.2 \ - file://0001-build-use-oe-provided-GO-and-flags.patch \ - file://0001-Add-build-option-GODEBUG-1.patch \ - " +HOMEPAGE = "https://github.com/containerd/containerd" +SUMMARY = "containerd is a daemon to control runC" +DESCRIPTION = "containerd is a daemon to control runC, built for performance and density. \ + containerd leverages runC's advanced features such as seccomp and user namespace \ + support as well as checkpoint and restore for cloning and live migration of containers." + -include containerd.inc +SRCREV = "b1624c3628954e769dd50783b63823040b2db38c" +SRC_URI = "git://github.com/containerd/containerd;branch=main;protocol=https;destsuffix=git/src/github.com/containerd/containerd \ + file://0001-Makefile-allow-GO_BUILD_FLAGS-to-be-externally-speci.patch \ + file://0001-build-don-t-use-gcflags-to-define-trimpath.patch \ + " -LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=1269f40c0d099c21a871163984590d89" +# Apache-2.0 for containerd +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1269f40c0d099c21a871163984590d89" -CONTAINERD_VERSION = "v1.2.7" +CONTAINERD_VERSION = "v2.0.0-beta.0" +CVE_VERSION = "v2.0.0-beta.0" -EXTRA_OEMAKE += "GODEBUG=1" +# EXTRA_OEMAKE += "GODEBUG=1" PROVIDES += "virtual/containerd" -RPROVIDES_${PN} = "virtual/containerd" +RPROVIDES:${PN} = "virtual-containerd" + +S = "${WORKDIR}/git/src/github.com/containerd/containerd" + +PV = "${CONTAINERD_VERSION}+git" + +inherit go +inherit goarch + +GO_IMPORT = "import" + +CONTAINERD_PKG="github.com/containerd/containerd" + +INSANE_SKIP:${PN} += "ldflags" + +do_configure[noexec] = "1" + +do_compile() { + export GOARCH="${TARGET_GOARCH}" + + export GOPATH="${S}/src/import/.gopath:${S}/src/import/vendor:${STAGING_DIR_TARGET}/${prefix}/local/go:${WORKDIR}/git/" + 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 CGO_ENABLED="1" + export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}" + export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}" + export BUILDTAGS="no_btrfs static_build netgo" + export CFLAGS="${CFLAGS}" + export LDFLAGS="${LDFLAGS}" + export SHIM_CGO_ENABLED="${CGO_ENABLED}" + # fixes: + # cannot find package runtime/cgo (using -importcfg) + # ... recipe-sysroot-native/usr/lib/aarch64-poky-linux/go/pkg/tool/linux_amd64/link: + # cannot open file : open : no such file or directory + export GO_BUILD_FLAGS="-trimpath -a -pkgdir dontusecurrentpkgs" + export GO111MODULE=off + + cd ${S} + + oe_runmake binaries +} + +inherit systemd +SYSTEMD_PACKAGES = "${@bb.utils.contains('DISTRO_FEATURES','systemd','${PN}','',d)}" +SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('DISTRO_FEATURES','systemd','containerd.service','',d)}" + +do_install() { + mkdir -p ${D}/${bindir} + + cp ${S}/bin/containerd ${D}/${bindir}/containerd + cp ${S}/bin/containerd-shim-runc-v2 ${D}/${bindir}/containerd-shim-runc-v2 + cp ${S}/bin/ctr ${D}/${bindir}/containerd-ctr + + ln -sf containerd ${D}/${bindir}/docker-containerd + ln -sf containerd-ctr ${D}/${bindir}/docker-containerd-ctr + + ln -sf containerd-ctr ${D}/${bindir}/ctr + + if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${S}/containerd.service ${D}/${systemd_unitdir}/system + # adjust from /usr/local/bin to /usr/bin/ + sed -e "s:/usr/local/bin/containerd:${bindir}/containerd:g" -i ${D}/${systemd_unitdir}/system/containerd.service + fi +} + +FILES:${PN} += "${systemd_system_unitdir}/*" + +INSANE_SKIP:${PN} += "ldflags already-stripped" + +COMPATIBLE_HOST = "^(?!(qemu)?mips).*" + +RDEPENDS:${PN} += " ${VIRTUAL-RUNTIME_container_runtime}" + +CVE_PRODUCT = "containerd" |