nixpkgs/pkgs/tools/misc/opentsdb/default.nix
2014-11-27 12:06:01 +00:00

185 lines
6.4 KiB
Nix

{ stdenv, autoconf, automake, curl, fetchurl, jdk, jre, makeWrapper, nettools, python }:
with stdenv.lib;
let
thirdPartyDeps = {
guava = {
"guava-18.0.jar" = fetchurl {
url = http://repo1.maven.org/maven2/com/google/guava/guava/18.0/guava-18.0.jar;
md5 = "947641f6bb535b1d942d1bc387c45290";
};
};
gwt = {
"gwt-dev-2.6.0.jar" = fetchurl {
url = http://central.maven.org/maven2/com/google/gwt/gwt-dev/2.6.0/gwt-dev-2.6.0.jar;
md5 = "23d8bf52709230c2c7e6dd817261f9ee";
};
"gwt-user-2.6.0.jar" = fetchurl {
url = http://repo1.maven.org/maven2/com/google/gwt/gwt-user/2.6.0/gwt-user-2.6.0.jar;
md5 = "99226fc2764f2b8fd6db6e05d0847659";
};
};
hamcrest = {
"hamcrest-core-1.3.jar" = fetchurl {
url = http://central.maven.org/maven2/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar;
md5 = "6393363b47ddcbba82321110c3e07519";
};
};
hbase = {
"asynchbase-1.6.0.jar" = fetchurl {
url = http://central.maven.org/maven2/org/hbase/asynchbase/1.6.0/asynchbase-1.6.0.jar;
md5 = "6738dd73fd48d30cbf5c78f62bc18852";
};
};
jackson = {
"jackson-annotations-2.4.3.jar" = fetchurl {
url = http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.4.3/jackson-annotations-2.4.3.jar;
md5 = "31ef4fa866f9d24960a6807c9c299e98";
};
"jackson-core-2.4.3.jar" = fetchurl {
url = http://central.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.4.3/jackson-core-2.4.3.jar;
md5 = "750ef3d86f04fe0d6d14d6ae904a6d2d";
};
"jackson-databind-2.4.3.jar" = fetchurl {
url = http://repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.4.3/jackson-databind-2.4.3.jar;
md5 = "4fcb9f74280eaa21de10191212c65b11";
};
};
javassist = {
"javassist-3.18.1-GA.jar" = fetchurl {
url = http://central.maven.org/maven2/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar;
md5 = "5bb83868c87334320562af7eded65cc2";
};
};
junit = {
"junit-4.11.jar" = fetchurl {
url = http://repo1.maven.org/maven2/junit/junit/4.11/junit-4.11.jar;
md5 = "3c42be5ea7cbf3635716abbb429cb90d";
};
};
logback = {
"logback-classic-1.0.13.jar" = fetchurl {
url = https://opentsdb.googlecode.com/files/logback-classic-1.0.13.jar;
md5 = "b4dc8eb42150aafd6d9fd3d211807621";
};
"logback-core-1.0.13.jar" = fetchurl {
url = https://opentsdb.googlecode.com/files/logback-core-1.0.13.jar;
md5 = "3d5f8ce8dca36e493d39177b71958bd4";
};
};
mockito = {
"mockito-1.9.0.jar" = fetchurl {
url = https://opentsdb.googlecode.com/files/mockito-1.9.0.jar;
md5 = "cab21b44958a173a5b1d55a6aff0ab54";
};
"mockito-core-1.9.5.jar" = fetchurl {
url = https://opentsdb.googlecode.com/files/mockito-core-1.9.5.jar;
md5 = "98f3076e2a691d1ac291624e5a46b80b";
};
};
netty = {
"netty-3.9.4.Final.jar" = fetchurl {
url = http://central.maven.org/maven2/io/netty/netty/3.9.4.Final/netty-3.9.4.Final.jar;
md5 = "b3701ef46c7518d0d63705e2f092dbe5";
};
};
objenesis = {
"objenesis-1.3.jar" = fetchurl {
url = http://repo1.maven.org/maven2/org/objenesis/objenesis/1.3/objenesis-1.3.jar;
md5 = "2d649907bd6203f2661f70d430a6ade8";
};
};
powermock = {
"powermock-mockito-release-full-1.5.4-full.jar" = fetchurl {
url = http://repo1.maven.org/maven2/org/powermock/powermock-mockito-release-full/1.5.4/powermock-mockito-release-full-1.5.4-full.jar;
md5 = "5dee1dce6952bb7338d4d053157ae647";
};
};
protobuf = {
"protobuf-java-2.5.0.jar" = fetchurl {
url = http://repo1.maven.org/maven2/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar;
md5 = "a44473b98947e2a54c54e0db1387d137";
};
};
slf4j = {
"log4j-over-slf4j-1.7.7.jar" = fetchurl {
url = http://repo1.maven.org/maven2/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar;
md5 = "93ab42a5216afd683c35988c6b6fc3d8";
};
"slf4j-api-1.7.7.jar" = fetchurl {
url = http://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar;
md5 = "ca4280bf93d64367723ae5c8d42dd0b9";
};
};
suasync = {
"suasync-1.4.0.jar" = fetchurl {
url = https://opentsdb.googlecode.com/files/suasync-1.4.0.jar;
md5 = "289ce3f3e6a9bb17857981eacf6d74b6";
};
};
validation-api = {
"validation-api-1.0.0.GA.jar" = fetchurl {
url = http://repo1.maven.org/maven2/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar;
md5 = "40c1ee909493066397a6d4d9f8d375d8";
};
"validation-api-1.0.0.GA-sources.jar" = fetchurl {
url = http://repo1.maven.org/maven2/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA-sources.jar;
md5 = "f816682933b59c5ffe32bdb4ab4bf628";
};
};
zookeeper = {
"zookeeper-3.3.6.jar" = fetchurl {
url = https://opentsdb.googlecode.com/files/zookeeper-3.3.6.jar;
md5 = "02786e11c19d1671640992f1bda4a858";
};
};
};
in stdenv.mkDerivation rec {
name = "opentsdb-2.1.0-rc1";
src = fetchurl {
url = https://github.com/OpenTSDB/opentsdb/archive/v2.1.0RC1.tar.gz;
sha256 = "01li02j8kjanmas2gxkcz3gsn54nyfyvqdylxz3fqqjgg6y7hrm7";
};
buildInputs = [ autoconf automake curl jdk makeWrapper nettools python ];
configurePhase = ''
echo > build-aux/fetchdep.sh.in
./bootstrap
mkdir build
cd build
../configure --prefix=$out
patchShebangs ./build-aux/
'';
buildPhase =
concatStringsSep
"\n"
(mapAttrsToList
(folder: jars:
"mkdir -p third_party/${folder}\n" +
(concatStringsSep
"\n"
(mapAttrsToList
(jar: src:
"ln -s ${src} third_party/${folder}/${jar}")
jars)))
thirdPartyDeps);
installPhase = ''
make install
wrapProgram $out/bin/tsdb \
--set JAVA_HOME "${jre}" \
--set JAVA "${jre}/bin/java"
'';
meta = with stdenv.lib; {
description = "Time series database with millisecond precision";
homepage = http://opentsdb.net;
license = licenses.lgpl21Plus;
platforms = stdenv.lib.platforms.linux;
maintainers = [ maintainers.ocharles ];
};
}