[Buildroot] [PATCH v3 1/3] package/sloci-image: new host package
Arnout Vandecappelle
arnout at mind.be
Fri Sep 10 17:47:50 UTC 2021
On 27/08/2021 22:54, Matthew Weber via buildroot wrote:
> From: Sergio Prado <sergio.prado at e-labworks.com>
>
> sloci-image is a simple CLI tool for packing rootfs into a single-layer
> OCI image.
>
> Signed-off-by: Sergio Prado <sergio.prado at e-labworks.com>
> Signed-off-by: Matthew Weber <matthew.weber at collins.com>
> ---
> DEVELOPERS | 1 +
> package/Config.in.host | 2 +
> ...-from-the-contents-of-working-folder.patch | 37 +++++++++++++++++++
> package/sloci-image/Config.in.host | 7 ++++
> package/sloci-image/sloci-image.hash | 5 +++
> package/sloci-image/sloci-image.mk | 19 ++++++++++
> 6 files changed, 71 insertions(+)
> create mode 100644 package/sloci-image/0001-create-OCI-tar-from-the-contents-of-working-folder.patch
> create mode 100644 package/sloci-image/Config.in.host
> create mode 100644 package/sloci-image/sloci-image.hash
> create mode 100644 package/sloci-image/sloci-image.mk
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 53448dd100..af684021f4 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -2425,6 +2425,7 @@ F: package/curlpp/
> F: package/daq/
> F: package/libgdiplus/
> F: package/pimd/
> +F: package/sloci-image/
Matt, I took the liberty of adding sloci-image to your entry as well.
> F: package/snort/
> F: package/stella/
> F: package/tio/
> diff --git a/package/Config.in.host b/package/Config.in.host
> index 551352482e..209b1ff138 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -78,7 +78,9 @@ menu "Host utilities"
> source "package/rustc/Config.in.host"
> source "package/s6-rc/Config.in.host"
> source "package/sam-ba/Config.in.host"
> +
Spurious empty line.
> source "package/sdbusplus/Config.in.host"
> + source "package/sloci-image/Config.in.host"
> source "package/squashfs/Config.in.host"
> source "package/sunxi-tools/Config.in.host"
> source "package/swig/Config.in.host"
> diff --git a/package/sloci-image/0001-create-OCI-tar-from-the-contents-of-working-folder.patch b/package/sloci-image/0001-create-OCI-tar-from-the-contents-of-working-folder.patch
> new file mode 100644
> index 0000000000..3d048e3843
> --- /dev/null
> +++ b/package/sloci-image/0001-create-OCI-tar-from-the-contents-of-working-folder.patch
> @@ -0,0 +1,37 @@
> +From 66c73c2ba3057634f19f37d3cfbbe752638c9f9f Mon Sep 17 00:00:00 2001
> +From: Matthew Weber <matthew.weber at collins.com>
> +Date: Fri, 27 Aug 2021 12:24:19 -0500
> +Subject: [PATCH] create OCI tar from the contents of working folder
> +
> +When testing with containerd, it was found that the tarfile
> +created with sloci can't import because the contents are inside
> +a folder. Looking around online, it seems that the an oci tar
> +should container the blob/index.json/oci-layout in the . of the
> +tarfile.
> +
> +Upstream: https://github.com/jirutka/sloci-image/pull/3
It was accepted, great!
> +
> +Refs:
> +https://snyk.io/blog/container-image-formats/
> +https://github.com/opencontainers/image-spec/blob/main/image-layout.md
> +
> +Signed-off-by: Matthew Weber <matthew.weber at collins.com>
> +---
> + sloci-image | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/sloci-image b/sloci-image
> +index 90dba26..7f3c775 100755
> +--- a/sloci-image
> ++++ b/sloci-image
> +@@ -425,6 +425,6 @@ if [ "$OUT_TYPE" = tar ]; then
> + file_name="$IMAGE_NAME-$CFG_REF_NAME-$CFG_ARCH"
> + file_name="$file_name${CFG_ARCH_VARIANT:+"-$CFG_ARCH_VARIANT"}-$CFG_OS.oci-image"
> +
> +- tar ${DEBUG:+-v} -cf "$file_name.tar" "$IMAGE_NAME"
> ++ tar ${DEBUG:+-v} -cf "$file_name.tar" -C "$IMAGE_NAME" .
> + rm -Rf "$IMAGE_NAME"
> + fi
> +--
> +2.17.1
> +
> diff --git a/package/sloci-image/Config.in.host b/package/sloci-image/Config.in.host
> new file mode 100644
> index 0000000000..d809f1f3c7
> --- /dev/null
> +++ b/package/sloci-image/Config.in.host
> @@ -0,0 +1,7 @@
> +config BR2_PACKAGE_HOST_SLOCI_IMAGE
> + bool "host sloci-image"
> + help
> + A simple CLI tool for packing rootfs into a single-layer OCI
> + image.
> +
> + https://github.com/jirutka/sloci-image
> diff --git a/package/sloci-image/sloci-image.hash b/package/sloci-image/sloci-image.hash
> new file mode 100644
> index 0000000000..117f0ba6e0
> --- /dev/null
> +++ b/package/sloci-image/sloci-image.hash
> @@ -0,0 +1,5 @@
> +# Locally computed
> +sha256 56fbc335c193eccc3992f0a723c6dabe762f6d4854fc52059be074bdf5060d9e sloci-image-0.1.1.tar.gz
> +
> +# Hash for license files:
> +sha256 8ea53673b084576813fc40cd63817c5a1619438942b5e6c30dac1d10707c27e4 LICENSE
> diff --git a/package/sloci-image/sloci-image.mk b/package/sloci-image/sloci-image.mk
> new file mode 100644
> index 0000000000..f6db7e2060
> --- /dev/null
> +++ b/package/sloci-image/sloci-image.mk
> @@ -0,0 +1,19 @@
> +################################################################################
> +#
> +# sloci-image
> +#
> +################################################################################
> +
> +SLOCI_IMAGE_VERSION = 0.1.1
It doesn't look like upstream is going to make a release any time soon, so you
could just as well update to the most recent sha1 and drop the patch. Oh well,
I've applied as is.
> +SLOCI_IMAGE_SITE = $(call github,jirutka,sloci-image,v$(SLOCI_IMAGE_VERSION))
> +
> +SLOCI_IMAGE_LICENSE = MIT
> +SLOCI_IMAGE_LICENSE_FILES = LICENSE
> +
> +HOST_SLOCI_IMAGE_DEPENDENCIES = host-gawk
> +
> +define HOST_SLOCI_IMAGE_INSTALL_CMDS
> + $(HOST_MAKE_ENV) $(MAKE) DESTDIR=$(HOST_DIR) PREFIX=/usr -C $(@D) install
This is wrong! For host packages, DESTDIR should be empty and PREFIX should be
set to $(HOST_DIR) without /usr. It doesn't make a difference in practice
because PREFIX is only used to construct the install path and the usr symlink
makes it work, but it's the principle!
I fixed all of the above and applied to master, thanks.
Regards,
Arnout
> +endef
> +
> +$(eval $(host-generic-package))
>
More information about the buildroot
mailing list