summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix12
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/e2fsprogs.patch34
2 files changed, 41 insertions, 5 deletions
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 525aa2fec28a..e7aa73104403 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -1,25 +1,27 @@
{ stdenv, fetchurl, pkgconfig, attr, acl, zlib, libuuid, e2fsprogs, lzo
-, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt
+, asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt, zstd
}:
-let version = "4.8.2"; in
+let version = "4.15.1"; in
stdenv.mkDerivation rec {
name = "btrfs-progs-${version}";
src = fetchurl {
url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
- sha256 = "0pswcfmdnfc586770h74abp67gn2xv8fd46vxlimnmn837sj7h41";
+ sha256 = "15izak6jg6pqr6ha9447cdrdj9k6kfiarvwlrj53cpvrsv02l437";
};
buildInputs = [
- pkgconfig attr acl zlib libuuid e2fsprogs lzo
+ pkgconfig attr acl zlib libuuid e2fsprogs lzo zstd
asciidoc xmlto docbook_xml_dtd_45 docbook_xsl libxslt
];
# gcc bug with -O1 on ARM with gcc 4.8
# This should be fine on all platforms so apply universally
- patchPhase = "sed -i s/-O1/-O2/ configure";
+ prePatch = "sed -i s/-O1/-O2/ configure";
+
+ patches = [ ./e2fsprogs.patch ];
meta = with stdenv.lib; {
description = "Utilities for the btrfs filesystem";
diff --git a/pkgs/tools/filesystems/btrfs-progs/e2fsprogs.patch b/pkgs/tools/filesystems/btrfs-progs/e2fsprogs.patch
new file mode 100644
index 000000000000..dc4fa5a6ffa8
--- /dev/null
+++ b/pkgs/tools/filesystems/btrfs-progs/e2fsprogs.patch
@@ -0,0 +1,34 @@
+From e4034ba388308fd4b791bd20122c28070d195e1e 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;
+ }