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