All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 1/1] package/nerdctl: new package
@ 2022-03-11  4:48 Christian Stewart via buildroot
  2022-07-28  6:49 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 2+ messages in thread
From: Christian Stewart via buildroot @ 2022-03-11  4:48 UTC (permalink / raw)
  To: buildroot
  Cc: Christian Stewart, Yann E . Morin, Thomas Petazzoni, Tian Yuanhao,
	Matt Weber

nerdctl is a CLI for containerd (package docker-containerd) which is drop-in
compatible with the Docker Daemon CLI.

This allows using the lighter weight containerd daemon directly, instead of via
the additional docker daemon. It also implements rootless mode.

https://github.com/containerd/nerdctl

Signed-off-by: Christian Stewart <christian@paral.in>

---

v1:

 - pkg-golang does not support main.go at root of project
 - https://bugs.busybox.net/show_bug.cgi?id=13651
 - override the build command instead

v2:

 - bump to 0.8.0
 - go now works fine with /. targets, remove command override
 - docker-containerd was renamed to containerd

v3:

 - bump to version 0.17.1 from 0.8.0
 - add correct build targets

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in            |  1 +
 package/nerdctl/Config.in    | 24 ++++++++++++++++++++++++
 package/nerdctl/nerdctl.hash |  3 +++
 package/nerdctl/nerdctl.mk   | 20 ++++++++++++++++++++
 4 files changed, 48 insertions(+)
 create mode 100644 package/nerdctl/Config.in
 create mode 100644 package/nerdctl/nerdctl.hash
 create mode 100644 package/nerdctl/nerdctl.mk

diff --git a/package/Config.in b/package/Config.in
index 0d5d763180..8f68c464db 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2554,6 +2554,7 @@ menu "System tools"
 	source "package/monit/Config.in"
 	source "package/multipath-tools/Config.in"
 	source "package/ncdu/Config.in"
+	source "package/nerdctl/Config.in"
 	source "package/netifrc/Config.in"
 	source "package/numactl/Config.in"
 	source "package/nut/Config.in"
diff --git a/package/nerdctl/Config.in b/package/nerdctl/Config.in
new file mode 100644
index 0000000000..51a2919d9d
--- /dev/null
+++ b/package/nerdctl/Config.in
@@ -0,0 +1,24 @@
+config BR2_PACKAGE_NERDCTL
+	bool "nerdctl"
+	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
+	depends on !BR2_TOOLCHAIN_USES_UCLIBC # containerd
+	depends on BR2_USE_MMU # util-linux
+	select BR2_PACKAGE_CONTAINERD # containerd runtime dependency
+	select BR2_PACKAGE_RUNC # containerd runtime dependency
+	select BR2_PACKAGE_UTIL_LINUX # runtime dependency
+	select BR2_PACKAGE_UTIL_LINUX_BINARIES # containerd
+	select BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT # containerd
+	select BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT # containerd
+	select BR2_PACKAGE_UTIL_LINUX_MOUNT # containerd
+	help
+	  Docker-compatible CLI for containerd, controlling runc.
+
+	  https://github.com/containerd/nerdctl
+
+comment "nerdctl needs a glibc or musl 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_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_USES_UCLIBC
diff --git a/package/nerdctl/nerdctl.hash b/package/nerdctl/nerdctl.hash
new file mode 100644
index 0000000000..a31b12b26d
--- /dev/null
+++ b/package/nerdctl/nerdctl.hash
@@ -0,0 +1,3 @@
+# Computed locally
+sha256  be41804ef139a3f92b774edc8439678e56b44033d7ab3fcf4389f0865c1fe069  nerdctl-0.17.1.tar.gz
+sha256  4bbe3b885e8cd1907ab4cf9a41e862e74e24b5422297a4f2fe524e6a30ada2b4  LICENSE
diff --git a/package/nerdctl/nerdctl.mk b/package/nerdctl/nerdctl.mk
new file mode 100644
index 0000000000..3f3c04aa11
--- /dev/null
+++ b/package/nerdctl/nerdctl.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# nerdctl
+#
+################################################################################
+
+NERDCTL_VERSION = 0.17.1
+NERDCTL_SITE = $(call github,containerd,nerdctl,v$(NERDCTL_VERSION))
+
+NERDCTL_LICENSE = Apache-2.0
+NERDCTL_LICENSE_FILES = LICENSE
+
+NERDCTL_GOMOD = github.com/containerd/nerdctl
+
+NERDCTL_LDFLAGS = \
+	-X $(NERDCTL_GOMOD)/pkg/version.Version=$(NERDCTL_VERSION)
+
+NERDCTL_BUILD_TARGETS = cmd/nerdctl
+
+$(eval $(golang-package))
-- 
2.35.1

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Buildroot] [PATCH v3 1/1] package/nerdctl: new package
  2022-03-11  4:48 [Buildroot] [PATCH v3 1/1] package/nerdctl: new package Christian Stewart via buildroot
