diff --git a/pkgs/by-name/pg/pgloader/package.nix b/pkgs/by-name/pg/pgloader/package.nix index 1eaca6a9504b..1ce03e2b5bbf 100644 --- a/pkgs/by-name/pg/pgloader/package.nix +++ b/pkgs/by-name/pg/pgloader/package.nix @@ -2,6 +2,8 @@ lib, stdenv, fetchurl, + fetchFromGitHub, + installShellFiles, makeWrapper, sbcl, sqlite, @@ -11,24 +13,39 @@ git, cacert, openssl, + sphinx, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "pgloader"; version = "3.6.9"; - src = fetchurl { - url = "https://github.com/dimitri/pgloader/releases/download/v3.6.9/pgloader-bundle-3.6.9.tgz"; - sha256 = "sha256-pdCcRmoJnrfVnkhbT0WqLrRbCtOEmRgGRsXK+3uByeA="; - }; + srcs = [ + (fetchurl { + url = "https://github.com/dimitri/pgloader/releases/download/v3.6.9/pgloader-bundle-3.6.9.tgz"; + sha256 = "sha256-pdCcRmoJnrfVnkhbT0WqLrRbCtOEmRgGRsXK+3uByeA="; + }) + # needed because bundle does not contain docs / man pages + (fetchFromGitHub { + owner = "dimitri"; + repo = "pgloader"; + rev = "v${finalAttrs.version}"; + hash = "sha256-lqvfWayaJbZ9xx4CgFfY1g0TKwFEd5IWf+RLLXQddw4="; + }) + ]; + + sourceRoot = "."; nativeBuildInputs = [ git makeWrapper + installShellFiles ]; + buildInputs = [ sbcl cacert sqlite + sphinx freetds libzip curl @@ -48,15 +65,23 @@ stdenv.mkDerivation rec { export PATH=$PATH:$out/bin export HOME=$TMPDIR + pushd pgloader-bundle-${finalAttrs.version} make pgloader + popd + + pushd source/docs + make man + popd ''; dontStrip = true; enableParallelBuilding = false; installPhase = '' - install -Dm755 bin/pgloader "$out/bin/pgloader" - wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${LD_LIBRARY_PATH}" + install -Dm755 pgloader-bundle-${finalAttrs.version}/bin/pgloader "$out/bin/pgloader" + wrapProgram $out/bin/pgloader --prefix LD_LIBRARY_PATH : "${finalAttrs.LD_LIBRARY_PATH}" + mkdir -p $out/bin $out/man/man1 + installManPage source/docs/_build/man/*.1 ''; meta = with lib; { @@ -67,4 +92,4 @@ stdenv.mkDerivation rec { license = licenses.postgresql; platforms = platforms.all; }; -} +})