at 24.11-pre 75 lines 2.4 kB view raw
1{ lib, stdenv, bison, fetchFromGitHub, flex, perl, postgresql }: 2 3let 4 hashes = { 5 "16" = "sha256-sXh/vmGyYj00ALfFVdeql2DZ6nCJQDNKyNgzlOZnPAw="; 6 "15" = "sha256-webZWgWZGnSoXwTpk816tjbtHV1UIlXkogpBDAEL4gM="; 7 "14" = "sha256-jZXhcYBubpjIJ8M5JHXKV5f6VK/2BkypH3P7nLxZz3E="; 8 "13" = "sha256-HR6nnWt/V2a0rD5eHHUsFIZ1y7lmvLz36URt9pPJnCw="; 9 "12" = "sha256-JFNk17ESsIt20dwXrfBkQ5E6DbZzN/Q9eS6+WjCXGd4="; 10 }; 11in 12stdenv.mkDerivation rec { 13 pname = "age"; 14 version = "1.5.0-rc0"; 15 16 src = fetchFromGitHub { 17 owner = "apache"; 18 repo = "age"; 19 rev = "PG${lib.versions.major postgresql.version}/v${builtins.replaceStrings ["."] ["_"] version}"; 20 hash = hashes.${lib.versions.major postgresql.version} or (throw "Source for Age is not available for ${postgresql.version}"); 21 }; 22 23 buildInputs = [ postgresql ]; 24 25 makeFlags = [ 26 "BISON=${bison}/bin/bison" 27 "FLEX=${flex}/bin/flex" 28 "PERL=${perl}/bin/perl" 29 ]; 30 31 installPhase = '' 32 install -D -t $out/lib *${postgresql.dlSuffix} 33 install -D -t $out/share/postgresql/extension *.sql 34 install -D -t $out/share/postgresql/extension *.control 35 ''; 36 37 passthru.tests = stdenv.mkDerivation { 38 inherit version src; 39 40 pname = "age-regression"; 41 42 dontConfigure = true; 43 44 buildPhase = let 45 postgresqlAge = postgresql.withPackages (ps: [ ps.age ]); 46 in '' 47 # The regression tests need to be run in the order specified in the Makefile. 48 echo -e "include Makefile\nfiles:\n\t@echo \$(REGRESS)" > Makefile.regress 49 REGRESS_TESTS=$(make -f Makefile.regress files) 50 51 ${postgresql}/lib/pgxs/src/test/regress/pg_regress \ 52 --inputdir=./ \ 53 --bindir='${postgresqlAge}/bin' \ 54 --encoding=UTF-8 \ 55 --load-extension=age \ 56 --inputdir=./regress --outputdir=./regress --temp-instance=./regress/instance \ 57 --port=61958 --dbname=contrib_regression \ 58 $REGRESS_TESTS 59 ''; 60 61 installPhase = '' 62 touch $out 63 ''; 64 }; 65 66 meta = with lib; { 67 broken = !builtins.elem (versions.major postgresql.version) (builtins.attrNames hashes); 68 description = "A graph database extension for PostgreSQL"; 69 homepage = "https://age.apache.org/"; 70 changelog = "https://github.com/apache/age/raw/v${src.rev}/RELEASE"; 71 maintainers = with maintainers; [ ]; 72 platforms = postgresql.meta.platforms; 73 license = licenses.asl20; 74 }; 75}