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