commit:     d92148d58c196ab5e1fb22e51e0bc7d2407d277b
Author:     Martin Mokrejš <mmokrejs <AT> fold <DOT> natur <DOT> cuni <DOT> cz>
AuthorDate: Thu Jun 11 17:50:27 2015 +0000
Commit:     Martin Mokrejs <mmokrejs <AT> fold <DOT> natur <DOT> cuni <DOT> cz>
CommitDate: Thu Jun 11 17:50:27 2015 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=d92148d5

sci-biology/ncbi-tools++: added upstream patch to compile against 
sys-libs/db-6.0.30

Package-Manager: portage-2.2.18

 sci-biology/ncbi-tools++/ChangeLog                 |   5 +
 .../files/ncbi-tools++-12.0.0-bdb6.patch           | 114 +++++++++++++++++++++
 .../ncbi-tools++/ncbi-tools++-12.0.0.ebuild        |   1 +
 3 files changed, 120 insertions(+)

diff --git a/sci-biology/ncbi-tools++/ChangeLog 
b/sci-biology/ncbi-tools++/ChangeLog
index ccef946..0267684 100644
--- a/sci-biology/ncbi-tools++/ChangeLog
+++ b/sci-biology/ncbi-tools++/ChangeLog
@@ -2,6 +2,11 @@
 # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+  11 Jun 2015; Martin Mokrejs <[email protected]>
+  +files/ncbi-tools++-12.0.0-bdb6.patch, ncbi-tools++-12.0.0.ebuild:
+  sci-biology/ncbi-tools++: added upstream patch to compile against sys-
+  libs/db-6.0.30
+
   17 Apr 2015; Martin Mokrejs <[email protected]>
   ncbi-tools++-12.0.0.ebuild:
   sci-biology/ncbi-tools++: re-added KEYWORDS

