aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@riseup.net>2021-01-26 22:04:03 +0100
committerAndrew Ammerlaan <andrewammerlaan@riseup.net>2021-01-26 22:04:03 +0100
commit19d9b88f5b3bd9d6f09eff93909ddf692ba41c3c (patch)
tree8af6d8a6b2d526820b7c0a577d7c6c70e2f4bfc1 /sci-biology
parentsci-biology/proda: EAPI bump (diff)
downloadsci-19d9b88f5b3bd9d6f09eff93909ddf692ba41c3c.tar.gz
sci-19d9b88f5b3bd9d6f09eff93909ddf692ba41c3c.tar.bz2
sci-19d9b88f5b3bd9d6f09eff93909ddf692ba41c3c.zip
sci-biology/sailfish: initial attempts at getting this to work
the build system is a mess of things wanting to fetch things Package-Manager: Portage-3.0.14, Repoman-3.0.2 Signed-off-by: Andrew Ammerlaan <andrewammerlaan@riseup.net>
Diffstat (limited to 'sci-biology')
-rw-r--r--sci-biology/sailfish/Manifest1
-rw-r--r--sci-biology/sailfish/files/sailfish-allow-newer-boost.patch13
-rw-r--r--sci-biology/sailfish/files/sailfish-no-curl.patch121
-rw-r--r--sci-biology/sailfish/sailfish-0.10.0.ebuild61
-rw-r--r--sci-biology/sailfish/sailfish-9999.ebuild49
5 files changed, 220 insertions, 25 deletions
diff --git a/sci-biology/sailfish/Manifest b/sci-biology/sailfish/Manifest
index cb996531b..5b9f831db 100644
--- a/sci-biology/sailfish/Manifest
+++ b/sci-biology/sailfish/Manifest
@@ -1 +1,2 @@
+DIST quasi-mph.zip 414036 BLAKE2B 414ccd806fc11fdc949ecf107db079e4ab0dec8f443f4ba27df9c4273bc3e01f9d4e7c377651a930cf28c77198526a7ed52eb65419a9c29d6cf12a6ecf268b6c SHA512 65d420af549ce138e6d240438919cbfb76a6f137d2767ba45c099c9a946ca04686fedca609a5ebe4c9d371d2587379f35d9e5dd591abe1afc4b7d433bb4f61c9
DIST sailfish-0.10.0.tar.gz 1621862 BLAKE2B d04d8db99e1d191ad1bea690bf43f31d23d6505bc3e80399cfafbbf4e1404edf8a4bbe0532e2c47ec59a5a26f50509342a7143bc0b0c41c3a8723ec0f6e53bd4 SHA512 ec66cff89dac037b84deaf997b7769802f594e69820d42915fb830bfcd527786c9c466a9476bdf2b29b9f7481e98905acf580f4a766765bccaa1b0ced22c4bb2
diff --git a/sci-biology/sailfish/files/sailfish-allow-newer-boost.patch b/sci-biology/sailfish/files/sailfish-allow-newer-boost.patch
new file mode 100644
index 000000000..985f83f4a
--- /dev/null
+++ b/sci-biology/sailfish/files/sailfish-allow-newer-boost.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ee4b34c..3c58830 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,7 +176,7 @@ endif()
+ ##
+ # Set the latest version and look for what we need
+ ##
+-set(Boost_ADDITIONAL_VERSIONS "1.53" "1.53.0" "1.54" "1.55" "1.56" "1.57.0" "1.58" "1.59")
++set(Boost_ADDITIONAL_VERSIONS "1.72.0" "1.74.0" "1.75.0")
+ find_package(Boost 1.53.0 COMPONENTS iostreams filesystem system thread timer chrono program_options serialization)
+ message("BOOST_INCLUDEDIR = ${BOOST_INCLUDEDIR}")
+ message("BOOST_LIBRARYDIR = ${BOOST_LIBRARYDIR}")
diff --git a/sci-biology/sailfish/files/sailfish-no-curl.patch b/sci-biology/sailfish/files/sailfish-no-curl.patch
new file mode 100644
index 000000000..2ec97808e
--- /dev/null
+++ b/sci-biology/sailfish/files/sailfish-no-curl.patch
@@ -0,0 +1,121 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1be4117..ee4b34c 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -230,9 +230,6 @@ elseif(FETCH_BOOST)
+ message("Build system will fetch and build Boost")
+ message("==================================================================")
+ ExternalProject_Add(libboost
+- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+- DOWNLOAD_COMMAND curl -k -L http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz -o boost_1_59_0.tar.gz &&
+- tar xzf boost_1_59_0.tar.gz
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/boost_1_59_0
+ INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+ #PATCH_COMMAND patch -p2 < ${CMAKE_CURRENT_SOURCE_DIR}/external/boost156.patch
+@@ -292,10 +289,6 @@ if (NOT JELLYFISH_FOUND)
+ message("Build system will fetch and build Jellyfish")
+ message("==================================================================")
+ ExternalProject_Add(libjellyfish
+- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+- DOWNLOAD_COMMAND curl -k -L https://github.com/gmarcais/Jellyfish/releases/download/v2.2.5/jellyfish-2.2.5.tar.gz -o jellyfish-2.2.5.tgz &&
+- rm -fr jellyfish-2.2.5 &&
+- tar -xzvf jellyfish-2.2.5.tgz
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/jellyfish-2.2.5
+ INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+ CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/external/jellyfish-2.2.5/configure --prefix=<INSTALL_DIR> CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=${JELLYFISH_CXX_FLAGS}
+@@ -335,11 +328,7 @@ if ("${TBB_COMPILER}" STREQUAL "gcc")
+ endif()
+
+ ExternalProject_Add(libtbb
+- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+- URL http://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb43_20140724oss_src.tgz
+- DOWNLOAD_COMMAND curl -k -L http://www.threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb43_20140724oss_src.tgz -o tbb_20140724oss_src.tgz &&
+- tar -xzvf tbb_20140724oss_src.tgz
+- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/tbb43_20140724oss
++ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/tbb43_20140724oss
+ INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+ PATCH_COMMAND "${TBB_PATCH_STEP}"
+ CONFIGURE_COMMAND ""
+@@ -407,11 +396,6 @@ message("TBB_LIBRARIES = ${TBB_LIBRARIES}")
+ message("Build system will compile libgff")
+ message("==================================================================")
+ ExternalProject_Add(libgff
+- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+- DOWNLOAD_COMMAND curl -k -L https://github.com/Kingsford-Group/libgff/archive/v1.0.tar.gz -o libgff.tgz &&
+- tar -xzvf libgff.tgz &&
+- rm -fr libgff &&
+- mv libgff-1.0 libgff
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/libgff
+ UPDATE_COMMAND sh -c "mkdir -p <SOURCE_DIR>/build"
+ INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+@@ -445,9 +429,6 @@ if (NOT HAVE_FAST_MALLOC)
+ message("Build system will fetch and use JEMalloc")
+ message("==================================================================")
+ ExternalProject_Add(libjemalloc
+- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+- DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/jemalloc/archive/3.6.0.tar.gz -o jemalloc-3.6.0.tar.gz &&
+- tar -xzf jemalloc-3.6.0.tar.gz
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/jemalloc-3.6.0
+ BUILD_IN_SOURCE TRUE
+ INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+@@ -465,9 +446,6 @@ endif ()
+ message("Build system will fetch and build SparseHash")
+ message("==================================================================")
+ ExternalProject_Add(libsparsehash
+- DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+- DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/sparsehash/archive/sparsehash-2.0.2.tar.gz -o sparsehash-2.0.2.tar.gz &&
+- tar -xzf sparsehash-2.0.2.tar.gz
+ SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/sparsehash-sparsehash-2.0.2
+ BUILD_IN_SOURCE TRUE
+ INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+@@ -487,7 +465,6 @@ ExternalProject_Add(libsparsehash
+ #
+ ####
+ if(NOT FETCHED_RAPMAP)
+- exec_program(${CMAKE_CURRENT_SOURCE_DIR}/scripts/fetchRapMap.sh)
+ set(FETCHED_RAPMAP TRUE CACHE BOOL "Has RapMap been fetched?" FORCE)
+ endif()
+
+diff --git a/scripts/fetchRapMap.sh b/scripts/fetchRapMap.sh
+deleted file mode 100755
+index cab05a1..0000000
+--- a/scripts/fetchRapMap.sh
++++ /dev/null
+@@ -1,37 +0,0 @@
+-#!/bin/bash
+-
+-CURR_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+-EXTERNAL_DIR=${CURR_DIR}/../external
+-INSTALL_DIR=${CURR_DIR}/../external/install
+-
+-if [ -d ${EXTERNAL_DIR}/RapMap ] ; then
+- rm -fr ${EXTERNAL_DIR}/RapMap
+-fi
+-
+-if [ -d ${INSTALL_DIR}/include/rapmap ] ; then
+- rm -fr ${INSTALL_DIR}/include/rapmap
+-fi
+-
+-if [ -d ${INSTALL_DIR}/src/rapmap ] ; then
+- rm -fr ${INSTALL_DIR}/src/rapmap
+-fi
+-
+-mkdir -p ${EXTERNAL_DIR}
+-curl -k -L https://github.com/COMBINE-lab/RapMap/archive/quasi-mph.zip -o ${EXTERNAL_DIR}/rapmap.zip
+-rm -fr ${EXTERNAL_DIR}/RapMap
+-unzip ${EXTERNAL_DIR}/rapmap.zip -d ${EXTERNAL_DIR}
+-mv ${EXTERNAL_DIR}/RapMap-quasi-mph ${EXTERNAL_DIR}/RapMap
+-
+-mkdir -p ${INSTALL_DIR}/include/rapmap
+-mkdir -p ${INSTALL_DIR}/src/rapmap
+-
+-rm ${EXTERNAL_DIR}/RapMap/src/xxhash.c
+-rm ${EXTERNAL_DIR}/RapMap/include/xxhash.h
+-
+-cp -r ${EXTERNAL_DIR}/RapMap/external/libdivsufsort.zip ${EXTERNAL_DIR}
+-cp -r ${EXTERNAL_DIR}/RapMap/src/*.c ${INSTALL_DIR}/src/rapmap
+-cp -r ${EXTERNAL_DIR}/RapMap/src/*.cpp ${INSTALL_DIR}/src/rapmap
+-cp -r ${EXTERNAL_DIR}/RapMap/include/tclap ${INSTALL_DIR}/include/rapmap
+-cp -r ${EXTERNAL_DIR}/RapMap/include/*.h ${INSTALL_DIR}/include/rapmap
+-cp -r ${EXTERNAL_DIR}/RapMap/include/*.hpp ${INSTALL_DIR}/include/rapmap
+-cp -r ${EXTERNAL_DIR}/RapMap/include/emphf ${INSTALL_DIR}/include/rapmap
diff --git a/sci-biology/sailfish/sailfish-0.10.0.ebuild b/sci-biology/sailfish/sailfish-0.10.0.ebuild
index 228fcfdbb..8ababe879 100644
--- a/sci-biology/sailfish/sailfish-0.10.0.ebuild
+++ b/sci-biology/sailfish/sailfish-0.10.0.ebuild
@@ -1,25 +1,27 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit cmake-utils multilib
+inherit cmake multilib
DESCRIPTION="Rapid Mapping-based Isoform Quantification from RNA-Seq Reads"
-HOMEPAGE="http://www.cs.cmu.edu/~ckingsf/software/sailfish/"
-SRC_URI="https://github.com/kingsfordgroup/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+HOMEPAGE="https://www.cs.cmu.edu/~ckingsf/software/sailfish/"
+SRC_URI="https://github.com/kingsfordgroup/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/COMBINE-lab/RapMap/archive/quasi-mph.zip"
LICENSE="GPL-3+"
SLOT="0"
KEYWORDS=""
-IUSE=""
-PATCHES=( "${FILESDIR}"/${PN}-0.9.2-no-boost-static.patch )
-
-DEPEND="dev-libs/boost:0
- dev-libs/jemalloc
- dev-cpp/tbb
- sci-biology/jellyfish:2"
+DEPEND="
+ dev-libs/boost:0
+ dev-libs/jemalloc
+ dev-libs/libdivsufsort
+ dev-cpp/tbb
+ dev-cpp/sparsehash
+ sci-biology/jellyfish:2
+"
RDEPEND="${DEPEND}"
# a C++-11 compliant compiler is needs, aka >=gcc-4.7
@@ -31,8 +33,41 @@ RDEPEND="${DEPEND}"
# contains bundled jellyfish-2.2.5
# contains bundled sparsehash-2.0.2
+PATCHES=(
+ "${FILESDIR}/${PN}-0.9.2-no-boost-static.patch"
+ "${FILESDIR}/${PN}-no-curl.patch"
+ "${FILESDIR}/${PN}-allow-newer-boost.patch"
+)
+
+src_unpack() {
+ default
+ mkdir -p "${S}/external"
+ cp "${DISTDIR}/quasi-mph.zip" "${S}/external/rapmap.zip" || die
+ mv "${WORKDIR}/RapMap-quasi-mph" "${S}/external/RapMap" || die
+ mkdir -p "${S}/external/install/lib"
+ cp "${EPREFIX}/usr/$(get_libdir)/libdivsufsort.so" "${S}/external/install/lib/" || die
+ cp "${EPREFIX}/usr/$(get_libdir)/libdivsufsort64.so" "${S}/external/install/lib/" || die
+ cp "${EPREFIX}/usr/$(get_libdir)/libjellyfish-2.0.so" "${S}/external/install/lib/" || die
+}
+
+src_prepare() {
+ cmake_src_prepare
+ # use the dynamic library
+ sed -i -e 's/libdivsufsort.a/libdivsufsort.so/g' \
+ -e 's/libdivsufsort64.a/libdivsufsort64.so/g' \
+ -e 's/libjellyfish-2.0.a/libjellyfish-2.0.so/g' \
+ src/CMakeLists.txt || die
+}
+
+src_configure() {
+ JELLYFISH_INCLUDE_DIR="/usr/include/jellyfish2" cmake_src_configure
+ # jellyfish2 instead of jellyfish
+ find -type f -name "*.hpp" -exec sed -i -e 's/#include \"jellyfish\//#include \"jellyfish2\//g' {} + || die
+ find -type f -name "*.hpp" -exec sed -i -e 's/#include <jellyfish\//#include <jellyfish2\//g' {} + || die
+}
+
src_install() {
- cmake-utils_src_install
+ cmake_src_install
rm -r "${ED}"/usr/tests || die
rm -f "${ED}"/usr/bin/jellyfish "${ED}"/usr/$(get_libdir)/libjellyfish || die
}
diff --git a/sci-biology/sailfish/sailfish-9999.ebuild b/sci-biology/sailfish/sailfish-9999.ebuild
index 29a967af8..27d1abdc8 100644
--- a/sci-biology/sailfish/sailfish-9999.ebuild
+++ b/sci-biology/sailfish/sailfish-9999.ebuild
@@ -1,25 +1,26 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit cmake-utils git-r3 multilib
+inherit cmake git-r3 multilib
DESCRIPTION="Rapid Mapping-based Isoform Quantification from RNA-Seq Reads"
-HOMEPAGE="http://www.cs.cmu.edu/~ckingsf/software/sailfish/"
-SRC_URI=""
+HOMEPAGE="https://www.cs.cmu.edu/~ckingsf/software/sailfish/"
EGIT_REPO_URI="https://github.com/kingsfordgroup/sailfish.git"
LICENSE="GPL-3"
SLOT="0"
-IUSE=""
-PATCHES=( "${FILESDIR}"/${PN}-0.9.2-no-boost-static.patch )
+PATCHES=( "${FILESDIR}/${PN}-0.9.2-no-boost-static.patch" )
-DEPEND="dev-libs/boost:0
- dev-libs/jemalloc
- dev-cpp/tbb
- sci-biology/jellyfish:2"
+DEPEND="
+ dev-libs/boost:0
+ dev-libs/jemalloc
+ dev-libs/libdivsufsort
+ dev-cpp/tbb
+ sci-biology/jellyfish:2
+"
RDEPEND="${DEPEND}"
# TODO: disable running wget/curl during src_compile
@@ -30,8 +31,32 @@ RDEPEND="${DEPEND}"
# contains bundled jellyfish-2.2.5
# contains bundled sparsehash-2.0.2
+src_unpack() {
+ default
+ mkdir -p "${S}/external"
+ cp "${DISTDIR}/quasi-mph.zip" "${S}/external/rapmap.zip" || die
+ mkdir -p "${S}/external/install/lib"
+ cp "${EPREFIX}/usr/$(get_libdir)/libdivsufsort.so" "${S}/external/install/lib/" || die
+ cp "${EPREFIX}/usr/$(get_libdir)/libdivsufsort64.so" "${S}/external/install/lib/" || die
+ cp "${EPREFIX}/usr/$(get_libdir)/libjellyfish-2.0.so" "${S}/external/install/lib/" || die
+}
+
+src_prepare() {
+ cmake_src_prepare
+ # use the dynamic library
+ sed -i -e 's/libdivsufsort.a/libdivsufsort.so/g' \
+ -e 's/libdivsufsort64.a/libdivsufsort64.so/g' \
+ -e 's/libjellyfish-2.0.a/libjellyfish-2.0.so/g' \
+ src/CMakeLists.txt || die
+
+ # jellyfish2 instead of jellyfish
+ pushd external/install/include/rapmap
+ find -type f -name "*.hpp" -exec sed -i -e 's/jellyfish/jellyfish2/g' {} + || die
+ popd
+}
+
src_install() {
- cmake-utils_src_install
+ cmake_src_install
rm -r "${ED}"/usr/tests || die
rm -f "${ED}"/usr/bin/jellyfish "${ED}"/usr/$(get_libdir)/libjellyfish || die
}