6c2e809c92
Most packages will compile using the new default golang version (1.16.6). For some packages it is a transparent change, but those reliant on the old GOPATH method require the addition of ... go env -w GO111MODULE=auto ... to their build instruction to restore GOPATH compatibility. For Kubernetes version 1.18.1, I explicitly set to compile using golang version 1.13.9 as this is the version recommended by Kubernetes. Story: 2008972 Task: 42655 Depends-On: https://review.opendev.org/c/starlingx/compile/+/804123 Signed-off-by: Scott Little <scott.little@windriver.com> Change-Id: I0d813cd245cb46932bf2096b641c4972f8a49efc
110 lines
3.3 KiB
RPMSpec
110 lines
3.3 KiB
RPMSpec
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Copyright (C) 2019 Intel Corporation
|
|
#
|
|
Name: containerd
|
|
Version: 1.4.6
|
|
Release: %{tis_patch_ver}%{?_tis_dist}
|
|
Summary: Open and reliable container runtime
|
|
Group: Kubernetes
|
|
License: ASL 2.0
|
|
Source0: containerd-%{version}.tar.gz
|
|
Source1: runc-1.0.0-rc95.tar.gz
|
|
Source2: crictl-v1.21.0-linux-amd64.tar.gz
|
|
Source3: crictl.yaml
|
|
Patch1: 0001-customize-containerd-for-StarlingX.patch
|
|
URL: https://www.starlingx.io
|
|
Vendor: StarlingX
|
|
Packager: StarlingX
|
|
|
|
BuildRequires: pkgconfig(systemd)
|
|
BuildRequires: pkgconfig(libseccomp)
|
|
BuildRequires: pkgconfig(libsystemd-journal)
|
|
|
|
# Build with our own prefered golang
|
|
# BuildRequires: golang >= 1.12.16
|
|
BuildRequires: golang >= 1.13
|
|
|
|
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
|
|
%patch1 -p1
|
|
|
|
%build
|
|
# build containerd
|
|
rm -rf %{CONTAINERD_DIR}
|
|
mkdir -p %{CONTAINERD_DIR}
|
|
cp -a %{_builddir}/src/containerd/* %{CONTAINERD_DIR}/
|
|
pushd %{CONTAINERD_DIR}
|
|
go env -w GO111MODULE=auto
|
|
make
|
|
popd
|
|
|
|
# build runc
|
|
rm -rf %{RUNC_DIR}
|
|
mkdir -p %{RUNC_DIR}
|
|
cp -a %{_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
|