* [Buildroot] [PATCH v3 1/1] package/docker-cli-buildx: new package
@ 2023-07-24 1:09 Christian Stewart via buildroot
2023-09-15 21:54 ` Christian Stewart via buildroot
2024-07-13 6:33 ` Thomas Petazzoni via buildroot
0 siblings, 2 replies; 3+ messages in thread
From: Christian Stewart via buildroot @ 2023-07-24 1:09 UTC (permalink / raw)
To: buildroot
Cc: Thomas Petazzoni, Christian Stewart, Joachim Wiberg, Tian Yuanhao,
Yann E . MORIN
buildx is a docker CLI plugin implementing extended build features.
buildx is the default builder as of Docker v23.x, and if the plugin is not
present, the CLI will output an error warning that it is using the deprecated
built-in builder instead of the buildx builder.
However, buildx is a separate repository from docker-cli: it is a plugin that
needs to be installed at /usr/lib/docker/cli-plugins on the target.
https://github.com/docker/buildx
Signed-off-by: Christian Stewart <christian@aperture.us>
---
v1 -> v2:
- buildx: bump version to v0.11.1
- https://github.com/docker/buildx/releases/tag/v0.11.1
- NOTE: docker-cli-buildx requires language features from go1.20!
- Depends on bump to go1.20.x:
- https://patchwork.ozlabs.org/project/buildroot/patch/20230711220849.1702358-3-christian@aperture.us/
v2 -> v3:
- Rename bin from buildx to docker-buildx (fixes docker cli not finding it)
- update docker-cli-buildx to v0.11.2
- https://github.com/docker/buildx/releases/tag/v0.11.2
Signed-off-by: Christian Stewart <christian@aperture.us>
---
package/Config.in | 1 +
package/docker-cli-buildx/Config.in | 16 +++++++++
.../docker-cli-buildx/docker-cli-buildx.hash | 3 ++
.../docker-cli-buildx/docker-cli-buildx.mk | 36 +++++++++++++++++++
4 files changed, 56 insertions(+)
create mode 100644 package/docker-cli-buildx/Config.in
create mode 100644 package/docker-cli-buildx/docker-cli-buildx.hash
create mode 100644 package/docker-cli-buildx/docker-cli-buildx.mk
diff --git a/package/Config.in b/package/Config.in
index 1e551d17c4..9f8834e8b8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2650,6 +2650,7 @@ menu "System tools"
source "package/ddrescue/Config.in"
source "package/debianutils/Config.in"
source "package/docker-cli/Config.in"
+ source "package/docker-cli-buildx/Config.in"
source "package/docker-compose/Config.in"
source "package/docker-engine/Config.in"
source "package/earlyoom/Config.in"
diff --git a/package/docker-cli-buildx/Config.in b/package/docker-cli-buildx/Config.in
new file mode 100644
index 0000000000..486f1196c3
--- /dev/null
+++ b/package/docker-cli-buildx/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_DOCKER_CLI_BUILDX
+ bool "docker-cli-buildx"
+ depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_PACKAGE_DOCKER_CLI
+ help
+ buildx is a Docker CLI plugin for extended build
+ capabilities with BuildKit.
+
+ https://github.com/docker/buildx
+
+comment "docker-cli-buildx needs a toolchain w/ threads"
+ depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
+ depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
+ depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/docker-cli-buildx/docker-cli-buildx.hash b/package/docker-cli-buildx/docker-cli-buildx.hash
new file mode 100644
index 0000000000..dfbcdb1902
--- /dev/null
+++ b/package/docker-cli-buildx/docker-cli-buildx.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 371eb742213ed580179fc4fdfd9a197f0e3115e91979b7907828427d578d49e5 docker-cli-buildx-0.11.2.tar.gz
+sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE
diff --git a/package/docker-cli-buildx/docker-cli-buildx.mk b/package/docker-cli-buildx/docker-cli-buildx.mk
new file mode 100644
index 0000000000..b62d09fbcc
--- /dev/null
+++ b/package/docker-cli-buildx/docker-cli-buildx.mk
@@ -0,0 +1,36 @@
+################################################################################
+#
+# docker-cli-buildx
+#
+################################################################################
+
+DOCKER_CLI_BUILDX_VERSION = 0.11.2
+DOCKER_CLI_BUILDX_SITE = $(call github,docker,buildx,v$(DOCKER_CLI_BUILDX_VERSION))
+
+DOCKER_CLI_BUILDX_LICENSE = Apache-2.0
+DOCKER_CLI_BUILDX_LICENSE_FILES = LICENSE
+
+DOCKER_CLI_BUILDX_DEPENDENCIES = host-pkgconf
+
+DOCKER_CLI_BUILDX_BUILD_TARGETS = cmd/buildx
+DOCKER_CLI_BUILDX_GOMOD = github.com/docker/buildx
+
+DOCKER_CLI_BUILDX_LDFLAGS = \
+ -X $(DOCKER_CLI_BUILDX_GOMOD)/version.Revision=$(DOCKER_CLI_BUILDX_VERSION) \
+ -X $(DOCKER_CLI_BUILDX_GOMOD)/version.Version=$(DOCKER_CLI_BUILDX_VERSION)
+
+# create the go.mod file with required language version go1.20
+# remove the conflicting vendor/modules.txt
+# https://github.com/moby/moby/issues/44618#issuecomment-1343565705
+define DOCKER_CLI_BUILDX_FIX_VENDORING
+ printf "module $(DOCKER_CLI_BUILDX_GOMOD)\n\ngo 1.20\n" > $(@D)/go.mod
+ rm -f $(@D)/vendor/modules.txt
+endef
+DOCKER_CLI_BUILDX_POST_EXTRACT_HOOKS += DOCKER_CLI_BUILDX_FIX_VENDORING
+
+define DOCKER_CLI_BUILDX_INSTALL_TARGET_CMDS
+ $(INSTALL) -m 0755 -D $(@D)/bin/buildx \
+ $(TARGET_DIR)/usr/lib/docker/cli-plugins/docker-buildx
+endef
+
+$(eval $(golang-package))
--
2.41.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH v3 1/1] package/docker-cli-buildx: new package
2023-07-24 1:09 [Buildroot] [PATCH v3 1/1] package/docker-cli-buildx: new package Christian Stewart via buildroot
@ 2023-09-15 21:54 ` Christian Stewart via buildroot
2024-07-13 6:33 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Christian Stewart via buildroot @ 2023-09-15 21:54 UTC (permalink / raw)
To: buildroot; +Cc: Joachim Wiberg, Tian Yuanhao, Yann E . MORIN, Thomas Petazzoni
Hi all,
On Sun, Jul 23, 2023 at 6:09 PM Christian Stewart <christian@aperture.us> wrote:
>
> buildx is a docker CLI plugin implementing extended build features.
>
> buildx is the default builder as of Docker v23.x, and if the plugin is not
> present, the CLI will output an error warning that it is using the deprecated
> built-in builder instead of the buildx builder.
>
> However, buildx is a separate repository from docker-cli: it is a plugin that
> needs to be installed at /usr/lib/docker/cli-plugins on the target.
>
> https://github.com/docker/buildx
>
> Signed-off-by: Christian Stewart <christian@aperture.us>
>
> ---
>
> v1 -> v2:
>
> - buildx: bump version to v0.11.1
> - https://github.com/docker/buildx/releases/tag/v0.11.1
> - NOTE: docker-cli-buildx requires language features from go1.20!
> - Depends on bump to go1.20.x:
> - https://patchwork.ozlabs.org/project/buildroot/patch/20230711220849.1702358-3-christian@aperture.us/
>
> v2 -> v3:
>
> - Rename bin from buildx to docker-buildx (fixes docker cli not finding it)
> - update docker-cli-buildx to v0.11.2
> - https://github.com/docker/buildx/releases/tag/v0.11.2
>
> Signed-off-by: Christian Stewart <christian@aperture.us>
> ---
> package/Config.in | 1 +
> package/docker-cli-buildx/Config.in | 16 +++++++++
> .../docker-cli-buildx/docker-cli-buildx.hash | 3 ++
> .../docker-cli-buildx/docker-cli-buildx.mk | 36 +++++++++++++++++++
> 4 files changed, 56 insertions(+)
> create mode 100644 package/docker-cli-buildx/Config.in
> create mode 100644 package/docker-cli-buildx/docker-cli-buildx.hash
> create mode 100644 package/docker-cli-buildx/docker-cli-buildx.mk
Just a quick ping requesting status on this merge request-
This plugin is tested & working fine & is now a critical part of
"docker build" so I would request that we merge this soon.
Thanks!
Christian Stewart
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Buildroot] [PATCH v3 1/1] package/docker-cli-buildx: new package
2023-07-24 1:09 [Buildroot] [PATCH v3 1/1] package/docker-cli-buildx: new package Christian Stewart via buildroot
2023-09-15 21:54 ` Christian Stewart via buildroot
@ 2024-07-13 6:33 ` Thomas Petazzoni via buildroot
1 sibling, 0 replies; 3+ messages in thread
From: Thomas Petazzoni via buildroot @ 2024-07-13 6:33 UTC (permalink / raw)
To: Christian Stewart via buildroot
Cc: Joachim Wiberg, Tian Yuanhao, Yann E . MORIN, Christian Stewart
On Sun, 23 Jul 2023 18:09:07 -0700
Christian Stewart via buildroot <buildroot@buildroot.org> wrote:
> buildx is a docker CLI plugin implementing extended build features.
>
> buildx is the default builder as of Docker v23.x, and if the plugin is not
> present, the CLI will output an error warning that it is using the deprecated
> built-in builder instead of the buildx builder.
>
> However, buildx is a separate repository from docker-cli: it is a plugin that
> needs to be installed at /usr/lib/docker/cli-plugins on the target.
>
> https://github.com/docker/buildx
>
> Signed-off-by: Christian Stewart <christian@aperture.us>
>
> ---
Sorry for the super long delay: patch applied. I'm sure you'll need to
send a version bump :)
Perhaps with a version bump this part:
+# create the go.mod file with required language version go1.20
+# remove the conflicting vendor/modules.txt
+# https://github.com/moby/moby/issues/44618#issuecomment-1343565705
+define DOCKER_CLI_BUILDX_FIX_VENDORING
+ printf "module $(DOCKER_CLI_BUILDX_GOMOD)\n\ngo 1.20\n" > $(@D)/go.mod
+ rm -f $(@D)/vendor/modules.txt
+endef
+DOCKER_CLI_BUILDX_POST_EXTRACT_HOOKS += DOCKER_CLI_BUILDX_FIX_VENDORING
can do away or be tweaked?
Thanks a lot, and again sorry for the delay.
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-07-13 6:33 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-24 1:09 [Buildroot] [PATCH v3 1/1] package/docker-cli-buildx: new package Christian Stewart via buildroot
2023-09-15 21:54 ` Christian Stewart via buildroot
2024-07-13 6:33 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox