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