From 95176e48a0d16783ee28415cada97403b517eb89 Mon Sep 17 00:00:00 2001 From: Justin Lecher Date: Mon, 18 Feb 2013 10:48:13 +0000 Subject: sci-biology/rmblast: Bug fixes: Build against any boost, #356315; build with gcc-4.7, #442266 Package-Manager: portage-2.2.0_alpha163/cvs/Linux x86_64 Manifest-Sign-Key: 0x70EB7916 --- sci-biology/rmblast/ChangeLog | 10 +- sci-biology/rmblast/Manifest | 18 +- sci-biology/rmblast/files/rmblast-1.2-gcc47.patch | 865 ++++++++++++++++++++++ sci-biology/rmblast/metadata.xml | 10 +- sci-biology/rmblast/rmblast-1.2-r1.ebuild | 45 ++ sci-biology/rmblast/rmblast-1.2.ebuild | 19 +- 6 files changed, 940 insertions(+), 27 deletions(-) create mode 100644 sci-biology/rmblast/files/rmblast-1.2-gcc47.patch create mode 100644 sci-biology/rmblast/rmblast-1.2-r1.ebuild (limited to 'sci-biology') diff --git a/sci-biology/rmblast/ChangeLog b/sci-biology/rmblast/ChangeLog index a02830336254..3e394a994c53 100644 --- a/sci-biology/rmblast/ChangeLog +++ b/sci-biology/rmblast/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for sci-biology/rmblast -# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-biology/rmblast/ChangeLog,v 1.3 2012/10/31 20:41:32 flameeyes Exp $ +# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sci-biology/rmblast/ChangeLog,v 1.4 2013/02/18 10:48:11 jlec Exp $ + +*rmblast-1.2-r1 (18 Feb 2013) + + 18 Feb 2013; Justin Lecher rmblast-1.2.ebuild, + +rmblast-1.2-r1.ebuild, +files/rmblast-1.2-gcc47.patch, metadata.xml: + Bug fixes: Build against any boost, #356315; build with gcc-4.7, #442266 31 Oct 2012; Diego E. Pettenò rmblast-1.2.ebuild: QA: drop maximum boost version dep; if it fails to build, it has to be fixed. diff --git a/sci-biology/rmblast/Manifest b/sci-biology/rmblast/Manifest index 267dbc38489b..aa70dc83a119 100644 --- a/sci-biology/rmblast/Manifest +++ b/sci-biology/rmblast/Manifest @@ -1,18 +1,16 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 +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.ebuild 1106 SHA256 80abd25b9aeb1bf6854fb58aee1b01ff20802a1659dbc08835f69e81bc1a262f SHA512 693efc69c534ab5940666d1583a42ee0750b28c9d0aad1ee7d12d26c92147ebfc11c273f1d8e1100087bc6db3e5fac82696adca3dda650a4d155074bdfa6890a WHIRLPOOL 069439a7e43b3ec405107df658ecad13f00b8201d27570e23558acfbc11538b3361110a06901ac0e314095bd44011dcc82b12f5926d7ed53600ac15eb15df998 -MISC ChangeLog 663 SHA256 6391930af4fda3652fd2807048977e46b25a9e378f10e10e1147809262e9d79d SHA512 b841ee7acf270c846c65bea33ff6520a04c9dc809b0da31a3266153a4de7c6ab35cac697afded5537c5cbf05caac67975199131434a993f0142bc6e31b06fa45 WHIRLPOOL 1d0c206a3bb0c10234eb2ad5795ac6aeefcc488748cb851d9743c81dd6051004a93967872287c9cddad987f4fd6b7316e4c7f4dc18d6731b5fbaadeae46c3471 -MISC metadata.xml 259 SHA256 541c3fbcf299d9a8ccf4132ee61f9e53a5d737cefdaa6fdc77764d8d4c7f3110 SHA512 c3aea4d69d75075af0108a03b7e109cfed6a1fe324f8ccbda3d4e5ca8a5070f1b24ddeb46b64787e10fd22252d867abcee1f31316d602f7e32fe3c990ae60d74 WHIRLPOOL e50da2f26fd4c908446d22da3edb595d60e61d72def374be46440358802a211fc34045b7ad970c4f94b57f7b17ff24cfe64dc94254fea20e047f1fbbbcae0c64 +EBUILD rmblast-1.2-r1.ebuild 1156 SHA256 59797b2048de3017469fbe85f03fb389a3613c960645e3ad7e3e4c5a5e078393 SHA512 50dad8de2a728a7392c9a8e8652d281cd39f2a3ae761fc0f24efd8c0bfd7c8939851f5715a7f53fc54748e473bb1a3c786996447b8f8b81687a0cd24738997bc WHIRLPOOL 84ed3705aafc4c3d239c720251760e15ad08f8c4102e72966cccd0a04b2ddeed54113e10887a8b78473a3741ad3ab489cc0455d33eb933149e0d7e7ee6e9547b +EBUILD rmblast-1.2.ebuild 1164 SHA256 3a707fa6aeae892bdeef8a80b827031487a662c4b0d7834edc2108743fb00f34 SHA512 a1919c5ae9289dc376b4146476f25aaaf734c7a69229a0bdef4d82eb83347a454b23b8e913cf461c25814411775aa87045c568791a7be138334c28b1ae118bc7 WHIRLPOOL fd9392b37595788a59209bedd6765d213b4c7549e7c38818e5a2581eae7f4b2b4ebeafa355648621ef239d70850fac8e3266a9a8c25e8051983ee66381502e8a +MISC ChangeLog 904 SHA256 182db5fa5fbd0bff8b52b0921e9f48d2b35b75d1263dee7b0da30cf033deb3de SHA512 9a7e98cf6b29f233f41e7b2330c3c01a335d898c14a89172a4421420514d5d6fea4f71943b9073be158b21af964050053025157c865d28267454e9e9b7a85276 WHIRLPOOL f3dd0f278a09883f7757a57920e43a4780dec3ab7cd4c2f717b7a0516caa572da31e323a6f36bb7aff8771ffa50734d4d61ba1d600c2259854209e9eb506b0cc +MISC metadata.xml 266 SHA256 98c7d1da8a728a1f1d796a79d51f25e4164e24048ec1aacbbf0ae2ffb171ff35 SHA512 879cdcca092d4c82b8c63672c91e08e7b01e81419d2c7c7b766de96ba2a32dd1e21c18968ed7172eec8604f52c92b19a31773f428bce9461d9b8190384680194 WHIRLPOOL 0f46288ab7090ad3da5b31816792427e4ad1a950e39a503bb406ebe8789cffedd9c85b46bfbf040fffb8aad443f512c28716a0a6436d0c06309155277060cdcd -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) -iQEcBAEBCAAGBQJQkY0IAAoJEBzRPIrUMBNCD74H/26YARM3S/ritlZiLYKzbeeY -B+PPiTBSpv1cUZA1Du282RVs5Ne7NmTDn8QACM9ycCKk3ceQt7kKdWFLmwAouMVA -EBGt3GjrSP1g22sTrH3rnDfaXllUTMvR9dLsVk3q+uEO21Xmlt+HETUHrJdW9C2e -2fXwXRfQSO3mLsn3k5wunF6V1gps4he/TnOlSA6utQf1+OfrJlAqTcwyNvbL3a5H -Z9CnT/xLFEGMgFhtR/kXn+15gXsfmM2d4fU9D6Hjb8iI4Y7YitDp6bzlbSPT+uEO -4eyjmxzozzez5fmxzGWZ4cdOry/QAnwlrwBvfDJqg2cy+aL68m4N7L+PJE9rhE8= -=qwX8 +iEYEAREIAAYFAlEiBu0ACgkQgAnW8HDreRYWTgCgtHXneMDN1q/qU8ved3PV9G3k +l+0AnAltFdPDp1QesWysIIMm3pskt2Jd +=4ZQy -----END PGP SIGNATURE----- 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 ++ + #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 ref( + dynamic_cast(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 + +- + // 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 ++# 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 + 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 + #include + #include + #include + #include ++#include + + #include + #include +@@ -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 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(iter.GetContainerPtr()); + it = c->erase(it); + return it != c->end(); +@@ -511,7 +513,7 @@ public: + static void EraseAllElements(TTypeInfoIterator& iter) + { + Container* c = static_cast(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(iter.GetContainerPtr()); + TStlIterator erase = it++; + c->erase(erase); +@@ -551,7 +553,7 @@ public: + static void EraseAllElements(TTypeInfoIterator& iter) + { + Container* c = static_cast(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& 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(m_Buffer); ++ TObject* ptr = static_cast ++ (static_cast(m_Buffer)); ++ return *ptr; + } + const TObject& operator*(void) const + { +- return *reinterpret_cast(m_Buffer); ++ const TObject* ptr = static_cast ++ (static_cast(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 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 levelIns = selectIter->second.insert(value); + + pair 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 + # include + # include +-# include + # include ++# include + # ifdef HAVE_SYS_STATVFS_H + # include + # 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 + + #include +@@ -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 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(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& >( ++ static_cast& >( ++ tr.p_skipped)).set(true); ++ static_cast& >( ++ static_cast& >( ++ 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 index 3302123e5718..fc7c76942a10 100644 --- a/sci-biology/rmblast/metadata.xml +++ b/sci-biology/rmblast/metadata.xml @@ -1,9 +1,9 @@ - - weaver@gentoo.org - Andrey Kislyuk - - sci-biology + + weaver@gentoo.org + Andrey Kislyuk + + sci-biology 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..de9f206dc0e4 --- /dev/null +++ b/sci-biology/rmblast/rmblast-1.2-r1.ebuild @@ -0,0 +1,45 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-biology/rmblast/rmblast-1.2-r1.ebuild,v 1.1 2013/02/18 10:48:11 jlec Exp $ + +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" + +DEPEND="dev-libs/boost" +RDEPEND="${DEPEND}" + +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" \ + -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 +} diff --git a/sci-biology/rmblast/rmblast-1.2.ebuild b/sci-biology/rmblast/rmblast-1.2.ebuild index 97cb62edc70b..ecdfa0b11571 100644 --- a/sci-biology/rmblast/rmblast-1.2.ebuild +++ b/sci-biology/rmblast/rmblast-1.2.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2012 Gentoo Foundation +# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-biology/rmblast/rmblast-1.2.ebuild,v 1.3 2012/10/31 20:41:32 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-biology/rmblast/rmblast-1.2.ebuild,v 1.4 2013/02/18 10:48:11 jlec Exp $ EAPI="3" -inherit flag-o-matic toolchain-funcs +inherit eutils flag-o-matic toolchain-funcs MY_NCBI_BLAST_V=2.2.23+ @@ -24,9 +24,12 @@ S="${WORKDIR}/${P}-ncbi-blast-${MY_NCBI_BLAST_V}-src/c++" src_prepare() { filter-ldflags -Wl,--as-needed - sed -i -e 's/-print-file-name=libstdc++.a//' \ + sed \ + -e 's/-print-file-name=libstdc++.a//' \ -e '/sed/ s/\([gO]\[0-9\]\)\*/\1\\+/' \ - src/build-system/configure || die + -e "/DEF_FAST_FLAGS=/s:=\".*\":=\"${CFLAGS}\":g" \ + -i src/build-system/configure || die + epatch "${FILESDIR}"/${P}-gcc47.patch } src_configure() { @@ -37,10 +40,6 @@ src_configure() { --without-static \ --with-dll \ --prefix="${ED}"/opt/${PN} \ - --with-boost=/usr/include/boost-1_35/boost \ + --with-boost="${EPREFIX}/usr/include/boost" \ || die } - -src_install() { - emake install || die -} -- cgit v1.2.3-65-gdbad