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