* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox