summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2016-12-14 23:42:36 +0100
committerDavid Seifert <soap@gentoo.org>2016-12-14 23:43:01 +0100
commit72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea (patch)
tree02f77fe1cd8cdf070605888df64aad76041fb7e4 /sci-biology
parentpackage.use.mask: Fix bug number (diff)
downloadgentoo-72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea.tar.gz
gentoo-72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea.tar.bz2
gentoo-72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea.zip
sci-biology/bamtools: Version bump to 2.4.1
Gentoo-bug: 550144, 596208 * Make C++ mode agnostic * Unbundle jsoncpp and use more modern versions Package-Manager: portage-2.3.3
Diffstat (limited to 'sci-biology')
-rw-r--r--sci-biology/bamtools/Manifest1
-rw-r--r--sci-biology/bamtools/bamtools-2.4.1.ebuild26
-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
4 files changed, 314 insertions, 0 deletions
diff --git a/sci-biology/bamtools/Manifest b/sci-biology/bamtools/Manifest
index 1c1972c599d5..fa04b1b15f81 100644
--- a/sci-biology/bamtools/Manifest
+++ b/sci-biology/bamtools/Manifest
@@ -1,2 +1,3 @@
DIST bamtools-1.0.2.tar.gz 207523 SHA256 d3ca75d2bec531f15dbc400a76afbe48d47452ce05552c88943bbce81a0862d8 SHA512 1934d40d50f3fdf2b1fcacb8b59cf954a3c791d3095649ac4f1246563e9d8d4afe385e42a2c6c383f0bb519eede401d12c71203d279b33e01575222f9f84c244 WHIRLPOOL 9fb4d4feb3ff867866a96533231a1b8284fd5156ab142cad727d32f8f3c157e246cca59185c3bdc253b19bde2514404a7107a62443780b060f6e8f270622c990
DIST bamtools-2.3.0.tar.gz 539446 SHA256 288046e6d5d41afdc5fce8608c5641cf2b8e670644587c1315b90bbe92f039af SHA512 432f66384cffc04ab6bc7dc66d8f7b79c1e468d0068db4cabb5cac05f9b6bef7968eff71ffb3ee51b84e23d9bb66a11ef267024138f40116c25e7f18e7210a5c WHIRLPOOL dd888f67c3d0b0ce2f5f2875e242e5df0d54cefd13693230b5f10eb57dd780304b601027cf65f6598a54061a7166903bf06c6c9a46939f6ce6bbb246cab89993
+DIST bamtools-2.4.1.tar.gz 540482 SHA256 933a0c1a83c88c1dac8078c0c0e82f6794c75cb927265399404bc2cc2611204b SHA512 ee674014f27b2dc0aa7c0415e8654ee7c39cfdecafbd9983d970fad6ad29f070a7ff372ee05765956cf7c8f8bb3b9763b6e537e693a0d2d64680148b1a23cfee WHIRLPOOL 6ef73f0713ebf993123eac7095061e32fe6a53db383e28a5dd8967afee92fb211ce56611de9718ce4cce84bdee14157ff968e0a6edcaead4e06b44008b78b84c
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..e657cc400387
--- /dev/null
+++ b/sci-biology/bamtools/bamtools-2.4.1.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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()) );
+ }
+ }
+