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