diff --git a/pkgs/all-packages.nix b/pkgs/all-packages.nix index 915a41e..27d5483 100644 --- a/pkgs/all-packages.nix +++ b/pkgs/all-packages.nix @@ -14,4 +14,6 @@ self: pkgs: with pkgs; { sumo = callPackage ./sumo.nix { }; namd = callPackage ./namd.nix { }; + + sambamba = callPackage ./sambamba { }; } diff --git a/pkgs/sambamba/default.nix b/pkgs/sambamba/default.nix new file mode 100644 index 0000000..dfde254 --- /dev/null +++ b/pkgs/sambamba/default.nix @@ -0,0 +1,72 @@ +{ stdenv, fetchFromGitHub, callPackage +, bash, python, glibc, dmd, which, rdmd, zlib }: + +let + + ldc = callPackage ./ldc.nix { }; + +in + + stdenv.mkDerivation rec { + version = "0.6.6"; + name = "sambamba-${version}"; + + srcs = [ + (fetchFromGitHub { + owner = "lomereiter"; + repo = "sambamba"; + rev = "63cfd5c7b3053e1f7045dec0b5a569f32ef73d06"; + sha256 = "0mla4d8pn3gcdxpwk1dpk7xcxm5dkv1af1z6lq5v2hk8wg7gc58p"; + fetchSubmodules = true; + }) + (fetchFromGitHub { + owner = "dlang"; + repo = "undeaD"; + rev = "7684274512a5610ac8536780f7a1cdd24d7087bc"; + sha256 = "0pi7if7fjngcnyjrv4q73hl4d020fj0dkwfrw66x9m25qmf77178"; + }) + ]; + + + sourceRoot = "sambamba-63cfd5c7b3053e1f7045dec0b5a569f32ef73d06-src"; + + postUnpack = '' + cp -av undeaD-* $sourceRoot + mv $sourceRoot/undeaD-* $sourceRoot/undeaD + ''; + + postPatch = '' + patchShebangs . + sed -i 's/-Bdynamic/-Bdynamic -ldl/' Makefile + ''; + + buildPhase = '' + make sambamba-ldmd2-64 + ''; + + installPhase = '' + mkdir -p $out/bin + mv build/sambamba $out/bin + mv build/sambamba.debug $out/bin + ''; + + buildInputs = [ + bash + python + glibc + dmd + ldc + which + rdmd + zlib + ]; + + meta = with stdenv.lib; { + homepage = https://github.com/lomereiter/sambamba/wiki; + description = "Sambamba is a set of command-line tools for working with SAM/BAM file formats which are used for storing next generation sequencing (NGS) datasets."; + platforms = platforms.all; + license = licenses.gpl2; + }; + + enableParallelBuilding = true; + } diff --git a/pkgs/sambamba/ldc.nix b/pkgs/sambamba/ldc.nix new file mode 100644 index 0000000..aaa123e --- /dev/null +++ b/pkgs/sambamba/ldc.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchFromGitHub +, cmake, dmd, cacert, openssl, libconfig, libedit, zlib, libxml2, curl, llvm }: + + +stdenv.mkDerivation rec { + version = "1.2.0"; + name = "ldc-${version}"; + + src = fetchFromGitHub { + owner = "ldc-developers"; + repo = "ldc"; + rev = "e229b1d3810b4880440810c6ca0c23a762ec49cb"; + sha256 = "0r73vdafmmd6nlxhh1wp3sz9ymni5c721svmbz23l3i0wjlc72ga"; + fetchSubmodules = true; + }; + +# src = fetchgit { +# url = "https://github.com/ldc-developers/ldc.git"; +# rev = "refs/tags/v${version}"; +# sha256 = "12xbzc9b0hhgda8n0125yn4g545qpazhfpv8hjr26pc8qjg9rlq4"; +# fetchSubmodules = true; +# }; + +# src = fetchurl { +# url = "https://github.com/ldc-developers/ldc/archive/v${version}.tar.gz"; +# sha256 = "0plgvy9nybc4p41xx9rzrdlhxphbx2sx0sgj4xgg6ak1vac519sa"; +# }; + +# postPatch = '' +# sed -i 's:bits/mathdef.h:math.h:' dmd2/root/port.c +# sed -i 's/::isnan/std::isnan/' dmd2/root/port.c +# sed -i 's/::isinf/std::isinf/' dmd2/root/port.c +# ''; + + buildInputs = [ + cmake + dmd + cacert + openssl + libconfig + libedit + zlib + libxml2 + curl + llvm + ]; + + enableParallelBuilding = true; + +# cmakeFlags = [ +# "-DCMAKE_BUILD_TYPE=Release" +# "-DCMAKE_CXX_FLAGS_RELEASE=-std=c++11" +# "-DLLVM_ROOT_DIR=${llvm}" +# "-DCMAKE_C_COMPILER=${gcc5}/bin/cc" +# "-DCMAKE_CXX_COMPILER=${gcc5}/bin/g++" +# ]; +}