commit:     321ca79feff43ef373c7345dfb957c4a653fe795
Author:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 17 21:34:47 2025 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Jul 22 20:48:31 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=321ca79f

dev-libs/boost: drop 1.85.0-r1, 1.86.0-r1, 1.87.0-r3

Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>

 dev-libs/boost/Manifest                            |   3 -
 dev-libs/boost/boost-1.85.0-r1.ebuild              | 363 ------------------
 dev-libs/boost/boost-1.86.0-r1.ebuild              | 360 ------------------
 dev-libs/boost/boost-1.87.0-r3.ebuild              | 359 ------------------
 ...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 -----------------
 .../boost/files/boost-1.85.0-bcp-filesystem.patch  | 188 ---------
 .../files/boost-1.85.0-container-aliasing.patch    | 408 --------------------
 .../boost/files/boost-1.85.0-python-numpy-2.patch  |  26 --
 .../files/boost-1.86.0-uuid-compute-backport.patch |  30 --
 dev-libs/boost/files/boost-1.87.0-move.patch       |  74 ----
 .../files/boost-1.87.0-smart_ptr-operator.patch    |  40 --
 dev-libs/boost/files/boost-1.87.0-solaris.patch    |  25 --
 .../boost/files/boost-1.87.0-thread-typo.patch     |  28 --
 17 files changed, 2872 deletions(-)

diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 9666c69d7af6..38b7379c8e32 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,4 +1 @@
-DIST boost_1_85_0.tar.bz2 124015250 BLAKE2B 
dd72a9299cd78d2c260e1c94e28ba04daaa352f5bd023d99e43caa3540b1e0f8c09fc04b91f68db0ef8532e4a91fdef0b66a80bf0f9f838303bccaf0729bf581
 SHA512 
b4489813a4192b57626589457932338cfc47c4ec05c19b3a58b2d8df9e95f022ff2f5f452811ff82d1cec4fb0a490e991c8825bad0fb5a81318d07a8788d8ca0
-DIST boost_1_86_0.tar.bz2 126220652 BLAKE2B 
de3d262e3dc174813e8e9abc8fb083ae101949dbd3b818b1114457497607085dc998f6f0fdd095a87c38c90700761c825ce239b082144389507c0fec77d527dd
 SHA512 
9f8144e07a44cc5b5be6c6da17b2e6f29f0637dda345764c89eac0bcb9ce2878469a7e6fcd2c96d25034937025768450b33fc14fb40470fa4806bfcf03330e75
-DIST boost_1_87_0.tar.bz2 131473200 BLAKE2B 
8bbd163ab2fcdd29e2dbe74fdab49b2c80b4ea58df40e39148d151911f2c81188e7fe44faf61905eddfc5615b5003932e0ea85a6527844f55ee121595173adfa
 SHA512 
a2d5007953f67b816169efe0cf11675cd63fc6bae63f87ee1372515e57913ef6cf6ae8c3f2c400fef8ce63a035a02a0cad0da5acc29e977a85d458625b2a719c
 DIST boost_1_88_0.tar.bz2 143894119 BLAKE2B 
b42daa4b3ee840715f3b2cd689e585521839345d88d3e318cf96feeb3f48cb6f6723be5fffa5440a350956aecfab9fd36cbbf0dee54318c572aa1d14eeedd158
 SHA512 
c3a6a70e1e7d826882745ff92ac8fe7cb2a69b5974ba2275d8e130955f91163cbc4e6ccfbae19a7a92d478a8cb9de2458f73324b183596b3a2a69b1d5a75b3e9

