diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/sql/postgresql/ext')
21 files changed, 725 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix new file mode 100644 index 000000000000..f2e814543dbf --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/cstore_fdw.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchFromGitHub, postgresql, protobufc }: + +stdenv.mkDerivation rec { + name = "cstore_fdw-${version}"; + version = "1.6.2"; + + nativeBuildInputs = [ protobufc ]; + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "citusdata"; + repo = "cstore_fdw"; + rev = "refs/tags/v${version}"; + sha256 = "0kdmzpbhhjdg4p6i5963h7qbs88jzgpqc52gz450h7hwb9ckpv74"; + }; + + installPhase = '' + mkdir -p $out/{lib,share/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Columnar storage for PostgreSQL"; + homepage = https://www.citusdata.com/; + maintainers = with maintainers; [ thoughtpolice ]; + platforms = postgresql.meta.platforms; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix new file mode 100644 index 000000000000..f37e347e89a1 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline }: + +if stdenv.lib.versionOlder postgresql.version "10" +then throw "pg_auto_failover not supported for PostgreSQL ${postgresql.version}" +else +stdenv.mkDerivation rec { + pname = "pg_auto_failover"; + version = "1.0.3"; + + src = fetchFromGitHub { + owner = "citusdata"; + repo = pname; + rev = "v${version}"; + sha256 = "0mggf5h6gh2mck75dmz5w63gi7d10pqs58fdp2jdpv3am75picll"; + }; + + buildInputs = [ postgresql openssl zlib readline ]; + + installPhase = '' + install -D -t $out/bin src/bin/pg_autoctl/pg_autoctl + install -D -t $out/lib src/monitor/pgautofailover.so + install -D -t $out/share/postgresql/extension src/monitor/*.sql + install -D -t $out/share/postgresql/extension src/monitor/pgautofailover.control + ''; + + meta = with stdenv.lib; { + description = "PostgreSQL extension and service for automated failover and high-availability"; + homepage = "https://github.com/citusdata/pg_auto_failover"; + maintainers = [ maintainers.marsam ]; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix new file mode 100644 index 000000000000..a8e5a54bc29a --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_bigm.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, postgresql }: + +stdenv.mkDerivation rec { + pname = "pg_bigm"; + version = "1.2"; + + src = fetchurl { + url = "mirror://osdn/pgbigm/66565/${pname}-${version}-20161011.tar.gz"; + sha256 = "1jp30za4bhwlas0yrhyjs9m03b1sj63km61xnvcbnh0sizyvhwis"; + }; + + buildInputs = [ postgresql ]; + + makeFlags = [ "USE_PGXS=1" ]; + + installPhase = '' + mkdir -p $out/bin # For buildEnv to setup proper symlinks. See #22653 + mkdir -p $out/{lib,share/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Text similarity measurement and index searching based on bigrams"; + homepage = "https://pgbigm.osdn.jp/"; + maintainers = [ maintainers.marsam ]; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix new file mode 100644 index 000000000000..d2d2a00ffd5a --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_cron.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + pname = "pg_cron"; + version = "1.1.4"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "citusdata"; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "0wkqgrm3v999hjcc82h24jv1pib6f6bw8jsv83hgk6g3iv6xsjg9"; + }; + + installPhase = '' + mkdir -p $out/{lib,share/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Run Cron jobs through PostgreSQL"; + homepage = https://github.com/citusdata/pg_cron; + maintainers = with maintainers; [ thoughtpolice ]; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix new file mode 100644 index 000000000000..bccec1107b9a --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_hll.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + name = "pg_hll-${version}"; + version = "2.12"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "citusdata"; + repo = "postgresql-hll"; + rev = "refs/tags/v${version}"; + sha256 = "1jdc9gjqc3dkjxv855q1p594j0awhrrymrcqnl5vw5vx2ny3bpgn"; + }; + + installPhase = '' + mkdir -p $out/{lib,share/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "HyperLogLog for PostgreSQL"; + homepage = https://www.citusdata.com/; + maintainers = with maintainers; [ thoughtpolice ]; + platforms = postgresql.meta.platforms; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix new file mode 100644 index 000000000000..38e86fbfd8d6 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_partman.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + pname = "pg_partman"; + version = "4.1.0"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "pgpartman"; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "0bzv92x492jcwzhal9x4vc3vszixscdpxc6yq5rrqld26dhmsp06"; + }; + + installPhase = '' + mkdir -p $out/bin # For buildEnv to setup proper symlinks. See #22653 + mkdir -p $out/{lib,share/extension} + + cp src/*.so $out/lib + cp updates/* $out/share/postgresql/extension + cp -r sql/* $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Partition management extension for PostgreSQL"; + homepage = https://github.com/pgpartman/pg_partman; + maintainers = with maintainers; [ ggpeti ]; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix new file mode 100644 index 000000000000..381a174838e5 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_repack.nix @@ -0,0 +1,35 @@ +{ stdenv, fetchFromGitHub, postgresql, openssl, zlib, readline }: + +stdenv.mkDerivation rec { + name = "pg_repack-${version}"; + version = "1.4.4"; + + buildInputs = [ postgresql openssl zlib readline ]; + + src = fetchFromGitHub { + owner = "reorg"; + repo = "pg_repack"; + rev = "refs/tags/ver_${version}"; + sha256 = "0ynsmsxfkcp82ccpz2nrgg8wiil8yxqigvw6425lx8v80h5lszbw"; + }; + + installPhase = '' + install -D bin/pg_repack -t $out/bin/ + install -D lib/pg_repack.so -t $out/lib/ + install -D lib/{pg_repack--${version}.sql,pg_repack.control} -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Reorganize tables in PostgreSQL databases with minimal locks"; + longDescription = '' + pg_repack is a PostgreSQL extension which lets you remove bloat from tables and indexes, and optionally restore + the physical order of clustered indexes. Unlike CLUSTER and VACUUM FULL it works online, without holding an + exclusive lock on the processed tables during processing. pg_repack is efficient to boot, + with performance comparable to using CLUSTER directly. + ''; + license = licenses.bsd3; + maintainers = with maintainers; [ danbst ]; + inherit (postgresql.meta) platforms; + inherit (src.meta) homepage; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix new file mode 100644 index 000000000000..b835141e2ca7 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_safeupdate.nix @@ -0,0 +1,27 @@ +{ stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + pname = "pg-safeupdate"; + version = "1.2"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "eradman"; + repo = pname; + rev = version; + sha256 = "010m57jcv5v8pyfm1cqs3a306y750lvnvla9m5d98v5vdx3349jg"; + }; + + installPhase = '' + mkdir -p $out/bin # for buildEnv, see https://github.com/NixOS/nixpkgs/issues/22653 + install -D safeupdate.so -t $out/lib + ''; + + meta = with stdenv.lib; { + description = "A simple extension to PostgreSQL that requires criteria for UPDATE and DELETE"; + homepage = "https://github.com/eradman/pg-safeupdate"; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix new file mode 100644 index 000000000000..301160ce1324 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_similarity.nix @@ -0,0 +1,30 @@ +{ stdenv, lib, fetchFromGitHub, gcc, postgresql }: + +stdenv.mkDerivation { + + name = "pg_similarity-1.0"; + src = fetchFromGitHub { + owner = "eulerto"; + repo = "pg_similarity"; + rev = "be1a8b08c8716e59b89982557da9ea68cdf868c5"; + sha256 = "1z4v4r2yccdr8kz3935fnk1bc5vj0qj0apscldyap4wxlyi89xim"; + }; + + buildInputs = [ postgresql gcc ]; + buildPhase = "USE_PGXS=1 make"; + installPhase = '' + install -D pg_similarity.so -t $out/lib/ + install -D ./{pg_similarity--unpackaged--1.0.sql,pg_similarity--1.0.sql,pg_similarity.control} -t $out/share/postgresql/extension + ''; + + meta = { + description = '' + pg_similarity is an extension to support similarity queries on PostgreSQL. The implementation + is tightly integrated in the RDBMS in the sense that it defines operators so instead of the traditional + operators (= and <>) you can use ~~~ and ~!~ (any of these operators represents a similarity function). + ''; + platforms = postgresql.meta.platforms; + license = stdenv.lib.licenses.gpl2; + maintainers = with lib.maintainers; [ danbst ]; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix new file mode 100644 index 000000000000..1a5aa91ae6ec --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_topn.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + name = "pg_topn-${version}"; + version = "2.2.2"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "citusdata"; + repo = "postgresql-topn"; + rev = "refs/tags/v${version}"; + sha256 = "1bh28nrxj06vc2cvlsxlwrwad5ff3lfj3kr5cnnggwjk2dhwbbjm"; + }; + + installPhase = '' + mkdir -p $out/{lib,share/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Efficient querying of 'top values' for PostgreSQL"; + homepage = https://github.com/citusdata/postgresql-topn; + maintainers = with maintainers; [ thoughtpolice ]; + platforms = postgresql.meta.platforms; + license = licenses.agpl3; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgjwt.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgjwt.nix new file mode 100644 index 000000000000..c68ba9b17288 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgjwt.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub }: + +stdenv.mkDerivation rec { + name = "pgjwt-${version}"; + version = "unstable-2017-04-24"; + + src = fetchFromGitHub { + owner = "michelp"; + repo = "pgjwt"; + rev = "546a2911027b716586e241be7fd4c6f1785237cd"; + sha256 = "1riz0xvwb6y02j0fljbr9hcbqb2jqs4njlivmavy9ysbcrrv1vrf"; + }; + + buildPhase = ":"; + installPhase = '' + mkdir -p $out/share/postgresql/extension + cp pg*sql *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "PostgreSQL implementation of JSON Web Tokens"; + longDescription = '' + sign() and verify() functions to create and verify JSON Web Tokens. + ''; + license = licenses.mit; + maintainers = with maintainers; [spinus]; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix new file mode 100644 index 000000000000..7dc70ee976cf --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix @@ -0,0 +1,34 @@ +{ stdenv, fetchurl, pkgconfig, postgresql, msgpack, groonga }: + +stdenv.mkDerivation rec { + pname = "pgroonga"; + version = "2.2.1"; + + src = fetchurl { + url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz"; + sha256 = "0d913rkxx6qlkav6z9crsz3ypqkdffn4c667nsgzh5s9n4wbbpb8"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ postgresql msgpack groonga ]; + + makeFlags = [ "HAVE_MSGPACK=1" ]; + + installPhase = '' + install -D pgroonga.so -t $out/lib/ + install -D ./{pgroonga-*.sql,pgroonga.control} -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "A PostgreSQL extension to use Groonga as the index"; + longDescription = '' + PGroonga is a PostgreSQL extension to use Groonga as the index. + PostgreSQL supports full text search against languages that use only alphabet and digit. + It means that PostgreSQL doesn't support full text search against Japanese, Chinese and so on. + You can use super fast full text search feature against all languages by installing PGroonga into your PostgreSQL. + ''; + homepage = "https://pgroonga.github.io/"; + license = licenses.postgresql; + maintainers = with maintainers; [ DerTim1 ]; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix new file mode 100644 index 000000000000..6e1c6e3a4fca --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix @@ -0,0 +1,30 @@ +{ stdenv, fetchFromGitHub, postgresql, perl, cmake, boost, gmp, cgal, mpfr }: + +stdenv.mkDerivation rec { + pname = "pgrouting"; + version = "2.6.2"; + + nativeBuildInputs = [ cmake perl ]; + buildInputs = [ postgresql boost gmp cgal mpfr ]; + + src = fetchFromGitHub { + owner = "pgRouting"; + repo = pname; + rev = "v${version}"; + sha256 = "09xy5pmiwq0lxf2m8p4q5r892mfmn32vf8m75p84jnz4707z1l0j"; + }; + + installPhase = '' + install -D lib/*.so -t $out/lib + install -D sql/pgrouting--${version}.sql -t $out/share/postgresql/extension + install -D sql/common/pgrouting.control -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "A PostgreSQL/PostGIS extension that provides geospatial routing functionality"; + homepage = https://pgrouting.org/; + maintainers = [ maintainers.steve-chavez ]; + platforms = platforms.linux; + license = licenses.gpl2; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix new file mode 100644 index 000000000000..7dd6a5882b25 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgtap.nix @@ -0,0 +1,33 @@ +{ stdenv, fetchFromGitHub, postgresql, perl, perlPackages, which }: + +stdenv.mkDerivation rec { + name = "pgtap-${version}"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "theory"; + repo = "pgtap"; + rev = "v${version}"; + sha256 = "0ks53lsrpa8yxav8jh0jlvs25y6p7mkcdch8il1kvib9k5zq2wnb"; + }; + + nativeBuildInputs = [ postgresql perl perlPackages.TAPParserSourceHandlerpgTAP which ]; + + installPhase = '' + install -D {sql/pgtap--${version}.sql,pgtap.control} -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "pgTAP is a unit testing framework for PostgreSQL"; + longDescription = '' + pgTAP is a unit testing framework for PostgreSQL written in PL/pgSQL and PL/SQL. + It includes a comprehensive collection of TAP-emitting assertion functions, + as well as the ability to integrate with other TAP-emitting test frameworks. + It can also be used in the xUnit testing style. + ''; + maintainers = with maintainers; [ willibutz ]; + homepage = https://pgtap.org; + inherit (postgresql.meta) platforms; + license = licenses.mit; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix new file mode 100644 index 000000000000..01dcd54d95e8 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pipelinedb.nix @@ -0,0 +1,39 @@ +{ stdenv, fetchFromGitHub, postgresql, zeromq, openssl }: + +if stdenv.lib.versionOlder postgresql.version "10" +then throw "PipelineDB not supported for PostgreSQL ${postgresql.version}" +else +stdenv.mkDerivation rec { + pname = "pipelinedb"; + version = "1.0.0-13"; + + src = fetchFromGitHub { + owner = "pipelinedb"; + repo = pname; + rev = version; + sha256 = "1mnqpvx6g1r2n4kjrrx01vbdx7kvndfsbmm7zbzizjnjlyixz75f"; + }; + + buildInputs = [ postgresql openssl zeromq ]; + + makeFlags = [ "USE_PGXS=1" ]; + + preConfigure = '' + substituteInPlace Makefile \ + --replace "/usr/lib/libzmq.a" "${zeromq}/lib/libzmq.a" + ''; + + installPhase = '' + mkdir -p $out/bin + install -D -t $out/lib/ pipelinedb.so + install -D -t $out/share/postgresql/extension {pipelinedb-*.sql,pipelinedb.control} + ''; + + meta = with stdenv.lib; { + description = "High-performance time-series aggregation for PostgreSQL"; + homepage = https://www.pipelinedb.com/; + license = licenses.asl20; + platforms = postgresql.meta.platforms; + maintainers = [ maintainers.marsam ]; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix new file mode 100644 index 000000000000..89138baa91c2 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix @@ -0,0 +1,37 @@ +{ stdenv, fetchFromGitHub, v8, perl, postgresql }: + +stdenv.mkDerivation rec { + pname = "plv8"; + version = "2.3.12"; + + nativeBuildInputs = [ perl ]; + buildInputs = [ v8 postgresql ]; + + src = fetchFromGitHub { + owner = "plv8"; + repo = "plv8"; + rev = "v${version}"; + sha256 = "1yi1ibiibvd0x4z5dm698w32ljrj3yr4j25jm1zkgkwd4ii8y644"; + }; + + makefile = "Makefile.shared"; + + buildFlags = [ "all" ]; + + preConfigure = '' + patchShebangs ./generate_upgrade.sh + ''; + + installPhase = '' + install -D plv8*.so -t $out/lib + install -D {plls,plcoffee,plv8}{--${version}.sql,.control} -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "V8 Engine Javascript Procedural Language add-on for PostgreSQL"; + homepage = "https://plv8.github.io/"; + maintainers = with maintainers; [ volth ]; + platforms = platforms.linux; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix new file mode 100644 index 000000000000..63b8a39b0e27 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix @@ -0,0 +1,75 @@ +{ fetchurl +, stdenv +, perl +, libxml2 +, postgresql +, geos +, proj +, gdal +, json_c +, pkgconfig +, file +, protobufc +, libiconv +}: +stdenv.mkDerivation rec { + name = "postgis-${version}"; + version = "2.5.2"; + + outputs = [ "out" "doc" ]; + + src = fetchurl { + url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz"; + sha256 = "0pnva72f2w4jcgnl1y7nw5rdly4ipx3hji4c9yc9s0hna1n2ijxn"; + }; + + buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ] + ++ stdenv.lib.optional stdenv.isDarwin libiconv; + nativeBuildInputs = [ perl pkgconfig ]; + dontDisableStatic = true; + + # postgis config directory assumes /include /lib from the same root for json-c library + NIX_LDFLAGS = "-L${stdenv.lib.getLib json_c}/lib"; + + preConfigure = '' + sed -i 's@/usr/bin/file@${file}/bin/file@' configure + configureFlags="--datadir=$out/share/postgresql --datarootdir=$out/share/postgresql --bindir=$out/bin --with-gdalconfig=${gdal}/bin/gdal-config --with-jsondir=${json_c.dev}" + + makeFlags="PERL=${perl}/bin/perl datadir=$out/share/postgresql pkglibdir=$out/lib bindir=$out/bin" + ''; + postConfigure = '' + sed -i "s|@mkdir -p \$(DESTDIR)\$(PGSQL_BINDIR)||g ; + s|\$(DESTDIR)\$(PGSQL_BINDIR)|$prefix/bin|g + " \ + "raster/loader/Makefile"; + sed -i "s|\$(DESTDIR)\$(PGSQL_BINDIR)|$prefix/bin|g + " \ + "raster/scripts/python/Makefile"; + mkdir -p $out/bin + + # postgis' build system assumes it is being installed to the same place as postgresql, and looks + # for the postgres binary relative to $PREFIX. We gently support this system using an illusion. + ln -s ${postgresql}/bin/postgres $out/bin/postgres + ''; + + # create aliases for all commands adding version information + postInstall = '' + # Teardown the illusory postgres used for building; see postConfigure. + rm $out/bin/postgres + + for prog in $out/bin/*; do # */ + ln -s $prog $prog-${version} + done + + mkdir -p $doc/share/doc/postgis + mv doc/* $doc/share/doc/postgis/ + ''; + + meta = with stdenv.lib; { + description = "Geographic Objects for PostgreSQL"; + homepage = https://postgis.net/; + license = licenses.gpl2; + maintainers = [ maintainers.marcweber ]; + inherit (postgresql.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix new file mode 100644 index 000000000000..3a4e0cba6026 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/tds_fdw.nix @@ -0,0 +1,29 @@ +{ stdenv, fetchFromGitHub, postgresql, freetds }: + +stdenv.mkDerivation rec { + pname = "tds_fdw"; + version = "1.0.8"; + + buildInputs = [ postgresql freetds ]; + + src = fetchFromGitHub { + owner = "tds-fdw"; + repo = pname; + rev = "refs/tags/v${version}"; + sha256 = "0dlv1imiy773yplqqpl26xka65bc566k2x81wkrbvwqagnwvcai2"; + }; + + installPhase = '' + install -D tds_fdw.so -t $out/lib + install -D sql/tds_fdw--${version}.sql -t $out/share/postgresql/extension + install -D tds_fdw.control -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "A PostgreSQL foreign data wrapper to connect to TDS databases (Sybase and Microsoft SQL Server)"; + homepage = https://github.com/tds-fdw/tds_fdw; + maintainers = [ maintainers.steve-chavez ]; + platforms = postgresql.meta.platforms; + license = licenses.postgresql; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix new file mode 100644 index 000000000000..ac0299208f81 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/temporal_tables.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchFromGitHub, postgresql }: + +stdenv.mkDerivation rec { + pname = "temporal_tables"; + version = "1.2.0"; + + buildInputs = [ postgresql ]; + + src = fetchFromGitHub { + owner = "mlt"; + repo = pname; + rev = "6cc86eb03d618d6b9fc09ae523f1a1e5228d22b5"; + sha256 = "0ykv37rm511n5955mbh9dcp7pgg88z1nwgszav7z6pziaj3nba8x"; + }; + + installPhase = '' + mkdir -p $out/{bin,lib,share/extension} + + cp *.so $out/lib + cp *.sql $out/share/postgresql/extension + cp *.control $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Temporal Tables PostgreSQL Extension "; + homepage = https://github.com/mlt/temporal_tables; + maintainers = with maintainers; [ ggpeti ]; + platforms = postgresql.meta.platforms; + license = licenses.bsd2; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix new file mode 100644 index 000000000000..77da47b00e0d --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix @@ -0,0 +1,46 @@ +{ stdenv, fetchFromGitHub, cmake, postgresql, openssl }: + +# # To enable on NixOS: +# config.services.postgresql = { +# extraPlugins = [ pkgs.timescaledb ]; +# extraConfig = "shared_preload_libraries = 'timescaledb'"; +# } + +stdenv.mkDerivation rec { + name = "timescaledb-${version}"; + version = "1.4.1"; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ postgresql openssl ]; + + src = fetchFromGitHub { + owner = "timescale"; + repo = "timescaledb"; + rev = "refs/tags/${version}"; + sha256 = "1gbca0fyaxjkwijdp2ah4iykwq5xabz9kkf8ak76sif4lz64y54b"; + }; + + cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" ]; + + # Fix the install phase which tries to install into the pgsql extension dir, + # and cannot be manually overridden. This is rather fragile but works OK. + patchPhase = '' + for x in CMakeLists.txt sql/CMakeLists.txt; do + substituteInPlace "$x" \ + --replace 'DESTINATION "''${PG_SHAREDIR}/extension"' "DESTINATION \"$out/share/postgresql/extension\"" + done + + for x in src/CMakeLists.txt src/loader/CMakeLists.txt tsl/src/CMakeLists.txt; do + substituteInPlace "$x" \ + --replace 'DESTINATION ''${PG_PKGLIBDIR}' "DESTINATION \"$out/lib\"" + done + ''; + + meta = with stdenv.lib; { + description = "Scales PostgreSQL for time-series data via automatic partitioning across time and space"; + homepage = https://www.timescale.com/; + maintainers = with maintainers; [ volth marsam ]; + platforms = postgresql.meta.platforms; + license = licenses.asl20; + }; +} diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix new file mode 100644 index 000000000000..7be23003b584 --- /dev/null +++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/tsearch_extras.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, pkgconfig, postgresql }: + +stdenv.mkDerivation rec { + name = "tsearch-extras-${version}"; + version = "0.4"; + + src = fetchFromGitHub { + owner = "zulip"; + repo = "tsearch_extras"; + rev = "84e78f00931c4ef261d98197d6b5d94fc141f742"; # no release tag? + sha256 = "18j0saqblg3jhrz38splk173xjwdf32c67ymm18m8n5y94h8d2ba"; + }; + + nativenativeBuildInputs = [ pkgconfig ]; + buildInputs = [ postgresql ]; + + installPhase = '' + install -D tsearch_extras.so -t $out/lib/ + install -D ./{tsearch_extras--1.0.sql,tsearch_extras.control} -t $out/share/postgresql/extension + ''; + + meta = with stdenv.lib; { + description = "Provides a few PostgreSQL functions for a lower-level data full text search"; + homepage = https://github.com/zulip/tsearch_extras/; + license = licenses.postgresql; + maintainers = with maintainers; [ DerTim1 ]; + }; +} |