diff options
author | David Seifert <soap@gentoo.org> | 2016-12-14 23:42:36 +0100 |
---|---|---|
committer | David Seifert <soap@gentoo.org> | 2016-12-14 23:43:01 +0100 |
commit | 72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea (patch) | |
tree | 02f77fe1cd8cdf070605888df64aad76041fb7e4 /sci-biology | |
parent | package.use.mask: Fix bug number (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | sci-biology/bamtools/bamtools-2.4.1.ebuild | 26 | ||||
-rw-r--r-- | sci-biology/bamtools/files/bamtools-2.4.1-fix-build-system.patch | 209 | ||||
-rw-r--r-- | sci-biology/bamtools/files/bamtools-2.4.1-fix-c++14.patch | 78 |
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()) ); + } + } + |