diff options
Diffstat (limited to 'sci-biology/rmblast')
-rw-r--r-- | sci-biology/rmblast/Manifest | 6 | ||||
-rw-r--r-- | sci-biology/rmblast/files/rmblast-1.2-gcc47.patch | 865 | ||||
-rw-r--r-- | sci-biology/rmblast/metadata.xml | 8 | ||||
-rw-r--r-- | sci-biology/rmblast/rmblast-1.2-r1.ebuild | 46 |
4 files changed, 925 insertions, 0 deletions
diff --git a/sci-biology/rmblast/Manifest b/sci-biology/rmblast/Manifest new file mode 100644 index 000000000000..7895e6dfa8fd --- /dev/null +++ b/sci-biology/rmblast/Manifest @@ -0,0 +1,6 @@ +AUX rmblast-1.2-gcc47.patch 31795 SHA256 f68cee00a42ab19612430cd19c6c26fd5b4f1bea78710577e3e18b8ace82896d SHA512 2db82b02b157dd39c21d1fc459c4837741088d0d764c994094096c15ce76331f33f68e7e8498f7ea43e4979cde2fd248baf0687ac08b147d1060b54ac55b83d0 WHIRLPOOL 5a258a4f3aa66afb24faa4b2708c13e478710059757ec1a63a90c23f15b003a6366477a30349f87841f31c3131a3ef3a4de17c1df27a54da639f915efbda55fe +DIST rmblast-1.2-ncbi-blast-2.2.23+-src.tar.gz 10744076 SHA256 996be9886189364fff8ed39d4668122b2e5b8b010be47d929602416d95628eef SHA512 e7c2ebd114aee045ea3f3f462cf2658440e13a2d1eb777648386e1c5eeda9f8083af383c019f9b5802d935d6eb2367eef20822afc45233ddb44a426b4dd7ddb6 WHIRLPOOL aa3ada4297812a97614b0fe218de65d7474edfb5910e156eb09b625d45338a97b35f46876f5edf6105ead8b321a28f55ed7de2ad251bbc48ffd0cfa65ee2ac7a +EBUILD rmblast-1.2-r1.ebuild 1137 SHA256 bb0f98ca5b8018ce64d0accc5e3159318e1a509779697e9d3737d33809c0e4d2 SHA512 9b624dd651e7f8988e4ae605a737c2baaa55681e30af93627b3824004d487bc94d6a389368e465c1fa74d2783342b10a41ac8c8aabee3691099e115f62c682f6 WHIRLPOOL 122872531a394837d3ef0f90d3f6388b3bbf9c9091586c090e20b3dd384e9006e8e106d6fd132f05a284cde84e6217476b0bc9cf791c04f8a293ff47e6bd278d +MISC ChangeLog 2588 SHA256 d3533f22c01b6606101f4d4f3a16121e4600a9559a1eacb732f067e53060fb6f SHA512 d9e22ee0f79e5d54f587623811f057cffed1cd7e54b2da80be7a1dbaf6551fd6541b3f662ff1de6d11c5e64e7d2a5d97e413cbc6ec48585d1c0763124a05ed5b WHIRLPOOL 463d25b60b3b38640f18a06210c2433a3c656a78170151d19edcfe4cc0536ad01999037b2d5ed6c2fe19dba66abb84e37ba49d63dfa1620bf94fce9e6cf0dbe3 +MISC ChangeLog-2015 1184 SHA256 b0427be081124505e7b0890ae979922d5c0578eff983181ee3886850b3e6f731 SHA512 48c3c1f186306117ef9a171977984c46d9059347d5a7d481e6e610dc5f2631022d3cedcd703805dbadf00352c4847a50aa52168b8cd510ec047ef8530814a6ab WHIRLPOOL f7c3dd1fe2a4c6bfad72f7fd87b956dde73012bb3c769a9bd44f4ba8a8e873f4d27abfd72f1ce9a4f255fcd211ff85fa0ca61dc093cde5ce7ebcfe85b57a5c6f +MISC metadata.xml 267 SHA256 b3535fccca0fc8511c1245214c1a7c105447b35f21093bda132991874ce82d48 SHA512 91ab266d9ab24401bc0fec759c5b6cfcf44a3c5669fc31c7301d79770839bb5dfa0e155d949392ef06176b4a0b2c32b91b1b54b0027f972db61f0a5e54644403 WHIRLPOOL d841a2f928c50434f2e8c65f583ea3aa2d04e5cebd664b1531ab5373260f735219131991000bbb2b21aa3add05dcdce29548b78eac8d8c0eced6dc5505b64e13 diff --git a/sci-biology/rmblast/files/rmblast-1.2-gcc47.patch b/sci-biology/rmblast/files/rmblast-1.2-gcc47.patch new file mode 100644 index 000000000000..70200d59ea4a --- /dev/null +++ b/sci-biology/rmblast/files/rmblast-1.2-gcc47.patch @@ -0,0 +1,865 @@ + c++/include/corelib/ncbiexpt.hpp | 4 +- + c++/include/corelib/ncbimisc.hpp | 2 + + c++/include/corelib/ncbiobj.hpp | 2 +- + c++/include/corelib/ncbistl.hpp | 6 +- + c++/include/corelib/ncbistr.hpp | 2 +- + c++/include/corelib/test_boost.hpp | 44 +++++- + c++/include/dbapi/driver/dbapi_object_convert.hpp | 8 +- + .../dbapi/driver/impl/dbapi_driver_utils.hpp | 2 +- + c++/include/serial/impl/stltypes.hpp | 16 ++- + c++/include/serial/iterator.hpp | 6 +- + c++/include/serial/serialbase.hpp | 8 +- + c++/include/util/bitset/bmfunc.h | 7 + + c++/include/util/linkedset.hpp | 16 +-- + c++/include/util/rangemap.hpp | 4 +- + c++/src/connect/ncbi_gnutls.c | 19 ++- + c++/src/corelib/ncbifile.cpp | 2 +- + c++/src/corelib/test_boost.cpp | 156 ++++++++++++++++++++- + c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp | 2 +- + c++/src/serial/stdtypes.cpp | 8 +- + 19 files changed, 269 insertions(+), 45 deletions(-) + +diff --git a/c++/include/corelib/ncbiexpt.hpp b/c++/include/corelib/ncbiexpt.hpp +index a9cf850..6d90e74 100644 +--- a/c++/include/corelib/ncbiexpt.hpp ++++ b/c++/include/corelib/ncbiexpt.hpp +@@ -831,7 +831,7 @@ const TTo* UppermostCast(const TFrom& from) + exception_class(const exception_class& other) \ + : base_class(other) \ + { \ +- x_Assign(other); \ ++ this->x_Assign(other); \ + } \ + public: \ + virtual ~exception_class(void) throw() {} \ +@@ -1154,7 +1154,7 @@ public: + : TBase( other) + { + m_Errno = other.m_Errno; +- x_Assign(other); ++ this->x_Assign(other); + } + + /// Destructor. +diff --git a/c++/include/corelib/ncbimisc.hpp b/c++/include/corelib/ncbimisc.hpp +index f45d280..f0c030d 100644 +--- a/c++/include/corelib/ncbimisc.hpp ++++ b/c++/include/corelib/ncbimisc.hpp +@@ -57,6 +57,8 @@ + * @{ + */ + ++#include <stdlib.h> ++ + #ifndef NCBI_ESWITCH_DEFINED + #define NCBI_ESWITCH_DEFINED + +diff --git a/c++/include/corelib/ncbiobj.hpp b/c++/include/corelib/ncbiobj.hpp +index 4f83db4..815c188 100644 +--- a/c++/include/corelib/ncbiobj.hpp ++++ b/c++/include/corelib/ncbiobj.hpp +@@ -2128,7 +2128,7 @@ public: + CIRef<Interface, TThisType> ref( + dynamic_cast<Interface*>(proxy->GetLockedObject()), *this); + if (ref.NotNull()) { +- Unlock(ref.GetPointer()); ++ this->Unlock(ref.GetPointer()); + } + return ref; + } +diff --git a/c++/include/corelib/ncbistl.hpp b/c++/include/corelib/ncbistl.hpp +index 0bf465a..0618d9d 100644 +--- a/c++/include/corelib/ncbistl.hpp ++++ b/c++/include/corelib/ncbistl.hpp +@@ -37,7 +37,6 @@ + + #include <common/ncbi_export.h> + +- + // Get rid of some warnings in MSVC++ 6.00 + #if (_MSC_VER >= 1200) + // too long identificator name in the debug info; truncated +@@ -162,6 +161,9 @@ typedef int NCBI_NAME2(T_EAT_SEMICOLON_,UniqueName) + #endif + + #if defined(NCBI_COMPILER_GCC) || defined(NCBI_COMPILER_WORKSHOP) ++# if defined(NCBI_COMPILER_GCC) && NCBI_COMPILER_VERSION >= 400 ++# include <algorithm> ++# endif + // This template is used by some stl algorithms (sort, reverse...) + // We need to have our own implementation because some C++ Compiler vendors + // implemented it by using a temporary variable and an assignment operator +@@ -174,7 +176,7 @@ template<typename Iter> + inline + void iter_swap( Iter it1, Iter it2 ) + { +- swap( *it1, * it2 ); ++ swap( *it1, *it2 ); + } + + END_STD_SCOPE +diff --git a/c++/include/corelib/ncbistr.hpp b/c++/include/corelib/ncbistr.hpp +index db7054f..63e3299 100644 +--- a/c++/include/corelib/ncbistr.hpp ++++ b/c++/include/corelib/ncbistr.hpp +@@ -2583,7 +2583,7 @@ public: + : TBase(other) + { + m_Pos = other.m_Pos; +- x_Assign(other); ++ this->x_Assign(other); + } + + /// Destructor. +diff --git a/c++/include/corelib/test_boost.hpp b/c++/include/corelib/test_boost.hpp +index 69c41f3..4cd77d3 100644 +--- a/c++/include/corelib/test_boost.hpp ++++ b/c++/include/corelib/test_boost.hpp +@@ -56,10 +56,18 @@ + # undef BOOST_AUTO_TEST_MAIN + #endif + ++#ifdef NCBI_COMPILER_MSVC ++# pragma warning(push) ++// 'class' : class has virtual functions, but destructor is not virtual ++# pragma warning(disable: 4265) ++#endif ++ ++#include <boost/version.hpp> + #include <boost/test/auto_unit_test.hpp> + #include <boost/test/floating_point_comparison.hpp> + #include <boost/test/framework.hpp> + #include <boost/test/execution_monitor.hpp> ++#include <boost/test/parameterized_test.hpp> + + #include <boost/preprocessor/tuple/rem.hpp> + #include <boost/preprocessor/repeat.hpp> +@@ -72,6 +80,7 @@ + #undef BOOST_CHECK_THROW_IMPL + #undef BOOST_CHECK_NO_THROW_IMPL + #undef BOOST_FIXTURE_TEST_CASE ++#undef BOOST_PARAM_TEST_CASE + + #define BOOST_CHECK_THROW_IMPL( S, E, P, prefix, TL ) \ + try { \ +@@ -109,6 +118,12 @@ catch( ... ) { \ + } \ + /**/ + ++#if BOOST_VERSION >= 104200 ++# define NCBI_BOOST_LOCATION() , boost::execution_exception::location() ++#else ++# define NCBI_BOOST_LOCATION() ++#endif ++ + #define BOOST_FIXTURE_TEST_CASE( test_name, F ) \ + struct test_name : public F { void test_method(); }; \ + \ +@@ -124,7 +139,8 @@ static void BOOST_AUTO_TC_INVOKER( test_name )() \ + ::framework::current_test_case().p_name \ + << "\"" << ex); \ + throw boost::execution_exception( \ +- boost::execution_exception::cpp_exception_error, ""); \ ++ boost::execution_exception::cpp_exception_error, "" \ ++ NCBI_BOOST_LOCATION() ); \ + } \ + } \ + \ +@@ -142,6 +158,12 @@ BOOST_JOIN( BOOST_JOIN( test_name, _registrar ), __LINE__ ) ( \ + void test_name::test_method() \ + /**/ + ++#define BOOST_PARAM_TEST_CASE( function, begin, end ) \ ++ ::NCBI_NS_NCBI::NcbiTestGenTestCases( function, \ ++ BOOST_TEST_STRINGIZE( function ), \ ++ (begin), (end) ) \ ++/**/ ++ + /// Set timeout value for the test case created using auto-registration + /// facility. + #define BOOST_AUTO_TEST_CASE_TIMEOUT(test_name, n) \ +@@ -158,6 +180,26 @@ static struct BOOST_JOIN( test_name, _timeout_spec ) \ + } BOOST_JOIN( test_name, _timeout_spec_inst ); \ + /**/ + ++/// Automatic registration of the set of test cases based on some function ++/// accepting one parameter. Set of parameters used to call that function is ++/// taken from iterator 'begin' which is incremented until it reaches 'end'. ++/// ++/// @sa BOOST_PARAM_TEST_CASE ++#define BOOST_AUTO_PARAM_TEST_CASE( function, begin, end ) \ ++ BOOST_AUTO_TU_REGISTRAR(function) ( \ ++ BOOST_PARAM_TEST_CASE(function, begin, end)) \ ++/**/ ++ ++#define BOOST_TIMEOUT(M) \ ++ do { \ ++ static string s(M); \ ++ throw boost::execution_exception( \ ++ boost::execution_exception::timeout_error, s \ ++ NCBI_BOOST_LOCATION()); \ ++ } while (0) \ ++/**/ ++ ++ + + #define NCBITEST_CHECK_IMPL(P, check_descr, TL, CT) \ + BOOST_CHECK_NO_THROW_IMPL(BOOST_CHECK_IMPL(P, check_descr, TL, CT), TL) +diff --git a/c++/include/dbapi/driver/dbapi_object_convert.hpp b/c++/include/dbapi/driver/dbapi_object_convert.hpp +index 6fcde61..eddde81 100644 +--- a/c++/include/dbapi/driver/dbapi_object_convert.hpp ++++ b/c++/include/dbapi/driver/dbapi_object_convert.hpp +@@ -67,7 +67,7 @@ public: + operator const CTime&(void) const; + + private: +- mutable obj_type& m_Value; ++ obj_type& m_Value; + }; + + //////////////////////////////////////////////////////////////////////////////// +@@ -92,7 +92,7 @@ public: + operator const CTime&(void) const; + + private: +- mutable obj_type& m_Value; ++ obj_type& m_Value; + }; + + //////////////////////////////////////////////////////////////////////////////// +@@ -133,7 +133,7 @@ public: + operator const CTime&(void) const; + + private: +- mutable obj_type& m_Value; ++ obj_type& m_Value; + }; + + //////////////////////////////////////////////////////////////////////////////// +@@ -174,7 +174,7 @@ public: + operator const CTime&(void) const; + + private: +- mutable obj_type& m_Value; ++ obj_type& m_Value; + }; + + //////////////////////////////////////////////////////////////////////////////// +diff --git a/c++/include/dbapi/driver/impl/dbapi_driver_utils.hpp b/c++/include/dbapi/driver/impl/dbapi_driver_utils.hpp +index 0792a6d..b6bd64b 100644 +--- a/c++/include/dbapi/driver/impl/dbapi_driver_utils.hpp ++++ b/c++/include/dbapi/driver/impl/dbapi_driver_utils.hpp +@@ -231,7 +231,7 @@ protected: + + private: + const string& m_SPName; +- mutable impl::CConnection& m_Conn; ++ impl::CConnection& m_Conn; + }; + + +diff --git a/c++/include/serial/impl/stltypes.hpp b/c++/include/serial/impl/stltypes.hpp +index d41ab94..7d9e3ce 100644 +--- a/c++/include/serial/impl/stltypes.hpp ++++ b/c++/include/serial/impl/stltypes.hpp +@@ -412,6 +412,7 @@ public: + typedef StlIterator TStlIterator; + typedef TypeInfoIterator TTypeInfoIterator; + typedef typename TTypeInfoIterator::TObjectPtr TObjectPtr; ++ typedef CStlClassInfoFunctions<Container> CParent; + + static TStlIterator& It(TTypeInfoIterator& iter) + { +@@ -437,7 +438,8 @@ public: + } + static bool InitIterator(TTypeInfoIterator& iter) + { +- TStlIterator stl_iter = Get(iter.GetContainerPtr()).begin(); ++ TStlIterator stl_iter ++ = CParent::Get(iter.GetContainerPtr()).begin(); + if ( sizeof(TStlIterator) <= sizeof(iter.m_IteratorData) ) { + void* data = &iter.m_IteratorData; + new (data) TStlIterator(stl_iter); +@@ -445,7 +447,7 @@ public: + else { + iter.m_IteratorData = new TStlIterator(stl_iter); + } +- return stl_iter != Get(iter.GetContainerPtr()).end(); ++ return stl_iter != CParent::Get(iter.GetContainerPtr()).end(); + } + static void ReleaseIterator(TTypeInfoIterator& iter) + { +@@ -466,7 +468,7 @@ public: + + static bool NextElement(TTypeInfoIterator& iter) + { +- return ++It(iter) != Get(iter.GetContainerPtr()).end(); ++ return ++It(iter) != CParent::Get(iter.GetContainerPtr()).end(); + } + static TObjectPtr GetElementPtr(const TTypeInfoIterator& iter) + { +@@ -503,7 +505,7 @@ public: + + static bool EraseElement(TTypeInfoIterator& iter) + { +- TStlIterator& it = It(iter); ++ TStlIterator& it = CParent::It(iter); + Container* c = static_cast<Container*>(iter.GetContainerPtr()); + it = c->erase(it); + return it != c->end(); +@@ -511,7 +513,7 @@ public: + static void EraseAllElements(TTypeInfoIterator& iter) + { + Container* c = static_cast<Container*>(iter.GetContainerPtr()); +- c->erase(It(iter), c->end()); ++ c->erase(CParent::It(iter), c->end()); + } + + static void SetIteratorFunctions(CStlOneArgTemplate* info) +@@ -542,7 +544,7 @@ public: + } + static bool EraseElement(TTypeInfoIterator& iter) + { +- TStlIterator& it = It(iter); ++ TStlIterator& it = CParent::It(iter); + Container* c = static_cast<Container*>(iter.GetContainerPtr()); + TStlIterator erase = it++; + c->erase(erase); +@@ -551,7 +553,7 @@ public: + static void EraseAllElements(TTypeInfoIterator& iter) + { + Container* c = static_cast<Container*>(iter.GetContainerPtr()); +- c->erase(It(iter), c->end()); ++ c->erase(CParent::It(iter), c->end()); + } + + static void SetIteratorFunctions(CStlOneArgTemplate* info) +diff --git a/c++/include/serial/iterator.hpp b/c++/include/serial/iterator.hpp +index 25e1193..cddb046 100644 +--- a/c++/include/serial/iterator.hpp ++++ b/c++/include/serial/iterator.hpp +@@ -491,13 +491,13 @@ protected: + CTypeIteratorBase(TTypeInfo needType, const TBeginInfo& beginInfo) + : m_NeedType(needType) + { +- Init(beginInfo); ++ this->Init(beginInfo); + } + CTypeIteratorBase(TTypeInfo needType, const TBeginInfo& beginInfo, + const string& filter) + : m_NeedType(needType) + { +- Init(beginInfo, filter); ++ this->Init(beginInfo, filter); + } + + virtual bool CanSelect(const CConstObjectInfo& object) +@@ -599,7 +599,7 @@ public: + + CTypesIteratorBase<Parent>& operator=(const TBeginInfo& beginInfo) + { +- Init(beginInfo); ++ this->Init(beginInfo); + return *this; + } + +diff --git a/c++/include/serial/serialbase.hpp b/c++/include/serial/serialbase.hpp +index be6a4f9..d59fb25 100644 +--- a/c++/include/serial/serialbase.hpp ++++ b/c++/include/serial/serialbase.hpp +@@ -364,11 +364,15 @@ public: + // cast to object type + TObject& operator*(void) + { +- return *reinterpret_cast<TObject*>(m_Buffer); ++ TObject* ptr = static_cast<TObject*> ++ (static_cast<void*>(m_Buffer)); ++ return *ptr; + } + const TObject& operator*(void) const + { +- return *reinterpret_cast<const TObject*>(m_Buffer); ++ const TObject* ptr = static_cast<const TObject*> ++ (static_cast<const void*>(m_Buffer)); ++ return *ptr; + } + + // construct/destruct object +diff --git a/c++/include/util/bitset/bmfunc.h b/c++/include/util/bitset/bmfunc.h +index 5917ee5..a8c204b 100644 +--- a/c++/include/util/bitset/bmfunc.h ++++ b/c++/include/util/bitset/bmfunc.h +@@ -37,6 +37,13 @@ For more information please visit: http://bmagic.sourceforge.net + namespace bm + { + ++bm::id_t bit_block_any_range(const bm::word_t* block, ++ bm::word_t left, ++ bm::word_t right); ++ ++bm::id_t bit_block_calc_count_range(const bm::word_t* block, ++ bm::word_t left, ++ bm::word_t right); + + /*! + @brief Structure with statistical information about bitset's memory +diff --git a/c++/include/util/linkedset.hpp b/c++/include/util/linkedset.hpp +index e8bbe6e..364164b 100644 +--- a/c++/include/util/linkedset.hpp ++++ b/c++/include/util/linkedset.hpp +@@ -268,10 +268,10 @@ public: + pair<iterator, bool> ins = m_Container.insert(value); + if ( ins.second ) { + if ( ins.first == begin() ) +- insertToStart(*ins.first); ++ this->insertToStart(*ins.first); + else { + iterator prev = ins.first; +- insertAfter(*--prev, *ins.first); ++ this->insertAfter(*--prev, *ins.first); + } + } + return ins; +@@ -280,10 +280,10 @@ public: + void erase(iterator iter) + { + if ( iter == begin() ) +- removeFromStart(*iter); ++ this->removeFromStart(*iter); + else { + iterator prev = iter; +- removeAfter(*--prev, *iter); ++ this->removeAfter(*--prev, *iter); + } + m_Container.erase(iter); + } +@@ -422,10 +422,10 @@ public: + { + iterator iter = m_Container.insert(value); + if ( iter == begin() ) +- insertToStart(get(iter)); ++ this->insertToStart(get(iter)); + else { + iterator prev = iter; +- insertAfter(get(--prev), get(iter)); ++ this->insertAfter(get(--prev), get(iter)); + } + return iter; + } +@@ -433,10 +433,10 @@ public: + void erase(iterator iter) + { + if ( iter == begin() ) +- removeFromStart(get(iter)); ++ this->removeFromStart(get(iter)); + else { + iterator prev = iter; +- removeAfter(get(--prev), get(iter)); ++ this->removeAfter(get(--prev), get(iter)); + } + m_Container.erase(iter); + } +diff --git a/c++/include/util/rangemap.hpp b/c++/include/util/rangemap.hpp +index c4f5f37..56e267d 100644 +--- a/c++/include/util/rangemap.hpp ++++ b/c++/include/util/rangemap.hpp +@@ -578,7 +578,7 @@ public: + // get level + + // insert element +- TSelectMapI selectIter = insertLevel(selectKey); ++ TSelectMapI selectIter = this->insertLevel(selectKey); + pair<TLevelMapI, bool> levelIns = selectIter->second.insert(value); + + pair<iterator, bool> ret; +@@ -640,7 +640,7 @@ public: + // insert element + iterator ret; + ret.m_Range = range_type::GetWhole(); +- ret.m_SelectIter = insertLevel(selectKey); ++ ret.m_SelectIter = this->insertLevel(selectKey); + ret.m_SelectIterEnd = this->m_SelectMap.end(); + ret.m_LevelIter = ret.m_SelectIter->second.insert(value); + return ret; +diff --git a/c++/src/connect/ncbi_gnutls.c b/c++/src/connect/ncbi_gnutls.c +index f0242b7..8b13713 100644 +--- a/c++/src/connect/ncbi_gnutls.c ++++ b/c++/src/connect/ncbi_gnutls.c +@@ -98,7 +98,6 @@ static const int kGnuTlsCertPrio[] = { + 0 + }; + static const int kGnuTlsCompPrio[] = { +- GNUTLS_COMP_LZO, + GNUTLS_COMP_ZLIB, + GNUTLS_COMP_NULL, + 0 +@@ -254,6 +253,24 @@ static EIO_Status s_GnuTlsOpen(void* session, int* error) + } + + ++/*ARGSUSED*/ ++static void x_set_errno(gnutls_session_t session, int error) ++{ ++# ifdef LIBGNUTLS_VERSION_NUMBER ++# if \ ++ LIBGNUTLS_VERSION_MAJOR > 1 || \ ++ LIBGNUTLS_VERSION_MINOR > 5 || \ ++ LIBGNUTLS_VERSION_PATCH > 3 ++ gnutls_transport_set_errno(session, error); ++ return; ++# endif /*LIBGNUTLS_VERSION >= 1.5.4*/ ++# endif /*LIBGNUTLS_VERSION_NUMBER*/ ++ /*NOTREACHED*/ ++ if (error) ++ errno = error; ++} ++ ++ + static ssize_t x_GnuTlsPull(gnutls_transport_ptr_t ptr, + void* buf, size_t size) + { +diff --git a/c++/src/corelib/ncbifile.cpp b/c++/src/corelib/ncbifile.cpp +index d751e62..fdc81c7 100644 +--- a/c++/src/corelib/ncbifile.cpp ++++ b/c++/src/corelib/ncbifile.cpp +@@ -51,8 +51,8 @@ + # include <dirent.h> + # include <pwd.h> + # include <fcntl.h> +-# include <sys/time.h> + # include <sys/mman.h> ++# include <sys/time.h> + # ifdef HAVE_SYS_STATVFS_H + # include <sys/statvfs.h> + # endif +diff --git a/c++/src/corelib/test_boost.cpp b/c++/src/corelib/test_boost.cpp +index dfd9cc8..f93d2ca 100644 +--- a/c++/src/corelib/test_boost.cpp ++++ b/c++/src/corelib/test_boost.cpp +@@ -41,6 +41,7 @@ + #ifndef BOOST_TEST_NO_LIB + # define BOOST_TEST_NO_LIB + #endif ++#define BOOST_TEST_NO_MAIN + #include <corelib/test_boost.hpp> + + #include <boost/preprocessor/cat.hpp> +@@ -95,6 +96,7 @@ const char* kTestResultTimeout = "timeout"; + const char* kTestResultAborted = "aborted"; + const char* kTestResultSkipped = "skipped"; + const char* kTestResultDisabled = "disabled"; ++const char* kTestResultToFix = "tofix"; + + + typedef but::results_reporter::format TBoostRepFormatter; +@@ -168,14 +170,24 @@ public: + unsigned long elapsed); + virtual + void test_unit_skipped(ostream& ostr, but::test_unit const& tu); ++#if BOOST_VERSION >= 104200 ++ virtual ++ void log_exception (ostream& ostr, but::log_checkpoint_data const& lcd, ++ boost::execution_exception const& ex); ++ // Next line is necessary for compiling with ICC and Boost 1.41.0 and up ++ using TBoostLogFormatter::log_exception; ++#else + virtual + void log_exception (ostream& ostr, but::log_checkpoint_data const& lcd, + but::const_string explanation); ++#endif + virtual + void log_entry_start (ostream& ostr, but::log_entry_data const& led, + log_entry_types let); + virtual + void log_entry_value (ostream& ostr, but::const_string value); ++ // Next line is necessary for compiling with ICC and Boost 1.41.0 and up ++ using TBoostLogFormatter::log_entry_value; + virtual + void log_entry_finish (ostream& ostr); + +@@ -402,10 +414,15 @@ public: + + /// Mark test case as failed due to hit of the timeout + void SetTestTimedOut(but::test_case* tc); ++ /// Register the fact of test failure ++ void SetTestErrored(but::test_case* tc); ++ /// Check if given test is marked as requiring fixing in the future ++ bool IsTestToFix(const but::test_unit* tu); + + /// Get number of actually executed tests + int GetRanTestsCount(void); +- ++ /// Get number of tests that were failed but are marked to be fixed ++ int GetToFixTestsCount(void); + /// Get string representation of result of test execution + string GetTestResultString(but::test_unit* tu); + +@@ -415,6 +432,11 @@ public: + /// Check if user initialization functions failed + bool IsInitFailed(void); + ++ /// Check if there were any test errors ++ bool HasTestErrors(void); ++ /// Check if there were any timeouted tests ++ bool HasTestTimeouts(void); ++ + private: + typedef list<TNcbiTestUserFunction> TUserFuncsList; + +@@ -493,6 +515,8 @@ private: + TUnitsSet m_DisabledTests; + /// List of all tests which result is a timeout + TUnitsSet m_TimedOutTests; ++ /// List of all tests marked as in need of fixing in the future ++ TUnitsSet m_ToFixTests; + /// List of all dependencies for each test having dependencies + TUnitToManyMap m_TestDeps; + /// Observer to make test dependencies and look for unit's timeouts +@@ -512,12 +536,18 @@ private: + /// String representation for whole test timeout (real value taken from + /// CHECK_TIMEOUT in Makefile). + string m_TimeoutStr; ++ /// Multiplicator for timeouts ++ double m_TimeMult; + /// Timer measuring elapsed time for the whole test + CStopWatch m_Timer; + /// Timeout that was set in currently executing unit before adjustment + /// + /// @sa AdjustTestTimeout() + unsigned int m_CurUnitTimeout; ++ /// Flag showing if there were some test errors ++ bool m_HasTestErrors; ++ /// Flag showing if there were some timeouted tests ++ bool m_HasTestTimeouts; + }; + + +@@ -794,7 +824,10 @@ CNcbiTestApplication::CNcbiTestApplication(void) + m_RunMode (0), + m_DummyTest(NULL), + m_Timeout (0), +- m_Timer (CStopWatch::eStart) ++ m_TimeMult (1), ++ m_Timer (CStopWatch::eStart), ++ m_HasTestErrors(false), ++ m_HasTestTimeouts(false) + { + m_Reporter = new CNcbiBoostReporter(); + m_Logger = new CNcbiBoostLogger(); +@@ -1244,6 +1277,24 @@ CNcbiTestApplication::GetRanTestsCount(void) + return result; + } + ++int ++CNcbiTestApplication::GetToFixTestsCount(void) ++{ ++ int result = 0; ++ ITERATE(TUnitsSet, it, m_ToFixTests) { ++ if (!but::results_collector.results((*it)->p_id).passed()) ++ ++result; ++ } ++ return result; ++} ++ ++inline bool ++CNcbiTestApplication::IsTestToFix(const but::test_unit* tu) ++{ ++ return m_ToFixTests.find(const_cast<but::test_unit*>(tu)) ++ != m_ToFixTests.end(); ++} ++ + inline void + CNcbiTestApplication::x_SetupBoostReporters(void) + { +@@ -1391,6 +1442,18 @@ CNcbiTestApplication::InitTestFramework(int argc, char* argv[]) + return NULL; + } + ++inline bool ++CNcbiTestApplication::HasTestErrors(void) ++{ ++ return m_HasTestErrors; ++} ++ ++inline bool ++CNcbiTestApplication::HasTestTimeouts(void) ++{ ++ return m_HasTestTimeouts; ++} ++ + void + CNcbiTestsCollector::visit(but::test_case const& test) + { +@@ -1431,9 +1494,20 @@ CNcbiTestsObserver::test_unit_finish(but::test_unit const& tu, + // elapsed comes in microseconds + if (timeout != 0 && timeout < elapsed / 1000000) { + boost::execution_exception ex( +- boost::execution_exception::timeout_error, "Timeout exceeded"); ++ boost::execution_exception::timeout_error, "Timeout exceeded" ++ NCBI_BOOST_LOCATION()); + but::framework::exception_caught(ex); + } ++ ++ but::test_results& tr = but::s_rc_impl().m_results_store[tu.p_id]; ++ if (!tr.passed() && s_GetTestApp().IsTestToFix(&tu)) { ++ static_cast<but::readwrite_property<bool>& >( ++ static_cast<but::class_property<bool>& >( ++ tr.p_skipped)).set(true); ++ static_cast<but::readwrite_property<but::counter_t>& >( ++ static_cast<but::class_property<but::counter_t>& >( ++ tr.p_assertions_failed)).set(0); ++ } + } + + void +@@ -1551,12 +1625,21 @@ CNcbiBoostLogger::test_unit_skipped(ostream& ostr, but::test_unit const& tu) + m_Upper->test_unit_skipped(ostr, tu); + } + ++#if BOOST_VERSION >= 104200 ++void ++CNcbiBoostLogger::log_exception(ostream& ostr, but::log_checkpoint_data const& lcd, ++ boost::execution_exception const& ex) ++{ ++ m_Upper->log_exception(ostr, lcd, ex); ++} ++#else + void + CNcbiBoostLogger::log_exception(ostream& ostr, but::log_checkpoint_data const& lcd, + but::const_string explanation) + { + m_Upper->log_exception(ostr, lcd, explanation); + } ++#endif + + void + CNcbiBoostLogger::log_entry_start(ostream& ostr, but::log_entry_data const& led, +@@ -1631,9 +1714,74 @@ NcbiTestGetUnit(CTempString test_name) + END_NCBI_SCOPE + + ++using namespace but; ++ + /// Global initialization function called from Boost framework +-but::test_suite* ++test_suite* + init_unit_test_suite(int argc, char* argv[]) + { + return NCBI_NS_NCBI::s_GetTestApp().InitTestFramework(argc, argv); + } ++ ++// This main() is mostly a copy from Boost's unit_test_main.ipp ++int ++main(int argc, char* argv[]) ++{ ++ int result = boost::exit_success; ++ ++ try { ++ framework::init( &init_unit_test_suite, argc, argv ); ++ ++ if( !runtime_config::test_to_run().is_empty() ) { ++ test_case_filter filter( runtime_config::test_to_run() ); ++ ++ traverse_test_tree( framework::master_test_suite().p_id, filter ); ++ } ++ ++ framework::run(); ++ ++ // Let's try to make report in case of any error after all catches. ++ //results_reporter::make_report(); ++ ++ if (!runtime_config::no_result_code()) { ++ result = results_collector.results( framework::master_test_suite().p_id ).result_code(); ++ if (!NCBI_NS_NCBI::s_GetTestApp().HasTestErrors() ++ && NCBI_NS_NCBI::s_GetTestApp().HasTestTimeouts()) ++ { ++ // This should certainly go to the output. So we can use only ++ // printf, nothing else. ++ printf("There were no test failures, only timeouts.\n" ++ " (for autobuild scripts: NCBI_UNITTEST_TIMEOUTS_BUT_NO_ERRORS)\n"); ++ } ++ } ++ } ++#if BOOST_VERSION >= 104200 ++ catch( framework::nothing_to_test const& ) { ++ result = boost::exit_success; ++ } ++#endif ++ catch( framework::internal_error const& ex ) { ++ results_reporter::get_stream() << "Boost.Test framework internal error: " << ex.what() << std::endl; ++ ++ result = boost::exit_exception_failure; ++ } ++ catch( framework::setup_error const& ex ) { ++ results_reporter::get_stream() << "Test setup error: " << ex.what() << std::endl; ++ ++ result = boost::exit_exception_failure; ++ } ++ catch( std::exception const& ex ) { ++ results_reporter::get_stream() << "Test framework error: " << ex.what() << std::endl; ++ ++ result = boost::exit_exception_failure; ++ } ++ catch( ... ) { ++ results_reporter::get_stream() << "Boost.Test framework internal error: unknown reason" << std::endl; ++ ++ result = boost::exit_exception_failure; ++ } ++ ++ results_reporter::make_report(); ++ ++ return result; ++} +diff --git a/c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp b/c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp +index 92e817f..cfab8ab 100644 +--- a/c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp ++++ b/c++/src/objtools/blast/seqdb_reader/seqdbimpl.hpp +@@ -1199,7 +1199,7 @@ private: + CSeqDBAtlasHolder m_AtlasHolder; + + /// Reference to memory management layer. +- mutable CSeqDBAtlas & m_Atlas; ++ CSeqDBAtlas & m_Atlas; + + /// The list of database names provided to the constructor. + string m_DBNames; +diff --git a/c++/src/serial/stdtypes.cpp b/c++/src/serial/stdtypes.cpp +index f6fa651..d6e8f80 100644 +--- a/c++/src/serial/stdtypes.cpp ++++ b/c++/src/serial/stdtypes.cpp +@@ -720,7 +720,7 @@ public: + if ( IsSigned() ) { + // signed -> unsigned + // check for negative value +- if ( IsNegative(value) ) ++ if ( CParent::IsNegative(value) ) + ThrowIntegerOverflow(); + } + if ( sizeof(value) > sizeof(result) ) { +@@ -751,7 +751,7 @@ public: + // unsigned -> signed + if ( sizeof(value) == sizeof(result) ) { + // same size - check for sign change only +- if ( IsNegative(result) ) ++ if ( CParent::IsNegative(result) ) + ThrowIntegerOverflow(); + } + } +@@ -786,7 +786,7 @@ public: + if ( IsSigned() ) { + // signed -> unsigned + // check for negative value +- if ( IsNegative(value) ) ++ if ( CParent::IsNegative(value) ) + ThrowIntegerOverflow(); + } + if ( sizeof(value) > sizeof(result) ) { +@@ -817,7 +817,7 @@ public: + // unsigned -> signed + if ( sizeof(value) == sizeof(result) ) { + // same size - check for sign change only +- if ( IsNegative(result) ) ++ if ( CParent::IsNegative(result) ) + ThrowIntegerOverflow(); + } + } diff --git a/sci-biology/rmblast/metadata.xml b/sci-biology/rmblast/metadata.xml new file mode 100644 index 000000000000..959160fe46b1 --- /dev/null +++ b/sci-biology/rmblast/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>sci-biology@gentoo.org</email> + <name>Gentoo Biology Project</name> + </maintainer> +</pkgmetadata> diff --git a/sci-biology/rmblast/rmblast-1.2-r1.ebuild b/sci-biology/rmblast/rmblast-1.2-r1.ebuild new file mode 100644 index 000000000000..db7c5a246910 --- /dev/null +++ b/sci-biology/rmblast/rmblast-1.2-r1.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils flag-o-matic toolchain-funcs + +MY_NCBI_BLAST_V=2.2.23+ + +DESCRIPTION="RepeatMasker compatible version of NCBI BLAST+" +HOMEPAGE="http://www.repeatmasker.org/RMBlast.html" +SRC_URI="http://www.repeatmasker.org/rmblast-${PV}-ncbi-blast-${MY_NCBI_BLAST_V}-src.tar.gz" + +LICENSE="OSL-2.1" +SLOT="0" +IUSE="" +KEYWORDS="~amd64 ~x86" + +RDEPEND="dev-libs/boost" +DEPEND="${RDEPEND} + app-arch/cpio" + +S="${WORKDIR}/${P}-ncbi-blast-${MY_NCBI_BLAST_V}-src/c++" + +src_prepare() { + filter-ldflags -Wl,--as-needed + sed \ + -e 's/-print-file-name=libstdc++.a//' \ + -e '/sed/ s/\([gO]\[0-9\]\)\*/\1\\+/' \ + -e "/DEF_FAST_FLAGS=/s:=\".*\":=\"${CFLAGS}\":g" \ + -e 's/2.95\* | 2.96\* | 3\.\* | 4\.\* )/2.95\* | 2.96\* | \[3-9\]\.\* )/g' \ + -i src/build-system/configure || die + epatch "${FILESDIR}"/${P}-gcc47.patch +} + +src_configure() { + tc-export CXX CC + + "${S}"/configure --without-debug \ + --with-mt \ + --without-static \ + --with-dll \ + --prefix="${ED}"/opt/${PN} \ + --with-boost="${EPREFIX}/usr/include/boost" \ + || die +} |