All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Stewart <christian@paral.in>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 6/6] docker-engine: split into docker-{cli, engine}, bump v2018.06-ce-rc3
Date: Sat, 14 Jul 2018 18:07:32 -0700	[thread overview]
Message-ID: <20180715010732.21765-12-christian@paral.in> (raw)
In-Reply-To: <20180715010732.21765-1-christian@paral.in>

Docker upstream has split the Docker daemon and CLI into separate codebases:

 - github.com/docker/docker-engine: daemon, remains in docker-engine
 - github.com/docker/cli: cli, split into docker-cli and selected by engine

This commit splits the docker-engine package into docker-engine and docker-cli.
Conveniently, the Docker project has begun maintaining two separate
release-tagged repositories for the CLI and daemon as of v18.06-ce-rc1. Previous
versions were tagged in a common "docker-ce" repository which makes compilation
awkward for Buildroot, especially due to some limitations in the new Go package
infrastructure.

Legacy flags are added to ease the transition:

 - BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT=y -> BR2_PACKAGE_DOCKER_CLI_STATIC
 - docker-engine selects docker-cli

Docker repositories "engine" and "cli" recently started tagging releases as
recent as v18.06-ce-rc1, so we pull the latest tagged release v18.06-ce-rc3 and
upgrade to v18.06-ce when it is released.

Signed-off-by: Christian Stewart <christian@paral.in>
---
 Config.in.legacy                         |  9 +++++++++
 package/Config.in                        |  1 +
 package/docker-cli/Config.in             | 25 +++++++++++++++++++++++++
 package/docker-cli/docker-cli.hash       |  2 ++
 package/docker-cli/docker-cli.mk         | 29 +++++++++++++++++++++++++++++
 package/docker-engine/Config.in          |  7 +------
 package/docker-engine/docker-engine.hash |  2 +-
 package/docker-engine/docker-engine.mk   | 32 ++++++++++++++------------------
 8 files changed, 82 insertions(+), 25 deletions(-)
 create mode 100644 package/docker-cli/Config.in
 create mode 100644 package/docker-cli/docker-cli.hash
 create mode 100644 package/docker-cli/docker-cli.mk

diff --git a/Config.in.legacy b/Config.in.legacy
index 9743ebd08f..4cf9d05b9c 100644
--- a/Config.in.legacy
+++ b/Config.in.legacy
@@ -242,6 +242,15 @@ config BR2_GDB_VERSION_7_10
 ###############################################################################
 comment "Legacy options removed in 2018.05"
 
+config BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT
+	bool "docker-engine static client option renamed"
+	select BR2_LEGACY
+  select BR2_PACKAGE_DOCKER_CLI_STATIC
+	help
+	  For consistency reasons, the option
+	  BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT has been renamed to
+	  BR2_PACKAGE_DOCKER_CLI_STATIC
+
 config BR2_PACKAGE_MEDIAART_BACKEND_NONE
 	bool "libmediaart none backend option renamed"
 	select BR2_LEGACY
diff --git a/package/Config.in b/package/Config.in
index 2aeb8d0f10..28c1452a0f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2007,6 +2007,7 @@ menu "System tools"
 	source "package/dcron/Config.in"
 	source "package/ddrescue/Config.in"
 	source "package/debianutils/Config.in"
+	source "package/docker-cli/Config.in"
 	source "package/docker-compose/Config.in"
 	source "package/docker-containerd/Config.in"
 	source "package/docker-engine/Config.in"
