diff options
author | David Seifert <soap@gentoo.org> | 2019-12-23 00:12:28 +0100 |
---|---|---|
committer | David Seifert <soap@gentoo.org> | 2019-12-23 00:12:28 +0100 |
commit | af50ab943bce9e10c97e47ea5c7da87e11b51be9 (patch) | |
tree | 2e7371d70ed4a6db644a802d9969737746234508 /dev-libs/boost | |
parent | dev-libs/libzip: arm64 stable (bug #703556) (diff) | |
download | gentoo-af50ab943bce9e10c97e47ea5c7da87e11b51be9.tar.gz gentoo-af50ab943bce9e10c97e47ea5c7da87e11b51be9.tar.bz2 gentoo-af50ab943bce9e10c97e47ea5c7da87e11b51be9.zip |
dev-libs/boost: Fix Boost.MPI with python
* A big thanks goes out to @pdimov in helping me patch
Boost.Build to produce per py-impl MPI variants.
Closes: boostorg/mpi#112
Closes: https://bugs.gentoo.org/703036
Package-Manager: Portage-2.3.82, Repoman-2.3.20
Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to 'dev-libs/boost')
-rw-r--r-- | dev-libs/boost/boost-1.72.0.ebuild | 21 | ||||
-rw-r--r-- | dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch | 50 |
2 files changed, 70 insertions, 1 deletions
diff --git a/dev-libs/boost/boost-1.72.0.ebuild b/dev-libs/boost/boost-1.72.0.ebuild index ca52c5105fe1..3417b408e432 100644 --- a/dev-libs/boost/boost-1.72.0.ebuild +++ b/dev-libs/boost/boost-1.72.0.ebuild @@ -56,6 +56,8 @@ PATCHES=( "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch # Bug 703294, incomplete Boost.Serialization refactoring "${FILESDIR}"/${PN}-1.72.0-missing-serialization-split_member-include.patch + # Bug 703036, per python-impl Boost.MPI + "${FILESDIR}"/${PN}-1.72.0-boost-mpi-python.patch ) python_bindings_needed() { @@ -217,7 +219,24 @@ multilib_src_install_all() { rm -r "${ED}"/usr/include/boost/python/numpy* || die fi - if ! use python; then + if use python; then + if use mpi; then + move_mpi_py_into_sitedir() { + local pyver="${EPYTHON#python}" + python_moduleinto boost + python_domodule "${ED}"/usr/$(get_libdir)/mpi${pyver/./}.so + rm "${ED}"/usr/$(get_libdir)/mpi${pyver/./}* || die + dosym mpi${pyver/./}.so $(python_get_sitedir)/boost/mpi.so + + # create a proper python package + touch "${D}"/$(python_get_sitedir)/boost/__init__.py || die + python_optimize + } + python_foreach_impl move_mpi_py_into_sitedir + else + rm -r "${ED}"/usr/include/boost/mpi/python* || die + fi + else rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die fi diff --git a/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch b/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch new file mode 100644 index 000000000000..8fb164a6278b --- /dev/null +++ b/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch @@ -0,0 +1,50 @@ +Tag Boost.MPI python impls properly to avoid name clash +https://github.com/boostorg/mpi/issues/112 + +--- a/boostcpp.jam ++++ b/boostcpp.jam +@@ -185,7 +185,7 @@ + + rule tag ( name : type ? : property-set ) + { +- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB ++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION + { + local args = $(.format-name-args) ; + if $(layout) = versioned +@@ -223,7 +223,7 @@ + { + local result = $(name) ; + +- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB ++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION + { + # Add Python version suffix + +--- a/libs/mpi/build/Jamfile.v2 ++++ b/libs/mpi/build/Jamfile.v2 +@@ -58,13 +58,13 @@ + rule python-tag ( name : type ? : property-set ) + { + local result = $(name) ; +- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB ++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION + { + local version = [ $(property-set).get <python> ] ; + local lib-suffix = [ version-suffix $(version) ] ; + result = $(result)$(lib-suffix) ; + } +- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID) ++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION && $(PYTHON_ID) + { + result = $(result)-$(PYTHON_ID) ; + } +@@ -168,6 +168,8 @@ + <link>shared:<define>BOOST_PYTHON_DYN_LINK=1 + <link>shared <runtime-link>shared + <python-debugging>on:<define>BOOST_DEBUG_PYTHON ++ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag ++ <tag>@$(__name__).python-tag + ; + + mpi_python_libs = boost_mpi_python mpi ; |