Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ lib 2, stdenv 3, buildGoModule 4, fetchFromGitHub 5, pkg-config 6, bzip2 7, lz4 8, rocksdb_6_23 9, snappy 10, zeromq 11, zlib 12, nixosTests 13}: 14 15let 16 rocksdb = rocksdb_6_23; 17in 18buildGoModule rec { 19 pname = "blockbook"; 20 version = "0.3.6"; 21 commit = "5f8cf45"; 22 23 src = fetchFromGitHub { 24 owner = "trezor"; 25 repo = "blockbook"; 26 rev = "v${version}"; 27 sha256 = "1jb195chy3kbspmv9vyg7llw6kgykkmvz3znd97mxf24f4q622jv"; 28 }; 29 30 vendorSha256 = "1w9c0qzah2f9rbjdxqajwrfkia25cwbn30gidviaid3b7ddpd7r8"; 31 32 nativeBuildInputs = [ pkg-config ]; 33 34 buildInputs = [ bzip2 lz4 rocksdb snappy zeromq zlib ]; 35 36 ldflags = [ 37 "-X github.com/trezor/blockbook/common.version=${version}" 38 "-X github.com/trezor/blockbook/common.gitcommit=${commit}" 39 "-X github.com/trezor/blockbook/common.buildDate=unknown" 40 ]; 41 42 tags = [ "rocksdb_6_16" ]; 43 44 preBuild = lib.optionalString stdenv.isDarwin '' 45 ulimit -n 8192 46 '' + '' 47 export CGO_LDFLAGS="-L${stdenv.cc.cc.lib}/lib -lrocksdb -lz -lbz2 -lsnappy -llz4 -lm -lstdc++" 48 buildFlagsArray+=("-tags=${lib.concatStringsSep " " tags}") 49 buildFlagsArray+=("-ldflags=${lib.concatStringsSep " " ldflags}") 50 ''; 51 52 subPackages = [ "." ]; 53 54 postInstall = '' 55 mkdir -p $out/share/ 56 cp -r $src/static/templates/ $out/share/ 57 cp -r $src/static/css/ $out/share/ 58 ''; 59 60 passthru.tests = { 61 smoke-test = nixosTests.blockbook-frontend; 62 }; 63 64 meta = with lib; { 65 description = "Trezor address/account balance backend"; 66 homepage = "https://github.com/trezor/blockbook"; 67 license = licenses.agpl3; 68 maintainers = with maintainers; [ mmahut _1000101 ]; 69 platforms = platforms.unix; 70 }; 71}