Unverified Commit 99dd1abc authored by Peder Bergebakken Sundt's avatar Peder Bergebakken Sundt Committed by GitHub
Browse files

salmon: 1.10.3 -> 1.11.4 (#506613)

parents 1db927e6 0a4874ad
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -16,6 +16,11 @@ stdenv.mkDerivation (finalAttrs: {
    hash = "sha256-OgXnNGIgWZDIChRdEfmHwvl+oQM03V3a/HnndGLjcHk=";
  };

  postPatch = ''
    substituteInPlace CMakeLists.txt \
      --replace-fail "set(ver_patch 0)" "set(ver_patch 1)"
  '';

  nativeBuildInputs = [ cmake ];

  meta = {
+0 −60
Original line number Diff line number Diff line
diff --git a/scripts/fetchPufferfish.sh b/scripts/fetchPufferfish.sh
index 95e30053..8866767c 100755
--- a/scripts/fetchPufferfish.sh
+++ b/scripts/fetchPufferfish.sh
@@ -11,10 +11,6 @@ CURR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 EXTERNAL_DIR=${CURR_DIR}/../external
 INSTALL_DIR=${CURR_DIR}/../external/install
 
-if [ -d ${EXTERNAL_DIR}/pufferfish ] ; then
-    rm -fr ${EXTERNAL_DIR}/pufferfish
-fi
-
 if [ -d ${INSTALL_DIR}/include/pufferfish ] ; then
     rm -fr ${INSTALL_DIR}/include/pufferfish
 fi
@@ -23,42 +19,10 @@ if [ -d ${INSTALL_DIR}/src/pufferfish ] ; then
     rm -fr ${INSTALL_DIR}/src/pufferfish
 fi
 
-SVER=salmon-v1.10.3
-#SVER=develop
-#SVER=sketch-mode
-
-EXPECTED_SHA256=52b6699de0d33814b73edb3455175568c2330d8014be017dce7b564e54134860 
-
-mkdir -p ${EXTERNAL_DIR}
-curl -k -L https://github.com/COMBINE-lab/pufferfish/archive/${SVER}.zip -o ${EXTERNAL_DIR}/pufferfish.zip
-
-hashcheck=""
-if exists sha256sum; then
-	hashcheck="sha256sum"
-elif exists shasum; then
-	hashcheck="shasum -a256"
-else
-	unset hashcheck
-fi
-
-
-if [ -z "${hashcheck-}" ]; then
-    echo "Couldn't find shasum command; can't verify contents of downloaded pufferfish";
-else
-
-    if [[ $SVER != develop && $SVER != onetbb ]]; then
-        echo "${EXPECTED_SHA256}  ${EXTERNAL_DIR}/pufferfish.zip" | ${hashcheck} -c - || { echo "pufferfish.zip did not match expected SHA1! Exiting."; exit 1; }
-    else
-        echo "not testing sha since pulling from develop"
-    fi
-fi
-
-
-rm -fr ${EXTERNAL_DIR}/pufferfish
-unzip ${EXTERNAL_DIR}/pufferfish.zip -d ${EXTERNAL_DIR}
-mv ${EXTERNAL_DIR}/pufferfish-${SVER} ${EXTERNAL_DIR}/pufferfish
 
 mkdir -p ${INSTALL_DIR}/include/pufferfish
+# This is needed later when pufferfish is compiled for Salmon
+cp -r ${pufferFishSrc} ${EXTERNAL_DIR}/pufferfish
 
 cp ${EXTERNAL_DIR}/pufferfish/include/ProgOpts.hpp ${INSTALL_DIR}/include/pufferfish
 cp ${EXTERNAL_DIR}/pufferfish/include/BooPHF.hpp ${INSTALL_DIR}/include/pufferfish
+21 −0
Original line number Diff line number Diff line
diff --git a/cmake/SalmonDependencies.cmake b/cmake/SalmonDependencies.cmake
index b6bebe0..a67571a 100644
--- a/cmake/SalmonDependencies.cmake
+++ b/cmake/SalmonDependencies.cmake
@@ -86,6 +86,8 @@ if(ZLIBNG_FOUND)
   set(SALMON_ZLIB_LIBRARIES ZLIBNG::ZLIBNG)
   set(ZLIB_INCLUDE_DIR ${ZLIBNG_INCLUDE_DIR})
   set(ZLIB_LIBRARY ZLIBNG::ZLIBNG)
+  add_library(zlibstatic ALIAS ${ZLIB_LIBRARY})
+  message(STATUS "Created zlibstatic alias for pufferfish embedded mode")
 elseif(SALMON_FETCH_MISSING_DEPS)
   message(STATUS "zlib-ng not found; fetching pinned zlib-ng release in compatibility mode")
   set(ZLIB_COMPAT ON CACHE BOOL "" FORCE)
@@ -421,6 +423,7 @@ else()
   set(SALMON_CURL_LIBRARIES "" CACHE INTERNAL "" FORCE)
 endif()
 if(SALMON_USE_SYSTEM_DEPS)
+  find_package(OpenSSL REQUIRED)
   find_package(HTSlib QUIET)
 endif()
 if(HTSlib_FOUND)
+46 −12
Original line number Diff line number Diff line
@@ -3,45 +3,62 @@
  stdenv,
  boost,
  bzip2,
  catch2_3,
  cereal,
  cmake,
  curl,
  fetchFromGitHub,
  htslib,
  icu,
  jemalloc,
  libdeflate,
  libgff,
  libiconv,
  libstaden-read,
  pkg-config,
  mimalloc,
  onetbb,
  openssl,
  pkg-config,
  python3,
  xz,
  zlib,
  zlib-ng,
}:

stdenv.mkDerivation (finalAttrs: {
  pname = "salmon";
  version = "1.10.3";
  version = "1.11.4";

  # SALMON_PUFFERFISH_GIT_TAG defined in cmake/SalmonDependencies.cmake
  pufferFishSrc = fetchFromGitHub {
    owner = "COMBINE-lab";
    repo = "pufferfish";
    rev = "salmon-v${finalAttrs.version}";
    hash = "sha256-g4pfNuc620WQ7UDv8PQHVbbTVt78aGVqcHHMszmBIkA=";
    fetchSubmodules = true;
    rev = "ace68c1c022816ba8c50a1a07c5d08f2abd597d6";
    hash = "sha256-Zwl45sUYSmHOqsYLZPscigjgd1V3Waza0jRvhvNh7jU=";
  };

  # SALMON_FQFEEDER_GIT_TAG defined in cmake/SalmonDependencies.cmake
  FQFeederSrc = fetchFromGitHub {
    owner = "rob-p";
    repo = "FQFeeder";
    rev = "f5b08d1002351c192b69048ac9f6cf4c7c116265";
    hash = "sha256-csRKUdNlEKKHNIvKRRTt79+27LBmnsJpswzBnWtA/XU=";
  };

  src = fetchFromGitHub {
    owner = "COMBINE-lab";
    repo = "salmon";
    rev = "v${finalAttrs.version}";
    hash = "sha256-HGcDqu0XzgrU3erHavigXCoj3VKk82ixMLY10Kk9MW4=";
    hash = "sha256-BjWXNQtycSwCTe40kujN/YzCNhGjkz2ULGOYtI01yos=";
  };

  patches = [
    # Use pufferfish source fetched by nix
    ./fetch-pufferfish.patch
  ];
  patches = [ ./fix_pufferfish.patch ];

  postPatch = "patchShebangs .";
  postPatch = ''
    patchShebangs .

    substituteInPlace CMakeLists.txt --replace-fail "CMP0167 OLD" "CMP0167 NEW"
  '';

  buildInputs = [
    (boost.override {
@@ -49,21 +66,38 @@ stdenv.mkDerivation (finalAttrs: {
      enabledStatic = true;
    })
    bzip2
    catch2_3
    cereal
    curl
    htslib
    icu
    jemalloc
    libdeflate
    libgff
    libstaden-read
    mimalloc
    onetbb
    openssl
    xz
    zlib
    zlib-ng
  ]
  ++ lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];

  nativeBuildInputs = [
    cmake
    pkg-config
    python3
  ];

  cmakeFlags = [
    "-DSALMON_PUFFERFISH_SOURCE_DIR=${finalAttrs.pufferFishSrc}"
    "-DSALMON_FQFEEDER_SOURCE_DIR=${finalAttrs.FQFeederSrc}"
  ];

  # These are needed to please htslib
  env.NIX_LDFLAGS = toString [
    "-lcrypto"
    "-ldeflate"
  ];

  strictDeps = true;