From 3b73b726d4975d821b90fb759b421a70e388e71d Mon Sep 17 00:00:00 2001 From: Charles Strahan Date: Thu, 19 Nov 2015 19:53:34 -0500 Subject: [PATCH] zkfuse: init --- pkgs/tools/filesystems/zkfuse/default.nix | 25 +++++++++++++++++++ .../filesystems/zkfuse/zookeeper-1929.patch | 15 +++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 42 insertions(+) create mode 100644 pkgs/tools/filesystems/zkfuse/default.nix create mode 100644 pkgs/tools/filesystems/zkfuse/zookeeper-1929.patch diff --git a/pkgs/tools/filesystems/zkfuse/default.nix b/pkgs/tools/filesystems/zkfuse/default.nix new file mode 100644 index 000000000000..04755108bc06 --- /dev/null +++ b/pkgs/tools/filesystems/zkfuse/default.nix @@ -0,0 +1,25 @@ +{ stdenv, lib, zookeeper, zookeeper_mt, fuse, pkgconfig, autoreconfHook, log4cxx, boost, tree }: + +stdenv.mkDerivation rec { + name = "zkfuse"; + + src = zookeeper.src; + patches = [ + # see: https://issues.apache.org/jira/browse/ZOOKEEPER-1929 + ./zookeeper-1929.patch + ]; + + setSourceRoot = "export sourceRoot=${zookeeper.name}/src/contrib/zkfuse"; + + buildInputs = [ autoreconfHook zookeeper_mt log4cxx boost fuse ]; + + installPhase = '' + mkdir -p $out/bin + cp -v src/zkfuse $out/bin + ''; + + meta = with lib; { + platforms = platforms.linux; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/pkgs/tools/filesystems/zkfuse/zookeeper-1929.patch b/pkgs/tools/filesystems/zkfuse/zookeeper-1929.patch new file mode 100644 index 000000000000..e99dbdf33e03 --- /dev/null +++ b/pkgs/tools/filesystems/zkfuse/zookeeper-1929.patch @@ -0,0 +1,15 @@ +diff --git a/src/contrib/zkfuse/src/zkadapter.cc b/src/contrib/zkfuse/src/zkadapter.cc +index 886051d..93dbef5 100644 +--- a/src/zkadapter.cc ++++ b/src/zkadapter.cc +@@ -845,7 +845,10 @@ ZooKeeperAdapter::getNodeData(const string &path, + string("Unable to get data of node ") + path, rc + ); + } else { +- return string( buffer, buffer + len ); ++ if (len == -1) { ++ len = 0; ++ }; ++ return string( buffer, len ); + } + } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b217170baab2..48dc32fd77b9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3652,6 +3652,8 @@ let zip = callPackage ../tools/archivers/zip { }; + zkfuse = callPackage ../tools/filesystems/zkfuse { }; + zpaq = callPackage ../tools/archivers/zpaq { }; zpaqd = callPackage ../tools/archivers/zpaq/zpaqd.nix { };