commit:     19d9b88f5b3bd9d6f09eff93909ddf692ba41c3c
Author:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
AuthorDate: Tue Jan 26 21:04:03 2021 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> riseup <DOT> net>
CommitDate: Tue Jan 26 21:04:03 2021 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=19d9b88f

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 <AT> riseup.net>

 .../files/sailfish-allow-newer-boost.patch         |  13 +++
 sci-biology/sailfish/files/sailfish-no-curl.patch  | 121 +++++++++++++++++++++
 sci-biology/sailfish/sailfish-0.10.0.ebuild        |  61 ++++++++---
 sci-biology/sailfish/sailfish-9999.ebuild          |  49 +++++++--
 4 files changed, 219 insertions(+), 25 deletions(-)

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
 }

Reply via email to