github.com/docker/docker-ce@v17.12.1-ce-rc2+incompatible/components/packaging/rpm/fedora-25/docker-ce.spec (about) 1 Name: docker-ce 2 Version: %{_version} 3 Release: %{_release}%{?dist} 4 Summary: The open-source application container engine 5 Group: Tools/Docker 6 License: ASL 2.0 7 Source0: engine.tgz 8 Source1: cli.tgz 9 URL: https://www.docker.com 10 Vendor: Docker 11 Packager: Docker <support@docker.com> 12 13 # DWZ problem with multiple golang binary, see bug 14 # https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 15 %global _dwz_low_mem_die_limit 0 16 %global is_systemd 1 17 %global with_selinux 1 18 19 BuildRequires: pkgconfig(systemd) 20 21 # required packages on install 22 Requires: /bin/sh 23 Requires: container-selinux >= 2.9 24 Requires: iptables 25 Requires: libcgroup 26 Requires: systemd-units 27 Requires: tar 28 Requires: xz 29 30 # Resolves: rhbz#1165615 31 Requires: device-mapper-libs >= 1.02.90-1 32 33 # conflicting packages 34 Conflicts: docker 35 Conflicts: docker-io 36 Conflicts: docker-engine-cs 37 Conflicts: docker-ee 38 39 # Obsolete packages 40 Obsoletes: docker-ce-selinux 41 Obsoletes: docker-engine-selinux 42 Obsoletes: docker-engine 43 44 %description 45 Docker is an open source project to build, ship and run any application as a 46 lightweight container. 47 48 Docker containers are both hardware-agnostic and platform-agnostic. This means 49 they can run anywhere, from your laptop to the largest EC2 compute instance and 50 everything in between - and they don't require you to use a particular 51 language, framework or packaging system. That makes them great building blocks 52 for deploying and scaling web apps, databases, and backend services without 53 depending on a particular stack or provider. 54 55 %prep 56 %setup -q -c -n src -a 1 57 58 %build 59 export DOCKER_GITCOMMIT=%{_gitcommit} 60 mkdir -p /go/src/github.com/docker 61 rm -f /go/src/github.com/docker/cli 62 ln -s /root/rpmbuild/BUILD/src/cli /go/src/github.com/docker/cli 63 pushd /go/src/github.com/docker/cli 64 make VERSION=%{_origversion} GITCOMMIT=%{_gitcommit} dynbinary manpages # cli 65 popd 66 pushd engine 67 TMP_GOPATH="/go" hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic tini 68 VERSION=%{_origversion} hack/make.sh dynbinary 69 popd 70 71 %check 72 cli/build/docker -v 73 engine/bundles/dynbinary-daemon/dockerd -v 74 75 %install 76 # install binary 77 install -d $RPM_BUILD_ROOT/%{_bindir} 78 install -p -m 755 cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker 79 install -p -m 755 $(readlink -f engine/bundles/dynbinary-daemon/dockerd) $RPM_BUILD_ROOT/%{_bindir}/dockerd 80 81 # install proxy 82 install -p -m 755 /usr/local/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy 83 84 # install containerd 85 install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd 86 install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim 87 install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr 88 89 # install runc 90 install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc 91 92 # install tini 93 install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init 94 95 # install udev rules 96 install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d 97 install -p -m 644 engine/contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules 98 99 # add init scripts 100 install -d $RPM_BUILD_ROOT/etc/sysconfig 101 install -d $RPM_BUILD_ROOT/%{_initddir} 102 install -d $RPM_BUILD_ROOT/%{_unitdir} 103 # Fedora 25+ supports (and needs) TasksMax 104 sed -i 's/^#TasksMax=/TasksMax=/' /systemd/docker.service 105 install -p -m 644 /systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service 106 # add bash, zsh, and fish completions 107 install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions 108 install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions 109 install -d $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d 110 install -p -m 644 cli/contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker 111 install -p -m 644 cli/contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker 112 install -p -m 644 cli/contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish 113 114 # install manpages 115 install -d %{buildroot}%{_mandir}/man1 116 install -p -m 644 cli/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1 117 install -d %{buildroot}%{_mandir}/man5 118 install -p -m 644 cli/man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5 119 install -d %{buildroot}%{_mandir}/man8 120 install -p -m 644 cli/man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8 121 122 # add vimfiles 123 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc 124 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect 125 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax 126 install -p -m 644 engine/contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt 127 install -p -m 644 engine/contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim 128 install -p -m 644 engine/contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim 129 130 # add nano 131 install -d $RPM_BUILD_ROOT/usr/share/nano 132 install -p -m 644 engine/contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc 133 134 mkdir -p build-docs 135 for engine_file in AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md; do 136 cp "engine/$engine_file" "build-docs/engine-$engine_file" 137 done 138 for cli_file in LICENSE MAINTAINERS NOTICE README.md; do 139 cp "cli/$cli_file" "build-docs/cli-$cli_file" 140 done 141 142 # list files owned by the package here 143 %files 144 %doc build-docs/engine-AUTHORS build-docs/engine-CHANGELOG.md build-docs/engine-CONTRIBUTING.md build-docs/engine-LICENSE build-docs/engine-MAINTAINERS build-docs/engine-NOTICE build-docs/engine-README.md 145 %doc build-docs/cli-LICENSE build-docs/cli-MAINTAINERS build-docs/cli-NOTICE build-docs/cli-README.md 146 /%{_bindir}/docker 147 /%{_bindir}/dockerd 148 /%{_bindir}/docker-containerd 149 /%{_bindir}/docker-containerd-shim 150 /%{_bindir}/docker-containerd-ctr 151 /%{_bindir}/docker-proxy 152 /%{_bindir}/docker-runc 153 /%{_bindir}/docker-init 154 /%{_sysconfdir}/udev/rules.d/80-docker.rules 155 /%{_unitdir}/docker.service 156 /usr/share/bash-completion/completions/docker 157 /usr/share/zsh/vendor-completions/_docker 158 /usr/share/fish/vendor_completions.d/docker.fish 159 %doc 160 /%{_mandir}/man1/* 161 /%{_mandir}/man5/* 162 /%{_mandir}/man8/* 163 /usr/share/vim/vimfiles/doc/dockerfile.txt 164 /usr/share/vim/vimfiles/ftdetect/dockerfile.vim 165 /usr/share/vim/vimfiles/syntax/dockerfile.vim 166 /usr/share/nano/Dockerfile.nanorc 167 168 %pre 169 if [ $1 -gt 0 ] ; then 170 # package upgrade scenario, before new files are installed 171 172 # clear any old state 173 rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : 174 175 # check if docker service is running 176 if systemctl is-active docker > /dev/null 2>&1; then 177 systemctl stop docker > /dev/null 2>&1 || : 178 touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : 179 fi 180 fi 181 182 %post 183 %systemd_post docker 184 if ! getent group docker > /dev/null; then 185 groupadd --system docker 186 fi 187 188 %preun 189 %systemd_preun docker 190 191 %postun 192 %systemd_postun_with_restart docker 193 194 %posttrans 195 if [ $1 -ge 0 ] ; then 196 # package upgrade scenario, after new files are installed 197 198 # check if docker was running before upgrade 199 if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then 200 systemctl start docker > /dev/null 2>&1 || : 201 rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || : 202 fi 203 fi 204 205 %changelog