github.com/docker/docker-ce@v17.12.1-ce-rc2+incompatible/components/packaging/rpm/fedora-25/docker-ce.spec (about)

     1  Name: docker-ce
     2  Version: %{_version}
     3  Release: %{_release}%{?dist}
     4  Summary: The open-source application container engine
     5  Group: Tools/Docker
     6  License: ASL 2.0
     7  Source0: engine.tgz
     8  Source1: cli.tgz
     9  URL: https://www.docker.com
    10  Vendor: Docker
    11  Packager: Docker <support@docker.com>
    12  
    13  # DWZ problem with multiple golang binary, see bug
    14  # https://bugzilla.redhat.com/show_bug.cgi?id=995136#c12
    15  %global _dwz_low_mem_die_limit 0
    16  %global is_systemd 1
    17  %global with_selinux 1
    18  
    19  BuildRequires: pkgconfig(systemd)
    20  
    21  # required packages on install
    22  Requires: /bin/sh
    23  Requires: container-selinux >= 2.9
    24  Requires: iptables
    25  Requires: libcgroup
    26  Requires: systemd-units
    27  Requires: tar
    28  Requires: xz
    29  
    30  # Resolves: rhbz#1165615
    31  Requires: device-mapper-libs >= 1.02.90-1
    32  
    33  # conflicting packages
    34  Conflicts: docker
    35  Conflicts: docker-io
    36  Conflicts: docker-engine-cs
    37  Conflicts: docker-ee
    38  
    39  # Obsolete packages
    40  Obsoletes: docker-ce-selinux
    41  Obsoletes: docker-engine-selinux
    42  Obsoletes: docker-engine
    43  
    44  %description
    45  Docker is an open source project to build, ship and run any application as a
    46  lightweight container.
    47  
    48  Docker containers are both hardware-agnostic and platform-agnostic. This means
    49  they can run anywhere, from your laptop to the largest EC2 compute instance and
    50  everything in between - and they don't require you to use a particular
    51  language, framework or packaging system. That makes them great building blocks
    52  for deploying and scaling web apps, databases, and backend services without
    53  depending on a particular stack or provider.
    54  
    55  %prep
    56  %setup -q -c -n src -a 1
    57  
    58  %build
    59  export DOCKER_GITCOMMIT=%{_gitcommit}
    60  mkdir -p /go/src/github.com/docker
    61  rm -f /go/src/github.com/docker/cli
    62  ln -s /root/rpmbuild/BUILD/src/cli /go/src/github.com/docker/cli
    63  pushd /go/src/github.com/docker/cli
    64  make VERSION=%{_origversion} GITCOMMIT=%{_gitcommit} dynbinary manpages # cli
    65  popd
    66  pushd engine
    67  TMP_GOPATH="/go" hack/dockerfile/install-binaries.sh runc-dynamic containerd-dynamic proxy-dynamic tini
    68  VERSION=%{_origversion} hack/make.sh dynbinary
    69  popd
    70  
    71  %check
    72  cli/build/docker -v
    73  engine/bundles/dynbinary-daemon/dockerd -v
    74  
    75  %install
    76  # install binary
    77  install -d $RPM_BUILD_ROOT/%{_bindir}
    78  install -p -m 755 cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker
    79  install -p -m 755 $(readlink -f engine/bundles/dynbinary-daemon/dockerd) $RPM_BUILD_ROOT/%{_bindir}/dockerd
    80  
    81  # install proxy
    82  install -p -m 755 /usr/local/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy
    83  
    84  # install containerd
    85  install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
    86  install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
    87  install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
    88  
    89  # install runc
    90  install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
    91  
    92  # install tini
    93  install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init
    94  
    95  # install udev rules
    96  install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d
    97  install -p -m 644 engine/contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules
    98  
    99  # add init scripts
   100  install -d $RPM_BUILD_ROOT/etc/sysconfig
   101  install -d $RPM_BUILD_ROOT/%{_initddir}
   102  install -d $RPM_BUILD_ROOT/%{_unitdir}
   103  # Fedora 25+ supports (and needs) TasksMax
   104  sed -i 's/^#TasksMax=/TasksMax=/' /systemd/docker.service
   105  install -p -m 644 /systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service
   106  # add bash, zsh, and fish 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/vendor_completions.d
   110  install -p -m 644 cli/contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker
   111  install -p -m 644 cli/contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker
   112  install -p -m 644 cli/contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish
   113  
   114  # install manpages
   115  install -d %{buildroot}%{_mandir}/man1
   116  install -p -m 644 cli/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1
   117  install -d %{buildroot}%{_mandir}/man5
   118  install -p -m 644 cli/man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5
   119  install -d %{buildroot}%{_mandir}/man8
   120  install -p -m 644 cli/man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8
   121  
   122  # add vimfiles
   123  install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc
   124  install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect
   125  install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax
   126  install -p -m 644 engine/contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt
   127  install -p -m 644 engine/contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
   128  install -p -m 644 engine/contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim
   129  
   130  # add nano
   131  install -d $RPM_BUILD_ROOT/usr/share/nano
   132  install -p -m 644 engine/contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc
   133  
   134  mkdir -p build-docs
   135  for engine_file in AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md; do
   136      cp "engine/$engine_file" "build-docs/engine-$engine_file"
   137  done
   138  for cli_file in LICENSE MAINTAINERS NOTICE README.md; do
   139      cp "cli/$cli_file" "build-docs/cli-$cli_file"
   140  done
   141  
   142  # list files owned by the package here
   143  %files
   144  %doc build-docs/engine-AUTHORS build-docs/engine-CHANGELOG.md build-docs/engine-CONTRIBUTING.md build-docs/engine-LICENSE build-docs/engine-MAINTAINERS build-docs/engine-NOTICE build-docs/engine-README.md
   145  %doc build-docs/cli-LICENSE build-docs/cli-MAINTAINERS build-docs/cli-NOTICE build-docs/cli-README.md
   146  /%{_bindir}/docker
   147  /%{_bindir}/dockerd
   148  /%{_bindir}/docker-containerd
   149  /%{_bindir}/docker-containerd-shim
   150  /%{_bindir}/docker-containerd-ctr
   151  /%{_bindir}/docker-proxy
   152  /%{_bindir}/docker-runc
   153  /%{_bindir}/docker-init
   154  /%{_sysconfdir}/udev/rules.d/80-docker.rules
   155  /%{_unitdir}/docker.service
   156  /usr/share/bash-completion/completions/docker
   157  /usr/share/zsh/vendor-completions/_docker
   158  /usr/share/fish/vendor_completions.d/docker.fish
   159  %doc
   160  /%{_mandir}/man1/*
   161  /%{_mandir}/man5/*
   162  /%{_mandir}/man8/*
   163  /usr/share/vim/vimfiles/doc/dockerfile.txt
   164  /usr/share/vim/vimfiles/ftdetect/dockerfile.vim
   165  /usr/share/vim/vimfiles/syntax/dockerfile.vim
   166  /usr/share/nano/Dockerfile.nanorc
   167  
   168  %pre
   169  if [ $1 -gt 0 ] ; then
   170      # package upgrade scenario, before new files are installed
   171  
   172      # clear any old state
   173      rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || :
   174  
   175      # check if docker service is running
   176      if systemctl is-active docker > /dev/null 2>&1; then
   177          systemctl stop docker > /dev/null 2>&1 || :
   178          touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || :
   179      fi
   180  fi
   181  
   182  %post
   183  %systemd_post docker
   184  if ! getent group docker > /dev/null; then
   185      groupadd --system docker
   186  fi
   187  
   188  %preun
   189  %systemd_preun docker
   190  
   191  %postun
   192  %systemd_postun_with_restart docker
   193  
   194  %posttrans
   195  if [ $1 -ge 0 ] ; then
   196      # package upgrade scenario, after new files are installed
   197  
   198      # check if docker was running before upgrade
   199      if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then
   200          systemctl start docker > /dev/null 2>&1 || :
   201          rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || :
   202      fi
   203  fi
   204  
   205  %changelog