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