Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at fix-function-merge 76 lines 2.1 kB view raw
1{ lib 2, stdenv 3, cmake 4, fetchFromGitHub 5, h3_4 6, postgresql 7, postgresqlTestHook 8}: 9 10stdenv.mkDerivation (finalAttrs: { 11 pname = "h3-pg"; 12 version = "4.1.3"; 13 14 src = fetchFromGitHub { 15 owner = "zachasme"; 16 repo = "h3-pg"; 17 rev = "v${finalAttrs.version}"; 18 hash = "sha256-nkaDZ+JuMtsGUJVx70DD2coLrmc/T8/cNov7pfNF1Eg="; 19 }; 20 21 postPatch = '' 22 substituteInPlace CMakeLists.txt \ 23 --replace "add_subdirectory(cmake/h3)" "include_directories(${lib.getDev h3_4}/include/h3)" 24 '' + lib.optionalString stdenv.isDarwin '' 25 substituteInPlace cmake/AddPostgreSQLExtension.cmake \ 26 --replace "INTERPROCEDURAL_OPTIMIZATION TRUE" "" 27 ''; 28 29 nativeBuildInputs = [ 30 cmake 31 ]; 32 33 buildInputs = [ 34 h3_4 35 postgresql 36 ]; 37 38 installPhase = '' 39 install -D -t $out/lib h3/h3.so 40 install -D -t $out/share/postgresql/extension h3/h3-*.sql h3/h3.control 41 install -D -t $out/lib h3_postgis/h3_postgis.so 42 install -D -t $out/share/postgresql/extension h3_postgis/h3_postgis-*.sql h3_postgis/h3_postgis.control 43 ''; 44 45 passthru.tests.extension = stdenv.mkDerivation { 46 name = "h3-pg-test"; 47 dontUnpack = true; 48 doCheck = true; 49 buildInputs = [ postgresqlTestHook ]; 50 nativeCheckInputs = [ (postgresql.withPackages (ps: [ ps.h3-pg ps.postgis ])) ]; 51 postgresqlTestUserOptions = "LOGIN SUPERUSER"; 52 passAsFile = [ "sql" ]; 53 sql = '' 54 CREATE EXTENSION h3; 55 CREATE EXTENSION h3_postgis CASCADE; 56 57 SELECT h3_lat_lng_to_cell(POINT('37.3615593,-122.0553238'), 5); 58 SELECT ST_NPoints(h3_cell_to_boundary_geometry('8a63a9a99047fff')); 59 ''; 60 failureHook = "postgresqlStop"; 61 checkPhase = '' 62 runHook preCheck 63 psql -a -v ON_ERROR_STOP=1 -f $sqlPath 64 runHook postCheck 65 ''; 66 installPhase = "touch $out"; 67 }; 68 69 meta = with lib; { 70 description = "PostgreSQL bindings for H3, a hierarchical hexagonal geospatial indexing system"; 71 homepage = "https://github.com/zachasme/h3-pg"; 72 license = licenses.asl20; 73 maintainers = [ ]; 74 inherit (postgresql.meta) platforms; 75 }; 76})