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