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