From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package
Date: Wed, 18 Mar 2020 23:39:50 +0100 [thread overview]
Message-ID: <20200318223950.GC10025@scaer> (raw)
In-Reply-To: <20200316015838.15183-1-hsiangkao@aol.com>
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. |
'------------------------------^-------^------------------^--------------------'
next prev parent reply other threads:[~2020-03-18 22:39 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[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 ` Yann E. MORIN [this message]
2020-03-19 13:25 ` [Buildroot] [PATCH v2 1/2] package/erofs-utils: new package Gao Xiang
2020-03-19 16:44 ` Yann E. MORIN
2020-03-20 7:05 ` Gao Xiang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200318223950.GC10025@scaer \
--to=yann.morin.1998@free.fr \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox