* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2021-06-20 16:54 Andreas Sturmlechner
0 siblings, 0 replies; 30+ messages in thread
From: Andreas Sturmlechner @ 2021-06-20 16:54 UTC (permalink / raw
To: gentoo-commits
commit: 39b9d36ebaea34160707caa323f6982e6d0dea37
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 20 16:34:38 2021 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Jun 20 16:53:41 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=39b9d36e
dev-libs/boost: Drop 1.75.0
Package-Manager: Portage-3.0.20, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.75.0.ebuild | 356 ---------------------
.../files/boost-1.73-property-tree-include.patch | 45 ---
3 files changed, 402 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 0018f7c4bee..7dfc65e764d 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1 @@
-DIST boost_1_75_0.tar.bz2 121849575 BLAKE2B ce7ecd8bcee518ce54f7e5302f202acbea60cedd6ae9248708c0bb5bbc2713607b2e1967a9e6f77cc20a4c008c1ee4db651def55937efc80407487a7a44fa8d6 SHA512 d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a
DIST boost_1_76_0.tar.bz2 110073117 BLAKE2B 45445e6a9725cb99131e0b831b2fac0840d083692c13887b41adeac5cb8b3732026db3641d6be20591a676b78a87fcf363eb9b1508f87ed26039bba6a1ced533 SHA512 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429
diff --git a/dev-libs/boost/boost-1.75.0.ebuild b/dev-libs/boost/boost-1.75.0.ebuild
deleted file mode 100644
index eafcc5779bb..00000000000
--- a/dev-libs/boost/boost-1.75.0.ebuild
+++ /dev/null
@@ -1,356 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
-
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- # Remove annoying #pragma message
- "${FILESDIR}"/${PN}-1.73-property-tree-include.patch
- "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build
- --prefix="${ED}/usr"
- --layout=system
- # CMake has issues working with multiple python impls,
- # disable cmake config generation for the time being
- # https://github.com/boostorg/python/issues/262#issuecomment-483069294
- --no-cmake-config
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- ejam \
- "${OPTIONS[@]}" \
- --includedir="${ED}/usr/include" \
- --libdir="${ED}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.73-property-tree-include.patch b/dev-libs/boost/files/boost-1.73-property-tree-include.patch
deleted file mode 100644
index 539388275bc..00000000000
--- a/dev-libs/boost/files/boost-1.73-property-tree-include.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d1c8825a45a0717e1ad79583d3283b0e5e32831e Mon Sep 17 00:00:00 2001
-From: Andrey Semashev <Lastique@users.noreply.github.com>
-Date: Tue, 28 Apr 2020 22:03:04 +0300
-Subject: [PATCH] Fix usage of deprecated Boost.Bind features
-
-This fixes deprecation warnings generated by boost/bind.hpp.
-
-Also, use a more actual include path for ref.hpp.
----
- boost/property_tree/json_parser/detail/parser.hpp | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/boost/property_tree/json_parser/detail/parser.hpp b/boost/property_tree/json_parser/detail/parser.hpp
-index 5554990fb..6cf636394 100644
---- a/boost/property_tree/json_parser/detail/parser.hpp
-+++ b/boost/property_tree/json_parser/detail/parser.hpp
-@@ -3,8 +3,8 @@
-
- #include <boost/property_tree/json_parser/error.hpp>
-
--#include <boost/ref.hpp>
--#include <boost/bind.hpp>
-+#include <boost/core/ref.hpp>
-+#include <boost/bind/bind.hpp>
- #include <boost/format.hpp>
-
- #include <iterator>
-@@ -214,7 +214,7 @@ namespace boost { namespace property_tree {
- void process_codepoint(Sentinel end, EncodingErrorFn error_fn) {
- encoding.transcode_codepoint(cur, end,
- boost::bind(&Callbacks::on_code_unit,
-- boost::ref(callbacks), _1),
-+ boost::ref(callbacks), boost::placeholders::_1),
- error_fn);
- }
-
-@@ -517,7 +517,7 @@ namespace boost { namespace property_tree {
- void feed(unsigned codepoint) {
- encoding.feed_codepoint(codepoint,
- boost::bind(&Callbacks::on_code_unit,
-- boost::ref(callbacks), _1));
-+ boost::ref(callbacks), boost::placeholders::_1));
- }
-
- Callbacks& callbacks;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2024-09-30 18:03 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2024-09-30 18:03 UTC (permalink / raw
To: gentoo-commits
commit: c2bd711b28713bbd9cd476757a8ea8ba7331e428
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 30 18:02:53 2024 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Sep 30 18:02:53 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c2bd711b
dev-libs/boost: add boost.compute patch
Bug: https://bugs.gentoo.org/940042
Signed-off-by: David Seifert <soap <AT> gentoo.org>
...{boost-1.86.0.ebuild => boost-1.86.0-r1.ebuild} | 4 +++
.../files/boost-1.86.0-uuid-compute-backport.patch | 30 ++++++++++++++++++++++
2 files changed, 34 insertions(+)
diff --git a/dev-libs/boost/boost-1.86.0.ebuild b/dev-libs/boost/boost-1.86.0-r1.ebuild
similarity index 98%
rename from dev-libs/boost/boost-1.86.0.ebuild
rename to dev-libs/boost/boost-1.86.0-r1.ebuild
index 93350d1a6c7c..fc1acbc2b0ee 100644
--- a/dev-libs/boost/boost-1.86.0.ebuild
+++ b/dev-libs/boost/boost-1.86.0-r1.ebuild
@@ -52,6 +52,10 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
"${FILESDIR}"/${PN}-1.85.0-bcp-filesystem.patch
"${FILESDIR}"/${PN}-1.85.0-python-numpy-2.patch
+
+ # backports
+ # https://github.com/boostorg/compute/issues/889
+ "${FILESDIR}"/${PN}-1.86.0-uuid-compute-backport.patch
)
create_user-config.jam() {
diff --git a/dev-libs/boost/files/boost-1.86.0-uuid-compute-backport.patch b/dev-libs/boost/files/boost-1.86.0-uuid-compute-backport.patch
new file mode 100644
index 000000000000..9fcf80680989
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.86.0-uuid-compute-backport.patch
@@ -0,0 +1,30 @@
+From 4ab28f5b879c8a2335b851f5338b9012f4466dd0 Mon Sep 17 00:00:00 2001
+From: sehe <github@sehe.nl>
+Date: Mon, 19 Aug 2024 17:42:31 +0200
+Subject: [PATCH] Update sha1.hpp for breaking interface change in Boost.UUID
+
+see https://github.com/boostorg/uuid/commit/0f843137a1a479797004f195ec615fdc6ac1c219
+---
+ boost/compute/detail/sha1.hpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/boost/compute/detail/sha1.hpp b/boost/compute/detail/sha1.hpp
+index 5afe5f9c4..24fde3cd1 100644
+--- a/boost/compute/detail/sha1.hpp
++++ b/boost/compute/detail/sha1.hpp
+@@ -37,12 +37,12 @@ class sha1 {
+ }
+
+ operator std::string() {
+- unsigned int digest[5];
++ unsigned char digest[20];
+ h.get_digest(digest);
+
+ std::ostringstream buf;
+- for(int i = 0; i < 5; ++i)
+- buf << std::hex << std::setfill('0') << std::setw(8) << digest[i];
++ for(int i = 0; i < 20; ++i)
++ buf << std::hex << std::setfill('0') << std::setw(2) << static_cast<int>(digest[i]);
+
+ return buf.str();
+ }
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2024-07-16 23:04 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2024-07-16 23:04 UTC (permalink / raw
To: gentoo-commits
commit: 2fb52613e7ab15074d3ca398190114c886395666
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 16 23:01:00 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Jul 16 23:01:00 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2fb52613
dev-libs/boost: fix build on ppc64
Thanks to ernsteiswuerfel for extracting/rebasing the patches from the PR
and both ernsteiswuerfel and matoro for testing.
Closes: https://bugs.gentoo.org/932579
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.85.0-r1.ebuild | 5 +
...5.0-01-fix_unsupported_long_double_macros.patch | 111 ++++++
....0-02-fix_unsupported_long_double_formats.patch | 29 ++
...ests_with_unsupported_long_double_layouts.patch | 420 +++++++++++++++++++++
.../boost-1.85.0-04-remove_cruft_codeblock.patch | 52 +++
.../files/boost-1.85.0-05-fix_macro_name.patch | 356 +++++++++++++++++
6 files changed, 973 insertions(+)
diff --git a/dev-libs/boost/boost-1.85.0-r1.ebuild b/dev-libs/boost/boost-1.85.0-r1.ebuild
index 0b18f5140d5c..db7aaf2052ea 100644
--- a/dev-libs/boost/boost-1.85.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.85.0-r1.ebuild
@@ -55,6 +55,11 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.85.0-bcp-filesystem.patch
"${FILESDIR}"/${PN}-1.85.0-python-numpy-2.patch
"${FILESDIR}"/${PN}-1.85.0-container-aliasing.patch
+ "${FILESDIR}"/${PN}-1.85.0-01-fix_unsupported_long_double_macros.patch
+ "${FILESDIR}"/${PN}-1.85.0-02-fix_unsupported_long_double_formats.patch
+ "${FILESDIR}"/${PN}-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
+ "${FILESDIR}"/${PN}-1.85.0-04-remove_cruft_codeblock.patch
+ "${FILESDIR}"/${PN}-1.85.0-05-fix_macro_name.patch
)
create_user-config.jam() {
diff --git a/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch b/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch
new file mode 100644
index 000000000000..58387c211b44
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch
@@ -0,0 +1,111 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/boost/charconv/detail/bit_layouts.hpp
++++ b/boost/charconv/detail/bit_layouts.hpp
+@@ -107,6 +107,7 @@ struct IEEEl2bits
+
+ #else // Unsupported long double representation
+ # define BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++# define BOOST_CHARCONV_LDBL_BITS -1
+ #endif
+
+ struct IEEEbinary128
+--- a/boost/charconv/from_chars.hpp
++++ b/boost/charconv/from_chars.hpp
+@@ -139,7 +139,10 @@ BOOST_CHARCONV_GCC5_CONSTEXPR from_chars_result from_chars(boost::core::string_v
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, __float128& value, chars_format fmt = chars_format::general) noexcept;
+@@ -164,7 +167,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, __float128& value, chars_format fmt = chars_format::general) noexcept;
+@@ -193,7 +199,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, __float128& value, chars_format fmt = chars_format::general) noexcept;
+@@ -216,7 +225,10 @@ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char*
+
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, __float128& value, chars_format fmt = chars_format::general) noexcept;
+--- a/libs/charconv/src/from_chars.cpp
++++ b/libs/charconv/src/from_chars.cpp
+@@ -205,7 +205,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char
+ return r;
+ }
+
+-#else
++#elif !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
+
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+@@ -299,10 +299,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::cor
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, __float128& value, boost::charconv::chars_format fmt) noexcept
+@@ -372,10 +374,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first
+ return from_chars_strict_impl(first, last, value, fmt);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(first, last, value, fmt);
+ }
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, __float128& value, boost::charconv::chars_format fmt) noexcept
+@@ -429,10 +433,12 @@ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::stri
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, __float128& value, boost::charconv::chars_format fmt) noexcept
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch b/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch
new file mode 100644
index 000000000000..59a007907be6
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch
@@ -0,0 +1,29 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/boost/charconv/to_chars.hpp
++++ b/boost/charconv/to_chars.hpp
+@@ -81,15 +81,21 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu
+ chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt = chars_format::general) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt = chars_format::general) noexcept;
++#endif
+
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float value,
+ chars_format fmt, int precision) noexcept;
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt, int precision) noexcept;
++
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt, int precision) noexcept;
++#endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, __float128 value,
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch b/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
new file mode 100644
index 000000000000..fc7a3e5b6aa5
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
@@ -0,0 +1,420 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/libs/charconv/test/from_chars_float.cpp
++++ b/libs/charconv/test/from_chars_float.cpp
+@@ -440,6 +440,7 @@ void test_issue_37()
+ overflow_spot_value("1.0e+9999", HUGE_VAL);
+ overflow_spot_value("-1.0e+9999", -HUGE_VAL);
+ }
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ else
+ {
+ overflow_spot_value("1e99999", HUGE_VALL);
+@@ -447,6 +448,7 @@ void test_issue_37()
+ overflow_spot_value("1.0e+99999", HUGE_VALL);
+ overflow_spot_value("-1.0e+99999", -HUGE_VALL);
+ }
++ #endif
+
+ overflow_spot_value("1e-99999", static_cast<T>(0.0L));
+ overflow_spot_value("-1.0e-99999", static_cast<T>(-0.0L));
+@@ -530,20 +532,22 @@ int main()
+ odd_strings_test<float>();
+ odd_strings_test<double>();
+
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ simple_integer_test<long double>();
+ simple_hex_integer_test<long double>();
+ simple_scientific_test<long double>();
+ simple_hex_scientific_test<long double>();
++ zero_test<long double>();
++ test_issue_37<long double>();
++ #endif
+
+ zero_test<float>();
+ zero_test<double>();
+- zero_test<long double>();
+
+ boost_json_test<double>();
+
+ test_issue_37<float>();
+ test_issue_37<double>();
+- test_issue_37<long double>();
+
+ test_issue_45<double>(static_cast<double>(-4109895455460520.5), "-4109895455460520.513430", 19);
+ test_issue_45<double>(1.035695536657502e-308, "1.0356955366575023e-3087", 23);
+@@ -1846,40 +1850,29 @@ int main()
+ spot_check_nan<float>("-nan", fmt);
+ spot_check_nan<double>("nan", fmt);
+ spot_check_nan<double>("-nan", fmt);
+- spot_check_nan<long double>("nan", fmt);
+- spot_check_nan<long double>("-nan", fmt);
+
+ spot_check_inf<float>("inf", fmt);
+ spot_check_inf<float>("-inf", fmt);
+ spot_check_inf<double>("inf", fmt);
+ spot_check_inf<double>("-inf", fmt);
+- spot_check_inf<long double>("inf", fmt);
+- spot_check_inf<long double>("-inf", fmt);
+
+ spot_check_nan<float>("NAN", fmt);
+ spot_check_nan<float>("-NAN", fmt);
+ spot_check_nan<double>("NAN", fmt);
+ spot_check_nan<double>("-NAN", fmt);
+- spot_check_nan<long double>("NAN", fmt);
+- spot_check_nan<long double>("-NAN", fmt);
+
+ spot_check_inf<float>("INF", fmt);
+ spot_check_inf<float>("-INF", fmt);
+ spot_check_inf<double>("INF", fmt);
+ spot_check_inf<double>("-INF", fmt);
+- spot_check_inf<long double>("INF", fmt);
+- spot_check_inf<long double>("-INF", fmt);
+
+ spot_check_nan<float>("nan(snan)", fmt);
+ spot_check_nan<float>("-nan(snan)", fmt);
+ spot_check_nan<double>("nan(snan)", fmt);
+ spot_check_nan<double>("-nan(snan)", fmt);
+- spot_check_nan<long double>("nan(snan)", fmt);
+- spot_check_nan<long double>("-nan(snan)", fmt);
+
+ spot_check_nan<float>("-nan(ind)", fmt);
+ spot_check_nan<double>("-nan(ind)", fmt);
+- spot_check_nan<long double>("-nan(ind)", fmt);
+
+ spot_check_invalid_argument<float>("na7", fmt);
+ spot_check_invalid_argument<float>("na", fmt);
+@@ -1889,8 +1882,22 @@ int main()
+ spot_check_invalid_argument<float>(" 1.23", fmt);
+ spot_check_invalid_argument<double>(" 1.23", fmt);
+ spot_check_invalid_argument<double>(" 1.23", fmt);
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ spot_check_nan<long double>("nan", fmt);
++ spot_check_nan<long double>("-nan", fmt);
++ spot_check_inf<long double>("inf", fmt);
++ spot_check_inf<long double>("-inf", fmt);
++ spot_check_nan<long double>("NAN", fmt);
++ spot_check_nan<long double>("-NAN", fmt);
++ spot_check_inf<long double>("INF", fmt);
++ spot_check_inf<long double>("-INF", fmt);
++ spot_check_nan<long double>("nan(snan)", fmt);
++ spot_check_nan<long double>("-nan(snan)", fmt);
++ spot_check_nan<long double>("-nan(ind)", fmt);
+ spot_check_invalid_argument<long double>(" 1.23", fmt);
+ spot_check_invalid_argument<long double>(" 1.23", fmt);
++ #endif
+ }
+
+ return boost::report_errors();
+--- a/libs/charconv/test/from_chars_string_view.cpp
++++ b/libs/charconv/test/from_chars_string_view.cpp
+@@ -116,17 +116,23 @@ int main()
+
+ test_float<float>();
+ test_float<double>();
+- test_float<long double>();
+
+ test_float<float, std::string>();
+ test_float<double, std::string>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ test_float<long double>();
+ test_float<long double, std::string>();
++ #endif
+
+ #if !defined(BOOST_NO_CXX17_HDR_STRING_VIEW)
+
+ test_float<float, std::string_view>();
+ test_float<double, std::string_view>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test_float<long double, std::string_view>();
++ #endif
+
+ #endif
+
+--- a/libs/charconv/test/github_issue_110.cpp
++++ b/libs/charconv/test/github_issue_110.cpp
+@@ -42,7 +42,10 @@ int main()
+ {
+ test<float>();
+ test<double>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+ test<__float128>();
+--- a/libs/charconv/test/github_issue_122.cpp
++++ b/libs/charconv/test/github_issue_122.cpp
+@@ -52,7 +52,10 @@ int main()
+ {
+ test<float>();
+ test<double>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ return boost::report_errors();
+ }
+--- a/libs/charconv/test/github_issue_152.cpp
++++ b/libs/charconv/test/github_issue_152.cpp
+@@ -188,7 +188,6 @@ int main()
+ {
+ test_non_finite<float>();
+ test_non_finite<double>();
+- test_non_finite<long double>();
+ #ifdef BOOST_CHARCONV_HAS_FLOAT16
+ test_non_finite<std::float16_t>();
+ #endif
+@@ -204,7 +203,6 @@ int main()
+
+ test_non_finite_fixed_precision<float>();
+ test_non_finite_fixed_precision<double>();
+- test_non_finite_fixed_precision<long double>();
+ #ifdef BOOST_CHARCONV_HAS_FLOAT16
+ test_non_finite_fixed_precision<std::float16_t>();
+ #endif
+@@ -220,7 +218,6 @@ int main()
+
+ test_min_buffer_size<float>();
+ test_min_buffer_size<double>();
+- test_min_buffer_size<long double>();
+ #ifdef BOOST_CHARCONV_HAS_FLOAT32
+ test_min_buffer_size<std::float32_t>();
+ #endif
+@@ -232,5 +229,11 @@ int main()
+ test_failed_values();
+ #endif
+
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ test_non_finite<long double>();
++ test_non_finite_fixed_precision<long double>();
++ test_min_buffer_size<long double>();
++ #endif
++
+ return boost::report_errors();
+ }
+--- a/libs/charconv/test/github_issue_158.cpp
++++ b/libs/charconv/test/github_issue_158.cpp
+@@ -93,6 +93,7 @@ void test_values_with_negative_exp()
+ BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000000099999999999999990753745222790");
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_negative_exp()
+ {
+ char buffer[256];
+@@ -126,6 +127,7 @@ void test_long_double_with_negative_exp()
+ // BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000999999999999999999997135886174218");
+ BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000001000000000000000000000000000000000");
+ }
++#endif
+
+ void test_values_with_positive_exp()
+ {
+@@ -407,6 +409,7 @@ void test_zero()
+ BOOST_TEST_CSTR_EQ(buffer, "0");
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_positive_exp()
+ {
+ char buffer[256];
+@@ -438,6 +441,7 @@ void test_long_double_with_positive_exp()
+ BOOST_TEST(res);
+ BOOST_TEST_CSTR_EQ(buffer, "100000000000000000.00000000000000000000000000000000000000000000000000");
+ }
++#endif
+
+ template <typename T>
+ void test_spot_value(T value, int precision, const char* result, boost::charconv::chars_format fmt = boost::charconv::chars_format::fixed)
+--- a/libs/charconv/test/limits.cpp
++++ b/libs/charconv/test/limits.cpp
+@@ -227,7 +227,10 @@ int main()
+
+ test_floating_point<float>();
+ test_floating_point<double>();
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test_floating_point<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_INT128
+
+--- a/libs/charconv/test/limits_link_1.cpp
++++ b/libs/charconv/test/limits_link_1.cpp
+@@ -3,6 +3,7 @@
+ // https://www.boost.org/LICENSE_1_0.txt
+
+ #include <boost/charconv/limits.hpp>
++#include <boost/charconv/detail/bit_layouts.hpp>
+
+ void test_odr_use( int const* );
+
+@@ -28,7 +29,9 @@ void f1()
+
+ test<float>();
+ test<double>();
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_INT128
+
+--- a/libs/charconv/test/limits_link_2.cpp
++++ b/libs/charconv/test/limits_link_2.cpp
+@@ -3,6 +3,7 @@
+ // https://www.boost.org/LICENSE_1_0.txt
+
+ #include <boost/charconv/limits.hpp>
++#include <boost/charconv/detail/bit_layouts.hpp>
+
+ void test_odr_use( int const* );
+
+@@ -28,7 +29,9 @@ void f2()
+
+ test<float>();
+ test<double>();
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
++ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_INT128
+
+--- a/libs/charconv/test/roundtrip.cpp
++++ b/libs/charconv/test/roundtrip.cpp
+@@ -347,6 +347,7 @@ template<typename FPType> int64_t Distance(FPType y, FPType x)
+ return ToOrdinal(y) - ToOrdinal(x);
+ }
+
++#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ template <> void test_roundtrip<long double>(long double value)
+ {
+ char buffer[ 256 ];
+@@ -381,6 +382,7 @@ template <> void test_roundtrip<long double>(long double value)
+ // LCOV_EXCL_STOP
+ }
+ }
++#endif
+
+ // floating point types, boundary values
+
+@@ -601,7 +603,7 @@ int main()
+ #endif
+
+ // long double
+- #if !(BOOST_CHARCONV_LDBL_BITS == 128)
++ #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
+
+ {
+ long double const ql = std::pow( 1.0L, -64 );
+--- a/libs/charconv/test/to_chars_float.cpp
++++ b/libs/charconv/test/to_chars_float.cpp
+@@ -202,7 +202,7 @@ int main()
+ non_finite_values<double>(boost::charconv::chars_format::hex, 2);
+
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484
+- #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__))
++ #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
+ non_finite_values<long double>();
+ #endif
+
+--- a/libs/charconv/test/to_chars_float_STL_comp.cpp
++++ b/libs/charconv/test/to_chars_float_STL_comp.cpp
+@@ -212,7 +212,10 @@ int main()
+ // General format
+ random_test<float>();
+ random_test<double>();
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>();
++ #endif
++
+ test_spot<double>(0.0);
+ test_spot<double>(-0.0);
+
+@@ -224,7 +227,9 @@ int main()
+ // Scientific
+ random_test<float>(boost::charconv::chars_format::scientific);
+ random_test<double>(boost::charconv::chars_format::scientific);
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::scientific);
++ #endif
+ test_spot<double>(0.0, boost::charconv::chars_format::scientific);
+ test_spot<double>(-0.0, boost::charconv::chars_format::scientific);
+
+@@ -237,14 +242,20 @@ int main()
+ // Hex
+ random_test<float>(boost::charconv::chars_format::hex);
+ random_test<double>(boost::charconv::chars_format::hex);
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex);
++ #endif
+
+ #if !defined(_LIBCPP_VERSION)
++
+ random_test<float>(boost::charconv::chars_format::hex, -1e5F, 1e5F);
+ random_test<double>(boost::charconv::chars_format::hex, -1e5, 1e5);
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex, -1e5L, 1e5L);
+ #endif
+
++ #endif
++
+ test_spot<double>(-9.52743282403084637e+306, boost::charconv::chars_format::hex);
+ test_spot<double>(-9.52743282403084637e-306, boost::charconv::chars_format::hex);
+ test_spot<double>(-9.52743282403084637e+305, boost::charconv::chars_format::hex);
+@@ -261,13 +272,16 @@ int main()
+ // Various non-finite values
+ non_finite_test<float>();
+ non_finite_test<double>();
+- non_finite_test<long double>();
+ non_finite_test<float>(boost::charconv::chars_format::scientific);
+ non_finite_test<double>(boost::charconv::chars_format::scientific);
+- non_finite_test<long double>(boost::charconv::chars_format::scientific);
+ non_finite_test<float>(boost::charconv::chars_format::hex);
+ non_finite_test<double>(boost::charconv::chars_format::hex);
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ non_finite_test<long double>();
++ non_finite_test<long double>(boost::charconv::chars_format::scientific);
+ non_finite_test<long double>(boost::charconv::chars_format::hex);
++ #endif
+
+ #if (defined(__GNUC__) && __GNUC__ >= 11) || (defined(_MSC_VER) && _MSC_VER >= 1924)
+ // Selected additional values
+@@ -288,7 +302,10 @@ int main()
+ // Reported in issue #93
+ test_spot<float>(3.3F);
+ test_spot<double>(3.3);
++
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ test_spot<long double>(3.3L);
++ #endif
+
+ return boost::report_errors();
+ }
+--- a/libs/charconv/test/to_chars_sprintf.cpp
++++ b/libs/charconv/test/to_chars_sprintf.cpp
+@@ -627,6 +627,7 @@ int main()
+
+ // long double
+
++ #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
+ {
+ for( int i = 0; i < N; ++i )
+ {
+@@ -665,6 +666,7 @@ int main()
+
+ test_sprintf_bv_fp<long double>();
+ }
++ #endif
+
+ return boost::report_errors();
+ }
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch b/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch
new file mode 100644
index 000000000000..8d91e5f41746
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch
@@ -0,0 +1,52 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/libs/charconv/src/to_chars.cpp
++++ b/libs/charconv/src/to_chars.cpp
+@@ -620,44 +620,6 @@ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* la
+ return boost::charconv::detail::to_chars_float_impl(first, last, value, fmt, precision);
+ }
+
+-#else
+-
+-boost::charconv::to_chars_result boost::charconv::to_chars( char* first, char* last, long double value,
+- boost::charconv::chars_format fmt, int precision) noexcept
+-{
+- if (std::isnan(value))
+- {
+- bool is_negative = false;
+- if (std::signbit(value))
+- {
+- is_negative = true;
+- *first++ = '-';
+- }
+-
+- if (issignaling(value))
+- {
+- std::memcpy(first, "nan(snan)", 9);
+- return { first + 9 + static_cast<int>(is_negative), std::errc() };
+- }
+- else
+- {
+- if (is_negative)
+- {
+- std::memcpy(first, "nan(ind)", 8);
+- return { first + 9, std::errc() };
+- }
+- else
+- {
+- std::memcpy(first, "nan", 3);
+- return { first + 3, std::errc() };
+- }
+- }
+- }
+-
+- // Fallback to printf
+- return boost::charconv::detail::to_chars_printf_impl(first, last, value, fmt, precision);
+-}
+-
+ #endif
+
+ #ifdef BOOST_CHARCONV_HAS_FLOAT128
+--
+2.45.2
+
diff --git a/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch b/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch
new file mode 100644
index 000000000000..69899ae3b850
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch
@@ -0,0 +1,356 @@
+https://bugs.gentoo.org/932579
+https://github.com/boostorg/charconv/pull/183
+--- a/boost/charconv/detail/bit_layouts.hpp
++++ b/boost/charconv/detail/bit_layouts.hpp
+@@ -106,7 +106,7 @@ struct IEEEl2bits
+ #define BOOST_CHARCONV_LDBL_BITS 64
+
+ #else // Unsupported long double representation
+-# define BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++# define BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ # define BOOST_CHARCONV_LDBL_BITS -1
+ #endif
+
+--- a/boost/charconv/from_chars.hpp
++++ b/boost/charconv/from_chars.hpp
+@@ -140,7 +140,7 @@ BOOST_CHARCONV_GCC5_CONSTEXPR from_chars_result from_chars(boost::core::string_v
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+@@ -168,7 +168,7 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(const char* first, const
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+@@ -200,7 +200,7 @@ BOOST_CHARCONV_DECL from_chars_result from_chars_erange(boost::core::string_view
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char* last, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+@@ -226,7 +226,7 @@ BOOST_CHARCONV_DECL from_chars_result from_chars(const char* first, const char*
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, float& value, chars_format fmt = chars_format::general) noexcept;
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, double& value, chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL from_chars_result from_chars(boost::core::string_view sv, long double& value, chars_format fmt = chars_format::general) noexcept;
+ #endif
+
+--- a/boost/charconv/to_chars.hpp
++++ b/boost/charconv/to_chars.hpp
+@@ -82,7 +82,7 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt = chars_format::general) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt = chars_format::general) noexcept;
+ #endif
+@@ -92,7 +92,7 @@ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, float valu
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, double value,
+ chars_format fmt, int precision) noexcept;
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ BOOST_CHARCONV_DECL to_chars_result to_chars(char* first, char* last, long double value,
+ chars_format fmt, int precision) noexcept;
+ #endif
+--- a/libs/charconv/src/from_chars.cpp
++++ b/libs/charconv/src/from_chars.cpp
+@@ -205,7 +205,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char
+ return r;
+ }
+
+-#elif !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
++#elif !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+@@ -299,7 +299,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::cor
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars_erange(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return boost::charconv::from_chars_erange(sv.data(), sv.data() + sv.size(), value, fmt);
+@@ -374,7 +374,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first
+ return from_chars_strict_impl(first, last, value, fmt);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(const char* first, const char* last, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(first, last, value, fmt);
+@@ -433,7 +433,7 @@ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::stri
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ boost::charconv::from_chars_result boost::charconv::from_chars(boost::core::string_view sv, long double& value, boost::charconv::chars_format fmt) noexcept
+ {
+ return from_chars_strict_impl(sv.data(), sv.data() + sv.size(), value, fmt);
+--- a/libs/charconv/src/to_chars.cpp
++++ b/libs/charconv/src/to_chars.cpp
+@@ -601,7 +601,7 @@ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* la
+ return boost::charconv::detail::to_chars_float_impl(first, last, static_cast<double>(value), fmt, precision);
+ }
+
+-#elif (BOOST_CHARCONV_LDBL_BITS == 80 || BOOST_CHARCONV_LDBL_BITS == 128)
++#elif !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+
+ boost::charconv::to_chars_result boost::charconv::to_chars(char* first, char* last, long double value,
+ boost::charconv::chars_format fmt) noexcept
+--- a/libs/charconv/test/from_chars_float.cpp
++++ b/libs/charconv/test/from_chars_float.cpp
+@@ -440,7 +440,7 @@ void test_issue_37()
+ overflow_spot_value("1.0e+9999", HUGE_VAL);
+ overflow_spot_value("-1.0e+9999", -HUGE_VAL);
+ }
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ else
+ {
+ overflow_spot_value("1e99999", HUGE_VALL);
+@@ -532,7 +532,7 @@ int main()
+ odd_strings_test<float>();
+ odd_strings_test<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ simple_integer_test<long double>();
+ simple_hex_integer_test<long double>();
+ simple_scientific_test<long double>();
+@@ -1883,7 +1883,7 @@ int main()
+ spot_check_invalid_argument<double>(" 1.23", fmt);
+ spot_check_invalid_argument<double>(" 1.23", fmt);
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ spot_check_nan<long double>("nan", fmt);
+ spot_check_nan<long double>("-nan", fmt);
+ spot_check_inf<long double>("inf", fmt);
+--- a/libs/charconv/test/from_chars_string_view.cpp
++++ b/libs/charconv/test/from_chars_string_view.cpp
+@@ -120,7 +120,7 @@ int main()
+ test_float<float, std::string>();
+ test_float<double, std::string>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_float<long double>();
+ test_float<long double, std::string>();
+ #endif
+@@ -130,7 +130,7 @@ int main()
+ test_float<float, std::string_view>();
+ test_float<double, std::string_view>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_float<long double, std::string_view>();
+ #endif
+
+--- a/libs/charconv/test/github_issue_110.cpp
++++ b/libs/charconv/test/github_issue_110.cpp
+@@ -43,7 +43,7 @@ int main()
+ test<float>();
+ test<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/github_issue_122.cpp
++++ b/libs/charconv/test/github_issue_122.cpp
+@@ -53,7 +53,7 @@ int main()
+ test<float>();
+ test<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/github_issue_152.cpp
++++ b/libs/charconv/test/github_issue_152.cpp
+@@ -229,7 +229,7 @@ int main()
+ test_failed_values();
+ #endif
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_non_finite<long double>();
+ test_non_finite_fixed_precision<long double>();
+ test_min_buffer_size<long double>();
+--- a/libs/charconv/test/github_issue_158.cpp
++++ b/libs/charconv/test/github_issue_158.cpp
+@@ -93,7 +93,7 @@ void test_values_with_negative_exp()
+ BOOST_TEST_CSTR_EQ(buffer, "0.00000000000000000000099999999999999990753745222790");
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_negative_exp()
+ {
+ char buffer[256];
+@@ -409,7 +409,7 @@ void test_zero()
+ BOOST_TEST_CSTR_EQ(buffer, "0");
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ void test_long_double_with_positive_exp()
+ {
+ char buffer[256];
+--- a/libs/charconv/test/limits.cpp
++++ b/libs/charconv/test/limits.cpp
+@@ -228,7 +228,7 @@ int main()
+ test_floating_point<float>();
+ test_floating_point<double>();
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_floating_point<long double>();
+ #endif
+
+--- a/libs/charconv/test/limits_link_1.cpp
++++ b/libs/charconv/test/limits_link_1.cpp
+@@ -29,7 +29,7 @@ void f1()
+
+ test<float>();
+ test<double>();
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/limits_link_2.cpp
++++ b/libs/charconv/test/limits_link_2.cpp
+@@ -29,7 +29,7 @@ void f2()
+
+ test<float>();
+ test<double>();
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test<long double>();
+ #endif
+
+--- a/libs/charconv/test/roundtrip.cpp
++++ b/libs/charconv/test/roundtrip.cpp
+@@ -347,7 +347,7 @@ template<typename FPType> int64_t Distance(FPType y, FPType x)
+ return ToOrdinal(y) - ToOrdinal(x);
+ }
+
+-#ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++#ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ template <> void test_roundtrip<long double>(long double value)
+ {
+ char buffer[ 256 ];
+@@ -603,7 +603,7 @@ int main()
+ #endif
+
+ // long double
+- #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
++ #if !(BOOST_CHARCONV_LDBL_BITS == 128) && !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+
+ {
+ long double const ql = std::pow( 1.0L, -64 );
+--- a/libs/charconv/test/to_chars_float.cpp
++++ b/libs/charconv/test/to_chars_float.cpp
+@@ -202,7 +202,7 @@ int main()
+ non_finite_values<double>(boost::charconv::chars_format::hex, 2);
+
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57484
+- #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_MATH_UNSUPPORTED_LONG_DOUBLE)
++ #if !(defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 9 && defined(__i686__)) && !defined(BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE)
+ non_finite_values<long double>();
+ #endif
+
+--- a/libs/charconv/test/to_chars_float_STL_comp.cpp
++++ b/libs/charconv/test/to_chars_float_STL_comp.cpp
+@@ -212,7 +212,7 @@ int main()
+ // General format
+ random_test<float>();
+ random_test<double>();
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>();
+ #endif
+
+@@ -227,7 +227,7 @@ int main()
+ // Scientific
+ random_test<float>(boost::charconv::chars_format::scientific);
+ random_test<double>(boost::charconv::chars_format::scientific);
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::scientific);
+ #endif
+ test_spot<double>(0.0, boost::charconv::chars_format::scientific);
+@@ -242,7 +242,7 @@ int main()
+ // Hex
+ random_test<float>(boost::charconv::chars_format::hex);
+ random_test<double>(boost::charconv::chars_format::hex);
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex);
+ #endif
+
+@@ -250,7 +250,7 @@ int main()
+
+ random_test<float>(boost::charconv::chars_format::hex, -1e5F, 1e5F);
+ random_test<double>(boost::charconv::chars_format::hex, -1e5, 1e5);
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ random_test<long double>(boost::charconv::chars_format::hex, -1e5L, 1e5L);
+ #endif
+
+@@ -277,7 +277,7 @@ int main()
+ non_finite_test<float>(boost::charconv::chars_format::hex);
+ non_finite_test<double>(boost::charconv::chars_format::hex);
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ non_finite_test<long double>();
+ non_finite_test<long double>(boost::charconv::chars_format::scientific);
+ non_finite_test<long double>(boost::charconv::chars_format::hex);
+@@ -303,7 +303,7 @@ int main()
+ test_spot<float>(3.3F);
+ test_spot<double>(3.3);
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ test_spot<long double>(3.3L);
+ #endif
+
+--- a/libs/charconv/test/to_chars_sprintf.cpp
++++ b/libs/charconv/test/to_chars_sprintf.cpp
+@@ -627,7 +627,7 @@ int main()
+
+ // long double
+
+- #ifndef BOOST_MATH_UNSUPPORTED_LONG_DOUBLE
++ #ifndef BOOST_CHARCONV_UNSUPPORTED_LONG_DOUBLE
+ {
+ for( int i = 0; i < N; ++i )
+ {
+--
+2.45.2
+
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2024-06-03 1:31 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2024-06-03 1:31 UTC (permalink / raw
To: gentoo-commits
commit: 4bbea521152678132cf0b02e3a152481523b3078
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 3 01:19:54 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jun 3 01:20:45 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4bbea521
dev-libs/boost: fix aliasing violation in boost::container
Note that we have to crank the subslot for this. I've added a fudge .1
which we should drop on 1.86.0.
Closes: https://bugs.gentoo.org/933289
Bug: https://github.com/freeorion/freeorion/issues/4949
Bug: https://github.com/boostorg/container/issues/252
Bug: https://github.com/boostorg/container/issues/281
Bug: https://bugs.gentoo.org/932780
Bug: https://bugs.gentoo.org/931587
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.85.0-r1.ebuild | 348 ++++++++++++++++++
.../files/boost-1.85.0-container-aliasing.patch | 408 +++++++++++++++++++++
2 files changed, 756 insertions(+)
diff --git a/dev-libs/boost/boost-1.85.0-r1.ebuild b/dev-libs/boost/boost-1.85.0-r1.ebuild
new file mode 100644
index 000000000000..aff57dceec4b
--- /dev/null
+++ b/dev-libs/boost/boost-1.85.0-r1.ebuild
@@ -0,0 +1,348 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Keep an eye on both of these after releases for patches:
+# * https://www.boost.org/patches/
+# * https://www.boost.org/users/history/version_${MY_PV}.html
+# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
+# Note that the latter may sometimes feature patches not on the former too.
+
+# FIXME: cleanup subslot after 1.85.0
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}.1" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( virtual/mpi[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy:=[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-build/b2-5.0.0"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ "${FILESDIR}"/${PN}-1.85.0-bcp-filesystem.patch
+ "${FILESDIR}"/${PN}-1.85.0-python-numpy-2.patch
+ "${FILESDIR}"/${PN}-1.85.0-container-aliasing.patch
+)
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if multilib_native_use python; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if multilib_native_use python && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if multilib_native_use python; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ $(usev !stacktrace --without-stacktrace)
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+
+ if [[ ${CHOST} != *-darwin* ]]; then
+ # On modern macOS, file I/O is already 64-bit by default,
+ # there's no support for special options like O_LARGEFILE.
+ # Thus, LFS must be disabled.
+ #
+ # On other systems, we need to enable LFS explicitly for 64-bit
+ # offsets on 32-bit hosts (#894564)
+ append-lfs-flags
+ fi
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if multilib_native_use tools; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if multilib_native_use tools; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ # these paths look like this:
+ # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
+ # threadapi-pthread/threading-multi/visibility-hidden/
+ # libboost_thread.dylib
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ # strip path prefix from references, so we obtain
+ # something like libboost_thread.dylib.
+ local r_basename=${r##*/}
+
+ ebegin " correcting reference to ${r_basename}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r_basename}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.85.0-container-aliasing.patch b/dev-libs/boost/files/boost-1.85.0-container-aliasing.patch
new file mode 100644
index 000000000000..cfc1215e7023
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-container-aliasing.patch
@@ -0,0 +1,408 @@
+https://bugs.gentoo.org/933289 (and https://bugs.gentoo.org/932780, https://bugs.gentoo.org/931587)
+https://github.com/freeorion/freeorion/issues/4949
+https://github.com/boostorg/container/issues/252
+https://github.com/boostorg/container/issues/281
+https://github.com/boostorg/container/commit/20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9
+
+From 20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= <igaztanaga@gmail.com>
+Date: Sun, 28 Apr 2024 23:29:59 +0200
+Subject: [PATCH] Remove UB in flat_map implementation when the implementation
+ has a movable std::pair
+
+--- a/boost/container/allocator_traits.hpp
++++ b/boost/container/allocator_traits.hpp
+@@ -32,6 +32,8 @@
+ #include <boost/container/detail/mpl.hpp>
+ #include <boost/container/detail/type_traits.hpp> //is_empty
+ #include <boost/container/detail/placement_new.hpp>
++#include <boost/container/detail/is_pair.hpp>
++#include <boost/container/detail/addressof.hpp>
+ #ifndef BOOST_CONTAINER_DETAIL_STD_FWD_HPP
+ #include <boost/container/detail/std_fwd.hpp>
+ #endif
+@@ -81,6 +83,144 @@
+
+ namespace boost {
+ namespace container {
++namespace dtl {
++
++#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
++
++template<class T, class ...Args>
++BOOST_CONTAINER_FORCEINLINE void construct_type(T *p, BOOST_FWD_REF(Args) ...args)
++{
++ ::new((void*)p, boost_container_new_t()) T(::boost::forward<Args>(args)...);
++}
++
++template < class Pair, class KeyType, class ... Args>
++typename dtl::enable_if< dtl::is_pair<Pair>, void >::type
++construct_type
++ (Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k, BOOST_FWD_REF(Args) ...args)
++{
++ construct_type(dtl::addressof(p->first), ::boost::forward<KeyType>(k));
++ BOOST_CONTAINER_TRY{
++ construct_type(dtl::addressof(p->second), ::boost::forward<Args>(args)...);
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename Pair::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++#else
++
++#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ(N) \
++template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
++BOOST_CONTAINER_FORCEINLINE \
++ typename dtl::disable_if_c<dtl::is_pair<T>::value, void >::type \
++construct_type(T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
++{\
++ ::new((void*)p, boost_container_new_t()) T( BOOST_MOVE_FWD##N );\
++}\
++//
++BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ)
++#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPEJ
++
++#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE(N) \
++template < class Pair, class KeyType BOOST_MOVE_I##N BOOST_MOVE_CLASS##N>\
++typename dtl::enable_if< dtl::is_pair<Pair>, void >::type construct_type\
++ (Pair* p, try_emplace_t, BOOST_FWD_REF(KeyType) k BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
++{\
++ construct_type(dtl::addressof(p->first), ::boost::forward<KeyType>(k));\
++ BOOST_CONTAINER_TRY{\
++ construct_type(dtl::addressof(p->second) BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
++ }\
++ BOOST_CONTAINER_CATCH(...) {\
++ typedef typename Pair::first_type first_type;\
++ dtl::addressof(p->first)->~first_type();\
++ BOOST_CONTAINER_RETHROW\
++ }\
++ BOOST_CONTAINER_CATCH_END\
++}\
++//
++BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE)
++#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_TYPE
++
++#endif
++
++template<class T>
++inline
++typename dtl::enable_if<dtl::is_pair<T>, void >::type
++construct_type(T* p)
++{
++ dtl::construct_type(dtl::addressof(p->first));
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second));
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++
++template<class T, class U>
++inline
++typename dtl::enable_if_c
++ < dtl::is_pair<T>::value
++ , void >::type
++construct_type(T* p, U &u)
++{
++ dtl::construct_type(dtl::addressof(p->first), u.first);
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second), u.second);
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++template<class T, class U>
++inline
++typename dtl::enable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value &&
++ !boost::move_detail::is_reference<U>::value //This is needed for MSVC10 and ambiguous overloads
++ , void >::type
++construct_type(T* p, BOOST_RV_REF(U) u)
++{
++ dtl::construct_type(dtl::addressof(p->first), ::boost::move(u.first));
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second), ::boost::move(u.second));
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++template<class T, class U, class V>
++inline
++typename dtl::enable_if<dtl::is_pair<T>, void >::type
++construct_type(T* p, BOOST_FWD_REF(U) x, BOOST_FWD_REF(V) y)
++{
++ dtl::construct_type(dtl::addressof(p->first), ::boost::forward<U>(x));
++ BOOST_CONTAINER_TRY{
++ dtl::construct_type(dtl::addressof(p->second), ::boost::forward<V>(y));
++ }
++ BOOST_CONTAINER_CATCH(...) {
++ typedef typename T::first_type first_type;
++ dtl::addressof(p->first)->~first_type();
++ BOOST_CONTAINER_RETHROW
++ }
++ BOOST_CONTAINER_CATCH_END
++}
++
++} //namespace dtl
+
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
+
+@@ -419,7 +559,7 @@ struct allocator_traits
+
+ template<class T, class ...Args>
+ inline static void priv_construct(dtl::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args)
+- { ::new((void*)p, boost_container_new_t()) T(::boost::forward<Args>(args)...); }
++ { dtl::construct_type(p, ::boost::forward<Args>(args)...); }
+ #else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
+ public:
+
+@@ -450,7 +590,7 @@ struct allocator_traits
+ \
+ template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
+ inline static void priv_construct(dtl::false_type, Allocator &, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
+- { ::new((void*)p, boost_container_new_t()) T(BOOST_MOVE_FWD##N); }\
++ { dtl::construct_type(p BOOST_MOVE_I##N BOOST_MOVE_FWD##N); }\
+ //
+ BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL)
+ #undef BOOST_CONTAINER_ALLOCATOR_TRAITS_PRIV_CONSTRUCT_IMPL
+--- a/boost/container/detail/construct_in_place.hpp
++++ b/boost/container/detail/construct_in_place.hpp
+@@ -24,6 +24,7 @@
+ #include <boost/container/allocator_traits.hpp>
+ #include <boost/container/detail/iterators.hpp>
+ #include <boost/container/detail/value_init.hpp>
++#include <boost/container/detail/is_pair.hpp>
+
+ namespace boost {
+ namespace container {
+@@ -62,9 +63,42 @@ BOOST_CONTAINER_FORCEINLINE void construct_in_place(Allocator &a, T *dest, empla
+
+ //Assignment
+
++template<class T, class U>
++BOOST_CONTAINER_FORCEINLINE
++ typename dtl::disable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value
++ && dtl::is_pair<typename dtl::remove_reference<U>::type>::value
++ , void>::type
++assign_in_place_ref(T &t, BOOST_FWD_REF(U) u)
++{ t = ::boost::forward<U>(u); }
++
++template<class T, class U>
++BOOST_CONTAINER_FORCEINLINE
++ typename dtl::enable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value
++ && dtl::is_pair<typename dtl::remove_reference<U>::type>::value
++ , void>::type
++assign_in_place_ref(T &t, const U &u)
++{
++ assign_in_place_ref(t.first, u.first);
++ assign_in_place_ref(t.second, u.second);
++}
++
++template<class T, class U>
++BOOST_CONTAINER_FORCEINLINE
++ typename dtl::enable_if_c
++ < dtl::is_pair<typename dtl::remove_reference<T>::type>::value
++ && dtl::is_pair<typename dtl::remove_reference<U>::type>::value
++ , void>::type
++assign_in_place_ref(T &t, BOOST_RV_REF(U) u)
++{
++ assign_in_place_ref(t.first, ::boost::move(u.first));
++ assign_in_place_ref(t.second, ::boost::move(u.second));
++}
++
+ template<class DstIt, class InpIt>
+ BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, InpIt source)
+-{ *dest = *source; }
++{ assign_in_place_ref(*dest, *source); }
+
+ template<class DstIt, class U>
+ BOOST_CONTAINER_FORCEINLINE void assign_in_place(DstIt dest, value_init_construct_iterator<U>)
+--- a/boost/container/flat_map.hpp
++++ b/boost/container/flat_map.hpp
+@@ -48,6 +48,11 @@
+ #include <initializer_list>
+ #endif
+
++#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
++#define BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
++#endif
++
++
+ namespace boost {
+ namespace container {
+
+@@ -58,21 +63,37 @@ class flat_multimap;
+
+ namespace dtl{
+
++#if defined(BOOST_CONTAINER_STD_PAIR_IS_MOVABLE)
+ template<class D, class S>
+ BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
+-{ return *move_detail::force_ptr<D*>(&s); }
++{ return s; }
+
+ template<class D, class S>
+ BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s)
+-{ return *move_detail::force_ptr<const D*>(&s); }
++{ return s; }
++
++template<class D>
++BOOST_CONTAINER_FORCEINLINE static D force_copy(D s)
++{ return s; }
++
++#else //!BOOST_CONTAINER_DOXYGEN_INVOKED
++
++template<class D, class S>
++BOOST_CONTAINER_FORCEINLINE static D &force(S &s)
++{ return *move_detail::launder_cast<D*>(&s); }
++
++template<class D, class S>
++BOOST_CONTAINER_FORCEINLINE static const D &force(const S &s)
++{ return *move_detail::launder_cast<const D*>(&s); }
+
+ template<class D, class S>
+ BOOST_CONTAINER_FORCEINLINE static D force_copy(const S &s)
+ {
+- const D *const vp = move_detail::force_ptr<const D *>(&s);
++ const D *const vp = move_detail::launder_cast<const D *>(&s);
+ D ret_val(*vp);
+ return ret_val;
+ }
++#endif //BOOST_CONTAINER_DOXYGEN_INVOKED
+
+ } //namespace dtl{
+
+@@ -118,18 +139,27 @@ class flat_map
+ private:
+ BOOST_COPYABLE_AND_MOVABLE(flat_map)
+ //This is the tree that we should store if pair was movable
++ typedef std::pair<Key, T> std_pair_t;
+ typedef dtl::flat_tree<
+- std::pair<Key, T>,
++ std_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+ AllocatorOrContainer> tree_t;
+
+ //This is the real tree stored here. It's based on a movable pair
++ typedef dtl::pair<Key, T> dtl_pair_t;
++
++ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
++ typedef std_pair_t impl_pair_t;
++ #else
++ typedef dtl_pair_t impl_pair_t;
++ #endif
++
+ typedef dtl::flat_tree<
+- dtl::pair<Key, T>,
++ impl_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
++ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
+ > impl_tree_t;
+ impl_tree_t m_flat_tree; // flat tree representing flat_map
+
+@@ -851,7 +881,7 @@ class flat_map
+ //! @copydoc ::boost::container::flat_set::nth(size_type) const
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
+- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
++ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
+
+ //! @copydoc ::boost::container::flat_set::index_of(iterator)
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+@@ -1099,7 +1129,7 @@ class flat_map
+ template <class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( std::pair<iterator BOOST_MOVE_I bool>
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I std::pair<iterator BOOST_MOVE_I bool> >::type)
+ insert(BOOST_FWD_REF(Pair) x)
+ {
+@@ -1153,7 +1183,7 @@ class flat_map
+ template <class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( iterator
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I iterator>::type)
+ insert(const_iterator p, BOOST_FWD_REF(Pair) x)
+ {
+@@ -1777,17 +1807,24 @@ class flat_multimap
+ #ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
+ private:
+ BOOST_COPYABLE_AND_MOVABLE(flat_multimap)
++ typedef std::pair<Key, T> std_pair_t;
+ typedef dtl::flat_tree<
+- std::pair<Key, T>,
++ std_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+ AllocatorOrContainer> tree_t;
+ //This is the real tree stored here. It's based on a movable pair
++ typedef dtl::pair<Key, T> dtl_pair_t;
++ #ifdef BOOST_CONTAINER_STD_PAIR_IS_MOVABLE
++ typedef std_pair_t impl_pair_t;
++ #else
++ typedef dtl_pair_t impl_pair_t;
++ #endif
+ typedef dtl::flat_tree<
+- dtl::pair<Key, T>,
++ impl_pair_t,
+ dtl::select1st<Key>,
+ Compare,
+- typename dtl::container_or_allocator_rebind<AllocatorOrContainer, dtl::pair<Key, T> >::type
++ typename dtl::container_or_allocator_rebind<AllocatorOrContainer, impl_pair_t >::type
+ > impl_tree_t;
+ impl_tree_t m_flat_tree; // flat tree representing flat_map
+
+@@ -2388,7 +2425,7 @@ class flat_multimap
+ //! @copydoc ::boost::container::flat_set::nth(size_type) const
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+ const_iterator nth(size_type n) const BOOST_NOEXCEPT_OR_NOTHROW
+- { return dtl::force_copy<iterator>(m_flat_tree.nth(n)); }
++ { return dtl::force_copy<const_iterator>(m_flat_tree.nth(n)); }
+
+ //! @copydoc ::boost::container::flat_set::index_of(iterator)
+ BOOST_CONTAINER_ATTRIBUTE_NODISCARD inline
+@@ -2477,7 +2514,7 @@ class flat_multimap
+ template<class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( iterator
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I iterator >::type)
+ insert(BOOST_FWD_REF(Pair) x)
+ { return dtl::force_copy<iterator>(m_flat_tree.emplace_equal(boost::forward<Pair>(x))); }
+@@ -2514,7 +2551,7 @@ class flat_multimap
+ template<class Pair>
+ inline BOOST_CONTAINER_DOC1ST
+ ( iterator
+- , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I impl_value_type>::value
++ , typename dtl::enable_if_c<dtl::is_convertible<Pair BOOST_MOVE_I dtl_pair_t>::value
+ BOOST_MOVE_I iterator>::type)
+ insert(const_iterator p, BOOST_FWD_REF(Pair) x)
+ {
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2024-02-17 14:27 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2024-02-17 14:27 UTC (permalink / raw
To: gentoo-commits
commit: 999e1cf05eb71621f5d6daa0633f6dde9531b747
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 17 14:27:27 2024 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Feb 17 14:27:27 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=999e1cf0
dev-libs/boost: drop 1.83.0-r1, 1.83.0-r2, 1.83.0-r3
Closes: https://github.com/gentoo/gentoo/pull/35385
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.83.0-r1.ebuild | 356 --------------------
dev-libs/boost/boost-1.83.0-r2.ebuild | 357 --------------------
dev-libs/boost/boost-1.83.0-r3.ebuild | 358 ---------------------
.../boost/files/boost-1.83.0-unordered-uaf.patch | 18 --
5 files changed, 1090 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 7c6b9912e42c..c627f2a7f59b 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,2 @@
DIST boost_1_82_0.tar.bz2 121325129 BLAKE2B 16ee164ce7114d8134c861b3652c842750cec63ab0e79e4386d8cb9c56f7a454f9a9cfa75f25d9132a8d8d9e6f39d32a8e7535f83f52f355bbc40ef530163fa5 SHA512 6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb
-DIST boost_1_83_0.tar.bz2 122892751 BLAKE2B c4af1713712da82f964fe08451141ea96905e30b475ee5090bf87ae6e43bcb1f258ab92e16e992fd22405e8cd85a435cef76a22b98788d9960396a4fec8c4c62 SHA512 d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711
DIST boost_1_84_0.tar.bz2 123110547 BLAKE2B a872ee00402be0383726020f4d13a7df6c2765c52eac2e09aab1604432931d26dd597503f5dcbbf788d7e7528d13c6d1dbfff1e85d22bf92c7828ef74cf2405d SHA512 5dfeb35198bb096e46cf9e131ef0334cb95bc0bf09f343f291b860b112598b3c36111bd8c232439c401a2b2fb832fa0c399a8d5b96afc60bd359dff070154497
diff --git a/dev-libs/boost/boost-1.83.0-r1.ebuild b/dev-libs/boost/boost-1.83.0-r1.ebuild
deleted file mode 100644
index 81216b56e964..000000000000
--- a/dev-libs/boost/boost-1.83.0-r1.ebuild
+++ /dev/null
@@ -1,356 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Keep an eye on both of these after releases for patches:
-# * https://www.boost.org/patches/
-# * https://www.boost.org/users/history/version_${MY_PV}.html
-# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
-# Note that the latter may sometimes feature patches not on the former too.
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-build/b2-4.9.2"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- compiler="gcc"
- compiler_version="$(gcc-version)"
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- # We don't want to end up with -L/usr/lib on our linker lines
- # which then gives us lots of
- # skipping incompatible /usr/lib/libc.a when searching for -lc
- # warnings
- [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
- $(usev !mpi --without-mpi)
- $(usev !nls --without-locale)
- $(usev !context '--without-context --without-coroutine --without-fiber')
- $(usev !stacktrace --without-stacktrace)
- --boost-build="${BROOT}"/usr/share/b2/src
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=shared
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++17 globally as of 1.80
- append-cxxflags -std=c++17
-
- if [[ ${CHOST} != *-darwin* ]]; then
- # On modern macOS, file I/O is already 64-bit by default,
- # there's no support for special options like O_LARGEFILE.
- # Thus, LFS must be disabled.
- #
- # On other systems, we need to enable LFS explicitly for 64-bit
- # offsets on 32-bit hosts (#894564)
- append-lfs-flags
- fi
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- # these paths look like this:
- # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
- # threadapi-pthread/threading-multi/visibility-hidden/
- # libboost_thread.dylib
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- # strip path prefix from references, so we obtain
- # something like libboost_thread.dylib.
- local r_basename=${r##*/}
-
- ebegin " correcting reference to ${r_basename}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r_basename}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/boost-1.83.0-r2.ebuild b/dev-libs/boost/boost-1.83.0-r2.ebuild
deleted file mode 100644
index 17311aed454c..000000000000
--- a/dev-libs/boost/boost-1.83.0-r2.ebuild
+++ /dev/null
@@ -1,357 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Keep an eye on both of these after releases for patches:
-# * https://www.boost.org/patches/
-# * https://www.boost.org/users/history/version_${MY_PV}.html
-# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
-# Note that the latter may sometimes feature patches not on the former too.
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-build/b2-4.9.2"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
- "${FILESDIR}"/${PN}-1.83.0-unordered-uaf.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- compiler="gcc"
- compiler_version="$(gcc-version)"
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- # We don't want to end up with -L/usr/lib on our linker lines
- # which then gives us lots of
- # skipping incompatible /usr/lib/libc.a when searching for -lc
- # warnings
- [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
- $(usev !mpi --without-mpi)
- $(usev !nls --without-locale)
- $(usev !context '--without-context --without-coroutine --without-fiber')
- $(usev !stacktrace --without-stacktrace)
- --boost-build="${BROOT}"/usr/share/b2/src
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=shared
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++17 globally as of 1.80
- append-cxxflags -std=c++17
-
- if [[ ${CHOST} != *-darwin* ]]; then
- # On modern macOS, file I/O is already 64-bit by default,
- # there's no support for special options like O_LARGEFILE.
- # Thus, LFS must be disabled.
- #
- # On other systems, we need to enable LFS explicitly for 64-bit
- # offsets on 32-bit hosts (#894564)
- append-lfs-flags
- fi
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- # these paths look like this:
- # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
- # threadapi-pthread/threading-multi/visibility-hidden/
- # libboost_thread.dylib
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- # strip path prefix from references, so we obtain
- # something like libboost_thread.dylib.
- local r_basename=${r##*/}
-
- ebegin " correcting reference to ${r_basename}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r_basename}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/boost-1.83.0-r3.ebuild b/dev-libs/boost/boost-1.83.0-r3.ebuild
deleted file mode 100644
index afd80593f25c..000000000000
--- a/dev-libs/boost/boost-1.83.0-r3.ebuild
+++ /dev/null
@@ -1,358 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-# Keep an eye on both of these after releases for patches:
-# * https://www.boost.org/patches/
-# * https://www.boost.org/users/history/version_${MY_PV}.html
-# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
-# Note that the latter may sometimes feature patches not on the former too.
-
-PYTHON_COMPAT=( python3_{10..12} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-build/b2-4.9.2"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
- "${FILESDIR}"/${PN}-1.83.0-unordered-uaf.patch
- "${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- compiler="gcc"
- compiler_version="$(gcc-version)"
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- # We don't want to end up with -L/usr/lib on our linker lines
- # which then gives us lots of
- # skipping incompatible /usr/lib/libc.a when searching for -lc
- # warnings
- [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
- $(usev !mpi --without-mpi)
- $(usev !nls --without-locale)
- $(usev !context '--without-context --without-coroutine --without-fiber')
- $(usev !stacktrace --without-stacktrace)
- --boost-build="${BROOT}"/usr/share/b2/src
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=shared
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++17 globally as of 1.80
- append-cxxflags -std=c++17
-
- if [[ ${CHOST} != *-darwin* ]]; then
- # On modern macOS, file I/O is already 64-bit by default,
- # there's no support for special options like O_LARGEFILE.
- # Thus, LFS must be disabled.
- #
- # On other systems, we need to enable LFS explicitly for 64-bit
- # offsets on 32-bit hosts (#894564)
- append-lfs-flags
- fi
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- # these paths look like this:
- # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
- # threadapi-pthread/threading-multi/visibility-hidden/
- # libboost_thread.dylib
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- # strip path prefix from references, so we obtain
- # something like libboost_thread.dylib.
- local r_basename=${r##*/}
-
- ebegin " correcting reference to ${r_basename}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r_basename}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch b/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch
deleted file mode 100644
index f9ecf675fd96..000000000000
--- a/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.patch
-https://github.com/boostorg/unordered/issues/205
-
---- a/boost/unordered/detail/foa/core.hpp
-+++ b/boost/unordered/detail/foa/core.hpp
-@@ -1870,9 +1870,10 @@ private:
-
- void fast_copy_elements_from(const table_core& x)
- {
-- if(arrays.elements){
-+ if(arrays.elements&&x.arrays.elements){
- copy_elements_array_from(x);
- copy_groups_array_from(x);
-+ size_ctrl.ml=std::size_t(x.size_ctrl.ml);
- size_ctrl.size=std::size_t(x.size_ctrl.size);
- }
- }
-
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2024-01-01 21:34 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2024-01-01 21:34 UTC (permalink / raw
To: gentoo-commits
commit: 3aec425b48b36c3f7f7df6b053441bbecbbd0584
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 1 21:34:15 2024 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Jan 1 21:34:15 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3aec425b
dev-libs/boost: add patch for net-im/swift build failure
Bug: https://github.com/boostorg/signals2/issues/70
Bug: https://bugs.gentoo.org/912309
Signed-off-by: David Seifert <soap <AT> gentoo.org>
...{boost-1.84.0.ebuild => boost-1.84.0-r1.ebuild} | 6 +-
.../boost/files/boost-1.84.0-signals2-patch1.patch | 124 +++++++++++++++++++++
.../boost/files/boost-1.84.0-signals2-patch2.patch | 19 ++++
3 files changed, 148 insertions(+), 1 deletion(-)
diff --git a/dev-libs/boost/boost-1.84.0.ebuild b/dev-libs/boost/boost-1.84.0-r1.ebuild
similarity index 98%
rename from dev-libs/boost/boost-1.84.0.ebuild
rename to dev-libs/boost/boost-1.84.0-r1.ebuild
index c6e55525f805..fc4ea0922f11 100644
--- a/dev-libs/boost/boost-1.84.0.ebuild
+++ b/dev-libs/boost/boost-1.84.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -55,6 +55,10 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
"${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
"${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch
+
+ # upstreamed
+ "${FILESDIR}"/${PN}-1.84.0-signals2-patch1.patch
+ "${FILESDIR}"/${PN}-1.84.0-signals2-patch2.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch b/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch
new file mode 100644
index 000000000000..9c07bd8f06cf
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch
@@ -0,0 +1,124 @@
+https://github.com/boostorg/signals2/issues/70
+
+From 2ba258f7b465e7bde14663ca3a966019b4ec3694 Mon Sep 17 00:00:00 2001
+From: Frank Mori Hess <fmh6jj@gmail.com>
+Date: Sat, 30 Dec 2023 14:34:58 -0500
+Subject: [PATCH] Fix disconnect by slot when the slot is another signal.
+
+--- a/boost/signals2/detail/signal_template.hpp
++++ b/boost/signals2/detail/signal_template.hpp
+@@ -103,9 +103,9 @@ namespace boost
+ BOOST_SIGNALS2_FORWARDED_ARGS(BOOST_SIGNALS2_NUM_ARGS));
+ }
+ template<typename T>
+- bool operator==(const T &other) const
++ bool contains(const T &other) const
+ {
+- return _fun == other;
++ return _fun.contains(other);
+ }
+ private:
+ BOOST_SIGNALS2_BOUND_EXTENDED_SLOT_FUNCTION_N(BOOST_SIGNALS2_NUM_ARGS)()
+@@ -115,6 +115,8 @@ namespace boost
+ boost::shared_ptr<connection> _connection;
+ };
+
++ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
++ class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
+ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
+ class BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
+
+@@ -150,6 +152,8 @@ namespace boost
+ typedef GroupCompare group_compare_type;
+ typedef typename detail::slot_call_iterator_t<slot_invoker,
+ typename connection_list_type::iterator, connection_body<group_key_type, slot_type, Mutex> > slot_call_iterator;
++ typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
++ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> weak_signal_type;
+
+ BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(const combiner_type &combiner_arg,
+ const group_compare_type &group_compare):
+@@ -531,13 +535,20 @@ namespace boost
+ {
+ (*it)->nolock_disconnect(lock);
+ }else
+- {
+- // check for wrapped extended slot
++ { // check for wrapped extended slot
+ bound_extended_slot_function_type *fp;
+ fp = (*it)->slot().slot_function().template target<bound_extended_slot_function_type>();
+- if(fp && function_equal(*fp, slot))
++ if(fp && fp->contains(slot))
+ {
+ (*it)->nolock_disconnect(lock);
++ }else
++ { // check for wrapped signal
++ weak_signal_type *fp;
++ fp = (*it)->slot().slot_function().template target<weak_signal_type>();
++ if(fp && fp->contains(slot))
++ {
++ (*it)->nolock_disconnect(lock);
++ }
+ }
+ }
+ }
+@@ -588,8 +599,6 @@ namespace boost
+ const boost::shared_ptr<mutex_type> _mutex;
+ };
+
+- template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
+- class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
+ }
+
+ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DEFAULTED_DECL(BOOST_SIGNALS2_NUM_ARGS)>
+@@ -603,8 +612,7 @@ namespace boost
+ typedef detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> impl_class;
+ public:
+- typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+- <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> weak_signal_type;
++ typedef typename impl_class::weak_signal_type weak_signal_type;
+ friend class detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION>;
+
+@@ -746,12 +754,24 @@ namespace boost
+ using std::swap;
+ swap(_pimpl, other._pimpl);
+ }
++ bool operator==(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) const
++ {
++ return _pimpl.get() == other._pimpl.get();
++ }
+ protected:
+ virtual shared_ptr<void> lock_pimpl() const
+ {
+ return _pimpl;
+ }
+ private:
++ // explicit private copy constructor to avoid compiler trying to do implicit conversions to signal
++ explicit BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(
++ const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) BOOST_NOEXCEPT
++ {
++ // noncopyable
++ BOOST_ASSERT(false);
++ }
++
+ shared_ptr<impl_class>
+ _pimpl;
+ };
+@@ -802,6 +822,16 @@ namespace boost
+ shared_pimpl(_weak_pimpl.lock());
+ return (*shared_pimpl)(BOOST_SIGNALS2_SIGNATURE_ARG_NAMES(BOOST_SIGNALS2_NUM_ARGS));
+ }
++ bool contains(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
++ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> &signal) const
++ {
++ return _weak_pimpl.lock().get() == signal._pimpl.get();
++ }
++ template <typename T>
++ bool contains(const T&) const
++ {
++ return false;
++ }
+ private:
+ boost::weak_ptr<detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> > _weak_pimpl;
diff --git a/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch b/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch
new file mode 100644
index 000000000000..f277ae9973a1
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch
@@ -0,0 +1,19 @@
+https://github.com/boostorg/signals2/issues/70
+
+From 4d994bbed820882059c7842ba5e230a26d68f2f0 Mon Sep 17 00:00:00 2001
+From: Frank Mori Hess <fmh6jj@gmail.com>
+Date: Sat, 30 Dec 2023 14:51:49 -0500
+Subject: [PATCH] Fix disconnect by slot when slot is wrapped in a
+ boost::reference_wrapper
+
+--- a/boost/signals2/detail/signal_template.hpp
++++ b/boost/signals2/detail/signal_template.hpp
+@@ -223,7 +223,7 @@ namespace boost
+ void disconnect(const T &slot)
+ {
+ typedef mpl::bool_<(is_convertible<T, group_type>::value)> is_group;
+- do_disconnect(slot, is_group());
++ do_disconnect(unwrap_ref(slot), is_group());
+ }
+ // emit signal
+ result_type operator ()(BOOST_SIGNALS2_SIGNATURE_FULL_ARGS(BOOST_SIGNALS2_NUM_ARGS))
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2023-10-08 4:22 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2023-10-08 4:22 UTC (permalink / raw
To: gentoo-commits
commit: 978d0361e4ce0e8e5c3b0a0c12a36611f03d0d2f
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 8 04:21:32 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Oct 8 04:21:58 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=978d0361
dev-libs/boost: backport unordered UAF fix
We were hoping to include another backport here but there's no news
upstream for that, so chuck this in.
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.83.0-r2.ebuild | 357 +++++++++++++++++++++
.../boost/files/boost-1.83.0-unordered-uaf.patch | 18 ++
2 files changed, 375 insertions(+)
diff --git a/dev-libs/boost/boost-1.83.0-r2.ebuild b/dev-libs/boost/boost-1.83.0-r2.ebuild
new file mode 100644
index 000000000000..5f671e7f2cd5
--- /dev/null
+++ b/dev-libs/boost/boost-1.83.0-r2.ebuild
@@ -0,0 +1,357 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Keep an eye on both of these after releases for patches:
+# * https://www.boost.org/patches/
+# * https://www.boost.org/users/history/version_${MY_PV}.html
+# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
+# Note that the latter may sometimes feature patches not on the former too.
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/b2-4.9.2"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
+ "${FILESDIR}"/${PN}-1.83.0-unordered-uaf.patch
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ $(usev !stacktrace --without-stacktrace)
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+
+ if [[ ${CHOST} != *-darwin* ]]; then
+ # On modern macOS, file I/O is already 64-bit by default,
+ # there's no support for special options like O_LARGEFILE.
+ # Thus, LFS must be disabled.
+ #
+ # On other systems, we need to enable LFS explicitly for 64-bit
+ # offsets on 32-bit hosts (#894564)
+ append-lfs-flags
+ fi
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ # these paths look like this:
+ # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
+ # threadapi-pthread/threading-multi/visibility-hidden/
+ # libboost_thread.dylib
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ # strip path prefix from references, so we obtain
+ # something like libboost_thread.dylib.
+ local r_basename=${r##*/}
+
+ ebegin " correcting reference to ${r_basename}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r_basename}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch b/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch
new file mode 100644
index 000000000000..f9ecf675fd96
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.83.0-unordered-uaf.patch
@@ -0,0 +1,18 @@
+https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.patch
+https://github.com/boostorg/unordered/issues/205
+
+--- a/boost/unordered/detail/foa/core.hpp
++++ b/boost/unordered/detail/foa/core.hpp
+@@ -1870,9 +1870,10 @@ private:
+
+ void fast_copy_elements_from(const table_core& x)
+ {
+- if(arrays.elements){
++ if(arrays.elements&&x.arrays.elements){
+ copy_elements_array_from(x);
+ copy_groups_array_from(x);
++ size_ctrl.ml=std::size_t(x.size_ctrl.ml);
+ size_ctrl.size=std::size_t(x.size_ctrl.size);
+ }
+ }
+
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2023-05-20 16:38 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2023-05-20 16:38 UTC (permalink / raw
To: gentoo-commits
commit: 3717ac89376dd29fbe0e5220b881a3e99339d331
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat May 20 16:37:44 2023 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat May 20 16:37:44 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3717ac89
dev-libs/boost: fix USE=context on arm64
Closes: https://bugs.gentoo.org/904132
Signed-off-by: David Seifert <soap <AT> gentoo.org>
.../{boost-1.82.0.ebuild => boost-1.82.0-r1.ebuild} | 1 +
dev-libs/boost/files/boost-1.82.0-context-arm64.patch | 19 +++++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/dev-libs/boost/boost-1.82.0.ebuild b/dev-libs/boost/boost-1.82.0-r1.ebuild
similarity index 99%
rename from dev-libs/boost/boost-1.82.0.ebuild
rename to dev-libs/boost/boost-1.82.0-r1.ebuild
index 30ce182a1f86..f257063c371d 100644
--- a/dev-libs/boost/boost-1.82.0.ebuild
+++ b/dev-libs/boost/boost-1.82.0-r1.ebuild
@@ -51,6 +51,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
# (upstreamed)
+ "${FILESDIR}"/${PN}-1.82.0-context-arm64.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.82.0-context-arm64.patch b/dev-libs/boost/files/boost-1.82.0-context-arm64.patch
new file mode 100644
index 000000000000..a4efac7f2f62
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.82.0-context-arm64.patch
@@ -0,0 +1,19 @@
+https://github.com/boostorg/context/commit/d039c8e4da79dbc76481236249e22892bfdde047
+https://bugs.gentoo.org/904132
+
+From d039c8e4da79dbc76481236249e22892bfdde047 Mon Sep 17 00:00:00 2001
+From: Nikita Kniazev <nok.raven@gmail.com>
+Date: Thu, 23 Mar 2023 16:23:07 +0300
+Subject: [PATCH] Fix arm64 detection broken by recent B2 change
+
+--- a/libs/context/build/Jamfile.v2
++++ b/libs/context/build/Jamfile.v2
+@@ -79,7 +79,7 @@ local rule default_abi ( )
+ local tmp = sysv ;
+ if [ os.name ] = "NT" { tmp = ms ; }
+ else if [ os.name ] = "CYGWIN" { tmp = ms ; }
+- else if [ os.platform ] = "ARM" { tmp = aapcs ; }
++ else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; }
+ else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
+ else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
+ return $(tmp) ;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2022-12-16 2:52 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2022-12-16 2:52 UTC (permalink / raw
To: gentoo-commits
commit: ad6b752889379765fd77b152c9bdd6490d888f1b
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 16 02:43:17 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec 16 02:52:05 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ad6b7528
dev-libs/boost: add 1.81.0 (unkeyworded)
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/Manifest | 1 +
dev-libs/boost/boost-1.81.0.ebuild | 340 +++++++++++++++++++++
.../files/boost-1.81.0-disable_icu_rpath.patch | 19 ++
3 files changed, 360 insertions(+)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 3e1f8229c10f..c81f47bf5be4 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1 +1,2 @@
DIST boost_1_80_0.tar.bz2 115869904 BLAKE2B 507e811be7659442c41bc2d99811bd02a236dc94932e1a7a8cf256243b479f2d2707819cd99e016a51c9dadc215713e803afdd9ea4c105af8d5d2d28d3d06a1f SHA512 829a95b463473d69ff79ea41799c68429bb79d3b2321fbdb71df079af237ab01de9ad7e9612d8783d925730acada010068d2d1aa856c34244ee5c0ece16f208f
+DIST boost_1_81_0.tar.bz2 118797750 BLAKE2B ae57247fb80ee5a952881a99bdbe9a1d5622690879ef59053716647dc1121e70fdd322251837387b43357f1cd63c6d1ba285cf35c0c40e4f5ee28a929d7eacf7 SHA512 a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36
diff --git a/dev-libs/boost/boost-1.81.0.ebuild b/dev-libs/boost/boost-1.81.0.ebuild
new file mode 100644
index 000000000000..6d6f80dba7ae
--- /dev/null
+++ b/dev-libs/boost/boost-1.81.0.ebuild
@@ -0,0 +1,340 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ !<dev-libs/leatherman-1.12.0-r1
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/b2-4.9.2"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
+
+ # (upstreamed)
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ fi
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch
new file mode 100644
index 000000000000..a64d2d8675ee
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch
@@ -0,0 +1,19 @@
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
+@@ -99,16 +99,6 @@ if $(.icu-path)
+ rule path_options ( properties * )
+ {
+ local result ;
+- if <address-model>64 in $(properties) && <toolset>msvc in $(properties)
+- {
+- debug-message Search 64 bit ICU in "$(.icu-path)/lib64" ;
+- result = <search>$(.icu-path)/bin64 <search>$(.icu-path)/lib64 ;
+- }
+- else
+- {
+- debug-message Search ICU in "$(.icu-path)/lib" ;
+- result = <search>$(.icu-path)/bin <search>$(.icu-path)/lib ;
+- }
+ return $(result) ;
+ }
+
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2022-11-12 0:05 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2022-11-12 0:05 UTC (permalink / raw
To: gentoo-commits
commit: dccc798b9d6c58ca245b20055c6cab0430a12692
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 12 00:04:20 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Nov 12 00:04:20 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dccc798b
dev-libs/boost: backport Python 3.11 and malloc FTM patches
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.80.0-r1.ebuild | 343 +++++++++++++++++++++
dev-libs/boost/files/boost-1.80.0-python3.11.patch | 33 ++
.../files/boost-1.80.0-unordered-ftm-malloc.patch | 21 ++
3 files changed, 397 insertions(+)
diff --git a/dev-libs/boost/boost-1.80.0-r1.ebuild b/dev-libs/boost/boost-1.80.0-r1.ebuild
new file mode 100644
index 000000000000..5509346c04d6
--- /dev/null
+++ b/dev-libs/boost/boost-1.80.0-r1.ebuild
@@ -0,0 +1,343 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ !<dev-libs/leatherman-1.12.0-r1
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/b2-4.9.2"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.80.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
+ # (upstreamed)
+ "${FILESDIR}"/${PN}-1.80.0-unordered-fix.patch
+ "${FILESDIR}"/${PN}-1.80.0-unary-function.patch
+ "${FILESDIR}"/${PN}-1.80.0-python3.11.patch
+ "${FILESDIR}"/${PN}-1.80.0-unordered-ftm-malloc.patch
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ fi
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.80.0-python3.11.patch b/dev-libs/boost/files/boost-1.80.0-python3.11.patch
new file mode 100644
index 000000000000..cdbc36ca953f
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.80.0-python3.11.patch
@@ -0,0 +1,33 @@
+https://github.com/boostorg/python/commit/a218babc8daee904a83f550fb66e5cb3f1cb3013
+https://github.com/boostorg/python/pull/385
+
+From a218babc8daee904a83f550fb66e5cb3f1cb3013 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Mon, 25 Apr 2022 10:51:46 +0200
+Subject: [PATCH] Fix enum_type_object type on Python 3.11
+
+The enum_type_object type inherits from PyLong_Type which is not tracked
+by the GC. Instances doesn't have to be tracked by the GC: remove the
+Py_TPFLAGS_HAVE_GC flag.
+
+The Python C API documentation says:
+
+ "To create a container type, the tp_flags field of the type object
+ must include the Py_TPFLAGS_HAVE_GC and provide an implementation of
+ the tp_traverse handler."
+
+https://docs.python.org/dev/c-api/gcsupport.html
+
+The new exception was introduced in Python 3.11 by:
+https://github.com/python/cpython/issues/88429
+--- a/libs/python/src/object/enum.cpp
++++ b/libs/python/src/object/enum.cpp
+@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = {
+ #if PY_VERSION_HEX < 0x03000000
+ | Py_TPFLAGS_CHECKTYPES
+ #endif
+- | Py_TPFLAGS_HAVE_GC
+ | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ 0, /* tp_doc */
+ 0, /* tp_traverse */
+
diff --git a/dev-libs/boost/files/boost-1.80.0-unordered-ftm-malloc.patch b/dev-libs/boost/files/boost-1.80.0-unordered-ftm-malloc.patch
new file mode 100644
index 000000000000..95b39e4bb6be
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.80.0-unordered-ftm-malloc.patch
@@ -0,0 +1,21 @@
+https://github.com/boostorg/align/commit/5ad7df63cd792fbdb801d600b93cad1a432f0151
+https://github.com/boostorg/align/pull/19
+
+From 5ad7df63cd792fbdb801d600b93cad1a432f0151 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=89rico=20Nogueira=20Rolim?=
+ <34201958+ericonr@users.noreply.github.com>
+Date: Fri, 11 Nov 2022 18:29:45 -0300
+Subject: [PATCH] Don't use FTMs to determine implementation choice
+
+--- a/boost/align/aligned_alloc.hpp
++++ b/boost/align/aligned_alloc.hpp
+@@ -38,7 +38,7 @@ Distributed under the Boost Software License, Version 1.0.
+ #include <boost/align/detail/aligned_alloc_posix.hpp>
+ #elif defined(sun) || defined(__sun)
+ #include <boost/align/detail/aligned_alloc_sunos.hpp>
+-#elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)
++#elif defined(_POSIX_VERSION)
+ #include <boost/align/detail/aligned_alloc_posix.hpp>
+ #else
+ #include <boost/align/detail/aligned_alloc.hpp>
+
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2022-07-13 18:12 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2022-07-13 18:12 UTC (permalink / raw
To: gentoo-commits
commit: 0bae26bdfe05962d899dd38d4b9cbfd119f76d90
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 13 18:12:04 2022 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 18:12:04 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0bae26bd
dev-libs/boost: rebase patches
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.79.0.ebuild | 10 ++++----
...2677.patch => boost-1.79.0-CVE-2012-2677.patch} | 28 ++++++++++------------
...=> boost-1.79.0-boost-mpi-python-PEP-328.patch} | 0
...ch => boost-1.79.0-build-auto_index-tool.patch} | 0
...xt-x32.patch => boost-1.79.0-context-x32.patch} | 0
....patch => boost-1.79.0-disable_icu_rpath.patch} | 0
6 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/dev-libs/boost/boost-1.79.0.ebuild b/dev-libs/boost/boost-1.79.0.ebuild
index 6e2fec349237..844f6d24b1ff 100644
--- a/dev-libs/boost/boost-1.79.0.ebuild
+++ b/dev-libs/boost/boost-1.79.0.ebuild
@@ -45,12 +45,12 @@ DEPEND="${RDEPEND}"
BDEPEND=">=dev-util/boost-build-1.78.0-r1"
PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
+ "${FILESDIR}"/${PN}-1.79.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
# Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.79.0-CVE-2012-2677.patch
"${FILESDIR}"/${PN}-1.79.0-fix-mips1-transition.patch
)
diff --git a/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch b/dev-libs/boost/files/boost-1.79.0-CVE-2012-2677.patch
similarity index 88%
rename from dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
rename to dev-libs/boost/files/boost-1.79.0-CVE-2012-2677.patch
index ff947f74f1c4..5dfbf85bc63f 100644
--- a/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
+++ b/dev-libs/boost/files/boost-1.79.0-CVE-2012-2677.patch
@@ -3,10 +3,8 @@ https://bugzilla.redhat.com/show_bug.cgi?id=828856
https://bugs.gentoo.org/620468
https://svn.boost.org/trac10/ticket/6701
-Index: boost/pool/pool.hpp
-===================================================================
---- a/boost/pool/pool.hpp (revision 78317)
-+++ b/boost/pool/pool.hpp (revision 78326)
+--- a/boost/pool/pool.hpp
++++ b/boost/pool/pool.hpp
@@ -27,4 +27,6 @@
#include <boost/pool/poolfwd.hpp>
@@ -14,7 +12,7 @@ Index: boost/pool/pool.hpp
+#include <boost/limits.hpp>
// boost::integer::static_lcm
#include <boost/integer/common_factor_ct.hpp>
-@@ -358,4 +360,11 @@
+@@ -356,4 +358,11 @@
}
+ size_type max_chunks() const
@@ -26,7 +24,7 @@ Index: boost/pool/pool.hpp
+
static void * & nextof(void * const ptr)
{ //! \returns Pointer dereferenced.
-@@ -377,5 +388,7 @@
+@@ -375,5 +384,7 @@
//! the first time that object needs to allocate system memory.
//! The default is 32. This parameter may not be 0.
- //! \param nmax_size is the maximum number of chunks to allocate in one block.
@@ -35,7 +33,7 @@ Index: boost/pool/pool.hpp
+ set_max_size(nmax_size);
}
-@@ -400,7 +413,7 @@
+@@ -398,7 +409,7 @@
}
void set_next_size(const size_type nnext_size)
- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
@@ -46,7 +44,7 @@ Index: boost/pool/pool.hpp
+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
}
size_type get_max_size() const
-@@ -410,5 +423,6 @@
+@@ -408,5 +419,6 @@
void set_max_size(const size_type nmax_size)
{ //! Set max_size.
- max_size = nmax_size;
@@ -54,7 +52,7 @@ Index: boost/pool/pool.hpp
+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
}
size_type get_requested_size() const
-@@ -713,7 +727,7 @@
+@@ -709,7 +721,7 @@
BOOST_USING_STD_MIN();
if(!max_size)
- next_size <<= 1;
@@ -64,7 +62,7 @@ Index: boost/pool/pool.hpp
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
// initialize it,
-@@ -753,7 +767,7 @@
+@@ -749,7 +761,7 @@
BOOST_USING_STD_MIN();
if(!max_size)
- next_size <<= 1;
@@ -74,14 +72,14 @@ Index: boost/pool/pool.hpp
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
// initialize it,
-@@ -797,4 +811,6 @@
+@@ -793,4 +805,6 @@
//! \returns Address of chunk n if allocated ok.
//! \returns 0 if not enough memory for n chunks.
+ if (n > max_chunks())
+ return 0;
const size_type partition_size = alloc_size();
-@@ -845,7 +861,7 @@
+@@ -841,7 +855,7 @@
BOOST_USING_STD_MIN();
if(!max_size)
- next_size <<= 1;
@@ -91,10 +89,8 @@ Index: boost/pool/pool.hpp
+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
// insert it into the list,
-Index: libs/pool/test/test_bug_6701.cpp
-===================================================================
---- a/libs/pool/test/test_bug_6701.cpp (revision 78326)
-+++ b/libs/pool/test/test_bug_6701.cpp (revision 78326)
+--- a/libs/pool/test/test_bug_6701.cpp
++++ b/libs/pool/test/test_bug_6701.cpp
@@ -0,0 +1,27 @@
+/* Copyright (C) 2012 Étienne Dupuis
+*
diff --git a/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch b/dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch
similarity index 100%
rename from dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch
rename to dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch
diff --git a/dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch b/dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch
similarity index 100%
rename from dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch
rename to dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch
diff --git a/dev-libs/boost/files/boost-1.71.0-context-x32.patch b/dev-libs/boost/files/boost-1.79.0-context-x32.patch
similarity index 100%
rename from dev-libs/boost/files/boost-1.71.0-context-x32.patch
rename to dev-libs/boost/files/boost-1.79.0-context-x32.patch
diff --git a/dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.79.0-disable_icu_rpath.patch
similarity index 100%
rename from dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch
rename to dev-libs/boost/files/boost-1.79.0-disable_icu_rpath.patch
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2022-02-03 4:25 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2022-02-03 4:25 UTC (permalink / raw
To: gentoo-commits
commit: 3414b1d35d6862ed5a5ad5251a60bc18b2e2be71
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 3 04:24:47 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Feb 3 04:24:47 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3414b1d3
dev-libs/boost: fix musl build for 1.78
Closes: https://bugs.gentoo.org/829147
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.78.0-r2.ebuild | 2 ++
.../boost-1.78.0-interprocess-musl-include.patch | 25 ++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/dev-libs/boost/boost-1.78.0-r2.ebuild b/dev-libs/boost/boost-1.78.0-r2.ebuild
index a67156cf87e9..53fbaeeddd56 100644
--- a/dev-libs/boost/boost-1.78.0-r2.ebuild
+++ b/dev-libs/boost/boost-1.78.0-r2.ebuild
@@ -53,6 +53,8 @@ PATCHES=(
# Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
+
+ "${FILESDIR}"/${P}-interprocess-musl-include.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.78.0-interprocess-musl-include.patch b/dev-libs/boost/files/boost-1.78.0-interprocess-musl-include.patch
new file mode 100644
index 000000000000..85d25861f11b
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.78.0-interprocess-musl-include.patch
@@ -0,0 +1,25 @@
+https://github.com/boostorg/interprocess/commit/d002a0d929ecb031843d806c2bda69e013442e13
+https://bugs.gentoo.org/829147
+
+From: Leonardo Neumann <leonardo@neumann.dev.br>
+Date: Mon, 13 Dec 2021 01:07:20 -0300
+Subject: [PATCH] Fix missing sys/stat.h include on musl-based systems
+
+Boost 1.78.0 fails to build on musl-based systems because musl does
+not include sys/stat.h by default.
+
+Fixes #161 ("Boost compiler error")
+--- a/boost/interprocess/permissions.hpp
++++ b/boost/interprocess/permissions.hpp
+@@ -29,6 +29,10 @@
+
+ #include <boost/interprocess/detail/win32_api.hpp>
+
++#else
++
++#include <sys/stat.h>
++
+ #endif
+
+ #endif //#ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
+
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2021-12-01 17:24 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2021-12-01 17:24 UTC (permalink / raw
To: gentoo-commits
commit: 1ee39fdbf2c51fede474fdb99207a444af5ac23d
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Wed Dec 1 17:23:54 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Dec 1 17:23:54 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1ee39fdb
dev-libs/boost: add missing include in 'process'
Closes: https://bugs.gentoo.org/827899
Signed-off-by: Sam James <sam <AT> gentoo.org>
...{boost-1.77.0-r3.ebuild => boost-1.77.0-r4.ebuild} | 1 +
.../files/boost-1.77.0-fix-process-include.patch | 19 +++++++++++++++++++
2 files changed, 20 insertions(+)
diff --git a/dev-libs/boost/boost-1.77.0-r3.ebuild b/dev-libs/boost/boost-1.77.0-r4.ebuild
similarity index 99%
rename from dev-libs/boost/boost-1.77.0-r3.ebuild
rename to dev-libs/boost/boost-1.77.0-r4.ebuild
index 1a84b2c175eb..1ff2d52c6c8e 100644
--- a/dev-libs/boost/boost-1.77.0-r3.ebuild
+++ b/dev-libs/boost/boost-1.77.0-r4.ebuild
@@ -57,6 +57,7 @@ PATCHES=(
"${WORKDIR}"/${PN}-1.77-math-deprecated-include.patch
"${WORKDIR}"/${PN}-1.77-geometry.patch
"${FILESDIR}"/${P}-python-3.10.patch
+ "${FILESDIR}"/${P}-fix-process-include.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.77.0-fix-process-include.patch b/dev-libs/boost/files/boost-1.77.0-fix-process-include.patch
new file mode 100644
index 000000000000..566603b360ac
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.77.0-fix-process-include.patch
@@ -0,0 +1,19 @@
+https://github.com/boostorg/process/commit/e08374ed95ac33865bda40602c94909e7cd9607f.patch
+https://bugs.gentoo.org/827899
+
+From: Eddie-cz <48474051+Eddie-cz@users.noreply.github.com>
+Date: Mon, 2 Aug 2021 10:49:42 +0200
+Subject: [PATCH] Update wchar_t.hpp
+
+--- a/boost/process/detail/traits/wchar_t.hpp
++++ b/boost/process/detail/traits/wchar_t.hpp
+@@ -12,6 +12,8 @@
+ #include <boost/process/detail/traits/env.hpp>
+ #include <boost/process/locale.hpp>
+
++#include <algorithm>
++
+ namespace boost { namespace process { namespace detail {
+
+ //template
+
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2021-05-24 21:38 Sam James
0 siblings, 0 replies; 30+ messages in thread
From: Sam James @ 2021-05-24 21:38 UTC (permalink / raw
To: gentoo-commits
commit: 59d42a91c016480f85370bd84093a33f5c3cde2f
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon May 24 19:55:23 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon May 24 21:38:38 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=59d42a91
dev-libs/boost: Fix for numpy include
Closes: https://bugs.gentoo.org/733830
Package-Manager: Portage-3.0.18, Repoman-3.0.3
Signed-off-by: David Seifert <soap <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/20971
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.76.0-r1.ebuild | 3 ++-
dev-libs/boost/files/boost-1.76-boost-numpy.patch | 23 +++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/dev-libs/boost/boost-1.76.0-r1.ebuild b/dev-libs/boost/boost-1.76.0-r1.ebuild
index d760d92ea5a..16bc039e226 100644
--- a/dev-libs/boost/boost-1.76.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.76.0-r1.ebuild
@@ -45,7 +45,7 @@ RDEPEND="
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
-BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r1"
+BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
@@ -54,6 +54,7 @@ PATCHES=(
# Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
+ "${FILESDIR}"/${PN}-1.76-boost-numpy.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.76-boost-numpy.patch b/dev-libs/boost/files/boost-1.76-boost-numpy.patch
new file mode 100644
index 00000000000..d9af132039e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.76-boost-numpy.patch
@@ -0,0 +1,23 @@
+From 0796305c863804a2b31610507c531da5c0408422 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@gmail.com>
+Date: Mon, 24 May 2021 22:14:55 +0300
+Subject: [PATCH] Use the /python//numpy target instead of [ numpy.include ]
+ (fixes #361)
+
+---
+ libs/python/build/Jamfile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
+index dbc9fb203..03b69a25d 100644
+--- a/libs/python/build/Jamfile
++++ b/libs/python/build/Jamfile
+@@ -117,7 +117,7 @@ lib boost_numpy
+ <define>BOOST_NUMPY_SOURCE
+ [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
+ [ unless [ python.numpy ] : <build>no ]
+- <include>$(numpy-include)
++ <library>/python//numpy
+ <library>boost_python
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2020-11-24 19:59 Andreas Sturmlechner
0 siblings, 0 replies; 30+ messages in thread
From: Andreas Sturmlechner @ 2020-11-24 19:59 UTC (permalink / raw
To: gentoo-commits
commit: 2835433ea0d98f2233b353f65f1551ecfd2d420c
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Nov 24 19:32:26 2020 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Nov 24 19:58:57 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2835433e
dev-libs/boost: Drop 1.73.0-r1
Package-Manager: Portage-3.0.10, Repoman-3.0.2
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.73.0-r1.ebuild | 360 ---------------------
.../boost-1.73-geometry-private-inheritance.patch | 23 --
3 files changed, 384 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 811974e5ba9..c833789b410 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,2 @@
DIST boost_1_72_0.tar.bz2 106907358 BLAKE2B ab270a0e3cb24da687d86785e2d2e6d7731b4dbc07bd839eadb642dfa5a428ad584acb1f3529661a8de9a986008ff3427491041059ea2b742348d02e00761cd8 SHA512 63bbd1743e7c904b2e69fdc2eafd1c2a8a30fd70d960dcd366059d0100f000cb605d56cbd9397bb18421631f1c9552a772c434d0f0caddbe56302273f51fd1f6
-DIST boost_1_73_0.tar.bz2 109247910 BLAKE2B 5995ff6ca21f45988b187b94bf743795cca97531baa8355f488be0987b9426289dd85d6ce25b7eb03ccd690109f05ba56252a95bca50505ad9cd66f4e0e234e8 SHA512 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668
DIST boost_1_74_0.tar.bz2 109600630 BLAKE2B 2982f64fccf6fdb3b4b74452e603f459242d7abb42df4162278d9b558b637786a2eb97442126967b19088d591777c64ced8f60a23e71eaa0b7545e80f800de63 SHA512 4ec9c1164ec9b95ce46ba1c073e586c94b3882dce5b7347ea14bbef0c1da230e12aa5328a501ce38cae1b1d7623daa3246325625899179b4cc309242540982a4
diff --git a/dev-libs/boost/boost-1.73.0-r1.ebuild b/dev-libs/boost/boost-1.73.0-r1.ebuild
deleted file mode 100644
index 0e349645c05..00000000000
--- a/dev-libs/boost/boost-1.73.0-r1.ebuild
+++ /dev/null
@@ -1,360 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
-
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # upstream unresponsive to pull request
- # https://github.com/boostorg/python/pull/286
- "${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- # Remove annoying #pragma message
- "${FILESDIR}"/${PN}-1.73-property-tree-include.patch
- # https://github.com/boostorg/geometry/issues/721
- "${FILESDIR}"/${PN}-1.73-geometry-private-inheritance.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build
- --prefix="${ED}/usr"
- --layout=system
- # CMake has issues working with multiple python impls,
- # disable cmake config generation for the time being
- # https://github.com/boostorg/python/issues/262#issuecomment-483069294
- --no-cmake-config
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- ejam \
- "${OPTIONS[@]}" \
- --includedir="${ED}/usr/include" \
- --libdir="${ED}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.73-geometry-private-inheritance.patch b/dev-libs/boost/files/boost-1.73-geometry-private-inheritance.patch
deleted file mode 100644
index fef7bafec8f..00000000000
--- a/dev-libs/boost/files/boost-1.73-geometry-private-inheritance.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From aafbceccc76dccb75963dd4f596fd1f10ee34b03 Mon Sep 17 00:00:00 2001
-From: Jonathan Wakely <boost@kayari.org>
-Date: Fri, 5 Jun 2020 19:29:27 +0100
-Subject: [PATCH] Make index::detail::rtree::visitors::insert base class public
-
-Fixes #721
----
- boost/geometry/index/detail/rtree/visitors/insert.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/boost/geometry/index/detail/rtree/visitors/insert.hpp b/boost/geometry/index/detail/rtree/visitors/insert.hpp
-index 2d324cb7f4..5709a930cc 100644
---- a/boost/geometry/index/detail/rtree/visitors/insert.hpp
-+++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp
-@@ -265,7 +265,7 @@ struct insert_traverse_data
- // Default insert visitor
- template <typename Element, typename MembersHolder>
- class insert
-- : MembersHolder::visitor
-+ : public MembersHolder::visitor
- {
- protected:
- typedef typename MembersHolder::box_type box_type;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2020-08-02 10:09 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2020-08-02 10:09 UTC (permalink / raw
To: gentoo-commits
commit: 5d603d40b77add4605fb84ae93599d2a03aafb35
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 2 10:08:59 2020 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Aug 2 10:08:59 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d603d40
dev-libs/boost: Add boost::geometry inheritance patch
Closes: https://bugs.gentoo.org/735092
Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.73.0.ebuild | 2 ++
.../boost-1.73-geometry-private-inheritance.patch | 23 ++++++++++++++++++++++
2 files changed, 25 insertions(+)
diff --git a/dev-libs/boost/boost-1.73.0.ebuild b/dev-libs/boost/boost-1.73.0.ebuild
index bcc79240269..e5b91ab3053 100644
--- a/dev-libs/boost/boost-1.73.0.ebuild
+++ b/dev-libs/boost/boost-1.73.0.ebuild
@@ -60,6 +60,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
# Remove annoying #pragma message
"${FILESDIR}"/${PN}-1.73-property-tree-include.patch
+ # https://github.com/boostorg/geometry/issues/721
+ "${FILESDIR}"/${PN}-1.73-geometry-private-inheritance.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.73-geometry-private-inheritance.patch b/dev-libs/boost/files/boost-1.73-geometry-private-inheritance.patch
new file mode 100644
index 00000000000..fef7bafec8f
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.73-geometry-private-inheritance.patch
@@ -0,0 +1,23 @@
+From aafbceccc76dccb75963dd4f596fd1f10ee34b03 Mon Sep 17 00:00:00 2001
+From: Jonathan Wakely <boost@kayari.org>
+Date: Fri, 5 Jun 2020 19:29:27 +0100
+Subject: [PATCH] Make index::detail::rtree::visitors::insert base class public
+
+Fixes #721
+---
+ boost/geometry/index/detail/rtree/visitors/insert.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boost/geometry/index/detail/rtree/visitors/insert.hpp b/boost/geometry/index/detail/rtree/visitors/insert.hpp
+index 2d324cb7f4..5709a930cc 100644
+--- a/boost/geometry/index/detail/rtree/visitors/insert.hpp
++++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp
+@@ -265,7 +265,7 @@ struct insert_traverse_data
+ // Default insert visitor
+ template <typename Element, typename MembersHolder>
+ class insert
+- : MembersHolder::visitor
++ : public MembersHolder::visitor
+ {
+ protected:
+ typedef typename MembersHolder::box_type box_type;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2020-06-07 12:40 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2020-06-07 12:40 UTC (permalink / raw
To: gentoo-commits
commit: 1c35cce1b3edeb2df6cba467900b34dd4f56f67a
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Jun 7 12:40:23 2020 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Jun 7 12:40:23 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c35cce1
dev-libs/boost: Silence <boost/bind.hpp> warning
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.73.0.ebuild | 2 +
.../files/boost-1.73-property-tree-include.patch | 45 ++++++++++++++++++++++
2 files changed, 47 insertions(+)
diff --git a/dev-libs/boost/boost-1.73.0.ebuild b/dev-libs/boost/boost-1.73.0.ebuild
index 2ee4e6a8b00..ae462476523 100644
--- a/dev-libs/boost/boost-1.73.0.ebuild
+++ b/dev-libs/boost/boost-1.73.0.ebuild
@@ -57,6 +57,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
# Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
+ # Remove annoying #pragma message
+ "${FILESDIR}"/${PN}-1.73-property-tree-include.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.73-property-tree-include.patch b/dev-libs/boost/files/boost-1.73-property-tree-include.patch
new file mode 100644
index 00000000000..539388275bc
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.73-property-tree-include.patch
@@ -0,0 +1,45 @@
+From d1c8825a45a0717e1ad79583d3283b0e5e32831e Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <Lastique@users.noreply.github.com>
+Date: Tue, 28 Apr 2020 22:03:04 +0300
+Subject: [PATCH] Fix usage of deprecated Boost.Bind features
+
+This fixes deprecation warnings generated by boost/bind.hpp.
+
+Also, use a more actual include path for ref.hpp.
+---
+ boost/property_tree/json_parser/detail/parser.hpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/boost/property_tree/json_parser/detail/parser.hpp b/boost/property_tree/json_parser/detail/parser.hpp
+index 5554990fb..6cf636394 100644
+--- a/boost/property_tree/json_parser/detail/parser.hpp
++++ b/boost/property_tree/json_parser/detail/parser.hpp
+@@ -3,8 +3,8 @@
+
+ #include <boost/property_tree/json_parser/error.hpp>
+
+-#include <boost/ref.hpp>
+-#include <boost/bind.hpp>
++#include <boost/core/ref.hpp>
++#include <boost/bind/bind.hpp>
+ #include <boost/format.hpp>
+
+ #include <iterator>
+@@ -214,7 +214,7 @@ namespace boost { namespace property_tree {
+ void process_codepoint(Sentinel end, EncodingErrorFn error_fn) {
+ encoding.transcode_codepoint(cur, end,
+ boost::bind(&Callbacks::on_code_unit,
+- boost::ref(callbacks), _1),
++ boost::ref(callbacks), boost::placeholders::_1),
+ error_fn);
+ }
+
+@@ -517,7 +517,7 @@ namespace boost { namespace property_tree {
+ void feed(unsigned codepoint) {
+ encoding.feed_codepoint(codepoint,
+ boost::bind(&Callbacks::on_code_unit,
+- boost::ref(callbacks), _1));
++ boost::ref(callbacks), boost::placeholders::_1));
+ }
+
+ Callbacks& callbacks;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2020-05-02 14:26 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2020-05-02 14:26 UTC (permalink / raw
To: gentoo-commits
commit: eaab0a7fcb255a7b0a7d9225c2f6bac0c96f8f4b
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat May 2 14:26:29 2020 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat May 2 14:26:29 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=eaab0a7f
dev-libs/boost: Bump to 1.73.0
Closes: https://bugs.gentoo.org/719930
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 +
dev-libs/boost/boost-1.73.0.ebuild | 355 +++++++++++++++++++++
.../boost-1.73-boost-mpi-python-PEP-328.patch | 17 +
.../files/boost-1.73-boost-python-cleanup.patch | 107 +++++++
4 files changed, 480 insertions(+)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 34653ed7e2e..464a9d9c3eb 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1 +1,2 @@
DIST boost_1_72_0.tar.bz2 106907358 BLAKE2B ab270a0e3cb24da687d86785e2d2e6d7731b4dbc07bd839eadb642dfa5a428ad584acb1f3529661a8de9a986008ff3427491041059ea2b742348d02e00761cd8 SHA512 63bbd1743e7c904b2e69fdc2eafd1c2a8a30fd70d960dcd366059d0100f000cb605d56cbd9397bb18421631f1c9552a772c434d0f0caddbe56302273f51fd1f6
+DIST boost_1_73_0.tar.bz2 109247910 BLAKE2B 5995ff6ca21f45988b187b94bf743795cca97531baa8355f488be0987b9426289dd85d6ce25b7eb03ccd690109f05ba56252a95bca50505ad9cd66f4e0e234e8 SHA512 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668
diff --git a/dev-libs/boost/boost-1.73.0.ebuild b/dev-libs/boost/boost-1.73.0.ebuild
new file mode 100644
index 00000000000..2ee4e6a8b00
--- /dev/null
+++ b/dev-libs/boost/boost-1.73.0.ebuild
@@ -0,0 +1,355 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python{2_7,3_{6,7,8}} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+MAJOR_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ !app-admin/eselect-boost
+ !dev-libs/boost-numpy
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
+
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
+ # upstream unresponsive to pull request
+ # https://github.com/boostorg/python/pull/286
+ "${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ fi
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
+ $(usex mpi '' '--without-mpi')
+ $(usex nls '' '--without-locale')
+ $(usex context '' '--without-context --without-coroutine --without-fiber')
+ $(usex threads '' '--without-thread')
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/boost-build
+ --prefix="${ED}/usr"
+ --layout=system
+ # CMake has issues working with multiple python impls,
+ # disable cmake config generation for the time being
+ # https://github.com/boostorg/python/issues/262#issuecomment-483069294
+ --no-cmake-config
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=$(usex static-libs shared,static shared)
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++14 globally as of 1.62
+ append-cxxflags -std=c++14
+}
+
+multilib_src_compile() {
+ ejam "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || 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
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ "${OPTIONS[@]}" \
+ --includedir="${ED}/usr/include" \
+ --libdir="${ED}/usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd >/dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch b/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch
new file mode 100644
index 00000000000..444db2b6095
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch
@@ -0,0 +1,17 @@
+--- a/libs/mpi/build/__init__.py
++++ b/libs/mpi/build/__init__.py
+@@ -1,10 +1,12 @@
++from __future__ import absolute_import
++
+ import sys
+ if sys.platform == 'linux2':
+ import DLFCN as dl
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
+- import mpi
++ from . import mpi
+ sys.setdlopenflags(flags)
+ else:
+- import mpi
++ from . import mpi
+
diff --git a/dev-libs/boost/files/boost-1.73-boost-python-cleanup.patch b/dev-libs/boost/files/boost-1.73-boost-python-cleanup.patch
new file mode 100644
index 00000000000..64c8eec814e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.73-boost-python-cleanup.patch
@@ -0,0 +1,107 @@
+From c1cae8e6b0480e046ea627679a3afe488ed02dc1 Mon Sep 17 00:00:00 2001
+From: David Seifert <soap@gentoo.org>
+Date: Wed, 25 Dec 2019 12:37:35 +0100
+Subject: [PATCH] Remove Boost.Python-specific python-tag code
+
+---
+ libs/python/Jamfile | 68 ---------------------------------------------------
+ libs/python/build/Jamfile | 4 +--
+ 2 files changed, 2 insertions(+), 70 deletions(-)
+ delete mode 100644 Jamfile
+
+diff --git a/libs/python/Jamfile b/libs/python/Jamfile
+deleted file mode 100644
+index 32e87d80f..000000000
+--- a/libs/python/Jamfile
++++ /dev/null
+@@ -1,68 +0,0 @@
+-# Copyright (c) 2018 Stefan Seefeld
+-# All rights reserved.
+-#
+-# Distributed under the Boost Software License, Version 1.0.
+-# (See accompanying file LICENSE_1_0.txt or copy at
+-# http://www.boost.org/LICENSE_1_0.txt)
+-
+-import option ;
+-import regex ;
+-import python ;
+-
+-#
+-# The `version-suffix` rule really belongs into python.jam, and
+-# should be moved there. `split-version` is only duplicated here
+-# as a prerequisite. (See https://github.com/boostorg/build/pull/290)
+-#
+-
+-
+-# Validate the version string and extract the major/minor part we care about.
+-#
+-local rule split-version ( version )
+-{
+- local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)(.*)$" : $(version) : 1 2 3 ] ;
+- if ! $(major-minor[2]) || $(major-minor[3])
+- {
+- ECHO "Warning: \"using python\" expects a two part (major, minor) version number; got" $(version) instead ;
+-
+- # Add a zero to account for the missing digit if necessary.
+- major-minor += 0 ;
+- }
+-
+- return $(major-minor[1]) $(major-minor[2]) ;
+-}
+-
+-# Define a version suffix for libraries depending on Python.
+-# For example, Boost.Python built for Python 2.7 uses the suffix "27"
+-rule version-suffix ( version )
+-{
+- local major-minor = [ split-version $(version) ] ;
+- local suffix = $(major-minor:J="") ;
+- return $(suffix) ;
+-}
+-
+-
+-# Python build id (for Python libraries only).
+-python-id = [ option.get "python-buildid" ] ;
+-if $(python-id)
+-{
+- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ;
+-}
+-
+-rule python-tag ( name : type ? : property-set )
+-{
+- local result = $(name) ;
+- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
+- {
+- 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)
+- {
+- result = $(result)-$(PYTHON_ID) ;
+- }
+-
+- # forward to the boost tagging rule
+- return [ tag $(result) : $(type) : $(property-set) ] ;
+-}
+diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
+index d03d4dd08..dbc9fb203 100644
+--- a/libs/python/build/Jamfile
++++ b/libs/python/build/Jamfile
+@@ -95,7 +95,7 @@
+ <dependency>config-warning
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+- <tag>@$(__name__).python-tag
++ <tag>@python-tag
+ <conditional>@python.require-py
+
+ : # default build
+@@ -123,7 +123,7 @@
+ <library>boost_python
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+- <tag>@$(__name__).python-tag
++ <tag>@python-tag
+ <conditional>@python.require-py
+
+ : # default build
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-12-21 12:55 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-12-21 12:55 UTC (permalink / raw
To: gentoo-commits
commit: 81a235b7d29509360c6c2df3c75093261c2748f4
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 21 12:54:58 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Dec 21 12:54:58 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81a235b7
dev-libs/boost: Fix Boost.Bimap headers
Bug: https://bugs.gentoo.org/703294
Package-Manager: Portage-2.3.81, Repoman-2.3.20
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.72.0.ebuild | 2 ++
...issing-serialization-split_member-include.patch | 29 ++++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git a/dev-libs/boost/boost-1.72.0.ebuild b/dev-libs/boost/boost-1.72.0.ebuild
index 7434b5bd5d1..31a72e01707 100644
--- a/dev-libs/boost/boost-1.72.0.ebuild
+++ b/dev-libs/boost/boost-1.72.0.ebuild
@@ -54,6 +54,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
"${FILESDIR}"/${PN}-1.71.0-context-x32.patch
"${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
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.72.0-missing-serialization-split_member-include.patch b/dev-libs/boost/files/boost-1.72.0-missing-serialization-split_member-include.patch
new file mode 100644
index 00000000000..0c9f72583ef
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.72.0-missing-serialization-split_member-include.patch
@@ -0,0 +1,29 @@
+Missing #include, as the split_member.hpp include is not
+part of the nvp.hpp interface, and hence cannot be relied
+upon to be included transitively.
+
+Confirmed on
+https://github.com/boostorg/serialization/commit/c32a663c9963385430abc563f9c85f94d8da43a9#r36528430
+
+Bug: https://bugs.gentoo.org/703294
+
+--- a/boost/bimap/detail/map_view_iterator.hpp
++++ b/boost/bimap/detail/map_view_iterator.hpp
+@@ -22,6 +22,7 @@
+
+ #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION
+ #include <boost/serialization/nvp.hpp>
++ #include <boost/serialization/split_member.hpp>
+ #endif // BOOST_BIMAP_DISABLE_SERIALIZATION
+
+ #include <boost/iterator/detail/enable_if.hpp>
+--- a/boost/bimap/detail/set_view_iterator.hpp
++++ b/boost/bimap/detail/set_view_iterator.hpp
+@@ -22,6 +22,7 @@
+
+ #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION
+ #include <boost/serialization/nvp.hpp>
++ #include <boost/serialization/split_member.hpp>
+ #endif // BOOST_BIMAP_DISABLE_SERIALIZATION
+
+ #include <boost/iterator/detail/enable_if.hpp>
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-12-07 21:43 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-12-07 21:43 UTC (permalink / raw
To: gentoo-commits
commit: 627ac4ee95dfac531fdd3b91d1d0e0157bee2ceb
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 7 21:43:14 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Dec 7 21:43:14 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=627ac4ee
dev-libs/boost: Rebase patches
Package-Manager: Portage-2.3.81, Repoman-2.3.20
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.71.0.ebuild | 11 +++--------
.../boost/files/boost-1.56.0-build-auto_index-tool.patch | 13 -------------
.../boost/files/boost-1.71.0-build-auto_index-tool.patch | 13 +++++++++++++
...9.0-context-x32.patch => boost-1.71.0-context-x32.patch} | 0
...icu_rpath.patch => boost-1.71.0-disable_icu_rpath.patch} | 6 +++---
5 files changed, 19 insertions(+), 24 deletions(-)
diff --git a/dev-libs/boost/boost-1.71.0.ebuild b/dev-libs/boost/boost-1.71.0.ebuild
index 1f0b0e66905..faa5a960910 100644
--- a/dev-libs/boost/boost-1.71.0.ebuild
+++ b/dev-libs/boost/boost-1.71.0.ebuild
@@ -49,9 +49,9 @@ BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
S="${WORKDIR}/${PN}_${MY_PV}"
PATCHES=(
- "${FILESDIR}"/${PN}-1.48.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.69.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.56.0-build-auto_index-tool.patch
+ "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
)
python_bindings_needed() {
@@ -130,11 +130,6 @@ pkg_setup() {
src_prepare() {
default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
multilib_copy_sources
}
diff --git a/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch b/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
deleted file mode 100644
index 48ca5138871..00000000000
--- a/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Build auto_index tool with USE="tools"
-Gentoo bug report: https://bugs.gentoo.org/show_bug.cgi?id=529066
-
---- a/tools/Jamfile.v2.orig 2014-12-24 12:57:32.290880067 +0300
-+++ b/tools/Jamfile.v2 2014-12-24 12:58:38.403883250 +0300
-@@ -20,6 +20,7 @@
- use-project /boost/regression : regression/build ;
-
- TOOLS =
-+ auto_index/build//auto_index
- bcp//bcp
- inspect/build//inspect
- quickbook//quickbook
diff --git a/dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch b/dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch
new file mode 100644
index 00000000000..ca793b9d06e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch
@@ -0,0 +1,13 @@
+Build auto_index tool with USE="tools"
+See also: https://bugs.gentoo.org/529066
+
+--- a/tools/Jamfile.v2
++++ b/tools/Jamfile.v2
+@@ -18,6 +18,7 @@
+ ;
+
+ TOOLS =
++ auto_index/build//auto_index
+ bcp//bcp
+ inspect/build//inspect
+ quickbook//quickbook
diff --git a/dev-libs/boost/files/boost-1.69.0-context-x32.patch b/dev-libs/boost/files/boost-1.71.0-context-x32.patch
similarity index 100%
rename from dev-libs/boost/files/boost-1.69.0-context-x32.patch
rename to dev-libs/boost/files/boost-1.71.0-context-x32.patch
diff --git a/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch
similarity index 94%
rename from dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
rename to dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch
index 23a87830d10..32faf8d0eb3 100644
--- a/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
+++ b/dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch
@@ -1,6 +1,6 @@
--- a/libs/locale/build/Jamfile.v2
+++ b/libs/locale/build/Jamfile.v2
-@@ -58,8 +58,8 @@
+@@ -65,8 +65,8 @@
if $(ICU_LINK)
{
@@ -11,7 +11,7 @@
}
else
{
-@@ -117,7 +117,6 @@
+@@ -124,7 +124,6 @@
<library>icuuc/<link>shared/<runtime-link>shared
<library>icudt/<link>shared/<runtime-link>shared
<library>icuin/<link>shared/<runtime-link>shared
@@ -19,7 +19,7 @@
<runtime-link>shared ;
-@@ -176,7 +175,6 @@
+@@ -183,7 +182,6 @@
<library>icuuc_64/<link>shared/<runtime-link>shared
<library>icudt_64/<link>shared/<runtime-link>shared
<library>icuin_64/<link>shared/<runtime-link>shared
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-12-07 19:48 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-12-07 19:48 UTC (permalink / raw
To: gentoo-commits
commit: e92740975b8485147639004d841a27451b84187d
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 7 19:48:30 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Dec 7 19:48:30 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e9274097
dev-libs/boost: Remove old
Closes: https://github.com/gentoo/gentoo/pull/13900
Package-Manager: Portage-2.3.81, Repoman-2.3.19
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 2 -
dev-libs/boost/boost-1.65.0.ebuild | 439 ---------------------
dev-libs/boost/boost-1.70.0.ebuild | 332 ----------------
.../boost/files/boost-1.55.0-context-x32.patch | 42 --
dev-libs/boost/files/boost-1.65.0-fix-python.patch | 272 -------------
5 files changed, 1087 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index c189b10ccc4..1d613291002 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1 @@
-DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
-DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
DIST boost_1_71_0.tar.bz2 100124647 BLAKE2B edf5a03d5a5a63ef5826ef3c19a5ee862a43eb93e8e3d76f8a0d1f2c23122f5a0535e045058110574cd19092f3199c28ab9dae53f9db05ffe8c0b0b8cdbe27a9 SHA512 b7937d50c4512cf13cadd0ca829de36cf2cbc6fb788f45b1d4565ad0753e2b206c545125a5862016c2f16016f2e4a6b687928963b466fff17c3e0a4437142c20
diff --git a/dev-libs/boost/boost-1.65.0.ebuild b/dev-libs/boost/boost-1.65.0.ebuild
deleted file mode 100644
index 7db346d2433..00000000000
--- a/dev-libs/boost/boost-1.65.0.ebuild
+++ /dev/null
@@ -1,439 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_{5,6}} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 ~mips ppc ppc64 s390 ~sh sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
- "${FILESDIR}/${PN}-1.65.0-fix-python.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- use mpi || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-fiber
- )
- use threads || OPTIONS+=(
- --without-thread
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED%/}/usr"
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools >/dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED%/}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED%/}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED%/}"/usr/include/boost/context || die
- rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
- rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED%/}/usr/include" \
- --libdir="${ED%/}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED%/}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/boost-1.70.0.ebuild b/dev-libs/boost/boost-1.70.0.ebuild
deleted file mode 100644
index 4f826fa75b4..00000000000
--- a/dev-libs/boost/boost-1.70.0.ebuild
+++ /dev/null
@@ -1,332 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_P="${PN}_$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( >=dev-python/numpy-1.14.5[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
-
-S="${WORKDIR}/${MY_P}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.48.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.69.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.56.0-build-auto_index-tool.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}/etc/site-config.jam" ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}/etc/site-config.jam"; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build
- --prefix="${ED}/usr"
- --layout=system
- # CMake has issues working with multiple python impls,
- # disable cmake config generation for the time being
- # https://github.com/boostorg/python/issues/262#issuecomment-483069294
- --no-cmake-config
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- ejam \
- "${OPTIONS[@]}" \
- --includedir="${ED}/usr/include" \
- --libdir="${ED}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}/usr/include/boost" "${EROOT}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/files/boost-1.55.0-context-x32.patch b/dev-libs/boost/files/boost-1.55.0-context-x32.patch
deleted file mode 100644
index 5bf74062538..00000000000
--- a/dev-libs/boost/files/boost-1.55.0-context-x32.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-https://svn.boost.org/trac/boost/ticket/9445
-
-hack to fix x32 builds
-
---- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S
-+++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S
-@@ -31,6 +31,10 @@
- * *
- * *****************************************************************/
-
-+#ifdef __x86_64__
-+#include "jump_x86_64_sysv_elf_gas.S"
-+#else
-+
- .text
- .globl jump_fcontext
- .align 2
-@@ -73,3 +77,5 @@ jump_fcontext:
-
- /* Mark that we don't need executable stack. */
- .section .note.GNU-stack,"",%progbits
-+
-+#endif
---- a/libs/context/src/asm/make_i386_sysv_elf_gas.S
-+++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S
-@@ -31,6 +31,10 @@
- * *
- * *****************************************************************/
-
-+#ifdef __x86_64__
-+#include "make_x86_64_sysv_elf_gas.S"
-+#else
-+
- .text
- .globl make_fcontext
- .align 2
-@@ -78,3 +82,5 @@ finish:
-
- /* Mark that we don't need executable stack. */
- .section .note.GNU-stack,"",%progbits
-+
-+#endif
diff --git a/dev-libs/boost/files/boost-1.65.0-fix-python.patch b/dev-libs/boost/files/boost-1.65.0-fix-python.patch
deleted file mode 100644
index 079160218ea..00000000000
--- a/dev-libs/boost/files/boost-1.65.0-fix-python.patch
+++ /dev/null
@@ -1,272 +0,0 @@
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -104,7 +104,7 @@
- python-id = [ option.get "python-buildid" ] ;
- if $(python-id)
- {
-- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
- }
-
-
---- a/libs/mpi/build/Jamfile.v2
-+++ b/libs/mpi/build/Jamfile.v2
-@@ -58,81 +58,50 @@
-
- if [ python.configured ]
- {
-- py2-version = [ py-version 2 ] ;
-- py3-version = [ py-version 3 ] ;
--
-- # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile.
-- lib_boost_python(2) = boost_python ;
-- lib_boost_python(3) = boost_python3 ;
--
-- lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
-- lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
--
-- lib_boost_mpi_python(2) = boost_mpi_python ;
-- lib_boost_mpi_python(3) = boost_mpi_python3 ;
--
-- lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ;
-- lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ;
--
-- for local N in 2 3
-- {
-- if $(py$(N)-version)
-- {
-- lib $(lib_boost_mpi_python($(py$(N)-version)))
-- : # Sources
-- python/serialize.cpp
-- : # Requirements
-- <library>boost_mpi
-- <library>/mpi//mpi [ mpi.extra-requirements ]
-- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
-- <link>shared:<define>BOOST_MPI_DYN_LINK=1
-- <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
-- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
-- <define>BOOST_MPI_PYTHON_SOURCE=1
-- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- <python>$(py$(N)-version)
-- : # Default build
-- <link>shared
-- : # Usage requirements
-- <library>/mpi//mpi [ mpi.extra-requirements ]
-- ;
--
-- python-extension mpi
-- : # Sources
-- python/collectives.cpp
-- python/py_communicator.cpp
-- python/datatypes.cpp
-- python/documentation.cpp
-- python/py_environment.cpp
-- python/py_nonblocking.cpp
-- python/py_exception.cpp
-- python/module.cpp
-- python/py_request.cpp
-- python/skeleton_and_content.cpp
-- python/status.cpp
-- python/py_timer.cpp
-- : # Requirements
-- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
-- <library>$(lib_boost_mpi_python($(py$(N)-version)))
-- <library>boost_mpi
-- <library>/mpi//mpi [ mpi.extra-requirements ]
-- <link>shared:<define>BOOST_MPI_DYN_LINK=1
-- <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
-- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
-- <link>shared <runtime-link>shared
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- <python>$(py$(N)-version)
-- ;
--
-- libraries += $(lib_boost_mpi_python($(py$(N)-version))) ;
-- }
-- else
-- {
-- alias $(lib_boost_mpi_python($(N))) ;
-- }
-- }
-+ lib boost_mpi_python
-+ : # Sources
-+ python/serialize.cpp
-+ : # Requirements
-+ <library>boost_mpi
-+ <library>/mpi//mpi [ mpi.extra-requirements ]
-+ <library>/boost/python//boost_python
-+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
-+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
-+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
-+ <define>BOOST_MPI_PYTHON_SOURCE=1
-+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
-+ : # Default build
-+ <link>shared
-+ : # Usage requirements
-+ <library>/mpi//mpi [ mpi.extra-requirements ]
-+ ;
-+ libraries += boost_mpi_python ;
-+
-+ python-extension mpi
-+ : # Sources
-+ python/collectives.cpp
-+ python/py_communicator.cpp
-+ python/datatypes.cpp
-+ python/documentation.cpp
-+ python/py_environment.cpp
-+ python/py_nonblocking.cpp
-+ python/py_exception.cpp
-+ python/module.cpp
-+ python/py_request.cpp
-+ python/skeleton_and_content.cpp
-+ python/status.cpp
-+ python/py_timer.cpp
-+ : # Requirements
-+ <library>/boost/python//boost_python
-+ <library>boost_mpi_python
-+ <library>boost_mpi
-+ <library>/mpi//mpi [ mpi.extra-requirements ]
-+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
-+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
-+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
-+ <link>shared <runtime-link>shared
-+ ;
- }
- }
- else if ! ( --without-mpi in [ modules.peek : ARGV ] )
---- a/libs/python/build/Jamfile
-+++ b/libs/python/build/Jamfile
-@@ -31,26 +31,23 @@
- ;
- }
-
--py2-version = [ py-version 2 ] ;
--py3-version = [ py-version 3 ] ;
--
- project boost/python
- : source-location ../src
- ;
-
- rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
- rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
--local rule eq ( a : b ) { if $(a) = $(b) { return 1 ; } }
--
--lib_boost_python(2) = boost_python ;
--lib_boost_python(3) = boost_python3 ;
--
--lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
--lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
-
--rule lib_boost_python ( version )
-+rule lib_boost_python
- {
-- lib $(lib_boost_python($(version)))
-+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
-+ local python2 ;
-+ if $(python_major_version) = 2
-+ {
-+ python2 = true ;
-+ }
-+
-+ lib boost_python
- : # sources
- list.cpp
- long.cpp
-@@ -96,7 +93,8 @@
- # python_for_extensions is a target defined by Boost.Build to
- # provide the Python include paths, and on Windows, the Python
- # import library, as usage requirements.
-- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
-+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
-+ [ cond [ python.configured ] : <library>/python//python ]
-
- # we prevent building when there is no python available
- # as it's not possible anyway, and to cause dependents to
-@@ -105,13 +103,10 @@
- <dependency>config-warning
-
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- <python>$(version)
-
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
-
-- <conditional>@python.require-py
--
- : # default build
- <link>shared
- : # usage requirements
-@@ -120,68 +115,8 @@
- ;
- }
-
--lib_boost_numpy(2) = boost_numpy ;
--lib_boost_numpy(3) = boost_numpy3 ;
--
--lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ;
--lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ;
--
--rule lib_boost_numpy ( version )
--{
-- numpy-include = [ python.numpy-include ] ;
-- lib $(lib_boost_numpy($(version)))
-- : # sources
-- numpy/dtype.cpp
-- numpy/matrix.cpp
-- numpy/ndarray.cpp
-- numpy/numpy.cpp
-- numpy/scalars.cpp
-- numpy/ufunc.cpp
-- : # requirements
-- <link>static:<define>BOOST_NUMPY_STATIC_LIB
-- <define>BOOST_NUMPY_SOURCE
-- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
-- [ unless [ python.numpy ] : <build>no ]
-- <include>$(numpy-include)
-- <library>$(lib_boost_python($(version)))
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- <python>$(version)
-+libraries = boost_python ;
-
-- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
--
-- <conditional>@python.require-py
--
-- : # default build
-- <link>shared
-- : # usage requirements
-- <link>static:<define>BOOST_NUMPY_STATIC_LIB
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- ;
--}
--
--libraries = ;
--
--for local N in 2 3
--{
-- if $(py$(N)-version)
-- {
-- lib_boost_python $(py$(N)-version) ;
-- libraries += $(lib_boost_python($(py$(N)-version))) ;
-- }
-- else
-- {
-- alias $(lib_boost_python($(N))) ;
-- }
-- if $(py$(N)-version) && [ python.numpy ]
-- {
-- lib_boost_numpy $(py$(N)-version) ;
-- libraries += $(lib_boost_numpy($(py$(N)-version))) ;
-- }
-- else
-- {
-- alias $(lib_boost_numpy($(N))) ;
-- }
--}
-+lib_boost_python ;
-
- boost-install $(libraries) ;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-04-21 19:18 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-04-21 19:18 UTC (permalink / raw
To: gentoo-commits
commit: 87700b05371354405a1cbb7b9a4744fb8ff3bfb9
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 21 19:18:06 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Apr 21 19:18:06 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87700b05
dev-libs/boost: Remove old
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.63.0.ebuild | 440 ---------------------
dev-libs/boost/files/boost-1.63.0-fix-python.patch | 138 -------
3 files changed, 579 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index a4de8bd61e2..5f560092574 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,2 @@
-DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
diff --git a/dev-libs/boost/boost-1.63.0.ebuild b/dev-libs/boost/boost-1.63.0.ebuild
deleted file mode 100644
index 15c14b9dabf..00000000000
--- a/dev-libs/boost/boost-1.63.0.ebuild
+++ /dev/null
@@ -1,440 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_{5,6}} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
- "${FILESDIR}/${PN}-1.63.0-fix-python.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- use mpi || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-coroutine2
- --without-fiber
- )
- use threads || OPTIONS+=(
- --without-thread
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED%/}/usr"
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools >/dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED%/}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED%/}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED%/}"/usr/include/boost/context || die
- rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
- rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED%/}/usr/include" \
- --libdir="${ED%/}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED%/}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/files/boost-1.63.0-fix-python.patch b/dev-libs/boost/files/boost-1.63.0-fix-python.patch
deleted file mode 100644
index 18ca2f56671..00000000000
--- a/dev-libs/boost/files/boost-1.63.0-fix-python.patch
+++ /dev/null
@@ -1,138 +0,0 @@
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -104,7 +104,7 @@
- python-id = [ option.get "python-buildid" ] ;
- if $(python-id)
- {
-- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
- }
-
-
---- a/libs/python/build/Jamfile
-+++ b/libs/python/build/Jamfile
-@@ -30,22 +30,6 @@
- ;
- }
-
--rule find-py3-version
--{
-- local versions = [ feature.values python ] ;
-- local py3ver ;
-- for local v in $(versions)
-- {
-- if $(v) >= 3.0
-- {
-- py3ver = $(v) ;
-- }
-- }
-- return $(py3ver) ;
--}
--
--py3-version = [ find-py3-version ] ;
--
- project boost/python
- : source-location ../src
- ;
-@@ -53,10 +37,16 @@
- rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
- rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
-
--rule lib_boost_python ( is-py3 ? )
-+rule lib_boost_python
- {
-+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
-+ local python2 ;
-+ if $(python_major_version) = 2
-+ {
-+ python2 = true ;
-+ }
-
-- lib [ cond $(is-py3) : boost_python3 : boost_python ]
-+ lib boost_python
- : # sources
- numeric.cpp
- list.cpp
-@@ -90,20 +80,9 @@
- : # requirements
- <link>static:<define>BOOST_PYTHON_STATIC_LIB
- <define>BOOST_PYTHON_SOURCE
-+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
-
-- # On Windows, all code using Python has to link to the Python
-- # import library.
-- #
-- # On *nix we never link libboost_python to libpython. When
-- # extending Python, all Python symbols are provided by the
-- # Python interpreter executable. When embedding Python, the
-- # client executable is expected to explicitly link to
-- # /python//python (the target representing libpython) itself.
-- #
-- # python_for_extensions is a target defined by Boost.Build to
-- # provide the Python include paths, and on Windows, the Python
-- # import library, as usage requirements.
-- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
-+ [ cond [ python.configured ] : <library>/python//python ]
-
- # we prevent building when there is no python available
- # as it's not possible anyway, and to cause dependents to
-@@ -112,7 +91,6 @@
- <dependency>config-warning
-
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
-
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
-@@ -125,51 +103,8 @@
- ;
- }
-
--rule lib_boost_numpy ( is-py3 ? )
--{
-- numpy-include = [ python.numpy-include ] ;
-- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
-- : # sources
-- numpy/dtype.cpp
-- numpy/matrix.cpp
-- numpy/ndarray.cpp
-- numpy/numpy.cpp
-- numpy/scalars.cpp
-- numpy/ufunc.cpp
-- : # requirements
-- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
-- [ unless [ python.numpy ] : <build>no ]
-- <include>$(numpy-include)
-- <library>boost_python
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
--
-- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
--
-- : # default build
-- <link>shared
-- : # usage requirements
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- ;
--}
--
- libraries = boost_python ;
--libraries3 = boost_python3 ;
--if [ python.numpy ]
--{
-- libraries += boost_numpy ;
-- libraries3 += boost_numpy3 ;
--}
-
- lib_boost_python ;
--lib_boost_numpy ;
--
--if $(py3-version)
--{
-- lib_boost_python yes ;
-- lib_boost_numpy yes ;
-- libraries += $(libraries3) ;
--}
-
- boost-install $(libraries) ;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-04-16 11:39 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-04-16 11:39 UTC (permalink / raw
To: gentoo-commits
commit: 02178f7845c710946ff0f5db16b2fcb5bd4e5ab6
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 16 11:39:24 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Apr 16 11:39:24 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=02178f78
dev-libs/boost: Remove unkeyworded
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 2 -
dev-libs/boost/boost-1.66.0.ebuild | 439 ---------------------
dev-libs/boost/boost-1.67.0-r1.ebuild | 420 --------------------
.../boost/files/boost-1.67.0-lockfree-next.patch | 24 --
4 files changed, 885 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 46bae38d976..5f560092574 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,4 +1,2 @@
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
-DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
-DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8
DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
diff --git a/dev-libs/boost/boost-1.66.0.ebuild b/dev-libs/boost/boost-1.66.0.ebuild
deleted file mode 100644
index 7cec3890e28..00000000000
--- a/dev-libs/boost/boost-1.66.0.ebuild
+++ /dev/null
@@ -1,439 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
- "${FILESDIR}/${PN}-1.65.0-fix-python.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- use mpi || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-fiber
- )
- use threads || OPTIONS+=(
- --without-thread
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED%/}/usr"
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools >/dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED%/}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED%/}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED%/}"/usr/include/boost/context || die
- rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
- rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED%/}/usr/include" \
- --libdir="${ED%/}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED%/}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/boost-1.67.0-r1.ebuild b/dev-libs/boost/boost-1.67.0-r1.ebuild
deleted file mode 100644
index 1c9de953032..00000000000
--- a/dev-libs/boost/boost-1.67.0-r1.ebuild
+++ /dev/null
@@ -1,420 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_P="${PN}_$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- >dev-python/numpy-1.7[${PYTHON_USEDEP}]
- )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
- "${FILESDIR}/${PN}-1.67.0-fix-python.patch"
- "${FILESDIR}/${PN}-1.67.0-lockfree-next.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${EPREFIX}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED%/}/usr"
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- $([[ ${CHOST} == *-winnt* ]] && printf -- '-sNO_BZIP2=1\n')
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,') || die "sed failed"
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools >/dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED%/}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED%/}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED%/}"/usr/include/boost/context || die
- rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
- rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED%/}/usr/include" \
- --libdir="${ED%/}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED%/}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch b/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch
deleted file mode 100644
index acf9a96777e..00000000000
--- a/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-https://bugs.gentoo.org/671724
-
-From 12726cda009a855073b9bedbdce57b6ce7763da2 Mon Sep 17 00:00:00 2001
-From: Peter Dimov <pdimov@pdimov.com>
-Date: Sat, 2 Dec 2017 04:10:46 +0200
-Subject: [PATCH] Add #include <boost/next_prior.hpp>; no longer in utility.hpp
-
----
- include/boost/lockfree/spsc_queue.hpp | 1 +
- 1 file changed, 1 insertion(+)
-
---- a/boost/lockfree/spsc_queue.hpp
-+++ b/boost/lockfree/spsc_queue.hpp
-@@ -17,6 +17,7 @@
- #include <boost/assert.hpp>
- #include <boost/static_assert.hpp>
- #include <boost/utility.hpp>
-+#include <boost/next_prior.hpp>
- #include <boost/utility/enable_if.hpp>
- #include <boost/config.hpp> // for BOOST_LIKELY
-
---
-2.19.2
-
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-04-16 11:39 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-04-16 11:39 UTC (permalink / raw
To: gentoo-commits
commit: 738fd73c6e6f51f2ec2e858d6277e430cda0d965
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 16 11:39:21 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Apr 16 11:39:21 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=738fd73c
dev-libs/boost: Remove old
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.63.0.ebuild | 440 ---------------------
dev-libs/boost/files/boost-1.63.0-fix-python.patch | 138 -------
3 files changed, 579 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 2b2ef1bcd31..46bae38d976 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,4 +1,3 @@
-DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8
diff --git a/dev-libs/boost/boost-1.63.0.ebuild b/dev-libs/boost/boost-1.63.0.ebuild
deleted file mode 100644
index 4f43846220f..00000000000
--- a/dev-libs/boost/boost-1.63.0.ebuild
+++ /dev/null
@@ -1,440 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
- "${FILESDIR}/${PN}-1.63.0-fix-python.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- use mpi || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-coroutine2
- --without-fiber
- )
- use threads || OPTIONS+=(
- --without-thread
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED%/}/usr"
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools >/dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED%/}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED%/}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED%/}"/usr/include/boost/context || die
- rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
- rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED%/}/usr/include" \
- --libdir="${ED%/}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED%/}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/files/boost-1.63.0-fix-python.patch b/dev-libs/boost/files/boost-1.63.0-fix-python.patch
deleted file mode 100644
index 18ca2f56671..00000000000
--- a/dev-libs/boost/files/boost-1.63.0-fix-python.patch
+++ /dev/null
@@ -1,138 +0,0 @@
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -104,7 +104,7 @@
- python-id = [ option.get "python-buildid" ] ;
- if $(python-id)
- {
-- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
- }
-
-
---- a/libs/python/build/Jamfile
-+++ b/libs/python/build/Jamfile
-@@ -30,22 +30,6 @@
- ;
- }
-
--rule find-py3-version
--{
-- local versions = [ feature.values python ] ;
-- local py3ver ;
-- for local v in $(versions)
-- {
-- if $(v) >= 3.0
-- {
-- py3ver = $(v) ;
-- }
-- }
-- return $(py3ver) ;
--}
--
--py3-version = [ find-py3-version ] ;
--
- project boost/python
- : source-location ../src
- ;
-@@ -53,10 +37,16 @@
- rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
- rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
-
--rule lib_boost_python ( is-py3 ? )
-+rule lib_boost_python
- {
-+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
-+ local python2 ;
-+ if $(python_major_version) = 2
-+ {
-+ python2 = true ;
-+ }
-
-- lib [ cond $(is-py3) : boost_python3 : boost_python ]
-+ lib boost_python
- : # sources
- numeric.cpp
- list.cpp
-@@ -90,20 +80,9 @@
- : # requirements
- <link>static:<define>BOOST_PYTHON_STATIC_LIB
- <define>BOOST_PYTHON_SOURCE
-+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
-
-- # On Windows, all code using Python has to link to the Python
-- # import library.
-- #
-- # On *nix we never link libboost_python to libpython. When
-- # extending Python, all Python symbols are provided by the
-- # Python interpreter executable. When embedding Python, the
-- # client executable is expected to explicitly link to
-- # /python//python (the target representing libpython) itself.
-- #
-- # python_for_extensions is a target defined by Boost.Build to
-- # provide the Python include paths, and on Windows, the Python
-- # import library, as usage requirements.
-- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
-+ [ cond [ python.configured ] : <library>/python//python ]
-
- # we prevent building when there is no python available
- # as it's not possible anyway, and to cause dependents to
-@@ -112,7 +91,6 @@
- <dependency>config-warning
-
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
-
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
-@@ -125,51 +103,8 @@
- ;
- }
-
--rule lib_boost_numpy ( is-py3 ? )
--{
-- numpy-include = [ python.numpy-include ] ;
-- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
-- : # sources
-- numpy/dtype.cpp
-- numpy/matrix.cpp
-- numpy/ndarray.cpp
-- numpy/numpy.cpp
-- numpy/scalars.cpp
-- numpy/ufunc.cpp
-- : # requirements
-- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
-- [ unless [ python.numpy ] : <build>no ]
-- <include>$(numpy-include)
-- <library>boost_python
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
--
-- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
--
-- : # default build
-- <link>shared
-- : # usage requirements
-- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- ;
--}
--
- libraries = boost_python ;
--libraries3 = boost_python3 ;
--if [ python.numpy ]
--{
-- libraries += boost_numpy ;
-- libraries3 += boost_numpy3 ;
--}
-
- lib_boost_python ;
--lib_boost_numpy ;
--
--if $(py3-version)
--{
-- lib_boost_python yes ;
-- lib_boost_numpy yes ;
-- libraries += $(libraries3) ;
--}
-
- boost-install $(libraries) ;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2019-04-15 0:22 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2019-04-15 0:22 UTC (permalink / raw
To: gentoo-commits
commit: b5bfb994f73ecef8282a8b34a08857538ca33970
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 15 00:21:20 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Mon Apr 15 00:22:08 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b5bfb994
dev-libs/boost: Use `--no-cmake-config` instead of patch
* Credits go to @pdimov for the suggestion in
boostorg/python/issues/262
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.70.0.ebuild | 5 +++-
...-1.70.0-fix-python-cmake-duplicate-target.patch | 33 ----------------------
2 files changed, 4 insertions(+), 34 deletions(-)
diff --git a/dev-libs/boost/boost-1.70.0.ebuild b/dev-libs/boost/boost-1.70.0.ebuild
index 6d40a9f7054..68a0140f778 100644
--- a/dev-libs/boost/boost-1.70.0.ebuild
+++ b/dev-libs/boost/boost-1.70.0.ebuild
@@ -51,7 +51,6 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.48.0-disable_icu_rpath.patch
"${FILESDIR}"/${PN}-1.69.0-context-x32.patch
"${FILESDIR}"/${PN}-1.56.0-build-auto_index-tool.patch
- "${FILESDIR}"/${PN}-1.70.0-fix-python-cmake-duplicate-target.patch
)
python_bindings_needed() {
@@ -174,6 +173,10 @@ src_configure() {
--boost-build="${EPREFIX}"/usr/share/boost-build
--prefix="${ED}/usr"
--layout=system
+ # CMake has issues working with multiple python impls,
+ # disable cmake config generation for the time being
+ # https://github.com/boostorg/python/issues/262#issuecomment-483069294
+ --no-cmake-config
# building with threading=single is currently not possible
# https://svn.boost.org/trac/boost/ticket/7105
threading=multi
diff --git a/dev-libs/boost/files/boost-1.70.0-fix-python-cmake-duplicate-target.patch b/dev-libs/boost/files/boost-1.70.0-fix-python-cmake-duplicate-target.patch
deleted file mode 100644
index c0097a8581b..00000000000
--- a/dev-libs/boost/files/boost-1.70.0-fix-python-cmake-duplicate-target.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Boost.Build errors out when passing multiple python impls to b2:
-
- error: Name clash for '<p/var/tmp/portage/dev-libs/boost-1.70.0/image/usr/lib64/cmake/boost_python-1.70.0>libboost_python-variant-shared.cmake'
- error:
- error: Tried to build the target twice, with property sets having
- error: these incompatible properties:
- error:
- error: - <python>2.7
- error: - <python>3.6
- error:
- error: Please make sure to have consistent requirements for these
- error: properties everywhere in your project, especially for install
- error: targets.
-
-https://github.com/boostorg/python/issues/262
-
---- a/tools/boost_install/boost-install.jam
-+++ b/tools/boost_install/boost-install.jam
-@@ -870,12 +870,12 @@
-
- $(p).mark-target-as-explicit install-libraries ;
-
-- install-cmake-config $(libraries) ;
-+ # install-cmake-config $(libraries) ;
-
- generate install-dependencies : $(libraries) : <generating-rule>@boost-install%generate-dependencies <name>install ;
- $(p).mark-target-as-explicit install-dependencies ;
-
-- alias install : install-libraries install-cmake-config install-dependencies ;
-+ alias install : install-libraries install-dependencies ;
- $(p).mark-target-as-explicit install ;
-
- # Target stage
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2018-02-11 17:07 Andreas Sturmlechner
0 siblings, 0 replies; 30+ messages in thread
From: Andreas Sturmlechner @ 2018-02-11 17:07 UTC (permalink / raw
To: gentoo-commits
commit: 46049201dc0bc9503ca0fa3bfcb70e927e4d468d
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Feb 10 13:41:19 2018 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Feb 11 17:07:13 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=46049201
dev-libs/boost: Drop 1.62.0 for real
Package-Manager: Portage-2.3.24, Repoman-2.3.6
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.62.0-r1.ebuild | 444 ---------------------
.../boost-1.48.0-disable_libboost_python3.patch | 62 ---
.../boost-1.48.0-no_strict_aliasing_python2.patch | 23 --
.../boost/files/boost-1.48.0-python_linking.patch | 24 --
.../boost-1.51.0-respect_python-buildid.patch | 69 ----
...ost-1.51.0-support_dots_in_python-buildid.patch | 22 -
7 files changed, 645 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 89aea014074..c81be6cd8e0 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,2 @@
-DIST boost_1_62_0.tar.bz2 84513338 BLAKE2B 00f2ddf93d254183709a5e607d5cec5d135bdcddebac15fc3b1522e37b9e58d8df84f1977fee5b085309db58634861f2014e72822e755dd7789e8489fef19f7c SHA512 5385ae3d5255a433a704169ad454d8dc2b0b5bcae3fb23defd6570df4ff7d845cf9fcbeebccdc1c5db0eec9f82ee3d90040de9507c8167467c635d3b215463be
DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
diff --git a/dev-libs/boost/boost-1.62.0-r1.ebuild b/dev-libs/boost/boost-1.62.0-r1.ebuild
deleted file mode 100644
index 7ee2ada110d..00000000000
--- a/dev-libs/boost/boost-1.62.0-r1.ebuild
+++ /dev/null
@@ -1,444 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="hppa"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- use mpi || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-coroutine2
- --without-fiber
- )
- use threads || OPTIONS+=(
- --without-thread
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED%/}/usr"
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools >/dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED%/}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED%/}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED%/}"/usr/include/boost/context || die
- rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
- rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED%/}/usr/include" \
- --libdir="${ED%/}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED%/}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
-}
diff --git a/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch b/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
deleted file mode 100644
index d4560400d7d..00000000000
--- a/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
+++ /dev/null
@@ -1,62 +0,0 @@
---- a/libs/python/build/Jamfile.v2
-+++ b/libs/python/build/Jamfile.v2
-@@ -39,23 +39,6 @@
- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" "_" ] ;
- }
-
--
--rule find-py3-version
--{
-- local versions = [ feature.values python ] ;
-- local py3ver ;
-- for local v in $(versions)
-- {
-- if $(v) >= 3.0
-- {
-- py3ver = $(v) ;
-- }
-- }
-- return $(py3ver) ;
--}
--
--py3-version = [ find-py3-version ] ;
--
- project boost/python
- : source-location ../src
- : requirements
-@@ -82,7 +65,7 @@
- rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
- rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
-
--rule lib_boost_python ( is-py3 ? )
-+rule lib_boost_python
- {
-
- local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
-@@ -91,7 +74,7 @@
- {
- python2 = true ;
- }
-- lib [ cond $(is-py3) : boost_python3 : boost_python ]
-+ lib boost_python
- : # sources
- numeric.cpp
- list.cpp
-@@ -148,7 +131,6 @@
- <dependency>config-warning
-
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-- [ cond $(is-py3) : <python>$(py3-version) ]
- : # default build
- <link>shared
- : # usage requirements
-@@ -160,9 +142,3 @@
-
- lib_boost_python ;
- boost-install boost_python ;
--
--if $(py3-version)
--{
-- lib_boost_python yes ;
-- boost-install boost_python3 ;
--}
diff --git a/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch b/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
deleted file mode 100644
index cb26792f99c..00000000000
--- a/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/libs/python/build/Jamfile.v2
-+++ b/libs/python/build/Jamfile.v2
-@@ -85,6 +85,12 @@
- rule lib_boost_python ( is-py3 ? )
- {
-
-+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
-+ local python2 ;
-+ if $(python_major_version) = 2
-+ {
-+ python2 = true ;
-+ }
- lib [ cond $(is-py3) : boost_python3 : boost_python ]
- : # sources
- numeric.cpp
-@@ -119,6 +125,7 @@
- : # requirements
- <link>static:<define>BOOST_PYTHON_STATIC_LIB
- <define>BOOST_PYTHON_SOURCE
-+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
-
- # On Windows, all code using Python has to link to the Python
- # import library.
diff --git a/dev-libs/boost/files/boost-1.48.0-python_linking.patch b/dev-libs/boost/files/boost-1.48.0-python_linking.patch
deleted file mode 100644
index 330cbb11e88..00000000000
--- a/dev-libs/boost/files/boost-1.48.0-python_linking.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/libs/python/build/Jamfile.v2
-+++ b/libs/python/build/Jamfile.v2
-@@ -109,20 +109,7 @@
- <link>static:<define>BOOST_PYTHON_STATIC_LIB
- <define>BOOST_PYTHON_SOURCE
- [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
--
-- # On Windows, all code using Python has to link to the Python
-- # import library.
-- #
-- # On *nix we never link libboost_python to libpython. When
-- # extending Python, all Python symbols are provided by the
-- # Python interpreter executable. When embedding Python, the
-- # client executable is expected to explicitly link to
-- # /python//python (the target representing libpython) itself.
-- #
-- # python_for_extensions is a target defined by Boost.Build to
-- # provide the Python include paths, and on Windows, the Python
-- # import library, as usage requirements.
-- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
-+ [ cond [ python.configured ] : <library>/python//python ]
-
- # we prevent building when there is no python available
- # as it's not possible anyway, and to cause dependents to
diff --git a/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
deleted file mode 100644
index 17a681611b6..00000000000
--- a/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-https://svn.boost.org/trac/boost/ticket/6286
-
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -99,13 +99,6 @@
- BUILD_ID = [ regex.replace $(build-id) "[*\\/:.\"\' ]" _ ] ;
- }
-
--# Python build id (for Python libraries only).
--python-id = [ option.get "python-buildid" ] ;
--if $(python-id)
--{
-- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
--}
--
-
- ################################################################################
- #
---- a/libs/mpi/build/Jamfile.v2
-+++ b/libs/mpi/build/Jamfile.v2
-@@ -8,6 +8,8 @@
- # Authors: Douglas Gregor
- # Andrew Lumsdaine
-
-+import option ;
-+import regex ;
- import mpi ;
- import indirect ;
- import python ;
-@@ -24,6 +26,13 @@
- <tag>@$(__name__).tag
- ;
-
-+# Python build id (for Python libraries only).
-+python-id = [ option.get "python-buildid" ] ;
-+if $(python-id)
-+{
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+}
-+
- rule tag ( name : type ? : property-set )
- {
- local result = $(name) ;
---- a/libs/python/build/Jamfile.v2
-+++ b/libs/python/build/Jamfile.v2
-@@ -2,6 +2,8 @@
- # Software License, Version 1.0. (See accompanying
- # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-+import option ;
-+import regex ;
- import os ;
- import indirect ;
- import modules ;
-@@ -30,6 +32,14 @@
- ;
- }
-
-+# Python build id (for Python libraries only).
-+python-id = [ option.get "python-buildid" ] ;
-+if $(python-id)
-+{
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+}
-+
-+
- rule find-py3-version
- {
- local versions = [ feature.values python ] ;
diff --git a/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
deleted file mode 100644
index a8912eb5e04..00000000000
--- a/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/libs/mpi/build/Jamfile.v2
-+++ b/libs/mpi/build/Jamfile.v2
-@@ -30,7 +30,7 @@
- python-id = [ option.get "python-buildid" ] ;
- if $(python-id)
- {
-- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
- }
-
- rule tag ( name : type ? : property-set )
---- a/libs/python/build/Jamfile.v2
-+++ b/libs/python/build/Jamfile.v2
-@@ -36,7 +36,7 @@
- python-id = [ option.get "python-buildid" ] ;
- if $(python-id)
- {
-- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
- }
-
-
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2017-09-03 17:47 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2017-09-03 17:47 UTC (permalink / raw
To: gentoo-commits
commit: f65bbbcd0e1907edd09f0dd53d51070ced5b482f
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 3 17:45:27 2017 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Sep 3 17:47:36 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f65bbbcd
dev-libs/boost: Bump to 1.65.0
Closes: https://bugs.gentoo.org/show_bug.cgi?id=618182
Package-Manager: Portage-2.3.8, Repoman-2.3.3
dev-libs/boost/Manifest | 1 +
dev-libs/boost/boost-1.65.0.ebuild | 439 +++++++++++++++++++++
dev-libs/boost/files/boost-1.65.0-fix-python.patch | 144 +++++++
3 files changed, 584 insertions(+)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 2bed45d4d28..349a966ba48 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1,3 @@
DIST boost_1_62_0.tar.bz2 84513338 SHA256 36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0 SHA512 5385ae3d5255a433a704169ad454d8dc2b0b5bcae3fb23defd6570df4ff7d845cf9fcbeebccdc1c5db0eec9f82ee3d90040de9507c8167467c635d3b215463be WHIRLPOOL 49c4558d5e6d72084f083a76217e3d97b504f112d7e4d228eded72dc49fa7e675ba943a9fc52a3c27d296ee689aee27d4566796c6eae71cf647430285777c0fb
DIST boost_1_63_0.tar.bz2 81984414 SHA256 beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad WHIRLPOOL 28c241785097272a1e0952e529eef082444e4ef35a8d738161e4a491a986d75359d3afe888b2ea91a4a81b6ec7a5772ebea337c9d09377b43f6eed66cac90378
+DIST boost_1_65_0.tar.bz2 82597718 SHA256 ea26712742e2fb079c2a566a31f3266973b76e38222b9f88b387e3c8b2f9902c SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd WHIRLPOOL ca389eff2ffc4836b88688504c187e57f236a5967654e40377792d59dd2e4fc3d6ccb079174eae095ad610ccd683e795964c5011429845b27ab67166f8a82c19
diff --git a/dev-libs/boost/boost-1.65.0.ebuild b/dev-libs/boost/boost-1.65.0.ebuild
new file mode 100644
index 00000000000..031429c5de8
--- /dev/null
+++ b/dev-libs/boost/boost-1.65.0.ebuild
@@ -0,0 +1,439 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
+
+MY_P="${PN}_$(replace_all_version_separators _)"
+MAJOR_V="$(get_version_component_range 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="http://www.boost.org/"
+SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+
+IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
+
+RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? ( ${PYTHON_DEPS} )
+ app-arch/bzip2[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ !app-admin/eselect-boost"
+DEPEND="${RDEPEND}
+ =dev-util/boost-build-${MAJOR_V}*"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/${MY_P}"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
+ "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
+ "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
+ "${FILESDIR}/${PN}-1.65.0-fix-python.patch"
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local compiler compiler_version compiler_executable
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ compiler_executable="$(tc-getCXX)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ compiler_executable="$(tc-getCXX)"
+ fi
+ local mpi_configuration python_configuration
+
+ if use mpi; then
+ mpi_configuration="using mpi ;"
+ fi
+
+ if python_bindings_needed; then
+ # boost expects libpython$(pyver) and doesn't allow overrides
+ # and the build system is so creepy that it's easier just to
+ # provide a symlink (linker's going to use SONAME anyway)
+ # TODO: replace it with proper override one day
+ ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
+
+ if tc-is-cross-compiler; then
+ python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
+ else
+ # note: we need to provide version explicitly because of
+ # a bug in the build system:
+ # https://github.com/boostorg/build/pull/104
+ python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
+ fi
+ fi
+
+ cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
+using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+${mpi_configuration}
+${python_configuration}
+__EOF__
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
+ grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
+ (
+ eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
+ die
+ )
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Do not try to build missing 'wave' tool, bug #522682
+ # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
+ sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
+
+ multilib_copy_sources
+}
+
+ejam() {
+ local b2_opts=(
+ "--user-config=${BOOST_ROOT}/user-config.jam"
+ "$@"
+ )
+ echo b2 "${b2_opts[@]}"
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ elif [[ ${CHOST} == *-winnt* ]]; then
+ compiler=parity
+ if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
+ compilerVersion=trunk
+ else
+ compilerVersion=$($(tc-getCXX) -v | sed '1q' \
+ | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
+ fi
+ compilerExecutable=$(tc-getCXX)
+ fi
+
+ # bug 298489
+ if use ppc || use ppc64; then
+ [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
+ fi
+
+ # Use C++14 globally as of 1.62
+ append-cxxflags -std=c++14
+
+ use icu && OPTIONS+=(
+ "-sICU_PATH=${EPREFIX}/usr"
+ )
+ use icu || OPTIONS+=(
+ --disable-icu
+ boost.locale.icu=off
+ )
+ use mpi || OPTIONS+=(
+ --without-mpi
+ )
+ use nls || OPTIONS+=(
+ --without-locale
+ )
+ use context || OPTIONS+=(
+ --without-context
+ --without-coroutine
+ --without-fiber
+ )
+ use threads || OPTIONS+=(
+ --without-thread
+ )
+
+ OPTIONS+=(
+ pch=off
+ --boost-build="${EPREFIX}"/usr/share/boost-build
+ --prefix="${ED%/}/usr"
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=$(usex static-libs shared,static shared)
+ )
+
+ [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
+ -sNO_BZIP2=1
+ )
+}
+
+multilib_src_compile() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ PYTHON_DIRS=""
+ MPI_PYTHON_MODULE=""
+
+ building() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost libraries failed"
+
+ if python_bindings_needed; then
+ if [[ -z "${PYTHON_DIRS}" ]]; then
+ PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
+ else
+ if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ mv ${dir} ${dir}-${EPYTHON} \
+ || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
+ done
+
+ if use mpi; then
+ if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
+ MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
+ if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
+ die "Multiple mpi.so files found"
+ fi
+ else
+ if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
+ || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
+ fi
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl building
+ else
+ building
+ fi
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use python; then
+ rm -r "${ED%/}"/usr/include/boost/python* || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED%/}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED%/}"/usr/include/boost/context || die
+ rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ installation() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ cp -pr ${dir}-${EPYTHON} ${dir} \
+ || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
+ done
+
+ if use mpi; then
+ cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
+ cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
+ fi
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ --includedir="${ED%/}/usr/include" \
+ --libdir="${ED%/}/usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ if python_bindings_needed; then
+ rm -r ${PYTHON_DIRS} || die
+
+ # Move mpi.so Python module to Python site-packages directory.
+ # https://svn.boost.org/trac/boost/ticket/2838
+ if use mpi; then
+ local moddir=$(python_get_sitedir)/boost
+ # moddir already includes eprefix
+ mkdir -p "${D}${moddir}" || die
+ mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
+ cat << EOF > "${D}${moddir}/__init__.py" || die
+import sys
+if sys.platform.startswith('linux'):
+ import DLFCN
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
+ from . import mpi
+ sys.setdlopenflags(flags)
+ del DLFCN, flags
+else:
+ from . import mpi
+del sys
+EOF
+ fi
+
+ python_optimize
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl installation
+ else
+ installation
+ fi
+
+ pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd >/dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED%/}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
+}
diff --git a/dev-libs/boost/files/boost-1.65.0-fix-python.patch b/dev-libs/boost/files/boost-1.65.0-fix-python.patch
new file mode 100644
index 00000000000..e960edb8703
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.65.0-fix-python.patch
@@ -0,0 +1,144 @@
+--- a/boostcpp.jam
++++ b/boostcpp.jam
+@@ -104,7 +104,7 @@
+ python-id = [ option.get "python-buildid" ] ;
+ if $(python-id)
+ {
+- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
++ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
+ }
+
+
+--- a/libs/python/build/Jamfile
++++ b/libs/python/build/Jamfile
+@@ -31,26 +31,23 @@
+ ;
+ }
+
+-py2-version = [ py-version 2 ] ;
+-py3-version = [ py-version 3 ] ;
+-
+ project boost/python
+ : source-location ../src
+ ;
+
+ rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
+ rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
+-local rule eq ( a : b ) { if $(a) = $(b) { return 1 ; } }
+-
+-lib_boost_python(2) = boost_python ;
+-lib_boost_python(3) = boost_python3 ;
+-
+-lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
+-lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
+
+-rule lib_boost_python ( version )
++rule lib_boost_python
+ {
+- lib $(lib_boost_python($(version)))
++ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
++ local python2 ;
++ if $(python_major_version) = 2
++ {
++ python2 = true ;
++ }
++
++ lib boost_python
+ : # sources
+ list.cpp
+ long.cpp
+@@ -96,7 +93,8 @@
+ # python_for_extensions is a target defined by Boost.Build to
+ # provide the Python include paths, and on Windows, the Python
+ # import library, as usage requirements.
+- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
++ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
++ [ cond [ python.configured ] : <library>/python//python ]
+
+ # we prevent building when there is no python available
+ # as it's not possible anyway, and to cause dependents to
+@@ -105,13 +103,10 @@
+ <dependency>config-warning
+
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- <python>$(version)
+
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+
+- <conditional>@python.require-py
+-
+ : # default build
+ <link>shared
+ : # usage requirements
+@@ -120,68 +115,8 @@
+ ;
+ }
+
+-lib_boost_numpy(2) = boost_numpy ;
+-lib_boost_numpy(3) = boost_numpy3 ;
+-
+-lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ;
+-lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ;
+-
+-rule lib_boost_numpy ( version )
+-{
+- numpy-include = [ python.numpy-include ] ;
+- lib $(lib_boost_numpy($(version)))
+- : # sources
+- numpy/dtype.cpp
+- numpy/matrix.cpp
+- numpy/ndarray.cpp
+- numpy/numpy.cpp
+- numpy/scalars.cpp
+- numpy/ufunc.cpp
+- : # requirements
+- <link>static:<define>BOOST_NUMPY_STATIC_LIB
+- <define>BOOST_NUMPY_SOURCE
+- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
+- [ unless [ python.numpy ] : <build>no ]
+- <include>$(numpy-include)
+- <library>$(lib_boost_python($(version)))
+- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- <python>$(version)
++libraries = boost_python ;
+
+- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+-
+- <conditional>@python.require-py
+-
+- : # default build
+- <link>shared
+- : # usage requirements
+- <link>static:<define>BOOST_NUMPY_STATIC_LIB
+- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- ;
+-}
+-
+-libraries = ;
+-
+-for local N in 2 3
+-{
+- if $(py$(N)-version)
+- {
+- lib_boost_python $(py$(N)-version) ;
+- libraries += $(lib_boost_python($(py$(N)-version))) ;
+- }
+- else
+- {
+- alias $(lib_boost_python($(N))) ;
+- }
+- if $(py$(N)-version) && [ python.numpy ]
+- {
+- lib_boost_numpy $(py$(N)-version) ;
+- libraries += $(lib_boost_numpy($(py$(N)-version))) ;
+- }
+- else
+- {
+- alias $(lib_boost_numpy($(N))) ;
+- }
+-}
++lib_boost_python ;
+
+ boost-install $(libraries) ;
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2016-04-13 19:06 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2016-04-13 19:06 UTC (permalink / raw
To: gentoo-commits
commit: 92a7e9f4284a9141aeedda4c3f736927254d5340
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 19:06:01 2016 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 19:06:16 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=92a7e9f4
dev-libs/boost: Add patch for ptr registration in libboost_python
Gentoo-Bug: 579616
Package-Manager: portage-2.2.28
dev-libs/boost/boost-1.60.0.ebuild | 1 +
.../files/boost-1.60.0-auto-pointer-python.patch | 42 ++++++++++++++++++++++
2 files changed, 43 insertions(+)
diff --git a/dev-libs/boost/boost-1.60.0.ebuild b/dev-libs/boost/boost-1.60.0.ebuild
index c8bf2ac..ab69ac9 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 0000000..1566c34
--- /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.
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2016-03-30 22:50 David Seifert
0 siblings, 0 replies; 30+ messages in thread
From: David Seifert @ 2016-03-30 22:50 UTC (permalink / raw
To: gentoo-commits
commit: c1046df9aeef2b48b34953947275210872ec424c
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 30 22:49:39 2016 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Wed Mar 30 22:49:53 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c1046df9
dev-libs/boost: Add boost::graph patch
* Modify patches such that all apply with -p1
* Move patches into PATCHES variable, avoid epatch
* Fix unquoted variable
Package-Manager: portage-2.2.28
dev-libs/boost/boost-1.60.0.ebuild | 26 +++++++-------
.../files/boost-1.48.0-disable_icu_rpath.patch | 4 +--
.../boost-1.48.0-disable_libboost_python3.patch | 4 +--
.../boost-1.48.0-no_strict_aliasing_python2.patch | 4 +--
.../boost/files/boost-1.48.0-python_linking.patch | 4 +--
.../boost-1.51.0-respect_python-buildid.patch | 12 +++----
...ost-1.51.0-support_dots_in_python-buildid.patch | 8 ++---
.../files/boost-1.56.0-build-auto_index-tool.patch | 4 +--
| 42 ++++++++++++++++++++++
9 files changed, 76 insertions(+), 32 deletions(-)
diff --git a/dev-libs/boost/boost-1.60.0.ebuild b/dev-libs/boost/boost-1.60.0.ebuild
index ea0fdc1..1a95c5e 100644
--- a/dev-libs/boost/boost-1.60.0.ebuild
+++ b/dev-libs/boost/boost-1.60.0.ebuild
@@ -42,6 +42,18 @@ S="${WORKDIR}/${MY_P}"
# there is no point in having them in the ebuild to begin with.
RESTRICT="test"
+PATCHES=(
+ "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
+ "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
+ "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
+ "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
+ "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
+ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
+ "${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"
+)
+
python_bindings_needed() {
multilib_is_native_abi && use python
}
@@ -111,22 +123,12 @@ pkg_setup() {
}
src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
+ default
# Do not try to build missing 'wave' tool, bug #522682
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
- eapply_user
-
multilib_copy_sources
}
@@ -172,7 +174,7 @@ src_configure() {
use context || OPTIONS+=" --without-context --without-coroutine"
OPTIONS+=" pch=off"
- OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
+ OPTIONS+=" --boost-build=\"${EPREFIX}\"/usr/share/boost-build --prefix=\"${ED}usr\""
OPTIONS+=" --layout=system"
OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
diff --git a/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
index a902d61..23a8783 100644
--- a/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
+++ b/dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
@@ -1,5 +1,5 @@
---- libs/locale/build/Jamfile.v2
-+++ libs/locale/build/Jamfile.v2
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
@@ -58,8 +58,8 @@
if $(ICU_LINK)
diff --git a/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch b/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
index c24a56c..d456040 100644
--- a/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
+++ b/dev-libs/boost/files/boost-1.48.0-disable_libboost_python3.patch
@@ -1,5 +1,5 @@
---- libs/python/build/Jamfile.v2
-+++ libs/python/build/Jamfile.v2
+--- a/libs/python/build/Jamfile.v2
++++ b/libs/python/build/Jamfile.v2
@@ -39,23 +39,6 @@
PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" "_" ] ;
}
diff --git a/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch b/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
index 89f8109..cb26792 100644
--- a/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
+++ b/dev-libs/boost/files/boost-1.48.0-no_strict_aliasing_python2.patch
@@ -1,5 +1,5 @@
---- libs/python/build/Jamfile.v2
-+++ libs/python/build/Jamfile.v2
+--- a/libs/python/build/Jamfile.v2
++++ b/libs/python/build/Jamfile.v2
@@ -85,6 +85,12 @@
rule lib_boost_python ( is-py3 ? )
{
diff --git a/dev-libs/boost/files/boost-1.48.0-python_linking.patch b/dev-libs/boost/files/boost-1.48.0-python_linking.patch
index e7f4e7c..330cbb1 100644
--- a/dev-libs/boost/files/boost-1.48.0-python_linking.patch
+++ b/dev-libs/boost/files/boost-1.48.0-python_linking.patch
@@ -1,5 +1,5 @@
---- libs/python/build/Jamfile.v2
-+++ libs/python/build/Jamfile.v2
+--- a/libs/python/build/Jamfile.v2
++++ b/libs/python/build/Jamfile.v2
@@ -109,20 +109,7 @@
<link>static:<define>BOOST_PYTHON_STATIC_LIB
<define>BOOST_PYTHON_SOURCE
diff --git a/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
index 327429e..17a6816 100644
--- a/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
+++ b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch
@@ -1,7 +1,7 @@
https://svn.boost.org/trac/boost/ticket/6286
---- boostcpp.jam
-+++ boostcpp.jam
+--- a/boostcpp.jam
++++ b/boostcpp.jam
@@ -99,13 +99,6 @@
BUILD_ID = [ regex.replace $(build-id) "[*\\/:.\"\' ]" _ ] ;
}
@@ -16,8 +16,8 @@ https://svn.boost.org/trac/boost/ticket/6286
################################################################################
#
---- libs/mpi/build/Jamfile.v2
-+++ libs/mpi/build/Jamfile.v2
+--- a/libs/mpi/build/Jamfile.v2
++++ b/libs/mpi/build/Jamfile.v2
@@ -8,6 +8,8 @@
# Authors: Douglas Gregor
# Andrew Lumsdaine
@@ -41,8 +41,8 @@ https://svn.boost.org/trac/boost/ticket/6286
rule tag ( name : type ? : property-set )
{
local result = $(name) ;
---- libs/python/build/Jamfile.v2
-+++ libs/python/build/Jamfile.v2
+--- a/libs/python/build/Jamfile.v2
++++ b/libs/python/build/Jamfile.v2
@@ -2,6 +2,8 @@
# Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
diff --git a/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
index c8dc6e1..a8912eb5 100644
--- a/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
+++ b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch
@@ -1,5 +1,5 @@
---- libs/mpi/build/Jamfile.v2
-+++ libs/mpi/build/Jamfile.v2
+--- a/libs/mpi/build/Jamfile.v2
++++ b/libs/mpi/build/Jamfile.v2
@@ -30,7 +30,7 @@
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
@@ -9,8 +9,8 @@
}
rule tag ( name : type ? : property-set )
---- libs/python/build/Jamfile.v2
-+++ libs/python/build/Jamfile.v2
+--- a/libs/python/build/Jamfile.v2
++++ b/libs/python/build/Jamfile.v2
@@ -36,7 +36,7 @@
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
diff --git a/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch b/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
index 5175800..48ca513 100644
--- a/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
+++ b/dev-libs/boost/files/boost-1.56.0-build-auto_index-tool.patch
@@ -1,8 +1,8 @@
Build auto_index tool with USE="tools"
Gentoo bug report: https://bugs.gentoo.org/show_bug.cgi?id=529066
---- tools/Jamfile.v2.orig 2014-12-24 12:57:32.290880067 +0300
-+++ tools/Jamfile.v2 2014-12-24 12:58:38.403883250 +0300
+--- a/tools/Jamfile.v2.orig 2014-12-24 12:57:32.290880067 +0300
++++ b/tools/Jamfile.v2 2014-12-24 12:58:38.403883250 +0300
@@ -20,6 +20,7 @@
use-project /boost/regression : regression/build ;
--git a/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch b/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch
new file mode 100644
index 0000000..624dc64
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch
@@ -0,0 +1,42 @@
+From: jzmaddock <john@johnmaddock.co.uk>
+Date: Tue, 21 Jul 2015 18:54:48 +0100
+Subject: [PATCH] Remove deprecated type_traits usage.
+
+---
+ include/boost/graph/adjacency_matrix.hpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/boost/graph/adjacency_matrix.hpp b/include/boost/graph/adjacency_matrix.hpp
+index b1078d9..ade7351 100644
+--- a/boost/graph/adjacency_matrix.hpp
++++ b/boost/graph/adjacency_matrix.hpp
+@@ -443,7 +443,7 @@ namespace boost {
+ // graph type. Instead, use directedS, which also provides the
+ // functionality required for a Bidirectional Graph (in_edges,
+ // in_degree, etc.).
+- BOOST_STATIC_ASSERT(type_traits::ice_not<(is_same<Directed, bidirectionalS>::value)>::value);
++ BOOST_STATIC_ASSERT(!(is_same<Directed, bidirectionalS>::value));
+
+ typedef typename mpl::if_<is_directed,
+ bidirectional_tag, undirected_tag>::type
+From: Vladimir Prus <vladimir.prus@gmail.com>
+Date: Mon, 7 Dec 2015 13:55:07 +0300
+Subject: [PATCH] Add missing include of <list>.
+
+Thanks to Amit Prakash Ambasta for the report.
+---
+ include/boost/graph/r_c_shortest_paths.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/include/boost/graph/r_c_shortest_paths.hpp b/include/boost/graph/r_c_shortest_paths.hpp
+index afa50cf..7e490fc 100644
+--- a/boost/graph/r_c_shortest_paths.hpp
++++ b/boost/graph/r_c_shortest_paths.hpp
+@@ -11,6 +11,7 @@
+ #include <map>
+ #include <queue>
+ #include <vector>
++#include <list>
+
+ #include <boost/graph/graph_traits.hpp>
+ #include <boost/graph/iteration_macros.hpp>
^ permalink raw reply related [flat|nested] 30+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/
@ 2015-08-25 11:36 Sergey Popov
0 siblings, 0 replies; 30+ messages in thread
From: Sergey Popov @ 2015-08-25 11:36 UTC (permalink / raw
To: gentoo-commits
commit: 89f7694c5ab1f1860014549565ff919f87fb3f06
Author: Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 25 11:35:41 2015 +0000
Commit: Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
CommitDate: Tue Aug 25 11:35:41 2015 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89f7694c
dev-libs/boost: backport build fixes for Boost::Atomic
Backport build fixes for atomic ops support on some ARM devices
Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10446
Gentoo-Bug: 557168
Reported-by: Daniel Savard <dsavard <AT> cids.ca>
Gentoo-Bug: 558042
Reported-by: Michael Jones <gentoo <AT> jonesmz.com>
Package-Manager: portage-2.2.20
dev-libs/boost/boost-1.56.0-r1.ebuild | 3 +-
dev-libs/boost/files/boost-1.56.0-atomic.patch | 402 +++++++++++++++++++++++++
2 files changed, 404 insertions(+), 1 deletion(-)
diff --git a/dev-libs/boost/boost-1.56.0-r1.ebuild b/dev-libs/boost/boost-1.56.0-r1.ebuild
index 5d09eda..8059695 100644
--- a/dev-libs/boost/boost-1.56.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.56.0-r1.ebuild
@@ -114,7 +114,8 @@ src_prepare() {
"${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
"${FILESDIR}/${PN}-1.52.0-threads.patch" \
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
- "${FILESDIR}/${PN}-1.55.0-variadic-templates.patch"
+ "${FILESDIR}/${PN}-1.55.0-variadic-templates.patch" \
+ "${FILESDIR}/${PN}-1.56.0-atomic.patch"
# Do not try to build missing 'wave' tool, bug #522682
# Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
diff --git a/dev-libs/boost/files/boost-1.56.0-atomic.patch b/dev-libs/boost/files/boost-1.56.0-atomic.patch
new file mode 100644
index 0000000..6d72418
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.56.0-atomic.patch
@@ -0,0 +1,402 @@
+Fixed in 1.57
+
+commit 415db7054723291042e4ff1ffa8fdd5bc8b07163
+Author: Andrey Semashev <andrey.semashev@gmail.com>
+Date: Sat Sep 27 20:40:09 2014 +0400
+
+ Added support for extending operations to GCC atomic backend.
+
+ Fix for #10446. Some platforms (e.g. Raspberry Pi) only support atomic ops of some particular size but not less. Use extending arithmetic operations for these platforms. Also, make sure bools are always treated as 8-bit values, even if the actual type is larger. This makes its use in atomic<>, atomic_flag and lock pool more consistent.
+
+diff --git a/include/boost/atomic/capabilities.hpp b/include/boost/atomic/capabilities.hpp
+index 658dd22..05bbb0f 100644
+--- a/include/boost/atomic/capabilities.hpp
++++ b/include/boost/atomic/capabilities.hpp
+@@ -142,6 +142,7 @@
+ #define BOOST_ATOMIC_ADDRESS_LOCK_FREE BOOST_ATOMIC_POINTER_LOCK_FREE
+
+ #ifndef BOOST_ATOMIC_BOOL_LOCK_FREE
++// We store bools in 1-byte storage in all backends
+ #define BOOST_ATOMIC_BOOL_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
+ #endif
+
+diff --git a/include/boost/atomic/detail/atomic_template.hpp b/include/boost/atomic/detail/atomic_template.hpp
+index 4fd6d79..bc3922a 100644
+--- a/include/boost/atomic/detail/atomic_template.hpp
++++ b/include/boost/atomic/detail/atomic_template.hpp
+@@ -234,7 +234,7 @@ class base_atomic< bool, int >
+ {
+ private:
+ typedef bool value_type;
+- typedef atomics::detail::operations< storage_size_of< value_type >::value, false > operations;
++ typedef atomics::detail::operations< 1u, false > operations;
+
+ protected:
+ typedef value_type value_arg_type;
+diff --git a/include/boost/atomic/detail/caps_gcc_atomic.hpp b/include/boost/atomic/detail/caps_gcc_atomic.hpp
+index 8299ad0..f4e7a70 100644
+--- a/include/boost/atomic/detail/caps_gcc_atomic.hpp
++++ b/include/boost/atomic/detail/caps_gcc_atomic.hpp
+@@ -29,66 +29,48 @@
+ #define BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B 1
+ #endif
+
+-#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
+-#define BOOST_ATOMIC_FLAG_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_FLAG_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
+-#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_CHAR_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_CHAR16_T_LOCK_FREE == 2
+-#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_CHAR32_T_LOCK_FREE == 2
+-#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2
++#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
++#define BOOST_ATOMIC_INT128_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 0
++#define BOOST_ATOMIC_INT128_LOCK_FREE 0
+ #endif
+-#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
+-#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
++
++#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
++#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
++#define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT128_LOCK_FREE
+ #endif
+-#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
+-#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
++
++#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
++#define BOOST_ATOMIC_LONG_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_SHORT_LOCK_FREE 0
++#define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_LLONG_LOCK_FREE
+ #endif
++
+ #if __GCC_ATOMIC_INT_LOCK_FREE == 2
+ #define BOOST_ATOMIC_INT_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_INT_LOCK_FREE 0
+-#endif
+-#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
+-#define BOOST_ATOMIC_LONG_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_LONG_LOCK_FREE 0
++#define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_LONG_LOCK_FREE
+ #endif
+-#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
+-#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
++
++#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
++#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_LLONG_LOCK_FREE 0
++#define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT_LOCK_FREE
+ #endif
+-#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
+-#define BOOST_ATOMIC_INT128_LOCK_FREE 2
++
++#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
++#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
+ #else
+-#define BOOST_ATOMIC_INT128_LOCK_FREE 0
++#define BOOST_ATOMIC_CHAR_LOCK_FREE BOOST_ATOMIC_SHORT_LOCK_FREE
+ #endif
++
+ #if __GCC_ATOMIC_POINTER_LOCK_FREE == 2
+ #define BOOST_ATOMIC_POINTER_LOCK_FREE 2
+ #else
+ #define BOOST_ATOMIC_POINTER_LOCK_FREE 0
+ #endif
+-#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
+-#define BOOST_ATOMIC_BOOL_LOCK_FREE 2
+-#else
+-#define BOOST_ATOMIC_BOOL_LOCK_FREE 0
+-#endif
++
+
+ #define BOOST_ATOMIC_INT8_LOCK_FREE BOOST_ATOMIC_CHAR_LOCK_FREE
+
+@@ -128,6 +110,24 @@
+ #define BOOST_ATOMIC_INT64_LOCK_FREE 0
+ #endif
+
++
++#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
++#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
++#else
++#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
++#endif
++
++#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
++#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
++
+ #define BOOST_ATOMIC_THREAD_FENCE 2
+ #define BOOST_ATOMIC_SIGNAL_FENCE 2
+
+diff --git a/include/boost/atomic/detail/ops_gcc_atomic.hpp b/include/boost/atomic/detail/ops_gcc_atomic.hpp
+index 2297791..2e4c37b 100644
+--- a/include/boost/atomic/detail/ops_gcc_atomic.hpp
++++ b/include/boost/atomic/detail/ops_gcc_atomic.hpp
+@@ -24,6 +24,15 @@
+ #include <boost/atomic/detail/ops_cas_based.hpp>
+ #endif
+
++#if __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE || __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE ||\
++ __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE || __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE ||\
++ __GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE || __GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE ||\
++ __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE
++// There are platforms where we need to use larger storage types
++#include <boost/atomic/detail/int_sizes.hpp>
++#include <boost/atomic/detail/ops_extending_cas_based.hpp>
++#endif
++
+ #ifdef BOOST_HAS_PRAGMA_ONCE
+ #pragma once
+ #endif
+@@ -154,73 +163,206 @@ struct gcc_atomic_operations
+ }
+ };
+
+-#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
++#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
++#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
++
++// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
++// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
+ template< bool Signed >
+-struct operations< 1u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
++struct operations< 16u, Signed > :
++ public cas_based_operations< gcc_dcas_x86_64< Signed > >
+ {
+ };
++
++#else
++
++template< bool Signed >
++struct operations< 16u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
++{
++};
++
++#endif
+ #endif
+
+-#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
++
++#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
++#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
++
++// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
+ template< bool Signed >
+-struct operations< 2u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
++struct operations< 8u, Signed > :
++ public cas_based_operations< gcc_dcas_x86< Signed > >
++{
++};
++
++#elif (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
++
++#define BOOST_ATOMIC_DETAIL_INT64_EXTENDED
++
++template< bool Signed >
++struct operations< 8u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 8u, Signed >
+ {
+ };
++
++#else
++
++template< bool Signed >
++struct operations< 8u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
++{
++};
++
++#endif
+ #endif
+
+ #if BOOST_ATOMIC_INT32_LOCK_FREE > 0
++#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
++
++#define BOOST_ATOMIC_DETAIL_INT32_EXTENDED
++
++#if !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 4u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 4u, Signed >
++{
++};
++
++#else // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 4u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 4u, Signed >
++{
++};
++
++#endif // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++#else
++
+ template< bool Signed >
+ struct operations< 4u, Signed > :
+ public gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >
+ {
+ };
++
++#endif
+ #endif
+
+-#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
+-#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
++#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
++#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
++
++#define BOOST_ATOMIC_DETAIL_INT16_EXTENDED
++
++#if !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
+
+-// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
+ template< bool Signed >
+-struct operations< 8u, Signed > :
+- public cas_based_operations< gcc_dcas_x86< Signed > >
++struct operations< 2u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 2u, Signed >
++{
++};
++
++#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 2u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 2u, Signed >
+ {
+ };
+
+ #else
+
+ template< bool Signed >
+-struct operations< 8u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
++struct operations< 2u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 2u, Signed >
++{
++};
++
++#endif
++
++#else
++
++template< bool Signed >
++struct operations< 2u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
+ {
+ };
+
+ #endif
+ #endif
+
+-#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
+-#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
++#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
++#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
++ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE) ||\
++ (__GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE) ||\
++ (__GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE)
++
++#if !defined(BOOST_ATOMIC_DETAIL_INT16_EXTENDED)
+
+-// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
+-// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
+ template< bool Signed >
+-struct operations< 16u, Signed > :
+- public cas_based_operations< gcc_dcas_x86_64< Signed > >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >, 1u, Signed >
++{
++};
++
++#elif !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
++
++template< bool Signed >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 1u, Signed >
++{
++};
++
++#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
++
++template< bool Signed >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 1u, Signed >
+ {
+ };
+
+ #else
+
+ template< bool Signed >
+-struct operations< 16u, Signed > :
+- public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
++struct operations< 1u, Signed > :
++ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 1u, Signed >
++{
++};
++
++#endif
++
++#else
++
++template< bool Signed >
++struct operations< 1u, Signed > :
++ public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
+ {
+ };
+
+ #endif
+ #endif
+
++#undef BOOST_ATOMIC_DETAIL_INT16_EXTENDED
++#undef BOOST_ATOMIC_DETAIL_INT32_EXTENDED
++#undef BOOST_ATOMIC_DETAIL_INT64_EXTENDED
++
+ BOOST_FORCEINLINE void thread_fence(memory_order order) BOOST_NOEXCEPT
+ {
+ __atomic_thread_fence(atomics::detail::convert_memory_order_to_gcc(order));
^ permalink raw reply related [flat|nested] 30+ messages in thread
end of thread, other threads:[~2024-09-30 18:03 UTC | newest]
Thread overview: 30+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-20 16:54 [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/, dev-libs/boost/files/ Andreas Sturmlechner
-- strict thread matches above, loose matches on Subject: below --
2024-09-30 18:03 David Seifert
2024-07-16 23:04 Sam James
2024-06-03 1:31 Sam James
2024-02-17 14:27 David Seifert
2024-01-01 21:34 David Seifert
2023-10-08 4:22 Sam James
2023-05-20 16:38 David Seifert
2022-12-16 2:52 Sam James
2022-11-12 0:05 Sam James
2022-07-13 18:12 David Seifert
2022-02-03 4:25 Sam James
2021-12-01 17:24 Sam James
2021-05-24 21:38 Sam James
2020-11-24 19:59 Andreas Sturmlechner
2020-08-02 10:09 David Seifert
2020-06-07 12:40 David Seifert
2020-05-02 14:26 David Seifert
2019-12-21 12:55 David Seifert
2019-12-07 21:43 David Seifert
2019-12-07 19:48 David Seifert
2019-04-21 19:18 David Seifert
2019-04-16 11:39 David Seifert
2019-04-16 11:39 David Seifert
2019-04-15 0:22 David Seifert
2018-02-11 17:07 Andreas Sturmlechner
2017-09-03 17:47 David Seifert
2016-04-13 19:06 David Seifert
2016-03-30 22:50 David Seifert
2015-08-25 11:36 Sergey Popov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox