dev-cpp/lucene++: fix building with Boost 1.58
authorSergey Popov <pinkbyte@gentoo.org>
Sat, 7 Nov 2015 11:39:04 +0000 (14:39 +0300)
committerSergey Popov <pinkbyte@gentoo.org>
Sat, 7 Nov 2015 11:39:35 +0000 (14:39 +0300)
Reported-by: Dennis Schridde <devurandom@gmx.net>
Gentoo-Bug: 560842

Package-Manager: portage-2.2.24

dev-cpp/lucene++/files/lucene++-3.0.7-boost-1.58.patch [new file with mode: 0644]
dev-cpp/lucene++/lucene++-3.0.7.ebuild

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 (file)
index 0000000..9ff33fd
--- /dev/null
@@ -0,0 +1,37 @@
+commit 1987082cf9278a639d772b4f35a8ae2d34944177
+Author: Václav Slavík <vaclav@slavik.io>
+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>
index 3bb2bb8343b11961cd1ce871752d7f09981b03f6..c81426547e0697483b47441e64c95f4ef9150b90 100644 (file)
@@ -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