]> git.pld-linux.org Git - packages/docker-ce.git/blame - docker-ce.spec
cleanups
[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 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
3fe85ad0
ER
184GOPATH=$(pwd)/runc \
185%{__make} -C runc
186./runc/runc -v
36f21c65
ER
187
188# build docker-containerd
3fe85ad0
ER
189GOPATH=$(pwd)/containerd/vendor \
190%{__make} -C containerd
36f21c65 191
a75f03e6 192# build docker-proxy
3fe85ad0
ER
193cd libnetwork
194GOPATH=$(pwd)/gopath \
195go build -ldflags="-linkmode=external" \
196 -o docker-proxy \
197 github.com/docker/libnetwork/cmd/proxy
198cd ..
a75f03e6 199
b96d9f58
ER
200# build docker-init
201cd tini
7397034b 202cmake .
b96d9f58 203%{__make}
b96d9f58 204
3fe85ad0 205# docker cli
b3c6f3dc 206cd ../components/cli
b3c6f3dc 207GOPATH=$(pwd)/.gopath \
f47d9fe1 208%{__make} dynbinary
3fe85ad0 209./build/docker -v
b3c6f3dc
ER
210
211cd ../engine
3fe85ad0 212AUTO_GOPATH=1 \
90544b12 213bash -x hack/make.sh dynbinary
3fe85ad0 214./bundles/latest/dynbinary-daemon/dockerd -v
b317146a
ER
215%if %{with doc}
216man/md2man-all.sh
217%endif
a73bca1d 218
b877f7b7
ER
219%install
220rm -rf $RPM_BUILD_ROOT
36f21c65 221install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/init.d,sysconfig},%{systemdunitdir}} \
a990be6d 222 $RPM_BUILD_ROOT%{_libexecdir} \
7b3be108 223 $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes}
e4252f76 224
3fe85ad0 225# docker-cli
b3c6f3dc 226install -p components/cli/build/docker $RPM_BUILD_ROOT%{_bindir}/docker
36f21c65 227
3fe85ad0 228# docker-runc
36f21c65
ER
229install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/docker-runc
230
3fe85ad0 231# docker-containerd
36f21c65
ER
232install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/docker-containerd
233install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-shim
6a5abe01 234install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/docker-containerd-ctr
36f21c65 235
3fe85ad0
ER
236# docker-proxy
237install -p libnetwork/docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
a75f03e6 238
3fe85ad0 239# docker-init
b96d9f58
ER
240install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init
241
3fe85ad0
ER
242# dockerd
243cd components/engine
244install -p bundles/latest/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
245cp -p contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir}
246cp -p contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir}
5fcaa458 247install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker
b96d9f58 248install -p %{SOURCE5} $RPM_BUILD_ROOT%{_libexecdir}/dockerd
5fcaa458 249cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker
b877f7b7 250
e4252f76
ER
251# install udev rules
252install -d $RPM_BUILD_ROOT/lib/udev/rules.d
253cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d
254
a6da47b4 255# bash and zsh completion
8c352669 256install -d $RPM_BUILD_ROOT%{bash_compdir}
47009a45 257cp -p contrib/completion/bash/docker $RPM_BUILD_ROOT%{bash_compdir}/docker
a6da47b4
JK
258install -d $RPM_BUILD_ROOT%{zsh_compdir}
259cp -p contrib/completion/zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
8c352669 260
f891ae41 261# vim syntax
c590f8e8 262%if %{with vim}
f891ae41 263install -d $RPM_BUILD_ROOT%{_vimdatadir}
7db50491 264cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir}
f891ae41 265%{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md}
c590f8e8 266%endif
f891ae41 267
d88043a2
ER
268%pre
269%groupadd -g 296 docker
270
345101bd 271%post
8716e3f7
ER
272/sbin/chkconfig --add docker
273%service -n docker restart
274%systemd_post docker.service
345101bd
ER
275
276%preun
277if [ "$1" = "0" ]; then
8716e3f7
ER
278 %service -q docker stop
279 /sbin/chkconfig --del docker
345101bd 280fi
8716e3f7 281%systemd_preun docker.service
345101bd 282
d88043a2
ER
283%postun
284if [ "$1" = "0" ]; then
285 %groupremove docker
286fi
2e523ef0 287%systemd_reload
d88043a2 288
eb841086
ER
289%triggerun -- docker < 17.0
290# Prevent preun from docker from working
291chmod a-x /etc/rc.d/init.d/docker
292
293%triggerpostun -- docker < 17.0
294# Restore what triggerun removed
295chmod 754 /etc/rc.d/init.d/docker
296# reinstall docker init.d links, which could be different
297/sbin/chkconfig --del docker
298/sbin/chkconfig --add docker
299
b877f7b7
ER
300%clean
301rm -rf $RPM_BUILD_ROOT
302
303%files
304%defattr(644,root,root,755)
3fe85ad0 305%doc components/engine/{README.md,CHANGELOG.md,CONTRIBUTING.md,LICENSE,AUTHORS,NOTICE,MAINTAINERS}
62b620a7 306%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/docker
47009a45 307%attr(754,root,root) /etc/rc.d/init.d/docker
9c77b76c 308%attr(755,root,root) %{_bindir}/docker
36f21c65 309%attr(755,root,root) %{_sbindir}/docker-containerd
6a5abe01 310%attr(755,root,root) %{_sbindir}/docker-containerd-ctr
36f21c65 311%attr(755,root,root) %{_sbindir}/docker-containerd-shim
b96d9f58 312%attr(755,root,root) %{_sbindir}/docker-init
4467217c
ER
313%attr(755,root,root) %{_sbindir}/docker-proxy
314%attr(755,root,root) %{_sbindir}/docker-runc
315%attr(755,root,root) %{_sbindir}/dockerd
29baba5b 316%attr(755,root,root) %{_libexecdir}/dockerd
62b620a7 317%{systemdunitdir}/docker.service
5fcaa458 318%{systemdunitdir}/docker.socket
e4252f76 319/lib/udev/rules.d/80-docker.rules
36f21c65 320
af991618
ER
321%dir %attr(700,root,root) /var/lib/docker
322%dir %attr(700,root,root) /var/lib/docker/containers
b73b275e 323%dir %attr(700,root,root) /var/lib/docker/execdriver
af991618 324%dir %attr(700,root,root) /var/lib/docker/graph
841676f2 325%dir %attr(700,root,root) /var/lib/docker/image
b73b275e 326%dir %attr(700,root,root) /var/lib/docker/init
841676f2 327%dir %attr(700,root,root) /var/lib/docker/network
7b3be108 328%dir %attr(700,root,root) /var/lib/docker/swarm
b73b275e
ER
329%dir %attr(700,root,root) /var/lib/docker/tmp
330%dir %attr(700,root,root) /var/lib/docker/trust
331%dir %attr(700,root,root) /var/lib/docker/vfs
af991618 332%dir %attr(700,root,root) /var/lib/docker/volumes
8c352669 333
f891ae41 334%files -n bash-completion-%{name}
8c352669 335%defattr(644,root,root,755)
8c352669 336%{bash_compdir}/docker
f891ae41 337
a6da47b4
JK
338%files -n zsh-completion-%{name}
339%defattr(644,root,root,755)
340%{zsh_compdir}/_docker
341
c590f8e8 342%if %{with vim}
f891ae41
ER
343%files -n vim-syntax-%{name}
344%defattr(644,root,root,755)
3fe85ad0 345%doc components/engine/contrib/syntax/vim/{README.md,LICENSE}
f891ae41
ER
346%{_vimdatadir}/doc/dockerfile.txt
347%{_vimdatadir}/ftdetect/dockerfile.vim
348%{_vimdatadir}/syntax/dockerfile.vim
c590f8e8 349%endif
This page took 0.48329 seconds and 4 git commands to generate.