diff --git a/pkgs/applications/science/biology/kssd/default.nix b/pkgs/applications/science/biology/kssd/default.nix index 34d997252f5b..8f60b8b991ed 100644 --- a/pkgs/applications/science/biology/kssd/default.nix +++ b/pkgs/applications/science/biology/kssd/default.nix @@ -1,38 +1,57 @@ -{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, automake, autoconf, libtool }: +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, zlib +, kssd +, runCommand +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "kssd"; - version = "1.1"; + version = "2.21"; src = fetchFromGitHub { owner = "yhg926"; repo = "public_kssd"; - rev = "v${version}"; - sha256 = "sha256-8jzYqo9LXF66pQ1EIusm+gba2VbTYpJz2K3NVlA3QxY="; + rev = "v${finalAttrs.version}"; + hash = "sha256-D/s1jL2oKE0rSdRMVljskYFsw5UPOv1L95Of+K+e17w="; }; patches = [ - # Pull upstream patch for -fno-common toolchain support: - # https://github.com/yhg926/public_kssd/pull/9 + # https://github.com/yhg926/public_kssd/pull/11 (fetchpatch { - name = "fno-common.patch"; - url = "https://github.com/yhg926/public_kssd/commit/cdd1e8aae256146f5913a3b4c723b638d53bdf27.patch"; - sha256 = "sha256-HhaTRqPfKR+ouh0PwEH6u22pbuqbX2OypRzw8BXm0W4="; + name = "allocate-enough-memory.patch"; + url = "https://github.com/yhg926/public_kssd/commit/b1e66bbcc04687bc3201301cd742a0b26a87cb5d.patch"; + hash = "sha256-yFyJetpsGKeu+H6Oxrmn5ea4ESVtblb3YJDja4JEAEM="; }) ]; - nativeBuildInputs = [ autoconf automake ]; - buildInputs = [ zlib libtool ]; + buildInputs = [ zlib ]; installPhase = '' - install -vD kssd $out/bin/kssd + runHook preInstall + + install -vD kssd $out/bin/kssd + + runHook postInstall ''; + passthru.tests = { + simple = runCommand "${finalAttrs.pname}-test" { } '' + mkdir $out + ${lib.getExe kssd} dist -L ${kssd.src}/shuf_file/L3K10.shuf -r ${kssd.src}/test_fna/seqs1 -o $out/reference + ${lib.getExe kssd} dist -L ${kssd.src}/shuf_file/L3K10.shuf -o $out/query ${kssd.src}/test_fna/seqs2 + ${lib.getExe kssd} dist -r $out/reference -o $out/distout $out/query + ''; + }; + meta = with lib; { description = "K-mer substring space decomposition"; license = licenses.asl20; homepage = "https://github.com/yhg926/public_kssd"; maintainers = with maintainers; [ unode ]; - platforms = [ "x86_64-linux" ]; + platforms = platforms.linux; + mainProgram = "kssd"; }; -} +})