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