Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package
@ 2021-05-03  2:33 Christian Stewart
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as " Christian Stewart
                   ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Christian Stewart @ 2021-05-03  2:33 UTC (permalink / raw)
  To: buildroot

Adds 1 patch to fix an install error when building as a host package.

Patch was submitted upstream:
https://github.com/libfuse/libfuse/pull/598

Signed-off-by: Christian Stewart <christian@paral.in>
---
 ...er-fix-sysconf-dir-for-init.d-script.patch | 51 +++++++++++++++++++
 package/libfuse3/libfuse3.mk                  |  7 +++
 2 files changed, 58 insertions(+)
 create mode 100644 package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch

diff --git a/package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch b/package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch
new file mode 100644
index 0000000000..4599c55e78
--- /dev/null
+++ b/package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch
@@ -0,0 +1,51 @@
+From cac00c154be5c8941d40b972bdcc0eb8bf209b93 Mon Sep 17 00:00:00 2001
+From: Christian Stewart <christian@paral.in>
+Date: Sun, 2 May 2021 19:04:50 -0700
+Subject: [PATCH] install_helper: fix sysconf dir for init.d script
+
+Fixes the following build error in Buildroot as a host package:
+
+Running custom install script 'install_helper.sh /host/etc /host/bin /host/lib/udev/rules.d false
++ sysconfdir=/host/etc
++ bindir=/host/bin
++ udevrulesdir=/host/lib/udev/rules.d
++ useroot=false
++ '[' -z '' ']'
++ DESTDIR=
++ install -D -m 644 /build/host-libfuse3-3.10.3/util/fuse.conf /host/etc/fuse.conf
++ false
++ install -D -m 644 /build/host-libfuse3-3.10.3/util/udev.rules /host/lib/udev/rules.d/99-fuse3.rules
++ install -D -m 755 /build/host-libfuse3-3.10.3/util/init_script /etc/init.d/fuse3
+install: cannot create regular file '/etc/init.d/fuse3': Permission denied
+FAILED: install script 'install_helper.sh /host/etc /host/bin /host/lib/udev/rules.d false' exit code 1, stopped
+FAILED: meson-install
+
+Signed-off-by: Christian Stewart <christian@paral.in>
+---
+ util/install_helper.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/util/install_helper.sh b/util/install_helper.sh
+index cb649a7..f4a6163 100755
+--- a/util/install_helper.sh
++++ b/util/install_helper.sh
+@@ -40,14 +40,14 @@ install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
+         "${DESTDIR}${udevrulesdir}/99-fuse3.rules"
+ 
+ install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \
+-        "${DESTDIR}/etc/init.d/fuse3"
++        "${DESTDIR}${sysconfdir}/init.d/fuse3"
+ 
+ 
+ if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then
+     /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true
+ else
+     echo "== FURTHER ACTION REQUIRED =="
+-    echo "Make sure that your init system will start the ${DESTDIR}/etc/init.d/fuse3 init script"
++    echo "Make sure that your init system will start the ${DESTDIR}${sysconfdir}/init.d/fuse3 init script"
+ fi
+ 
+ 
+-- 
+2.31.1
+
diff --git a/package/libfuse3/libfuse3.mk b/package/libfuse3/libfuse3.mk
index f805eda506..d4522fd063 100644
--- a/package/libfuse3/libfuse3.mk
+++ b/package/libfuse3/libfuse3.mk
@@ -10,11 +10,17 @@ LIBFUSE3_LICENSE = LGPL-2.1
 LIBFUSE3_LICENSE_FILES = LICENSE
 LIBFUSE3_INSTALL_STAGING = YES
 LIBFUSE3_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv)
+
 LIBFUSE3_CONF_OPTS = \
 	-Dexamples=false \
 	-Dudevrulesdir=/lib/udev/rules.d \
 	-Duseroot=false
 
+HOST_LIBFUSE3_CONF_OPTS = \
+	-Dexamples=false \
+	-Dudevrulesdir=$(HOST_DIR)/lib/udev/rules.d \
+	-Duseroot=false
+
 define LIBFUSE3_DEVICES
 	/dev/fuse  c  666  0  0  10  229  0  0  -
 endef
