]> git.pld-linux.org Git - packages/docker-ce.git/blame - docker-ce.spec
disable go mod, rediff patch and rebuild with current go runtime; rel 2
[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 9# NOTES
42cfb51d
ER
10# - https://github.com/docker/docker-ce/releases
11# - https://github.com/moby/moby/blob/master/project/PACKAGERS.md#build-dependencies
be6486fd 12
29a9c8b9 13# v1.0.0-rc10
81957eaa 14%define runc_commit dc9208a
703d8d26
JP
15# v1.3.9
16%define containerd_commit ea765ab
cc4d079c 17# v0.8.0-dev.2-1075-g1b91bc94
703d8d26 18%define libnetwork_commit 55e924b
027e5a65 19#define subver -rc2
8716e3f7
ER
20Summary: Docker CE: the open-source application container engine
21Name: docker-ce
22# Using Docker-CE, Stay on Stable channel
23# https://docs.docker.com/engine/installation/
703d8d26 24Version: 19.03.14
d3c3f5e1 25Release: 2
b877f7b7
ER
26License: Apache v2.0
27Group: Applications/System
d83187b3 28# https://github.com/docker/docker-ce/releases
027e5a65 29#Source0: https://github.com/docker/docker-ce/archive/v%{version}-ce%{subver}/%{name}-%{version}-ce%{subver}.tar.gz
7461beab 30Source0: https://github.com/docker/docker-ce/archive/v%{version}/%{name}-%{version}.tar.gz
703d8d26 31# Source0-md5: f932ff952a0411223a90baaf5b829883
d6aea7e9 32Source1: https://github.com/opencontainers/runc/archive/%{runc_commit}/runc-%{runc_commit}.tar.gz
81957eaa 33# Source1-md5: b593d63c7df5a27fba615afcf411762f
ed3d2488 34Source2: https://github.com/containerd/containerd/archive/%{containerd_commit}/containerd-%{containerd_commit}.tar.gz
703d8d26 35# Source2-md5: c5cee10a5fb8f6e1d5e186912725a052
a75f03e6 36Source3: https://github.com/docker/libnetwork/archive/%{libnetwork_commit}/libnetwork-%{libnetwork_commit}.tar.gz
703d8d26 37# Source3-md5: a54f3443dbf78696e2470d6657fa03c1
5ae32a7f
JP
38Source4: https://github.com/krallin/tini/archive/v0.18.0/tini-0.18.0.tar.gz
39# Source4-md5: cc3b205a1b83b8e6ed6892fc5e8ef2c3
8716e3f7
ER
40Source5: dockerd.sh
41Source7: docker.init
42Source8: docker.sysconfig
b6f967da 43Patch0: systemd.patch
8716e3f7 44URL: https://www.docker.com/community-edition/
be6486fd 45BuildRequires: btrfs-progs-devel >= 3.16.1
6dee0436 46BuildRequires: cmake
be6486fd 47BuildRequires: device-mapper-devel >= 2.02.89
b1848dea 48BuildRequires: golang >= 1.12
03f02fdd 49BuildRequires: libseccomp-devel >= 2.3
0be68701 50BuildRequires: rpmbuild(macros) >= 1.644
678a84bd 51BuildRequires: sqlite3-devel >= 3.7.9
a8843e04 52BuildRequires: xxd
d88043a2
ER
53Requires(post,preun): /sbin/chkconfig
54Requires(postun): /usr/sbin/groupdel
55Requires(pre): /usr/bin/getgid
56Requires(pre): /usr/sbin/groupadd
27e7cc0f 57Requires: ca-certificates
2e42e913 58Requires: iproute2 >= 3.5
b5920dfc 59Requires: iptables
1f4bb2f8 60Requires: libseccomp >= 2.3
345101bd 61Requires: rc-scripts >= 0.4.0.10
0be68701 62Requires: systemd-units >= 38
2e42e913 63Requires: tar >= 1:1.26
2015cb19 64Requires: uname(release) >= 3.8
db150373 65Requires: xz
65777843 66Suggests: docker-credential-helpers
2e42e913 67Suggests: git-core >= 1.7
46a6d8ab 68Suggests: libcgroup
2e42e913 69Suggests: xz >= 1:4.9
8eac6649
ER
70Provides: docker = %{version}
71Provides: docker(engine) = %{version}
d88043a2 72Provides: group(docker)
87ea3e27 73Obsoletes: docker < 18.0
47009a45 74Obsoletes: lxc-docker < 1.1.1
d2670441 75# only runs on x64 hosts for now:
f4565fa4
ER
76# https://github.com/docker/docker/issues/136
77# https://github.com/docker/docker/issues/611
c40c0f56 78ExclusiveArch: %{x8664} aarch64
b877f7b7
ER
79BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
80
8c352669 81%define bash_compdir %{_datadir}/bash-completion/completions
a6da47b4 82%define zsh_compdir %{_datadir}/zsh/site-functions
f891ae41 83%define _vimdatadir %{_datadir}/vim
a990be6d 84%define _libexecdir %{_prefix}/lib
8c352669 85
434d66d3
ER
86# binary stripped or something
87%define _enable_debug_packages 0
88
b877f7b7 89%description
f4565fa4
ER
90Docker is an open source project to pack, ship and run any application
91as a lightweight container
92
93Docker containers are both hardware-agnostic and platform-agnostic.
94This means that they can run anywhere, from your laptop to the largest
95EC2 compute instance and everything in between - and they don't
96require that you use a particular language, framework or packaging
97system. That makes them great building blocks for deploying and
98scaling web apps, databases and backend services without depending on
99a particular stack or provider.
100
101Docker is an open-source implementation of the deployment engine which
102powers dotCloud, a popular Platform-as-a-Service. It benefits directly
103from the experience accumulated over several years of large-scale
104operation and support of hundreds of thousands of applications and
105databases.
b877f7b7 106
f891ae41 107%package -n bash-completion-%{name}
8c352669
ER
108Summary: bash-completion for Docker
109Summary(pl.UTF-8): bashowe uzupełnianie nazw dla Dockera
110Group: Applications/Shells
111Requires: %{name}
112Requires: bash-completion >= 2.0
47009a45 113Obsoletes: bash-completion-lxc-docker < 1.1.1
8c352669 114BuildArch: noarch
8c352669 115
47009a45 116%description -n bash-completion-%{name}
8c352669
ER
117This package provides bash-completion for Docker.
118
47009a45 119%description -n bash-completion-%{name} -l pl.UTF-8
8c352669
ER
120Pakiet ten dostarcza bashowe uzupełnianie nazw dla Dockera.
121
a6da47b4
JK
122%package -n zsh-completion-%{name}
123Summary: zsh completion for Docker
124Summary(pl.UTF-8): Uzupełnianie parametrów w zsh dla poleceń Dockera
125Group: Applications/Shells
126Requires: %{name}
a6da47b4 127BuildArch: noarch
a6da47b4
JK
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 141BuildArch: noarch
f891ae41
ER
142
143%description -n vim-syntax-%{name}
144This plugin provides syntax highlighting in Dockerfile.
145
b877f7b7 146%prep
7461beab 147%setup -q -n %{name}-%{version}%{?subver} -a1 -a2 -a3 -a4
3fe85ad0
ER
148
149mv runc-%{runc_commit}* runc
150mv runc/vendor runc/src
151ln -s ../../.. runc/src/github.com/opencontainers/runc
152
153mv containerd-%{containerd_commit}* containerd
ed3d2488
ER
154mv containerd/vendor containerd/src
155ln -s ../../.. containerd/src/github.com/containerd/containerd
3fe85ad0
ER
156
157mv libnetwork-%{libnetwork_commit}* libnetwork
158install -d libnetwork/gopath
159mv libnetwork/vendor libnetwork/gopath/src
160ln -s ../../../.. libnetwork/gopath/src/github.com/docker/libnetwork
161
b96d9f58 162mv tini-* tini
36f21c65 163
f47d9fe1
ER
164install -d components/cli/.gopath/src/github.com/docker
165ln -s ../../../.. components/cli/.gopath/src/github.com/docker/cli
d83187b3 166
f47d9fe1 167%patch0 -p1 -d components/engine
b877f7b7 168
692548c0 169%build
87ea3e27 170grep -rhE "=%{runc_commit}|=%{containerd_commit}|=%{libnetwork_commit}" $(pwd)/components/engine/hack/dockerfile/install/
36f21c65 171
740f7150 172export VERSION=%{version}-ce # for `docker version`
8e447246
ER
173export GITCOMMIT="PLD-Linux/%{version}" # for cli
174export DOCKER_GITCOMMIT="PLD-Linux/%{version}" # for engine
d3c3f5e1 175export GO111MODULE=off
b3c6f3dc 176
7461beab 177# build runc
cd3b43db 178sed -i -e 's,shell git,shell false,' runc/Makefile
3fe85ad0 179GOPATH=$(pwd)/runc \
cd3b43db 180%{__make} -C runc \
4f00b115 181 COMMIT=$RUNC_COMMIT
3fe85ad0 182./runc/runc -v
36f21c65 183
7461beab 184# build containerd
ed3d2488 185GOPATH=$(pwd)/containerd \
4f00b115
ER
186%{__make} -C containerd \
187 GIT_COMMIT=$CONTAINERD_COMMIT
36f21c65 188
a75f03e6 189# build docker-proxy
3fe85ad0
ER
190cd libnetwork
191GOPATH=$(pwd)/gopath \
192go build -ldflags="-linkmode=external" \
193 -o docker-proxy \
194 github.com/docker/libnetwork/cmd/proxy
195cd ..
a75f03e6 196
b96d9f58
ER
197# build docker-init
198cd tini
7397034b 199cmake .
b96d9f58 200%{__make}
b96d9f58 201
3fe85ad0 202# docker cli
b3c6f3dc 203cd ../components/cli
b3c6f3dc 204GOPATH=$(pwd)/.gopath \
b5a02972 205DISABLE_WARN_OUTSIDE_CONTAINER=1 \
f47d9fe1 206%{__make} dynbinary
3fe85ad0 207./build/docker -v
b3c6f3dc
ER
208
209cd ../engine
3fe85ad0 210AUTO_GOPATH=1 \
90544b12 211bash -x hack/make.sh dynbinary
e1b575de 212./bundles/dynbinary-daemon/dockerd -v
b317146a
ER
213%if %{with doc}
214man/md2man-all.sh
215%endif
a73bca1d 216
b877f7b7
ER
217%install
218rm -rf $RPM_BUILD_ROOT
36f21c65 219install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man1,/etc/{rc.d/init.d,sysconfig},%{systemdunitdir}} \
db76d66e 220 $RPM_BUILD_ROOT%{_sysconfdir}/docker \
a990be6d 221 $RPM_BUILD_ROOT%{_libexecdir} \
7b3be108 222 $RPM_BUILD_ROOT/var/lib/docker/{containers,execdriver,graph,image,init,network,swarm,tmp,trust,vfs,volumes}
e4252f76 223
3fe85ad0 224# docker-cli
b3c6f3dc 225install -p components/cli/build/docker $RPM_BUILD_ROOT%{_bindir}/docker
36f21c65 226
7461beab
JP
227# runc
228install -p runc/runc $RPM_BUILD_ROOT%{_sbindir}/runc
36f21c65 229
7461beab
JP
230# containerd
231install -p containerd/bin/containerd $RPM_BUILD_ROOT%{_sbindir}/containerd
232install -p containerd/bin/containerd-shim $RPM_BUILD_ROOT%{_sbindir}/containerd-shim
233install -p containerd/bin/ctr $RPM_BUILD_ROOT%{_sbindir}/ctr
36f21c65 234
3fe85ad0
ER
235# docker-proxy
236install -p libnetwork/docker-proxy $RPM_BUILD_ROOT%{_sbindir}/docker-proxy
a75f03e6 237
3fe85ad0 238# docker-init
b96d9f58
ER
239install -p tini/tini $RPM_BUILD_ROOT%{_sbindir}/docker-init
240
3fe85ad0
ER
241# dockerd
242cd components/engine
e1b575de 243install -p bundles/dynbinary-daemon/dockerd $RPM_BUILD_ROOT%{_sbindir}/dockerd
3fe85ad0
ER
244cp -p contrib/init/systemd/docker.service $RPM_BUILD_ROOT%{systemdunitdir}
245cp -p contrib/init/systemd/docker.socket $RPM_BUILD_ROOT%{systemdunitdir}
5fcaa458 246install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/docker
b96d9f58 247install -p %{SOURCE5} $RPM_BUILD_ROOT%{_libexecdir}/dockerd
5fcaa458 248cp -p %{SOURCE8} $RPM_BUILD_ROOT/etc/sysconfig/docker
b877f7b7 249
e4252f76
ER
250# install udev rules
251install -d $RPM_BUILD_ROOT/lib/udev/rules.d
252cp -p contrib/udev/80-docker.rules $RPM_BUILD_ROOT/lib/udev/rules.d
253
f891ae41 254# vim syntax
c590f8e8 255%if %{with vim}
f891ae41 256install -d $RPM_BUILD_ROOT%{_vimdatadir}
7db50491 257cp -a contrib/syntax/vim/* $RPM_BUILD_ROOT%{_vimdatadir}
f891ae41 258%{__rm} $RPM_BUILD_ROOT%{_vimdatadir}/{LICENSE,README.md}
c590f8e8 259%endif
f891ae41 260
b9423c2b
ER
261# bash and zsh completion
262cd ../cli/contrib/completion
263install -d $RPM_BUILD_ROOT%{bash_compdir}
264cp -p bash/docker $RPM_BUILD_ROOT%{bash_compdir}
265install -d $RPM_BUILD_ROOT%{zsh_compdir}
266cp -p zsh/_docker $RPM_BUILD_ROOT%{zsh_compdir}
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
db76d66e 308%dir %{_sysconfdir}/docker
9c77b76c 309%attr(755,root,root) %{_bindir}/docker
7461beab
JP
310%attr(755,root,root) %{_sbindir}/containerd
311%attr(755,root,root) %{_sbindir}/ctr
312%attr(755,root,root) %{_sbindir}/containerd-shim
b96d9f58 313%attr(755,root,root) %{_sbindir}/docker-init
4467217c 314%attr(755,root,root) %{_sbindir}/docker-proxy
7461beab 315%attr(755,root,root) %{_sbindir}/runc
4467217c 316%attr(755,root,root) %{_sbindir}/dockerd
29baba5b 317%attr(755,root,root) %{_libexecdir}/dockerd
62b620a7 318%{systemdunitdir}/docker.service
5fcaa458 319%{systemdunitdir}/docker.socket
e4252f76 320/lib/udev/rules.d/80-docker.rules
36f21c65 321
af991618
ER
322%dir %attr(700,root,root) /var/lib/docker
323%dir %attr(700,root,root) /var/lib/docker/containers
b73b275e 324%dir %attr(700,root,root) /var/lib/docker/execdriver
af991618 325%dir %attr(700,root,root) /var/lib/docker/graph
841676f2 326%dir %attr(700,root,root) /var/lib/docker/image
b73b275e 327%dir %attr(700,root,root) /var/lib/docker/init
841676f2 328%dir %attr(700,root,root) /var/lib/docker/network
7b3be108 329%dir %attr(700,root,root) /var/lib/docker/swarm
b73b275e
ER
330%dir %attr(700,root,root) /var/lib/docker/tmp
331%dir %attr(700,root,root) /var/lib/docker/trust
332%dir %attr(700,root,root) /var/lib/docker/vfs
af991618 333%dir %attr(700,root,root) /var/lib/docker/volumes
8c352669 334
f891ae41 335%files -n bash-completion-%{name}
8c352669 336%defattr(644,root,root,755)
8c352669 337%{bash_compdir}/docker
f891ae41 338
a6da47b4
JK
339%files -n zsh-completion-%{name}
340%defattr(644,root,root,755)
341%{zsh_compdir}/_docker
342
c590f8e8 343%if %{with vim}
f891ae41
ER
344%files -n vim-syntax-%{name}
345%defattr(644,root,root,755)
3fe85ad0 346%doc components/engine/contrib/syntax/vim/{README.md,LICENSE}
f891ae41
ER
347%{_vimdatadir}/doc/dockerfile.txt
348%{_vimdatadir}/ftdetect/dockerfile.vim
349%{_vimdatadir}/syntax/dockerfile.vim
c590f8e8 350%endif
This page took 0.151548 seconds and 4 git commands to generate.