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