at 25.11-pre 65 lines 1.6 kB view raw
1{ 2 buildEnv, 3 fetchFromGitHub, 4 lib, 5 pkg-config, 6 postgresql, 7 postgresqlBuildExtension, 8 postgresqlTestExtension, 9 R, 10 rPackages, 11}: 12 13postgresqlBuildExtension (finalAttrs: { 14 pname = "plr"; 15 version = "${builtins.replaceStrings [ "_" ] [ "." ] ( 16 lib.strings.removePrefix "REL" finalAttrs.src.rev 17 )}"; 18 19 src = fetchFromGitHub { 20 owner = "postgres-plr"; 21 repo = "plr"; 22 tag = "REL8_4_7"; 23 hash = "sha256-PdvFEmtKfLT/xfaf6obomPR5hKC9F+wqpfi1heBphRk="; 24 }; 25 26 nativeBuildInputs = [ pkg-config ]; 27 buildInputs = [ R ]; 28 29 makeFlags = [ "USE_PGXS=1" ]; 30 31 passthru = { 32 withPackages = 33 f: 34 let 35 pkgs = f rPackages; 36 paths = lib.concatMapStringsSep ":" (pkg: "${pkg}/library") pkgs; 37 in 38 buildEnv { 39 name = "${finalAttrs.pname}-with-packages-${finalAttrs.version}"; 40 paths = [ finalAttrs.finalPackage ]; 41 passthru.wrapperArgs = [ 42 ''--set R_LIBS_SITE "${paths}"'' 43 ]; 44 }; 45 tests.extension = postgresqlTestExtension { 46 finalPackage = finalAttrs.finalPackage.withPackages (ps: [ ps.base64enc ]); 47 sql = '' 48 CREATE EXTENSION plr; 49 DO LANGUAGE plr $$ 50 require('base64enc') 51 base64encode(1:100) 52 $$; 53 ''; 54 }; 55 }; 56 57 meta = { 58 description = "PL/R - R Procedural Language for PostgreSQL"; 59 homepage = "https://github.com/postgres-plr/plr"; 60 changelog = "https://github.com/postgres-plr/plr/blob/${finalAttrs.src.rev}/changelog.md"; 61 maintainers = with lib.maintainers; [ qoelet ]; 62 platforms = postgresql.meta.platforms; 63 license = lib.licenses.gpl2Only; 64 }; 65})