]> git.pld-linux.org Git - packages/docker-ce.git/blame - docker-ce.spec
up to 17.06.2
[packages/docker-ce.git] / docker-ce.spec
CommitLineData
a73bca1d
ER
1#
2# Conditional build:
3%bcond_with tests # build without tests
de893b83 4%bcond_with vim # build vim syntax package (bundled in vim 7.4.979-2)
b317146a 5%bcond_with doc # build manual pages
b2c07037 6
8eac6649
ER
7# TODO: drop P docker when docker-compose updated to use docker(engine) dep
8
be6486fd
ER
9# NOTES
10# https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies
11
cd3b43db
ER
12# v1.0.0-rc2-394-g810190ce
13%define runc_commit 810190c
14# v0.2.8-45-g6e23458c
15%define containerd_commit 6e23458
d83187b3
ER
16# v0.8.0-dev.2-624-g7b2b1feb
17%define libnetwork_commit 7b2b1fe
18#define subver -rc1
8716e3f7
ER
19Summary: Docker CE: the open-source application container engine
20Name: docker-ce
21# Using Docker-CE, Stay on Stable channel
22# https://docs.docker.com/engine/installation/
7a8d5be5 23Version: 17.06.2
cd3b43db 24Release: 1
b877f7b7
ER
25License: Apache v2.0
26Group: Applications/System
d83187b3
ER
27# https://github.com/docker/docker-ce/releases
28Source0: https://github.com/docker/docker-ce/archive/v%{version}-ce/%{name}-%{version}-ce.tar.gz
7a8d5be5 29# Source0-md5: 45f92308bd542b6a8344c490d0383b64
7c769496 30Source1: https://github.com/docker/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
cd3b43db 31# Source1-md5: d2d5d628662bfbe11fd0d1bb7eb1c63c
36f21c65 32Source2: https://github.com/docker/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz
cd3b43db 33# Source2-md5: d1d057d831d46021cefee3a3c52c6c65
a75f03e6 34Source3: https://github.com/docker/libnetwork/archive/%{libnetwork_commit}/libnetwork-%{libnetwork_commit}.tar.gz
d83187b3 35# Source3-md5: 9360e38c43e862e42c128db1852ac5bb
b96d9f58
ER
36Source4: https://github.com/krallin/tini/archive/v0.13.0/tini-0.13.0.tar.gz
37# Source4-md5: c29541112a242c53c82bb6b1213f288f
8716e3f7
ER
38Source5: dockerd.sh
39Source7: docker.init
40Source8: docker.sysconfig
b6f967da 41Patch0: systemd.patch
8716e3f7 42URL: https://www.docker.com/community-edition/
be6486fd 43BuildRequires: btrfs-progs-devel >= 3.16.1
6dee0436 44BuildRequires: cmake
be6486fd 45BuildRequires: device-mapper-devel >= 2.02.89
d9a3d699 46BuildRequires: golang >= 1.6
be6486fd 47BuildRequires: libseccomp-devel >= 2.2.1
0be68701 48BuildRequires: rpmbuild(macros) >= 1.644
678a84bd 49BuildRequires: sqlite3-devel >= 3.7.9
d88043a2
ER
50Requires(post,preun): /sbin/chkconfig
51Requires(postun): /usr/sbin/groupdel
52Requires(pre): /usr/bin/getgid
53Requires(pre): /usr/sbin/groupadd
27e7cc0f 54Requires: ca-certificates
2e42e913 55Requires: iproute2 >= 3.5
b5920dfc 56Requires: iptables
345101bd 57Requires: rc-scripts >= 0.4.0.10
0be68701 58Requires: systemd-units >= 38
2e42e913 59Requires: tar >= 1:1.26
2015cb19 60Requires: uname(release) >= 3.8
db150373 61Requires: xz
65777843 62Suggests: docker-credential-helpers
2e42e913 63Suggests: git-core >= 1.7
46a6d8ab 64Suggests: libcgroup
2e42e913 65Suggests: xz >= 1:4.9
8eac6649
ER
66Provides: docker = %{version}
67Provides: docker(engine) = %{version}
d88043a2 68Provides: group(docker)
23955a7a 69Obsoletes: docker < 17.0
47009a45 70Obsoletes: lxc-docker < 1.1.1
d2670441 71# only runs on x64 hosts for now:
f4565fa4
ER
72# https://github.com/docker/docker/issues/136
73# https://github.com/docker/docker/issues/611
345101bd 74ExclusiveArch: %{x8664}
b877f7b7
ER
75BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
8c352669 77%define bash_compdir %{_datadir}/bash-completion/completions
a6da47b4 78%define zsh_compdir %{_datadir}/zsh/site-functions
f891ae41 79%define _vimdatadir %{_datadir}/vim
a990be6d 80%define _libexecdir %{_prefix}/lib
8c352669 81
434d66d3
ER
82# binary stripped or something
83%define _enable_debug_packages 0
84
b877f7b7 85%description
f4565fa4
ER
86Docker is an open source project to pack, ship and run any application
87as a lightweight container
88
89Docker containers are both hardware-agnostic and platform-agnostic.
90This means that they can run anywhere, from your laptop to the largest
91EC2 compute instance and everything in between - and they don't
92require that you use a particular language, framework or packaging
93system. That makes them great building blocks for deploying and
94scaling web apps, databases and backend services without depending on
95a particular stack or provider.
96
97Docker is an open-source implementation of the deployment engine which
98powers dotCloud, a popular Platform-as-a-Service. It benefits directly
99from the experience accumulated over several years of large-scale
100operation and support of hundreds of thousands of applications and
101databases.
b877f7b7 102
f891ae41 103%package -n bash-completion-%{name}
8c352669
ER
104Summary: bash-completion for Docker
105Summary(pl.UTF-8): bashowe uzupełnianie nazw dla Dockera
106Group: Applications/Shells
107Requires: %{name}
108Requires: bash-completion >= 2.0
47009a45 109Obsoletes: bash-completion-lxc-docker < 1.1.1
8c352669
ER
110%if "%{_rpmversion}" >= "5"
111BuildArch: noarch
112%endif
113
47009a45 114%description -n bash-completion-%{name}
8c352669
ER
115This package provides bash-completion for Docker.
116
47009a45 117%description -n bash-completion-%{name} -l pl.UTF-8
8c352669
ER
118Pakiet ten dostarcza bashowe uzupełnianie nazw dla Dockera.
119
a6da47b4
JK
120%package -n zsh-completion-%{name}
121Summary: zsh completion for Docker
122Summary(pl.UTF-8): Uzupełnianie parametrów w zsh dla poleceń Dockera
123Group: Applications/Shells
124Requires: %{name}
125%if "%{_rpmversion}" >= "5"
126BuildArch: noarch
127%endif
128
129%description -n zsh-completion-%{name}
130This package provides zsh completion for Docker.
131
132%description -n zsh-completion-%{name} -l pl.UTF-8
133Pakiet ten dostarcza uzupełnianie w zsh dla poleceń Dockera.
134
f891ae41
ER
135%package -n vim-syntax-%{name}
136Summary: Vim syntax: Docker
137Group: Applications/Editors/Vim
138Requires: %{name} = %{version}-%{release}
139Requires: vim-rt >= 4:7.2.170
47009a45 140Obsoletes: vim-syntax-lxc-docker < 1.1.1
f891ae41
ER
141%if "%{_rpmversion}" >= "5"
142BuildArch: noarch
143%endif
144
145%description -n vim-syntax-%{name}
146This plugin provides syntax highlighting in Dockerfile.
147
b877f7b7 148%prep
d83187b3 149%setup -q -n docker-ce-%{version}-ce%{?subver} -a1 -a2 -a3 -a4
3fe85ad0
ER
150
151mv runc-%{runc_commit}* runc
152mv runc/vendor runc/src
153ln -s ../../.. runc/src/github.com/opencontainers/runc
154
155mv containerd-%{containerd_commit}* containerd
156ln -s ../../../.. containerd/vendor/src/github.com/containerd/containerd
157
158mv libnetwork-%{libnetwork_commit}* libnetwork
159install -d libnetwork/gopath
160mv libnetwork/vendor libnetwork/gopath/src
161ln -s ../../../.. libnetwork/gopath/src/github.com/docker/libnetwork
162
b96d9f58 163mv tini-* tini
36f21c65 164
f47d9fe1
ER
165install -d components/cli/.gopath/src/github.com/docker
166ln -s ../../../.. components/cli/.gopath/src/github.com/docker/cli
d83187b3 167
f47d9fe1 168%patch0 -p1 -d components/engine
b877f7b7 169
692548c0 170%build
f47d9fe1
ER
171f=components/engine/hack/dockerfile/binaries-commits
172v=$(awk -F= '/^RUNC_COMMIT/ {print $2}' $f)
36f21c65 173echo "$v" | grep "^%{runc_commit}"
f47d9fe1 174v=$(awk -F= '/^CONTAINERD_COMMIT/ {print $2}' $f)
36f21c65 175echo "$v" | grep "^%{containerd_commit}"
f47d9fe1 176v=$(awk -F= '/^LIBNETWORK_COMMIT/ {print $2}' $f)
a75f03e6 177echo "$v" | grep "^%{libnetwork_commit}"
36f21c65 178
b3c6f3dc
ER
179export VERSION=%{version}
180export GITCOMMIT="pld/%{version}" # for cli
181export DOCKER_GITCOMMIT="pld/%{version}" # for engine
182
36f21c65 183# build docker-runc
cd3b43db 184sed -i -e 's,shell git,shell false,' runc/Makefile
3fe85ad0 185GOPATH=$(pwd)/runc \
cd3b43db
ER
186%{__make} -C runc \
187 COMMIT=%{runc_commit}
3fe85ad0 188./runc/runc -v
36f21c65
ER
189
190# build docker-containerd
3fe85ad0
ER
191GOPATH=$(pwd)/containerd/vendor \
192%{__make} -C containerd
36f21c65 193
a75f03e6 194# build docker-proxy
3fe85ad0
ER
195cd libnetwork
196GOPATH=$(pwd)/gopath \
197go build -ldflags="-linkmode=external" \
198 -o docker-proxy \
199 github.com/docker/libnetwork/cmd/proxy
200cd ..
a75f03e6 201
b96d9f58
ER
202# build docker-init
203cd tini
7397034b 204cmake .
b96d9f58 205%{__make}
b96d9f58 206
3fe85ad0 207# docker cli
b3c6f3dc 208cd ../components/cli
b3c6f3dc 209GOPATH=$(pwd)/.gopath \
f47d9fe1 210%{__make} dynbinary
3fe85ad0 211./build/docker -v
b3c6f3dc
ER
212
213cd ../engine
3fe85ad0 214AUTO_GOPATH=1 \
90544b12 215bash -x hack/make.sh dynbinary
3fe85ad0 216./bundles/latest/dynbinary-daemon/dockerd -v
b317146a
ER
217%if %{with doc}
218man/md2man-all.sh
219%endif
a73bca1d 220
b877f7b7
ER
221%install
222rm -rf $RPM_BUILD_ROOT
36f21c65 223install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/init.d,sysconfig},%{systemdunitdir}} \
a990be6d 224 $RPM_BUILD_ROOT%{_libexecdir} \
7b3be108 225 $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes}
e4252f76 226
3fe85ad0 227# docker-cli
b3c6f3dc 228install -p components/cli/build/docker $RPM_BUILD_ROOT%{_bindir}/docker
36f21c65 229
3fe85ad0 230# docker-runc
36f21c65
ER
231install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc
232
3fe85ad0 233# docker-containerd
36f21c65
ER
234install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/docker-containerd
235install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-shim
6a5abe01 236install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-ctr
36f21c65 237
3fe85ad0
ER
238# docker-proxy
239install -p libnetwork/docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
a75f03e6 240
3fe85ad0 241# docker-init
b96d9f58
ER
242install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init
243
3fe85ad0
ER
244# dockerd
245cd components/engine
246install -p bundles/latest/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
247cp -p contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir}
248cp -p contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir}
5fcaa458 249install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker
b96d9f58 250install -p %{SOURCE5} $RPM_BUILD_ROOT%{_libexecdir}/dockerd
5fcaa458 251cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker
b877f7b7 252
e4252f76
ER
253# install udev rules
254install -d $RPM_BUILD_ROOT/lib/udev/rules.d
255cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d
256
f891ae41 257# vim syntax
c590f8e8 258%if %{with vim}
f891ae41 259install -d $RPM_BUILD_ROOT%{_vimdatadir}
7db50491 260cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir}
f891ae41 261%{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md}
c590f8e8 262%endif
f891ae41 263
b9423c2b
ER
264# bash and zsh completion
265cd ../cli/contrib/completion
266install -d $RPM_BUILD_ROOT%{bash_compdir}
267cp -p bash/docker $RPM_BUILD_ROOT%{bash_compdir}
268install -d $RPM_BUILD_ROOT%{zsh_compdir}
269cp -p zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
270
d88043a2
ER
271%pre
272%groupadd -g 296 docker
273
345101bd 274%post
8716e3f7
ER
275/sbin/chkconfig --add docker
276%service -n docker restart
277%systemd_post docker.service
345101bd
ER
278
279%preun
280if [ "$1" = "0" ]; then
8716e3f7
ER
281 %service -q docker stop
282 /sbin/chkconfig --del docker
345101bd 283fi
8716e3f7 284%systemd_preun docker.service
345101bd 285
d88043a2
ER
286%postun
287if [ "$1" = "0" ]; then
288 %groupremove docker
289fi
2e523ef0 290%systemd_reload
d88043a2 291
eb841086
ER
292%triggerun -- docker < 17.0
293# Prevent preun from docker from working
294chmod a-x /etc/rc.d/init.d/docker
295
296%triggerpostun -- docker < 17.0
297# Restore what triggerun removed
298chmod 754 /etc/rc.d/init.d/docker
299# reinstall docker init.d links, which could be different
300/sbin/chkconfig --del docker
301/sbin/chkconfig --add docker
302
b877f7b7
ER
303%clean
304rm -rf $RPM_BUILD_ROOT
305
306%files
307%defattr(644,root,root,755)
3fe85ad0 308%doc components/engine/{README.md,CHANGELOG.md,CONTRIBUTING.md,LICENSE,AUTHORS,NOTICE,MAINTAINERS}
62b620a7 309%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/docker
47009a45 310%attr(754,root,root) /etc/rc.d/init.d/docker
9c77b76c 311%attr(755,root,root) %{_bindir}/docker
36f21c65 312%attr(755,root,root) %{_sbindir}/docker-containerd
6a5abe01 313%attr(755,root,root) %{_sbindir}/docker-containerd-ctr
36f21c65 314%attr(755,root,root) %{_sbindir}/docker-containerd-shim
b96d9f58 315%attr(755,root,root) %{_sbindir}/docker-init
4467217c
ER
316%attr(755,root,root) %{_sbindir}/docker-proxy
317%attr(755,root,root) %{_sbindir}/docker-runc
318%attr(755,root,root) %{_sbindir}/dockerd
29baba5b 319%attr(755,root,root) %{_libexecdir}/dockerd
62b620a7 320%{systemdunitdir}/docker.service
5fcaa458 321%{systemdunitdir}/docker.socket
e4252f76 322/lib/udev/rules.d/80-docker.rules
36f21c65 323
af991618
ER
324%dir %attr(700,root,root) /var/lib/docker
325%dir %attr(700,root,root) /var/lib/docker/containers
b73b275e 326%dir %attr(700,root,root) /var/lib/docker/execdriver
af991618 327%dir %attr(700,root,root) /var/lib/docker/graph
841676f2 328%dir %attr(700,root,root) /var/lib/docker/image
b73b275e 329%dir %attr(700,root,root) /var/lib/docker/init
841676f2 330%dir %attr(700,root,root) /var/lib/docker/network
7b3be108 331%dir %attr(700,root,root) /var/lib/docker/swarm
b73b275e
ER
332%dir %attr(700,root,root) /var/lib/docker/tmp
333%dir %attr(700,root,root) /var/lib/docker/trust
334%dir %attr(700,root,root) /var/lib/docker/vfs
af991618 335%dir %attr(700,root,root) /var/lib/docker/volumes
8c352669 336
f891ae41 337%files -n bash-completion-%{name}
8c352669 338%defattr(644,root,root,755)
8c352669 339%{bash_compdir}/docker
f891ae41 340
a6da47b4
JK
341%files -n zsh-completion-%{name}
342%defattr(644,root,root,755)
343%{zsh_compdir}/_docker
344
c590f8e8 345%if %{with vim}
f891ae41
ER
346%files -n vim-syntax-%{name}
347%defattr(644,root,root,755)
3fe85ad0 348%doc components/engine/contrib/syntax/vim/{README.md,LICENSE}
f891ae41
ER
349%{_vimdatadir}/doc/dockerfile.txt
350%{_vimdatadir}/ftdetect/dockerfile.vim
351%{_vimdatadir}/syntax/dockerfile.vim
c590f8e8 352%endif
This page took 0.110748 seconds and 4 git commands to generate.