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