]> git.pld-linux.org Git - packages/docker-ce.git/blobdiff - docker-ce.spec
up to 18.09.4
[packages/docker-ce.git] / docker-ce.spec
index d15c185692486a5f7842c0f948a6061c93f8ac18..445080db4dac56272eadf498d5e4e0d3aa6d7962 100644 (file)
@@ -4,35 +4,39 @@
 %bcond_with    vim                     # build vim syntax package (bundled in vim 7.4.979-2)
 %bcond_with    doc                     # build manual pages
 
+# 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-136-g54296cf4
-%define        runc_commit 54296cf
-# v0.2.6
-%define        containerd_commit 4ab9917
-# v0.8.0-dev.2-464-g0f53435
-%define        libnetwork_commit 0f53435
-%define        subver -rc1
+# - 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.03.2
-Release:       0.1
+Version:       18.09.4
+Release:       1
 License:       Apache v2.0
 Group:         Applications/System
-# https://github.com/docker/docker/releases
-Source0:       https://github.com/docker/docker/archive/v%{version}-ce%{subver}/%{name}-%{version}-ce%{subver}.tar.gz
-# Source0-md5: 4434d6891814a02f1e7f3879fa85cc65
-Source1:       https://github.com/docker/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
-# Source1-md5: c4eff71ea7da80d25f7cece171683a03
-Source2:       https://github.com/docker/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz
-# Source2-md5: 37dae1d17f530c2c7f7a35d3bf0977a4
+# 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}/%{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: 06c979a4703baa51edcd693bccb61395
 Source3:       https://github.com/docker/libnetwork/archive/%{libnetwork_commit}/libnetwork-%{libnetwork_commit}.tar.gz
-# Source3-md5: 7cfbfe76355aae3577c77a6a4b2c92db
-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
@@ -41,10 +45,11 @@ URL:                https://www.docker.com/community-edition/
 BuildRequires: btrfs-progs-devel >= 3.16.1
 BuildRequires: cmake
 BuildRequires: device-mapper-devel >= 2.02.89
-BuildRequires: golang >= 1.6
-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
 Requires(post,preun):  /sbin/chkconfig
 Requires(postun):      /usr/sbin/groupdel
 Requires(pre): /usr/bin/getgid
@@ -61,8 +66,11 @@ Suggests:    docker-credential-helpers
 Suggests:      git-core >= 1.7
 Suggests:      libcgroup
 Suggests:      xz >= 1:4.9
+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
@@ -142,46 +150,71 @@ BuildArch:        noarch
 This plugin provides syntax highlighting in Dockerfile.
 
 %prep
-%setup -q -n moby-%{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
+ln -s ../../.. runc/src/github.com/opencontainers/runc
+
 mv containerd-%{containerd_commit}* containerd
+mv containerd/vendor containerd/src
+ln -s ../../.. containerd/src/github.com/containerd/containerd
+
 mv libnetwork-%{libnetwork_commit}* libnetwork
+install -d libnetwork/gopath
+mv libnetwork/vendor libnetwork/gopath/src
+ln -s ../../../.. libnetwork/gopath/src/github.com/docker/libnetwork
+
 mv tini-* tini
-%patch0 -p1
 
-install -d vendor/src/github.com/docker
-ln -s $(pwd) vendor/src/github.com/docker/docker
-ln -s $(pwd)/containerd containerd/vendor/src/github.com/docker/containerd
-ln -s $(pwd)/libnetwork vendor/src/github.com/docker/libnetwork
+install -d components/cli/.gopath/src/github.com/docker
+ln -s ../../../.. components/cli/.gopath/src/github.com/docker/cli
+
+%patch0 -p1 -d components/engine
 
 %build
-v=$(awk -F= '/^RUNC_COMMIT/ {print $2}' hack/dockerfile/binaries-commits)
-echo "$v" | grep "^%{runc_commit}"
-v=$(awk -F= '/^CONTAINERD_COMMIT/ {print $2}' hack/dockerfile/binaries-commits)
-echo "$v" | grep "^%{containerd_commit}"
-v=$(awk -F= '/^LIBNETWORK_COMMIT/ {print $2}' hack/dockerfile/binaries-commits)
-echo "$v" | grep "^%{libnetwork_commit}"
+grep -rhE "=%{runc_commit}|=%{containerd_commit}|=%{libnetwork_commit}" $(pwd)/components/engine/hack/dockerfile/install/
 
-export GOPATH=$(pwd)/vendor:$(pwd)/containerd/vendor
-export DOCKER_GITCOMMIT="pld/%{version}"
-# build docker-runc
-%{__make} -C runc
+export VERSION=%{version}-ce # for `docker version`
+export GITCOMMIT="PLD-Linux/%{version}" # for cli
+export DOCKER_GITCOMMIT="PLD-Linux/%{version}" # for engine
 
-# build docker-containerd
-%{__make} -C containerd
+# 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 containerd
+GOPATH=$(pwd)/containerd \
+%{__make} -C containerd \
+       GIT_COMMIT=$CONTAINERD_COMMIT
 
 # build docker-proxy
+cd libnetwork
+GOPATH=$(pwd)/gopath \
 go build -ldflags="-linkmode=external" \
        -o docker-proxy \
        github.com/docker/libnetwork/cmd/proxy
+cd ..
 
 # build docker-init
 cd tini
 cmake .
 %{__make}
-cd ..
 
+# docker cli
+cd ../components/cli
+GOPATH=$(pwd)/.gopath \
+DISABLE_WARN_OUTSIDE_CONTAINER=1 \
+%{__make} dynbinary
+./build/docker -v
+
+cd ../engine
+AUTO_GOPATH=1 \
 bash -x hack/make.sh dynbinary
+./bundles/latest/dynbinary-daemon/dockerd -v
 %if %{with doc}
 man/md2man-all.sh
 %endif
@@ -192,23 +225,26 @@ install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/ini
        $RPM_BUILD_ROOT%{_libexecdir} \
        $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes}
 
