diff options
| -rw-r--r-- | pkgs/tools/filesystems/btrfs-progs/default.nix | 12 | ||||
| -rw-r--r-- | pkgs/tools/filesystems/btrfs-progs/e2fsprogs.patch | 34 |
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; + } |
