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