* [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package
[not found] <20200316015838.15183-1-hsiangkao.ref@aol.com>
@ 2020-03-16 1:58 ` Gao Xiang
2020-03-16 1:58 ` [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image Gao Xiang
2020-03-18 22:39 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Yann E. MORIN
0 siblings, 2 replies; 9+ messages in thread
From: Gao Xiang @ 2020-03-16 1:58 UTC (permalink / raw)
To: buildroot
This patch adds EROFS userspace tool erofs-utils to buildroot,
which can be used to generate EROFS images.
Signed-off-by: Gao Xiang <hsiangkao@aol.com>
---
Changes since v1:
- use upper-case name EROFS, except all config items because
it seems other filesystem names are all in low-case.
Hi,
EROFS filesystem [1] [2] has been included in linux 5.4 formally
and it has been enabled as a module in openSUSE, Debian, Ubuntu
and Fedora as well.
This patchset enables alternative EROFS support for buildroot and
I think it will be useful for such embedded devices which need
better dynamic performance with moderate compressed rootfs.
[1] https://static.sched.com/hosted_files/kccncosschn19chi/ce/EROFS%20file%20system_OSS2019_Final.pdf
[2] https://www.usenix.org/system/files/atc19-gao.pdf
Thanks,
Gao Xiang
package/Config.in | 1 +
package/Config.in.host | 1 +
.../0001-erofs-utils-fix-configure.ac.patch | 33 +++++++++++
...d-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch | 58 +++++++++++++++++++
package/erofs-utils/Config.in | 16 +++++
package/erofs-utils/Config.in.host | 6 ++
package/erofs-utils/erofs-utils.hash | 3 +
package/erofs-utils/erofs-utils.mk | 22 +++++++
8 files changed, 140 insertions(+)
create mode 100644 package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch
create mode 100644 package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch
create mode 100644 package/erofs-utils/Config.in
create mode 100644 package/erofs-utils/Config.in.host
create mode 100644 package/erofs-utils/erofs-utils.hash
create mode 100644 package/erofs-utils/erofs-utils.mk
diff --git a/package/Config.in b/package/Config.in
index 146fc1bbc3..3aeb32a5de 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -196,6 +196,7 @@ menu "Filesystem and flash utilities"
source "package/e2fsprogs/Config.in"
source "package/e2tools/Config.in"
source "package/ecryptfs-utils/Config.in"
+ source "package/erofs-utils/Config.in"
source "package/exfat/Config.in"
source "package/exfat-utils/Config.in"
source "package/f2fs-tools/Config.in"
diff --git a/package/Config.in.host b/package/Config.in.host
index dfea478868..64a88f7630 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -18,6 +18,7 @@ menu "Host utilities"
source "package/dtc/Config.in.host"
source "package/e2fsprogs/Config.in.host"
source "package/e2tools/Config.in.host"
+ source "package/erofs-utils/Config.in.host"
source "package/eudev/Config.in.host"
source "package/f2fs-tools/Config.in.host"
source "package/faketime/Config.in.host"
diff --git a/package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch b/package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch
new file mode 100644
index 0000000000..7ced565995
--- /dev/null
+++ b/package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch
@@ -0,0 +1,33 @@
+From eefd95b37e1042992cb07bec1ac3f6dbe199d8f0 Mon Sep 17 00:00:00 2001
+From: Haruue Icymoon <i@haruue.moe>
+Date: Fri, 22 Nov 2019 16:58:59 +0800
+Subject: [PATCH] erofs-utils: fix configure.ac
+
+./configure will fail when --with-lz4-libdir is not set, since
+$with_lz4_libdir will be an empty string and generate an empty -L
+into LDFLAGS. This patch fixes it.
+
+Link: https://lore.kernel.org/r/20191122085859.GA2414688 at usamimi.host.haruue.net
+Signed-off-by: Haruue Icymoon <i@haruue.moe>
+Fixes: d51c2d043773 ("erofs-utils: introduce lz4/lz4hc compression algorithm")
+Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f925358..870dfb9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -174,7 +174,7 @@ if test "x$enable_lz4" = "xyes"; then
+
+ if test "x${have_lz4h}" = "xyes" ; then
+ saved_LDFLAGS=${LDFLAGS}
+- LDFLAGS="-L$with_lz4_libdir ${LDFLAGS}"
++ test -z "${with_lz4_libdir}" || LDFLAGS="-L$with_lz4_libdir ${LDFLAGS}"
+ AC_CHECK_LIB(lz4, LZ4_compress_destSize, [
+ have_lz4="yes"
+ have_lz4hc="yes"
+--
+2.20.1
+
diff --git a/package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch b/package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch
new file mode 100644
index 0000000000..0b6ecab71b
--- /dev/null
+++ b/package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch
@@ -0,0 +1,58 @@
+From 41d6c984699f30c11e8c92550239bbe5a3e5ada1 Mon Sep 17 00:00:00 2001
+From: Gao Xiang <gaoxiang25@huawei.com>
+Date: Sat, 14 Mar 2020 17:05:37 +0800
+Subject: [PATCH] erofs-utils: avoid _LARGEFILE64_SOURCE and _GNU_SOURCE
+ redefinition
+
+This patch can be used to resolve the following build errors:
+
+compress.c:10: error: "_LARGEFILE64_SOURCE" redefined [-Werror]
+ #define _LARGEFILE64_SOURCE
+
+<command-line>: note: this is the location of the previous definition
+
+io.c:9: error: "_LARGEFILE64_SOURCE" redefined [-Werror]
+ #define _LARGEFILE64_SOURCE
+
+<command-line>: note: this is the location of the previous definition
+
+Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
+---
+ lib/compress.c | 2 ++
+ lib/io.c | 4 ++++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/lib/compress.c b/lib/compress.c
+index 8337487..b14ff17 100644
+--- a/lib/compress.c
++++ b/lib/compress.c
+@@ -7,7 +7,9 @@
+ * Created by Miao Xie <miaoxie@huawei.com>
+ * with heavy changes by Gao Xiang <gaoxiang25@huawei.com>
+ */
++#ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
++#endif
+ #include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+diff --git a/lib/io.c b/lib/io.c
+index 52f9424..5b998d8 100644
+--- a/lib/io.c
++++ b/lib/io.c
+@@ -6,8 +6,12 @@
+ * http://www.huawei.com/
+ * Created by Li Guifu <bluce.liguifu@huawei.com>
+ */
++#ifndef _LARGEFILE64_SOURCE
+ #define _LARGEFILE64_SOURCE
++#endif
++#ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
++#endif
+ #include <sys/stat.h>
+ #include <sys/ioctl.h>
+ #include "erofs/io.h"
+--
+2.20.1
+
diff --git a/package/erofs-utils/Config.in b/package/erofs-utils/Config.in
new file mode 100644
index 0000000000..75bcbdaae2
--- /dev/null
+++ b/package/erofs-utils/Config.in
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_EROFS_UTILS
+ bool "erofs-utils"
+ help
+ Userspace utilities for EROFS filesystem
+
+ https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
+
+if BR2_PACKAGE_EROFS_UTILS
+
+config BR2_PACKAGE_EROFS_UTILS_LZ4
+ bool "lz4 support"
+ select BR2_PACKAGE_LZ4
+ help
+ Support LZ4 compression algorithm
+
+endif
diff --git a/package/erofs-utils/Config.in.host b/package/erofs-utils/Config.in.host
new file mode 100644
index 0000000000..31ea6eb2ea
--- /dev/null
+++ b/package/erofs-utils/Config.in.host
@@ -0,0 +1,6 @@
+config BR2_PACKAGE_HOST_EROFS_UTILS
+ bool "host erofs-utils"
+ help
+ Userspace utilities for EROFS filesystem
+
+ https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
diff --git a/package/erofs-utils/erofs-utils.hash b/package/erofs-utils/erofs-utils.hash
new file mode 100644
index 0000000000..45d4883a01
--- /dev/null
+++ b/package/erofs-utils/erofs-utils.hash
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 508ee818dc6a02cf986647e37cb991b76f7b3e7ea303ffc9e980772de68f3b10 erofs-utils-1.0.tar.gz
+sha256 feee3b3157dcdf78d4f50edefbd5dd7adf8b6d52c11bfaaa746a85a373256713 COPYING
diff --git a/package/erofs-utils/erofs-utils.mk b/package/erofs-utils/erofs-utils.mk
new file mode 100644
index 0000000000..3f28547e8e
--- /dev/null
+++ b/package/erofs-utils/erofs-utils.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# erofs-utils
+#
+################################################################################
+
+EROFS_UTILS_VERSION = 1.0
+EROFS_UTILS_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot
+EROFS_UTILS_AUTORECONF = YES
+EROFS_UTILS_LICENSE = GPL-2.0+
+EROFS_UTILS_LICENSE_FILES = COPYING
+
+ifeq ($(BR2_PACKAGE_EROFS_UTILS_LZ4),y)
+EROFS_UTILS_DEPENDENCIES += lz4
+else
+EROFS_UTILS_CONF_OPTS += --disable-lz4
+endif
+
+HOST_EROFS_UTILS_DEPENDENCIES = host-lz4
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
--
2.20.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image
2020-03-16 1:58 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Gao Xiang
@ 2020-03-16 1:58 ` Gao Xiang
2020-03-19 17:49 ` Yann E. MORIN
2020-03-18 22:39 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Yann E. MORIN
1 sibling, 1 reply; 9+ messages in thread
From: Gao Xiang @ 2020-03-16 1:58 UTC (permalink / raw)
To: buildroot
This patch makes possible to create rootfs image using
EROFS filesystem.
Signed-off-by: Gao Xiang <hsiangkao@aol.com>
---
fs/Config.in | 1 +
fs/erofs/Config.in | 24 ++++++++++++++++++++++++
fs/erofs/erofs.mk | 17 +++++++++++++++++
3 files changed, 42 insertions(+)
create mode 100644 fs/erofs/Config.in
create mode 100644 fs/erofs/erofs.mk
diff --git a/fs/Config.in b/fs/Config.in
index 527051ef54..37a2aa21f8 100644
--- a/fs/Config.in
+++ b/fs/Config.in
@@ -5,6 +5,7 @@ source "fs/btrfs/Config.in"
source "fs/cloop/Config.in"
source "fs/cpio/Config.in"
source "fs/cramfs/Config.in"
+source "fs/erofs/Config.in"
source "fs/ext2/Config.in"
source "fs/f2fs/Config.in"
source "fs/initramfs/Config.in"
diff --git a/fs/erofs/Config.in b/fs/erofs/Config.in
new file mode 100644
index 0000000000..dad2498a15
--- /dev/null
+++ b/fs/erofs/Config.in
@@ -0,0 +1,24 @@
+config BR2_TARGET_ROOTFS_EROFS
+ bool "erofs root filesystem"
+ select BR2_PACKAGE_HOST_EROFS_UTILS
+ help
+ Build a EROFS root filesystem. If you enable this option,
+ you probably want to enable the erofs-utils package too.
+
+if BR2_TARGET_ROOTFS_EROFS
+
+choice
+ prompt "Compression algorithm"
+ default BR2_TARGET_ROOTFS_EROFS_LZ4HC
+ help
+ Select the primary compression algorithm to use when
+ generating EROFS filesystem image.
+
+config BR2_TARGET_ROOTFS_EROFS_NONE
+ bool "none"
+
+config BR2_TARGET_ROOTFS_EROFS_LZ4HC
+ bool "lz4hc"
+
+endchoice
+endif # BR2_TARGET_ROOTFS_EROFS
diff --git a/fs/erofs/erofs.mk b/fs/erofs/erofs.mk
new file mode 100644
index 0000000000..58559d4833
--- /dev/null
+++ b/fs/erofs/erofs.mk
@@ -0,0 +1,17 @@
+################################################################################
+#
+# Build the EROFS root filesystem image
+#
+################################################################################
+
+ROOTFS_EROFS_DEPENDENCIES = host-erofs-utils
+
+ifeq ($(BR2_TARGET_ROOTFS_EROFS_LZ4HC),y)
+ROOTFS_EROFS_ARGS += -zlz4hc
+endif
+
+define ROOTFS_EROFS_CMD
+ $(HOST_DIR)/bin/mkfs.erofs $(ROOTFS_EROFS_ARGS) $@ $(TARGET_DIR)
+endef
+
+$(eval $(rootfs))
--
2.20.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package
2020-03-16 1:58 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Gao Xiang
2020-03-16 1:58 ` [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image Gao Xiang
@ 2020-03-18 22:39 ` Yann E. MORIN
2020-03-19 13:25 ` Gao Xiang
1 sibling, 1 reply; 9+ messages in thread
From: Yann E. MORIN @ 2020-03-18 22:39 UTC (permalink / raw)
To: buildroot
Gao, All,
On 2020-03-16 09:58 +0800, Gao Xiang spake thusly:
> This patch adds EROFS userspace tool erofs-utils to buildroot,
> which can be used to generate EROFS images.
>
> Signed-off-by: Gao Xiang <hsiangkao@aol.com>
Applied to master, with the following fixes:
- add explicit --enable-lz4
- explain why autoreconf
- add DEVELOPPER entry
Thanks!
Regards,
Yann E. MORIN.
> ---
>
> Changes since v1:
> - use upper-case name EROFS, except all config items because
> it seems other filesystem names are all in low-case.
>
> Hi,
>
> EROFS filesystem [1] [2] has been included in linux 5.4 formally
> and it has been enabled as a module in openSUSE, Debian, Ubuntu
> and Fedora as well.
>
> This patchset enables alternative EROFS support for buildroot and
> I think it will be useful for such embedded devices which need
> better dynamic performance with moderate compressed rootfs.
>
> [1] https://static.sched.com/hosted_files/kccncosschn19chi/ce/EROFS%20file%20system_OSS2019_Final.pdf
> [2] https://www.usenix.org/system/files/atc19-gao.pdf
>
> Thanks,
> Gao Xiang
>
>
> package/Config.in | 1 +
> package/Config.in.host | 1 +
> .../0001-erofs-utils-fix-configure.ac.patch | 33 +++++++++++
> ...d-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch | 58 +++++++++++++++++++
> package/erofs-utils/Config.in | 16 +++++
> package/erofs-utils/Config.in.host | 6 ++
> package/erofs-utils/erofs-utils.hash | 3 +
> package/erofs-utils/erofs-utils.mk | 22 +++++++
> 8 files changed, 140 insertions(+)
> create mode 100644 package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch
> create mode 100644 package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch
> create mode 100644 package/erofs-utils/Config.in
> create mode 100644 package/erofs-utils/Config.in.host
> create mode 100644 package/erofs-utils/erofs-utils.hash
> create mode 100644 package/erofs-utils/erofs-utils.mk
>
> diff --git a/package/Config.in b/package/Config.in
> index 146fc1bbc3..3aeb32a5de 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -196,6 +196,7 @@ menu "Filesystem and flash utilities"
> source "package/e2fsprogs/Config.in"
> source "package/e2tools/Config.in"
> source "package/ecryptfs-utils/Config.in"
> + source "package/erofs-utils/Config.in"
> source "package/exfat/Config.in"
> source "package/exfat-utils/Config.in"
> source "package/f2fs-tools/Config.in"
> diff --git a/package/Config.in.host b/package/Config.in.host
> index dfea478868..64a88f7630 100644
> --- a/package/Config.in.host
> +++ b/package/Config.in.host
> @@ -18,6 +18,7 @@ menu "Host utilities"
> source "package/dtc/Config.in.host"
> source "package/e2fsprogs/Config.in.host"
> source "package/e2tools/Config.in.host"
> + source "package/erofs-utils/Config.in.host"
> source "package/eudev/Config.in.host"
> source "package/f2fs-tools/Config.in.host"
> source "package/faketime/Config.in.host"
> diff --git a/package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch b/package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch
> new file mode 100644
> index 0000000000..7ced565995
> --- /dev/null
> +++ b/package/erofs-utils/0001-erofs-utils-fix-configure.ac.patch
> @@ -0,0 +1,33 @@
> +From eefd95b37e1042992cb07bec1ac3f6dbe199d8f0 Mon Sep 17 00:00:00 2001
> +From: Haruue Icymoon <i@haruue.moe>
> +Date: Fri, 22 Nov 2019 16:58:59 +0800
> +Subject: [PATCH] erofs-utils: fix configure.ac
> +
> +./configure will fail when --with-lz4-libdir is not set, since
> +$with_lz4_libdir will be an empty string and generate an empty -L
> +into LDFLAGS. This patch fixes it.
> +
> +Link: https://lore.kernel.org/r/20191122085859.GA2414688 at usamimi.host.haruue.net
> +Signed-off-by: Haruue Icymoon <i@haruue.moe>
> +Fixes: d51c2d043773 ("erofs-utils: introduce lz4/lz4hc compression algorithm")
> +Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
> +---
> + configure.ac | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/configure.ac b/configure.ac
> +index f925358..870dfb9 100644
> +--- a/configure.ac
> ++++ b/configure.ac
> +@@ -174,7 +174,7 @@ if test "x$enable_lz4" = "xyes"; then
> +
> + if test "x${have_lz4h}" = "xyes" ; then
> + saved_LDFLAGS=${LDFLAGS}
> +- LDFLAGS="-L$with_lz4_libdir ${LDFLAGS}"
> ++ test -z "${with_lz4_libdir}" || LDFLAGS="-L$with_lz4_libdir ${LDFLAGS}"
> + AC_CHECK_LIB(lz4, LZ4_compress_destSize, [
> + have_lz4="yes"
> + have_lz4hc="yes"
> +--
> +2.20.1
> +
> diff --git a/package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch b/package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch
> new file mode 100644
> index 0000000000..0b6ecab71b
> --- /dev/null
> +++ b/package/erofs-utils/0002-erofs-utils-avoid-_LARGEFILE64_SOURCE-and-_GNU_SOURC.patch
> @@ -0,0 +1,58 @@
> +From 41d6c984699f30c11e8c92550239bbe5a3e5ada1 Mon Sep 17 00:00:00 2001
> +From: Gao Xiang <gaoxiang25@huawei.com>
> +Date: Sat, 14 Mar 2020 17:05:37 +0800
> +Subject: [PATCH] erofs-utils: avoid _LARGEFILE64_SOURCE and _GNU_SOURCE
> + redefinition
> +
> +This patch can be used to resolve the following build errors:
> +
> +compress.c:10: error: "_LARGEFILE64_SOURCE" redefined [-Werror]
> + #define _LARGEFILE64_SOURCE
> +
> +<command-line>: note: this is the location of the previous definition
> +
> +io.c:9: error: "_LARGEFILE64_SOURCE" redefined [-Werror]
> + #define _LARGEFILE64_SOURCE
> +
> +<command-line>: note: this is the location of the previous definition
> +
> +Signed-off-by: Gao Xiang <gaoxiang25@huawei.com>
> +---
> + lib/compress.c | 2 ++
> + lib/io.c | 4 ++++
> + 2 files changed, 6 insertions(+)
> +
> +diff --git a/lib/compress.c b/lib/compress.c
> +index 8337487..b14ff17 100644
> +--- a/lib/compress.c
> ++++ b/lib/compress.c
> +@@ -7,7 +7,9 @@
> + * Created by Miao Xie <miaoxie@huawei.com>
> + * with heavy changes by Gao Xiang <gaoxiang25@huawei.com>
> + */
> ++#ifndef _LARGEFILE64_SOURCE
> + #define _LARGEFILE64_SOURCE
> ++#endif
> + #include <string.h>
> + #include <stdlib.h>
> + #include <unistd.h>
> +diff --git a/lib/io.c b/lib/io.c
> +index 52f9424..5b998d8 100644
> +--- a/lib/io.c
> ++++ b/lib/io.c
> +@@ -6,8 +6,12 @@
> + * http://www.huawei.com/
> + * Created by Li Guifu <bluce.liguifu@huawei.com>
> + */
> ++#ifndef _LARGEFILE64_SOURCE
> + #define _LARGEFILE64_SOURCE
> ++#endif
> ++#ifndef _GNU_SOURCE
> + #define _GNU_SOURCE
> ++#endif
> + #include <sys/stat.h>
> + #include <sys/ioctl.h>
> + #include "erofs/io.h"
> +--
> +2.20.1
> +
> diff --git a/package/erofs-utils/Config.in b/package/erofs-utils/Config.in
> new file mode 100644
> index 0000000000..75bcbdaae2
> --- /dev/null
> +++ b/package/erofs-utils/Config.in
> @@ -0,0 +1,16 @@
> +config BR2_PACKAGE_EROFS_UTILS
> + bool "erofs-utils"
> + help
> + Userspace utilities for EROFS filesystem
> +
> + https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
> +
> +if BR2_PACKAGE_EROFS_UTILS
> +
> +config BR2_PACKAGE_EROFS_UTILS_LZ4
> + bool "lz4 support"
> + select BR2_PACKAGE_LZ4
> + help
> + Support LZ4 compression algorithm
> +
> +endif
> diff --git a/package/erofs-utils/Config.in.host b/package/erofs-utils/Config.in.host
> new file mode 100644
> index 0000000000..31ea6eb2ea
> --- /dev/null
> +++ b/package/erofs-utils/Config.in.host
> @@ -0,0 +1,6 @@
> +config BR2_PACKAGE_HOST_EROFS_UTILS
> + bool "host erofs-utils"
> + help
> + Userspace utilities for EROFS filesystem
> +
> + https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git
> diff --git a/package/erofs-utils/erofs-utils.hash b/package/erofs-utils/erofs-utils.hash
> new file mode 100644
> index 0000000000..45d4883a01
> --- /dev/null
> +++ b/package/erofs-utils/erofs-utils.hash
> @@ -0,0 +1,3 @@
> +# Locally computed
> +sha256 508ee818dc6a02cf986647e37cb991b76f7b3e7ea303ffc9e980772de68f3b10 erofs-utils-1.0.tar.gz
> +sha256 feee3b3157dcdf78d4f50edefbd5dd7adf8b6d52c11bfaaa746a85a373256713 COPYING
> diff --git a/package/erofs-utils/erofs-utils.mk b/package/erofs-utils/erofs-utils.mk
> new file mode 100644
> index 0000000000..3f28547e8e
> --- /dev/null
> +++ b/package/erofs-utils/erofs-utils.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# erofs-utils
> +#
> +################################################################################
> +
> +EROFS_UTILS_VERSION = 1.0
> +EROFS_UTILS_SITE = https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot
> +EROFS_UTILS_AUTORECONF = YES
> +EROFS_UTILS_LICENSE = GPL-2.0+
> +EROFS_UTILS_LICENSE_FILES = COPYING
> +
> +ifeq ($(BR2_PACKAGE_EROFS_UTILS_LZ4),y)
> +EROFS_UTILS_DEPENDENCIES += lz4
> +else
> +EROFS_UTILS_CONF_OPTS += --disable-lz4
> +endif
> +
> +HOST_EROFS_UTILS_DEPENDENCIES = host-lz4
> +
> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))
> --
> 2.20.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] 9+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package
2020-03-18 22:39 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Yann E. MORIN
@ 2020-03-19 13:25 ` Gao Xiang
2020-03-19 16:44 ` Yann E. MORIN
0 siblings, 1 reply; 9+ messages in thread
From: Gao Xiang @ 2020-03-19 13:25 UTC (permalink / raw)
To: buildroot
Hi Yann,
On Wed, Mar 18, 2020 at 11:39:50PM +0100, Yann E. MORIN wrote:
> Gao, All,
>
> On 2020-03-16 09:58 +0800, Gao Xiang spake thusly:
> > This patch adds EROFS userspace tool erofs-utils to buildroot,
> > which can be used to generate EROFS images.
> >
> > Signed-off-by: Gao Xiang <hsiangkao@aol.com>
>
> Applied to master, with the following fixes:
>
> - add explicit --enable-lz4
> - explain why autoreconf
> - add DEVELOPPER entry
>
> Thanks!
Thanks for taking time & your help on this patch, it looks good
to me. :)
And if possible, could you also kindly consider [PATCH v2 2/2]?
I have been verified this series by booting up generated rootfs
images with no unexpected behavior, kindly let me know if
something else needed.
Thanks,
Gao Xiang
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package
2020-03-19 13:25 ` Gao Xiang
@ 2020-03-19 16:44 ` Yann E. MORIN
2020-03-20 7:05 ` Gao Xiang
0 siblings, 1 reply; 9+ messages in thread
From: Yann E. MORIN @ 2020-03-19 16:44 UTC (permalink / raw)
To: buildroot
Gao, All,
On 2020-03-19 21:25 +0800, Gao Xiang spake thusly:
> On Wed, Mar 18, 2020 at 11:39:50PM +0100, Yann E. MORIN wrote:
> > Gao, All,
> >
> > On 2020-03-16 09:58 +0800, Gao Xiang spake thusly:
> > > This patch adds EROFS userspace tool erofs-utils to buildroot,
> > > which can be used to generate EROFS images.
> > >
> > > Signed-off-by: Gao Xiang <hsiangkao@aol.com>
> >
> > Applied to master, with the following fixes:
> >
> > - add explicit --enable-lz4
> > - explain why autoreconf
> > - add DEVELOPPER entry
> >
> > Thanks!
>
> Thanks for taking time & your help on this patch, it looks good
> to me. :)
No problem, thanks for the patch.
> And if possible, could you also kindly consider [PATCH v2 2/2]?
I just ran out of time yesterday to look at it. I'ts still on my tablets
to handle it.
One thing that would be nice, is to have a runtime test for it, like we
have for the other filesystems:
support/testing/tests/fs/
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] 9+ messages in thread
* [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image
2020-03-16 1:58 ` [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image Gao Xiang
@ 2020-03-19 17:49 ` Yann E. MORIN
2020-03-20 7:13 ` Gao Xiang
0 siblings, 1 reply; 9+ messages in thread
From: Yann E. MORIN @ 2020-03-19 17:49 UTC (permalink / raw)
To: buildroot
Gao, All,
On 2020-03-16 09:58 +0800, Gao Xiang spake thusly:
> This patch makes possible to create rootfs image using
> EROFS filesystem.
>
> Signed-off-by: Gao Xiang <hsiangkao@aol.com>
> ---
[--SNIP--]
> diff --git a/fs/erofs/Config.in b/fs/erofs/Config.in
> new file mode 100644
> index 0000000000..dad2498a15
> --- /dev/null
> +++ b/fs/erofs/Config.in
> @@ -0,0 +1,24 @@
> +config BR2_TARGET_ROOTFS_EROFS
> + bool "erofs root filesystem"
> + select BR2_PACKAGE_HOST_EROFS_UTILS
> + help
> + Build a EROFS root filesystem. If you enable this option,
> + you probably want to enable the erofs-utils package too.
Since erofs is a read-only filesystem, and since erofs-utils only
provide an mkfs tool, I don't see how erofs-utils would be useful on the
target. So I've dropped that part from the help text.
> +if BR2_TARGET_ROOTFS_EROFS
> +
> +choice
> + prompt "Compression algorithm"
> + default BR2_TARGET_ROOTFS_EROFS_LZ4HC
> + help
> + Select the primary compression algorithm to use when
> + generating EROFS filesystem image.
> +
> +config BR2_TARGET_ROOTFS_EROFS_NONE
> + bool "none"
> +
> +config BR2_TARGET_ROOTFS_EROFS_LZ4HC
> + bool "lz4hc"
Do you envision adding other compression schemes? As far as I can see,
the erofs-utils as well as the linux driver only ever supports lz4 (and
I think you are well aware of that ;-) ).
I know the other filesystems (squashfs, jffs2...) have a choice about
the compression method, but for those ther are two or more such
possibilities, so it makes sense they have a choice. For erofs, not so
much.
As such, I have dropped the choice altogether, and just kept the single
boolean to enable compression.
Applied to master with the above changes. Thanks!
Regards,
Yann E. MORIN.
> +endchoice
> +endif # BR2_TARGET_ROOTFS_EROFS
> diff --git a/fs/erofs/erofs.mk b/fs/erofs/erofs.mk
> new file mode 100644
> index 0000000000..58559d4833
> --- /dev/null
> +++ b/fs/erofs/erofs.mk
> @@ -0,0 +1,17 @@
> +################################################################################
> +#
> +# Build the EROFS root filesystem image
> +#
> +################################################################################
> +
> +ROOTFS_EROFS_DEPENDENCIES = host-erofs-utils
> +
> +ifeq ($(BR2_TARGET_ROOTFS_EROFS_LZ4HC),y)
> +ROOTFS_EROFS_ARGS += -zlz4hc
> +endif
> +
> +define ROOTFS_EROFS_CMD
> + $(HOST_DIR)/bin/mkfs.erofs $(ROOTFS_EROFS_ARGS) $@ $(TARGET_DIR)
> +endef
> +
> +$(eval $(rootfs))
> --
> 2.20.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] 9+ messages in thread
* [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package
2020-03-19 16:44 ` Yann E. MORIN
@ 2020-03-20 7:05 ` Gao Xiang
0 siblings, 0 replies; 9+ messages in thread
From: Gao Xiang @ 2020-03-20 7:05 UTC (permalink / raw)
To: buildroot
On Thu, Mar 19, 2020 at 05:44:18PM +0100, Yann E. MORIN wrote:
> Gao, All,
>
> On 2020-03-19 21:25 +0800, Gao Xiang spake thusly:
> > On Wed, Mar 18, 2020 at 11:39:50PM +0100, Yann E. MORIN wrote:
> > > Gao, All,
> > >
> > > On 2020-03-16 09:58 +0800, Gao Xiang spake thusly:
> > > > This patch adds EROFS userspace tool erofs-utils to buildroot,
> > > > which can be used to generate EROFS images.
> > > >
> > > > Signed-off-by: Gao Xiang <hsiangkao@aol.com>
> > >
> > > Applied to master, with the following fixes:
> > >
> > > - add explicit --enable-lz4
> > > - explain why autoreconf
> > > - add DEVELOPPER entry
> > >
> > > Thanks!
> >
> > Thanks for taking time & your help on this patch, it looks good
> > to me. :)
>
> No problem, thanks for the patch.
>
> > And if possible, could you also kindly consider [PATCH v2 2/2]?
>
> I just ran out of time yesterday to look at it. I'ts still on my tablets
> to handle it.
That's fine :)
>
> One thing that would be nice, is to have a runtime test for it, like we
> have for the other filesystems:
> support/testing/tests/fs/
Okay, I will try to write some script later in my free time.
Thanks,
Gao Xiang
>
> 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. |
> '------------------------------^-------^------------------^--------------------'
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image
2020-03-19 17:49 ` Yann E. MORIN
@ 2020-03-20 7:13 ` Gao Xiang
2020-03-20 20:20 ` Yann E. MORIN
0 siblings, 1 reply; 9+ messages in thread
From: Gao Xiang @ 2020-03-20 7:13 UTC (permalink / raw)
To: buildroot
Hi Yann,
On Thu, Mar 19, 2020 at 06:49:42PM +0100, Yann E. MORIN wrote:
> Gao, All,
>
> On 2020-03-16 09:58 +0800, Gao Xiang spake thusly:
> > This patch makes possible to create rootfs image using
> > EROFS filesystem.
> >
> > Signed-off-by: Gao Xiang <hsiangkao@aol.com>
> > ---
> [--SNIP--]
> > diff --git a/fs/erofs/Config.in b/fs/erofs/Config.in
> > new file mode 100644
> > index 0000000000..dad2498a15
> > --- /dev/null
> > +++ b/fs/erofs/Config.in
> > @@ -0,0 +1,24 @@
> > +config BR2_TARGET_ROOTFS_EROFS
> > + bool "erofs root filesystem"
> > + select BR2_PACKAGE_HOST_EROFS_UTILS
> > + help
> > + Build a EROFS root filesystem. If you enable this option,
> > + you probably want to enable the erofs-utils package too.
>
> Since erofs is a read-only filesystem, and since erofs-utils only
> provide an mkfs tool, I don't see how erofs-utils would be useful on the
> target. So I've dropped that part from the help text.
Currently I agree with you. So that's fine. :)
>
> > +if BR2_TARGET_ROOTFS_EROFS
> > +
> > +choice
> > + prompt "Compression algorithm"
> > + default BR2_TARGET_ROOTFS_EROFS_LZ4HC
> > + help
> > + Select the primary compression algorithm to use when
> > + generating EROFS filesystem image.
> > +
> > +config BR2_TARGET_ROOTFS_EROFS_NONE
> > + bool "none"
> > +
> > +config BR2_TARGET_ROOTFS_EROFS_LZ4HC
> > + bool "lz4hc"
>
> Do you envision adding other compression schemes? As far as I can see,
> the erofs-utils as well as the linux driver only ever supports lz4 (and
> I think you are well aware of that ;-) ).
I have been still working on support LZMA algorithm (a lot of work to
achieve LZMA fixed-sized output compression) in my spare time.
>
> I know the other filesystems (squashfs, jffs2...) have a choice about
> the compression method, but for those ther are two or more such
> possibilities, so it makes sense they have a choice. For erofs, not so
> much.
>
> As such, I have dropped the choice altogether, and just kept the single
> boolean to enable compression.
Currently, I'm fine with that as well. After LZMA algorithm is ready
upstream, I could submit another patch then.
>
> Applied to master with the above changes. Thanks!
Thank you very much!
Thanks,
Gao Xiang
>
> Regards,
> Yann E. MORIN.
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image
2020-03-20 7:13 ` Gao Xiang
@ 2020-03-20 20:20 ` Yann E. MORIN
0 siblings, 0 replies; 9+ messages in thread
From: Yann E. MORIN @ 2020-03-20 20:20 UTC (permalink / raw)
To: buildroot
Gao, All,
On 2020-03-20 15:13 +0800, Gao Xiang spake thusly:
> On Thu, Mar 19, 2020 at 06:49:42PM +0100, Yann E. MORIN wrote:
[--SNIP--]
> > I know the other filesystems (squashfs, jffs2...) have a choice about
> > the compression method, but for those ther are two or more such
> > possibilities, so it makes sense they have a choice. For erofs, not so
> > much.
> > As such, I have dropped the choice altogether, and just kept the single
> > boolean to enable compression.
> Currently, I'm fine with that as well. After LZMA algorithm is ready
> upstream, I could submit another patch then.
Yes, the choice can then be reinstated, and that would even not break
existing configurations.
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] 9+ messages in thread
end of thread, other threads:[~2020-03-20 20:20 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20200316015838.15183-1-hsiangkao.ref@aol.com>
2020-03-16 1:58 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Gao Xiang
2020-03-16 1:58 ` [Buildroot] [PATCH v2 2/2] fs/erofs: add support for creating EROFS rootfs image Gao Xiang
2020-03-19 17:49 ` Yann E. MORIN
2020-03-20 7:13 ` Gao Xiang
2020-03-20 20:20 ` Yann E. MORIN
2020-03-18 22:39 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Yann E. MORIN
2020-03-19 13:25 ` Gao Xiang
2020-03-19 16:44 ` Yann E. MORIN
2020-03-20 7:05 ` Gao Xiang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.