github.com/kim0/docker@v0.6.2-0.20161130212042-4addda3f07e7/hack/make/.build-rpm/docker-engine.spec (about) 1 Name: docker-engine 2 Version: %{_version} 3 Release: %{_release}%{?dist} 4 Summary: The open-source application container engine 5 Group: Tools/Docker 6 7 License: ASL 2.0 8 Source: %{name}.tar.gz 9 10 URL: https://dockerproject.org 11 Vendor: Docker 12 Packager: Docker <support@docker.com> 13 14 # is_systemd conditional 15 %if 0%{?fedora} >= 21 || 0%{?centos} >= 7 || 0%{?rhel} >= 7 || 0%{?suse_version} >= 1210 16 %global is_systemd 1 17 %endif 18 19 # required packages for build 20 # most are already in the container (see contrib/builder/rpm/ARCH/generate.sh) 21 # only require systemd on those systems 22 %if 0%{?is_systemd} 23 %if 0%{?suse_version} >= 1210 24 BuildRequires: systemd-rpm-macros 25 %{?systemd_requires} 26 %else 27 BuildRequires: pkgconfig(systemd) 28 Requires: systemd-units 29 BuildRequires: pkgconfig(libsystemd-journal) 30 %endif 31 %else 32 Requires(post): chkconfig 33 Requires(preun): chkconfig 34 # This is for /sbin/service 35 Requires(preun): initscripts 36 %endif 37 38 # required packages on install 39 Requires: /bin/sh 40 Requires: iptables 41 %if !0%{?suse_version} 42 Requires: libcgroup 43 %else 44 Requires: libcgroup1 45 %endif 46 Requires: tar 47 Requires: xz 48 %if 0%{?fedora} >= 21 || 0%{?centos} >= 7 || 0%{?rhel} >= 7 || 0%{?oraclelinux} >= 7 49 # Resolves: rhbz#1165615 50 Requires: device-mapper-libs >= 1.02.90-1 51 %endif 52 %if 0%{?oraclelinux} >= 6 53 # Require Oracle Unbreakable Enterprise Kernel R4 and newer device-mapper 54 Requires: kernel-uek >= 4.1 55 Requires: device-mapper >= 1.02.90-2 56 %endif 57 58 # docker-selinux conditional 59 %if 0%{?fedora} >= 20 || 0%{?centos} >= 7 || 0%{?rhel} >= 7 || 0%{?oraclelinux} >= 7 60 %global with_selinux 1 61 %endif 62 63 # DWZ problem with multiple golang binary, see bug 64 # https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12 65 %if 0%{?fedora} >= 20 || 0%{?rhel} >= 7 || 0%{?oraclelinux} >= 7 66 %global _dwz_low_mem_die_limit 0 67 %endif 68 69 # start if with_selinux 70 %if 0%{?with_selinux} 71 # Version of SELinux we were using 72 %if 0%{?fedora} == 20 73 %global selinux_policyver 3.12.1-197 74 %endif # fedora 20 75 %if 0%{?fedora} == 21 76 %global selinux_policyver 3.13.1-105 77 %endif # fedora 21 78 %if 0%{?fedora} >= 22 79 %global selinux_policyver 3.13.1-128 80 %endif # fedora 22 81 %if 0%{?centos} >= 7 || 0%{?rhel} >= 7 || 0%{?oraclelinux} >= 7 82 %global selinux_policyver 3.13.1-23 83 %endif # centos,oraclelinux 7 84 %endif # with_selinux 85 86 # RE: rhbz#1195804 - ensure min NVR for selinux-policy 87 %if 0%{?with_selinux} 88 Requires: selinux-policy >= %{selinux_policyver} 89 Requires(pre): %{name}-selinux >= %{version}-%{release} 90 %endif # with_selinux 91 92 # conflicting packages 93 Conflicts: docker 94 Conflicts: docker-io 95 Conflicts: docker-engine-cs 96 97 %description 98 Docker is an open source project to build, ship and run any application as a 99 lightweight container. 100 101 Docker containers are both hardware-agnostic and platform-agnostic. This means 102 they can run anywhere, from your laptop to the largest EC2 compute instance and 103 everything in between - and they don't require you to use a particular 104 language, framework or packaging system. That makes them great building blocks 105 for deploying and scaling web apps, databases, and backend services without 106 depending on a particular stack or provider. 107 108 %prep 109 %if 0%{?centos} <= 6 || 0%{?oraclelinux} <=6 110 %setup -n %{name} 111 %else 112 %autosetup -n %{name} 113 %endif 114 115 %build 116 export DOCKER_GITCOMMIT=%{_gitcommit} 117 ./hack/make.sh dynbinary 118 # ./man/md2man-all.sh runs outside the build container (if at all), since we don't have go-md2man here 119 120 %check 121 ./bundles/%{_origversion}/dynbinary-client/docker -v 122 ./bundles/%{_origversion}/dynbinary-daemon/dockerd -v 123 124 %install 125 # install binary 126 install -d $RPM_BUILD_ROOT/%{_bindir} 127 install -p -m 755 bundles/%{_origversion}/dynbinary-client/docker-%{_origversion} $RPM_BUILD_ROOT/%{_bindir}/docker 128 install -p -m 755 bundles/%{_origversion}/dynbinary-daemon/dockerd-%{_origversion} $RPM_BUILD_ROOT/%{_bindir}/dockerd 129 130 # install proxy 131 install -p -m 755 /usr/local/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy 132 133 # install containerd 134 install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd 135 install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim 136 install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr 137 138 # install runc 139 install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc 140 141 # install grimes 142 install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init 143 144 # install udev rules 145 install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d 146 install -p -m 644 contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules 147 148 # add init scripts 149 install -d $RPM_BUILD_ROOT/etc/sysconfig 150 install -d $RPM_BUILD_ROOT/%{_initddir} 151 152 153 %if 0%{?is_systemd} 154 install -d $RPM_BUILD_ROOT/%{_unitdir} 155 install -p -m 644 contrib/init/systemd/docker.service.rpm $RPM_BUILD_ROOT/%{_unitdir}/docker.service 156 %else 157 install -p -m 644 contrib/init/sysvinit-redhat/docker.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/docker 158 install -p -m 755 contrib/init/sysvinit-redhat/docker $RPM_BUILD_ROOT/%{_initddir}/docker 159 %endif 160 # add bash, zsh, and fish completions 161 install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions 162 install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions 163 install -d $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d 164 install -p -m 644 contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker 165 install -p -m 644 contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker 166 install -p -m 644 contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish 167 168 # install manpages 169 install -d %{buildroot}%{_mandir}/man1 170 install -p -m 644 man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1 171 install -d %{buildroot}%{_mandir}/man5 172 install -p -m 644 man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5 173 install -d %{buildroot}%{_mandir}/man8 174 install -p -m 644 man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8 175 176 # add vimfiles 177 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc 178 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect 179 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax 180 install -p -m 644 contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt 181 install -p -m 644 contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim 182 install -p -m 644 contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim 183 184 # add nano 185 install -d $RPM_BUILD_ROOT/usr/share/nano 186 install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc 187 188 # list files owned by the package here 189 %files 190 %doc AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md 191 /%{_bindir}/docker 192 /%{_bindir}/dockerd 193 /%{_bindir}/docker-containerd 194 /%{_bindir}/docker-containerd-shim 195 /%{_bindir}/docker-containerd-ctr 196 /%{_bindir}/docker-proxy 197 /%{_bindir}/docker-runc 198 /%{_bindir}/docker-init 199 /%{_sysconfdir}/udev/rules.d/80-docker.rules 200 %if 0%{?is_systemd} 201 /%{_unitdir}/docker.service 202 %else 203 %config(noreplace,missingok) /etc/sysconfig/docker 204 /%{_initddir}/docker 205 %endif 206 /usr/share/bash-completion/completions/docker 207 /usr/share/zsh/vendor-completions/_docker 208 /usr/share/fish/vendor_completions.d/docker.fish 209 %doc 210 /%{_mandir}/man1/* 211 /%{_mandir}/man5/* 212 /%{_mandir}/man8/* 213 /usr/share/vim/vimfiles/doc/dockerfile.txt 214 /usr/share/vim/vimfiles/ftdetect/dockerfile.vim 215 /usr/share/vim/vimfiles/syntax/dockerfile.vim 216 /usr/share/nano/Dockerfile.nanorc 217 218 %post 219 %if 0%{?is_systemd} 220 %systemd_post docker 221 %else 222 # This adds the proper /etc/rc*.d links for the script 223 /sbin/chkconfig --add docker 224 %endif 225 if ! getent group docker > /dev/null; then 226 groupadd --system docker 227 fi 228 229 %preun 230 %if 0%{?is_systemd} 231 %systemd_preun docker 232 %else 233 if [ $1 -eq 0 ] ; then 234 /sbin/service docker stop >/dev/null 2>&1 235 /sbin/chkconfig --del docker 236 fi 237 %endif 238 239 %postun 240 %if 0%{?is_systemd} 241 %systemd_postun_with_restart docker 242 %else 243 if [ "$1" -ge "1" ] ; then 244 /sbin/service docker condrestart >/dev/null 2>&1 || : 245 fi 246 %endif 247 248 %changelog