Erofs is a read only filesystem, much like squashfs, that is optimized
for read performance (rather than e.g. maximum compression ratio).

The erofs-utils host package allows building erofs images.
Since genimage does not have erofs support yet (there is a pull request
though [1]) this can for example be achieved via the tar input feature:

    $ mkfs.erofs -z zstd --ungzip --tar root.erofs root.tgz

and a custom rule.

[1]: https://github.com/pengutronix/genimage/pull/247

Signed-off-by: Leonard Göhrs <[email protected]>
---
 patches/erofs-utils-1.8.5/autogen.sh |  1 +
 rules/host-erofs-utils.in            | 19 +++++++++++++++
 rules/host-erofs-utils.make          | 36 ++++++++++++++++++++++++++++
 3 files changed, 56 insertions(+)
 create mode 120000 patches/erofs-utils-1.8.5/autogen.sh
 create mode 100644 rules/host-erofs-utils.in
 create mode 100644 rules/host-erofs-utils.make

diff --git a/patches/erofs-utils-1.8.5/autogen.sh 
b/patches/erofs-utils-1.8.5/autogen.sh
new file mode 120000
index 000000000..9f8a4cb7d
--- /dev/null
+++ b/patches/erofs-utils-1.8.5/autogen.sh
@@ -0,0 +1 @@
+../autogen.sh
\ No newline at end of file
diff --git a/rules/host-erofs-utils.in b/rules/host-erofs-utils.in
new file mode 100644
index 000000000..80dec1b80
--- /dev/null
+++ b/rules/host-erofs-utils.in
@@ -0,0 +1,19 @@
+## SECTION=hosttools_noprompt
+
+config HOST_EROFS_UTILS
+       tristate
+       default y if ALLYES
+       select HOST_LIBUUID
+       select HOST_ZLIB
+       select HOST_LZ4 if HOST_EROFS_UTILS_LZ4_SUPPORT
+       select HOST_ZSTD if HOST_EROFS_UTILS_ZSTD_SUPPORT
+
+if HOST_EROFS_UTILS
+
+config HOST_EROFS_UTILS_LZ4_SUPPORT
+       bool
+
+config HOST_EROFS_UTILS_ZSTD_SUPPORT
+       bool
+
+endif
diff --git a/rules/host-erofs-utils.make b/rules/host-erofs-utils.make
new file mode 100644
index 000000000..8f6165851
--- /dev/null
+++ b/rules/host-erofs-utils.make
@@ -0,0 +1,36 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2025 by Leonard Göhrs <[email protected]>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_EROFS_UTILS) += host-erofs-utils
+
+#
+# Paths and names
+#
+HOST_EROFS_UTILS_VERSION       := 1.8.5
+HOST_EROFS_UTILS_MD5           := a4a4d803bc5120ffacc05a453a505ff7
+HOST_EROFS_UTILS               := erofs-utils-$(HOST_EROFS_UTILS_VERSION)
+HOST_EROFS_UTILS_SUFFIX                := tar.gz
+HOST_EROFS_UTILS_URL           := 
https://web.git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot/$(HOST_EROFS_UTILS).$(HOST_EROFS_UTILS_SUFFIX)
+HOST_EROFS_UTILS_SOURCE                := 
$(SRCDIR)/$(HOST_EROFS_UTILS).$(HOST_EROFS_UTILS_SUFFIX)
+HOST_EROFS_UTILS_DIR           := $(HOST_BUILDDIR)/$(HOST_EROFS_UTILS)
+HOST_EROFS_UTILS_LICENSE       := unknown
+HOST_EROFS_UTILS_LICENSE_FILES := 
file://COPYING;md5=73001d804ea1e3d84365f652242cca20
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_EROFS_UTILS_CONF_TOOL     := autoconf
+
+# vim: syntax=make
-- 
2.39.5


Reply via email to