diff --git a/dev-libs/boost/boost-1.85.0-r1.ebuild 
b/dev-libs/boost/boost-1.85.0-r1.ebuild
deleted file mode 100644
index 6a221999ded5..000000000000
--- a/dev-libs/boost/boost-1.85.0-r1.ebuild
+++ /dev/null
@@ -1,363 +0,0 @@
-# Copyright 1999-2025 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_{11..13} )
-
-inherit dot-a 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://archives.boost.io/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 ~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
-       "${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() {
-       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() {
-       # -Werror=odr
-       # https://bugs.gentoo.org/943975
-       # https://github.com/boostorg/quickbook/issues/27
-       # https://github.com/boostorg/spirit/issues/800
-       use tools && filter-lto
-
-       lto-guarantee-fat
-
-       # 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
-
-       strip-lto-bytecode
-}
-
-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.86.0-r1.ebuild 
b/dev-libs/boost/boost-1.86.0-r1.ebuild
deleted file mode 100644
index 9652542941e0..000000000000
--- a/dev-libs/boost/boost-1.86.0-r1.ebuild
+++ /dev/null
@@ -1,360 +0,0 @@
-# Copyright 1999-2025 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_{11..13} )
-
-inherit dot-a 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://archives.boost.io/release/${PV}/source/boost_${MY_PV}.tar.bz2";
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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.1.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
-
-       # backports
-       # https://github.com/boostorg/compute/issues/889
-       "${FILESDIR}"/${PN}-1.86.0-uuid-compute-backport.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() {
-       # -Werror=odr
-       # https://bugs.gentoo.org/943975
-       # https://github.com/boostorg/quickbook/issues/27
-       # https://github.com/boostorg/spirit/issues/800
-       use tools && filter-lto
-
-       lto-guarantee-fat
-
-       # 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)
-               boost.stacktrace.from_exception=off
-       )
-
-       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
-
-       strip-lto-bytecode
-}
-
-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.87.0-r3.ebuild 
b/dev-libs/boost/boost-1.87.0-r3.ebuild
deleted file mode 100644
index e595eef73b65..000000000000
--- a/dev-libs/boost/boost-1.87.0-r3.ebuild
+++ /dev/null
@@ -1,359 +0,0 @@
-# Copyright 1999-2025 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_{11..13} )
-
-inherit dot-a 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://archives.boost.io/release/${PV}/source/boost_${MY_PV}.tar.bz2";
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~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.1.0"
-
-PATCHES=(
-       "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
-       "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
-       "${FILESDIR}"/${PN}-1.87.0-move.patch
-       "${FILESDIR}"/${PN}-1.87.0-smart_ptr-operator.patch
-       "${FILESDIR}"/${PN}-1.87.0-thread-typo.patch
-       "${FILESDIR}"/${PN}-1.87.0-solaris.patch
-       "${FILESDIR}"/${PN}-1.87.0-process-error-alpha.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() {
-       # -Werror=odr
-       # https://bugs.gentoo.org/943975
-       # https://github.com/boostorg/quickbook/issues/27
-       # https://github.com/boostorg/spirit/issues/800
-       use tools && filter-lto
-
-       lto-guarantee-fat
-
-       # 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)
-               boost.stacktrace.from_exception=off
-       )
-
-       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
-
-       strip-lto-bytecode
-}
-
-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-01-fix_unsupported_long_double_macros.patch 
b/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch
deleted file mode 100644
index 58387c211b44..000000000000
--- 
a/dev-libs/boost/files/boost-1.85.0-01-fix_unsupported_long_double_macros.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-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
deleted file mode 100644
index 59a007907be6..000000000000
--- 
a/dev-libs/boost/files/boost-1.85.0-02-fix_unsupported_long_double_formats.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-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
deleted file mode 100644
index fc7a3e5b6aa5..000000000000
--- 
a/dev-libs/boost/files/boost-1.85.0-03-disable_tests_with_unsupported_long_double_layouts.patch
+++ /dev/null
@@ -1,420 +0,0 @@
-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
deleted file mode 100644
index 8d91e5f41746..000000000000
--- a/dev-libs/boost/files/boost-1.85.0-04-remove_cruft_codeblock.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-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
deleted file mode 100644
index 69899ae3b850..000000000000
--- a/dev-libs/boost/files/boost-1.85.0-05-fix_macro_name.patch
+++ /dev/null
@@ -1,356 +0,0 @@
-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
-

