diff options
author | 2016-04-13 21:06:01 +0200 | |
---|---|---|
committer | 2016-04-13 21:06:16 +0200 | |
commit | 92a7e9f4284a9141aeedda4c3f736927254d5340 (patch) | |
tree | b90c0e71a307799698f536d2346e75e673346411 /dev-libs | |
parent | www-apps/drupal: Version bump to 8.0.6. (diff) | |
download | gentoo-92a7e9f4284a9141aeedda4c3f736927254d5340.tar.gz gentoo-92a7e9f4284a9141aeedda4c3f736927254d5340.tar.bz2 gentoo-92a7e9f4284a9141aeedda4c3f736927254d5340.zip |
dev-libs/boost: Add patch for ptr registration in libboost_python
Gentoo-Bug: 579616
Package-Manager: portage-2.2.28
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/boost/boost-1.60.0.ebuild | 1 | ||||
-rw-r--r-- | dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch | 42 |
2 files changed, 43 insertions, 0 deletions
diff --git a/dev-libs/boost/boost-1.60.0.ebuild b/dev-libs/boost/boost-1.60.0.ebuild index c8bf2accdd25..ab69ac9e961d 100644 --- a/dev-libs/boost/boost-1.60.0.ebuild +++ b/dev-libs/boost/boost-1.60.0.ebuild @@ -52,6 +52,7 @@ PATCHES=( "${FILESDIR}/${PN}-1.55.0-context-x32.patch" "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" "${FILESDIR}/${PN}-1.60.0-deprecated-header-ice_not.patch" + "${FILESDIR}/${PN}-1.60.0-auto-pointer-python.patch" ) python_bindings_needed() { diff --git a/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch b/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch new file mode 100644 index 000000000000..1566c3417fc1 --- /dev/null +++ b/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch @@ -0,0 +1,42 @@ +From f2c465ffa508459216f7093bf95ba001ad994206 Mon Sep 17 00:00:00 2001 +From: vslashg <veloso@verylowsodium.com> +Date: Mon, 29 Feb 2016 13:33:35 -0500 +Subject: [PATCH] Fix auto-pointer registration in Boost Python 1.60. + +The conditional instantiation magic of maybe_register_pointer_to_python() assumes that use_value_holder and use_back_reference will be one of the boost::mpl::bool_ types, but this assumption is no longer true in Boost 1.60, where they can be standard library bool wrappers instead. + +Explicitly defining these types as mpl::bool_ classes fixes https://github.com/boostorg/python/issues/56. +--- + boost/python/object/class_metadata.hpp | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/boost/python/object/class_metadata.hpp b/boost/python/object/class_metadata.hpp +index c71cf67..5009c17 100644 +--- a/boost/python/object/class_metadata.hpp ++++ b/boost/python/object/class_metadata.hpp +@@ -164,7 +164,7 @@ struct class_metadata + >::type held_type; + + // Determine if the object will be held by value +- typedef is_convertible<held_type*,T*> use_value_holder; ++ typedef mpl::bool_<is_convertible<held_type*,T*>::value> use_value_holder; + + // Compute the "wrapped type", that is, if held_type is a smart + // pointer, we're talking about the pointee. +@@ -175,10 +175,12 @@ struct class_metadata + >::type wrapped; + + // Determine whether to use a "back-reference holder" +- typedef mpl::or_< +- has_back_reference<T> +- , is_same<held_type_arg,T> +- , is_base_and_derived<T,wrapped> ++ typedef mpl::bool_< ++ mpl::or_< ++ has_back_reference<T> ++ , is_same<held_type_arg,T> ++ , is_base_and_derived<T,wrapped> ++ >::value + > use_back_reference; + + // Select the holder. |