]> git.pld-linux.org Git - packages/docker-ce.git/blame - docker-ce.spec
up to 17.06.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
d83187b3
ER
12# v1.0.0-rc2-391-g2d41c047
13%define runc_commit 2d41c04
14# v0.2.8-38-gcfb82a87
15%define containerd_commit cfb82a8
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/
d83187b3
ER
23Version: 17.06.0
24Release: 0.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
29# Source0-md5: 1eb7761b77dc328e6b0a9c481bcd7514
7c769496 30Source1: https://github.com/docker/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
d83187b3 31# Source1-md5: b1b8584e23f1e0dbe5e1bd2e623262df
36f21c65 32Source2: https://github.com/docker/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz
d83187b3 33# Source2-md5: a07b23b82974bba8fb8dfa69234cbd6a
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
ER
149%setup -q -n docker-ce-%{version}-ce%{?subver} -a1 -a2 -a3 -a4
150#mv runc-%{runc_commit}* runc
151#mv containerd-%{containerd_commit}* containerd
152#mv libnetwork-%{libnetwork_commit}* libnetwork
b96d9f58 153mv tini-* tini
d83187b3 154%patch0 -p1 -d components/engine
36f21c65 155
d83187b3
ER
156#install -d vendor/src/github.com/docker
157#ln -s $(pwd) vendor/src/github.com/docker/docker
158#ln -s $(pwd)/containerd containerd/vendor/src/github.com/docker/containerd
159#ln -s $(pwd)/libnetwork vendor/src/github.com/docker/libnetwork
160
161#ln -s ../../../../cli components/engine/vendor/github.com/docker
162#ln -s cli/vendor/github.com/docker/docker components/engine/vendor/github.com/docker
163#ln -s ../../.. components/engine/vendor/github.com/docker/docker
b877f7b7 164
692548c0 165%build
d83187b3 166v=$(awk -F= '/^RUNC_COMMIT/ {print $2}' components/engine/hack/dockerfile/binaries-commits)
36f21c65 167echo "$v" | grep "^%{runc_commit}"
d83187b3 168v=$(awk -F= '/^CONTAINERD_COMMIT/ {print $2}' components/engine/hack/dockerfile/binaries-commits)
36f21c65 169echo "$v" | grep "^%{containerd_commit}"
d83187b3 170v=$(awk -F= '/^LIBNETWORK_COMMIT/ {print $2}' components/engine/hack/dockerfile/binaries-commits)
a75f03e6 171echo "$v" | grep "^%{libnetwork_commit}"
36f21c65 172
d83187b3
ER
173#export GOPATH=$(pwd)/vendor:$(pwd)/containerd/vendor
174#export GOPATH=$(pwd)/components/engine
175export AUTO_GOPATH=1
176#export GOROOT=$(pwd)/components/engine
e4252f76 177export DOCKER_GITCOMMIT="pld/%{version}"
36f21c65 178# build docker-runc
d83187b3 179#%{__make} -C runc
36f21c65
ER
180
181# build docker-containerd
d83187b3 182#%{__make} -C containerd
36f21c65 183
a75f03e6 184# build docker-proxy
d83187b3
ER
185#go build -ldflags="-linkmode=external" \
186# -o docker-proxy \
187# github.com/docker/libnetwork/cmd/proxy
a75f03e6 188
b96d9f58
ER
189# build docker-init
190cd tini
7397034b 191cmake .
b96d9f58
ER
192%{__make}
193cd ..
194
d83187b3 195cd components/engine
90544b12 196bash -x hack/make.sh dynbinary
b317146a
ER
197%if %{with doc}
198man/md2man-all.sh
199%endif
a73bca1d 200
b877f7b7
ER
201%install
202rm -rf $RPM_BUILD_ROOT
36f21c65 203install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/init.d,sysconfig},%{systemdunitdir}} \
a990be6d 204 $RPM_BUILD_ROOT%{_libexecdir} \
7b3be108 205 $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes}
e4252f76 206
d83187b3
ER
207install -p components/engine/bundles/latest/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
208install -p components/engine/bundles/latest/dynbinary-client/docker $RPM_BUILD_ROOT%{_bindir}/docker
36f21c65
ER
209
210# install docker-runc
211install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc
212
213# install docker-containerd
214install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/docker-containerd
215install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-shim
6a5abe01 216install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-ctr
36f21c65 217
a75f03e6
ER
218# install docker-proxy
219install -p docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
220
b96d9f58
ER
221# install docker-init
222install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init
223
d83187b3
ER
224cp -p components/engine/contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir}
225cp -p components/engine/contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir}
5fcaa458 226install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker
b96d9f58 227install -p %{SOURCE5} $RPM_BUILD_ROOT%{_libexecdir}/dockerd
5fcaa458 228cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker
b877f7b7 229
e4252f76
ER
230# install udev rules
231install -d $RPM_BUILD_ROOT/lib/udev/rules.d
232cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d
233
a6da47b4 234# bash and zsh completion
8c352669 235install -d $RPM_BUILD_ROOT%{bash_compdir}
47009a45 236cp -p contrib/completion/bash/docker $RPM_BUILD_ROOT%{bash_compdir}/docker
a6da47b4
JK
237install -d $RPM_BUILD_ROOT%{zsh_compdir}
238cp -p contrib/completion/zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
8c352669 239
f891ae41 240# vim syntax
c590f8e8 241%if %{with vim}
f891ae41 242install -d $RPM_BUILD_ROOT%{_vimdatadir}
7db50491 243cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir}
f891ae41 244%{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md}
c590f8e8 245%endif
f891ae41 246
d88043a2
ER
247%pre
248%groupadd -g 296 docker
249
345101bd 250%post
8716e3f7
ER
251/sbin/chkconfig --add docker
252%service -n docker restart
253%systemd_post docker.service
345101bd
ER
254
255%preun
256if [ "$1" = "0" ]; then
8716e3f7
ER
257 %service -q docker stop
258 /sbin/chkconfig --del docker
345101bd 259fi
8716e3f7 260%systemd_preun docker.service
345101bd 261
d88043a2
ER
262%postun
263if [ "$1" = "0" ]; then
264 %groupremove docker
265fi
2e523ef0 266%systemd_reload
d88043a2 267
eb841086
ER
268%triggerun -- docker < 17.0
269# Prevent preun from docker from working
270chmod a-x /etc/rc.d/init.d/docker
271
272%triggerpostun -- docker < 17.0
273# Restore what triggerun removed
274chmod 754 /etc/rc.d/init.d/docker
275# reinstall docker init.d links, which could be different
276/sbin/chkconfig --del docker
277/sbin/chkconfig --add docker
278
b877f7b7
ER
279%clean
280rm -rf $RPM_BUILD_ROOT
281
282%files
283%defattr(644,root,root,755)
f4565fa4 284%doc README.md CHANGELOG.md CONTRIBUTING.md LICENSE AUTHORS NOTICE MAINTAINERS
62b620a7 285%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/docker
47009a45 286%attr(754,root,root) /etc/rc.d/init.d/docker
9c77b76c 287%attr(755,root,root) %{_bindir}/docker
36f21c65 288%attr(755,root,root) %{_sbindir}/docker-containerd
6a5abe01 289%attr(755,root,root) %{_sbindir}/docker-containerd-ctr
36f21c65 290%attr(755,root,root) %{_sbindir}/docker-containerd-shim
b96d9f58 291%attr(755,root,root) %{_sbindir}/docker-init
4467217c
ER
292%attr(755,root,root) %{_sbindir}/docker-proxy
293%attr(755,root,root) %{_sbindir}/docker-runc
294%attr(755,root,root) %{_sbindir}/dockerd
29baba5b 295%attr(755,root,root) %{_libexecdir}/dockerd
62b620a7 296%{systemdunitdir}/docker.service
5fcaa458 297%{systemdunitdir}/docker.socket
e4252f76 298/lib/udev/rules.d/80-docker.rules
36f21c65 299
af991618
ER
300%dir %attr(700,root,root) /var/lib/docker
301%dir %attr(700,root,root) /var/lib/docker/containers
b73b275e 302%dir %attr(700,root,root) /var/lib/docker/execdriver
af991618 303%dir %attr(700,root,root) /var/lib/docker/graph
841676f2 304%dir %attr(700,root,root) /var/lib/docker/image
b73b275e 305%dir %attr(700,root,root) /var/lib/docker/init
841676f2 306%dir %attr(700,root,root) /var/lib/docker/network
7b3be108 307%dir %attr(700,root,root) /var/lib/docker/swarm
b73b275e
ER
308%dir %attr(700,root,root) /var/lib/docker/tmp
309%dir %attr(700,root,root) /var/lib/docker/trust
310%dir %attr(700,root,root) /var/lib/docker/vfs
af991618 311%dir %attr(700,root,root) /var/lib/docker/volumes
8c352669 312
f891ae41 313%files -n bash-completion-%{name}
8c352669 314%defattr(644,root,root,755)
8c352669 315%{bash_compdir}/docker
f891ae41 316
a6da47b4
JK
317%files -n zsh-completion-%{name}
318%defattr(644,root,root,755)
319%{zsh_compdir}/_docker
320
c590f8e8 321%if %{with vim}
f891ae41
ER
322%files -n vim-syntax-%{name}
323%defattr(644,root,root,755)
7db50491 324%doc contrib/syntax/vim/{README.md,LICENSE}
f891ae41
ER
325%{_vimdatadir}/doc/dockerfile.txt
326%{_vimdatadir}/ftdetect/dockerfile.vim
327%{_vimdatadir}/syntax/dockerfile.vim
c590f8e8 328%endif
This page took 0.110252 seconds and 4 git commands to generate.