-install -p bundles/latest/dynbinary-client/docker $RPM_BUILD_ROOT%{_bindir}/docker
-install -p bundles/latest/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
+# docker-cli
+install -p components/cli/build/docker $RPM_BUILD_ROOT%{_bindir}/docker
 
-# install docker-runc
-install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc
+# runc
+install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/runc
 
-# install 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
 
-# install docker-proxy
-install -p docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
+# docker-proxy
+install -p libnetwork/docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
 
-# install docker-init
+# docker-init
 install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init
 
+# dockerd
+cd components/engine
+install -p bundles/latest/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
 cp -p contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir}
 cp -p contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir}
 install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker
@@ -219,12 +255,6 @@ cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker
 install -d $RPM_BUILD_ROOT/lib/udev/rules.d
 cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d
 
-# bash and zsh completion
-install -d $RPM_BUILD_ROOT%{bash_compdir}
-cp -p contrib/completion/bash/docker $RPM_BUILD_ROOT%{bash_compdir}/docker
-install -d $RPM_BUILD_ROOT%{zsh_compdir}
-cp -p contrib/completion/zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
-
 # vim syntax
 %if %{with vim}
 install -d $RPM_BUILD_ROOT%{_vimdatadir}
@@ -232,6 +262,13 @@ cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir}
 %{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md}
 %endif
 
+# bash and zsh completion
+cd ../cli/contrib/completion
+install -d $RPM_BUILD_ROOT%{bash_compdir}
+cp -p bash/docker $RPM_BUILD_ROOT%{bash_compdir}
+install -d $RPM_BUILD_ROOT%{zsh_compdir}
+cp -p zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
+
 %pre
 %groupadd -g 296 docker
 
@@ -253,21 +290,32 @@ if [ "$1" = "0" ]; then
 fi
 %systemd_reload
 
+%triggerun -- docker < 17.0
+# Prevent preun from docker from working
+chmod a-x /etc/rc.d/init.d/docker
+
+%triggerpostun -- docker < 17.0
+# Restore what triggerun removed
+chmod 754 /etc/rc.d/init.d/docker
+# reinstall docker init.d links, which could be different
+/sbin/chkconfig --del docker
+/sbin/chkconfig --add docker
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %files
 %defattr(644,root,root,755)
-%doc README.md CHANGELOG.md CONTRIBUTING.md LICENSE AUTHORS NOTICE MAINTAINERS
+%doc components/engine/{README.md,CHANGELOG.md,CONTRIBUTING.md,LICENSE,AUTHORS,NOTICE,MAINTAINERS}
 %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
@@ -298,7 +346,7 @@ rm -rf $RPM_BUILD_ROOT
 %if %{with vim}
 %files -n vim-syntax-%{name}
 %defattr(644,root,root,755)
-%doc contrib/syntax/vim/{README.md,LICENSE}
+%doc components/engine/contrib/syntax/vim/{README.md,LICENSE}
 %{_vimdatadir}/doc/dockerfile.txt
 %{_vimdatadir}/ftdetect/dockerfile.vim
 %{_vimdatadir}/syntax/dockerfile.vim
This page took 0.060034 seconds and 4 git commands to generate.