# TODO: drop P docker when docker-compose updated to use docker(engine) dep
# NOTES
-# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
-
-# v1.0.0-rc2-528-g3f2f8b84
-%define runc_commit b2567b3
-# v0.2.9-27-g06b9cb35
-%define containerd_commit 89623f2
-# v0.8.0-dev.2-624-g7b2b1feb
-%define libnetwork_commit 7b2b1fe
+# - https://github.com/docker/docker-ce/releases
+# - https://github.com/moby/moby/blob/master/project/PACKAGERS.md#build-dependencies
+
+# v1.0.0-rc6
+%define runc_commit 2b18fe1
+# v1.2.5
+%define containerd_commit bb71b10
+# v0.8.0-dev.2-1075-g1b91bc94
+%define libnetwork_commit 4725f21
#define subver -rc2
Summary: Docker CE: the open-source application container engine
Name: docker-ce
# Using Docker-CE, Stay on Stable channel
# https://docs.docker.com/engine/installation/
-Version: 17.12.0
+Version: 18.09.4
Release: 1
License: Apache v2.0
Group: Applications/System
# https://github.com/docker/docker-ce/releases
#Source0: https://github.com/docker/docker-ce/archive/v%{version}-ce%{subver}/%{name}-%{version}-ce%{subver}.tar.gz
-Source0: https://github.com/docker/docker-ce/archive/v%{version}-ce/%{name}-%{version}-ce.tar.gz
-# Source0-md5: 545b780b4cf5bb1c83c5615d7153e9c7
-Source1: https://github.com/docker/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
-# Source1-md5: 1a3088f614219774676fe9416f220e36
+Source0: https://github.com/docker/docker-ce/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5: d931008eec55afedd9862854a6bf4d25
+Source1: https://github.com/opencontainers/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
+# Source1-md5: 203f2297b644c356278a3567a5494352
Source2: https://github.com/containerd/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz
-# Source2-md5: ada04f6ed5e19ae9da47a55778cc536b
+# Source2-md5: 06c979a4703baa51edcd693bccb61395
Source3: https://github.com/docker/libnetwork/archive/%{libnetwork_commit}/libnetwork-%{libnetwork_commit}.tar.gz
-# Source3-md5: a9beb9207b291373dc4e376f04056e8a
-Source4: https://github.com/krallin/tini/archive/v0.13.0/tini-0.13.0.tar.gz
-# Source4-md5: c29541112a242c53c82bb6b1213f288f
+# Source3-md5: ee0746cbb7a3e69899c08f8cb297a0ae
+Source4: https://github.com/krallin/tini/archive/v0.18.0/tini-0.18.0.tar.gz
+# Source4-md5: cc3b205a1b83b8e6ed6892fc5e8ef2c3
Source5: dockerd.sh
Source7: docker.init
Source8: docker.sysconfig
BuildRequires: btrfs-progs-devel >= 3.16.1
BuildRequires: cmake
BuildRequires: device-mapper-devel >= 2.02.89
-BuildRequires: golang >= 1.9
-BuildRequires: libseccomp-devel >= 2.2.1
+BuildRequires: golang >= 1.10
+BuildRequires: libseccomp-devel >= 2.3
BuildRequires: rpmbuild(macros) >= 1.644
BuildRequires: sqlite3-devel >= 3.7.9
BuildRequires: xxd
Provides: docker = %{version}
Provides: docker(engine) = %{version}
Provides: group(docker)
-Obsoletes: docker < 17.0
+Requires: libseccomp >= 2.3
+Obsoletes: docker < 18.0
Obsoletes: lxc-docker < 1.1.1
# only runs on x64 hosts for now:
# https://github.com/docker/docker/issues/136
This plugin provides syntax highlighting in Dockerfile.
%prep
-%setup -q -n %{name}-%{version}-ce%{?subver} -a1 -a2 -a3 -a4
+%setup -q -n %{name}-%{version}%{?subver} -a1 -a2 -a3 -a4
mv runc-%{runc_commit}* runc
mv runc/vendor runc/src
%patch0 -p1 -d components/engine
%build
-. components/engine/hack/dockerfile/binaries-commits
-echo "RUNC_COMMIT=$RUNC_COMMIT" | grep "=%{runc_commit}"
-echo "CONTAINERD_COMMIT=$CONTAINERD_COMMIT" | grep "=%{containerd_commit}"
-echo "LIBNETWORK_COMMIT=$LIBNETWORK_COMMIT" | grep "=%{libnetwork_commit}"
+grep -rhE "=%{runc_commit}|=%{containerd_commit}|=%{libnetwork_commit}" $(pwd)/components/engine/hack/dockerfile/install/
-export VERSION=%{version}
+export VERSION=%{version}-ce # for `docker version`
export GITCOMMIT="PLD-Linux/%{version}" # for cli
export DOCKER_GITCOMMIT="PLD-Linux/%{version}" # for engine
-# build docker-runc
+# build runc
sed -i -e 's,shell git,shell false,' runc/Makefile
GOPATH=$(pwd)/runc \
%{__make} -C runc \
COMMIT=$RUNC_COMMIT
./runc/runc -v
-# build docker-containerd
+# build containerd
GOPATH=$(pwd)/containerd \
%{__make} -C containerd \
GIT_COMMIT=$CONTAINERD_COMMIT
# docker-cli
install -p components/cli/build/docker $RPM_BUILD_ROOT%{_bindir}/docker
-# docker-runc
-install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc
+# runc
+install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/runc
-# docker-containerd
-install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/docker-containerd
-install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-shim
-install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-ctr
+# containerd
+install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/containerd
+install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/containerd-shim
+install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/ctr
# docker-proxy
install -p libnetwork/docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/docker
%attr(754,root,root) /etc/rc.d/init.d/docker
%attr(755,root,root) %{_bindir}/docker
-%attr(755,root,root) %{_sbindir}/docker-containerd
-%attr(755,root,root) %{_sbindir}/docker-containerd-ctr
-%attr(755,root,root) %{_sbindir}/docker-containerd-shim
+%attr(755,root,root) %{_sbindir}/containerd
+%attr(755,root,root) %{_sbindir}/ctr
+%attr(755,root,root) %{_sbindir}/containerd-shim
%attr(755,root,root) %{_sbindir}/docker-init
%attr(755,root,root) %{_sbindir}/docker-proxy
-%attr(755,root,root) %{_sbindir}/docker-runc
+%attr(755,root,root) %{_sbindir}/runc
%attr(755,root,root) %{_sbindir}/dockerd
%attr(755,root,root) %{_libexecdir}/dockerd
%{systemdunitdir}/docker.service