From nobody Fri Jul 21 23:07:06 2023 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4R74vG2VKbz4pS2X; Fri, 21 Jul 2023 23:07:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4R74vG26T3z3DQw; Fri, 21 Jul 2023 23:07:06 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1689980826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pja+rfu06CMSefK5PuuWvcqzTEn00TPCuU9/tkHKGQs=; b=d+3EjiAmp5kyOXCj8W4/JT0ezwBkBlXcUPyb4BomLdzJ0LBvsi4T6FM5gslJMpPzMQZdo+ Hrp6Swb0paZbYSXTmGuU8e0FlMaohTMlGwpBm4SmAifLrM2CoN7rTNkbAzBfb1Xi7dJ+sK 78maX5O/F/RJlc08y6xv2Fatttq5gWBhNUG+OnDvxMwYOfH7B9lX6B12Ne9WjOFqn4s1RO Sn0NaiBnCmiBD2+P+6eCEvBY0K1y/4zXC4AVTpvvRARrDgYNWIJFrbYVb2GJfm64q0eIQh VwV3YinW4apb8Aa6wScb4JeWJYcxsq5ElCz7NFIAwbw7St5zUc3iAiTNoIfZHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1689980826; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=pja+rfu06CMSefK5PuuWvcqzTEn00TPCuU9/tkHKGQs=; b=Zp3Gpm+YFALzsaO2oXva69Dp8pDaoqshWx1OuCdNQkZ63nwpTm/w81yAQyC4Be4Ua+GILx x0GNuJ/d11CWWjmGzz6NktNvEYZG6g5MRRWGt7CXvUvobK1M+UepEXiiKYeiFsSTE++A4I jjNkfAoRmHqDsbDqpNSPf4ahlkPxnck84p8pLzyB7pYCp1cJJTCH7TWEot9qc07vHW3Bnl A5IjLxRVG8YtVzwSSaIelmzFwON3fBF0BeEMZTDpsDrD1wNeFU99lv2p2NBRNfIS9V1a5b bmrtB2OvLceUc7srND7O6AZ3dA0buhlM9UGiFfkYtI4zvF8c6AmzIGvrH96ebA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1689980826; a=rsa-sha256; cv=none; b=Ut41Vhkb2IKyWBd3w/q1UkH+q8WJdi5M3Fpm2QXgNn7Da2rvFxcKL04PpXDlejJna0Dt6A QTupMk4JaI2op0jI+zaAS7CEpxsjxDmALgXn3a5RPQx0zxgT6qMzukqPgcOKXNhau33GHF GpJd+e77OfuMT8DubN5D0wQoCU9QPNIPs6VDMlJnrtFMcLLRtUp20chqZbkvvEaLYS3D7V NTbxm5ObKybjaTVMvEGagIy+5E8E6F+cgNGc9aQu1xOl5CA1GAegtd3Ce/qnSMsXKrumRZ d9rxN3lvFk/P6Migs/1K2xTaKPAuAELsxDijHX1rovhYYkF32n0drgoeey7xGQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4R74vG1B3HzWSr; Fri, 21 Jul 2023 23:07:06 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 36LN766O055477; Fri, 21 Jul 2023 23:07:06 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 36LN76mK055476; Fri, 21 Jul 2023 23:07:06 GMT (envelope-from git) Date: Fri, 21 Jul 2023 23:07:06 GMT Message-Id: <202307212307.36LN76mK055476@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: "Jason W. Bacon" Subject: git: 64a6421c248a - main - biology/salmon: Transcript-level quantification of RNA-seq List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jwb X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 64a6421c248a048b13caab73de93ad10dd56e9cb Auto-Submitted: auto-generated The branch main has been updated by jwb: URL: https://cgit.FreeBSD.org/ports/commit/?id=64a6421c248a048b13caab73de93ad10dd56e9cb commit 64a6421c248a048b13caab73de93ad10dd56e9cb Author: Jason W. Bacon AuthorDate: 2023-07-21 23:06:36 +0000 Commit: Jason W. Bacon CommitDate: 2023-07-21 23:06:36 +0000 biology/salmon: Transcript-level quantification of RNA-seq Salmon is a wicked-fast program to produce a highly-accurate, transcript-level quantification estimates from RNA-seq data. Salmon achieves is accuracy and speed via a number of different innovations, including the use of quasi-mapping (accurate but fast-to-compute proxies for traditional read alignments), and massively-parallel stochastic collapsed variational inference. The result is a versatile tool that fits nicely into many differnt pipelines. --- biology/Makefile | 1 + biology/salmon/Makefile | 48 ++++++++ biology/salmon/distinfo | 9 ++ biology/salmon/files/patch-CMakeLists.txt | 123 +++++++++++++++++++++ .../files/patch-external_pufferfish_CMakeLists.txt | 23 ++++ ...paco_graphconstructor_assemblyedgeconstructor.h | 22 ++++ ...-external_pufferfish_include_ghc_filesystem.hpp | 11 ++ ...nal_pufferfish_include_zstr_strict__fstream.hpp | 11 ++ .../salmon/files/patch-include_strict__fstream.hpp | 11 ++ .../salmon/files/patch-scripts_fetchPufferfish.sh | 57 ++++++++++ biology/salmon/files/patch-src_CMakeLists.txt | 18 +++ biology/salmon/pkg-descr | 7 ++ 12 files changed, 341 insertions(+) diff --git a/biology/Makefile b/biology/Makefile index 4f885c16edba..ecb49b10cc6c 100644 --- a/biology/Makefile +++ b/biology/Makefile @@ -204,6 +204,7 @@ SUBDIR += rubygem-bio-executables SUBDIR += rubygem-bio-old-biofetch-emulator SUBDIR += rubygem-bio-shell + SUBDIR += salmon SUBDIR += sam2pairwise SUBDIR += samtools SUBDIR += scrm diff --git a/biology/salmon/Makefile b/biology/salmon/Makefile new file mode 100644 index 000000000000..73ad3402f38a --- /dev/null +++ b/biology/salmon/Makefile @@ -0,0 +1,48 @@ +PORTNAME= salmon +DISTVERSIONPREFIX= v +DISTVERSION= 1.10.2 +CATEGORIES= biology + +MAINTAINER= jwb@FreeBSD.org +COMMENT= Transcript-level quantification of RNA-seq from lightweight alignments +WWW= https://github.com/COMBINE-lab/salmon + +LICENSE= GPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +# libtool and auto* are run manually in submodules, so don't put them in USES +BUILD_DEPENDS= bash:shells/bash \ + cereal>=1.3.0:devel/cereal \ + 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 + +USES= cmake:noninja gmake localbase shebangfix +USE_GITHUB= yes + +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 +SHEBANG_FILES= scripts/* + +PLIST_FILES= bin/salmon +CMAKE_ARGS+= -DHAVE_FAST_MALLOC:BOOL=on \ + -DBOOST_ROOT:PATH=${LOCALBASE} \ + -DFETCHED_PUFFERFISH:BOOL=on \ + -DFETCHED_LIBGFF:BOOL=on \ + -DFETCH_STADEN:BOOL=true +WITH_DEBUG= yes +LDFLAGS+= -lpthread + +pre-configure: + (cd ${WRKSRC}/external/staden-io_lib && ./bootstrap) + +do-install: + ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/src/salmon ${STAGEDIR}${PREFIX}/bin + +.include diff --git a/biology/salmon/distinfo b/biology/salmon/distinfo new file mode 100644 index 000000000000..42eb0d9ee404 --- /dev/null +++ b/biology/salmon/distinfo @@ -0,0 +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 diff --git a/biology/salmon/files/patch-CMakeLists.txt b/biology/salmon/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..5a6bd2de2f02 --- /dev/null +++ b/biology/salmon/files/patch-CMakeLists.txt @@ -0,0 +1,123 @@ +--- CMakeLists.txt.orig 2023-07-21 14:03:31 UTC ++++ CMakeLists.txt +@@ -310,14 +310,16 @@ endif() + # Grab pufferfish source --- DURING CONFIGURE TIME! + # + #### +-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) + message(STATUS "fetch PUFFERFISH exit code ${FETCH_PF_SCRIPT_RET}") + if(NOT (FETCH_PF_SCRIPT_RET EQUAL 0)) + message(FATAL_ERROR "Could not fetch pufferfish source [fetchPufferfish.sh returned exit code ${FETCH_PF_SCRIPT_RET}].") + endif() + set(FETCHED_PUFFERFISH TRUE CACHE BOOL "Has pufferfish been fetched?" FORCE) +-endif() ++# endif() + + ## + # Super-secret override +@@ -364,7 +366,10 @@ if(NOT Iconv_IS_BUILT_IN) + set(ICONV_LIB Iconv::Iconv) + endif() + +-find_package(LibLZMA) ++# lzma is in FreeBSD base ++# find_package(LibLZMA) ++set(LIBLZMA_FOUND TRUE) ++set(LIBLZMA_LIBRARIES /usr/lib/liblzma.a /usr/lib/libmd.a) + if(NOT LIBLZMA_FOUND) + message("Will attempt to fetch and build liblzma") + message("=======================================") +@@ -381,8 +386,8 @@ 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= 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 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 + 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= ++ BUILD_COMMAND gmake ${QUIET_MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} ++ INSTALL_COMMAND gmake ${QUIET_MAKE} install PREFIX= + ) + # 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) + endif() + + ## Try and find TBB first +-find_package(TBB 2021.4 +- HINTS ${TBB_ROOT_SEARCH} +- COMPONENTS tbb tbbmalloc tbbmalloc_proxy) ++# find_package(TBB 2021.4 ++# HINTS ${TBB_ROOT_SEARCH} ++# COMPONENTS tbb tbbmalloc tbbmalloc_proxy) ++# tbbmalloc_proxy is rolled into tbbmalloc in FreeBSD ports ++find_package(TBB 2021.4 COMPONENTS tbb tbbmalloc) + + if (${TBB_FOUND}) + if (${TBB_VERSION} VERSION_GREATER_EQUAL 2021.4) +@@ -791,22 +798,16 @@ endif() + 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 && +- rm -fr staden-io_lib && +- mv -f staden-io_lib-1.14.15 staden-io_lib + 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= 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} ++ 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 ++ INSTALL_COMMAND gmake install + ) + if(NOT LIBLZMA_FOUND) + ExternalProject_Add_StepDependencies(libstadenio build liblzma) +@@ -820,23 +821,9 @@ if (ASAN_BUILD) + set(FAST_MALLOC_LIB "") + set(HAVE_FAST_MALLOC TRUE) + else() +- 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)) +- 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() ++ # jemalloc is default on FreeBSD ++ set(FAST_MALLOC_LIB "/usr/lib/libc.so") ++ set(HAVE_FAST_MALLOC TRUE) + endif() + + if(CONDA_BUILD) diff --git a/biology/salmon/files/patch-external_pufferfish_CMakeLists.txt b/biology/salmon/files/patch-external_pufferfish_CMakeLists.txt new file mode 100644 index 000000000000..d6c7695325fc --- /dev/null +++ b/biology/salmon/files/patch-external_pufferfish_CMakeLists.txt @@ -0,0 +1,23 @@ +--- external/pufferfish/CMakeLists.txt.orig 2023-06-26 19:34:50 UTC ++++ external/pufferfish/CMakeLists.txt +@@ -135,7 +135,7 @@ set(WARN_ALL_THINGS "-fdiagnostics-color=always;-Wall; + + + set(OPT_FLAGS "-DHAVE_SIMDE;-D__STDC_FORMAT_MACROS;-DSTX_NO_STD_STRING_VIEW;-O3;-fPIC;-DNDEBUG;-funroll-loops;-ftree-vectorize;-fno-strict-aliasing") +-set(DEBUG_FLAGS "-DHAVE_SIMDE;-D__STDC_FORMAT_MACROS;-DSTX_NO_STD_STRING_VIEW;-pg;-g;-gstabs") ++set(DEBUG_FLAGS "-DHAVE_SIMDE;-D__STDC_FORMAT_MACROS;-DSTX_NO_STD_STRING_VIEW;-g") + + ## + # OSX is strange (some might say, stupid in this regard). Deal with it's quirkines here. +@@ -188,11 +188,6 @@ endif() + ## + set(SHASUM ${CMAKE_CURRENT_SOURCE_DIR}/scripts/check_shasum.sh) + +- +-find_package(Jemalloc) +-if(JEMALLOC_FOUND) +- include_directories(SYSTEM ${JEMALLOC_INCLUDE_DIRS}) +-endif() + + if(DO_QUIET_MAKE) + set(QUIET_MAKE "--silent") diff --git a/biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_assemblyedgeconstructor.h b/biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_assemblyedgeconstructor.h new file mode 100644 index 000000000000..bc022a2e0574 --- /dev/null +++ b/biology/salmon/files/patch-external_pufferfish_external_twopaco_graphconstructor_assemblyedgeconstructor.h @@ -0,0 +1,22 @@ +--- external/pufferfish/external/twopaco/graphconstructor/assemblyedgeconstructor.h.orig 2021-12-05 16:28:24 UTC ++++ external/pufferfish/external/twopaco/graphconstructor/assemblyedgeconstructor.h +@@ -30,10 +30,10 @@ namespace TwoPaCo + { + std::string vertex = chr.substr(i, vertexLength); + //Check if the Bloom filter contains an edge +- assert(IsOutgoingEdgeInBloomFilter(hash, *bloomFilter, chr[i + edgeLength - 1])); ++ // assert(IsOutgoingEdgeInBloomFilter(hash, *bloomFilter, chr[i + edgeLength - 1])); + if (i > 0) + { +- assert(IsIngoingEdgeInBloomFilter(hash, *bloomFilter, chr[i - 1])); ++ // assert(IsIngoingEdgeInBloomFilter(hash, *bloomFilter, chr[i - 1])); + } + + //Check the if the vertex is a junction +@@ -58,4 +58,4 @@ namespace TwoPaCo + + } + +-#endif +\ No newline at end of file ++#endif diff --git a/biology/salmon/files/patch-external_pufferfish_include_ghc_filesystem.hpp b/biology/salmon/files/patch-external_pufferfish_include_ghc_filesystem.hpp new file mode 100644 index 000000000000..9a68eb2fc64c --- /dev/null +++ b/biology/salmon/files/patch-external_pufferfish_include_ghc_filesystem.hpp @@ -0,0 +1,11 @@ +--- external/pufferfish/include/ghc/filesystem.hpp.orig 2021-11-22 21:10:29 UTC ++++ external/pufferfish/include/ghc/filesystem.hpp +@@ -50,6 +50,8 @@ + + #if defined(__APPLE__) && defined(__MACH__) + #define GHC_OS_MACOS ++#elif defined(__FreeBSD__) ++#define GHC_OS_FREEBSD + #elif defined(__linux__) + #define GHC_OS_LINUX + #elif defined(_WIN64) diff --git a/biology/salmon/files/patch-external_pufferfish_include_zstr_strict__fstream.hpp b/biology/salmon/files/patch-external_pufferfish_include_zstr_strict__fstream.hpp new file mode 100644 index 000000000000..040d7ad39327 --- /dev/null +++ b/biology/salmon/files/patch-external_pufferfish_include_zstr_strict__fstream.hpp @@ -0,0 +1,11 @@ +--- external/pufferfish/include/zstr/strict_fstream.hpp.orig 2021-11-22 21:10:29 UTC ++++ external/pufferfish/include/zstr/strict_fstream.hpp +@@ -27,7 +27,7 @@ static std::string strerror() + { + buff = "Unknown error"; + } +-#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE || defined(__APPLE__) ++#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE || defined(__APPLE__) || defined(__FreeBSD__) + // XSI-compliant strerror_r() + if (strerror_r(errno, &buff[0], buff.size()) != 0) + { diff --git a/biology/salmon/files/patch-include_strict__fstream.hpp b/biology/salmon/files/patch-include_strict__fstream.hpp new file mode 100644 index 000000000000..fbd5deb7ad59 --- /dev/null +++ b/biology/salmon/files/patch-include_strict__fstream.hpp @@ -0,0 +1,11 @@ +--- include/strict_fstream.hpp.orig 2021-12-05 17:11:36 UTC ++++ include/strict_fstream.hpp +@@ -27,7 +27,7 @@ static std::string strerror() + { + buff = "Unknown error"; + } +-#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE || defined(__APPLE__) ++#elif (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE || defined(__APPLE__) || defined(__FreeBSD__) + // XSI-compliant strerror_r() + if (strerror_r(errno, &buff[0], buff.size()) != 0) + { diff --git a/biology/salmon/files/patch-scripts_fetchPufferfish.sh b/biology/salmon/files/patch-scripts_fetchPufferfish.sh new file mode 100644 index 000000000000..566493a5e7ee --- /dev/null +++ b/biology/salmon/files/patch-scripts_fetchPufferfish.sh @@ -0,0 +1,57 @@ +--- scripts/fetchPufferfish.sh.orig 2023-07-21 13:59:29 UTC ++++ scripts/fetchPufferfish.sh +@@ -11,52 +11,12 @@ CURR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && p + 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 +- +-if [ -d ${INSTALL_DIR}/src/pufferfish ] ; then +- rm -fr ${INSTALL_DIR}/src/pufferfish +-fi +- + SVER=salmon-v1.10.2 + #SVER=develop + #SVER=sketch-mode +- +-EXPECTED_SHA256=f225b74833f71dcf767a565345224357fb091f90ce79717abc836814d9ccd101 +- +-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 + diff --git a/biology/salmon/files/patch-src_CMakeLists.txt b/biology/salmon/files/patch-src_CMakeLists.txt new file mode 100644 index 000000000000..2cc68fcd9692 --- /dev/null +++ b/biology/salmon/files/patch-src_CMakeLists.txt @@ -0,0 +1,18 @@ +--- src/CMakeLists.txt.orig 2021-11-23 02:42:29 UTC ++++ src/CMakeLists.txt +@@ -266,14 +266,7 @@ endif() + + add_dependencies(salmon unitTests) + +-## +-# External dependencies of salmon_core and salmon +-## +-if (${FETCHED_JEMALLOC}) +- add_dependencies(alevin_core libjemalloc) +- add_dependencies(salmon_core libjemalloc) +- add_dependencies(salmon libjemalloc) +-endif() ++# jemalloc is default on FreeBSD + + if (${FETCHED_BOOST}) + ## PUFF_INTEGRATION diff --git a/biology/salmon/pkg-descr b/biology/salmon/pkg-descr new file mode 100644 index 000000000000..5ec82abec043 --- /dev/null +++ b/biology/salmon/pkg-descr @@ -0,0 +1,7 @@ +Salmon is a wicked-fast program to produce a highly-accurate, +transcript-level quantification estimates from RNA-seq data. Salmon +achieves is accuracy and speed via a number of different innovations, +including the use of quasi-mapping (accurate but fast-to-compute +proxies for traditional read alignments), and massively-parallel +stochastic collapsed variational inference. The result is a versatile +tool that fits nicely into many differnt pipelines.