sys-fs/btrfs-progs: Fixed compilation with >=sys-fs/e2fsprogs-1.44.0
authorLars Wendler <polynomial-c@gentoo.org>
Mon, 19 Mar 2018 13:36:26 +0000 (14:36 +0100)
committerLars Wendler <polynomial-c@gentoo.org>
Mon, 19 Mar 2018 13:36:42 +0000 (14:36 +0100)
Closes: https://bugs.gentoo.org/650032
Package-Manager: Portage-2.3.24, Repoman-2.3.6

sys-fs/btrfs-progs/btrfs-progs-4.15.1.ebuild
sys-fs/btrfs-progs/files/btrfs-progs-4.15.1-e2fsprogs-1.44.0.patch [new file with mode: 0644]

index 1a8e2474dfbeed046bf8bc78f107f87069090546..ceeea58afa060d6147d0ee40b3a0fb70dc3ecbda 100644 (file)
@@ -66,6 +66,10 @@ if [[ ${PV} == 9999 ]]; then
        DEPEND+=" sys-devel/gnuconfig"
 fi
 
+PATCHES=(
+       "${FILESDIR}/${PN}-4.15.1-e2fsprogs-1.44.0.patch"
+)
+
 src_prepare() {
        default
        if [[ ${PV} == 9999 ]]; then
diff --git a/sys-fs/btrfs-progs/files/btrfs-progs-4.15.1-e2fsprogs-1.44.0.patch b/sys-fs/btrfs-progs/files/btrfs-progs-4.15.1-e2fsprogs-1.44.0.patch
new file mode 100644 (file)
index 0000000..8aa05a5
--- /dev/null
@@ -0,0 +1,34 @@
+From 33e9f2bd47a17bd0798a664718b6bfcfc4d044a1 Mon Sep 17 00:00:00 2001
+From: Qu Wenruo <wqu@suse.com>
+Date: Wed, 14 Mar 2018 08:56:57 +0800
+Subject: [PATCH] btrfs-progs: convert/ext2: Remove check for
+ ext2_ext_attr_entry->e_value_block
+
+In latest e2fsprogs (1.44.0) definition of ext2_ext_attr_entry has
+removed member e_value_block, as currently ext* doesn't support it set
+anyway.
+
+So remove such check so that we can pass compile.
+
+Issue: #110
+Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199071
+Signed-off-by: Qu Wenruo <wqu@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+---
+ convert/source-ext2.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/convert/source-ext2.c b/convert/source-ext2.c
+index b1492c786..070126ec3 100644
+--- a/convert/source-ext2.c
++++ b/convert/source-ext2.c
+@@ -422,8 +422,7 @@ static int ext2_xattr_check_entry(struct ext2_ext_attr_entry *entry,
+ {
+       size_t value_size = entry->e_value_size;
+-      if (entry->e_value_block != 0 || value_size > size ||
+-          entry->e_value_offs + value_size > size)
++      if (value_size > size || entry->e_value_offs + value_size > size)
+               return -EIO;
+       return 0;
+ }