From eb40c213dd4a89213239870fdc2b0b7b04b9fc5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 30 Oct 2010 21:44:29 +0000 Subject: [PATCH] Add Tokyo Cabinet, a key-value database that performs better. svn path=/nixpkgs/trunk/; revision=24548 --- .../libraries/tokyo-cabinet/default.nix | 45 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 47 insertions(+) create mode 100644 pkgs/development/libraries/tokyo-cabinet/default.nix diff --git a/pkgs/development/libraries/tokyo-cabinet/default.nix b/pkgs/development/libraries/tokyo-cabinet/default.nix new file mode 100644 index 000000000000..59afb3345cac --- /dev/null +++ b/pkgs/development/libraries/tokyo-cabinet/default.nix @@ -0,0 +1,45 @@ +{ fetchurl, stdenv, zlib, bzip2 }: + +stdenv.mkDerivation rec { + name = "tokyocabinet-1.4.46"; + + src = fetchurl { + url = "http://www.1978th.net/tokyocabinet/${name}.tar.gz"; + sha256 = "18rkv6kq43cqabc9mvfw534nsv6v8bc2i2r2bmax0yxnbhqa7ahf"; + }; + + buildInputs = [ zlib bzip2 ]; + + doCheck = true; + + postInstall = + '' sed -i "$out/lib/pkgconfig/tokyocabinet.pc" \ + -e 's|-lz|-L${zlib}/lib -lz|g; + s|-lbz2|-L${bzip2}/lib -lbz2|g' + ''; + + meta = { + description = "Tokyo Cabinet: a modern implementation of DBM"; + + longDescription = + '' Tokyo Cabinet is a library of routines for managing a database. The + database is a simple data file containing records, each is a pair of + a key and a value. Every key and value is serial bytes with + variable length. Both binary data and character string can be used + as a key and a value. There is neither concept of data tables nor + data types. Records are organized in hash table, B+ tree, or + fixed-length array. + + Tokyo Cabinet is developed as the successor of GDBM and QDBM on the + following purposes. They are achieved and Tokyo Cabinet replaces + conventional DBM products: improves space efficiency, improves time + efficiency, improves parallelism, improves usability, improves + robustness, supports 64-bit architecture. + ''; + + license = "LGPLv2+"; + + maintainers = [ stdenv.lib.maintainers.ludo ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5fd9b60d5abc..27bfb20288c8 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3869,6 +3869,8 @@ let tnt = callPackage ../development/libraries/tnt { }; + tokyocabinet = callPackage ../development/libraries/tokyo-cabinet { }; + unicap = callPackage ../development/libraries/unicap {}; unixODBC = callPackage ../development/libraries/unixODBC { };