@@ -28,3 +34,4 @@ define LIBFUSE3_LINUX_CONFIG_FIXUPS
 endef
 
 $(eval $(meson-package))
+$(eval $(host-meson-package))
-- 
2.31.1

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

* [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as host package
  2021-05-03  2:33 [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Christian Stewart
@ 2021-05-03  2:33 ` Christian Stewart
  2021-05-04 20:20   ` Yann E. MORIN
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package Christian Stewart
  2021-05-04 20:18 ` [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Yann E. MORIN
  2 siblings, 1 reply; 11+ messages in thread
From: Christian Stewart @ 2021-05-03  2:33 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in.host                   | 1 +
 package/fuse-overlayfs/Config.in.host    | 7 +++++++
 package/fuse-overlayfs/fuse-overlayfs.mk | 4 ++++
 3 files changed, 12 insertions(+)
 create mode 100644 package/fuse-overlayfs/Config.in.host

diff --git a/package/Config.in.host b/package/Config.in.host
index ba6a68c728..0dbf63f2c8 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -27,6 +27,7 @@ menu "Host utilities"
 	source "package/f2fs-tools/Config.in.host"
 	source "package/faketime/Config.in.host"
 	source "package/fatcat/Config.in.host"
+	source "package/fuse-overlayfs/Config.in.host"
 	source "package/fwup/Config.in.host"
 	source "package/genext2fs/Config.in.host"
 	source "package/genimage/Config.in.host"
diff --git a/package/fuse-overlayfs/Config.in.host b/package/fuse-overlayfs/Config.in.host
new file mode 100644
index 0000000000..cf459a4a2a
--- /dev/null
+++ b/package/fuse-overlayfs/Config.in.host
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_HOST_FUSE_OVERLAYFS
+	bool "host fuse-overlayfs"
+	help
+	  FUSE-overlayfs is an implementation of overlay+shiftfs in
+	  FUSE, intended to be used for rootless containers.
+
+	  http://github.com/containers/fuse-overlayfs
\ No newline at end of file
diff --git a/package/fuse-overlayfs/fuse-overlayfs.mk b/package/fuse-overlayfs/fuse-overlayfs.mk
index 707cacce03..36cbfc91fd 100644
--- a/package/fuse-overlayfs/fuse-overlayfs.mk
+++ b/package/fuse-overlayfs/fuse-overlayfs.mk
@@ -12,4 +12,8 @@ FUSE_OVERLAYFS_LICENSE_FILES = COPYING
 FUSE_OVERLAYFS_AUTORECONF = YES
 FUSE_OVERLAYFS_DEPENDENCIES = libfuse3 host-pkgconf
 
+HOST_FUSE_OVERLAYFS_AUTORECONF = YES
+HOST_FUSE_OVERLAYFS_DEPENDENCIES = host-libfuse3 host-pkgconf
+
 $(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
2.31.1

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

* [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package
  2021-05-03  2:33 [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Christian Stewart
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as " Christian Stewart
@ 2021-05-03  2:33 ` Christian Stewart
  2021-05-03  2:45   ` Christian Stewart
  2021-05-04 20:18 ` [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Yann E. MORIN
  2 siblings, 1 reply; 11+ messages in thread
From: Christian Stewart @ 2021-05-03  2:33 UTC (permalink / raw)
  To: buildroot

Img is a standalone, daemon-less, unprivileged Dockerfile and OCI compatible
container image builder. It uses the moby-buildkit solver internally. The
commands/UX mirror the Docker CLI for workflow compatibility.

Using the genuinetools- prefix due to the generic nature of the "img" name.

Adds both host and target variants. fuse-overlayfs can be used as an
unprivileged and rootless overlay filesystem backend.

https://github.com/genuinetools/img

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in                             |  1 +
 package/Config.in.host                        |  1 +
 package/genuinetools-img/Config.in            | 23 ++++++++++++++++
 package/genuinetools-img/Config.in.host       |  9 +++++++
 .../genuinetools-img/genuinetools-img.hash    |  3 +++
 package/genuinetools-img/genuinetools-img.mk  | 27 +++++++++++++++++++
 6 files changed, 64 insertions(+)
 create mode 100644 package/genuinetools-img/Config.in
 create mode 100644 package/genuinetools-img/Config.in.host
 create mode 100644 package/genuinetools-img/genuinetools-img.hash
 create mode 100644 package/genuinetools-img/genuinetools-img.mk

diff --git a/package/Config.in b/package/Config.in
index 7ac10b9d42..f352f6b168 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2444,6 +2444,7 @@ menu "System tools"
 	source "package/emlog/Config.in"
 	source "package/ftop/Config.in"
 	source "package/getent/Config.in"
+	source "package/genuinetools-img/Config.in"
 	source "package/gkrellm/Config.in"
 	source "package/htop/Config.in"
 	source "package/ibm-sw-tpm2/Config.in"
diff --git a/package/Config.in.host b/package/Config.in.host
index 0dbf63f2c8..391742856d 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -32,6 +32,7 @@ menu "Host utilities"
 	source "package/genext2fs/Config.in.host"
 	source "package/genimage/Config.in.host"
 	source "package/genpart/Config.in.host"
+	source "package/genuinetools-img/Config.in.host"
 	source "package/gnupg/Config.in.host"
 	source "package/go/Config.in.host"
 	source "package/go-bootstrap/Config.in.host"
diff --git a/package/genuinetools-img/Config.in b/package/genuinetools-img/Config.in
new file mode 100644
index 0000000000..eb4992db07
--- /dev/null
+++ b/package/genuinetools-img/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_GENUINETOOLS_IMG
+	bool "genuinetools-img"
+	depends on BR2_USE_MMU # fuse-overlayfs libfuse3
+	depends on !BR2_STATIC_LIBS # fuse-overlayfs libfuse3
+	depends on BR2_TOOLCHAIN_HAS_THREADS # fuse-overlayfs libfuse3
+	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15 # fuse-overlayfs
+	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
+	select BR2_PACKAGE_CGROUPFS_MOUNT if !BR2_PACKAGE_SYSTEMD # runtime dependency
+	select BR2_PACKAGE_FUSE_OVERLAYFS # runtime dependency
+	select BR2_PACKAGE_LIBFUSE3 # fuse-overlayfs
+	help
+	  Img is a standalone, daemon-less, unprivileged Dockerfile
+	  and OCI compatible container image builder.
+
+	  https://github.com/genuinetools/img
+
+comment "genuinetools-img needs a toolchain w/ threads, dynamic library, headers >= 3.15"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_15
diff --git a/package/genuinetools-img/Config.in.host b/package/genuinetools-img/Config.in.host
new file mode 100644
index 0000000000..bbef88acf6
--- /dev/null
+++ b/package/genuinetools-img/Config.in.host
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_HOST_GENUINETOOLS_IMG
+	bool "host genuinetools-img"
+	depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS
+	select BR2_PACKAGE_HOST_FUSE_OVERLAYFS # runtime dependency
+	help
+	  Img is a standalone, daemon-less, unprivileged Dockerfile
+	  and OCI compatible container image builder.
+
+	  https://github.com/genuinetools/img
diff --git a/package/genuinetools-img/genuinetools-img.hash b/package/genuinetools-img/genuinetools-img.hash
new file mode 100644
index 0000000000..097ad17d91
--- /dev/null
+++ b/package/genuinetools-img/genuinetools-img.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  c6d805ab899db639fa08f0e33fe6673593be8336d288bb1cb4cb81a3229a916f  genuinetools-img-0.5.11.tar.gz
+sha256	c696614021eafe355c7fb0af3e724fc7fa8729a0c10c27cbed2505bf30a853ce  LICENSE
diff --git a/package/genuinetools-img/genuinetools-img.mk b/package/genuinetools-img/genuinetools-img.mk
new file mode 100644
index 0000000000..08330d1113
--- /dev/null
+++ b/package/genuinetools-img/genuinetools-img.mk
@@ -0,0 +1,27 @@
+################################################################################
+#
+# genuinetools-img
+#
+################################################################################
+
+GENUINETOOLS_IMG_VERSION = 0.5.11
+GENUINETOOLS_IMG_SITE = $(call github,genuinetools,img,v$(GENUINETOOLS_IMG_VERSION))
+
+GENUINETOOLS_IMG_LICENSE = MIT
+GENUINETOOLS_IMG_LICENSE_FILES = LICENSE
+
+GENUINETOOLS_IMG_DEPENDENCIES = host-pkgconf
+GENUINETOOLS_IMG_GOMOD = github.com/genuinetools/img
+
+GENUINETOOLS_IMG_TAGS = cgo noembed
+GENUINETOOLS_IMG_LDFLAGS = \
+	-X $(GENUINETOOLS_IMG_GOMOD)/version.VERSION="$(GENUINETOOLS_IMG_VERSION)"
+
+HOST_GENUINETOOLS_IMG_TAGS = $(GENUINETOOLS_IMG_TAGS)
+HOST_GENUINETOOLS_IMG_LDFLAGS = $(GENUINETOOLS_IMG_LDFLAGS)
+
+HOST_GENUINETOOLS_IMG_BIN_NAME = genuinetools-img
+HOST_GENUINETOOLS_IMG_INSTALL_BINS = $(HOST_GENUINETOOLS_IMG_BIN_NAME)
+
+$(eval $(golang-package))
+$(eval $(host-golang-package))
-- 
2.31.1

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

* [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package Christian Stewart
@ 2021-05-03  2:45   ` Christian Stewart
  2021-05-04 20:31     ` Yann E. MORIN
  0 siblings, 1 reply; 11+ messages in thread
From: Christian Stewart @ 2021-05-03  2:45 UTC (permalink / raw)
  To: buildroot

All,


On Sun, May 2, 2021 at 7:33 PM Christian Stewart <christian@paral.in> wrote:
>
> Img is a standalone, daemon-less, unprivileged Dockerfile and OCI compatible
> container image builder. It uses the moby-buildkit solver internally. The
> commands/UX mirror the Docker CLI for workflow compatibility.
>
> Using the genuinetools- prefix due to the generic nature of the "img" name.
>
> Adds both host and target variants. fuse-overlayfs can be used as an
> unprivileged and rootless overlay filesystem backend.
>
> https://github.com/genuinetools/img

The intent here is to eventually add some kind of "download" target to
Buildroot for downloading & verifying container images as .tar.gz
files from container registries using the genuinetools-img tool - it
can "pull" and "save" using an unprivileged cache directory.

I'm not sure the best way to do this / if there is any appetite for
adding a pkg helper for this, thoughts?

Best regards,
Christian Stewart

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

* [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package
  2021-05-03  2:33 [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Christian Stewart
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as " Christian Stewart
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package Christian Stewart
@ 2021-05-04 20:18 ` Yann E. MORIN
  2 siblings, 0 replies; 11+ messages in thread
From: Yann E. MORIN @ 2021-05-04 20:18 UTC (permalink / raw)
  To: buildroot

Christian, All,

On 2021-05-02 19:33 -0700, Christian Stewart spake thusly:
> Adds 1 patch to fix an install error when building as a host package.
> 
> Patch was submitted upstream:
> https://github.com/libfuse/libfuse/pull/598

Upstream is basically rejecting this patch.

I have no idea what woiuld be the best course of action, but for our
short-sighted goal might be to just patch-out the installation of the
init script altogether. And maybe send a patch upstream with an option
to disable it altogether.

In the meantime, I've marked this series as chamnges requested (I'll
comment on the other patches, though).

Regards,
Yann E. MORIN.

> Signed-off-by: Christian Stewart <christian@paral.in>
> ---
>  ...er-fix-sysconf-dir-for-init.d-script.patch | 51 +++++++++++++++++++
>  package/libfuse3/libfuse3.mk                  |  7 +++
>  2 files changed, 58 insertions(+)
>  create mode 100644 package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch
> 
> diff --git a/package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch b/package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch
> new file mode 100644
> index 0000000000..4599c55e78
> --- /dev/null
> +++ b/package/libfuse3/0001-install_helper-fix-sysconf-dir-for-init.d-script.patch
> @@ -0,0 +1,51 @@
> +From cac00c154be5c8941d40b972bdcc0eb8bf209b93 Mon Sep 17 00:00:00 2001
> +From: Christian Stewart <christian@paral.in>
> +Date: Sun, 2 May 2021 19:04:50 -0700
> +Subject: [PATCH] install_helper: fix sysconf dir for init.d script
> +
> +Fixes the following build error in Buildroot as a host package:
> +
> +Running custom install script 'install_helper.sh /host/etc /host/bin /host/lib/udev/rules.d false
> ++ sysconfdir=/host/etc
> ++ bindir=/host/bin
> ++ udevrulesdir=/host/lib/udev/rules.d
> ++ useroot=false
> ++ '[' -z '' ']'
> ++ DESTDIR=
> ++ install -D -m 644 /build/host-libfuse3-3.10.3/util/fuse.conf /host/etc/fuse.conf
> ++ false
> ++ install -D -m 644 /build/host-libfuse3-3.10.3/util/udev.rules /host/lib/udev/rules.d/99-fuse3.rules
> ++ install -D -m 755 /build/host-libfuse3-3.10.3/util/init_script /etc/init.d/fuse3
> +install: cannot create regular file '/etc/init.d/fuse3': Permission denied
> +FAILED: install script 'install_helper.sh /host/etc /host/bin /host/lib/udev/rules.d false' exit code 1, stopped
> +FAILED: meson-install
> +
> +Signed-off-by: Christian Stewart <christian@paral.in>
> +---
> + util/install_helper.sh | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/util/install_helper.sh b/util/install_helper.sh
> +index cb649a7..f4a6163 100755
> +--- a/util/install_helper.sh
> ++++ b/util/install_helper.sh
> +@@ -40,14 +40,14 @@ install -D -m 644 "${MESON_SOURCE_ROOT}/util/udev.rules" \
> +         "${DESTDIR}${udevrulesdir}/99-fuse3.rules"
> + 
> + install -D -m 755 "${MESON_SOURCE_ROOT}/util/init_script" \
> +-        "${DESTDIR}/etc/init.d/fuse3"
> ++        "${DESTDIR}${sysconfdir}/init.d/fuse3"
> + 
> + 
> + if test -x /usr/sbin/update-rc.d && test -z "${DESTDIR}"; then
> +     /usr/sbin/update-rc.d fuse3 start 34 S . start 41 0 6 . || /bin/true
> + else
> +     echo "== FURTHER ACTION REQUIRED =="
> +-    echo "Make sure that your init system will start the ${DESTDIR}/etc/init.d/fuse3 init script"
> ++    echo "Make sure that your init system will start the ${DESTDIR}${sysconfdir}/init.d/fuse3 init script"
> + fi
> + 
> + 
> +-- 
> +2.31.1
> +
> diff --git a/package/libfuse3/libfuse3.mk b/package/libfuse3/libfuse3.mk
> index f805eda506..d4522fd063 100644
> --- a/package/libfuse3/libfuse3.mk
> +++ b/package/libfuse3/libfuse3.mk
> @@ -10,11 +10,17 @@ LIBFUSE3_LICENSE = LGPL-2.1
>  LIBFUSE3_LICENSE_FILES = LICENSE
>  LIBFUSE3_INSTALL_STAGING = YES
>  LIBFUSE3_DEPENDENCIES = $(if $(BR2_PACKAGE_LIBICONV),libiconv)
> +
>  LIBFUSE3_CONF_OPTS = \
>  	-Dexamples=false \
>  	-Dudevrulesdir=/lib/udev/rules.d \
>  	-Duseroot=false
>  
> +HOST_LIBFUSE3_CONF_OPTS = \
> +	-Dexamples=false \
> +	-Dudevrulesdir=$(HOST_DIR)/lib/udev/rules.d \
> +	-Duseroot=false
> +
>  define LIBFUSE3_DEVICES
>  	/dev/fuse  c  666  0  0  10  229  0  0  -
>  endef
> @@ -28,3 +34,4 @@ define LIBFUSE3_LINUX_CONFIG_FIXUPS
>  endef
>  
>  $(eval $(meson-package))
> +$(eval $(host-meson-package))
> -- 
> 2.31.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as host package
  2021-05-03  2:33 ` [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as " Christian Stewart
@ 2021-05-04 20:20   ` Yann E. MORIN
  2021-05-04 20:25     ` Christian Stewart
  0 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2021-05-04 20:20 UTC (permalink / raw)
  To: buildroot

Christian, All,

On 2021-05-02 19:33 -0700, Christian Stewart spake thusly:
> Signed-off-by: Christian Stewart <christian@paral.in>
> ---
>  package/Config.in.host                   | 1 +
>  package/fuse-overlayfs/Config.in.host    | 7 +++++++
>  package/fuse-overlayfs/fuse-overlayfs.mk | 4 ++++
>  3 files changed, 12 insertions(+)
>  create mode 100644 package/fuse-overlayfs/Config.in.host
> 
> diff --git a/package/Config.in.host b/package/Config.in.host
> index ba6a68c728..0dbf63f2c8 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -27,6 +27,7 @@ menu "Host utilities"
>  	source "package/f2fs-tools/Config.in.host"
>  	source "package/faketime/Config.in.host"
>  	source "package/fatcat/Config.in.host"
> +	source "package/fuse-overlayfs/Config.in.host"
>  	source "package/fwup/Config.in.host"
>  	source "package/genext2fs/Config.in.host"
>  	source "package/genimage/Config.in.host"
> diff --git a/package/fuse-overlayfs/Config.in.host b/package/fuse-overlayfs/Config.in.host
> new file mode 100644
> index 0000000000..cf459a4a2a
> --- /dev/null
> +++ b/package/fuse-overlayfs/Config.in.host
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_HOST_FUSE_OVERLAYFS
> +	bool "host fuse-overlayfs"
> +	help
> +	  FUSE-overlayfs is an implementation of overlay+shiftfs in
> +	  FUSE, intended to be used for rootless containers.
> +
> +	  http://github.com/containers/fuse-overlayfs
> \ No newline at end of file

Be carefull that your editor properly terminates files with a \n

Vim is a good editor that generates properly formatted text files! ;-]

Regards,
Yann E. MORIN.

> diff --git a/package/fuse-overlayfs/fuse-overlayfs.mk b/package/fuse-overlayfs/fuse-overlayfs.mk
> index 707cacce03..36cbfc91fd 100644
> --- a/package/fuse-overlayfs/fuse-overlayfs.mk
> +++ b/package/fuse-overlayfs/fuse-overlayfs.mk
> @@ -12,4 +12,8 @@ FUSE_OVERLAYFS_LICENSE_FILES = COPYING
>  FUSE_OVERLAYFS_AUTORECONF = YES
>  FUSE_OVERLAYFS_DEPENDENCIES = libfuse3 host-pkgconf
>  
> +HOST_FUSE_OVERLAYFS_AUTORECONF = YES
> +HOST_FUSE_OVERLAYFS_DEPENDENCIES = host-libfuse3 host-pkgconf
> +
>  $(eval $(autotools-package))
> +$(eval $(host-autotools-package))
> -- 
> 2.31.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as host package
  2021-05-04 20:20   ` Yann E. MORIN
@ 2021-05-04 20:25     ` Christian Stewart
  0 siblings, 0 replies; 11+ messages in thread
From: Christian Stewart @ 2021-05-04 20:25 UTC (permalink / raw)
  To: buildroot

Hi Yann,

On Tue, May 4, 2021 at 1:21 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> Be carefull that your editor properly terminates files with a \n
>
> Vim is a good editor that generates properly formatted text files! ;-]
>
> Regards,
> Yann E. MORIN.

I regret to inform you that I switched over to emacs somewhere around 2016.

... but using vim bindings with "evil" mode and spacemacs and
Buildroot/Gentoo + exwm :)

Best regards,
Christian

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

* [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package
  2021-05-03  2:45   ` Christian Stewart
@ 2021-05-04 20:31     ` Yann E. MORIN
  2021-05-04 22:03       ` Christian Stewart
  0 siblings, 1 reply; 11+ messages in thread
From: Yann E. MORIN @ 2021-05-04 20:31 UTC (permalink / raw)
  To: buildroot

Christian, All,

On 2021-05-02 19:45 -0700, Christian Stewart spake thusly:
> On Sun, May 2, 2021 at 7:33 PM Christian Stewart <christian@paral.in> wrote:
> >
> > Img is a standalone, daemon-less, unprivileged Dockerfile and OCI compatible
> > container image builder. It uses the moby-buildkit solver internally. The
> > commands/UX mirror the Docker CLI for workflow compatibility.
> >
> > Using the genuinetools- prefix due to the generic nature of the "img" name.
> >
> > Adds both host and target variants. fuse-overlayfs can be used as an
> > unprivileged and rootless overlay filesystem backend.
> >
> > https://github.com/genuinetools/img
> 
> The intent here is to eventually add some kind of "download" target to
> Buildroot for downloading & verifying container images as .tar.gz
> files from container registries using the genuinetools-img tool - it
> can "pull" and "save" using an unprivileged cache directory.
> 
> I'm not sure the best way to do this / if there is any appetite for
> adding a pkg helper for this, thoughts?

Im not usre I understood that, but basically one would write:

    HELLO_WORLD_VERSION = 1.2.3
    HELLO_WORLD_SOURCE = hello-world:1.2.3
    HELLO_WORLD_SITE = dockerhub.com/u/hello

    $(eval $(oci-image-package))

And that would download the hello-world:1.2.3 image from dockerhub and
install that as a OCI image in the target filesystem, so that at runtime
one could do (on the CLI, in an init script, in a systemd unit, etc...):
    docker run hello-world:1.2.3 /bin/hello-world

Something like that?

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

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

* [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package
  2021-05-04 20:31     ` Yann E. MORIN
@ 2021-05-04 22:03       ` Christian Stewart
  2021-05-11 11:19         ` Peter Korsgaard
  0 siblings, 1 reply; 11+ messages in thread
From: Christian Stewart @ 2021-05-04 22:03 UTC (permalink / raw)
  To: buildroot

Hi Yann,

On Tue, May 4, 2021 at 1:31 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote
> Im not usre I understood that, but basically one would write:
>
>     HELLO_WORLD_VERSION = 1.2.3
>     HELLO_WORLD_SOURCE = hello-world:1.2.3
>     HELLO_WORLD_SITE = dockerhub.com/u/hello
>
>     $(eval $(oci-image-package))
>
> And that would download the hello-world:1.2.3 image from dockerhub and
> install that as a OCI image in the target filesystem, so that at runtime
> one could do (on the CLI, in an init script, in a systemd unit, etc...):
>     docker run hello-world:1.2.3 /bin/hello-world
>
> Something like that?

Yes, the "download" step would use host "img pull" to download the OCI
image, and then "img save" to store it as a .tar.gz, (which we can
then hash as a downloaded tar.gz file).

The .tar.gz can be loaded into Docker with "docker load < the-image.tar.gz"

The image-package helper could just download the image + save it (to
images dir, optionally).

Best,
Christian

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

* [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package
  2021-05-04 22:03       ` Christian Stewart
@ 2021-05-11 11:19         ` Peter Korsgaard
  2021-05-11 19:33           ` Christian Stewart
  0 siblings, 1 reply; 11+ messages in thread
From: Peter Korsgaard @ 2021-05-11 11:19 UTC (permalink / raw)
  To: buildroot

>>>>> "Christian" == Christian Stewart <christian@paral.in> writes:

 > Hi Yann,
 > On Tue, May 4, 2021 at 1:31 PM Yann E. MORIN <yann.morin.1998@free.fr> wrote
 >> Im not usre I understood that, but basically one would write:
 >> 
 >> HELLO_WORLD_VERSION = 1.2.3
 >> HELLO_WORLD_SOURCE = hello-world:1.2.3
 >> HELLO_WORLD_SITE = dockerhub.com/u/hello
 >> 
 >> $(eval $(oci-image-package))
 >> 
 >> And that would download the hello-world:1.2.3 image from dockerhub and
 >> install that as a OCI image in the target filesystem, so that at runtime
 >> one could do (on the CLI, in an init script, in a systemd unit, etc...):
 >> docker run hello-world:1.2.3 /bin/hello-world
 >> 
 >> Something like that?

 > Yes, the "download" step would use host "img pull" to download the OCI
 > image, and then "img save" to store it as a .tar.gz, (which we can
 > then hash as a downloaded tar.gz file).

 > The .tar.gz can be loaded into Docker with "docker load < the-image.tar.gz"

 > The image-package helper could just download the image + save it (to
 > images dir, optionally).

So you would end up with a tar file for each container image in the
rootfs? Is that a desirable setup? Containers often share image layers,
so a single tar.gz of N containers is normally quite a bit smaller and
more efficient than N individual .tar.gz files.

What I do is basically just:
docker save -o docker.tar <container1> <container2> .. <containerN>

And then a single docker load at runtime.

-- 
Bye, Peter Korsgaard

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

* [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package
  2021-05-11 11:19         ` Peter Korsgaard
@ 2021-05-11 19:33           ` Christian Stewart
  0 siblings, 0 replies; 11+ messages in thread
From: Christian Stewart @ 2021-05-11 19:33 UTC (permalink / raw)
  To: buildroot

Peter, all,

On Tue, May 11, 2021 at 4:19 AM Peter Korsgaard <peter@korsgaard.com> wrote:
>
> >>>>> "Christian" == Christian Stewart <christian@paral.in> writes:
>  >> $(eval $(oci-image-package))

>  > Yes, the "download" step would use host "img pull" to download the OCI
>  > image, and then "img save" to store it as a .tar.gz, (which we can
>  > then hash as a downloaded tar.gz file).
>
>  > The .tar.gz can be loaded into Docker with "docker load < the-image.tar.gz"
>
>  > The image-package helper could just download the image + save it (to
>  > images dir, optionally).
>
> So you would end up with a tar file for each container image in the
> rootfs? Is that a desirable setup? Containers often share image layers,
> so a single tar.gz of N containers is normally quite a bit smaller and
> more efficient than N individual .tar.gz files.

This could be one approach, but it really comes down to adding an easy
way to request a "img pull" into buildroot cache (dl/ dir) w/ hashes
checking. This then followed by "img save" from the same host package
to store the .tar somewhere, as you've described.

> What I do is basically just:
> docker save -o docker.tar <container1> <container2> .. <containerN>
>
> And then a single docker load at runtime.

This works. For my SkiffOS project I'm planning to store these in a
separate partition and/or run a small Go program to generate the
docker/ state tree ahead of time on persistent media with the images
pre-loaded.

Best regards,
Christian Stewart

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

end of thread, other threads:[~2021-05-11 19:33 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-03  2:33 [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Christian Stewart
2021-05-03  2:33 ` [Buildroot] [PATCH v1 2/3] package/fuse-overlayfs: enable building as " Christian Stewart
2021-05-04 20:20   ` Yann E. MORIN
2021-05-04 20:25     ` Christian Stewart
2021-05-03  2:33 ` [Buildroot] [PATCH v1 3/3] package/genuinetools-img: new host and target package Christian Stewart
2021-05-03  2:45   ` Christian Stewart
2021-05-04 20:31     ` Yann E. MORIN
2021-05-04 22:03       ` Christian Stewart
2021-05-11 11:19         ` Peter Korsgaard
2021-05-11 19:33           ` Christian Stewart
2021-05-04 20:18 ` [Buildroot] [PATCH v1 1/3] package/libfuse3: allow building as a host package Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox