Commit Graph

11 Commits

Author SHA1 Message Date
Bruce Ashfield
d876cfc5bf global: overrides syntax conversion
OEcore/bitbake are moving to use the clearer ":" as an overrides
separator.

This is pass one of updating the meta-virt recipes to use that
syntax.

This has only been minimally build/runtime tested, more changes
will be required for missed overrides, or incorrect conversions

Note: A recent bitbake is required:

    commit 75fad23fc06c008a03414a1fc288a8614c6af9ca
    Author: Richard Purdie <richard.purdie@linuxfoundation.org>
    Date:   Sun Jul 18 12:59:15 2021 +0100

        bitbake: data_smart/parse: Allow ':' characters in variable/function names

        It is becomming increasingly clear we need to find a way to show what
        is/is not an override in our syntax. We need to do this in a way which
        is clear to users, readable and in a way we can transition to.

        The most effective way I've found to this is to use the ":" charater
        to directly replace "_" where an override is being specified. This
        includes "append", "prepend" and "remove" which are effectively special
        override directives.

        This patch simply adds the character to the parser so bitbake accepts
        the value but maps it back to "_" internally so there is no behaviour
        change.

        This change is simple enough it could potentially be backported to older
        version of bitbake meaning layers using the new syntax/markup could
        work with older releases. Even if other no other changes are accepted
        at this time and we don't backport, it does set us on a path where at
        some point in future we could
        require a more explict syntax.

        I've tested this patch by converting oe-core/meta-yocto to the new
        syntax for overrides (9000+ changes) and then seeing that builds
        continue to work with this patch.

        (Bitbake rev: 0dbbb4547cb2570d2ce607e9a53459df3c0ac284)

        Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-08-02 17:17:53 -04:00
Bruce Ashfield
172d5f47d5 crun: adjust image-spec repository from master to main
We need to change our branch to avoid parse errors.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-07-14 15:21:16 -04:00
Bruce Ashfield
b8f2edd39a crun: add seccomp distro features check
Since seccomp depends on libseccomp, and seccomp is only available
when the distro feature is enabled, we add the same dependency and
distro feature check to this recipe.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-06-30 11:22:42 -04:00
Bruce Ashfield
299c418144 crun: update to latest
Bumping crun to version 0.20.1-7-g7ef74c9, which comprises the following commits:

    b07c389 criu: fix error check
    09401bb linux: fix unitialized variable
    b222968 cgroup: fix a memory leak
    1182975 cgroup: honor memory swappiness set to 0
    38271d1 NEWS: tag 0.20.1
    923447b container: ignore resetting keyring SELinux label
    b26493f Dockerfile: install required python3-jinja2 package
    0d42f11 NEWS: tag 0.20
    9042ac5 seccomp: drop SECCOMP_FILTER_FLAG_LOG by default
    0f4156f cgroup: Refactor libcrun-cgroup-destory to support picking subsystems dynamically and clean custom controllers.
    d6be344 cgroup: ignore devices errors in a userns
    6e187fb cgroup: do not join empty controller
    badb23d seccomp: report correct action in error message
    5201956 container: apply SELinux label to keyring
    4b664e9 linux: attempt to open existing dev file first
    dd1c419 libocispec: sync from upstream
    5f74e2a Makefile.am: make sure libocispec uses main branch
    f0c76e1 utils: close_range fallbacks to close on EPERM
    1596ab1 Update crun manual with recently added flags
    1d84d62 Fix type for LinuxDeviceCgroup.linux.resources.devices.allow in default Spec
    62d251d container: call prestart hooks before rootfs is RO
    48bc33d Exec: Add --process-label and --apparmor to allow modifying selinux_label and apparmor_profile
    0e53e87 Exec: Add --no-new-privs to and adhere if noNewPriviledges is false in basespec config
    2de8b43 Fix SIGSEGV for rootless container caused by case when def->linux is defined but def->linux->cgroups_path is NULL
    54e77c2 Add support for spec --bundle
    ae11886 cgroup: fix regression in mode detection
    194b72d kill: fix race condition with pidfd_open
    2910d9b cgroup: add custom annotation run.oci.delegate-cgroup
    407eef9 cgroup: drop argument from function
    0485de6 cgroup: report error if the cgroup path was set
    bf5020a cgroup: improve error message
    a131715 cgroup: fix recursive cleanup
    6e95060 cgroup: kill procs in cgroup on EBUSY
    0274d6f tests: disable go modules
    1272eaf tests: skip podman create --pull
    04f1a6a container: read the error from the init process
    29afcd6 Update README.md
    9863a8e Update README.md
    55f5ed5 utils: use /proc/self/fd to open unix socket
    fa40930 contrib: fix warning from the rust compiler
    1535fed NEWS: tag 0.19.1
    227e0be spec: add cgroup ns if on cgroup v2
    3fbe777 libcrun: add const to spec_file
    eb34661 libcrun: annotate cgroup_mode < 0 checks
    92bcc81 tests: add fuzzing tests
    af3509d cgroup: support array of strings
    9effaeb On exec, honor additional_gids from the process spec, not the container definition

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-06-21 08:52:18 -04:00
Bruce Ashfield
6adc4f64d5 crun: switch to main as specified branch
The upstream project has moved from master to main, so we adjust
our recipe accordingly.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-06-21 08:52:18 -04:00
Bruce Ashfield
51c195d761 crun: switch branch to main
crun has renamed master -> main, so we adjust our fetching to
match.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-05-19 08:48:11 -04:00
Bruce Ashfield
144d1ae897 crun: use REQUIRED_DISTRO_FEATURES to indicate systemd dependency
crun has a hard dependency on systemd, we need to add it to the
recipe to avoid failing package QA checks.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-04-26 11:17:27 -04:00
Bruce Ashfield
cbec1240f9 crun: bump to latest
As part of this update to crun, we now much run autogen.sh before
running configure.

