9400e1d2a6
Back when the containerd package was first added to the build, the designer who added it didn't realize that the upstream source already contained a "containerd.service" file and so they added a separate one. It turns out that the upstream source *does* have a service file, and it also contains some additional settings that we might want to pick up. Furthermore, there are additional changes in more recent versions of the package. As such, we want to switch to use the service file from the upstream source instead of a custom one. The upstream service file wants to run /usr/local/bin/containerd so we just make a symlink at that location pointing to the current binary location. Closes-Bug: 1884111 Change-Id: I5ed4f46a7bcceb0d0f71abb26590160fb62c0b7b Signed-off-by: Chris Friesen <chris.friesen@windriver.com>
105 lines
3.3 KiB
RPMSpec
105 lines
3.3 KiB
RPMSpec
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Copyright (C) 2019 Intel Corporation
|
|
#
|
|
Name: containerd
|
|
Version: 1.3.3
|
|
Release: %{tis_patch_ver}%{?_tis_dist}
|
|
Summary: Open and reliable container runtime
|
|
Group: Kubernetes
|
|
License: ASL 2.0
|
|
Source0: containerd-v%{version}.tar.gz
|
|
Source1: runc-1.0.0-rc10.tar.gz
|
|
Source2: crictl-v1.18.0-linux-amd64.tar.gz
|
|
Source3: crictl.yaml
|
|
Patch5: 0001-customize-containerd-for-StarlingX.patch
|
|
Patch6: 0002-archive-skip-chmod-IsNotExist-error.patch
|
|
URL: https://www.starlingx.io
|
|
Vendor: StarlingX
|
|
Packager: StarlingX
|
|
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(libseccomp)
|
|
BuildRequires: pkgconfig(libsystemd-journal)
|
|
BuildRequires: golang >= 1.12.16
|
|
BuildRequires: systemd
|
|
BuildRequires: rsync
|
|
BuildRequires: go-md2man
|
|
BuildRequires: go-bindata
|
|
BuildRequires: rpm-devel >= 4.14.0
|
|
BuildRequires: rpm-libs >= 4.14.0
|
|
|
|
# required packages on install
|
|
Requires: /bin/sh
|
|
Requires: systemd
|
|
|
|
Provides: containerd
|
|
Provides: runc
|
|
Provides: containerd.io
|
|
|
|
|
|
%global _missing_build_ids_terminate_build 0
|
|
|
|
%define CONTAINERD_DIR ${HOME}/go/src/github.com/containerd/containerd
|
|
%define RUNC_DIR ${HOME}/go/src/github.com/opencontainers/runc
|
|
|
|
%description
|
|
Containerd is an industry-standard container runtime with an emphasis on
|
|
simplicity, robustness and portability. It is available as a daemon for Linux
|
|
and Windows, which can manage the complete container lifecycle of its host
|
|
system: image transfer and storage, container execution and supervision,
|
|
low-level storage and network attachments, etc.
|
|
|
|
%prep
|
|
%setup -q -c -n src -a 1
|
|
%setup -q -c -T -D -n src -a 2
|
|
%patch5 -p1
|
|
%patch6 -p1
|
|
|
|
%build
|
|
# build containerd
|
|
mkdir -p %{CONTAINERD_DIR}
|
|
mv %{_builddir}/src/containerd/* %{CONTAINERD_DIR}/
|
|
pushd %{CONTAINERD_DIR}
|
|
make
|
|
popd
|
|
|
|
# build runc
|
|
mkdir -p %{RUNC_DIR}
|
|
mv %{_builddir}/src/runc/* %{RUNC_DIR}/
|
|
pushd %{RUNC_DIR}
|
|
make
|
|
popd
|
|
|
|
%install
|
|
# install containerd
|
|
install -d %{buildroot}%{_bindir}
|
|
install -p -m 755 %{CONTAINERD_DIR}/bin/containerd %{buildroot}%{_bindir}/containerd
|
|
install -d %{buildroot}%{_prefix}/local/bin
|
|
ln -s %{_bindir}/containerd %{buildroot}%{_prefix}/local/bin/containerd
|
|
install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-shim %{buildroot}%{_bindir}/containerd-shim
|
|
install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-shim-runc-v1 %{buildroot}%{_bindir}/containerd-shim-runc-v1
|
|
install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-shim-runc-v2 %{buildroot}%{_bindir}/containerd-shim-runc-v2
|
|
install -p -m 755 %{CONTAINERD_DIR}/bin/containerd-stress %{buildroot}%{_bindir}/containerd-stress
|
|
install -p -m 755 %{CONTAINERD_DIR}/bin/ctr %{buildroot}%{_bindir}/ctr
|
|
install -p -m 755 %{RUNC_DIR}/runc %{buildroot}%{_bindir}/runc
|
|
install -p -m 755 %{_builddir}/src/crictl %{buildroot}%{_bindir}/crictl
|
|
install -d %{buildroot}%{_sysconfdir}
|
|
install -m 644 %{_sourcedir}/crictl.yaml %{buildroot}%{_sysconfdir}/crictl.yaml
|
|
install -d %{buildroot}%{_unitdir}
|
|
install -p -m 644 %{CONTAINERD_DIR}/containerd.service %{buildroot}%{_unitdir}/containerd.service
|
|
|
|
# list files owned by the package here
|
|
%files
|
|
%{_prefix}/local/bin/containerd
|
|
%{_bindir}/containerd
|
|
%{_bindir}/containerd-shim
|
|
%{_bindir}/containerd-shim-runc-v1
|
|
%{_bindir}/containerd-shim-runc-v2
|
|
%{_bindir}/containerd-stress
|
|
%{_bindir}/ctr
|
|
%{_bindir}/runc
|
|
%{_bindir}/crictl
|
|
%{_sysconfdir}/crictl.yaml
|
|
%{_unitdir}/containerd.service
|