Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion deb/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ RUN=docker run --rm -i \
$(RUN_FLAGS) \
debbuild-$@/$(ARCH)

SOURCE_FILES=engine-image cli.tgz docker.service docker.socket distribution_based_engine.json
SOURCE_FILES=engine-image cli.tgz docker.service docker.socket distribution_based_engine.json plugin-installers.tgz
SOURCES=$(addprefix sources/, $(SOURCE_FILES))

.PHONY: help
Expand Down Expand Up @@ -119,3 +119,10 @@ sources/engine-image:
mkdir -p $(@D)
$(MAKE) -C ../image image-linux
cp ../image/image-linux $@

sources/plugin-installers.tgz: $(wildcard ../plugins/*)
docker run --rm -i -w /v \
-v $(shell readlink -e ../plugins):/plugins \
-v $(CURDIR)/sources:/v \
alpine \
tar -C / -c -z -f /v/plugin-installers.tgz --exclude .git plugins
13 changes: 13 additions & 0 deletions deb/common/rules
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ override_dh_gencontrol:
override_dh_auto_build:
cd /go/src/github.com/docker/cli && \
LDFLAGS='' DISABLE_WARN_OUTSIDE_CONTAINER=1 make VERSION=$(VERSION) GITCOMMIT=$(DOCKER_GITCOMMIT) dynbinary manpages
# Make sure to set LDFLAGS="" since, dpkg-buildflags sets it to some weird values
set -e;cd /sources && \
tar xzf plugin-installers.tgz; \
for installer in plugins/*.installer; do \
LDFLAGS='' bash $${installer} build; \
done

override_dh_strip:
# Go has lots of problems with stripping, so just don't
Expand All @@ -19,6 +25,13 @@ override_dh_auto_install:
install -D -m 0644 /go/src/github.com/docker/cli/contrib/completion/fish/docker.fish debian/docker-ce-cli/usr/share/fish/vendor_completions.d/docker.fish
install -D -m 0644 /go/src/github.com/docker/cli/contrib/completion/zsh/_docker debian/docker-ce-cli/usr/share/zsh/vendor-completions/_docker
install -D -m 0755 /go/src/github.com/docker/cli/build/docker debian/docker-ce-cli/usr/bin/docker
set -e;cd /sources && \
tar xzf plugin-installers.tgz; \
for installer in plugins/*.installer; do \
DESTDIR=/root/build-deb/debian/docker-ce-cli \
PREFIX=/usr/libexec/docker/cli-plugins \
bash $${installer} install_plugin; \
done
# docker-ce install
install -D -m 0644 /sources/docker.service debian/docker-ce/lib/systemd/system/docker.service
install -D -m 0644 /sources/docker.socket debian/docker-ce/lib/systemd/system/docker.socket
Expand Down
34 changes: 34 additions & 0 deletions plugins/.common
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/env bash

DESTDIR=${DESTDIR:-}
PREFIX=${PREFIX:-/usr/local}

add_github_ssh_host() {
# You're not able to clone from github unless you add to known_hosts
if ! grep ~/.ssh/known_hosts "github.com" >/dev/null 2>/dev/null; then
mkdir -p ~/.ssh
ssh-keyscan github.com >> ~/.ssh/known_hosts
fi
}

install_binary() {
for binary in "$@"; do
mkdir -p "${DESTDIR}${PREFIX}"
install -p -m 755 "${binary}" "${DESTDIR}${PREFIX}"
done
}

build_or_install() {
case $1 in
build)
build
;;
install_plugin)
install_plugin
;;
*)
echo "Are you sure that's a command? o.O"
exit 1
;;
esac
}
Empty file added plugins/.gitkeep
Empty file.
32 changes: 32 additions & 0 deletions plugins/app.installer
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/usr/bin/env bash

set -e

source "$(dirname "$0")/.common"

GOPATH=$(go env GOPATH)
REPO=https://github.com/docker/app.git
COMMIT=207a9459e78dcccbf3eb7e8ca5763835b526478d
DEST=${GOPATH}/src/github.com/docker/app

build() {
if [ ! -d "${DEST}" ]; then
git clone "${REPO}" "${DEST}"
fi
(
cd "${DEST}"
git fetch --all
git checkout -q "${COMMIT}"
# There's no real versions yet, but this'll just leave it blank
make bin/docker-app
)
}

install_plugin() {
(
cd "${DEST}"
install_binary bin/docker-app
)
}

build_or_install "$@"
9 changes: 8 additions & 1 deletion rpm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ RPMBUILD_FLAGS?=-ba\
$(SPECS)
RUN?=$(RPMBUILD) rpmbuild-$@/$(ARCH) $(RPMBUILD_FLAGS)

SOURCE_FILES=engine-image cli.tgz docker.service docker.socket distribution_based_engine.json
SOURCE_FILES=engine-image cli.tgz docker.service docker.socket distribution_based_engine.json plugin-installers.tgz
SOURCES=$(addprefix rpmbuild/SOURCES/, $(SOURCE_FILES))


Expand Down Expand Up @@ -109,3 +109,10 @@ rpmbuild/SOURCES/distribution_based_engine.json: rpmbuild/SOURCES/engine-image
mkdir -p $(@D)
docker inspect "$(shell cat $<)" \
--format '{{index .Config.Labels "com.docker.distribution_based_engine" }}' > $@

rpmbuild/SOURCES/plugin-installers.tgz: $(wildcard ../plugins/*)
docker run --rm -i -w /v \
-v $(shell readlink -e ../plugins):/plugins \
-v $(CURDIR)/rpmbuild/SOURCES:/v \
alpine \
tar -C / -c -z -f /v/plugin-installers.tgz --exclude .git plugins
22 changes: 21 additions & 1 deletion rpm/SPECS/docker-ce-cli.spec
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ 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 <support@docker.com>
Expand All @@ -17,6 +18,7 @@ Requires: /bin/sh

BuildRequires: make
BuildRequires: libtool-ltdl-devel
BuildRequires: git

# conflicting packages
Conflicts: docker
Expand All @@ -37,7 +39,7 @@ for deploying and scaling web apps, databases, and backend services without
depending on a particular stack or provider.

%prep
%setup -q -c -n src
%setup -q -c -n src -a 1

%build
mkdir -p /go/src/github.com/docker
Expand All @@ -47,6 +49,14 @@ pushd /go/src/github.com/docker/cli
DISABLE_WARN_OUTSIDE_CONTAINER=1 make VERSION=%{_origversion} GITCOMMIT=%{_gitcommit} dynbinary manpages # cli
popd

# Build all associated plugins
pushd /root/rpmbuild/BUILD/src/plugins
for installer in *.installer; do
bash ${installer} build
done
popd


# %check
# cli/build/docker -v

Expand All @@ -55,6 +65,15 @@ popd
install -d $RPM_BUILD_ROOT/%{_bindir}
install -p -m 755 cli/build/docker $RPM_BUILD_ROOT/%{_bindir}/docker

# install plugins
pushd /root/rpmbuild/BUILD/src/plugins
for installer in *.installer; do
DESTDIR=$RPM_BUILD_ROOT \
PREFIX=/usr/libexec/docker/cli-plugins \
bash ${installer} install_plugin
done
popd

# add bash, zsh, and fish completions
install -d $RPM_BUILD_ROOT/usr/share/bash-completion/completions
install -d $RPM_BUILD_ROOT/usr/share/zsh/vendor-completions
Expand All @@ -80,6 +99,7 @@ done
%files
%doc build-docs/LICENSE build-docs/MAINTAINERS build-docs/NOTICE build-docs/README.md
/%{_bindir}/docker
/usr/libexec/docker/cli-plugins/*
/usr/share/bash-completion/completions/docker
/usr/share/zsh/vendor-completions/_docker
/usr/share/fish/vendor_completions.d/docker.fish
Expand Down