%global debug_package %{nil} Name: docker-ce-cli Version: %{_version} Release: %{_release}%{?dist} Epoch: 1 Summary: The open-source application container engine Group: Tools/Docker License: ASL 2.0 Source0: cli.tgz Source1: plugin-installers.tgz URL: https://www.docker.com Vendor: Docker Packager: Docker # required packages on install Requires: /bin/sh Requires: /usr/sbin/groupadd # TODO change once we support scan-plugin on other architectures %ifarch x86_64 # CentOS 7 and RHEL 7 do not yet support weak dependencies # # Note that we're not using <= 7 here, to account for other RPM distros, such # as Fedora, which would not have the rhel macro set (so default to 0). %if 0%{?rhel} == 7 Requires: docker-scan-plugin(x86-64) %else Recommends: docker-scan-plugin(x86-64) %endif %endif BuildRequires: make BuildRequires: libtool-ltdl-devel BuildRequires: git BuildRequires: golang BuildRequires: go-md2man # conflicting packages Conflicts: docker Conflicts: docker-io Conflicts: docker-engine-cs Conflicts: docker-ee Conflicts: docker-ee-cli %description Docker is is a product for you to build, ship and run any application as a lightweight container. Docker containers are both hardware-agnostic and platform-agnostic. This means they can run anywhere, from your laptop to the largest cloud compute instance and everything in between - and they don't require you to use a particular language, framework or packaging system. That makes them great building blocks for deploying and scaling web apps, databases, and backend services without depending on a particular stack or provider. %prep %setup -q -c -n src -a 1 %build go env -w GO111MODULE=off export PREFIX=${RPM_BUILD_DIR} export TMP_GOPATH="${RPM_BUILD_DIR}/go" export GOPATH="${RPM_BUILD_DIR}/go" mkdir -p ${RPM_BUILD_DIR}/go/src/github.com/docker rm -f ${RPM_BUILD_DIR}/go/src/github.com/docker/cli ln -s ${RPM_BUILD_DIR}/src/cli ${RPM_BUILD_DIR}/go/src/github.com/docker/cli pushd ${RPM_BUILD_DIR}/go/src/github.com/docker/cli DISABLE_WARN_OUTSIDE_CONTAINER=1 make VERSION=%{_origversion} GITCOMMIT=%{_gitcommit_cli} dynbinary manpages # cli popd # Build all associated plugins pushd ${RPM_BUILD_DIR}/src/plugins for installer in *.installer; do if [ "${installer}" != "scan.installer" ]; then bash ${installer} build fi done popd %check ver="$(cli/build/docker --version)"; \ test "$ver" = "Docker version %{_origversion}, build %{_gitcommit_cli}" && echo "PASS: cli version OK" || (echo "FAIL: cli version ($ver) did not match" && exit 1) %install # install binary export GOPATH="${RPM_BUILD_DIR}/go" install -d ${RPM_BUILD_ROOT}%{_bindir} install -p -m 755 cli/build/docker ${RPM_BUILD_ROOT}%{_bindir}/docker # install plugins pushd ${RPM_BUILD_DIR}/src/plugins for installer in *.installer; do if [ "${installer}" != "scan.installer" ]; then DESTDIR=${RPM_BUILD_ROOT} \ PREFIX=%{_libexecdir}/docker/cli-plugins \ bash ${installer} install_plugin fi done popd # add bash, zsh, and fish completions install -d ${RPM_BUILD_ROOT}%{_datadir}/bash-completion/completions install -d ${RPM_BUILD_ROOT}%{_datadir}/zsh/vendor-completions install -d ${RPM_BUILD_ROOT}%{_datadir}/fish/vendor_completions.d install -p -m 644 cli/contrib/completion/bash/docker ${RPM_BUILD_ROOT}%{_datadir}/bash-completion/completions/docker install -p -m 644 cli/contrib/completion/zsh/_docker ${RPM_BUILD_ROOT}%{_datadir}/zsh/vendor-completions/_docker install -p -m 644 cli/contrib/completion/fish/docker.fish ${RPM_BUILD_ROOT}%{_datadir}/fish/vendor_completions.d/docker.fish # install manpages install -d ${RPM_BUILD_ROOT}%{_mandir}/man1 install -p -m 644 cli/man/man1/*.1 ${RPM_BUILD_ROOT}%{_mandir}/man1 install -d ${RPM_BUILD_ROOT}%{_mandir}/man5 install -p -m 644 cli/man/man5/*.5 ${RPM_BUILD_ROOT}%{_mandir}/man5 install -d ${RPM_BUILD_ROOT}%{_mandir}/man8 install -p -m 644 cli/man/man8/*.8 ${RPM_BUILD_ROOT}%{_mandir}/man8 mkdir -p build-docs for cli_file in LICENSE MAINTAINERS NOTICE README.md; do cp "cli/$cli_file" "build-docs/$cli_file" done # list files owned by the package here %files %doc build-docs/LICENSE build-docs/MAINTAINERS build-docs/NOTICE build-docs/README.md %{_bindir}/docker %{_libexecdir}/docker/cli-plugins/* %{_datadir}/bash-completion/completions/docker %{_datadir}/zsh/vendor-completions/_docker %{_datadir}/fish/vendor_completions.d/docker.fish %doc %{_mandir}/man1/* %{_mandir}/man5/* %{_mandir}/man8/* %post if ! getent group docker > /dev/null; then groupadd --system docker fi %changelog