Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at fix-function-merge 78 lines 2.6 kB view raw
1{ stdenv, lib, fetchFromGitHub, postgresql, boost182, nixosTests }: 2 3let 4 version = "1.7.0"; 5 6 main_src = fetchFromGitHub { 7 name = "datasketches-postgresql"; 8 owner = "apache"; 9 repo = "datasketches-postgresql"; 10 rev = "refs/tags/${version}"; 11 hash = "sha256-W41uAs3W4V7c9O/wBw3rut65bcmY8EdQS1/tPszMGqA="; 12 }; 13 14 cpp_src = fetchFromGitHub { 15 name = "datasketches-cpp"; 16 owner = "apache"; 17 repo = "datasketches-cpp"; 18 rev = "refs/tags/5.0.2"; 19 hash = "sha256-yGk1OckYipAgLTQK6w6p6EdHMxBIQSjPV/MMND3cDks="; 20 }; 21in 22 23stdenv.mkDerivation { 24 pname = "apache_datasketches"; 25 inherit version; 26 27 srcs = [ main_src cpp_src ]; 28 29 sourceRoot = main_src.name; 30 31 buildInputs = [ postgresql boost182 ]; 32 33 patchPhase = '' 34 runHook prePatch 35 cp -r ../${cpp_src.name} . 36 runHook postPatch 37 ''; 38 39 installPhase = '' 40 runHook preInstall 41 install -D -m 644 ./datasketches${postgresql.dlSuffix} -t $out/lib/ 42 cat \ 43 sql/datasketches_cpc_sketch.sql \ 44 sql/datasketches_kll_float_sketch.sql \ 45 sql/datasketches_kll_double_sketch.sql \ 46 sql/datasketches_theta_sketch.sql \ 47 sql/datasketches_frequent_strings_sketch.sql \ 48 sql/datasketches_hll_sketch.sql \ 49 sql/datasketches_aod_sketch.sql \ 50 sql/datasketches_req_float_sketch.sql \ 51 sql/datasketches_quantiles_double_sketch.sql \ 52 > sql/datasketches--${version}.sql 53 install -D -m 644 ./datasketches.control -t $out/share/postgresql/extension 54 install -D -m 644 \ 55 ./sql/datasketches--${version}.sql \ 56 ./sql/datasketches--1.3.0--1.4.0.sql \ 57 ./sql/datasketches--1.4.0--1.5.0.sql \ 58 ./sql/datasketches--1.5.0--1.6.0.sql \ 59 ./sql/datasketches--1.6.0--1.7.0.sql \ 60 -t $out/share/postgresql/extension 61 runHook postInstall 62 ''; 63 64 passthru.tests.apache_datasketches = nixosTests.apache_datasketches; 65 66 meta = { 67 description = "PostgreSQL extension providing approximate algorithms for distinct item counts, quantile estimation and frequent items detection"; 68 longDescription = '' 69 apache_datasketches is an extension to support approximate algorithms on PostgreSQL. The implementation 70 is based on the Apache Datasketches CPP library, and provides support for HyperLogLog, 71 Compressed Probabilistic Counting, KLL, Frequent strings, and Theta sketches. 72 ''; 73 homepage = "https://datasketches.apache.org/"; 74 platforms = postgresql.meta.platforms; 75 license = lib.licenses.asl20; 76 maintainers = with lib.maintainers; [ mmusnjak ]; 77 }; 78}