diff --git a/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch 
b/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch
deleted file mode 100644
index 23d94040341d..000000000000
--- a/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-https://bugs.gentoo.org/932240
-https://github.com/boostorg/bcp/commit/cd21e9b4a749a77c24facf2da44f01e032c40842
-
-From cd21e9b4a749a77c24facf2da44f01e032c40842 Mon Sep 17 00:00:00 2001
-From: Andrey Semashev <[email protected]>
-Date: Sun, 24 Mar 2024 14:49:18 +0300
-Subject: [PATCH] Remove usage of deprecated and removed Boost.Filesystem APIs.
-
----
- add_dependent_lib.cpp |  5 +++--
- add_path.cpp          | 30 +++++++++++++++---------------
- bcp_imp.hpp           |  1 +
- copy_path.cpp         |  8 ++++----
- file_types.cpp        |  2 +-
- 5 files changed, 24 insertions(+), 22 deletions(-)
-
-diff --git a/tools/bcp/add_dependent_lib.cpp b/tools/bcp/add_dependent_lib.cpp
-index 4852914..521b70d 100644
---- a/tools/bcp/add_dependent_lib.cpp
-+++ b/tools/bcp/add_dependent_lib.cpp
-@@ -15,6 +15,7 @@
- #include "bcp_imp.hpp"
- #include "fileview.hpp"
- #include <boost/regex.hpp>
-+#include <boost/filesystem/directory.hpp>
- #include <boost/filesystem/operations.hpp>
- #include <boost/filesystem/exception.hpp>
- #include <iostream>
-@@ -43,12 +44,12 @@ static void init_library_scanner(const fs::path& p, bool 
cvs_mode, const std::st
-    //
-    // Don't add files created by build system:
-    //
--   if((p.leaf() == "bin") || (p.leaf() == "bin-stage"))
-+   if((p.filename() == "bin") || (p.filename() == "bin-stage"))
-       return; 
-    //
-    // Don't add version control directories:
-    //
--   if((p.leaf() == "CVS") || (p.leaf() == ".svn"))
-+   if((p.filename() == "CVS") || (p.filename() == ".svn"))
-       return; 
-    //
-    // don't add directories not under version control:
-diff --git a/tools/bcp/add_path.cpp b/tools/bcp/add_path.cpp
-index 8a1fee3..747bb8c 100644
---- a/tools/bcp/add_path.cpp
-+++ b/tools/bcp/add_path.cpp
-@@ -15,6 +15,7 @@
- #include "bcp_imp.hpp"
- #include "fileview.hpp"
- #include <boost/regex.hpp>
-+#include <boost/filesystem/directory.hpp>
- #include <boost/filesystem/operations.hpp>
- #include <boost/filesystem/exception.hpp>
- #include <iostream>
-@@ -24,8 +25,7 @@ void bcp_implementation::add_path(const fs::path& p)
- {
-    if (m_excluded.find(p) != m_excluded.end())
-       return;
--   fs::path normalized_path = p;
--    normalized_path.normalize();
-+   fs::path normalized_path = p.lexically_normal();
-    if(fs::exists(m_boost_path / normalized_path))
-    {
-       if(fs::is_directory(m_boost_path / normalized_path))
-@@ -45,12 +45,12 @@ void bcp_implementation::add_directory(const fs::path& p)
-    //
-    // Don't add files created by build system:
-    //
--   if((p.leaf() == "bin") || (p.leaf() == "bin-stage"))
-+   if((p.filename() == "bin") || (p.filename() == "bin-stage"))
-       return; 
-    //
-    // Don't add version control directories:
-    //
--   if((p.leaf() == "CVS") || (p.leaf() == ".svn"))
-+   if((p.filename() == "CVS") || (p.filename() == ".svn"))
-       return; 
-    //
-    // don't add directories not under version control:
-@@ -180,7 +180,7 @@ void bcp_implementation::add_file(const fs::path& p)
-          {
-             // only concatonate if it's a relative path
-             // rather than a URL:
--            fs::path dep(p.branch_path() / s);
-+            fs::path dep(p.parent_path() / s);
-             if(!m_dependencies.count(dep)) 
-             {
-                m_dependencies[dep] = p; // set up dependency tree
-@@ -355,13 +355,13 @@ void bcp_implementation::add_file_dependencies(const 
fs::path& p, bool scanfile)
-             continue;
-          }
-          include_file = i->str();
--         fs::path test_file(m_boost_path / p.branch_path() / include_file);
--         if(fs::exists(test_file) && !fs::is_directory(test_file) && 
(p.branch_path().string() != "boost"))
-+         fs::path test_file(m_boost_path / p.parent_path() / include_file);
-+         if(fs::exists(test_file) && !fs::is_directory(test_file) && 
(p.parent_path().string() != "boost"))
-          {
--            if(!m_dependencies.count(p.branch_path() / include_file)) 
-+            if(!m_dependencies.count(p.parent_path() / include_file)) 
-             {
--               m_dependencies[p.branch_path() / include_file] = p;
--               add_pending_path(p.branch_path() / include_file);
-+               m_dependencies[p.parent_path() / include_file] = p;
-+               add_pending_path(p.parent_path() / include_file);
-             }
-          }
-          else if(fs::exists(m_boost_path / include_file))
-@@ -405,13 +405,13 @@ void bcp_implementation::add_file_dependencies(const 
fs::path& p, bool scanfile)
-          ++i;
-          continue;
-       }
--      fs::path test_file(m_boost_path / p.branch_path() / include_file);
--      if(fs::exists(test_file) && !fs::is_directory(test_file) && 
(p.branch_path().string() != "boost"))
-+      fs::path test_file(m_boost_path / p.parent_path() / include_file);
-+      if(fs::exists(test_file) && !fs::is_directory(test_file) && 
(p.parent_path().string() != "boost"))
-       {
--         if(!m_dependencies.count(p.branch_path() / include_file)) 
-+         if(!m_dependencies.count(p.parent_path() / include_file)) 
-          {
--            m_dependencies[p.branch_path() / include_file] = p;
--            add_pending_path(p.branch_path() / include_file);
-+            m_dependencies[p.parent_path() / include_file] = p;
-+            add_pending_path(p.parent_path() / include_file);
-          }
-       }
-       else if(fs::exists(m_boost_path / include_file))
-diff --git a/tools/bcp/bcp_imp.hpp b/tools/bcp/bcp_imp.hpp
-index e515581..51c85ba 100644
---- a/tools/bcp/bcp_imp.hpp
-+++ b/tools/bcp/bcp_imp.hpp
-@@ -14,6 +14,7 @@
- #include <set>
- #include <map>
- #include <queue>
-+#include <string>
- #include <boost/filesystem/path.hpp>
- 
- namespace fs = boost::filesystem;
-diff --git a/tools/bcp/copy_path.cpp b/tools/bcp/copy_path.cpp
-index 4143c79..6b7a370 100644
---- a/tools/bcp/copy_path.cpp
-+++ b/tools/bcp/copy_path.cpp
-@@ -49,18 +49,18 @@ void bcp_implementation::copy_path(const fs::path& p)
-    if(fs::exists(m_dest_path / p))
-    {
-       std::cout << "Copying (and overwriting) file: " << p.string() << "\n";
--     fs::remove(m_dest_path / p);
-+      fs::remove(m_dest_path / p);
-    }
-    else
-       std::cout << "Copying file: " << p.string() << "\n";
-    //
-    // create the path to the new file if it doesn't already exist:
-    //
--   create_path(p.branch_path());
-+   create_path(p.parent_path());
-    //
-    // do text based copy if requested:
-    //
--   if((p.leaf() == "Jamroot") && m_namespace_name.size())
-+   if((p.filename() == "Jamroot") && m_namespace_name.size())
-    {
-       static std::vector<char> v1, v2;
-       v1.clear();
-@@ -240,7 +240,7 @@ void bcp_implementation::create_path(const fs::path& p)
-    if(!fs::exists(m_dest_path / p))
-    {
-       // recurse then create the path:
--      create_path(p.branch_path());
-+      create_path(p.parent_path());
-       fs::create_directory(m_dest_path / p);
-    }
- }
-diff --git a/tools/bcp/file_types.cpp b/tools/bcp/file_types.cpp
-index 297d304..69f6027 100644
---- a/tools/bcp/file_types.cpp
-+++ b/tools/bcp/file_types.cpp
-@@ -52,7 +52,7 @@ bool bcp_implementation::is_binary_file(const fs::path& p)
-       "|"
-       "(Jamfile|makefile|configure)",
-       boost::regex::perl | boost::regex::icase);
--   return !boost::regex_match(p.leaf().generic_string(), e);
-+   return !boost::regex_match(p.filename().generic_string(), e);
- 
- }
- 
-

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
deleted file mode 100644
index cfc1215e7023..000000000000
--- a/dev-libs/boost/files/boost-1.85.0-container-aliasing.patch
+++ /dev/null
@@ -1,408 +0,0 @@
-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?= <[email protected]>
-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)
-    {

diff --git a/dev-libs/boost/files/boost-1.85.0-python-numpy-2.patch 
b/dev-libs/boost/files/boost-1.85.0-python-numpy-2.patch
deleted file mode 100644
index e7a7d98b8573..000000000000
--- a/dev-libs/boost/files/boost-1.85.0-python-numpy-2.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-https://bugs.gentoo.org/932459
-https://github.com/boostorg/python/issues/431
-https://github.com/boostorg/python/pull/432
-
-From 33ac06ca59a68266d3d26edf08205d31ddab4a6c Mon Sep 17 00:00:00 2001
-From: Alexis DUBURCQ <[email protected]>
-Date: Fri, 15 Mar 2024 14:10:16 +0100
-Subject: [PATCH] Support numpy 2.0.0b1
-
---- a/libs/python/src/numpy/dtype.cpp
-+++ b/libs/python/src/numpy/dtype.cpp
-@@ -98,7 +98,13 @@ python::detail::new_reference dtype::convert(object const & 
arg, bool align)
-   return python::detail::new_reference(reinterpret_cast<PyObject*>(obj));
- }
- 
--int dtype::get_itemsize() const { return 
reinterpret_cast<PyArray_Descr*>(ptr())->elsize;}
-+int dtype::get_itemsize() const {
-+#if NPY_ABI_VERSION < 0x02000000
-+  return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;
-+#else
-+  return PyDataType_ELSIZE(reinterpret_cast<PyArray_Descr*>(ptr()));
-+#endif
-+}
- 
- bool equivalent(dtype const & a, dtype const & b) {
-     // On Windows x64, the behaviour described on 

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
deleted file mode 100644
index 9fcf80680989..000000000000
--- a/dev-libs/boost/files/boost-1.86.0-uuid-compute-backport.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4ab28f5b879c8a2335b851f5338b9012f4466dd0 Mon Sep 17 00:00:00 2001
-From: sehe <[email protected]>
-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();
-         }

