about summary refs log tree commit diff
path: root/pkgs/tools/filesystems
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/filesystems')
-rw-r--r--pkgs/tools/filesystems/btrfs-progs/default.nix17
-rw-r--r--pkgs/tools/filesystems/e2fsprogs/default.nix6
-rw-r--r--pkgs/tools/filesystems/nilfs-utils/default.nix14
-rw-r--r--pkgs/tools/filesystems/xfsprogs/default.nix1
-rw-r--r--pkgs/tools/filesystems/xfsprogs/glibc-2.27.patch53
5 files changed, 83 insertions, 8 deletions
diff --git a/pkgs/tools/filesystems/btrfs-progs/default.nix b/pkgs/tools/filesystems/btrfs-progs/default.nix
index 09f004f28440..e84260052a41 100644
--- a/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -1,17 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, attr, acl, zlib, libuuid, e2fsprogs, lzo
+{ stdenv, fetchurl, fetchpatch, pkgconfig, attr, acl, zlib, libuuid, e2fsprogs, lzo
 , asciidoc, xmlto, docbook_xml_dtd_45, docbook_xsl, libxslt, zstd
 }:
 
-let version = "4.15.1"; in
-
 stdenv.mkDerivation rec {
   name = "btrfs-progs-${version}";
+  version = "4.15.1";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
     sha256 = "15izak6jg6pqr6ha9447cdrdj9k6kfiarvwlrj53cpvrsv02l437";
   };
 
+  patches = [
+    # Fix build with e2fsprogs 1.44.0
+    (fetchpatch {
+      url = "https://patchwork.kernel.org/patch/10281327/raw/";
+      sha256 = "016124hjms220809zjvvr7l1gq23j419d3piaijsaw8n7yd3kksf";
+    })
+  ];
+
   nativeBuildInputs = [
     pkgconfig asciidoc xmlto docbook_xml_dtd_45 docbook_xsl libxslt
   ];
