--- /dev/null
+%define project_path /src/github.com/docker
+%define runc_path /src/github.com/opencontainers
+%define container_path /src/github.com/containerd
+%define go_version 1.8.3
+%define orig_version %{version}-ce
+
+Name: docker-engine
+Version: 17.06.1
+Release: 0
+Summary: The open-source application container engine
+Group: Tools/Docker
+
+License: ASL 2.0
+Source0: %{name}.tar.gz
+Source1: %{name}.manifest
+Source11: go1.8.3.linux-amd64.tar.gz
+Source12: go1.8.3.linux-armv7.tar.gz
+Source13: docker-ce.tar.bz2
+Source14: containerd.tar.bz2
+Source15: runc.tar.bz2
+
+BuildRequires: git
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+Requires: docker-containerd
+Requires: docker-runc
+
+
+%description
+Docker is an open source project to build, ship and run any application as a
+lightweight container.
+
+Docker containers are both hardware-agnostic and platform-agnostic. This means
+they can run anywhere, from your laptop to the largest EC2 compute instance and
+everything in between - and they don't require you to use a particular
+language, framework or packaging system. That makes them great building blocks
+for deploying and scaling web apps, databases, and backend services without
+depending on a particular stack or provider.
+
+
+
+%prep
+%setup -q
+
+%ifarch armv7l
+cp %{SOURCE12} .
+tar -zxf %{SOURCE12}
+rm -f %{_builddir}/%{name}-%{version}/go%{go_version}.linux-armv7.tar.gz
+%endif
+%ifarch x86_64
+cp %{SOURCE11} .
+tar -zxf %{SOURCE11}
+rm -f %{_builddir}/%{name}-%{version}/go%{go_version}.linux-amd64.tar.gz
+%endif
+chmod g-w %_sourcedir/*
+cp %{SOURCE1} ./%{name}.manifest
+cp %{SOURCE13} .
+tar -xvf %{SOURCE13}
+cp %{SOURCE14} .
+tar -xvf %{SOURCE14}
+cp %{SOURCE15} .
+tar -xvf %{SOURCE15}
+
+mkdir -p .%project_path/
+mkdir -p .%runc_path/
+mkdir -p .%project_path/engine
+mkdir -p .%project_path/cli
+mkdir -p .%runc_path/runc
+mkdir -p .%container_path/containerd
+
+cd ext/docker-ce/components/engine
+mv `ls . | grep -v packaging | grep -v src` ../../../..%project_path/engine
+cd ../cli/
+mv `ls . | grep -v packaging | grep -v src` ../../../..%project_path/cli
+cd ../../../containerd/
+mv `ls . | grep -v packaging | grep -v src` ../..%container_path/containerd
+cd ../runc/
+mv `ls . | grep -v packaging | grep -v src` ../..%runc_path/runc
+cd ../../
+
+
+%build
+cd .%project_path/engine
+export GOROOT=%{_builddir}/%{name}-%{version}/go
+export PATH=$PATH:%{_builddir}/%{name}-%{version}/go/bin
+export GOPATH=%{_builddir}/%{name}-%{version}
+export DOCKER_BUILDTAGS='exclude_graphdriver_btrfs exclude_graphdriver_devicemapper'
+
+go env
+echo 'docker daemon'
+export CGO_ENABLED=1
+AUTO_GOPATH=1 ./hack/make.sh dynbinary
+
+echo 'docker cli'
+cd ../cli
+make binary
+
+export BUILDTAGS=no_btrfs
+echo 'containerd build'
+cd ../../containerd/containerd
+make
+
+echo 'runc build'
+cd ../../opencontainers/runc
+make all BUILDTAGS=""
+
+
+%install
+rm -rf %{buildroot}
+# install binary
+install -d $RPM_BUILD_ROOT/%{_bindir}
+install -p -m 755 .%project_path/cli/build/docker-linux-arm $RPM_BUILD_ROOT/%{_bindir}/docker
+install -p -m 755 .%project_path/engine/bundles/%{orig_version}/dynbinary-daemon/dockerd-%{orig_version} $RPM_BUILD_ROOT/%{_bindir}/dockerd
+install -p -m 755 .%runc_path/runc/runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
+install -p -m 755 .%container_path/containerd/bin/containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
+install -p -m 755 .%container_path/containerd/bin/containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
+install -p -m 755 .%container_path/containerd/bin/ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
+
+%files
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+/%{_bindir}/docker
+/%{_bindir}/dockerd
+/%{_bindir}/docker-containerd
+/%{_bindir}/docker-containerd-shim
+/%{_bindir}/docker-containerd-ctr
+/%{_bindir}/docker-runc
+