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