@@ -20,12 +27,14 @@ stdenv.mkDerivation rec {
 
   # 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";
+  postPatch = "sed -i s/-O1/-O2/ configure";
 
   postInstall = ''
     install -v -m 444 -D btrfs-completion $out/etc/bash_completion.d/btrfs
   '';
 
+  configureFlags = stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-backtrace";
+
   meta = with stdenv.lib; {
     description = "Utilities for the btrfs filesystem";
     homepage = https://btrfs.wiki.kernel.org/;
diff --git a/pkgs/tools/filesystems/e2fsprogs/default.nix b/pkgs/tools/filesystems/e2fsprogs/default.nix
index 62eab06c387c..1c8835a2ed4c 100644
--- a/pkgs/tools/filesystems/e2fsprogs/default.nix
+++ b/pkgs/tools/filesystems/e2fsprogs/default.nix
@@ -1,18 +1,18 @@
 { stdenv, buildPackages, fetchurl, pkgconfig, libuuid, gettext, texinfo }:
 
 stdenv.mkDerivation rec {
-  name = "e2fsprogs-1.43.9";
+  name = "e2fsprogs-1.44.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/e2fsprogs/${name}.tar.gz";
-    sha256 = "15rqvkzylqqckshfy7vmk15k7wds2rh3k1pwrkrs684p3g0gzq2v";
+    sha256 = "1rn1nvp8kcvjmbh2bxrjfbrz7zz519d52rrxqvc50l0hzs6hda55";
   };
 
   outputs = [ "bin" "dev" "out" "man" "info" ];
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ pkgconfig texinfo ];
-  buildInputs = [ libuuid ] ++ stdenv.lib.optional (!stdenv.isLinux) gettext;
+  buildInputs = [ libuuid gettext ];
 
   configureFlags =
     if stdenv.isLinux then [
diff --git a/pkgs/tools/filesystems/nilfs-utils/default.nix b/pkgs/tools/filesystems/nilfs-utils/default.nix
index 977add39b94b..5bce33065192 100644
--- a/pkgs/tools/filesystems/nilfs-utils/default.nix
+++ b/pkgs/tools/filesystems/nilfs-utils/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libuuid, libselinux }:
+{ stdenv, fetchurl, fetchpatch, libuuid, libselinux }:
 let 
   sourceInfo = rec {
     version = "2.2.7";
@@ -23,6 +23,18 @@ stdenv.mkDerivation rec {
     sed -e 's@/sbin/@'"$out"'/sbin/@' -i ./lib/cleaner*.c
   '';
 
+  patches = [
+    # Fix w/musl
+    (fetchpatch {
+      url = "https://github.com/nilfs-dev/nilfs-utils/commit/115fe4b976858c487cf83065f513d8626089579a.patch";
+      sha256 = "0h89jz9l5d4rqj647ljbnv451l4ncqpsvzj0v70mn5391hfwsjlv";
+    })
+    (fetchpatch {
+      url =  "https://github.com/nilfs-dev/nilfs-utils/commit/51b32c614be9e98c32de7f531ee600ca0740946f.patch";
+      sha256 = "1ycq83c6jjy74aif47v075k5y2szzwhq6mbcrpd1z4b4i1x6yhpn";
+    })
+  ];
+
   # FIXME: https://github.com/NixOS/patchelf/pull/98 is in, but stdenv
   # still doesn't use it
   #
diff --git a/pkgs/tools/filesystems/xfsprogs/default.nix b/pkgs/tools/filesystems/xfsprogs/default.nix
index 5321fd8a830f..cc2bbad1680a 100644
--- a/pkgs/tools/filesystems/xfsprogs/default.nix
+++ b/pkgs/tools/filesystems/xfsprogs/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     (gentooPatch "xfsprogs-4.12.0-sharedlibs.patch" "1i081749x91jvlrw84l4a3r081vqcvn6myqhnqbnfcfhd64h12bq")
     (gentooPatch "xfsprogs-4.7.0-libxcmd-link.patch" "1lvy1ajzml39a631a7jqficnzsd40bzkca7hkxv1ybiqyp8sf55s")
     (gentooPatch "xfsprogs-4.9.0-underlinking.patch" "1r7l8jphspy14i43zbfnjrnyrdm4cpgyfchblascxylmans0gci7")
+    ./glibc-2.27.patch
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/filesystems/xfsprogs/glibc-2.27.patch b/pkgs/tools/filesystems/xfsprogs/glibc-2.27.patch
new file mode 100644
index 000000000000..1f398b1daa85
--- /dev/null
+++ b/pkgs/tools/filesystems/xfsprogs/glibc-2.27.patch
@@ -0,0 +1,53 @@
+From 8041435de7ed028a27ecca64302945ad455c69a6 Mon Sep 17 00:00:00 2001
+From: "Darrick J. Wong" <darrick.wong@oracle.com>
+Date: Mon, 5 Feb 2018 14:38:02 -0600
+Subject: xfs_io: fix copy_file_range symbol name collision
+
+glibc 2.27 has a copy_file_range wrapper, so we need to change our
+internal function out of the way to avoid compiler warnings.
+
+Reported-by: fredrik@crux.nu
+Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
+Reviewed-by: Eric Sandeen <sandeen@redhat.com>
+Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
+---
+ io/copy_file_range.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/io/copy_file_range.c b/io/copy_file_range.c
+index d1dfc5a..99fba20 100644
+--- a/io/copy_file_range.c
++++ b/io/copy_file_range.c
+@@ -42,13 +42,18 @@ copy_range_help(void)
+ "));
+ }
+ 
++/*
++ * Issue a raw copy_file_range syscall; for our test program we don't want the
++ * glibc buffered copy fallback.
++ */
+ static loff_t
+-copy_file_range(int fd, loff_t *src, loff_t *dst, size_t len)
++copy_file_range_cmd(int fd, loff_t *src, loff_t *dst, size_t len)
+ {
+ 	loff_t ret;
+ 
+ 	do {
+-		ret = syscall(__NR_copy_file_range, fd, src, file->fd, dst, len, 0);
++		ret = syscall(__NR_copy_file_range, fd, src, file->fd, dst,
++				len, 0);
+ 		if (ret == -1) {
+ 			perror("copy_range");
+ 			return errno;
+@@ -130,7 +135,7 @@ copy_range_f(int argc, char **argv)
+ 		copy_dst_truncate();
+ 	}
+ 
+-	ret = copy_file_range(fd, &src, &dst, len);
++	ret = copy_file_range_cmd(fd, &src, &dst, len);
+ 	close(fd);
+ 	return ret;
+ }
+-- 
+cgit v1.1
+