From 013bd9247d28875ca9b1c3928a867c9cb62de798 Mon Sep 17 00:00:00 2001 From: Tom Hunger Date: Sat, 13 Dec 2014 00:20:04 +0000 Subject: [PATCH] Add hyperdex. --- .../tools/misc/autoconf-archive/default.nix | 17 ++++++ pkgs/servers/nosql/hyperdex/busybee.nix | 28 +++++++++ pkgs/servers/nosql/hyperdex/default.nix | 57 +++++++++++++++++++ pkgs/servers/nosql/hyperdex/hyperleveldb.nix | 20 +++++++ pkgs/servers/nosql/hyperdex/libe.nix | 19 +++++++ pkgs/servers/nosql/hyperdex/libmacaroons.nix | 20 +++++++ pkgs/servers/nosql/hyperdex/libpo6.nix | 19 +++++++ pkgs/servers/nosql/hyperdex/replicant.nix | 32 +++++++++++ pkgs/top-level/all-packages.nix | 4 ++ 9 files changed, 216 insertions(+) create mode 100644 pkgs/development/tools/misc/autoconf-archive/default.nix create mode 100644 pkgs/servers/nosql/hyperdex/busybee.nix create mode 100644 pkgs/servers/nosql/hyperdex/default.nix create mode 100644 pkgs/servers/nosql/hyperdex/hyperleveldb.nix create mode 100644 pkgs/servers/nosql/hyperdex/libe.nix create mode 100644 pkgs/servers/nosql/hyperdex/libmacaroons.nix create mode 100644 pkgs/servers/nosql/hyperdex/libpo6.nix create mode 100644 pkgs/servers/nosql/hyperdex/replicant.nix diff --git a/pkgs/development/tools/misc/autoconf-archive/default.nix b/pkgs/development/tools/misc/autoconf-archive/default.nix new file mode 100644 index 000000000000..0e6ca01c625e --- /dev/null +++ b/pkgs/development/tools/misc/autoconf-archive/default.nix @@ -0,0 +1,17 @@ +{ stdenv, fetchurl, xz }: +stdenv.mkDerivation rec { + name = "autoconf-archive-${version}"; + version = "2014.10.15"; + + src = fetchurl { + url = "http://ftp.heanet.ie/mirrors/gnu/autoconf-archive/autoconf-archive-${version}.tar.xz"; + sha256 = "198yrdf8bhrpl7insdyzn65zd60qll0gr9vpz7fl7dpcj78yc7gy"; + }; + buildInputs = [ xz ]; + + meta = with stdenv.lib; { + description = "Archive of autoconf m4 macros."; + homepage = http://www.gnu.org/software/autoconf-archive/; + license = licenses.gpl3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/busybee.nix b/pkgs/servers/nosql/hyperdex/busybee.nix new file mode 100644 index 000000000000..19482db6f5a6 --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/busybee.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchurl, unzip, autoconf, automake, libtool, + libpo6, libe, pkgconfig }: + +stdenv.mkDerivation rec { + name = "busybee-${version}"; + version = "0.5.2"; + + src = fetchurl { + url = "https://github.com/rescrv/busybee/archive/releases/${version}.zip"; + sha256 = "0gr5h2j9rzwarblgcgddnxj39i282rvgn9vqlrcd60dx8c4dkm29"; + }; + buildInputs = [ + autoconf + automake + libe + libpo6 + libtool + pkgconfig + unzip + ]; + preConfigure = "autoreconf -i"; + + meta = with stdenv.lib; { + description = "BusyBee is a high-performance messaging layer."; + homepage = https://github.com/rescrv/busybee; + license = licenses.bsd3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/default.nix b/pkgs/servers/nosql/hyperdex/default.nix new file mode 100644 index 000000000000..036a3412b864 --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/default.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, makeWrapper, unzip, autoconf, automake, libtool, + python, sodium, pkgconfig, popt, glog, xz, json_c, gperf, yacc, + flex, haskellPackages, help2man, autoconf-archive, callPackage }: + +assert stdenv.isLinux; + +let +hyperleveldb = callPackage ./hyperleveldb.nix {}; +libpo6 = callPackage ./libpo6.nix {}; +libe = callPackage ./libe.nix { inherit libpo6; }; +busybee = callPackage ./busybee.nix { inherit libpo6 libe; }; +replicant = callPackage ./replicant.nix { + inherit libpo6 libe busybee hyperleveldb; +}; +libmacaroons = callPackage ./libmacaroons.nix { }; + +in +stdenv.mkDerivation rec { + name = "hyperdex-${version}"; + version = "1.5.0"; + + src = fetchurl { + url = "https://github.com/rescrv/HyperDex/archive/releases/${version}.zip"; + sha256 = "0s1capy2hj45f5rmdb4fk0wxy7vz69krplhba57f6wrkpcz1zb57"; + }; + + buildInputs = [ + autoconf + autoconf-archive + automake + busybee + glog + hyperleveldb + json_c + libe + libmacaroons + libpo6 + libtool + pkgconfig + popt + python + replicant + unzip + gperf + yacc + flex + help2man + haskellPackages.pandoc + ]; + preConfigure = "autoreconf -fi"; + + meta = with stdenv.lib; { + description = "HyperDex is a scalable, searchable key-value store"; + homepage = http://hyperdex.org; + license = licenses.bsd3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/hyperleveldb.nix b/pkgs/servers/nosql/hyperdex/hyperleveldb.nix new file mode 100644 index 000000000000..c39f618f6cb1 --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/hyperleveldb.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, unzip, autoconf, automake, libtool }: + +stdenv.mkDerivation rec { + name = "hyperleveldb-${version}"; + version = "1.2.1"; + + src = fetchurl { + url = "https://github.com/rescrv/HyperLevelDB/archive/releases/${version}.zip"; + sha256 = "0xrzhwkrm7f2wz3jn4iqn1dim2pmgjhmpb1fy23fwa06v0q18hw8"; + }; + buildInputs = [ unzip autoconf automake libtool ]; + preConfigure = "autoreconf -i"; + + meta = with stdenv.lib; { + description = ''A fork of LevelDB intended to meet the needs of + HyperDex while remaining compatible with LevelDB.''; + homepage = https://github.com/rescrv/HyperLevelDB; + license = licenses.bsd3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/libe.nix b/pkgs/servers/nosql/hyperdex/libe.nix new file mode 100644 index 000000000000..cc5232e13f22 --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/libe.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, unzip, autoconf, automake, libtool, libpo6, pkgconfig }: + +stdenv.mkDerivation rec { + name = "libe-${version}"; + version = "0.8.1"; + + src = fetchurl { + url = "https://github.com/rescrv/e/archive/releases/0.8.1.zip"; + sha256 = "1l13axsi52j2qaxbdnszdvfxksi7rwm2j1rrf0nlh990m6a3yg3s"; + }; + buildInputs = [ unzip autoconf automake libtool libpo6 pkgconfig ]; + preConfigure = "autoreconf -i"; + + meta = with stdenv.lib; { + description = "Library containing high-performance datastructures and utilities for C++"; + homepage = https://github.com/rescrv/e; + license = licenses.bsd3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/libmacaroons.nix b/pkgs/servers/nosql/hyperdex/libmacaroons.nix new file mode 100644 index 000000000000..2d709c5bbd1d --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/libmacaroons.nix @@ -0,0 +1,20 @@ +{ stdenv, fetchurl, unzip, autoconf, automake, libtool, + pkgconfig, sodium, python }: +stdenv.mkDerivation rec { + name = "libmacaroons-${version}"; + version = "HEAD"; + + src = fetchurl { + url = "https://github.com/rescrv/libmacaroons/archive/6febf3ce6c4c77a46d24b40ed29b03ffbfb175a7.zip"; + sha256 = "0b4qgim87398chvc3qhxfqv2l1cyl65rhyknln8lk0gq9y00p1ik"; + }; + buildInputs = [ unzip autoconf automake libtool python sodium pkgconfig ]; + preConfigure = "autoreconf -i"; + + meta = with stdenv.lib; { + description = ''Macaroons are flexible authorization credentials that + support decentralized delegation, attenuation, and verification.''; + homepage = https://github.com/rescrv/libmacaroons; + license = licenses.bsd3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/libpo6.nix b/pkgs/servers/nosql/hyperdex/libpo6.nix new file mode 100644 index 000000000000..166a5e21c6b9 --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/libpo6.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchurl, unzip, autoconf, automake, libtool }: + +stdenv.mkDerivation rec { + name = "libpo6-${version}"; + version = "0.5.2"; + + src = fetchurl { + url = "https://github.com/rescrv/po6/archive/releases/${version}.zip"; + sha256 = "14g3ichshnc4wd0iq3q3ymgaq84gjsbqcyn6lri7c7djgkhqijjx"; + }; + buildInputs = [ unzip autoconf automake libtool ]; + preConfigure = "autoreconf -i"; + + meta = with stdenv.lib; { + description = "POSIX wrappers for C++"; + homepage = https://github.com/rescrv/po6; + license = licenses.bsd3; + }; +} diff --git a/pkgs/servers/nosql/hyperdex/replicant.nix b/pkgs/servers/nosql/hyperdex/replicant.nix new file mode 100644 index 000000000000..c064aa419cde --- /dev/null +++ b/pkgs/servers/nosql/hyperdex/replicant.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, unzip, autoconf, automake, libtool, glog, + hyperleveldb, libe, pkgconfig, popt, libpo6, busybee }: + +stdenv.mkDerivation rec { + name = "replicant-${version}"; + version = "0.5.2"; + + src = fetchurl { + url = "https://github.com/rescrv/Replicant/archive/releases/0.6.3.zip"; + sha256 = "1fbagz0nbvinkqr5iw5y187dm4klkswrxnl5ysq8waglg2nj8zzi"; + }; + buildInputs = [ + autoconf + automake + busybee + glog + hyperleveldb + libe + libpo6 + libtool + pkgconfig + popt + unzip + ]; + preConfigure = "autoreconf -i"; + + meta = with stdenv.lib; { + description = "A system for maintaining replicated state machines."; + homepage = https://github.com/rescrv/Replicant; + license = licenses.bsd3; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 42de5f122426..862a7087b817 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4315,6 +4315,8 @@ let autoconf = callPackage ../development/tools/misc/autoconf { }; + autoconf-archive = callPackage ../development/tools/misc/autoconf-archive { }; + autoconf213 = callPackage ../development/tools/misc/autoconf/2.13.nix { }; autocutsel = callPackage ../tools/X11/autocutsel{ }; @@ -7725,6 +7727,8 @@ let influxdb = callPackage ../servers/nosql/influxdb { }; + hyperdex = callPackage ../servers/nosql/hyperdex { }; + mysql51 = import ../servers/sql/mysql/5.1.x.nix { inherit fetchurl ncurses zlib perl openssl stdenv; ps = procps; /* !!! Linux only */