salmon: 1.10.3 -> 1.11.4

Upgrade and adapt to major revamp of salmon build system
This commit is contained in:
László Kupcsik
2026-04-04 15:24:37 +02:00
parent c7952af58e
commit 0a4874ad9d
3 changed files with 67 additions and 72 deletions
@@ -1,60 +0,0 @@
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
@@ -0,0 +1,21 @@
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
View File
@@ -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;