[med-svn] [salmon] 02/02: initial import

Michael Crusoe misterc-guest at moszumanska.debian.org
Sat Sep 19 06:22:55 UTC 2015


This is an automated email from the git hooks/post-receive script.

misterc-guest pushed a commit to branch master
in repository salmon.

commit 0ad6dadd695a7db06d9c44525ea098138f261aab
Author: Michael R. Crusoe <crusoe at ucdavis.edu>
Date:   Fri Sep 18 18:41:26 2015 -0700

    initial import
---
 debian/changelog                |   5 +
 debian/compat                   |   1 +
 debian/control                  |  46 +++++
 debian/copyright                |  29 +++
 debian/patches/cmake-adj        |  20 ++
 debian/patches/dependency-fix   | 416 ++++++++++++++++++++++++++++++++++++++++
 debian/patches/jellyfish-update | 103 ++++++++++
 debian/patches/series           |   3 +
 debian/rules                    |  22 +++
 debian/source/format            |   1 +
 debian/upstream/metadata        |  12 ++
 debian/watch                    |  10 +
 12 files changed, 668 insertions(+)

diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..61970f2
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+salmon (0.4.2-1) UNRELEASED; urgency=low
+
+  * Initial release (Closes: #<bug>)
+
+ -- Michael R. Crusoe <crusoe at ucdavis.edu>  Fri, 18 Sep 2015 18:40:38 -0700
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..4886d86
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,46 @@
+Source: salmon
+Section: science
+Priority: optional
+Maintainer: Debian Med Packaging Team <debian-med-packaging at lists.alioth.debian.org>
+Uploaders: Michael R. Crusoe <crusoe at ucdavis.edu>
+Build-Depends: debhelper (>= 9),
+               cmake,
+               libboost-iostreams-dev,
+               libboost-filesystem-dev,
+               libboost-system-dev,
+               libboost-thread-dev,
+               libboost-timer-dev,
+               libboost-chrono-dev,
+               libboost-program-options-dev,
+               libboost-serialization-dev,
+               libbz2-dev,
+               liblzma-dev,
+               jellyfish,
+               bwa,
+               pkg-config,
+               libjemalloc-dev,
+               libcereal-dev,
+               libtbb-dev,
+               libgff-dev,
+               libstaden-read-dev,
+               libspdlog-dev
+Standards-Version: 3.9.6
+Vcs-Browser: http://anonscm.debian.org/viewvc/debian-med/trunk/packages/<pkg>/trunk/
+Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/<pkg>/trunk/
+Homepage: https://github.com/COMBINE-lab/salmon
+
+Package: salmon
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: wicked-fast transcript quantification from RNA-seq data
+ 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 lightweight
+ alignments (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.
+ For example, you can choose to make use of our lightweight alignments by
+ providing Salmon with raw sequencing reads, or, if it is more convenient, you
+ can provide Salmon with regular alignments (e.g. computed with your favorite
+ aligner), and it will use the same wicked-fast, state-of-the-art inference
+ algorithm to estimate transcript-level abundances for your experiment.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..b3de781
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,29 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: salmon
+Source: https://github.com/COMBINE-lab/salmon/
+
+Files: *
+Copyright: © 2015 The Salmon Authors
+License: GPL-3+
+
+Files: debian/*
+Copyright: © 2015 Michael R. Crusoe <crusoe at ucdavis.edu>
+License: GPL-3+
+
+License: GPL-3+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+    .
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+    .
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+    .
+    On Debian systems, the full text of the GNU General Public
+    License version 3 can be found in the file
+    `/usr/share/common-licenses/GPL-3'.
diff --git a/debian/patches/cmake-adj b/debian/patches/cmake-adj
new file mode 100644
index 0000000..2835162
--- /dev/null
+++ b/debian/patches/cmake-adj
@@ -0,0 +1,20 @@
+--- salmon.orig/cmake/TestSalmon.cmake
++++ salmon/cmake/TestSalmon.cmake
+@@ -7,7 +7,7 @@
+     message(FATAL_ERROR "Error untarring sample_data.tgz")
+ endif()
+ 
+-set(SALMON_INDEX_CMD ${TOPLEVEL_DIR}/build/src/salmon index -t transcripts.fasta -i sample_salmon_index)
++set(SALMON_INDEX_CMD ${CMAKE_BINARY_DIR}/salmon index -t transcripts.fasta -i sample_salmon_index)
+ execute_process(COMMAND ${SALMON_INDEX_CMD}
+                 WORKING_DIRECTORY ${TOPLEVEL_DIR}/sample_data
+                 RESULT_VARIABLE SALMON_INDEX_RESULT
+@@ -17,7 +17,7 @@
+     message(FATAL_ERROR "Error running ${SALMON_INDEX_COMMAND}")
+ endif()
+ 
+-set(SALMON_QUANT_COMMAND ${TOPLEVEL_DIR}/build/src/salmon quant -i sample_salmon_index -l IU -1 reads_1.fastq -2 reads_2.fastq -o sample_salmon_quant -n 1000000)
++set(SALMON_QUANT_COMMAND ${CMAKE_BINARY_DIR}/salmon quant -i sample_salmon_index -l IU -1 reads_1.fastq -2 reads_2.fastq -o sample_salmon_quant -n 1000000)
+ execute_process(COMMAND ${SALMON_QUANT_COMMAND}
+ 	            WORKING_DIRECTORY ${TOPLEVEL_DIR}/sample_data
+                 RESULT_VARIABLE SALMON_QUANT_RESULT
diff --git a/debian/patches/dependency-fix b/debian/patches/dependency-fix
new file mode 100644
index 0000000..f3b3b59
--- /dev/null
+++ b/debian/patches/dependency-fix
@@ -0,0 +1,416 @@
+--- salmon.orig/CMakeLists.txt
++++ salmon/CMakeLists.txt
+@@ -22,7 +22,7 @@
+ set (WARNING_IGNORE_FLAGS "-Wno-deprecated-register") 
+ set (BOOST_CXX_FLAGS "-Wno-deprecated-register -std=c++11")
+ ## Prefer static to dynamic libraries
+-SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
++# SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
+ 
+ ## Set the standard required compile flags
+ # Nov 18th --- removed -DHAVE_CONFIG_H 
+@@ -165,7 +165,7 @@
+ ##
+ # We want static, multithreaded boost libraries
+ ##
+-set (Boost_USE_STATIC_LIBS ON)
++set (Boost_USE_STATIC_LIBS OFF)
+ set (Boost_USE_MULTITHREADED ON)
+ #set (Boost_USE_STATIC_RUNTIME OFF)
+ 
+@@ -322,51 +322,53 @@
+ 	
+ set(EXTERNAL_LIBRARY_PATH $CMAKE_CURRENT_SOURCE_DIR/lib)
+ 
+-message("Build system will fetch and build the Cereal serialization library")
+-message("==================================================================")
+-include(ExternalProject)
+-ExternalProject_Add(libcereal
+-    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+-    URL http://www.cs.cmu.edu/~robp/files/cereal-v1.0.0.tgz
+-    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.0.0
+-    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+-    UPDATE_COMMAND sh -c "mkdir -p <SOURCE_DIR>/build"
+-    BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.0.0/build
+-    CONFIGURE_COMMAND ""
+-    BUILD_COMMAND ""
+-    INSTALL_COMMAND sh -c "mkdir -p <INSTALL_DIR>/include && cp -r <SOURCE_DIR>/include/cereal <INSTALL_DIR>/include"
+-)
+-
+-message("Build system will fetch and build BWA (for Salmon)")
+-message("==================================================================")
+-include(ExternalProject)
+-ExternalProject_Add(libbwa
+-    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+-    DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/bwa/archive/0.7.12.3.tar.gz -o bwa-master.tar.gz &&
+-                     mkdir -p bwa-master && 
+-                     tar -xzvf bwa-master.tar.gz --strip-components=1 -C bwa-master 
+-    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/bwa-master
+-    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+-    CONFIGURE_COMMAND ""
+-    BUILD_COMMAND sh -c "make CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}"
+-    INSTALL_COMMAND sh -c "mkdir -p <INSTALL_DIR>/lib && mkdir -p <INSTALL_DIR>/include/bwa && cp libbwa.a <INSTALL_DIR>/lib && cp *.h <INSTALL_DIR>/include/bwa && cp is.c bwtindex.c bwt_gen.c QSufSort.c ${CMAKE_CURRENT_SOURCE_DIR}/src/"
+-    BUILD_IN_SOURCE TRUE
+-)
+-
+-message("Build system will fetch and build Jellyfish")
+-message("==================================================================")
+-ExternalProject_Add(libjellyfish
+-    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+-    URL ftp://ftp.genome.umd.edu/pub/jellyfish/jellyfish-2.1.3.tar.gz
+-    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/jellyfish-2.1.3
+-    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+-    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/external/jellyfish-2.1.3/configure --prefix=<INSTALL_DIR> CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=${JELLYFISH_CXX_FLAGS}
+-    BUILD_COMMAND ${MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=${JELLYFISH_CXX_FLAGS}
+-    BUILD_IN_SOURCE 1
+-    INSTALL_COMMAND make install && 
+-                    cp config.h <INSTALL_DIR>/include/jellyfish-2.1.3/jellyfish/ &&
+-                    cp config.h <INSTALL_DIR>/include/
+-)
++#message("Build system will fetch and build the Cereal serialization library")
++#message("==================================================================")
++#include(ExternalProject)
++#ExternalProject_Add(libcereal
++#    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++#    URL http://www.cs.cmu.edu/~robp/files/cereal-v1.0.0.tgz
++#    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.0.0
++#    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
++#    UPDATE_COMMAND sh -c "mkdir -p <SOURCE_DIR>/build"
++#    BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/cereal-1.0.0/build
++#    CONFIGURE_COMMAND ""
++#    BUILD_COMMAND ""
++#    INSTALL_COMMAND sh -c "mkdir -p <INSTALL_DIR>/include && cp -r <SOURCE_DIR>/include/cereal <INSTALL_DIR>/include"
++#)
++
++#find_package(bwa)
++
++#message("Build system will fetch and build BWA (for Salmon)")
++#message("==================================================================")
++#include(ExternalProject)
++#ExternalProject_Add(libbwa
++#    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++#    DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/bwa/archive/0.7.12.3.tar.gz -o bwa-master.tar.gz &&
++#                     mkdir -p bwa-master && 
++#                     tar -xzvf bwa-master.tar.gz --strip-components=1 -C bwa-master 
++#    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/bwa-master
++#    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
++#    CONFIGURE_COMMAND ""
++#    BUILD_COMMAND sh -c "make CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}"
++#    INSTALL_COMMAND sh -c "mkdir -p <INSTALL_DIR>/lib && mkdir -p <INSTALL_DIR>/include/bwa && cp libbwa.a <INSTALL_DIR>/lib && cp *.h <INSTALL_DIR>/include/bwa && cp is.c bwtindex.c bwt_gen.c QSufSort.c ${CMAKE_CURRENT_SOURCE_DIR}/src/"
++#    BUILD_IN_SOURCE TRUE
++#)
++
++#message("Build system will fetch and build Jellyfish")
++#message("==================================================================")
++#ExternalProject_Add(libjellyfish
++#    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++#    URL ftp://ftp.genome.umd.edu/pub/jellyfish/jellyfish-2.1.3.tar.gz
++#    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/jellyfish-2.1.3
++#    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
++#    CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/external/jellyfish-2.1.3/configure --prefix=<INSTALL_DIR> CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=${JELLYFISH_CXX_FLAGS}
++#    BUILD_COMMAND ${MAKE} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} CXXFLAGS=${JELLYFISH_CXX_FLAGS}
++#    BUILD_IN_SOURCE 1
++#    INSTALL_COMMAND make install && 
++#                    cp config.h <INSTALL_DIR>/include/jellyfish-2.1.3/jellyfish/ &&
++#                    cp config.h <INSTALL_DIR>/include/
++#)
+ 
+ find_package(TBB)
+ 
+@@ -375,124 +377,124 @@
+ # Fetch and build Intel's Threading Building Blocks library.
+ #
+ ##
+-if(NOT TBB_FOUND)
++#if(NOT TBB_FOUND)
+ 
+-set(TBB_WILL_RECONFIGURE TRUE)
++#set(TBB_WILL_RECONFIGURE TRUE)
+ # Set the appropriate compiler
+-if (CLANG)
+-    set(TBB_COMPILER "clang")
+-else()
+-    set(TBB_COMPILER "gcc")
+-endif()
++#if (CLANG)
++#    set(TBB_COMPILER "clang")
++#else()
++#    set(TBB_COMPILER "gcc")
++#endif()
++
++#message("Build system will fetch and build Intel Threading Building Blocks")
++#message("==================================================================")
++## These are useful for the custom install step we'll do later
++#set(TBB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/tbb43_20140724oss)
++#set(TBB_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install)
+ 
+-message("Build system will fetch and build Intel Threading Building Blocks")
+-message("==================================================================")
+-# These are useful for the custom install step we'll do later
+-set(TBB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/tbb43_20140724oss)
+-set(TBB_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install)
+-
+-if ("${TBB_COMPILER}" STREQUAL "gcc") 
++#if ("${TBB_COMPILER}" STREQUAL "gcc") 
+     ## Don't know why it's a problem yet, but if we're using
+     ## GCC, get rid of the DO_ITT_NOTIFY flag
+-    set(TBB_CXXFLAGS "${TBB_CXXFLAGS} -UDO_ITT_NOTIFY")  
+-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
+-    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+-    PATCH_COMMAND "${TBB_PATCH_STEP}"
+-    CONFIGURE_COMMAND ""
+-    BUILD_COMMAND make CXXFLAGS=${TBB_CXXFLAGS} lambdas=1 compiler=${TBB_COMPILER} cfg=release tbb_build_prefix=LIBS 
+-    INSTALL_COMMAND sh -c "cp ${TBB_SOURCE_DIR}/build/LIBS_release/*.${SHARED_LIB_EXTENSION}* ${TBB_INSTALL_DIR}/lib && cp -r ${TBB_SOURCE_DIR}/include/* ${TBB_INSTALL_DIR}/include"
+-    BUILD_IN_SOURCE 1
+-)
++    #    set(TBB_CXXFLAGS "${TBB_CXXFLAGS} -UDO_ITT_NOTIFY")  
++#endif()
+ 
+-SET( RECONFIG_FLAGS ${RECONFIG_FLAGS} -DTBB_WILL_RECONFIGURE=FALSE -DTBB_RECONFIGURE=TRUE)
+-ExternalProject_Add_Step(libtbb reconfigure
+-        COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} ${RECONFIG_FLAGS}
+-        DEPENDEES install
+-)
+-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
++#    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
++#    PATCH_COMMAND "${TBB_PATCH_STEP}"
++#    CONFIGURE_COMMAND ""
++#    BUILD_COMMAND make CXXFLAGS=${TBB_CXXFLAGS} lambdas=1 compiler=${TBB_COMPILER} cfg=release tbb_build_prefix=LIBS 
++#    INSTALL_COMMAND sh -c "cp ${TBB_SOURCE_DIR}/build/LIBS_release/*.${SHARED_LIB_EXTENSION}* ${TBB_INSTALL_DIR}/lib && cp -r ${TBB_SOURCE_DIR}/include/* ${TBB_INSTALL_DIR}/include"
++#    BUILD_IN_SOURCE 1
++#)
++
++#SET( RECONFIG_FLAGS ${RECONFIG_FLAGS} -DTBB_WILL_RECONFIGURE=FALSE -DTBB_RECONFIGURE=TRUE)
++#ExternalProject_Add_Step(libtbb reconfigure
++#        COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR} ${RECONFIG_FLAGS}
++#        DEPENDEES install
++#)
++#endif()
+ 
+ ##
+ # If we're fetching tbb, we need to have dummy paths for these variables
+ # so that CMake won't complain
+ ##
+-if(TBB_WILL_RECONFIGURE)
+-    set(TBB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/install/include)
+-    set(TBB_LIBRARY_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib)
+-    #set(TBB_LIBRARIES tbb tbbmalloc)
+-    set(TBB_LIBRARIES ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libtbb.${SHARED_LIB_EXTENSION}
+-                      ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libtbbmalloc.${SHARED_LIB_EXTENSION}
+-    )
+-endif()
++#if(TBB_WILL_RECONFIGURE)
++#    set(TBB_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/install/include)
++#    set(TBB_LIBRARY_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib)
++#    #set(TBB_LIBRARIES tbb tbbmalloc)
++#    set(TBB_LIBRARIES ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libtbb.${SHARED_LIB_EXTENSION}
++#                      ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libtbbmalloc.${SHARED_LIB_EXTENSION}
++#    )
++#endif()
+ 
+ ##
+ #  Similar to the Boost trick above, the libtbb reconfigure should force this code
+ #  to be run on the second configuration pass, where it should appropriately set the
+ #  TBB_INSTALL_DIR variable.
+ ##
+-if (TBB_RECONFIGURE)
+-    unset(TBB_FOUND CACHE)
+-    unset(TBB_INSTALL_DIR CACHE)
+-    unset(CMAKE_PREFIX_PATH CACHE)
+-    set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/install)
+-    set(TBB_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install)
+-    message("TBB_INSTALL_DIR = ${TBB_INSTALL_DIR}")
+-    find_package(TBB)
+-endif()
++#if (TBB_RECONFIGURE)
++#    unset(TBB_FOUND CACHE)
++#    unset(TBB_INSTALL_DIR CACHE)
++#    unset(CMAKE_PREFIX_PATH CACHE)
++#    set(CMAKE_PREFIX_PATH ${CMAKE_CURRENT_SOURCE_DIR}/external/install)
++#    set(TBB_INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install)
++#    message("TBB_INSTALL_DIR = ${TBB_INSTALL_DIR}")
++#    find_package(TBB)
++#endif()
+ 
+ 
+ message("TBB_LIBRARIES = ${TBB_LIBRARIES}")
+ 
+-message("Build system will compile libgff")
+-message("==================================================================")
+-ExternalProject_Add(libgff
+-    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+-    URL http://www.cs.cmu.edu/~robp/files/libgff.tgz
+-    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
+-    BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/libgff/build
+-    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_SOURCE_DIR}/external/install
+-)
+-
+-message("Build system will compile Staden IOLib")
+-message("==================================================================")
+-ExternalProject_Add(libstadenio 
+-    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+-    DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/staden-io_lib/releases/download/v1.13.10/io_lib-1.13.10.tar.gz -o staden-io_lib-v1.13.10.tar.gz &&
+-                     mkdir -p staden-io_lib-1.13.10 &&
+-                     tar -xzf staden-io_lib-v1.13.10.tar.gz --strip-components=1 -C staden-io_lib-1.13.10 &&
+-                     rm -fr staden-io_lib &&
+-                     mv -f staden-io_lib-1.13.10 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=<INSTALL_DIR> LDFLAGS=${LIBSTADEN_LDFLAGS} CFLAGS=${LIBSTADEN_CFLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
+-    BUILD_COMMAND make CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
+-    BUILD_IN_SOURCE 1
+-    INSTALL_COMMAND make install
+-)
+-
+-message("Build system will fetch SPDLOG")
+-message("==================================================================")
+-ExternalProject_Add(libspdlog
+-    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
+-    DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/spdlog/archive/v1.5.tar.gz -o spdlog-v1.5.tar.gz &&
+-                     tar -xzf spdlog-v1.5.tar.gz &&
+-                     rm -fr spdlog &&
+-                     mv -f  spdlog-1.5 spdlog
+-    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/spdlog
+-    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
+-    CONFIGURE_COMMAND ""
+-    BUILD_COMMAND ""
+-    BUILD_IN_SOURCE 1
+-    INSTALL_COMMAND cp -r <SOURCE_DIR>/include/spdlog <INSTALL_DIR>/include
+-)
++#message("Build system will compile libgff")
++#message("==================================================================")
++#ExternalProject_Add(libgff
++#    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++#    URL http://www.cs.cmu.edu/~robp/files/libgff.tgz
++#    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
++#    BINARY_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/libgff/build
++#    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_CURRENT_SOURCE_DIR}/external/install
++#)
++
++#message("Build system will compile Staden IOLib")
++#message("==================================================================")
++#ExternalProject_Add(libstadenio 
++#    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++#    DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/staden-io_lib/releases/download/v1.13.10/io_lib-1.13.10.tar.gz -o staden-io_lib-v1.13.10.tar.gz &&
++#                     mkdir -p staden-io_lib-1.13.10 &&
++#                     tar -xzf staden-io_lib-v1.13.10.tar.gz --strip-components=1 -C staden-io_lib-1.13.10 &&
++#                     rm -fr staden-io_lib &&
++#                     mv -f staden-io_lib-1.13.10 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=<INSTALL_DIR> LDFLAGS=${LIBSTADEN_LDFLAGS} CFLAGS=${LIBSTADEN_CFLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
++#    BUILD_COMMAND make CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER}
++#    BUILD_IN_SOURCE 1
++#    INSTALL_COMMAND make install
++#)
++
++#message("Build system will fetch SPDLOG")
++#message("==================================================================")
++#ExternalProject_Add(libspdlog
++#    DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external
++#    DOWNLOAD_COMMAND curl -k -L https://github.com/COMBINE-lab/spdlog/archive/v1.5.tar.gz -o spdlog-v1.5.tar.gz &&
++#                     tar -xzf spdlog-v1.5.tar.gz &&
++#                     rm -fr spdlog &&
++#                     mv -f  spdlog-1.5 spdlog
++#    SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/spdlog
++#    INSTALL_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/install
++#    CONFIGURE_COMMAND ""
++#    BUILD_COMMAND ""
++#    BUILD_IN_SOURCE 1
++#    INSTALL_COMMAND cp -r <SOURCE_DIR>/include/spdlog <INSTALL_DIR>/include
++#)
+ 
+ set (FAST_MALLOC_LIB "")
+ set (HAVE_FAST_MALLOC FALSE)
+@@ -516,23 +518,23 @@
+     endif()
+ endif()
+ 
+-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
+-        CONFIGURE_COMMAND sh -c "CC=${CMAKE_C_COMPILER} ./autogen.sh --prefix=<INSTALL_DIR>"
+-        INSTALL_COMMAND cp -r lib <INSTALL_DIR>/ && cp -r include <INSTALL_DIR>/
+-        )
+-
+-    set (FAST_MALLOC_LIB ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libjemalloc.a)
+-    set (HAVE_FAST_MALLOC TRUE)
+-endif ()
++#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
++#        CONFIGURE_COMMAND sh -c "CC=${CMAKE_C_COMPILER} ./autogen.sh --prefix=<INSTALL_DIR>"
++#        INSTALL_COMMAND cp -r lib <INSTALL_DIR>/ && cp -r include <INSTALL_DIR>/
++#        )
++#
++#    set (FAST_MALLOC_LIB ${CMAKE_CURRENT_SOURCE_DIR}/external/install/lib/libjemalloc.a)
++#    set (HAVE_FAST_MALLOC TRUE)
++#endif ()
+ 
+ ###
+ #
+--- salmon.orig/src/CMakeLists.txt
++++ salmon/src/CMakeLists.txt
+@@ -43,7 +43,7 @@
+ ${GAT_SOURCE_DIR}/external/cereal/include
+ ${GAT_SOURCE_DIR}/external/install/include
+ ${GAT_SOURCE_DIR}/external/install/include/jellyfish-2.1.3
+-${GAT_SOURCE_DIR}/external/install/include/bwa
++/usr/include/bwa
+ ${ZLIB_INCLUDE_DIR}
+ ${TBB_INCLUDE_DIRS}
+ ${Boost_INCLUDE_DIRS}
+@@ -74,7 +74,7 @@
+ set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
+ 
+ # Build the Salmon library
+-add_library(salmon_core STATIC ${SALMON_LIB_SRCS} )
++add_library(salmon_core ${SALMON_LIB_SRCS} )
+ 
+ # Build the salmon executable
+ add_executable(salmon ${SALMON_MAIN_SRCS} ${SALMON_ALIGN_SRCS})
+@@ -107,10 +107,10 @@
+     gff
+     ${PTHREAD_LIB}
+     ${Boost_LIBRARIES} 
+-    ${GAT_SOURCE_DIR}/external/install/lib/libstaden-read.a
++    libstaden-read.so
+     ${ZLIB_LIBRARY} 
+-    ${GAT_SOURCE_DIR}/external/install/lib/libjellyfish-2.0.a 
+-    ${GAT_SOURCE_DIR}/external/install/lib/libbwa.a
++    libjellyfish-2.0.so 
++    /usr/lib/libbwa.a
+     m
+     ${LIBLZMA_LIBRARIES}
+     ${BZIP2_LIBRARIES}
diff --git a/debian/patches/jellyfish-update b/debian/patches/jellyfish-update
new file mode 100644
index 0000000..9349b44
--- /dev/null
+++ b/debian/patches/jellyfish-update
@@ -0,0 +1,103 @@
+--- salmon.orig/src/merge_files.cc
++++ salmon/src/merge_files.cc
+@@ -29,6 +29,8 @@
+ #include <jellyfish/rectangular_binary_matrix.hpp>
+ #include <jellyfish/cpp_array.hpp>
+ 
++namespace err = jellyfish::err;
++
+ using jellyfish::file_header;
+ using jellyfish::RectangularBinaryMatrix;
+ using jellyfish::mer_dna;
+@@ -96,7 +98,7 @@
+   for(size_t i = 0; i < files.size(); i++) {
+     files.init(i, input_files[i]);
+     if(!files[i].is.good())
+-      eraise(MergeError) << "Failed to open input file '" << input_files[i] << "'";
++      throw MergeError(err::msg() << "Failed to open input file '" << input_files[i] << "'");
+ 
+     file_header& h = files[i].header;
+     if(i == 0) {
+@@ -115,22 +117,22 @@
+       out_counter_len = std::min(out_counter_len, h.counter_len());
+     } else {
+       if(format != h.format())
+-        eraise(MergeError) << "Can't merge files with different formats (" << format << ", " << h.format() << ")";
++        throw MergeError(err::msg() << "Can't merge files with different formats (" << format << ", " << h.format() << ")");
+       if(h.key_len() != key_len)
+-        eraise(MergeError) << "Can't merge hashes of different key lengths (" << key_len << ", " << h.key_len() << ")";
++        throw MergeError(err::msg() << "Can't merge hashes of different key lengths (" << key_len << ", " << h.key_len() << ")");
+       if(h.max_reprobe_offset() != max_reprobe_offset)
+-        eraise(MergeError) << "Can't merge hashes with different reprobing strategies";
++        throw MergeError(err::msg() << "Can't merge hashes with different reprobing strategies");
+       if(h.size() != size)
+-        eraise(MergeError) << "Can't merge hash with different size (" << size << ", " << h.size() << ")";
++        throw MergeError(err::msg() << "Can't merge hash with different size (" << size << ", " << h.size() << ")");
+       if(h.matrix() != *matrix)
+-        eraise(MergeError) << "Can't merge hash with different hash function";
++        throw MergeError(err::msg() << "Can't merge hash with different hash function");
+     }
+   }
+   mer_dna::k(key_len / 2);
+ 
+   std::ofstream out(out_file);
+   if(!out.good())
+-    eraise(MergeError) << "Can't open out file '" << out_file << "'";
++    throw MergeError(err::msg() << "Can't open out file '" << out_file << "'");
+   out_header.format(format);
+ 
+   if(!format.compare(binary_dumper::format)) {
+@@ -143,7 +145,7 @@
+     text_writer writer;
+     do_merge<text_reader, text_writer>(files, out, writer, min, max);
+   } else {
+-    eraise(MergeError) << "Unknown format '" << format << "'";
++    throw MergeError(err::msg() << "Unknown format '" << format << "'");
+   }
+   out.close();
+ }
+--- salmon.orig/src/BuildSalmonIndex.cpp
++++ salmon/src/BuildSalmonIndex.cpp
+@@ -21,7 +21,6 @@
+ #include "cereal/types/vector.hpp"
+ #include "cereal/archives/binary.hpp"
+ 
+-#include "jellyfish/config.h"
+ #include "jellyfish/err.hpp"
+ #include "jellyfish/misc.hpp"
+ #include "jellyfish/jellyfish.hpp"
+--- salmon.orig/include/PairSequenceParser.hpp
++++ salmon/include/PairSequenceParser.hpp
+@@ -130,9 +130,9 @@
+     if(type1 == DONE_TYPE || type2 == DONE_TYPE)
+       return open_next_files(st);
+     if(type1 != type2)
+-      eraise(std::runtime_error) << "Paired files are of different format";
++      throw std::runtime_error("Paired files are of different format");
+     if(type1 == ERROR_TYPE || type2 == ERROR_TYPE)
+-      eraise(std::runtime_error) << "Unsupported format";
++      throw std::runtime_error("Unsupported format");
+     st.type = type1;
+   }
+ 
+@@ -165,7 +165,7 @@
+       hsq.seq.append(tmp);             // two lines avoiding copying
+     }
+     if(!is.good())
+-      eraise(std::runtime_error) << "Truncated fastq file";
++      throw std::runtime_error("Truncated fastq file");
+     is.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
+     hsq.qual.clear();
+     while(hsq.qual.size() < hsq.seq.size() && is.good()) {
+@@ -173,9 +173,9 @@
+       hsq.qual.append(tmp);
+     }
+     if(hsq.qual.size() != hsq.seq.size())
+-      eraise(std::runtime_error) << "Invalid fastq file: wrong number of quals";
++      throw std::runtime_error("Invalid fastq file: wrong number of quals");
+     if(is.peek() != EOF && is.peek() != '@')
+-      eraise(std::runtime_error) << "Invalid fastq file: header missing";
++      throw std::runtime_error("Invalid fastq file: header missing");
+ 
+   }
+ 
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..7ac99c0
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,3 @@
+dependency-fix
+jellyfish-update
+cmake-adj
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..1d11ebc
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,22 @@
+#!/usr/bin/make -f
+
+# DH_VERBOSE := 1
+
+# some helpful variables - uncomment them if needed
+# shamelessly stolen from http://jmtd.net/log/awk/
+#DEBVERS        := $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}')
+#VERSION        := $(shell echo '$(DEBVERS)' | sed -e 's/^[0-9]*://' -e 's/-.*//')
+#DEBFLAVOR      := $(shell dpkg-parsechangelog | awk '/^Distribution:/ {print $$2}')
+#DEBPKGNAME     := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2}')
+#DEBIAN_BRANCH  := $(shell awk 'BEGIN{FS="[= ]+"} /debian-branch/ {print $$2}' debian/gbp.conf)
+#GIT_TAG        := $(subst ~,_,$(VERSION))
+
+# alternatively to manually set those variables, you can
+#  include /usr/share/dpkg/default.mk
+# and use what is set there.
+
+%:
+	dh $@
+
+#get-orig-source:
+#	. debian/get-orig-source
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/upstream/metadata b/debian/upstream/metadata
new file mode 100644
index 0000000..d8b5812
--- /dev/null
+++ b/debian/upstream/metadata
@@ -0,0 +1,12 @@
+Reference:
+  Author: 
+  Title: 
+  Journal: 
+  Year: 
+  Volume: 
+  Number: 
+  Pages: 
+  DOI: 
+  PMID:
+  URL: 
+  eprint: 
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..c0b7f12
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,10 @@
+version=3
+# Uncomment to find new files on Github
+#  - when using releases:
+https://github.com/COMBINE-lab/salmon/releases .*/archive/v(\d[\d.-]+)\.(?:tar(?:\.gz|\.bz2)?|tgz)
+# Remark: frequently you can do s/#PREFIX#/v?/ since 'v' or nothing is quite common but there are other prefixes possible
+
+
+# if you need to repack and choose +dfsg prefix
+# opts=dversionmangle=s/[~\+]dfsg[0-9]*// \
+#

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/salmon.git



More information about the debian-med-commit mailing list