aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-containers/runc
AgeCommit message (Collapse)Author
2019-08-12runc: add PACKAGECONFIG to allow building as static or notChen Qi
Add a new PACKAGECONFIG, static, which when enabled will build runc as static. Default to enable it. We need this because we should allow users to build runc as not static so that when docker's cgroup driver is set to systemd, we don't get error. Signed-off-by: Chen Qi <Qi.Chen@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-07-22containers/go/build: don't override global package strip flagsBruce Ashfield
When the go-lang container recipes were first created there were issues with strip and the resulting binaries. As such, strip was inhibited for the various packages. This variable is now set in the default classes, and tests show that strip works on the binaries (saving up to 2M on disk for some binaries) with no runtime issues found. So we drop our explicit set of the inhibit and let the build proceed by the defaults. If issues are found, we can re-enable the setting or bbappends can turn it back on for builds showing issues. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-07-12runc: update to -rc8Bruce Ashfield
Updating both the pure opencontainers runc and the docker opencontainers variants to -rc8. We track the tip of master for opencontainers and for docker we match the -ce and moby -rc8 commit hashes. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-03-21docker-runc: drop docker RRECOMMENDSBruce Ashfield
runc shouldn't be RRECOMMENDing docker, since it is already a RDEPENDS of docker. If we have this RRECOMMEND, you cannot easily vary the docker and docker-ce packages with this runc variant. We could restore this RRECOMMEND in the future if a virtual/docker dependency is introduced. Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-02-15runc: address CVE-2019-5736Stefan Agner
Use git hash which addresses CVE-2019-5736. Use the same git hash used in top of Docker 18.09 branch. Changes in runc since 6635b4f0 merge branch 'cve-2019-5736' 0a8e4117 nsenter: clone /proc/self/exe to avoid exposing host binary to container dd023c45 merge branch 'pr-1972' Fixes: CVE-2019-5736 Signed-off-by: Stefan Agner <stefan.agner@toradex.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-02-11runc: update to 1.0.0-rc6Bruce Ashfield
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-01-16runc.inc: Move RRECOMMENDS to runc-dockerPaul Barker
If we're building runc-opencontainers it's likely that we're not using docker. Signed-off-by: Paul Barker <paul@betafive.co.uk> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-11-05runc: refresh to tip of treeBruce Ashfield
docker/k8s and other components have been refreshed to the 18.09 release tags. So we update runc to keep in sync. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-29runc: allow enabling seccompPascal Bach
This requires libseccomp from meta-security so it is not enabled by default. Signed-off-by: Pascal Bach <pascal.bach@siemens.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-05-09runc-opencontainers: Drop obsolete patchPaul Barker
The upstream Makefile now calls `$(GO)` instead of just `go` so this patch isn't needed anymore. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-20runc/containerd: fix build with go 1.9.xBruce Ashfield
go 1.9.x was triggering linkage errors on some build hosts due to missing symbols. | tmp/work/core2-64-poky-linux/runc-docker/1.0.0-rc5+gitAUTOINC+4fc53a81fb-r0/recipe-sysroot/usr/lib/../lib/libc.a(dl-reloc-static-pie.o): In function `elf_mac: | /usr/src/debug/glibc/2.27-r0/git/sysdeps/x86_64/dl-machine.h:59: undefined reference to `_DYNAMIC' | tmp/work/core2-64-poky-linux/runc-docker/1.0.0-rc5+gitAUTOINC+4fc53a81fb-r0/recipe-sysroot/usr/lib/../lib/libc.a(dl-reloc-static-pie.o): In function `elf_get: | /usr/src/debug/glibc/2.27-r0/git/elf/get-dynamic-info.h:48: undefined reference to `_DYNAMIC' By ensuring that our sysroot provided go binary and build flags make it into the build enviroment we can build properly with 1.9 and 1.10 Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-05runc: ensure that ${GO} is exported build/makeBruce Ashfield
The runc makefile now uses $(GO) universally, but sets the variable as GO := go by default. This means that the host go will be used instead of our recipe sysroot variant. A simple export of the variable is not enough in all cases (due to Make assignments), so both export it AND pass it directly to the oe_make call. This fixes docker-runc builds on ARM64. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2018-04-02runc: uprev to 1.0.0-rc5Bruce Ashfield
Uprev both variants of runc to v1.0.0-rc5. We drop patches that have made it into the upstream runc, and we also refresh the context of of two others. The docker and opencontainers variants are virtually identical, but we keep the two variants for now to protect against any future forks in the support. The runc-docker SRCREV comes from the docker-ce 18.04 logged commit, while runc-opencontainers is updated to the tip of the master branch. Runtime tested with docker on x86-64. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-12-11runc-docker: Allow "run start ..." to daemonize with $SIGUSR1_PARENT_PIDJason Wessel
The runc-docker has all the code in it to properly run a stop hook if you use it in the foreground. It doesn't work in the back ground because there is no way for a golang application to fork a child exit out of the parent process because all the golang threads stay with the parent. This patch has three parts that happen ONLY when $SIGUSR1_PARENT_PID is set. 1) At the point where runc start would normally exit, it closes stdin/stdout/stderr so it would be possible to daemonize "runc start ...". 2) The code to send a SIGUSR1 to the parent process was added. The idea being that a parent process would simply exit at that point because it was blocking until runc performed everything it was required to perform. 3) The code was copied which performs the normal the signal handling block which is used for the foreground operation of runc. -- More information -- When you use "runc run " it is running in the "foreground", in the sense it takes over your existing terminal. The runc-docker doesn't have a way to start it with "runc run&" where you can send it to the background and have everything work. With this commit, it does allow you to do that and have all the stop hooks fire at the time what ever runc started exits. Lets take a quick look at what "runc run" does today: * Starts a whole pile of threads * Sets up all name spaces * Starts child process for container and leaves it paused at image activation * runs start hooks * executes "continue" for container process * waits for container app to exit * executes stop hooks Now lets look at "runc create/start" does today: runc create * Starts a whole pile of threads * Sets up all name spaces * Starts child process for container and leaves it paused at image activation * exits -- [ NOTE: this is our problem! ] runc start * runs start hooks * executes "continue" for continue process At this point when the container app exits nothing is waiting for it to run any kind of hooks. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-16runc: use SRCPV not SRCREVBruce Ashfield
Ricardo Salveti <ricardo@opensourcefoundries.com> pointed out that runc-docker was not getting a proper PV due to the use of SRCREV in the variable. By switching to SRCPV, we get the right PV for both variants of runc. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-16runc: Merge common metadata into inc filePaul Barker
Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-16runc: Drop inherit goarchPaul Barker
The go bbclass already inherits goarch. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-16runc-docker: Drop unused EXTRA_FLAGSPaul Barker
This variable isn't picked up by the runc Makefile anyway as it isn't exported. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-16runc-opencontainers: Drop unnecessary do_compile_prependPaul Barker
The "vendor/src" symlink is already created in do_compile in runc.inc. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-12runc-docker: Disable building recvttyPaul Barker
The recvtty demo/reference application has cross compilation issues when targeting aarch64 platforms. As it is just a demo application and is not usually used, we can just patch the Makefile to disable building this application. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-05runc: Don't override GOARCH or GOROOTPaul Barker
These variables are now set correctly by go.bbclass in oe-core. Changing them to point at the native sysroot just leads to build errors in some cases, for example when the target and host have matching GOARCH but not matching c libraries. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-05runc: Use correct go cross-compilerPaul Barker
The makefiles for both providers of runc need to be patched in similar ways to ensure that we use the binaries from go-cross and not go-native. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-05runc: Drop obsolete patchPaul Barker
This patch hasn't been used in a long time. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-04runc-opencontainers: go.bbclass compile fixesPaul Barker
These fixes are needed due to updates to go.bbclass in oe-core. See commit 01a8d4537012ad93dc8510e9b762acdc8c4536c7 for more information. Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-10-04runc-opencontainers: Update to v1.0.0-rc4Paul Barker
Signed-off-by: Paul Barker <pbarker@toganlabs.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-09-14nets, docker, runc, oci-*tools: go.bbclass compile fixesJason Wessel
Recently in the oe-core the go.bbclass changed and requires the defition of the GO_IMPORT variable. This was intended to simplify how the compilation works with go packages and it is still a work in progress. This patch set makes the recipes compatible to generate the same end result as before using the new go.bbclass from oe-core. Any patches that were included in the recipes had to have the paths adjusted because the new go.bbclass manipulates the notion of S to be S + "src" + "$GO_IMPORT" internally for the purpose of unpack, patch and compile. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-07-13runc-docker: Add --console-socket=/dev/nullJason Wessel
This allows for setting up a detached session where you do not want to set the terminal to false in the config.json. More or less this is a runtime override. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-07-13runc-docker: Uprev to 1.0-rc3+Jason Wessel
Uprev to pick up latest changes in docker-runc. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-04-11housekeeping: swap out go-osarchmap in favor of goarchMark Asselstine
Continue work to use go infra in oe-core instead of the support for go previously found in meta-virt. This is a 1:1 drop in replacement and removes one more go piece from meta-virt in favor of the common support found in oe-core. Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-04-11runc/containerd: use go.bbclass for dependenciesBruce Ashfield
Rather than explicit go-cross DEPENDS, we can inherit go.bbclass and pick up them automatically. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-04-10runc-opencontainers: Update to v1.0.0-rc3Paul Barker
Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-03-21recipes-containers: set GOROOTKhem Raj
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-02-20runc/containerd: create virtual/runc and virtual/containerdBruce Ashfield
Since there are two implementations of runc and containerd that may not always be in sync, the docker variant, and the opencontainers variable, we create a virtual/* namespace for these components. Anything requiring runc or containerd should set a preferred provider to get the desired/tested variant. We set the default provider to the docker variants, since they are the primary use case for these components. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-02-15runc: uprev to version required by docker 1.13.0Mark Asselstine
At the moment we only use runc in conjunction with docker. In order to allow docker to function correctly we need to use the version specified in docker's vendor.conf file. Uprev runc to this version. NOTE that the docker folks have actually forked runc and I have used this fork as the SRC_URI. I could have chosen instead to use the old SRC_URI along with the fork point commit as the SRCREV, and then applied the 2 commits the docker team have added beyond the fork. I opted instead to use the fork such that 'docker info' would not complain about a version mismatch. This also makes it easier to google for issues since the commit ID matches. NOTE when we eventually have more users of runc we will have to determine a strategy to either have them all use the same version or allow for multiple versions of runc on the system. This is also true for containerd. Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-02-09go-cross: add ${TARGET_ARCH} to PNMark Asselstine
Since we are building a cross tool which produces something which is ARCH specific we should stick to the <toolname>-cross-<arch> naming convention. A variant of this patch has been floating around for a while but with the changes around per recipe sysroots, distributed builds, shared builds... we are best served to adopt this convention now. Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2017-01-21containered|runc: override GOROOT at build timeLans Zhang
Similar to commit 01aa8f1, runc and containered also need to set GOROOT explicitly. Signed-off-by: Lans Zhang <jia.zhang@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-07-27containers: uprev docker (1.12.0), runc (1.0.0-rc) and containerd (0.2.2)Bruce Ashfield
Bumping the version of docker and dependencies. This gets us closer to runc 1.0, which is the foundation for future OCI efforts. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-06-17runc: Use go-osarchmap to set GOARCHPaul Barker
When building for qemux86 the following error was encountered due to GOARCH being set incorrectly: compile: unknown architecture "i586" This can be fixed by using the go-osarchmap class. Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-06-17runc: Backport fix for building against muslPaul Barker
Signed-off-by: Paul Barker <paul@paulbarker.me.uk> Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
2016-05-02runc: initial recipeBruce Ashfield
With the update to docker 1.11.x, we must also introduce runc. From the runc site: runC is a CLI tool for spawning and running containers according to the OCP specification. Containers are started as a child process of runC and can be embedded into various other systems without having to run a Docker daemon. runC is built on libcontainer, the same container technology powering millions of Docker Engine installations. Docker images can be run with runC. So not only is runc required for docker, it is useful for any system that wants to run OCP containers AND docker containers. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>