diff options
author | V3n3RiX <venerix@koprulu.sector> | 2022-02-02 01:39:05 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2022-02-02 01:39:05 +0000 |
commit | fcc5224904648a8e6eb528d7603154160a20022f (patch) | |
tree | 3bfce096b38a9cea8eed13fc70c1526c456e9abd /sys-fs/erofs-utils | |
parent | 2fd57282f0262ca084e05b0f2c63fbada395d02b (diff) |
gentoo resync : 02.02.2022
Diffstat (limited to 'sys-fs/erofs-utils')
-rw-r--r-- | sys-fs/erofs-utils/Manifest | 4 | ||||
-rw-r--r-- | sys-fs/erofs-utils/erofs-utils-1.4.ebuild | 5 | ||||
-rw-r--r-- | sys-fs/erofs-utils/files/1.4-dump-fix-de-nid-issues.patch | 134 | ||||
-rw-r--r-- | sys-fs/erofs-utils/files/1.4-fsck-add-missing-include.patch | 31 |
4 files changed, 173 insertions, 1 deletions
diff --git a/sys-fs/erofs-utils/Manifest b/sys-fs/erofs-utils/Manifest index bb8fc19a7fc9..8cf4fea5fa92 100644 --- a/sys-fs/erofs-utils/Manifest +++ b/sys-fs/erofs-utils/Manifest @@ -1,5 +1,7 @@ +AUX 1.4-dump-fix-de-nid-issues.patch 4849 BLAKE2B 48e29859955f5e7b13af7657a2411bad139de6cc373f17392bcd0b6cde55a83993795ff3f298f87fdfd950a0222c0f70714de161e02e9b2ad32b2afc513d8e4d SHA512 50d734ebbb7a7bd1c16bd90bae59e639213e607b2017cb16e65e1e3c653f604761136309564f77e80573196d7693e6ed90c30f9e35b9d3dafdb8365c38e1b0c3 +AUX 1.4-fsck-add-missing-include.patch 878 BLAKE2B e7d32eced8199a6c282d7398cea068cf560d9715caf035c67127f25fdf7055492fe25c56703e166a683f40cbb7d6ed6723c5d97467bec22f67418bb9b3bcfc5b SHA512 4cffb6faf7e1bb8150347ba8e47e0b05ad1b7d5dd4eb265330a33d6054dc6157e780a38b80a17cb61d3ab1fb2b41f36fcf65c39846f30003bc6013d23028c1fa DIST erofs-utils-1.3.tar.gz 66135 BLAKE2B 1051cf387d059d71b91e0a940c86b819593902606ae4665a7801e9597dd72987385bee997d2d63b186c493557ee22118aff23161e48e25ee8f4859f9f6e46f14 SHA512 6ddd8402dab80b0375b012ed51ff02b40cbeca9a4a1ba250b14ec6aeb97317ab575e315e9d4dc77ed1d7826c202396d9c0775917106ecbd7b4048168aca0fa6c DIST erofs-utils-1.4.tar.gz 93979 BLAKE2B aef1dca8cb95e6104d73a84590319d3c55aba1a4ef5dbdbf470662cb86ee1b66a5707dc1c453470115ec6f2bf1246ee4b6b28aa1cb83b4cb9c8eed45e88668d4 SHA512 ab95d6a7b2d278ee443d1e378c62354db66ce7ab5ce03b3a8d9004cf498c4e43e3e8ced6524444d2ea4871c4db0195489f033180c8a2082c2cba69c46c09692f EBUILD erofs-utils-1.3-r1.ebuild 764 BLAKE2B 5cbead7514b99927f1240a32fbfab4450044cc4ad591350404f34fc675fb4f99f78f1cdb85e17410ebf7f308868bc810009baeda584d6662ef6552dacdaba776 SHA512 7cc5ab682b875e80233971ea3337759ed10311fe9161dd984dcaa5ab8b863856abe10fa0de5c06c41d68f1fb09aef399c58227a6dac1b5fd74f1cef373af3660 -EBUILD erofs-utils-1.4.ebuild 956 BLAKE2B d24d49dc49a6e270ad917efee45512b294558a2f845ed0e925ef0db9d94a316277d3a44b90e865bcb54933fffa2dc8829af137f78811495cbfaa8ed1c6163ddd SHA512 3c6c2623407caf32b8afc578936f06a98b25836fc36a679beb32710b994f10ccf929f519ddcf448ee87490d02abd203d4588fa1b8f6a735787d07b478df59543 +EBUILD erofs-utils-1.4.ebuild 1071 BLAKE2B 23d2283c8dea2b66432dfaaa832c7eeb0767a6b5a60e140499f96aaddb9d826fe7628cce864c5fdf7185b65ca65c554f87e5a6774d00caf16c3f49cf8776f126 SHA512 c83b7acb8abb9a986e078d9713cd4f811fb64c9f6f60c65776b28b56c5c84e609185d8c9ae41913758aac357e71764d652d18ce50128d2eb6083c0247df63ffd MISC metadata.xml 572 BLAKE2B dcc6b6c78cac3161d2b2401f1da18787b5a201009da43978c7ce74c22cbd4141e1cfebd417118b90a34ee42e5290ebb5b5c5974ba770f9c3fd1f9da244a194f1 SHA512 756d65689fc5bdf12160429137b2012ea1dc934c3082b2737c5974006193858681e26d9b89b594bfb2b15176d947d3cf83b5800346365bbc4f45cb03aa57560c diff --git a/sys-fs/erofs-utils/erofs-utils-1.4.ebuild b/sys-fs/erofs-utils/erofs-utils-1.4.ebuild index 1682bcdfb6d0..158c90277a0b 100644 --- a/sys-fs/erofs-utils/erofs-utils-1.4.ebuild +++ b/sys-fs/erofs-utils/erofs-utils-1.4.ebuild @@ -24,6 +24,11 @@ RDEPEND=" DEPEND="${RDEPEND}" BDEPEND="virtual/pkgconfig" +PATCHES=( + "${FILESDIR}/${PV}-dump-fix-de-nid-issues.patch" + "${FILESDIR}/${PV}-fsck-add-missing-include.patch" +) + src_prepare() { default eautoreconf diff --git a/sys-fs/erofs-utils/files/1.4-dump-fix-de-nid-issues.patch b/sys-fs/erofs-utils/files/1.4-dump-fix-de-nid-issues.patch new file mode 100644 index 000000000000..4c833d737fa2 --- /dev/null +++ b/sys-fs/erofs-utils/files/1.4-dump-fix-de-nid-issues.patch @@ -0,0 +1,134 @@ +From 35b15cc9c75cc2d7782f36433bad90326e9cb060 Mon Sep 17 00:00:00 2001 +From: Gao Xiang <xiang@kernel.org> +Date: Mon, 22 Nov 2021 07:48:48 +0800 +Subject: [PATCH 1/2] erofs-utils: dump: fix de->nid issues + +As David Michael reported, " + In file included from main.c:11: + main.c: In function 'erofs_checkdirent': + ../include/erofs/print.h:68:25: error: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__le64' {aka 'long unsigned int'} [-Werror=format=] + 68 | "<E> " PR_FMT_FUNC_LINE(fmt), \ + | ^~~~~~ + main.c:264:17: note: in expansion of macro 'erofs_err' + 264 | erofs_err("invalid file type %llu", de->nid); + | ^~~~~~~~~ + main.c: In function 'erofs_read_dirent': + ../include/erofs/print.h:68:25: error: format '%llu' expects argument of type 'long long unsigned int', but argument 3 has type '__le64' {aka 'long unsigned int'} [-Werror=format=] + 68 | "<E> " PR_FMT_FUNC_LINE(fmt), \ + | ^~~~~~ + main.c:303:25: note: in expansion of macro 'erofs_err' + 303 | erofs_err("parse dir nid %llu error occurred\n", + | ^~~~~~~~~ + cc1: all warnings being treated as errors +" + +Also there are many de->nid lacking of endianness handling. +Should fix them together. + +Link: https://lore.kernel.org/r/20211121234848.12663-1-xiang@kernel.org +Fixes: cf8be8a4352a ("erofs-utils: dump: add feature for collecting filesystem statistics") +Cc: Wang Qi <mpiglet@outlook.com> +Cc: Guo Xuenan <guoxuenan@huawei.com> +Reported-by: David Michael <fedora.dm0@gmail.com> +Signed-off-by: Gao Xiang <xiang@kernel.org> +--- + dump/main.c | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +diff --git a/dump/main.c b/dump/main.c +index b7560ec..f85903b 100644 +--- a/dump/main.c ++++ b/dump/main.c +@@ -242,11 +242,12 @@ static inline int erofs_checkdirent(struct erofs_dirent *de, + { + int dname_len; + unsigned int nameoff = le16_to_cpu(de->nameoff); ++ erofs_nid_t nid = le64_to_cpu(de->nid); + + if (nameoff < sizeof(struct erofs_dirent) || + nameoff >= PAGE_SIZE) { + erofs_err("invalid de[0].nameoff %u @ nid %llu", +- nameoff, de->nid | 0ULL); ++ nameoff, nid | 0ULL); + return -EFSCORRUPTED; + } + +@@ -255,13 +256,12 @@ static inline int erofs_checkdirent(struct erofs_dirent *de, + /* a corrupted entry is found */ + if (nameoff + dname_len > maxsize || + dname_len > EROFS_NAME_LEN) { +- erofs_err("bogus dirent @ nid %llu", +- le64_to_cpu(de->nid) | 0ULL); ++ erofs_err("bogus dirent @ nid %llu", nid | 0ULL); + DBG_BUGON(1); + return -EFSCORRUPTED; + } + if (de->file_type >= EROFS_FT_MAX) { +- erofs_err("invalid file type %llu", de->nid); ++ erofs_err("invalid file type %llu", nid | 0ULL); + return -EFSCORRUPTED; + } + return dname_len; +@@ -273,7 +273,7 @@ static int erofs_read_dirent(struct erofs_dirent *de, + { + int err; + erofs_off_t occupied_size = 0; +- struct erofs_inode inode = { .nid = de->nid }; ++ struct erofs_inode inode = { .nid = le64_to_cpu(de->nid) }; + + stats.files++; + stats.file_category_stat[de->file_type]++; +@@ -296,12 +296,12 @@ static int erofs_read_dirent(struct erofs_dirent *de, + update_file_size_statatics(occupied_size, inode.i_size); + } + +- if ((de->file_type == EROFS_FT_DIR) +- && de->nid != nid && de->nid != parent_nid) { +- err = erofs_read_dir(de->nid, nid); ++ if (de->file_type == EROFS_FT_DIR && inode.nid != nid && ++ inode.nid != parent_nid) { ++ err = erofs_read_dir(inode.nid, nid); + if (err) { + erofs_err("parse dir nid %llu error occurred\n", +- de->nid); ++ inode.nid | 0ULL); + return err; + } + } +@@ -338,7 +338,8 @@ static int erofs_read_dir(erofs_nid_t nid, erofs_nid_t parent_nid) + int ret; + + /* skip "." and ".." dentry */ +- if (de->nid == nid || de->nid == parent_nid) { ++ if (le64_to_cpu(de->nid) == nid || ++ le64_to_cpu(de->nid) == parent_nid) { + de++; + continue; + } +@@ -399,18 +400,18 @@ static int erofs_get_pathname(erofs_nid_t nid, erofs_nid_t parent_nid, + if (len < 0) + return len; + +- if (de->nid == target) { ++ if (le64_to_cpu(de->nid) == target) { + memcpy(path + pos, dname, len); + path[pos + len] = '\0'; + return 0; + } + + if (de->file_type == EROFS_FT_DIR && +- de->nid != parent_nid && +- de->nid != nid) { ++ le64_to_cpu(de->nid) != parent_nid && ++ le64_to_cpu(de->nid) != nid) { + memcpy(path + pos, dname, len); +- err = erofs_get_pathname(de->nid, nid, +- target, path, pos + len); ++ err = erofs_get_pathname(le64_to_cpu(de->nid), ++ nid, target, path, pos + len); + if (!err) + return 0; + memset(path + pos, 0, len); +-- +2.34.1 + diff --git a/sys-fs/erofs-utils/files/1.4-fsck-add-missing-include.patch b/sys-fs/erofs-utils/files/1.4-fsck-add-missing-include.patch new file mode 100644 index 000000000000..8e4f6ac3d336 --- /dev/null +++ b/sys-fs/erofs-utils/files/1.4-fsck-add-missing-include.patch @@ -0,0 +1,31 @@ +From 2ac662b01de904802da4e84d0738e47bf573efde Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Mon, 6 Dec 2021 20:14:03 +0100 +Subject: [PATCH 2/2] fsck/main.c: add missing include + +Otherwise musl C library builds fail with missing S_IFMT/S_IFDIR +definitions. + +Link: https://lore.kernel.org/r/20211206191403.1435229-1-alex@linutronix.de +Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com> +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com> +--- + fsck/main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/fsck/main.c b/fsck/main.c +index aefa881..ad48e35 100644 +--- a/fsck/main.c ++++ b/fsck/main.c +@@ -6,6 +6,7 @@ + #include <stdlib.h> + #include <getopt.h> + #include <time.h> ++#include <sys/stat.h> + #include "erofs/print.h" + #include "erofs/io.h" + #include "erofs/decompress.h" +-- +2.34.1 + |