X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=docker-ce.spec;h=445080db4dac56272eadf498d5e4e0d3aa6d7962;hb=7cb2e38;hp=d15c185692486a5f7842c0f948a6061c93f8ac18;hpb=23955a7a24574bd12c6fce728309037cf1d99d96;p=packages%2Fdocker-ce.git diff --git a/docker-ce.spec b/docker-ce.spec index d15c185..445080d 100644 --- a/docker-ce.spec +++ b/docker-ce.spec @@ -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