]>
Commit | Line | Data |
---|---|---|
1 | # | |
2 | # Conditional build: | |
3 | %bcond_with tests # build without tests | |
4 | %bcond_with vim # build vim syntax package (bundled in vim 7.4.979-2) | |
5 | %bcond_with doc # build manual pages | |
6 | ||
7 | # NOTES | |
8 | # https://github.com/docker/docker/blob/master/project/PACKAGERS.md#build-dependencies | |
9 | ||
10 | # v1.0.0-rc2-132-g2f7393a | |
11 | %define runc_commit 2f7393a | |
12 | # v0.2.3-78-g03e5862 | |
13 | %define containerd_commit 03e5862 | |
14 | # v0.8.0-dev.2-464-g0f53435 | |
15 | %define libnetwork_commit 0f53435 | |
16 | #define subver -rc7 | |
17 | Summary: Docker: the open-source application container engine | |
18 | Name: docker | |
19 | Version: 1.13.0 | |
20 | Release: 1 | |
21 | License: Apache v2.0 | |
22 | Group: Applications/System | |
23 | # https://github.com/docker/docker/releases | |
24 | Source0: https://github.com/docker/docker/archive/v%{version}/%{name}-%{version}.tar.gz | |
25 | # Source0-md5: 23d3875ac67d5b67dd1918c45ba98537 | |
26 | Source1: https://github.com/docker/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz | |
27 | # Source1-md5: ab5b858b721b2fc8b581645eb35e3634 | |
28 | Source2: https://github.com/docker/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz | |
29 | # Source2-md5: 72e9315bde0c17f14d8a2fff8e0d2423 | |
30 | Source3: https://github.com/docker/libnetwork/archive/%{libnetwork_commit}/libnetwork-%{libnetwork_commit}.tar.gz | |
31 | # Source3-md5: 7cfbfe76355aae3577c77a6a4b2c92db | |
32 | Source4: https://github.com/krallin/tini/archive/v0.13.0/tini-0.13.0.tar.gz | |
33 | # Source4-md5: c29541112a242c53c82bb6b1213f288f | |
34 | Source5: %{name}d.sh | |
35 | Source7: %{name}.init | |
36 | Source8: %{name}.sysconfig | |
37 | Patch0: systemd.patch | |
38 | Patch1: init-args.patch | |
39 | URL: http://www.docker.com/ | |
40 | BuildRequires: btrfs-progs-devel >= 3.16.1 | |
41 | BuildRequires: cmake | |
42 | BuildRequires: device-mapper-devel >= 2.02.89 | |
43 | BuildRequires: golang >= 1.6 | |
44 | BuildRequires: libseccomp-devel >= 2.2.1 | |
45 | BuildRequires: rpmbuild(macros) >= 1.644 | |
46 | BuildRequires: sqlite3-devel >= 3.7.9 | |
47 | Requires(post,preun): /sbin/chkconfig | |
48 | Requires(postun): /usr/sbin/groupdel | |
49 | Requires(pre): /usr/bin/getgid | |
50 | Requires(pre): /usr/sbin/groupadd | |
51 | Requires: ca-certificates | |
52 | Requires: iproute2 >= 3.5 | |
53 | Requires: iptables | |
54 | Requires: rc-scripts >= 0.4.0.10 | |
55 | Requires: systemd-units >= 38 | |
56 | Requires: tar >= 1:1.26 | |
57 | Requires: uname(release) >= 3.8 | |
58 | Requires: xz | |
59 | Suggests: docker-credential-helpers | |
60 | Suggests: git-core >= 1.7 | |
61 | Suggests: libcgroup | |
62 | Suggests: xz >= 1:4.9 | |
63 | Provides: group(docker) | |
64 | Obsoletes: lxc-docker < 1.1.1 | |
65 | # only runs on x64 hosts for now: | |
66 | # https://github.com/docker/docker/issues/136 | |
67 | # https://github.com/docker/docker/issues/611 | |
68 | ExclusiveArch: %{x8664} | |
69 | BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) | |
70 | ||
71 | %define bash_compdir %{_datadir}/bash-completion/completions | |
72 | %define zsh_compdir %{_datadir}/zsh/site-functions | |
73 | %define _vimdatadir %{_datadir}/vim | |
74 | %define _libexecdir %{_prefix}/lib | |
75 | ||
76 | # binary stripped or something | |
77 | %define _enable_debug_packages 0 | |
78 | ||
79 | %description | |
80 | Docker is an open source project to pack, ship and run any application | |
81 | as a lightweight container | |
82 | ||
83 | Docker containers are both hardware-agnostic and platform-agnostic. | |
84 | This means that they can run anywhere, from your laptop to the largest | |
85 | EC2 compute instance and everything in between - and they don't | |
86 | require that you use a particular language, framework or packaging | |
87 | system. That makes them great building blocks for deploying and | |
88 | scaling web apps, databases and backend services without depending on | |
89 | a particular stack or provider. | |
90 | ||
91 | Docker is an open-source implementation of the deployment engine which | |
92 | powers dotCloud, a popular Platform-as-a-Service. It benefits directly | |
93 | from the experience accumulated over several years of large-scale | |
94 | operation and support of hundreds of thousands of applications and | |
95 | databases. | |
96 | ||
97 | %package -n bash-completion-%{name} | |
98 | Summary: bash-completion for Docker | |
99 | Summary(pl.UTF-8): bashowe uzupełnianie nazw dla Dockera | |
100 | Group: Applications/Shells | |
101 | Requires: %{name} | |
102 | Requires: bash-completion >= 2.0 | |
103 | Obsoletes: bash-completion-lxc-docker < 1.1.1 | |
104 | %if "%{_rpmversion}" >= "5" | |
105 | BuildArch: noarch | |
106 | %endif | |
107 | ||
108 | %description -n bash-completion-%{name} | |
109 | This package provides bash-completion for Docker. | |
110 | ||
111 | %description -n bash-completion-%{name} -l pl.UTF-8 | |
112 | Pakiet ten dostarcza bashowe uzupełnianie nazw dla Dockera. | |
113 | ||
114 | %package -n zsh-completion-%{name} | |
115 | Summary: zsh completion for Docker | |
116 | Summary(pl.UTF-8): Uzupełnianie parametrów w zsh dla poleceń Dockera | |
117 | Group: Applications/Shells | |
118 | Requires: %{name} | |
119 | %if "%{_rpmversion}" >= "5" | |
120 | BuildArch: noarch | |
121 | %endif | |
122 | ||
123 | %description -n zsh-completion-%{name} | |
124 | This package provides zsh completion for Docker. | |
125 | ||
126 | %description -n zsh-completion-%{name} -l pl.UTF-8 | |
127 | Pakiet ten dostarcza uzupełnianie w zsh dla poleceń Dockera. | |
128 | ||
129 | %package -n vim-syntax-%{name} | |
130 | Summary: Vim syntax: Docker | |
131 | Group: Applications/Editors/Vim | |
132 | Requires: %{name} = %{version}-%{release} | |
133 | Requires: vim-rt >= 4:7.2.170 | |
134 | Obsoletes: vim-syntax-lxc-docker < 1.1.1 | |
135 | %if "%{_rpmversion}" >= "5" | |
136 | BuildArch: noarch | |
137 | %endif | |
138 | ||
139 | %description -n vim-syntax-%{name} | |
140 | This plugin provides syntax highlighting in Dockerfile. | |
141 | ||
142 | %prep | |
143 | %setup -q %{?subver:-n %{name}-%{version}%{subver}} -a1 -a2 -a3 -a4 | |
144 | mv runc-%{runc_commit}* runc | |
145 | mv containerd-%{containerd_commit}* containerd | |
146 | mv libnetwork-%{libnetwork_commit}* libnetwork | |
147 | mv tini-* tini | |
148 | %patch0 -p1 | |
149 | %patch1 -p1 | |
150 | ||
151 | install -d vendor/src/github.com/docker | |
152 | ln -s $(pwd) vendor/src/github.com/docker/docker | |
153 | ln -s $(pwd)/containerd containerd/vendor/src/github.com/docker/containerd | |
154 | ln -s $(pwd)/libnetwork vendor/src/github.com/docker/libnetwork | |
155 | ||
156 | %build | |
157 | v=$(awk -F= '/RUNC_COMMIT/ {print $2}' hack/dockerfile/binaries-commits) | |
158 | echo "$v" | grep "^%{runc_commit}" | |
159 | v=$(awk -F= '/CONTAINERD_COMMIT/ {print $2}' hack/dockerfile/binaries-commits) | |
160 | echo "$v" | grep "^%{containerd_commit}" | |
161 | v=$(awk -F= '/LIBNETWORK_COMMIT/ {print $2}' hack/dockerfile/binaries-commits) | |
162 | echo "$v" | grep "^%{libnetwork_commit}" | |
163 | ||
164 | export GOPATH=$(pwd)/vendor:$(pwd)/containerd/vendor | |
165 | export DOCKER_GITCOMMIT="pld/%{version}" | |
166 | # build docker-runc | |
167 | %{__make} -C runc | |
168 | ||
169 | # build docker-containerd | |
170 | %{__make} -C containerd | |
171 | ||
172 | # build docker-proxy | |
173 | go build -ldflags="-linkmode=external" \ | |
174 | -o docker-proxy \ | |
175 | github.com/docker/libnetwork/cmd/proxy | |
176 | ||
177 | # build docker-init | |
178 | cd tini | |
179 | cmake . | |
180 | %{__make} | |
181 | cd .. | |
182 | ||
183 | bash -x hack/make.sh dynbinary | |
184 | %if %{with doc} | |
185 | man/md2man-all.sh | |
186 | %endif | |
187 | ||
188 | %install | |
189 | rm -rf $RPM_BUILD_ROOT | |
190 | install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/init.d,sysconfig},%{systemdunitdir}} \ | |
191 | $RPM_BUILD_ROOT%{_libexecdir} \ | |
192 | $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes} | |
193 | ||
194 | install -p bundles/%{version}%{?subver}/dynbinary-client/docker-%{version}%{?subver} $RPM_BUILD_ROOT%{_bindir}/docker | |
195 | install -p bundles/%{version}%{?subver}/dynbinary-daemon/dockerd-%{version}%{?subver} $RPM_BUILD_ROOT%{_sbindir}/dockerd | |
196 | ||
197 | # install docker-runc | |
198 | install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc | |
199 | ||
200 | # install docker-containerd | |
201 | install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/docker-containerd | |
202 | install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-shim | |
203 | install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-ctr | |
204 | ||
205 | # install docker-proxy | |
206 | install -p docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy | |
207 | ||
208 | # install docker-init | |
209 | install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init | |
210 | ||
211 | cp -p contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir} | |
212 | cp -p contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir} | |
213 | install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker | |
214 | install -p %{SOURCE5} $RPM_BUILD_ROOT%{_libexecdir}/dockerd | |
215 | cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker | |
216 | ||
217 | # install udev rules | |
218 | install -d $RPM_BUILD_ROOT/lib/udev/rules.d | |
219 | cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d | |
220 | ||
221 | # bash and zsh completion | |
222 | install -d $RPM_BUILD_ROOT%{bash_compdir} | |
223 | cp -p contrib/completion/bash/docker $RPM_BUILD_ROOT%{bash_compdir}/docker | |
224 | install -d $RPM_BUILD_ROOT%{zsh_compdir} | |
225 | cp -p contrib/completion/zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir} | |
226 | ||
227 | # vim syntax | |
228 | %if %{with vim} | |
229 | install -d $RPM_BUILD_ROOT%{_vimdatadir} | |
230 | cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir} | |
231 | %{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md} | |
232 | %endif | |
233 | ||
234 | %pre | |
235 | %groupadd -g 296 docker | |
236 | ||
237 | %post | |
238 | /sbin/chkconfig --add %{name} | |
239 | %service -n %{name} restart | |
240 | %systemd_post %{name}.service | |
241 | ||
242 | %preun | |
243 | if [ "$1" = "0" ]; then | |
244 | %service -q %{name} stop | |
245 | /sbin/chkconfig --del %{name} | |
246 | fi | |
247 | %systemd_preun %{name}.service | |
248 | ||
249 | %postun | |
250 | if [ "$1" = "0" ]; then | |
251 | %groupremove docker | |
252 | fi | |
253 | %systemd_reload | |
254 | ||
255 | %clean | |
256 | rm -rf $RPM_BUILD_ROOT | |
257 | ||
258 | %files | |
259 | %defattr(644,root,root,755) | |
260 | %doc README.md CHANGELOG.md CONTRIBUTING.md LICENSE AUTHORS NOTICE MAINTAINERS | |
261 | %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/docker | |
262 | %attr(754,root,root) /etc/rc.d/init.d/docker | |
263 | %attr(755,root,root) %{_bindir}/docker | |
264 | %attr(755,root,root) %{_sbindir}/docker-containerd | |
265 | %attr(755,root,root) %{_sbindir}/docker-containerd-ctr | |
266 | %attr(755,root,root) %{_sbindir}/docker-containerd-shim | |
267 | %attr(755,root,root) %{_sbindir}/docker-init | |
268 | %attr(755,root,root) %{_sbindir}/docker-proxy | |
269 | %attr(755,root,root) %{_sbindir}/docker-runc | |
270 | %attr(755,root,root) %{_sbindir}/dockerd | |
271 | %attr(755,root,root) %{_libexecdir}/dockerd | |
272 | %{systemdunitdir}/docker.service | |
273 | %{systemdunitdir}/docker.socket | |
274 | /lib/udev/rules.d/80-docker.rules | |
275 | ||
276 | %dir %attr(700,root,root) /var/lib/docker | |
277 | %dir %attr(700,root,root) /var/lib/docker/containers | |
278 | %dir %attr(700,root,root) /var/lib/docker/execdriver | |
279 | %dir %attr(700,root,root) /var/lib/docker/graph | |
280 | %dir %attr(700,root,root) /var/lib/docker/image | |
281 | %dir %attr(700,root,root) /var/lib/docker/init | |
282 | %dir %attr(700,root,root) /var/lib/docker/network | |
283 | %dir %attr(700,root,root) /var/lib/docker/swarm | |
284 | %dir %attr(700,root,root) /var/lib/docker/tmp | |
285 | %dir %attr(700,root,root) /var/lib/docker/trust | |
286 | %dir %attr(700,root,root) /var/lib/docker/vfs | |
287 | %dir %attr(700,root,root) /var/lib/docker/volumes | |
288 | ||
289 | %files -n bash-completion-%{name} | |
290 | %defattr(644,root,root,755) | |
291 | %{bash_compdir}/docker | |
292 | ||
293 | %files -n zsh-completion-%{name} | |
294 | %defattr(644,root,root,755) | |
295 | %{zsh_compdir}/_docker | |
296 | ||
297 | %if %{with vim} | |
298 | %files -n vim-syntax-%{name} | |
299 | %defattr(644,root,root,755) | |
300 | %doc contrib/syntax/vim/{README.md,LICENSE} | |
301 | %{_vimdatadir}/doc/dockerfile.txt | |
302 | %{_vimdatadir}/ftdetect/dockerfile.vim | |
303 | %{_vimdatadir}/syntax/dockerfile.vim | |
304 | %endif |