summary refs log tree commit diff
path: root/pkgs/development/libraries/kinetic-cpp-client/default.nix
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2015-05-05 11:49:03 +0200
committerVladimír Čunát <vcunat@gmail.com>2015-05-05 11:49:03 +0200
commit375bc8def7c17506bc10f3b6193635f05d5ccc40 (patch)
tree6af7662b245e7998bd18ae20d9e74922c489fb6d /pkgs/development/libraries/kinetic-cpp-client/default.nix
parent2f75c6845981b38a698cf1a9f620145877c80956 (diff)
parent7f9ccc628403ed88844a4436da3b2944be5560a4 (diff)
downloadnixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.tar
nixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.tar.gz
nixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.tar.bz2
nixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.tar.lz
nixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.tar.xz
nixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.tar.zst
nixpkgs-375bc8def7c17506bc10f3b6193635f05d5ccc40.zip
Merge staging into closure-size
Diffstat (limited to 'pkgs/development/libraries/kinetic-cpp-client/default.nix')
-rw-r--r--pkgs/development/libraries/kinetic-cpp-client/default.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/pkgs/development/libraries/kinetic-cpp-client/default.nix b/pkgs/development/libraries/kinetic-cpp-client/default.nix
new file mode 100644
index 00000000000..9a11c85bd76
--- /dev/null
+++ b/pkgs/development/libraries/kinetic-cpp-client/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchgit, fetchurl, cmake, protobuf, libunwind, openssl, glog
+, google-gflags, gmock, gtest
+}:
+
+let
+  protoTar = fetchurl {
+    url = "http://github.com/Seagate/kinetic-protocol/archive/3.0.0.tar.gz";
+    sha256 = "0406pp0sdf0rg6s5g18r2d8si2rin7p6qbzp7c6pma5hyzsygz48";
+  };
+in
+stdenv.mkDerivation rec {
+  name = "kinetic-cpp-client-2015-04-14";
+
+  src = fetchgit {
+    url = "git://github.com/Seagate/kinetic-cpp-client.git";
+    rev = "015085a5c89db0398f80923053f36b9e0611e107";
+    sha256 = "15iwlfjwnyswiwssdjg6qiflhddh66nv07xji4yhz1s4vqhk3nrx";
+  };
+
+  patches = [ ./build-fix.patch ];
+
+  postPatch = ''
+    mkdir -p build/kinetic-proto
+    tar -x --strip-components 1 -C build/kinetic-proto -f ${protoTar}
+  '';
+
+  nativeBuildInputs = [ cmake protobuf ];
+  buildInputs = [ libunwind glog google-gflags gmock gtest ];
+
+  # The headers and library include from these and there is no provided pc file
+  propagatedBuildInputs = [ protobuf openssl ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=true"
+  ];
+
+  preCheck = ''
+    # The checks cannot find libkinetic_client.so otherwise
+    export LD_LIBRARY_PATH="$(pwd)"
+  '';
+
+  installPhase = ''
+    # There is no included install script so do our best
+    mkdir -p $out/lib
+    cp libkinetic_client.so $out/lib
+    cp -r ../include $out
+    cp ../src/main/generated/kinetic_client.pb.h $out/include
+  '';
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/Seagate/kinetic-cpp-client;
+    description = "code for producing C and C++ kinetic clients";
+    license = licenses.lgpl21;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}