summaryrefslogtreecommitdiff
path: root/sci-biology/bamtools
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sci-biology/bamtools
reinit the tree, so we can have metadata
Diffstat (limited to 'sci-biology/bamtools')
-rw-r--r--sci-biology/bamtools/Manifest7
-rw-r--r--sci-biology/bamtools/bamtools-2.4.1.ebuild25
-rw-r--r--sci-biology/bamtools/files/bamtools-2.4.1-fix-build-system.patch209
-rw-r--r--sci-biology/bamtools/files/bamtools-2.4.1-fix-c++14.patch78
-rw-r--r--sci-biology/bamtools/metadata.xml20
5 files changed, 339 insertions, 0 deletions
diff --git a/sci-biology/bamtools/Manifest b/sci-biology/bamtools/Manifest
new file mode 100644
index 000000000000..2437568ff360
--- /dev/null
+++ b/sci-biology/bamtools/Manifest
@@ -0,0 +1,7 @@
+AUX bamtools-2.4.1-fix-build-system.patch 7559 SHA256 6f4de0efe1f415e530424244ec74c5f058dbcabd1345a1a8f81d0e11673b8b5b SHA512 41b16e6eaba5c6008ad0ff620ba7adf036ef03c9cf881e269e837274957a770608a25f20d1f01dfec91e318a994682299465273b6904f7c16f6b9544e909db78 WHIRLPOOL 81762b619ecb1bb75e8a6894d38ec465181fd261e254935ed199aa30dbfba8c321f22bb22bea0ea4f1270a49b374aa58f1dc4fd5c078ecd394958a73c7a55515
+AUX bamtools-2.4.1-fix-c++14.patch 2584 SHA256 f9a0e39c7f0c146eb2366deff7c4c7143f18d8b0ead5cfbe0f58f45f8a14c592 SHA512 e583ee9241df351e814c4de9297c7513e7cae3155e71a16f35aac1191c57dd2abc0c1eb166131660b8583a9a96bb0a7ccda2aa6048d5f098e07671f7232a5c7b WHIRLPOOL f92dc2b63598c7a0fa1a43994a68bc5ca4d2d5c5844d25ae3001be8f9a6b0d882717211f7f972c509c933226d2a6e07597f37380073f7388eedc81a8f5c8800f
+DIST bamtools-2.4.1.tar.gz 540482 SHA256 933a0c1a83c88c1dac8078c0c0e82f6794c75cb927265399404bc2cc2611204b SHA512 ee674014f27b2dc0aa7c0415e8654ee7c39cfdecafbd9983d970fad6ad29f070a7ff372ee05765956cf7c8f8bb3b9763b6e537e693a0d2d64680148b1a23cfee WHIRLPOOL 6ef73f0713ebf993123eac7095061e32fe6a53db383e28a5dd8967afee92fb211ce56611de9718ce4cce84bdee14157ff968e0a6edcaead4e06b44008b78b84c
+EBUILD bamtools-2.4.1.ebuild 588 SHA256 109334524441860441a7e2dad37664b53497866f29ad9a7cce7f8f95c3577072 SHA512 d9140d0315a7b37662f2c9ffc40f42ef450925e55458f3af31f6048b48610ad721622f970eb3f9d9df5d011c339c1eee4ce0e9b13ccb16a6954156497c92258e WHIRLPOOL 99085acf92c93c2f227b3fe9e7203234735cf663ef4ce0a74777c7199570c24f964699d5b9281f22d4604ecb2c1d6635be3bc2c5c33a1ddc5d8b72267f2e3d29
+MISC ChangeLog 3972 SHA256 8b369e24d7cfebf3ba8b90196888ee34c780102a93139d1cc49b852fe3501aba SHA512 bd5ba632447931f31d1f4d1aa62d51cd970105534943c20be9b4e3a1e4bdc430fd22b3120ebe6a55166c7813c5826326cc3b68bf5f6fb32ff178ebf8b290b18e WHIRLPOOL 2b88ca8cd731e74cefa3bf3303680de5e2e357f70005969b35dc0cd947483175e6011b0c9d73d2a515e5accf11337e54b580825a119fca5d346a1ab2310361de
+MISC ChangeLog-2015 2233 SHA256 ef7f962abd2e9877dabc290266685ac5e02a67eaab0a797d9bc7579ec290d317 SHA512 beca82b599829c681d5a8b81cc5c473205ff8199a97e1bfcad8b58a0e67247023bb8e6f3c87f493c46910c33729a2a0bf10369fdf3f251846a7dd38797d54f89 WHIRLPOOL 7a511f4808aaf95e48ed54ed6c4b84fa6ea7190d1edbe738b84e163ab05c408cb81e4cec864c3042d35cb6f681169103df7987cce8559607813dc9bd7c602578
+MISC metadata.xml 881 SHA256 53bf4f753cb3cfbe3661d3c51ed666026f7fe669df50450dc524a1e3ba431cdb SHA512 4922e3edaa65c7981b8656245287e4c4d613f8ba6d6b63131fe9e5183f8119eab5501e354ad80d37d8f61f56d86513af2aedd2b086e5da3d1ab48b3aef57a18c WHIRLPOOL 979a222333a4c0073a7105e9593aa139541735a27fda813101d0c187a470112ff94a78042f5a11b3601bf680c5cd75ace3f06117fbd045dc7627d2c30e5f38e2
diff --git a/sci-biology/bamtools/bamtools-2.4.1.ebuild b/sci-biology/bamtools/bamtools-2.4.1.ebuild
new file mode 100644
index 000000000000..2196c66790d3
--- /dev/null
+++ b/sci-biology/bamtools/bamtools-2.4.1.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+DESCRIPTION="A programmer's API and an end-user's toolkit for handling BAM files"
+HOMEPAGE="https://github.com/pezmaster31/bamtools"
+SRC_URI="https://github.com/pezmaster31/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RDEPEND="
+ >=dev-libs/jsoncpp-1.8.0
+ sys-libs/zlib"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.1-fix-build-system.patch
+ "${FILESDIR}"/${PN}-2.4.1-fix-c++14.patch
+)
diff --git a/sci-biology/bamtools/files/bamtools-2.4.1-fix-build-system.patch b/sci-biology/bamtools/files/bamtools-2.4.1-fix-build-system.patch
new file mode 100644
index 000000000000..795972330303
--- /dev/null
+++ b/sci-biology/bamtools/files/bamtools-2.4.1-fix-build-system.patch
@@ -0,0 +1,209 @@
+* Unbundle jsoncpp
+* Remove forcing C++98
+* Remove forcing CMAKE_BUILD_TYPE
+* Remove -fPIC globally
+* Fix LFS macro definitions
+* Make building static library optional
+* Use GNUInstallDirs conventions
+* Install .pc file
+See also: https://bugs.gentoo.org/show_bug.cgi?id=550144
+
+Taken from https://github.com/pezmaster31/bamtools/pull/139
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,7 +9,14 @@
+ project( BamTools )
+
+ # Cmake requirements
+-cmake_minimum_required( VERSION 2.6.4 )
++cmake_minimum_required( VERSION 3.0 )
++
++# on macOS, MACOSX_RPATH is enabled by default on more recent versions
++# of CMake. Disable this behaviour, and let user enable it if need be.
++cmake_policy( SET CMP0042 OLD )
++
++# Adhere to GNU filesystem layout conventions
++include( GNUInstallDirs )
+
+ # Force the build directory to be different from source directory
+ macro( ENSURE_OUT_OF_SOURCE_BUILD MSG )
+@@ -34,18 +41,21 @@
+ set( BamTools_VERSION_MINOR 4 )
+ set( BamTools_VERSION_BUILD 1 )
+
+-# set our library and executable destination dirs
+-set( EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin" )
+-set( LIBRARY_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/lib" )
+-
+ # define compiler flags for all code
+-set( CMAKE_BUILD_TYPE Release )
+-set( CMAKE_CXX_FLAGS_RELEASE "-std=c++98 ${CMAKE_CXX_FLAGS_RELEASE}" )
+-add_definitions( -Wall -D_FILE_OFFSET_BITS=64 )
++add_definitions( -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE )
++add_compile_options( -Wall )
+
+ # -----------------------------------------------
+ # handle platform-/environment-specific defines
+
++# Make building the static library optional
++option( BUILD_STATIC "Build static libbamtools archive" OFF )
++if( BUILD_STATIC )
++ set( BAMTOOLS_CMD_LDFLAGS BamTools-static )
++else()
++ set( BAMTOOLS_CMD_LDFLAGS BamTools )
++endif()
++
+ # If planning to run in Node.js environment, run:
+ # cmake -DEnableNodeJS=true
+ if( EnableNodeJS )
+@@ -57,6 +67,11 @@
+ add_definitions( -DSUN_OS )
+ endif()
+
++# find system JsonCpp
++find_package( PkgConfig )
++pkg_search_module( JSONCPP jsoncpp>=1 )
++
++
+ # -------------------------------------------
+
+ # add our includes root path
+--- a/src/api/CMakeLists.txt
++++ b/src/api/CMakeLists.txt
+@@ -10,7 +10,6 @@
+
+ # add compiler definitions
+ add_definitions( -DBAMTOOLS_API_LIBRARY ) # (for proper exporting of library symbols)
+-add_definitions( -fPIC ) # (attempt to force PIC compiling on CentOS, not being set on shared libs by CMake)
+
+ # fetch all internal source files
+ add_subdirectory( internal )
+@@ -31,18 +30,6 @@
+ ${InternalSources}
+ )
+
+-# create main BamTools API shared library
+-add_library( BamTools SHARED ${BamToolsAPISources} )
+-set_target_properties( BamTools PROPERTIES
+- SOVERSION "2.4.1"
+- OUTPUT_NAME "bamtools" )
+-
+-# create main BamTools API static library
+-add_library( BamTools-static STATIC ${BamToolsAPISources} )
+-set_target_properties( BamTools-static PROPERTIES
+- OUTPUT_NAME "bamtools"
+- PREFIX "lib" )
+-
+ # link libraries automatically with zlib (and Winsock2, if applicable)
+ if( WIN32 )
+ set( APILibs z ws2_32 )
+@@ -50,12 +37,23 @@
+ set( APILibs z )
+ endif()
+
+-target_link_libraries( BamTools ${APILibs} )
+-target_link_libraries( BamTools-static ${APILibs} )
++# create main BamTools API shared library
++add_library( BamTools SHARED ${BamToolsAPISources} )
++set_target_properties( BamTools PROPERTIES
++ SOVERSION "2.4.1"
++ OUTPUT_NAME "bamtools" )
++target_link_libraries( BamTools ${APILibs} )
++install( TARGETS BamTools LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" )
+
+-# set library install destinations
+-install( TARGETS BamTools LIBRARY DESTINATION "lib/bamtools" RUNTIME DESTINATION "bin")
+-install( TARGETS BamTools-static ARCHIVE DESTINATION "lib/bamtools")
++# create main BamTools API static library
++if( BUILD_STATIC )
++ add_library( BamTools-static STATIC ${BamToolsAPISources} )
++ set_target_properties( BamTools-static PROPERTIES
++ OUTPUT_NAME "bamtools"
++ PREFIX "lib" )
++ target_link_libraries( BamTools-static ${APILibs} )
++ install( TARGETS BamTools-static ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" )
++endif()
+
+ # export API headers
+ include(../ExportHeader.cmake)
+--- a/src/bamtools.pc.in
++++ b/src/bamtools.pc.in
+@@ -0,0 +1,11 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++exec_prefix=${prefix}
++libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++
++Name: BamTools
++Description: BamTools is a C++ library for reading and manipulating BAM files
++Version: @BamTools_VERSION_MAJOR@.@BamTools_VERSION_MINOR@.@BamTools_VERSION_BUILD@
++
++Libs: -L${libdir} -lbamtools
++Cflags: -I${includedir}
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -14,3 +14,7 @@
+ include( ExportHeader.cmake )
+ set( SharedIncludeDir "shared" )
+ ExportHeader( SharedHeaders shared/bamtools_global.h ${SharedIncludeDir} )
++
++# configure and install pkg-config file
++configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/bamtools.pc.in ${CMAKE_CURRENT_BINARY_DIR}/bamtools-1.pc @ONLY )
++install( FILES ${CMAKE_CURRENT_BINARY_DIR}/bamtools-1.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig )
+--- a/src/ExportHeader.cmake
++++ b/src/ExportHeader.cmake
+@@ -18,10 +18,10 @@
+ add_custom_command( TARGET ${MODULE} COMMAND
+ ${CMAKE_COMMAND} -E copy_if_different
+ "${CMAKE_CURRENT_SOURCE_DIR}/${FILE}"
+- "${CMAKE_SOURCE_DIR}/include/${DEST}/${FILENAME}" )
++ "${CMAKE_CURRENT_BINARY_DIR}/include/${DEST}/${FILENAME}" )
+
+ # make sure files are properly 'installed'
+- install( FILES "${FILE}" DESTINATION "include/bamtools/${DEST}" )
++ install( FILES "${FILE}" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/bamtools/${DEST}" )
+
+ endfunction( ExportHeader )
+
+--- a/src/third_party/CMakeLists.txt
++++ b/src/third_party/CMakeLists.txt
+@@ -5,5 +5,3 @@
+ # src/third-party/
+ # ==========================
+
+-# list third-party subdirectories to build in
+-add_subdirectory( jsoncpp )
+--- a/src/toolkit/CMakeLists.txt
++++ b/src/toolkit/CMakeLists.txt
+@@ -35,10 +35,14 @@
+ OUTPUT_NAME "bamtools"
+ )
+ # make version info available in application
+-configure_file( bamtools_version.h.in ${BamTools_SOURCE_DIR}/src/toolkit/bamtools_version.h )
++configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/bamtools_version.h.in ${CMAKE_CURRENT_BINARY_DIR}/bamtools_version.h )
++include_directories( ${CMAKE_CURRENT_BINARY_DIR} )
++
++# set include paths for system JsonCpp
++target_include_directories( bamtools_cmd PRIVATE ${JSONCPP_INCLUDE_DIRS} )
+
+ # define libraries to link
+-target_link_libraries( bamtools_cmd BamTools BamTools-utils jsoncpp )
++target_link_libraries( bamtools_cmd BamTools-utils ${BAMTOOLS_CMD_LDFLAGS} ${JSONCPP_LDFLAGS} )
+
+ # set application install destinations
+-install( TARGETS bamtools_cmd DESTINATION "bin")
++install( TARGETS bamtools_cmd DESTINATION "${CMAKE_INSTALL_BINDIR}" )
+--- a/src/utils/CMakeLists.txt
++++ b/src/utils/CMakeLists.txt
+@@ -8,9 +8,8 @@
+ # list include paths
+ include_directories( ${BamTools_SOURCE_DIR}/src/api )
+
+-# add compiler definitions
++# add compiler definitions
+ add_definitions( -DBAMTOOLS_UTILS_LIBRARY ) # (for proper exporting of library symbols)
+-add_definitions( -fPIC ) # (attempt to force PIC compiling on CentOS, not being set on shared libs by CMake)
+
+ # create BamTools utils library
+ add_library( BamTools-utils STATIC
diff --git a/sci-biology/bamtools/files/bamtools-2.4.1-fix-c++14.patch b/sci-biology/bamtools/files/bamtools-2.4.1-fix-c++14.patch
new file mode 100644
index 000000000000..8d9b1e02c19f
--- /dev/null
+++ b/sci-biology/bamtools/files/bamtools-2.4.1-fix-c++14.patch
@@ -0,0 +1,78 @@
+* Fix building in C++11/C++14 modes
+See also: https://bugs.gentoo.org/show_bug.cgi?id=596208
+
+Taken from https://github.com/pezmaster31/bamtools/pull/139
+
+--- a/src/api/BamConstants.h
++++ b/src/api/BamConstants.h
+@@ -126,10 +126,10 @@
+
+ // zlib & BGZF constants
+ const char GZIP_ID1 = 31;
+-const char GZIP_ID2 = 139;
++const char GZIP_ID2 = static_cast<char>(139);
+ const char CM_DEFLATE = 8;
+ const char FLG_FEXTRA = 4;
+-const char OS_UNKNOWN = 255;
++const char OS_UNKNOWN = static_cast<char>(255);
+ const char BGZF_XLEN = 6;
+ const char BGZF_ID1 = 66;
+ const char BGZF_ID2 = 67;
+--- a/src/toolkit/bamtools_filter.cpp
++++ b/src/toolkit/bamtools_filter.cpp
+@@ -16,7 +16,7 @@
+ #include <utils/bamtools_utilities.h>
+ using namespace BamTools;
+
+-#include <jsoncpp/json.h>
++#include <json/json.h>
+ using namespace Json;
+
+ #include <cstdio>
+@@ -647,7 +647,7 @@
+ if ( !reader.parse(document, root) ) {
+ // use built-in error reporting mechanism to alert user what was wrong with the script
+ cerr << "bamtools filter ERROR: failed to parse script - see error message(s) below" << endl
+- << reader.getFormatedErrorMessages();
++ << reader.getFormattedErrorMessages();
+ return false;
+ }
+
+--- a/src/toolkit/bamtools_resolve.cpp
++++ b/src/toolkit/bamtools_resolve.cpp
+@@ -410,7 +410,7 @@
+ ReadGroupResolver& resolver = (*rgIter).second;
+
+ // store read name with resolver
+- resolver.ReadNames.insert( make_pair<string,bool>(fields[1], true) ) ;
++ resolver.ReadNames.insert( make_pair(fields[1], true) ) ;
+ }
+
+ // if here, return success
+@@ -607,7 +607,7 @@
+ resolver.IsAmbiguous = ( fields.at(6) == TRUE_KEYWORD );
+
+ // store RG entry and return success
+- readGroups.insert( make_pair<string, ReadGroupResolver>(name, resolver) );
++ readGroups.insert( make_pair(name, resolver) );
+ return true;
+ }
+
+@@ -1014,7 +1014,7 @@
+ }
+
+ // if read name not found, store new entry
+- else resolver.ReadNames.insert( make_pair<string, bool>(al.Name, isCurrentMateUnique) );
++ else resolver.ReadNames.insert( make_pair(al.Name, isCurrentMateUnique) );
+ }
+
+ // close files
+@@ -1046,7 +1046,7 @@
+ SamReadGroupConstIterator rgEnd = header.ReadGroups.ConstEnd();
+ for ( ; rgIter != rgEnd; ++rgIter ) {
+ const SamReadGroup& rg = (*rgIter);
+- m_readGroups.insert( make_pair<string, ReadGroupResolver>(rg.ID, ReadGroupResolver()) );
++ m_readGroups.insert( make_pair(rg.ID, ReadGroupResolver()) );
+ }
+ }
+
diff --git a/sci-biology/bamtools/metadata.xml b/sci-biology/bamtools/metadata.xml
new file mode 100644
index 000000000000..f703e6a82899
--- /dev/null
+++ b/sci-biology/bamtools/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mmokrejs@gmail.com</email>
+ <name>Martin Mokrejs</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sci-biology@gentoo.org</email>
+ <name>Gentoo Biology Project</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>BAM (Binary Alignment/Map) format is useful for storing large DNA sequence alignments. It is closely related to the text-based SAM format, but optimized for random-access. BamTools provides a fast, flexible C++ API for reading and writing BAM files.</longdescription>
+ <upstream>
+ <remote-id type="github">pezmaster31/bamtools</remote-id>
+ </upstream>
+</pkgmetadata>