diff --git a/pkgs/tools/filesystems/mp3fs/default.nix b/pkgs/tools/filesystems/mp3fs/default.nix index 253f335ae4a8..50242bb63882 100644 --- a/pkgs/tools/filesystems/mp3fs/default.nix +++ b/pkgs/tools/filesystems/mp3fs/default.nix @@ -9,6 +9,8 @@ stdenv.mkDerivation rec { sha256 = "14ngiqg24p3a0s6hp33zjl4i46d8qn4v9id36psycq3n3csmwyx4"; }; + patches = [ ./fix-statfs-operation.patch ]; + buildInputs = [ flac fuse lame libid3tag pkgconfig ]; enableParallelBuilding = true; @@ -22,7 +24,7 @@ stdenv.mkDerivation rec { which only understands the MP3 format, or transcode files through simple drag-and-drop in a file browser. ''; - homepage = http://khenriks.github.com/mp3fs/; + homepage = http://khenriks.github.io/mp3fs/; license = with licenses; gpl3Plus; platforms = with platforms; linux; maintainers = with maintainers; [ nckx ]; diff --git a/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch b/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch new file mode 100644 index 000000000000..9b3094e60053 --- /dev/null +++ b/pkgs/tools/filesystems/mp3fs/fix-statfs-operation.patch @@ -0,0 +1,39 @@ +From fea072084ff9d7c4d2c688059a2462bb0e59a2ec Mon Sep 17 00:00:00 2001 +From: K Henriksson +Date: Wed, 27 Aug 2014 21:55:18 -0700 +Subject: [PATCH] Fix statfs operation + +The statfs implementation does not properly translate names back to the +original, since the major encoding rewrite. This corrects that, and +should fix issue #27. +--- + src/fuseops.c | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/src/fuseops.c b/src/fuseops.c +index e7b4e7e..c333cbd 100644 +--- a/src/fuseops.c ++++ b/src/fuseops.c +@@ -337,9 +337,20 @@ static int mp3fs_statfs(const char *path, struct statvfs *stbuf) { + if (!origpath) { + goto translate_fail; + } +- ++ ++ /* pass-through for regular files */ ++ if (statvfs(origpath, stbuf) == 0) { ++ goto passthrough; ++ } else { ++ /* Not really an error. */ ++ errno = 0; ++ } ++ ++ find_original(origpath); ++ + statvfs(origpath, stbuf); +- ++ ++passthrough: + free(origpath); + translate_fail: + return -errno;