{ 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.0.0"; nativeBuildInputs = [ cmake ]; buildInputs = [ postgresql openssl ]; src = fetchFromGitHub { owner = "timescale"; repo = "timescaledb"; rev = "refs/tags/${version}"; sha256 = "1359jc0dw8q3f0iipqfadzs8lvri9qa5w59ziz00x1d09ppw2q40"; }; # 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/extension\"" done for x in src/CMakeLists.txt src/loader/CMakeLists.txt; do substituteInPlace "$x" \ --replace 'DESTINATION ''${PG_PKGLIBDIR}' "DESTINATION \"$out/lib\"" done ''; postInstall = '' # work around an annoying bug, by creating $out/bin, so buildEnv doesn't freak out later # see https://github.com/NixOS/nixpkgs/issues/22653 mkdir -p $out/bin ''; 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 ]; platforms = platforms.linux; license = licenses.asl20; }; }