summaryrefslogtreecommitdiff
path: root/biology/salmon
diff options
context:
space:
mode:
Diffstat (limited to 'biology/salmon')
-rw-r--r--biology/salmon/Makefile26
-rw-r--r--biology/salmon/distinfo18
-rw-r--r--biology/salmon/files/patch-CMakeLists.txt80
-rw-r--r--biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_candidateoccurence.h11
-rw-r--r--biology/salmon/files/patch-external_pufferfish_src_PuffAligner.cpp14
-rw-r--r--biology/salmon/files/patch-scripts_fetchPufferfish.sh27
6 files changed, 124 insertions, 52 deletions
diff --git a/biology/salmon/Makefile b/biology/salmon/Makefile
index 74631d470a17..8332ba416d74 100644
--- a/biology/salmon/Makefile
+++ b/biology/salmon/Makefile
@@ -1,7 +1,6 @@
PORTNAME= salmon
DISTVERSIONPREFIX= v
-DISTVERSION= 1.10.2
-PORTREVISION= 8
+DISTVERSION= 1.10.3
CATEGORIES= biology
MAINTAINER= jwb@FreeBSD.org
@@ -20,18 +19,23 @@ BUILD_DEPENDS= bash:shells/bash \
libgff==2.0.0:biology/libgff \
libtool:devel/libtool \
autoreconf:devel/autoconf \
- aclocal:devel/automake
-LIB_DEPENDS= libboost_system.so:devel/boost-libs \
- libtbb.so:devel/onetbb \
- libcurl.so:ftp/curl
+ aclocal:devel/automake \
+ eigen>0:math/eigen3 \
+ libdivide>0:math/libdivide \
+ curl>0:ftp/curl
+LIB_DEPENDS= libtbb.so:devel/onetbb
USES= cmake:noninja gmake localbase shebangfix
USE_GITHUB= yes
+# Can't unbundle io_lib unless we also unbundle htscodecs from io_lib,
+# which is a nightmare: explicitly integrated into configure files and
+# installs htscodecs files, conflicting with separate htscodecs port.
GH_ACCOUNT= COMBINE-lab
-GH_TUPLE+= COMBINE-lab:pufferfish:salmon-v1.10.2:pf/external/pufferfish
-GH_TUPLE+= jkbonfield:io_lib:io_lib-1-14-15:sio/external/staden-io_lib
-GH_TUPLE+= samtools:htscodecs:5aecc6e:htscodec/external/staden-io_lib/htscodecs
+GH_TUPLE+= COMBINE-lab:pufferfish:salmon-v${DISTVERSION}:pf/external/pufferfish
+GH_TUPLE+= jkbonfield:io_lib:io_lib-1-15-1:sio/external/staden-io_lib
+# Update commit hash from io_lib release branch
+GH_TUPLE+= samtools:htscodecs:de42211:htscodec/external/staden-io_lib/htscodecs
SHEBANG_FILES= scripts/*
PLIST_FILES= bin/salmon
@@ -40,9 +44,13 @@ CMAKE_ARGS+= -DHAVE_FAST_MALLOC:BOOL=on \
-DFETCHED_PUFFERFISH:BOOL=on \
-DFETCHED_LIBGFF:BOOL=on \
-DFETCH_STADEN:BOOL=true
+WITH_DEBUG= yes
+CXXFLAGS+= -I${LOCALBASE}/include/eigen3
LDFLAGS+= -lpthread
pre-configure:
+ ${RM} -rf ${WRKSRC}/include/eigen3 \
+ ${WRKSRC}/external/pufferfish/include/libdivide
(cd ${WRKSRC}/external/staden-io_lib && ./bootstrap)
do-install:
diff --git a/biology/salmon/distinfo b/biology/salmon/distinfo
index 42eb0d9ee404..ea5ed9dddde3 100644
--- a/biology/salmon/distinfo
+++ b/biology/salmon/distinfo
@@ -1,9 +1,9 @@
-TIMESTAMP = 1689958260
-SHA256 (COMBINE-lab-salmon-v1.10.2_GH0.tar.gz) = 976989182160fef3afb4429ee8b85d8dd39ed6ca212bb14d6a65cde0e985fb98
-SIZE (COMBINE-lab-salmon-v1.10.2_GH0.tar.gz) = 7193261
-SHA256 (COMBINE-lab-pufferfish-salmon-v1.10.2_GH0.tar.gz) = b90ce8079c375136d12e37bc23e451ae34a49d49c54f6cdd2050ba8add758ab4
-SIZE (COMBINE-lab-pufferfish-salmon-v1.10.2_GH0.tar.gz) = 3368053
-SHA256 (jkbonfield-io_lib-io_lib-1-14-15_GH0.tar.gz) = 4444c78846e49a493ff09d56d55ebe61140bb0a76ec5fa1c27eff13ec9dabd8b
-SIZE (jkbonfield-io_lib-io_lib-1-14-15_GH0.tar.gz) = 3382074
-SHA256 (samtools-htscodecs-5aecc6e_GH0.tar.gz) = 3abb6a8516761bf0db5149c3d6c077e2d540470180245c2afb1f4400158b1f54
-SIZE (samtools-htscodecs-5aecc6e_GH0.tar.gz) = 3191442
+TIMESTAMP = 1753565795
+SHA256 (COMBINE-lab-salmon-v1.10.3_GH0.tar.gz) = a053fba63598efc4ade3684aa2c8e8e2294186927d4fcdf1041c36edc2aa0871
+SIZE (COMBINE-lab-salmon-v1.10.3_GH0.tar.gz) = 7193092
+SHA256 (COMBINE-lab-pufferfish-salmon-v1.10.3_GH0.tar.gz) = 5d345ba30f22ff4448f4bf2920d2246a11cc38b203e12828c07b2612e41d2951
+SIZE (COMBINE-lab-pufferfish-salmon-v1.10.3_GH0.tar.gz) = 3368105
+SHA256 (jkbonfield-io_lib-io_lib-1-15-1_GH0.tar.gz) = 5fef32bb10991b388b4a92292e58d6ef8e7eda812ab2d6a10daaca9a757e6302
+SIZE (jkbonfield-io_lib-io_lib-1-15-1_GH0.tar.gz) = 3381908
+SHA256 (samtools-htscodecs-de42211_GH0.tar.gz) = 65e632bf00e2e456a3040e8a4748dbd33161595029ba49dec89d5301ebdd4de6
+SIZE (samtools-htscodecs-de42211_GH0.tar.gz) = 3200933
diff --git a/biology/salmon/files/patch-CMakeLists.txt b/biology/salmon/files/patch-CMakeLists.txt
index 5a6bd2de2f02..36038f452843 100644
--- a/biology/salmon/files/patch-CMakeLists.txt
+++ b/biology/salmon/files/patch-CMakeLists.txt
@@ -1,11 +1,11 @@
---- CMakeLists.txt.orig 2023-07-21 14:03:31 UTC
+--- CMakeLists.txt.orig 2025-07-26 11:52:41 UTC
+++ CMakeLists.txt
@@ -310,14 +310,16 @@ endif()
# Grab pufferfish source --- DURING CONFIGURE TIME!
#
####
-if(NOT FETCHED_PUFFERFISH)
-+
++# if(NOT FETCHED_PUFFERFISH)
+# Fetched by GH_TUPLE in FreeBSD port
+# if(NOT FETCHED_PUFFERFISH)
exec_program(${CMAKE_CURRENT_SOURCE_DIR}/scripts/fetchPufferfish.sh RETURN_VALUE FETCH_PF_SCRIPT_RET)
@@ -19,11 +19,12 @@
##
# Super-secret override
-@@ -364,7 +366,10 @@ if(NOT Iconv_IS_BUILT_IN)
+@@ -364,7 +366,11 @@ endif()
set(ICONV_LIB Iconv::Iconv)
endif()
-find_package(LibLZMA)
++# find_package(LibLZMA)
+# lzma is in FreeBSD base
+# find_package(LibLZMA)
+set(LIBLZMA_FOUND TRUE)
@@ -31,29 +32,35 @@
if(NOT LIBLZMA_FOUND)
message("Will attempt to fetch and build liblzma")
message("=======================================")
-@@ -381,8 +386,8 @@ externalproject_add(liblzma
+@@ -381,8 +387,11 @@ externalproject_add(liblzma
INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/external/xz-5.2.2/configure --prefix=<INSTALL_DIR> CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS=${EXTRA_CMAKE_INCLUDE_FLAGS} CPPFLAGS=${EXTRA_CMAKE_INCLUDE_FLAGS} LDFLAGS=${EXTRA_CMAKE_LIBRARY_FLAGS}
- BUILD_COMMAND make ${QUIET_MAKE}
- INSTALL_COMMAND make ${QUIET_MAKE} install
++# BUILD_COMMAND make ${QUIET_MAKE}
++# INSTALL_COMMAND make ${QUIET_MAKE} install
++# FreeBSD make is bsdmake
+ BUILD_COMMAND gmake ${QUIET_MAKE}
+ INSTALL_COMMAND gmake ${QUIET_MAKE} install
)
# Tell cmake that the external project generated a library so we can
-@@ -411,8 +416,8 @@ externalproject_add(libbz2
+@@ -411,8 +420,11 @@ externalproject_add(libbz2
INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
BUILD_IN_SOURCE TRUE
CONFIGURE_COMMAND ""
- BUILD_COMMAND make ${QUIET_MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
- INSTALL_COMMAND make ${QUIET_MAKE} install PREFIX=<INSTALL_DIR>
++# BUILD_COMMAND make ${QUIET_MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
++# INSTALL_COMMAND make ${QUIET_MAKE} install PREFIX=<INSTALL_DIR>
++# FreeBSD make is bsdmake
+ BUILD_COMMAND gmake ${QUIET_MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
+ INSTALL_COMMAND gmake ${QUIET_MAKE} install PREFIX=<INSTALL_DIR>
)
# Tell cmake that the external project generated a library so we can
# add dependencies here instead of later
-@@ -609,9 +614,11 @@ if (NOT CEREAL_FOUND)
+@@ -577,9 +589,11 @@ endif()
endif()
## Try and find TBB first
@@ -68,53 +75,78 @@
if (${TBB_FOUND})
if (${TBB_VERSION} VERSION_GREATER_EQUAL 2021.4)
-@@ -791,22 +798,16 @@ endif()
+@@ -761,25 +775,28 @@ if (NOT LIBSTADENIO_FOUND)
if (NOT LIBSTADENIO_FOUND)
message("Build system will compile Staden IOLib")
message("==================================================================")
+ # stadenio is downloaded by GH_TUPLE in FreeBSD port
externalproject_add(libstadenio
- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
-- DOWNLOAD_COMMAND curl -k -L https://github.com/jkbonfield/io_lib/releases/download/io_lib-1-14-15/io_lib-1.14.15.tar.gz -o staden-io_lib-v1.14.15.tar.gz &&
-- ${SHASUM} 20814c4365e1e2fe6630fb11d0df370dec4c5688af3871de7f1cb0129671401e staden-io_lib-v1.14.15.tar.gz &&
-- mkdir -p staden-io_lib-1.14.15 &&
-- tar -xzf staden-io_lib-v1.14.15.tar.gz --strip-components=1 -C staden-io_lib-1.14.15 &&
+- DOWNLOAD_COMMAND curl -k -L https://github.com/jkbonfield/io_lib/releases/download/io_lib-1-15-0/io_lib-1.15.0.tar.gz -o staden-io_lib-v1.15.0.tar.gz &&
+- ${SHASUM} ad343dac7c77086db1b54585c5887b26eda6430d1639d111dd3304c3b749494f staden-io_lib-v1.15.0.tar.gz &&
+- mkdir -p staden-io_lib-1.15.0 &&
+- tar -xzf staden-io_lib-v1.15.0.tar.gz --strip-components=1 -C staden-io_lib-1.15.0 &&
- rm -fr staden-io_lib &&
-- mv -f staden-io_lib-1.14.15 staden-io_lib
+- mv -f staden-io_lib-1.15.0 staden-io_lib &&
+- curl -k -L https://github.com/samtools/htscodecs/releases/download/v1.6.0/htscodecs-1.6.0.tar.gz -o htscodecs-1.6.0.tar.gz &&
+- mkdir -p htscodecs-1.6.0 &&
+- tar -xzf htscodecs-1.6.0.tar.gz --strip-components=1 -C htscodecs-1.6.0 &&
+- rm -fr staden-io_lib/htscodecs &&
+- mv -f htscodecs-1.6.0 staden-io_lib/htscodecs
++ # DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++ # DOWNLOAD_COMMAND curl -k -L https://github.com/jkbonfield/io_lib/releases/download/io_lib-1-15-0/io_lib-1.15.0.tar.gz -o staden-io_lib-v1.15.0.tar.gz &&
++ # ${SHASUM} ad343dac7c77086db1b54585c5887b26eda6430d1639d111dd3304c3b749494f staden-io_lib-v1.15.0.tar.gz &&
++ # mkdir -p staden-io_lib-1.15.0 &&
++ # tar -xzf staden-io_lib-v1.15.0.tar.gz --strip-components=1 -C staden-io_lib-1.15.0 &&
++ # rm -fr staden-io_lib &&
++ # mv -f staden-io_lib-1.15.0 staden-io_lib &&
++ # curl -k -L https://github.com/samtools/htscodecs/releases/download/v1.6.0/htscodecs-1.6.0.tar.gz -o htscodecs-1.6.0.tar.gz &&
++ # mkdir -p htscodecs-1.6.0 &&
++ # tar -xzf htscodecs-1.6.0.tar.gz --strip-components=1 -C htscodecs-1.6.0 &&
++ # rm -fr staden-io_lib/htscodecs &&
++ # mv -f htscodecs-1.6.0 staden-io_lib/htscodecs
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/staden-io_lib
INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
CONFIGURE_COMMAND ./configure --enable-shared=no --without-libcurl --prefix=<INSTALL_DIR> LDFLAGS=${LIBSTADEN_LDFLAGS} CFLAGS=${LIBSTADEN_CFLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
- BUILD_COMMAND make ${QUIET_MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS+=${STADEN_INC} CFLAGS+=${STADEN_LIB} LDFLAGS+=${EXTRA_CMAKE_LIBRARY_FLAGS} CFLAGS+=${EXTRA_CMAKE_INCLUDE_FLAGS} CFLAGS+=${LZFLAG} CFLAGS+=${SCHAR_FLAG}
++ # FreeBSD make is bsdmake
+ BUILD_COMMAND gmake ${QUIET_MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CFLAGS+=${STADEN_INC} CFLAGS+=${STADEN_LIB} LDFLAGS+=${EXTRA_CMAKE_LIBRARY_FLAGS} CFLAGS+=${EXTRA_CMAKE_INCLUDE_FLAGS} CFLAGS+=${LZFLAG} CFLAGS+=${SCHAR_FLAG}
-
-
BUILD_IN_SOURCE 1
- INSTALL_COMMAND make install
++ # FreeBSD make is bsdmake
+ INSTALL_COMMAND gmake install
)
if(NOT LIBLZMA_FOUND)
ExternalProject_Add_StepDependencies(libstadenio build liblzma)
-@@ -820,23 +821,9 @@ if (ASAN_BUILD)
+@@ -793,23 +810,26 @@ else()
set(FAST_MALLOC_LIB "")
set(HAVE_FAST_MALLOC TRUE)
else()
- set(FAST_MALLOC_LIB "")
- set(HAVE_FAST_MALLOC FALSE)
--
-- # See if we have Jemalloc
++ # set(FAST_MALLOC_LIB "")
++ # set(HAVE_FAST_MALLOC FALSE)
+
+ # See if we have Jemalloc
- find_package(Jemalloc)
- if(Jemalloc_FOUND)
-- ##
-- # Don't be so stringent about the version yet
-- ##
-- #if (NOT (${JEMALLOC_VERSION} VERSION_LESS 5.2.1))
++ # find_package(Jemalloc)
++ # if(Jemalloc_FOUND)
+ ##
+ # Don't be so stringent about the version yet
+ ##
+ #if (NOT (${JEMALLOC_VERSION} VERSION_LESS 5.2.1))
- message("Found Jemalloc library --- using this memory allocator")
- set(FAST_MALLOC_LIB ${JEMALLOC_LIBRARIES})
- set(HAVE_FAST_MALLOC TRUE)
-- #else()
-- # message("Fond Jemalloc version ${JEMALLOC_VERSION}, but require >= 5.2.1. Downloading newer version")
-- #endif()
++ # message("Found Jemalloc library --- using this memory allocator")
++ # set(FAST_MALLOC_LIB ${JEMALLOC_LIBRARIES})
++ # set(HAVE_FAST_MALLOC TRUE)
+ #else()
+ # message("Fond Jemalloc version ${JEMALLOC_VERSION}, but require >= 5.2.1. Downloading newer version")
+ #endif()
- endif()
++ # endif()
+ # jemalloc is default on FreeBSD
+ set(FAST_MALLOC_LIB "/usr/lib/libc.so")
+ set(HAVE_FAST_MALLOC TRUE)
diff --git a/biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_candidateoccurence.h b/biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_candidateoccurence.h
new file mode 100644
index 000000000000..8686f1695177
--- /dev/null
+++ b/biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_candidateoccurence.h
@@ -0,0 +1,11 @@
+--- external/pufferfish/external/twopaco/graphconstructor/candidateoccurence.h.orig 2025-07-26 13:01:27 UTC
++++ external/pufferfish/external/twopaco/graphconstructor/candidateoccurence.h
+@@ -58,7 +58,7 @@ namespace TwoPaCo
+ const CandidateOccurence & operator = (const CandidateOccurence & toCopy)
+ {
+ body_ = toCopy.body_;
+- count_ = toCopy.count_;
++ count_.store(toCopy.count_.load(std::memory_order_relaxed));
+ }
+
+ void Inc()
diff --git a/biology/salmon/files/patch-external_pufferfish_src_PuffAligner.cpp b/biology/salmon/files/patch-external_pufferfish_src_PuffAligner.cpp
new file mode 100644
index 000000000000..682951604abe
--- /dev/null
+++ b/biology/salmon/files/patch-external_pufferfish_src_PuffAligner.cpp
@@ -0,0 +1,14 @@
+--- external/pufferfish/src/PuffAligner.cpp.orig 2023-06-26 19:34:50 UTC
++++ external/pufferfish/src/PuffAligner.cpp
+@@ -1,7 +1,10 @@
+ #include "nonstd/string_view.hpp"
+ #include "PuffAligner.hpp"
+ #include "Util.hpp"
+-#include "libdivide/libdivide.h"
++// Bundled libdivide causes build failures with clang19
++// Use FreeBSD libdivde port instead
++// #include "libdivide/libdivide.h"
++#include <libdivide.h>
+
+ std::string extractReadSeq(const std::string& readSeq, uint32_t rstart, uint32_t rend, bool isFw) {
+ std::string subseq = readSeq.substr(rstart, rend - rstart);
diff --git a/biology/salmon/files/patch-scripts_fetchPufferfish.sh b/biology/salmon/files/patch-scripts_fetchPufferfish.sh
index 566493a5e7ee..a1885fd1ff61 100644
--- a/biology/salmon/files/patch-scripts_fetchPufferfish.sh
+++ b/biology/salmon/files/patch-scripts_fetchPufferfish.sh
@@ -1,15 +1,13 @@
---- scripts/fetchPufferfish.sh.orig 2023-07-21 13:59:29 UTC
+--- scripts/fetchPufferfish.sh.orig 2025-07-26 17:38:39 UTC
+++ scripts/fetchPufferfish.sh
-@@ -11,52 +11,12 @@ CURR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && p
+@@ -11,53 +11,6 @@ INSTALL_DIR=${CURR_DIR}/../external/install
EXTERNAL_DIR=${CURR_DIR}/../external
INSTALL_DIR=${CURR_DIR}/../external/install
-if [ -d ${EXTERNAL_DIR}/pufferfish ] ; then
- rm -fr ${EXTERNAL_DIR}/pufferfish
-fi
-+# Pufferfish is downloaded using GH_TUPLE in the FreeBSD port, so remove
-+# code here that downloads and unpacks
-
+-
-if [ -d ${INSTALL_DIR}/include/pufferfish ] ; then
- rm -fr ${INSTALL_DIR}/include/pufferfish
-fi
@@ -18,11 +16,11 @@
- rm -fr ${INSTALL_DIR}/src/pufferfish
-fi
-
- SVER=salmon-v1.10.2
- #SVER=develop
- #SVER=sketch-mode
+-SVER=salmon-v1.10.3
+-#SVER=develop
+-#SVER=sketch-mode
-
--EXPECTED_SHA256=f225b74833f71dcf767a565345224357fb091f90ce79717abc836814d9ccd101
+-EXPECTED_SHA256=52b6699de0d33814b73edb3455175568c2330d8014be017dce7b564e54134860
-
-mkdir -p ${EXTERNAL_DIR}
-curl -k -L https://github.com/COMBINE-lab/pufferfish/archive/${SVER}.zip -o ${EXTERNAL_DIR}/pufferfish.zip
@@ -52,6 +50,15 @@
-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
+ cp ${EXTERNAL_DIR}/pufferfish/include/ProgOpts.hpp ${INSTALL_DIR}/include/pufferfish
+@@ -90,7 +43,6 @@ cp ${EXTERNAL_DIR}/pufferfish/include/BinWriter.hpp ${
+ cp ${EXTERNAL_DIR}/pufferfish/include/BulkChunk.hpp ${INSTALL_DIR}/include/pufferfish
+ cp ${EXTERNAL_DIR}/pufferfish/include/BinWriter.hpp ${INSTALL_DIR}/include/pufferfish
+
+-cp -r ${EXTERNAL_DIR}/pufferfish/include/libdivide ${INSTALL_DIR}/include/pufferfish
+ cp -r ${EXTERNAL_DIR}/pufferfish/include/ksw2pp ${INSTALL_DIR}/include/pufferfish
+ # this is now automatically tracked and inherited via twopaco (on which libpuffer depends)
+ # cp -r ${EXTERNAL_DIR}/pufferfish/include/compact_vector ${INSTALL_DIR}/include/pufferfish