diff --git a/dev-libs/boost/files/boost-1.87.0-move.patch 
b/dev-libs/boost/files/boost-1.87.0-move.patch
deleted file mode 100644
index 68d2abbcb690..000000000000
--- a/dev-libs/boost/files/boost-1.87.0-move.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-https://bugs.gentoo.org/948204
-https://github.com/boostorg/container/issues/292
-https://github.com/boostorg/move/issues/59
-https://github.com/boostorg/move/commit/5f073f8f00ee23b4502c0ad30a3aa2a5154cd1e8
-https://github.com/boostorg/move/commit/e9ff3ca0952e680871145f454925614d950cef4d
-
-From 5f073f8f00ee23b4502c0ad30a3aa2a5154cd1e8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= <[email protected]>
-Date: Fri, 28 Feb 2025 17:22:47 +0100
-Subject: [PATCH] FIxes #59 ("std_ns_begin.hpp: missing definition of
- BOOST_MOVE_STD_NS_BEG")
-
----
- include/boost/move/detail/std_ns_begin.hpp | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/include/boost/move/detail/std_ns_begin.hpp 
b/include/boost/move/detail/std_ns_begin.hpp
-index de13cde..90169c4 100644
---- a/boost/move/detail/std_ns_begin.hpp
-+++ b/boost/move/detail/std_ns_begin.hpp
-@@ -9,6 +9,7 @@
- #//
- 
#//////////////////////////////////////////////////////////////////////////////
- #
-+#include <boost/config.hpp>
- #if defined(_LIBCPP_VERSION)
-    #if defined(__clang__)
-       #define BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH
-@@ -26,6 +27,9 @@
- #elif defined(BOOST_DINKUMWARE_STDLIB)
-    #define BOOST_MOVE_STD_NS_BEG _STD_BEGIN
-    #define BOOST_MOVE_STD_NS_END _STD_END
-+#else
-+   #define BOOST_MOVE_STD_NS_BEG namespace std{
-+   #define BOOST_MOVE_STD_NS_END
- #endif
- 
- #if defined(_MSC_VER) && (_MSC_VER >= 1915)
-
-From e9ff3ca0952e680871145f454925614d950cef4d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= <[email protected]>
-Date: Fri, 28 Feb 2025 19:32:21 +0100
-Subject: [PATCH] Fix #59 again (missing BOOST_MOVE_STD_NS_END closing brace)
-
----
- include/boost/move/detail/std_ns_begin.hpp | 8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/include/boost/move/detail/std_ns_begin.hpp 
b/include/boost/move/detail/std_ns_begin.hpp
-index 90169c4..ef9b4b4 100644
---- a/boost/move/detail/std_ns_begin.hpp
-+++ b/boost/move/detail/std_ns_begin.hpp
-@@ -9,7 +9,9 @@
- #//
- 
#//////////////////////////////////////////////////////////////////////////////
- #
--#include <boost/config.hpp>
-+#ifndef BOOST_CONFIG_HPP
-+#  include <boost/config.hpp>
-+#endif
- #if defined(_LIBCPP_VERSION)
-    #if defined(__clang__)
-       #define BOOST_MOVE_STD_NS_GCC_DIAGNOSTIC_PUSH
-@@ -28,8 +30,8 @@
-    #define BOOST_MOVE_STD_NS_BEG _STD_BEGIN
-    #define BOOST_MOVE_STD_NS_END _STD_END
- #else
--   #define BOOST_MOVE_STD_NS_BEG namespace std{
--   #define BOOST_MOVE_STD_NS_END
-+   #define BOOST_MOVE_STD_NS_BEG namespace std {
-+   #define BOOST_MOVE_STD_NS_END }
- #endif
- 
- #if defined(_MSC_VER) && (_MSC_VER >= 1915)