@ 2022-07-28  6:49 ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Petazzoni via buildroot @ 2022-07-28  6:49 UTC (permalink / raw)
  To: Christian Stewart via buildroot; +Cc: Tian Yuanhao, Yann E . Morin, Matt Weber

Hello,

On Thu, 10 Mar 2022 20:48:16 -0800
Christian Stewart via buildroot <buildroot@buildroot.org> wrote:

> nerdctl is a CLI for containerd (package docker-containerd) which is drop-in
> compatible with the Docker Daemon CLI.
> 
> This allows using the lighter weight containerd daemon directly, instead of via
> the additional docker daemon. It also implements rootless mode.
> 
> https://github.com/containerd/nerdctl
> 
> Signed-off-by: Christian Stewart <christian@paral.in>

I have finally applied this patch, with a number of changes. See below.

>  package/Config.in            |  1 +
>  package/nerdctl/Config.in    | 24 ++++++++++++++++++++++++
>  package/nerdctl/nerdctl.hash |  3 +++
>  package/nerdctl/nerdctl.mk   | 20 ++++++++++++++++++++

Entry in DEVELOPERS file was missing.

> diff --git a/package/nerdctl/Config.in b/package/nerdctl/Config.in
> new file mode 100644
> index 0000000000..51a2919d9d
> --- /dev/null
> +++ b/package/nerdctl/Config.in
> @@ -0,0 +1,24 @@
> +config BR2_PACKAGE_NERDCTL
> +	bool "nerdctl"
> +	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
> +	depends on !BR2_TOOLCHAIN_USES_UCLIBC # containerd
> +	depends on BR2_USE_MMU # util-linux
> +	select BR2_PACKAGE_CONTAINERD # containerd runtime dependency
> +	select BR2_PACKAGE_RUNC # containerd runtime dependency
> +	select BR2_PACKAGE_UTIL_LINUX # runtime dependency
> +	select BR2_PACKAGE_UTIL_LINUX_BINARIES # containerd
> +	select BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT # containerd
> +	select BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT # containerd
> +	select BR2_PACKAGE_UTIL_LINUX_MOUNT # containerd

It seems you got confused here with the propagation of the
select/depends on. You replicated all "selects" from containerd, but
this is useless. selecting containerd is sufficient, as it will itself
select runc and util-linux with all its sub-options.

What needs to be replicated are the "depends on" of the things you are
selecting.

> diff --git a/package/nerdctl/nerdctl.hash b/package/nerdctl/nerdctl.hash
> new file mode 100644
> index 0000000000..a31b12b26d
> --- /dev/null
> +++ b/package/nerdctl/nerdctl.hash
> @@ -0,0 +1,3 @@
> +# Computed locally
> +sha256  be41804ef139a3f92b774edc8439678e56b44033d7ab3fcf4389f0865c1fe069  nerdctl-0.17.1.tar.gz
> +sha256  4bbe3b885e8cd1907ab4cf9a41e862e74e24b5422297a4f2fe524e6a30ada2b4  LICENSE

The hash of the license file was wrong. I checked, the license file is
indeed Apache-2.0, so I don't know why you had a bogus hash here.

Applied with those changes. Thanks again!

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-07-28  6:49 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-11  4:48 [Buildroot] [PATCH v3 1/1] package/nerdctl: new package Christian Stewart via buildroot
2022-07-28  6:49 ` Thomas Petazzoni via buildroot

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.