github.com/mforkel/docker-ce-i386@v17.12.1-ce-rc2+incompatible/components/packaging/rpm/fedora-26/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  mkdir -p plugin
    71  printf '{"edition_type":"ce","edition_name":"%s","edition_version":"%s"}\n' "${DISTRO}" "%{_version}" > plugin/.plugin-metadata
    72  
    73  %check
    74  cli/build/docker -v
    75  engine/bundles/dynbinary-daemon/dockerd -v
    76  
    77  %install
    78  # install binary
    79  install -d $RPM_BUILD_ROOT/%{_bindir}
    80  install -p -m 755 cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker
    81  install -p -m 755 $(readlink -f engine/bundles/dynbinary-daemon/dockerd) $RPM_BUILD_ROOT/%{_bindir}/dockerd
    82  
    83  # install proxy
    84  install -p -m 755 /usr/local/bin/docker-proxy $RPM_BUILD_ROOT/%{_bindir}/docker-proxy
    85  
    86  # install containerd
    87  install -p -m 755 /usr/local/bin/docker-containerd $RPM_BUILD_ROOT/%{_bindir}/docker-containerd
    88  install -p -m 755 /usr/local/bin/docker-containerd-shim $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-shim
    89  install -p -m 755 /usr/local/bin/docker-containerd-ctr $RPM_BUILD_ROOT/%{_bindir}/docker-containerd-ctr
    90  
    91  # install runc
    92  install -p -m 755 /usr/local/bin/docker-runc $RPM_BUILD_ROOT/%{_bindir}/docker-runc
    93  
    94  # install tini
    95  install -p -m 755 /usr/local/bin/docker-init $RPM_BUILD_ROOT/%{_bindir}/docker-init
    96  
    97  # install udev rules
    98  install -d $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d
    99  install -p -m 644 engine/contrib/udev/80-docker.rules $RPM_BUILD_ROOT/%{_sysconfdir}/udev/rules.d/80-docker.rules
   100  
   101  # add init scripts
   102  install -d $RPM_BUILD_ROOT/etc/sysconfig
   103  install -d $RPM_BUILD_ROOT/%{_initddir}
   104  install -d $RPM_BUILD_ROOT/%{_unitdir}
   105  # Fedora 25+ supports (and needs) TasksMax
   106  sed -i 's/^#TasksMax=/TasksMax=/' /systemd/docker.service
   107  install -p -m 644 /systemd/docker.service $RPM_BUILD_ROOT/%{_unitdir}/docker.service
   108  # add bash, zsh, and fish completions
   109  install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions
   110  install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions
   111  install -d $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d
   112  install -p -m 644 cli/contrib/completion/bash/docker $RPM_BUILD_ROOT/usr/share/bash-completion/completions/docker
   113  install -p -m 644 cli/contrib/completion/zsh/_docker $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions/_docker
   114  install -p -m 644 cli/contrib/completion/fish/docker.fish $RPM_BUILD_ROOT/usr/share/fish/vendor_completions.d/docker.fish
   115  
   116  # install manpages
   117  install -d %{buildroot}%{_mandir}/man1
   118  install -p -m 644 cli/man/man1/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1
   119  install -d %{buildroot}%{_mandir}/man5
   120  install -p -m 644 cli/man/man5/*.5 $RPM_BUILD_ROOT/%{_mandir}/man5
   121  install -d %{buildroot}%{_mandir}/man8
   122  install -p -m 644 cli/man/man8/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8
   123  
   124  # add vimfiles
   125  install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc
   126  install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect
   127  install -d $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax
   128  install -p -m 644 engine/contrib/syntax/vim/doc/dockerfile.txt $RPM_BUILD_ROOT/usr/share/vim/vimfiles/doc/dockerfile.txt
   129  install -p -m 644 engine/contrib/syntax/vim/ftdetect/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/ftdetect/dockerfile.vim
   130  install -p -m 644 engine/contrib/syntax/vim/syntax/dockerfile.vim $RPM_BUILD_ROOT/usr/share/vim/vimfiles/syntax/dockerfile.vim
   131  
   132  # add nano
   133  install -d $RPM_BUILD_ROOT/usr/share/nano
   134  install -p -m 644 engine/contrib/syntax/nano/Dockerfile.nanorc $RPM_BUILD_ROOT/usr/share/nano/Dockerfile.nanorc
   135  
   136  mkdir -p build-docs
   137  for engine_file in AUTHORS CHANGELOG.md CONTRIBUTING.md LICENSE MAINTAINERS NOTICE README.md; do
   138      cp "engine/$engine_file" "build-docs/engine-$engine_file"
   139  done
   140  for cli_file in LICENSE MAINTAINERS NOTICE README.md; do
   141      cp "cli/$cli_file" "build-docs/cli-$cli_file"
   142  done
   143  
   144  # list files owned by the package here
   145  %files
   146  %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
   147  %doc build-docs/cli-LICENSE build-docs/cli-MAINTAINERS build-docs/cli-NOTICE build-docs/cli-README.md
   148  /%{_bindir}/docker
   149  /%{_bindir}/dockerd
   150  /%{_bindir}/docker-containerd
   151  /%{_bindir}/docker-containerd-shim
   152  /%{_bindir}/docker-containerd-ctr
   153  /%{_bindir}/docker-proxy
   154  /%{_bindir}/docker-runc
   155  /%{_bindir}/docker-init
   156  /%{_sysconfdir}/udev/rules.d/80-docker.rules
   157  /%{_unitdir}/docker.service
   158  /usr/share/bash-completion/completions/docker
   159  /usr/share/zsh/vendor-completions/_docker
   160  /usr/share/fish/vendor_completions.d/docker.fish
   161  %doc
   162  /%{_mandir}/man1/*
   163  /%{_mandir}/man5/*
   164  /%{_mandir}/man8/*
   165  /usr/share/vim/vimfiles/doc/dockerfile.txt
   166  /usr/share/vim/vimfiles/ftdetect/dockerfile.vim
   167  /usr/share/vim/vimfiles/syntax/dockerfile.vim
   168  /usr/share/nano/Dockerfile.nanorc
   169  
   170  %pre
   171  if [ $1 -gt 0 ] ; then
   172      # package upgrade scenario, before new files are installed
   173  
   174      # clear any old state
   175      rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || :
   176  
   177      # check if docker service is running
   178      if systemctl is-active docker > /dev/null 2>&1; then
   179          systemctl stop docker > /dev/null 2>&1 || :
   180          touch %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || :
   181      fi
   182  fi
   183  
   184  %post
   185  %systemd_post docker
   186  if ! getent group docker > /dev/null; then
   187      groupadd --system docker
   188  fi
   189  
   190  %preun
   191  %systemd_preun docker
   192  
   193  %postun
   194  %systemd_postun_with_restart docker
   195  
   196  %posttrans
   197  if [ $1 -ge 0 ] ; then
   198      # package upgrade scenario, after new files are installed
   199  
   200      # check if docker was running before upgrade
   201      if [ -f %{_localstatedir}/lib/rpm-state/docker-is-active ]; then
   202          systemctl start docker > /dev/null 2>&1 || :
   203          rm -f %{_localstatedir}/lib/rpm-state/docker-is-active > /dev/null 2>&1 || :
   204      fi
   205  fi
   206  
   207  %changelog