diff --git a/dev-libs/boost/files/boost-1.87.0-smart_ptr-operator.patch 
b/dev-libs/boost/files/boost-1.87.0-smart_ptr-operator.patch
deleted file mode 100644
index 6a008d528a65..000000000000
--- a/dev-libs/boost/files/boost-1.87.0-smart_ptr-operator.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-https://github.com/boostorg/smart_ptr/issues/115
-https://github.com/boostorg/smart_ptr/commit/e7433ba54596da97cb7859455cd37ca140305a9c
-
-From e7433ba54596da97cb7859455cd37ca140305a9c Mon Sep 17 00:00:00 2001
-From: Peter Dimov <[email protected]>
-Date: Mon, 13 Jan 2025 16:13:04 +0200
-Subject: [PATCH] Fix operator<< for shared_ptr and intrusive_ptr. Fixes #115.
-
----
- include/boost/smart_ptr/intrusive_ptr.hpp | 2 +-
- include/boost/smart_ptr/shared_ptr.hpp    | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git boost/smart_ptr/intrusive_ptr.hpp boost/smart_ptr/intrusive_ptr.hpp
-index ddb20c0b0e..11b476513a 100644
---- a/boost/smart_ptr/intrusive_ptr.hpp
-+++ b/boost/smart_ptr/intrusive_ptr.hpp
-@@ -285,7 +285,7 @@ template<class T, class U> intrusive_ptr<T> 
dynamic_pointer_cast( intrusive_ptr<
- 
- // operator<<
- 
--template<class Y> std::ostream & operator<< (std::ostream & os, 
intrusive_ptr<Y> const & p)
-+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< 
(std::basic_ostream<E, T> & os, intrusive_ptr<Y> const & p)
- {
-     os << p.get();
-     return os;
-diff --git boost/smart_ptr/shared_ptr.hpp boost/smart_ptr/shared_ptr.hpp
-index 2431a33590..2deed9b632 100644
---- a/boost/smart_ptr/shared_ptr.hpp
-+++ b/boost/smart_ptr/shared_ptr.hpp
-@@ -775,7 +775,7 @@ template<class T> inline typename 
shared_ptr<T>::element_type * get_pointer(shar
- 
- // operator<<
- 
--template<class Y> std::ostream & operator<< (std::ostream & os, shared_ptr<Y> 
const & p)
-+template<class E, class T, class Y> std::basic_ostream<E, T> & operator<< 
(std::basic_ostream<E, T> & os, shared_ptr<Y> const & p)
- {
-     os << p.get();
-     return os;
-

diff --git a/dev-libs/boost/files/boost-1.87.0-solaris.patch 
b/dev-libs/boost/files/boost-1.87.0-solaris.patch
deleted file mode 100644
index f0c8f9fbfe63..000000000000
--- a/dev-libs/boost/files/boost-1.87.0-solaris.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-for Solaris, part from upstream commit
-https://github.com/boostorg/process/commit/bb375f50bd5b362b087aab326df158a440882e29
-
---- boost_1_87_0/libs/process/src/ext/cwd.cpp
-+++ boost_1_87_0/libs/process/src/ext/cwd.cpp
-@@ -124,7 +124,7 @@
-             filesystem::path("/proc") / std::to_string(pid) / "cwd", ec
-             );
- #elif defined(__sun)
--    return fileystem::canonical(
-+    return filesystem::canonical(
-             filesystem::path("/proc") / std::to_string(pid) / "path/cwd", ec
-             );
- #endif
---- boost_1_87_0/libs/process/src/ext/exe.cpp
-+++ boost_1_87_0/libs/process/src/ext/exe.cpp
-@@ -138,7 +138,7 @@
-             filesystem::path("/proc") / std::to_string(pid) / "exe", ec
-             );
- #elif defined(__sun)
--    return fileystem::canonical(
-+    return filesystem::canonical(
-             filesystem::path("/proc") / std::to_string(pid) / "path/a.out", ec
-             );
- #endif

diff --git a/dev-libs/boost/files/boost-1.87.0-thread-typo.patch 
b/dev-libs/boost/files/boost-1.87.0-thread-typo.patch
deleted file mode 100644
index 2674cffe9367..000000000000
--- a/dev-libs/boost/files/boost-1.87.0-thread-typo.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-https://bugs.gentoo.org/945916
-https://github.com/boostorg/thread/pull/408
-
-From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001
-From: Arvid Norlander <[email protected]>
-Date: Fri, 8 Nov 2024 16:48:43 +0100
-Subject: [PATCH] Fix build on clang-19 (which checks more things in
- uninstantiated templates)
-
-Fixes issue #402
----
- include/boost/thread/future.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp
-index 00f504b9b..d15d7ffa5 100644
---- a/boost/thread/future.hpp
-+++ b/boost/thread/future.hpp
-@@ -4668,7 +4668,7 @@ namespace detail
-       }
-       run_it& operator=(BOOST_THREAD_RV_REF(run_it) x) BOOST_NOEXCEPT {
-         if (this != &x) {
--          that_=x.that;
-+          that_=x.that_;
-           x.that_.reset();
-         }
-         return *this;
-

Reply via email to