diff --git a/sci-biology/ncbi-tools++/files/ncbi-tools++-12.0.0-bdb6.patch 
b/sci-biology/ncbi-tools++/files/ncbi-tools++-12.0.0-bdb6.patch
new file mode 100644
index 0000000..9589481
--- /dev/null
+++ b/sci-biology/ncbi-tools++/files/ncbi-tools++-12.0.0-bdb6.patch
@@ -0,0 +1,114 @@
+Index: include/db/bdb/bdb_file.hpp
+===================================================================
+--- include/db/bdb/bdb_file.hpp        (revision 470126)
++++ include/db/bdb/bdb_file.hpp        (working copy)
+@@ -660,6 +660,9 @@
+     void x_ConstructKeyBuf();
+     void x_ConstructDataBuf();
+ 
++    static int x_CompareShim(DB* db, const DBT* dbt1, const DBT* dbt2,
++                             size_t* locp);
++
+ private:
+     auto_ptr<CBDB_BufferManager>   m_KeyBuf;
+     auto_ptr<CBDB_BufferManager>   m_DataBuf;
+Index: src/db/bdb/bdb_blob.cpp
+===================================================================
+--- src/db/bdb/bdb_blob.cpp    (revision 470126)
++++ src/db/bdb/bdb_blob.cpp    (working copy)
+@@ -583,12 +583,31 @@
+     return m_DBT_Data->size;
+ }
+ 
++#if DB_VERSION_MAJOR >= 6
++extern "C" {
++    typedef int (*BDB_CompareFunction_V6)(DB*, const DBT*, const DBT*,
++                                          size_t*);
++    int BDB_Uint4Compare_V6(DB* db, const DBT* dbt1, const DBT* dbt2, size_t*)
++        { return BDB_Uint4Compare(db, dbt1, dbt2); }
++    int BDB_ByteSwap_Uint4Compare_V6(DB* db, const DBT* dbt1, const DBT* dbt2,
++                                    size_t*)
++        { return BDB_ByteSwap_Uint4Compare(db, dbt1, dbt2); }
++}
++#endif
++
+ void CBDB_LobFile::SetCmp(DB*)
+ {
++#if DB_VERSION_MAJOR >= 6
++    BDB_CompareFunction_V6 func = BDB_Uint4Compare_V6;
++    if (IsByteSwapped()) {
++        func = BDB_ByteSwap_Uint4Compare_V6;
++    }
++#else
+     BDB_CompareFunction func = BDB_Uint4Compare;
+     if (IsByteSwapped()) {
+         func = BDB_ByteSwap_Uint4Compare;
+     }
++#endif
+ 
+     _ASSERT(func);
+     int ret = m_DB->set_bt_compare(m_DB, func);
+Index: src/db/bdb/bdb_file.cpp
+===================================================================
+--- src/db/bdb/bdb_file.cpp    (revision 470126)
++++ src/db/bdb/bdb_file.cpp    (working copy)
+@@ -1535,12 +1535,27 @@
+ }
+ 
+ 
++#if DB_VERSION_MAJOR >= 6
++int CBDB_File::x_CompareShim(DB* db, const DBT* dbt1, const DBT* dbt2, 
size_t*)
++{
++    const CBDB_BufferManager* key_buf
++        = static_cast<const CBDB_BufferManager*>(db->app_private);
++    _ASSERT(key_buf);
++    return (key_buf->GetCompareFunction())(db, dbt1, dbt2);
++}
++#endif
++
++
+ void CBDB_File::SetCmp(DB* db)
+ {
+     _ASSERT(m_DB_Type == eBtree);
++#if DB_VERSION_MAJOR >= 6
++    int ret = db->set_bt_compare(db, x_CompareShim);
++#else
+     BDB_CompareFunction func = m_KeyBuf->GetCompareFunction();
+     _ASSERT(func);
+     int ret = db->set_bt_compare(db, func);
++#endif
+     BDB_CHECK(ret, 0);
+ 
+     if (m_PrefixCompress) {
+@@ -2056,12 +2071,31 @@
+     BindKey("id", &IdKey);
+ }
+ 
++#if DB_VERSION_MAJOR >= 6
++extern "C" {
++    typedef int (*BDB_CompareFunction_V6)(DB*, const DBT*, const DBT*,
++                                          size_t*);
++    int BDB_Int4Compare_V6(DB* db, const DBT* dbt1, const DBT* dbt2, size_t*)
++        { return BDB_Int4Compare(db, dbt1, dbt2); }
++    int BDB_ByteSwap_Int4Compare_V6(DB* db, const DBT* dbt1, const DBT* dbt2,
++                                    size_t*)
++        { return BDB_ByteSwap_Int4Compare(db, dbt1, dbt2); }
++}
++#endif
++
+ void CBDB_IdFile::SetCmp(DB* /* db */)
+ {
++#if DB_VERSION_MAJOR >= 6
++    BDB_CompareFunction_V6 func = BDB_Int4Compare_V6;
++    if (IsByteSwapped()) {
++        func = BDB_ByteSwap_Int4Compare_V6;
++    }
++#else
+     BDB_CompareFunction func = BDB_Int4Compare;
+     if (IsByteSwapped()) {
+         func = BDB_ByteSwap_Int4Compare;
+     }
++#endif
+ 
+     _ASSERT(func);
+     int ret = m_DB->set_bt_compare(m_DB, func);

diff --git a/sci-biology/ncbi-tools++/ncbi-tools++-12.0.0.ebuild 
b/sci-biology/ncbi-tools++/ncbi-tools++-12.0.0.ebuild
index efe49f7..2948c74 100644
--- a/sci-biology/ncbi-tools++/ncbi-tools++-12.0.0.ebuild
+++ b/sci-biology/ncbi-tools++/ncbi-tools++-12.0.0.ebuild
@@ -120,6 +120,7 @@ src_prepare() {
                "${FILESDIR}"/${P}-configure.patch
                "${FILESDIR}"/${P}-drop-STATIC-from-LIB.patch
                "${FILESDIR}"/${P}-fix-install.patch
+               "${FILESDIR}"/${P}-bdb6.patch
                )
 #       "${FILESDIR}"/${P}-as-needed.patch
 #       "${FILESDIR}"/${P}-fix-creaders-linking.patch

Reply via email to