diff --git a/package/docker-cli/Config.in b/package/docker-cli/Config.in
new file mode 100644
index 0000000000..82c35c453d
--- /dev/null
+++ b/package/docker-cli/Config.in
@@ -0,0 +1,25 @@
+config BR2_PACKAGE_DOCKER_CLI
+	bool "docker-cli"
+	depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	help
+	  Docker is a platform to build, ship,
+	  and run applications as lightweight containers.
+
+	  https://github.com/docker/cli
+
+if BR2_PACKAGE_DOCKER_CLI
+
+config BR2_PACKAGE_DOCKER_CLI_STATIC
+	bool "build static client"
+	depends on !BR2_STATIC_LIBS
+	help
+	  Build a static docker client.
+
+endif
+
+comment "docker-cli needs a toolchain w/ threads"
+	depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/docker-cli/docker-cli.hash b/package/docker-cli/docker-cli.hash
new file mode 100644
index 0000000000..92b821de36
--- /dev/null
+++ b/package/docker-cli/docker-cli.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256	06a302b43d6a2110ca33808077ca025f4adf9992c32a3cebc5373ecc3cdd44a2  docker-cli-v18.06.0-ce-rc3.tar.gz
diff --git a/package/docker-cli/docker-cli.mk b/package/docker-cli/docker-cli.mk
new file mode 100644
index 0000000000..f11a8b514e
--- /dev/null
+++ b/package/docker-cli/docker-cli.mk
@@ -0,0 +1,29 @@
+###############################################################################
+#
+# docker-cli
+#
+################################################################################
+
+DOCKER_CLI_VERSION = v18.06.0-ce-rc3
+DOCKER_CLI_SITE = $(call github,docker,cli,$(DOCKER_CLI_VERSION))
+DOCKER_CLI_WORKSPACE = gopath
+
+DOCKER_CLI_LICENSE = Apache-2.0
+DOCKER_CLI_LICENSE_FILES = LICENSE
+
+DOCKER_CLI_DEPENDENCIES = host-go host-pkgconf
+
+DOCKER_CLI_LDFLAGS = \
+	-X github.com/docker/cli/cli.GitCommit=$(DOCKER_CLI_VERSION) \
+	-X github.com/docker/cli/cli.Version=$(DOCKER_CLI_VERSION)
+
+ifeq ($(BR2_PACKAGE_DOCKER_CLI_STATIC),y)
+DOCKER_CLI_LDFLAGS += -extldflags '-static'
+endif
+
+DOCKER_CLI_TAGS = cgo autogen
+DOCKER_CLI_BUILD_TARGETS = cmd/docker
+
+DOCKER_CLI_INSTALL_BINS = $(notdir $(DOCKER_CLI_BUILD_TARGETS))
+
+$(eval $(golang-package))
diff --git a/package/docker-engine/Config.in b/package/docker-engine/Config.in
index a76940b6c0..e1e8ce0065 100644
--- a/package/docker-engine/Config.in
+++ b/package/docker-engine/Config.in
@@ -3,6 +3,7 @@ config BR2_PACKAGE_DOCKER_ENGINE
 	depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
 	depends on BR2_PACKAGE_HOST_GO_CGO_LINKING_SUPPORTS
 	depends on BR2_TOOLCHAIN_HAS_THREADS
+  select BR2_PACKAGE_DOCKER_CLI
 	help
 	  Docker is a platform to build, ship,
 	  and run applications as lightweight containers.
@@ -26,12 +27,6 @@ config BR2_PACKAGE_DOCKER_ENGINE_DAEMON
 config BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL
 	bool "build experimental features"
 
-config BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT
-	bool "build static client"
-	depends on !BR2_STATIC_LIBS
-	help
-	  Build a static docker client.
-
 if BR2_PACKAGE_DOCKER_ENGINE_DAEMON
 
 choice
diff --git a/package/docker-engine/docker-engine.hash b/package/docker-engine/docker-engine.hash
index 6c0ed338a5..592f570a09 100644
--- a/package/docker-engine/docker-engine.hash
+++ b/package/docker-engine/docker-engine.hash
@@ -1,2 +1,2 @@
 # Locally calculated
-sha256	4716df117d867b82ddab2e82395cd40aa3d0925a689eedcec8919729e4c9f121	docker-engine-v17.05.0-ce.tar.gz
+sha256	faf546bf0fdcf32d4f9ddbe67759fb39871dc9ea42bddffea23286fcdbf28842  docker-engine-v18.06.0-ce-rc3.tar.gz
diff --git a/package/docker-engine/docker-engine.mk b/package/docker-engine/docker-engine.mk
index a85f4b5784..b251befa09 100644
--- a/package/docker-engine/docker-engine.mk
+++ b/package/docker-engine/docker-engine.mk
@@ -4,25 +4,21 @@
 #
 ################################################################################
 
-DOCKER_ENGINE_VERSION = v17.05.0-ce
-DOCKER_ENGINE_COMMIT = 89658bed64c2a8fe05a978e5b87dbec409d57a0f
-DOCKER_ENGINE_SITE = $(call github,docker,docker,$(DOCKER_ENGINE_VERSION))
+DOCKER_ENGINE_VERSION = v18.06.0-ce-rc3
+DOCKER_ENGINE_SITE = $(call github,docker,engine,$(DOCKER_ENGINE_VERSION))
 
 DOCKER_ENGINE_LICENSE = Apache-2.0
 DOCKER_ENGINE_LICENSE_FILES = LICENSE
 
 DOCKER_ENGINE_DEPENDENCIES = host-go host-pkgconf
+DOCKER_ENGINE_SRC_SUBDIR = github.com/docker/docker
 
 DOCKER_ENGINE_LDFLAGS = \
 	-X main.GitCommit=$(DOCKER_ENGINE_VERSION) \
 	-X main.Version=$(DOCKER_ENGINE_VERSION)
 
-ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT),y)
-DOCKER_ENGINE_LDFLAGS += -extldflags '-static'
-endif
-
 DOCKER_ENGINE_TAGS = cgo exclude_graphdriver_zfs autogen
-DOCKER_ENGINE_BUILD_TARGETS = cmd/docker
+DOCKER_ENGINE_BUILD_TARGETS = cmd/dockerd
 
 ifeq ($(BR2_PACKAGE_LIBSECCOMP),y)
 DOCKER_ENGINE_TAGS += seccomp
@@ -32,11 +28,7 @@ endif
 ifeq ($(BR2_INIT_SYSTEMD),y)
 DOCKER_ENGINE_TAGS += journald
 DOCKER_ENGINE_DEPENDENCIES += systemd
-endif
-
-ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
-DOCKER_ENGINE_TAGS += daemon
-DOCKER_ENGINE_BUILD_TARGETS += cmd/dockerd
+DOCKER_ENGINE_TAGS += systemd journald
 endif
 
 ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_EXPERIMENTAL),y)
@@ -64,15 +56,16 @@ endif
 DOCKER_ENGINE_INSTALL_BINS = $(notdir $(DOCKER_ENGINE_BUILD_TARGETS))
 
 ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_INIT_DUMB_INIT),y)
-DOCKER_ENGINE_INSTALL_BINS += dumb-init
+DOCKER_ENGINE_INIT_BIN = dumb-init
 else
-DOCKER_ENGINE_INSTALL_BINS += tini
+DOCKER_ENGINE_INIT_BIN = tini
 endif
 
 define DOCKER_ENGINE_RUN_AUTOGEN
 	cd $(@D) && \
 		GITCOMMIT="$$(echo $(DOCKER_ENGINE_COMMIT) | head -c7)" \
 		BUILDTIME="$$(date)" \
+		IAMSTATIC="true" \
 		VERSION="$(patsubst v%,%,$(DOCKER_ENGINE_VERSION))" \
 		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" $(TARGET_MAKE_ENV) \
 		bash ./hack/make/.go-autogen
@@ -80,7 +73,12 @@ endef
 
 DOCKER_ENGINE_POST_CONFIGURE_HOOKS += DOCKER_ENGINE_RUN_AUTOGEN
 
-ifeq ($(BR2_PACKAGE_DOCKER_ENGINE_DAEMON),y)
+define DOCKER_ENGINE_LINK_INIT
+	ln -s $(DOCKER_ENGINE_INIT_BIN) \
+		$(TARGET_DIR)/usr/bin/$(DOCKER_ENGINE_INIT_BIN)
+endef
+
+DOCKER_ENGINE_POST_INSTALL_HOOKS += DOCKER_ENGINE_LINK_INIT
 
 define DOCKER_ENGINE_INSTALL_INIT_SYSTEMD
 	$(INSTALL) -D -m 0644 $(@D)/contrib/init/systemd/docker.service \
@@ -96,6 +94,4 @@ define DOCKER_ENGINE_USERS
 	- - docker -1 * - - - Docker Application Container Framework
 endef
 
-endif
-
 $(eval $(golang-package))
-- 
2.16.1

  parent reply	other threads:[~2018-07-15  1:07 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-15  1:07 [Buildroot] [PATCH 1/6] tini: new package Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH 2/6] dumb-init: " Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH 3/6] docker-engine: add support for init processes Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH 4/6] runc: bump to 69663f0b Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH 5/6] docker-containerd: bump to v1.1.1 Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH 6/6] docker-engine: split into docker-{cli, engine}, bump v2018.06-ce-rc3 Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH v3 1/6] tini: new package Christian Stewart
2018-07-15 14:30   ` Matthew Weber
2018-07-15 16:01   ` Yann E. MORIN
2018-07-15 19:26     ` Christian Stewart
2018-07-15 19:58       ` Yann E. MORIN
2018-07-16 22:19       ` Arnout Vandecappelle
2018-07-15  1:07 ` [Buildroot] [PATCH v3 2/6] dumb-init: " Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH v3 3/6] docker-engine: add support for init processes Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH v3 4/6] runc: bump to 69663f0b Christian Stewart
2018-07-15  1:07 ` [Buildroot] [PATCH v3 5/6] docker-containerd: bump to v1.1.1 Christian Stewart
2018-07-15  1:07 ` Christian Stewart [this message]
2018-07-15 15:57 ` [Buildroot] [PATCH 1/6] tini: new package Yann E. MORIN
2018-08-10 13:53 ` Matthew Weber
2018-08-10 22:36   ` Christian Stewart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180715010732.21765-12-christian@paral.in \
    --to=christian@paral.in \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.