about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/blockbook/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/blockbook/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/blockbook/default.nix72
1 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/blockbook/default.nix b/nixpkgs/pkgs/servers/blockbook/default.nix
new file mode 100644
index 000000000000..e52b0cb00bd4
--- /dev/null
+++ b/nixpkgs/pkgs/servers/blockbook/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, pkg-config
+, bzip2
+, lz4
+, rocksdb_6_23
+, snappy
+, zeromq
+, zlib
+, nixosTests
+}:
+
+let
+  rocksdb = rocksdb_6_23;
+in
+buildGoModule rec {
+  pname = "blockbook";
+  version = "0.3.6";
+  commit = "5f8cf45";
+
+  src = fetchFromGitHub {
+    owner = "trezor";
+    repo = "blockbook";
+    rev = "v${version}";
+    hash = "sha256-WwphMHFEuF5PavaPv+uc/k3DKT3P77Tr1WsOD1lJYck=";
+  };
+
+  vendorHash = "sha256-KJ92WztrtKjibvGBYRdnRag4XeZS4d7kyskJqD4GLPE=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ bzip2 lz4 rocksdb snappy zeromq zlib ];
+
+  ldflags = [
+    "-X github.com/trezor/blockbook/common.version=${version}"
+    "-X github.com/trezor/blockbook/common.gitcommit=${commit}"
+    "-X github.com/trezor/blockbook/common.buildDate=unknown"
+  ];
+
+  tags = [ "rocksdb_6_16" ];
+
+  preBuild = lib.optionalString stdenv.isDarwin ''
+    ulimit -n 8192
+  '' + ''
+    export CGO_LDFLAGS="-L${stdenv.cc.cc.lib}/lib -lrocksdb -lz -lbz2 -lsnappy -llz4 -lm -lstdc++"
+    buildFlagsArray+=("-tags=${lib.concatStringsSep " " tags}")
+    buildFlagsArray+=("-ldflags=${lib.concatStringsSep " " ldflags}")
+  '';
+
+  subPackages = [ "." ];
+
+  postInstall = ''
+    mkdir -p $out/share/
+    cp -r $src/static/templates/ $out/share/
+    cp -r $src/static/css/ $out/share/
+  '';
+
+  passthru.tests = {
+    smoke-test = nixosTests.blockbook-frontend;
+  };
+
+  meta = with lib; {
+    description = "Trezor address/account balance backend";
+    homepage = "https://github.com/trezor/blockbook";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ mmahut _1000101 ];
+    platforms = platforms.unix;
+    mainProgram = "blockbook";
+  };
+}