Otherwise, these are incremental changes and comprise the following
commits:

   9effaeb On exec, honor additional_gids from the process spec, not the container definition
   c25a2db tests: add explicit python3-pip dependency
   e67a756 NEWS: tag 0.19
   18c0274 gitignore: update
   471a7b8 libocispec: update from upstream
   f642968 tests: fix check for cgroup v2
   3e7fa1d linux: always remount bind mounts
   78aeac9 linux: ignore unknown capabilities
   f11d742 Add linuxdevicecgroup to maintain parity with runc spec
   9aa382b cgroup: skip parsing empty file
   d9c9fd0 container: initialize tmp_err
   00371ae src: initialize statx struct
   2e88d19 src: initialize first_arg
   5e4efb7 seccomp: always NUL terminate lowercase_arch
   7812572 tests: add test for seccomp listener
   f80e98d init: add check for seccomp listener
   5d9010b init: fix check for nargs
   5a627f4 seccomp: support notify listener
   c3361c1 status: use function to convert from yajl errors
   873b62d container: use new error function for hooks JSON
   14083ab error: new function to convert from yajl errors
   6e19235 linux: pass own pid to container process
   8fd3320 contrib: new tool to test seccomp notifications
   8722858 crun: always use absolute path for the bundle
   ae9ea92 container: improve OOM error message
   919aac9 utils: receive fd detect closed connection
   a52e480 cgroup: new function to detect OOM
   2e37d2a sync-libocispec
   75ad96b Let autogen.sh generate m4
   14c260f libcrun_warn if newuidmap/newgidmap invoke fails
   5598401 README.md: drop pids limit comparison
   9ea6857 github: add fuzzing test
   0fd03ba tests: add container image for fuzzing libcrun
   bbd5c7d fuzzer: reap child processes
   c7350ef tests: add more fuzzing tests
   816f95b fuzzer: merge two tests
   effa508 linux: cleanup zombie on errors
   b32f1eb linux: release only on error
   5ca72f5 status: attempt open again on interrupts
   9b5d4c1 Added static analysis Adding clang compilation Fixing comparison of integers of different signs
   3b199ef Update GNUmakefile
   dcd1a34 linux: label the tmpfs for masked directories
   edf7f15 seccomp: check if the action supports errnoRet
   bc222b6 seccomp: fail if no default action specified
   0c5b920 seccomp: honor default errno value
   92c0afe yajl: support static link of containers/yajl
   f3d920d src: fix unitialized variable
   7d89a02 src: add error check
   765971c status: fix memory leak on error
   31274d8 utils: fix check for fd
   62d1c4d tests: add test to feed honggfuzz
   ab75091 ebpf: return the program instead of NULL
   8b16552 src: check if seccomp is defined
   f721efb container: fix error ownership
   4472e35 container: allow config from memory
   6b369b8 container: fix memory leak
   0fede0f container: initialize variable
   2b6c0b6 container: fix dereference of def->linux if NULL
   1dd9b5b container: check for def->process before deref
   1b1a691 fix: cross-compiling for Android
   b25cb2d tests: add device access test
   86251b0 ebpf: handle access(dev_name, F_OK) call correctly
   e2d79dc fix: access violate if ret < -2
   4f35406 cgroup: read controllers from /proc/self/cgroup

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-04-12 15:15:39 -04:00
Bruce Ashfield
2eda91539f crun: update to 0.18
Bumping to the release, which pulls in the

   808420e release: distribute CHECKSUMS file
   c2b0064 build-aux: provide arm build without systemd
   7cc03f7 .gitignore: update file
   f5274bd NEWS: tag 0.18
   94e8364 src: add missing definitions
   baed691 libocispec: sync from upstream
   8d0ebf6 Add arm64 static binary build
   b66d5d9 tests: fix make check in a user namespace
   e10205e linux: remove temporary mount logic
   7819f4c linux: use targetfd for move_mount
   891cd3c linux: use safe_openat for masked/readonly paths
   6c5577f linux: use new function
   9aa264d utils: add function to safely create and open
   436daef src: add function to cleanup container struct
   c955ece src: pull function out
   7bd51a0 build: check for linux/openat2.h
   dcb1914 utils: add function to remove initial slashes
   a1c958c utils: memoize check result
   25c6f07 container: rename function to get_root_in_the_userns
   f08bd31 src: fix leak of the descriptors buffer
   df88061 tests: disable more Podman flaky tests
   052bab7 utils: set HOME to root if the user not found
   efe35f1 linux: ignore ENOSYS on keyctl
   1b65163 tests: enable asan sanitizer
   a0f322a tests: build init always statically
   a656698 configure.ac: allow to disable dl support
   6adb26b tests: disable hooks_stdin for oci-validation
   06199c7 tests: update to podman 3.0
   bc888b9 tests: disable podman pull test
   f1373f9 tests: install crun under /usr/bin
   257f442 Fix permission error when using both user namespaces & NOTIFY_SOCKET
   617a212 cgroup: skip +cpu on EINVAL in cgroup root
   b6ac8de linux: use safe_openat for tmpcopyup
   2d1f910 utils: avoid reopening the root during lookup
   3ce74e8 utils: fix symlink lookup
   cbb67ae container: set working directory for libkrun
   df01709 seccomp: custom annotation to load raw bpf
   b229dca linux: refactor allocate_tmp_mounts
   68bb50f linux: disable temporary mounts with [r]slave
   d6ae36b libocispec: update from upstream
   487e792 github: enable clang-format checks
   61d6844 src: run make clang-format
   1d559d0 clang-format: change ColumnLimit to 0
   643d05b linux: disable temporary mounts with [r]shared
   de6082f cgroup: fix conversion from blkio to io
   1db8312 Update nix pin with `make nixpkgs`
   540444c Makefile.am: crun depends on libocispec.la
   1df96e5 linux: fix build without CLONE_NEWCGROUP

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-02-24 13:50:05 -05:00
Bruce Ashfield
4a16ba75b1 crun: update to 0.17
We bump crun, and its dependency repositories to their latest
revisions.

Along with the code changes, we have a new systemd dependency
(or the build fails), and the License was incorrectly set to
GPLv3 previously, and we correct it to v2 as part of this update.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2021-02-06 13:27:53 -05:00
Bruce Ashfield
a6ae07c0d3 crun: introduce crun (OCI runtime provider)
Create the initial recipe to provide crun as an alternative OCI runtime
provider.

This currently has a depdenency on seccomp, but it would be nice if we
can make that optional in the future to avoid pulling in all of
meta-security as a dependency.

Example:

  % skopeo copy docker://busybox oci:busybox-oci:latest
  % mkdir busybox-bundle
  % oci-image-tool create --ref platform.os=linux busybox-oci busybox-bundle
  % cd busybox-bundle/
  % rm config.json
  % runc spec
  % runc run foo
^D
  % crun run foo
^D

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
2019-10-13 11:11:35 -04:00