diff --git a/pkgs/servers/sql/postgresql/ext/pipelinedb.nix b/pkgs/servers/sql/postgresql/ext/pipelinedb.nix new file mode 100644 index 000000000000..de3cde8120d6 --- /dev/null +++ b/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/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/pkgs/servers/sql/postgresql/packages.nix b/pkgs/servers/sql/postgresql/packages.nix index e5f29dc7d57c..60faa2db2407 100644 --- a/pkgs/servers/sql/postgresql/packages.nix +++ b/pkgs/servers/sql/postgresql/packages.nix @@ -31,6 +31,8 @@ self: super: { pgtap = super.callPackage ./ext/pgtap.nix { }; + pipelinedb = super.callPackage ./ext/pipelinedb.nix { }; + timescaledb = super.callPackage ./ext/timescaledb.nix { }; tsearch_extras = super.callPackage ./ext/tsearch_extras.nix { };