commit:     382adf0622c0f35113f2899f3f0e480ceec8de49
Author:     Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  7 11:39:04 2015 +0000
Commit:     Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
CommitDate: Sat Nov  7 11:39:35 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=382adf06

dev-cpp/lucene++: fix building with Boost 1.58

Reported-by: Dennis Schridde <devurandom <AT> gmx.net>
Gentoo-Bug: 560842

Package-Manager: portage-2.2.24

 .../lucene++/files/lucene++-3.0.7-boost-1.58.patch | 37 ++++++++++++++++++++++
 dev-cpp/lucene++/lucene++-3.0.7.ebuild             |  2 ++
 2 files changed, 39 insertions(+)

diff --git a/dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch 
b/dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch
new file mode 100644
index 0000000..9ff33fd
--- /dev/null
+++ b/dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch
@@ -0,0 +1,37 @@
+commit 1987082cf9278a639d772b4f35a8ae2d34944177
+Author: Václav Slavík <[email protected]>
+Date:   Mon May 4 18:04:46 2015 +0200
+
+    Fix compilation with Boost 1.58
+    
+    1.58 introduces strict type checking in boost::get() and while that's
+    good in theory, the VariantUtils code makes it impractical to use.
+    Instead, use relaxed_get() to get the old behavior. relaxed_get() didn't
+    exist in older versions of Boost, so the code must check BOOST_VERSION.
+    
+    Fixes #93.
+
+diff --git a/include/VariantUtils.h b/include/VariantUtils.h
+index 1e6c243..5a72e59 100644
+--- a/include/VariantUtils.h
++++ b/include/VariantUtils.h
+@@ -8,6 +8,7 @@
+ #define VARIANTUTILS_H
+ 
+ #include <boost/any.hpp>
++#include <boost/version.hpp>
+ #include "Lucene.h"
+ #include "MiscUtils.h"
+ 
+@@ -22,7 +23,11 @@ public:
+ 
+     template <typename TYPE, typename VAR>
+     static TYPE get(VAR var) {
++#if BOOST_VERSION < 105800
+         return var.type() == typeid(TYPE) ? boost::get<TYPE>(var) : TYPE();
++#else
++        return var.type() == typeid(TYPE) ? boost::relaxed_get<TYPE>(var) : 
TYPE();
++#endif
+     }
+ 
+     template <typename TYPE, typename VAR>

diff --git a/dev-cpp/lucene++/lucene++-3.0.7.ebuild 
b/dev-cpp/lucene++/lucene++-3.0.7.ebuild
index 3bb2bb8..c814265 100644
--- a/dev-cpp/lucene++/lucene++-3.0.7.ebuild
+++ b/dev-cpp/lucene++/lucene++-3.0.7.ebuild
@@ -25,6 +25,8 @@ S="${WORKDIR}/${MY_P}"
 
 DOCS=( AUTHORS README.rst )
 
+PATCHES=( "${FILESDIR}/${P}-boost-1.58.patch" )
+
 src_configure() {
        local mycmakeargs=(
                -DENABLE_DEMO=OFF

Reply via email to