commit:     72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 14 22:42:36 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Dec 14 22:43:01 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72bcf8aa

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

 sci-biology/bamtools/Manifest                      |   1 +
 sci-biology/bamtools/bamtools-2.4.1.ebuild         |  26 +++
 .../files/bamtools-2.4.1-fix-build-system.patch    | 209 +++++++++++++++++++++
 .../bamtools/files/bamtools-2.4.1-fix-c++14.patch  |  78 ++++++++
 4 files changed, 314 insertions(+)

diff --git a/sci-biology/bamtools/Manifest b/sci-biology/bamtools/Manifest
index 1c1972c..fa04b1b 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 00000000..e657cc4
--- /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 00000000..7959723
--- /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 00000000..8d9b1e0
--- /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()) );
+     }
+ }
+ 

Reply via email to