81f99db1b9
- Update to runc v1.1.0~rc1. Upstream changelog is available from https://github.com/opencontainers/runc/releases/tag/v1.1.0-rc.1. + Add support for RDMA cgroup added in Linux 4.11. * runc exec now produces exit code of 255 when the exec failed. This may help in distinguishing between runc exec failures (such as invalid options, non-running container or non-existent binary etc.) and failures of the command being executed. + runc run: new --keep option to skip removal exited containers artefacts. This might be useful to check the state (e.g. of cgroup controllers) after the container hasexited. + seccomp: add support for SCMP_ACT_KILL_PROCESS and SCMP_ACT_KILL_THREAD (the latter is just an alias for SCMP_ACT_KILL). + seccomp: add support for SCMP_ACT_NOTIFY (seccomp actions). This allows users to create sophisticated seccomp filters where syscalls can be efficiently emulated by privileged processes on the host. + checkpoint/restore: add an option (--lsm-mount-context) to set a different LSM mount context on restore. + intelrdt: support ClosID parameter. + runc exec --cgroup: an option to specify a (non-top) in-container cgroup to use for the process being executed. + cgroup v1 controllers now support hybrid hierarchy (i.e. when on a cgroup v1 machine a cgroup2 filesystem is mounted to /sys/fs/cgroup/unified, runc run/exec now adds the container to the appropriate cgroup under it). + sysctl: allow slashes in sysctl names, to better match sysctl(8)'s behaviour. + mounts: add support for bind-mounts which are inaccessible after switching the user namespace. Note that this does not permit the container any additional access to the host filesystem, it simply allows containers to have bind-mounts configured for paths the user can access but have restrictive access control settings for other users. + Add support for recursive mount attributes using mount_setattr(2). These have the same names as the proposed mount(8) options -- just prepend r to the option name (such as rro). + Add runc features subcommand to allow runc users to detect what features runc has been built with. This includes critical information such as supported mount flags, hook names, and so on. Note that the output of this command is subject to change and will not be considered stable until runc 1.2 at the earliest. The runtime-spec specification for this feature is being developed in opencontainers/runtime-spec#1130. * system: improve performance of /proc/$pid/stat parsing. * cgroup2: when /sys/fs/cgroup is configured as a read-write mount, change the ownership of certain cgroup control files (as per /sys/kernel/cgroup/delegate) to allow for proper deferral to the container process. * runc checkpoint/restore: fixed for containers with an external bind mount which destination is a symlink. * cgroup: improve openat2 handling for cgroup directory handle hardening. runc delete -f now succeeds (rather than timing out) on a paused container. * runc run/start/exec now refuses a frozen cgroup (paused container in case of exec). Users can disable this using --ignore-paused. - Update version data embedded in binary to correctly include the git commit of the release. - Drop runc-rpmlintrc because we don't have runc-test anymore. OBS-URL: https://build.opensuse.org/request/show/940368 OBS-URL: https://build.opensuse.org/package/show/Virtualization:containers/runc?expand=0&rev=119
99 lines
3.5 KiB
RPMSpec
99 lines
3.5 KiB
RPMSpec
#
|
|
# spec file for package runc
|
|
#
|
|
# Copyright (c) 2021 SUSE LLC
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|
#
|
|
# nodebuginfo
|
|
|
|
|
|
# MANUAL: Make sure you update this each time you update runc.
|
|
%define git_version 55df1fc4c8b048118cd30a17b50f96a15ab0f3ea
|
|
%define git_short 55df1fc4c8b0
|
|
|
|
# Package-wide golang version
|
|
%define go_version 1.17
|
|
%define project github.com/opencontainers/runc
|
|
|
|
Name: runc
|
|
Version: 1.1.0~rc1
|
|
%define _version 1.1.0-rc.1
|
|
Release: 0
|
|
Summary: Tool for spawning and running OCI containers
|
|
License: Apache-2.0
|
|
Group: System/Management
|
|
URL: https://github.com/opencontainers/runc
|
|
Source0: https://github.com/opencontainers/runc/releases/download/v%{_version}/runc.tar.xz#/runc-%{version}.tar.xz
|
|
Source1: https://github.com/opencontainers/runc/releases/download/v%{_version}/runc.tar.xz.asc#/runc-%{version}.tar.xz.asc
|
|
Source2: runc.keyring
|
|
BuildRequires: fdupes
|
|
BuildRequires: go-go-md2man
|
|
# Due to a limitation in openSUSE's Go packaging we cannot have a BuildRequires
|
|
# for 'golang(API) >= 1.x' here, so just require 1.x exactly. bsc#1172608
|
|
BuildRequires: go%{go_version}
|
|
BuildRequires: libseccomp-devel
|
|
BuildRequires: libselinux-devel
|
|
Recommends: criu
|
|
# There used to be a docker-runc package which was specifically for Docker.
|
|
# Since Docker now tracks upstream more consistently, we use the same package
|
|
# but we need to obsolete the old one. bsc#1181677
|
|
Obsoletes: docker-runc < %{version}
|
|
Provides: docker-runc = %{version}
|
|
# KUBIC-SPECIFIC: There used to be a kubic-specific docker-runc package, but
|
|
# now it's been merged into the one package. bsc#1181677
|
|
Obsoletes: docker-runc-kubic < %{version}
|
|
Provides: docker-runc-kubic = %{version}
|
|
Obsoletes: docker-runc = 0.1.1+gitr2819_50a19c6
|
|
Obsoletes: docker-runc_50a19c6
|
|
|
|
# Construct "git describe --dirty --long --always".
|
|
%define git_describe v%{_version}-0-g%{git_short}
|
|
|
|
%description
|
|
runc is a CLI tool for spawning and running containers according to the OCI
|
|
specification. It is designed to be as minimal as possible, and is the workhorse
|
|
of Docker. It was originally designed to be a replacement for LXC within Docker,
|
|
and has grown to become a separate project entirely.
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{_version}
|
|
|
|
%build
|
|
# build runc
|
|
make BUILDTAGS="seccomp" COMMIT="%{git_describe}" runc
|
|
# build man pages
|
|
man/md2man-all.sh
|
|
|
|
%install
|
|
# We install to /usr/sbin/runc as per upstream and create a symlink in /usr/bin
|
|
# for rootless tools.
|
|
install -D -m0755 %{name} %{buildroot}%{_sbindir}/%{name}
|
|
install -m0755 -d %{buildroot}%{_bindir}
|
|
ln -s %{_sbindir}/%{name} %{buildroot}%{_bindir}/%{name}
|
|
|
|
# Man pages.
|
|
install -d -m0755 %{buildroot}%{_mandir}/man8
|
|
install -m0644 man/man8/runc*.8 %{buildroot}%{_mandir}/man8
|
|
|
|
%fdupes %{buildroot}
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc README.md
|
|
%license LICENSE
|
|
%{_sbindir}/%{name}
|
|
%{_bindir}/%{name}
|
|
%{_mandir}/man8/runc*.8.gz
|
|
|
|
%changelog
|