docker-containerd/docker-containerd.spec

109 lines
2.7 KiB
RPMSpec

%define debug_package %{nil}
%global dist_version 0.2.5
%global provider github
%global provider_tld com
%define project containerd
%global repo containerd
%global import_path %{provider}.%{provider_tld}/%{project}/%{repo}
#debuginfo not supported with Go
%global gopath %{_libdir}/golang
%define gosrc %{gopath}/src/pkg/%{import_path}
%global commit 2a5e70cbf65457815ee76b7e5dd2a01292d9eca8
%global shortcommit %(c=%{commit}; echo ${c:0:7})
# Need discuss renaming docker-containerd to containerd
# containerd
Name: docker-containerd
Version: %{dist_version}
Release: 6
Summary: A daemon to control runC
License: ASL 2.0
Group: System/Kernel and hardware
URL: https://containerd.io/
Source0: https://%{import_path}/archive/v%{dist_version}.tar.gz
#Source0: https://%{import_path}/archive/%{commit}.tar.gzS
BuildRequires: gcc
BuildRequires: glibc-static-devel
BuildRequires: go-md2man
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(devmapper)
BuildRequires: btrfs-devel
# ensure build uses golang 1.4 or above
BuildRequires: golang >= 1.4
Requires: runc
%description
Containerd is a daemon with an API and a command line client, to manage
containers on one machine.
It uses runC to run containers according to the OCI specification.
Containerd has advanced features such as seccomp and user namespace
support as well as checkpoint and restore for cloning and live migration
of containers.
%prep
#%setup -q -n docker-%{commit}
%setup -q -n %{repo}-%{dist_version}
%apply_patches
%build
#export DOCKER_GITCOMMIT="%{shortcommit}"
#export DOCKER_GITCOMMIT="%{shortcommit}/%{version}"
mkdir -p vendor/src/github.com/docker/containerd
for i in *; do
[ -d $i ] && ln -s `pwd`/$i vendor/src/github.com/docker/containerd/
done
cat >vendor/src/github.com/docker/containerd/version.go <<'EOF'
package containerd;
const Version = "%{version}";
const GitCommit = "%{commit}";
const VersionMajor = 0;
const VersionMinor = 2;
const VersionPatch = 5;
EOF
export GOPATH=$(pwd)/vendor:%{gopath}
make
%install
# install binary
install -d %{buildroot}%{_bindir}
install -p -m 755 bin/* %{buildroot}%{_bindir}
# install systemd/init scripts
install -d %{buildroot}%{_unitdir}
sed -e 's,/usr/local,%{_prefix},g' hack/containerd.service >%{buildroot}%{_unitdir}/containerd.service
find %{buildroot} -name "*~" -exec rm -rf {} \;
install -d %{buildroot}%{_presetdir}
cat > %{buildroot}%{_presetdir}/86-containerd.preset << EOF
enable containerd.service
EOF
# Docker expects stuff to be named its way...
cd %{buildroot}%{_bindir}
for i in *; do
ln -sf $i docker-$i
done
%files
%doc LICENSE.* MAINTAINERS NOTICE README.md
%{_bindir}/*
%{_presetdir}/86-containerd.preset
%{_unitdir}/containerd.service