github.com/amylindburg/docker@v1.7.0/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 6 License: ASL 2.0 7 Source: %{name}.tar.gz 8 9 URL: https://dockerproject.org 10 Vendor: Docker 11 Packager: Docker <support@docker.com> 12 13 # docker builds in a checksum of dockerinit into docker, 14 # # so stripping the binaries breaks docker 15 %global __os_install_post %{_rpmconfigdir}/brp-compress 16 %global debug_package %{nil} 17 18 # is_systemd conditional 19 %if 0%{?fedora} >= 21 || 0%{?centos} >= 7 || 0%{?rhel} >= 7 20 %global is_systemd 1 21 %endif 22 23 # required packages for build 24 # most are already in the container (see contrib/builder/rpm/generate.sh) 25 # only require systemd on those systems 26 %if 0%{?is_systemd} 27 BuildRequires: pkgconfig(systemd) 28 Requires: systemd-units 29 %else 30 Requires(post): chkconfig 31 Requires(preun): chkconfig 32 # This is for /sbin/service 33 Requires(preun): initscripts 34 %endif 35 36 # required packages on install 37 Requires: /bin/sh 38 Requires: iptables 39 Requires: libc.so.6 40 Requires: libcgroup 41 Requires: libpthread.so.0 42 Requires: libsqlite3.so.0 43 Requires: tar 44 Requires: xz 45 %if 0%{?fedora} >= 21 46 # Resolves: rhbz#1165615 47 Requires: device-mapper-libs >= 1.02.90-1 48 %endif 49 50 # conflicting packages 51 Conflicts: docker 52 Conflicts: docker-io 53 54 %description 55 Docker is an open source project to pack, ship and run any application as a 56 lightweight container 57 58 Docker containers are both hardware-agnostic and platform-agnostic. This means 59 they can run anywhere, from your laptop to the largest EC2 compute instance and 60 everything in between - and they don't require you to use a particular 61 language, framework or packaging system. That makes them great building blocks 62 for deploying and scaling web apps, databases, and backend services without 63 depending on a particular stack or provider. 64 65 %prep 66 %if 0%{?centos} <= 6 67 %setup -n %{name} 68 %else 69 %autosetup -n %{name} 70 %endif 71 72 %build 73 ./hack/make.sh dynbinary 74 # ./man/md2man-all.sh runs outside the build container (if at all), since we don't have go-md2man here 75 76 %check 77 ./bundles/%{_origversion}/dynbinary/docker -v 78 79 %install 80 # install binary 81 install -d $RPM_BUILD_ROOT/%{_bindir} 82 install -p -m 755 bundles/%{_origversion}/dynbinary/docker-%{_origversion} $RPM_BUILD_ROOT/%{_bindir}/docker 83 84 # install dockerinit 85 install -d $RPM_BUILD_ROOT/%{_libexecdir}/docker 86 install -p -m 755 bundles/%{_origversion}/dynbinary/dockerinit-%{_origversion} $RPM_BUILD_ROOT/%{_libexecdir}/docker/dockerinit 87 88 # install udev rules 89 install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d 90 install -p -m 755 contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules 91 92 # add init scripts 93 install -d $RPM_BUILD_ROOT/etc/sysconfig 94 install -d $RPM_BUILD_ROOT/%{_initddir} 95 96 97 %if 0%{?is_systemd} 98 install -d $RPM_BUILD_ROOT/%{_unitdir} 99 install -p -m 644 contrib/init/systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service 100 install -p -m 644 contrib/init/systemd/docker.socket $RPM_BUILD_ROOT/%{_unitdir}/docker.socket 101 %endif 102 103 install -p -m 644 contrib/init/sysvinit-redhat/docker.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/docker 104 install -p -m 755 contrib/init/sysvinit-redhat/docker $RPM_BUILD_ROOT/%{_initddir}/docker 105 106 # add bash completions 107 install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions 108 install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions 109 install -d $RPM_BUILD_ROOT/usr/share/fish/completions 110 install -p -m 644 contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker 111 install -p -m 644 contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker 112 install -p -m 644 contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/completions/docker.fish 113 114 # install manpages 115 install -d %{buildroot}%{_mandir}/man1 116 install -p -m 644 man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1 117 install -d %{buildroot}%{_mandir}/man5 118 install -p -m 644 man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5 119 120 # add vimfiles 121 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc 122 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect 123 install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax 124 install -p -m 644 contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt 125 install -p -m 644 contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim 126 install -p -m 644 contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim 127 128 # add nano 129 install -d $RPM_BUILD_ROOT/usr/share/nano 130 install -p -m 644 contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc 131 132 # list files owned by the package here 133 %files 134 /%{_bindir}/docker 135 /%{_libexecdir}/docker/dockerinit 136 /%{_sysconfdir}/udev/rules.d/80-docker.rules 137 %if 0%{?is_systemd} 138 /%{_unitdir}/docker.service 139 /%{_unitdir}/docker.socket 140 %endif 141 /etc/sysconfig/docker 142 /%{_initddir}/docker 143 /usr/share/bash-completion/completions/docker 144 /usr/share/zsh/vendor-completions/_docker 145 /usr/share/fish/completions/docker.fish 146 %doc 147 /%{_mandir}/man1/* 148 /%{_mandir}/man5/* 149 /usr/share/vim/vimfiles/doc/dockerfile.txt 150 /usr/share/vim/vimfiles/ftdetect/dockerfile.vim 151 /usr/share/vim/vimfiles/syntax/dockerfile.vim 152 /usr/share/nano/Dockerfile.nanorc 153 154 %post 155 %if 0%{?is_systemd} 156 %systemd_post docker 157 %else 158 # This adds the proper /etc/rc*.d links for the script 159 /sbin/chkconfig --add docker 160 %endif 161 if ! getent group docker > /dev/null; then 162 groupadd --system docker 163 fi 164 165 %preun 166 %if 0%{?is_systemd} 167 %systemd_preun docker 168 %else 169 if [ $1 -eq 0 ] ; then 170 /sbin/service docker stop >/dev/null 2>&1 171 /sbin/chkconfig --del docker 172 fi 173 %endif 174 175 %postun 176 %if 0%{?is_systemd} 177 %systemd_postun_with_restart docker 178 %else 179 if [ "$1" -ge "1" ] ; then 180 /sbin/service docker condrestart >/dev/null 2>&1 || : 181 fi 182 %endif 183 184 %changelog