summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/boost')
-rw-r--r--dev-libs/boost/Manifest5
-rw-r--r--dev-libs/boost/boost-1.84.0-r3.ebuild (renamed from dev-libs/boost/boost-1.76.0-r1.ebuild)139
-rw-r--r--dev-libs/boost/boost-1.85.0.ebuild (renamed from dev-libs/boost/boost-1.77.0-r4.ebuild)111
-rw-r--r--dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch29
-rw-r--r--dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch17
-rw-r--r--dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch125
-rw-r--r--dev-libs/boost/files/boost-1.76-boost-numpy.patch23
-rw-r--r--dev-libs/boost/files/boost-1.76-sparc-define.patch21
-rw-r--r--dev-libs/boost/files/boost-1.77.0-fix-process-include.patch19
-rw-r--r--dev-libs/boost/files/boost-1.77.0-python-3.10.patch44
-rw-r--r--dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch (renamed from dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch)0
-rw-r--r--dev-libs/boost/files/boost-1.79.0-context-x32.patch (renamed from dev-libs/boost/files/boost-1.71.0-context-x32.patch)11
-rw-r--r--dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch19
-rw-r--r--dev-libs/boost/files/boost-1.83.0-math-gcc14.patch19
-rw-r--r--dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch124
-rw-r--r--dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch19
-rw-r--r--dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch188
-rw-r--r--dev-libs/boost/metadata.xml137
18 files changed, 641 insertions, 409 deletions
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 05253944a437..48f0e20f3193 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,2 @@
-DIST boost-1.77.0-patches-1.tar.xz 9612 BLAKE2B b56e45cee94329c97e8ee4e6f040832829e63fb0ae47f02fb1aa54720311f56e68b4d4d53557952bb280d60316ecf64ffc1a1e9c9411b70a733690270b85c2d2 SHA512 1358fa6d3afa45fe414f0c11bb583cc8b95737405c6fc3831f7485e22edac990e98849c06c851a4d0fe26bbeec7b8b40103090dc80417ae717ba33caa2088d86
-DIST boost_1_76_0.tar.bz2 110073117 BLAKE2B 45445e6a9725cb99131e0b831b2fac0840d083692c13887b41adeac5cb8b3732026db3641d6be20591a676b78a87fcf363eb9b1508f87ed26039bba6a1ced533 SHA512 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429
-DIST boost_1_77_0.tar.bz2 110361537 BLAKE2B 106aeb09ec7705b595f2ca966a76c53c649eac6fac50d88c156862e0991c33c89a2f3a09edcbcb453fa44bf71cdde030b35d0a0889ad97b65f3a868cb877a532 SHA512 39b45c9b60bc5a2a4c669a4463d1272c1e093376b2fb374d7f20a84ea10a3e23bb04b335a735a83a04575731f874d9bff77e89acd947524b3fbbae1b26ae1f2f
+DIST boost_1_84_0.tar.bz2 123110547 BLAKE2B a872ee00402be0383726020f4d13a7df6c2765c52eac2e09aab1604432931d26dd597503f5dcbbf788d7e7528d13c6d1dbfff1e85d22bf92c7828ef74cf2405d SHA512 5dfeb35198bb096e46cf9e131ef0334cb95bc0bf09f343f291b860b112598b3c36111bd8c232439c401a2b2fb832fa0c399a8d5b96afc60bd359dff070154497
+DIST boost_1_85_0.tar.bz2 124015250 BLAKE2B dd72a9299cd78d2c260e1c94e28ba04daaa352f5bd023d99e43caa3540b1e0f8c09fc04b91f68db0ef8532e4a91fdef0b66a80bf0f9f838303bccaf0729bf581 SHA512 b4489813a4192b57626589457932338cfc47c4ec05c19b3a58b2d8df9e95f022ff2f5f452811ff82d1cec4fb0a490e991c8825bad0fb5a81318d07a8788d8ca0
diff --git a/dev-libs/boost/boost-1.76.0-r1.ebuild b/dev-libs/boost/boost-1.84.0-r3.ebuild
index fd0a7959b900..b9e822fe2043 100644
--- a/dev-libs/boost/boost-1.76.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.84.0-r3.ebuild
@@ -1,14 +1,19 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=7
+EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
+# Keep an eye on both of these after releases for patches:
+# * https://www.boost.org/patches/
+# * https://www.boost.org/users/history/version_${MY_PV}.html
+# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
+# Note that the latter may sometimes feature patches not on the former too.
+
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
MY_PV="$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
DESCRIPTION="Boost Libraries for C++"
HOMEPAGE="https://www.boost.org/"
@@ -16,12 +21,10 @@ SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_$
S="${WORKDIR}/${PN}_${MY_PV}"
LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
# the tests will never fail because these are not intended as sanity
# tests at all. They are more a way for upstream to check their own code
# on new compilers. Since they would either be completely unreliable
@@ -30,14 +33,11 @@ REQUIRED_USE="
RESTRICT="test"
RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ mpi? ( virtual/mpi[${MULTILIB_USEDEP},cxx,threads] )
python? (
${PYTHON_DEPS}
numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
@@ -45,27 +45,19 @@ RDEPEND="
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
-BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
+BDEPEND=">=dev-build/b2-5.0.0"
PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
- "${FILESDIR}"/${PN}-1.76-boost-numpy.patch
- "${FILESDIR}"/${PN}-1.76-sparc-define.patch
+ "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+
+ # upstreamed
+ "${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.84.0-signals2-patch1.patch
+ "${FILESDIR}"/${PN}-1.84.0-signals2-patch2.patch
)
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
create_user-config.jam() {
local user_config_jam="${BUILD_DIR}"/user-config.jam
if [[ -s ${user_config_jam} ]]; then
@@ -76,24 +68,19 @@ create_user-config.jam() {
fi
local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
+ 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>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
${mpi_configuration}
__EOF__
- if python_bindings_needed; then
+ if multilib_native_use python; then
append_to_user_config() {
local py_config
if tc-is-cross-compiler; then
@@ -106,7 +93,7 @@ create_user-config.jam() {
python_foreach_impl append_to_user_config
fi
- if python_bindings_needed && use numpy; then
+ 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"
@@ -141,7 +128,7 @@ ejam() {
create_user-config.jam
local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
+ if multilib_native_use python; then
append_to_b2_opts() {
b2_opts+=( python="${EPYTHON#python}" )
}
@@ -159,24 +146,29 @@ src_configure() {
# Workaround for too many parallel processes requested, bug #506064
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
OPTIONS=(
$(usex debug gentoodebug gentoorelease)
"-j$(makeopts_jobs)"
-q
-d+2
pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build/src
+ $(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=$(usex static-libs shared,static shared)
+ 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)
@@ -191,8 +183,18 @@ src_configure() {
append-ldflags -Wl,-headerpad_max_install_names
fi
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
+ # 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() {
@@ -200,7 +202,7 @@ multilib_src_compile() {
--prefix="${EPREFIX}"/usr \
"${OPTIONS[@]}" || die
- if tools_needed; then
+ if multilib_native_use tools; then
pushd tools >/dev/null || die
ejam \
--prefix="${EPREFIX}"/usr \
@@ -217,19 +219,7 @@ multilib_src_install() {
--libdir="${ED}"/usr/$(get_libdir) \
"${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
- pushd "${ED}"/usr/$(get_libdir) >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
+ if multilib_native_use tools; then
dobin dist/bin/*
insinto /usr/share
@@ -251,16 +241,24 @@ multilib_src_install() {
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_" | \
+ grep "libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
- ebegin " correcting reference to ${r}"
+ # 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}" \
+ "${EPREFIX}/usr/lib/${r_basename}" \
"${d}"
eend $?
done
@@ -278,7 +276,6 @@ multilib_src_install_all() {
if use mpi; then
move_mpi_py_into_sitedir() {
python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
diff --git a/dev-libs/boost/boost-1.77.0-r4.ebuild b/dev-libs/boost/boost-1.85.0.ebuild
index 1ff2d52c6c8e..30577a1da191 100644
--- a/dev-libs/boost/boost-1.77.0-r4.ebuild
+++ b/dev-libs/boost/boost-1.85.0.ebuild
@@ -1,25 +1,29 @@
-# Copyright 1999-2021 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
-PYTHON_COMPAT=( python3_{8..10} )
+# Keep an eye on both of these after releases for patches:
+# * https://www.boost.org/patches/
+# * https://www.boost.org/users/history/version_${MY_PV}.html
+# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
+# Note that the latter may sometimes feature patches not on the former too.
+
+PYTHON_COMPAT=( python3_{10..12} )
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
MY_PV="$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
DESCRIPTION="Boost Libraries for C++"
HOMEPAGE="https://www.boost.org/"
SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-patches-1.tar.xz"
S="${WORKDIR}/${PN}_${MY_PV}"
LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
# the tests will never fail because these are not intended as sanity
# tests at all. They are more a way for upstream to check their own code
@@ -29,14 +33,11 @@ REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="test"
RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ icu? ( dev-libs/icu:=[${MULTILIB_USEDEP}] )
!icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ mpi? ( virtual/mpi[${MULTILIB_USEDEP},cxx,threads] )
python? (
${PYTHON_DEPS}
numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
@@ -44,30 +45,14 @@ RDEPEND="
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}"
-BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
+BDEPEND=">=dev-build/b2-5.0.0"
PATCHES=(
- "${WORKDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${WORKDIR}"/${PN}-1.71.0-context-x32.patch
- "${WORKDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${WORKDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- "${WORKDIR}"/${PN}-1.74-CVE-2012-2677.patch
- "${WORKDIR}"/${PN}-1.76-sparc-define.patch
- "${WORKDIR}"/${PN}-1.77-math-deprecated-include.patch
- "${WORKDIR}"/${PN}-1.77-geometry.patch
- "${FILESDIR}"/${P}-python-3.10.patch
- "${FILESDIR}"/${P}-fix-process-include.patch
+ "${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
)
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
create_user-config.jam() {
local user_config_jam="${BUILD_DIR}"/user-config.jam
if [[ -s ${user_config_jam} ]]; then
@@ -78,24 +63,19 @@ create_user-config.jam() {
fi
local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
+ 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>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
${mpi_configuration}
__EOF__
- if python_bindings_needed; then
+ if multilib_native_use python; then
append_to_user_config() {
local py_config
if tc-is-cross-compiler; then
@@ -108,7 +88,7 @@ create_user-config.jam() {
python_foreach_impl append_to_user_config
fi
- if python_bindings_needed && use numpy; then
+ 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"
@@ -143,7 +123,7 @@ ejam() {
create_user-config.jam
local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
+ if multilib_native_use python; then
append_to_b2_opts() {
b2_opts+=( python="${EPYTHON#python}" )
}
@@ -161,18 +141,24 @@ src_configure() {
# Workaround for too many parallel processes requested, bug #506064
[[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
OPTIONS=(
$(usex debug gentoodebug gentoorelease)
"-j$(makeopts_jobs)"
-q
-d+2
pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
$(usev !mpi --without-mpi)
$(usev !nls --without-locale)
$(usev !context '--without-context --without-coroutine --without-fiber')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build/src
+ $(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
@@ -192,8 +178,18 @@ src_configure() {
append-ldflags -Wl,-headerpad_max_install_names
fi
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
+ # 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() {
@@ -201,7 +197,7 @@ multilib_src_compile() {
--prefix="${EPREFIX}"/usr \
"${OPTIONS[@]}" || die
- if tools_needed; then
+ if multilib_native_use tools; then
pushd tools >/dev/null || die
ejam \
--prefix="${EPREFIX}"/usr \
@@ -218,7 +214,7 @@ multilib_src_install() {
--libdir="${ED}"/usr/$(get_libdir) \
"${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
- if tools_needed; then
+ if multilib_native_use tools; then
dobin dist/bin/*
insinto /usr/share
@@ -240,16 +236,24 @@ multilib_src_install() {
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_" | \
+ grep "libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
- ebegin " correcting reference to ${r}"
+ # 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}" \
+ "${EPREFIX}/usr/lib/${r_basename}" \
"${d}"
eend $?
done
@@ -267,7 +271,6 @@ multilib_src_install_all() {
if use mpi; then
move_mpi_py_into_sitedir() {
python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
diff --git a/dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch
deleted file mode 100644
index 32faf8d0eb31..000000000000
--- a/dev-libs/boost/files/boost-1.71.0-disable_icu_rpath.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/libs/locale/build/Jamfile.v2
-+++ b/libs/locale/build/Jamfile.v2
-@@ -65,8 +65,8 @@
-
- if $(ICU_LINK)
- {
-- ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ;
-- ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ;
-+ ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
-+ ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
- }
- else
- {
-@@ -124,7 +124,6 @@
- <library>icuuc/<link>shared/<runtime-link>shared
- <library>icudt/<link>shared/<runtime-link>shared
- <library>icuin/<link>shared/<runtime-link>shared
-- <dll-path>$(ICU_PATH)/bin
- <runtime-link>shared ;
-
-
-@@ -183,7 +182,6 @@
- <library>icuuc_64/<link>shared/<runtime-link>shared
- <library>icudt_64/<link>shared/<runtime-link>shared
- <library>icuin_64/<link>shared/<runtime-link>shared
-- <dll-path>$(ICU_PATH)/bin64
- <runtime-link>shared ;
-
-
diff --git a/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch b/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch
deleted file mode 100644
index 444db2b60952..000000000000
--- a/dev-libs/boost/files/boost-1.73-boost-mpi-python-PEP-328.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/libs/mpi/build/__init__.py
-+++ b/libs/mpi/build/__init__.py
-@@ -1,10 +1,12 @@
-+from __future__ import absolute_import
-+
- import sys
- if sys.platform == 'linux2':
- import DLFCN as dl
- flags = sys.getdlopenflags()
- sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
-- import mpi
-+ from . import mpi
- sys.setdlopenflags(flags)
- else:
-- import mpi
-+ from . import mpi
-
diff --git a/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch b/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
deleted file mode 100644
index ff947f74f1c4..000000000000
--- a/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-https://src.fedoraproject.org/rpms/boost/raw/master/f/boost-1.58.0-pool.patch
-https://bugzilla.redhat.com/show_bug.cgi?id=828856
-https://bugs.gentoo.org/620468
-https://svn.boost.org/trac10/ticket/6701
-
-Index: boost/pool/pool.hpp
-===================================================================
---- a/boost/pool/pool.hpp (revision 78317)
-+++ b/boost/pool/pool.hpp (revision 78326)
-@@ -27,4 +27,6 @@
- #include <boost/pool/poolfwd.hpp>
-
-+// std::numeric_limits
-+#include <boost/limits.hpp>
- // boost::integer::static_lcm
- #include <boost/integer/common_factor_ct.hpp>
-@@ -358,4 +360,11 @@
- }
-
-+ size_type max_chunks() const
-+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool.
-+ size_type partition_size = alloc_size();
-+ size_type POD_size = integer::static_lcm<sizeof(size_type), sizeof(void *)>::value + sizeof(size_type);
-+ return (std::numeric_limits<size_type>::max() - POD_size) / alloc_size();
-+ }
-+
- static void * & nextof(void * const ptr)
- { //! \returns Pointer dereferenced.
-@@ -377,5 +388,7 @@
- //! the first time that object needs to allocate system memory.
- //! The default is 32. This parameter may not be 0.
-- //! \param nmax_size is the maximum number of chunks to allocate in one block.
-+ //! \param nmax_size is the maximum number of chunks to allocate in one block.
-+ set_next_size(nnext_size);
-+ set_max_size(nmax_size);
- }
-
-@@ -400,7 +413,7 @@
- }
- void set_next_size(const size_type nnext_size)
-- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
-- //! \returns nnext_size.
-- next_size = start_size = nnext_size;
-+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0.
-+ BOOST_USING_STD_MIN();
-+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks());
- }
- size_type get_max_size() const
-@@ -410,5 +423,6 @@
- void set_max_size(const size_type nmax_size)
- { //! Set max_size.
-- max_size = nmax_size;
-+ BOOST_USING_STD_MIN();
-+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks());
- }
- size_type get_requested_size() const
-@@ -713,7 +727,7 @@
- BOOST_USING_STD_MIN();
- if(!max_size)
-- next_size <<= 1;
-+ set_next_size(next_size << 1);
- else if( next_size*partition_size/requested_size < max_size)
-- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
-+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
-
- // initialize it,
-@@ -753,7 +767,7 @@
- BOOST_USING_STD_MIN();
- if(!max_size)
-- next_size <<= 1;
-+ set_next_size(next_size << 1);
- else if( next_size*partition_size/requested_size < max_size)
-- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
-+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
-
- // initialize it,
-@@ -797,4 +811,6 @@
- //! \returns Address of chunk n if allocated ok.
- //! \returns 0 if not enough memory for n chunks.
-+ if (n > max_chunks())
-+ return 0;
-
- const size_type partition_size = alloc_size();
-@@ -845,7 +861,7 @@
- BOOST_USING_STD_MIN();
- if(!max_size)
-- next_size <<= 1;
-+ set_next_size(next_size << 1);
- else if( next_size*partition_size/requested_size < max_size)
-- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size);
-+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size));
-
- // insert it into the list,
-Index: libs/pool/test/test_bug_6701.cpp
-===================================================================
---- a/libs/pool/test/test_bug_6701.cpp (revision 78326)
-+++ b/libs/pool/test/test_bug_6701.cpp (revision 78326)
-@@ -0,0 +1,27 @@
-+/* Copyright (C) 2012 Étienne Dupuis
-+*
-+* Use, modification and distribution is subject to the
-+* Boost Software License, Version 1.0. (See accompanying
-+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
-+*/
-+
-+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701)
-+
-+#include <boost/pool/object_pool.hpp>
-+#include <boost/limits.hpp>
-+
-+int main()
-+{
-+ boost::pool<> p(1024, std::numeric_limits<size_t>::max() / 768);
-+
-+ void *x = p.malloc();
-+ BOOST_ASSERT(!x);
-+
-+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_next_size());
-+ BOOST_ASSERT(std::numeric_limits<size_t>::max() / 1024 >= p.get_max_size());
-+
-+ void *y = p.ordered_malloc(std::numeric_limits<size_t>::max() / 768);
-+ BOOST_ASSERT(!y);
-+
-+ return 0;
-+}
diff --git a/dev-libs/boost/files/boost-1.76-boost-numpy.patch b/dev-libs/boost/files/boost-1.76-boost-numpy.patch
deleted file mode 100644
index d9af132039e4..000000000000
--- a/dev-libs/boost/files/boost-1.76-boost-numpy.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 0796305c863804a2b31610507c531da5c0408422 Mon Sep 17 00:00:00 2001
-From: Peter Dimov <pdimov@gmail.com>
-Date: Mon, 24 May 2021 22:14:55 +0300
-Subject: [PATCH] Use the /python//numpy target instead of [ numpy.include ]
- (fixes #361)
-
----
- libs/python/build/Jamfile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
-index dbc9fb203..03b69a25d 100644
---- a/libs/python/build/Jamfile
-+++ b/libs/python/build/Jamfile
-@@ -117,7 +117,7 @@ lib boost_numpy
- <define>BOOST_NUMPY_SOURCE
- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
- [ unless [ python.numpy ] : <build>no ]
-- <include>$(numpy-include)
-+ <library>/python//numpy
- <library>boost_python
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
diff --git a/dev-libs/boost/files/boost-1.76-sparc-define.patch b/dev-libs/boost/files/boost-1.76-sparc-define.patch
deleted file mode 100644
index b3909ee31376..000000000000
--- a/dev-libs/boost/files/boost-1.76-sparc-define.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-https://github.com/boostorg/predef/commit/1be0e4a2d8db15a405f64a6f65507b87c1be7e1a.patch
-
-From 1be0e4a2d8db15a405f64a6f65507b87c1be7e1a Mon Sep 17 00:00:00 2001
-From: tkoecker <tkoecker@gmx.net>
-Date: Fri, 21 May 2021 16:31:11 +0200
-Subject: [PATCH] added missing brackets (#118)
---- a/boost/predef/architecture/sparc.h
-+++ b/boost/predef/architecture/sparc.h
-@@ -34,10 +34,10 @@ Distributed under the Boost Software License, Version 1.0.
-
- #if defined(__sparc__) || defined(__sparc)
- # undef BOOST_ARCH_SPARC
--# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__)
-+# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv9) || defined(__sparc_v9__))
- # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(9,0,0)
- # endif
--# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__)
-+# if !defined(BOOST_ARCH_SPARC) && (defined(__sparcv8) || defined(__sparc_v8__))
- # define BOOST_ARCH_SPARC BOOST_VERSION_NUMBER(8,0,0)
- # endif
- # if !defined(BOOST_ARCH_SPARC)
diff --git a/dev-libs/boost/files/boost-1.77.0-fix-process-include.patch b/dev-libs/boost/files/boost-1.77.0-fix-process-include.patch
deleted file mode 100644
index 566603b360ac..000000000000
--- a/dev-libs/boost/files/boost-1.77.0-fix-process-include.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-https://github.com/boostorg/process/commit/e08374ed95ac33865bda40602c94909e7cd9607f.patch
-https://bugs.gentoo.org/827899
-
-From: Eddie-cz <48474051+Eddie-cz@users.noreply.github.com>
-Date: Mon, 2 Aug 2021 10:49:42 +0200
-Subject: [PATCH] Update wchar_t.hpp
-
---- a/boost/process/detail/traits/wchar_t.hpp
-+++ b/boost/process/detail/traits/wchar_t.hpp
-@@ -12,6 +12,8 @@
- #include <boost/process/detail/traits/env.hpp>
- #include <boost/process/locale.hpp>
-
-+#include <algorithm>
-+
- namespace boost { namespace process { namespace detail {
-
- //template
-
diff --git a/dev-libs/boost/files/boost-1.77.0-python-3.10.patch b/dev-libs/boost/files/boost-1.77.0-python-3.10.patch
deleted file mode 100644
index 69181b1fa42b..000000000000
--- a/dev-libs/boost/files/boost-1.77.0-python-3.10.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-https://github.com/boostorg/boost_install/commit/0605dadfacf51994dcd8c5c82fb733dc6fa24073
-
-From: Martin Jansa <martin.jansa@lge.com>
-Date: Tue, 19 Oct 2021 12:24:31 +0000
-Subject: [PATCH] BoostConfig.cmake: allow searching for python310
-
-* accept double digits in Python3_VERSION_MINOR
-
-* if someone is using e.g.:
- find_package(Python3 REQUIRED)
- find_package(Boost REQUIRED python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR})
-
- with python-3.10 then it currently fails with:
-
- -- Found PythonLibs: /usr/lib/libpython3.10.so (found version "3.10.0")
- -- Found Python3: -native/usr/bin/python3-native/python3 (found version "3.10.0") found components: Interpreter
- CMake Error at /usr/lib/cmake/Boost-1.77.0/BoostConfig.cmake:141 (find_package):
- Could not find a package configuration file provided by "boost_python310"
- (requested version 1.77.0) with any of the following names:
-
- boost_python310Config.cmake
- boost_python310-config.cmake
-
- Add the installation prefix of "boost_python310" to CMAKE_PREFIX_PATH or
- set "boost_python310_DIR" to a directory containing one of the above files.
- If "boost_python310" provides a separate development package or SDK, be
- sure it has been installed.
- Call Stack (most recent call first):
- /usr/lib/cmake/Boost-1.77.0/BoostConfig.cmake:258 (boost_find_component)
- /usr/share/cmake-3.21/Modules/FindBoost.cmake:594 (find_package)
- CMakeLists.txt:18 (find_package)
-
-Signed-off-by: Martin Jansa <martin.jansa@lge.com>
---- a/tools/boost_install/BoostConfig.cmake
-+++ b/tools/boost_install/BoostConfig.cmake
-@@ -113,7 +113,7 @@ macro(boost_find_component comp required quiet)
- set(_BOOST_REQUIRED REQUIRED)
- endif()
-
-- if("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9])$")
-+ if("${comp}" MATCHES "^(python|numpy|mpi_python)([1-9])([0-9][0-9]?)$")
-
- # handle pythonXY and numpyXY versioned components for compatibility
-
diff --git a/dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch b/dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch
index ca793b9d06eb..ca793b9d06eb 100644
--- a/dev-libs/boost/files/boost-1.71.0-build-auto_index-tool.patch
+++ b/dev-libs/boost/files/boost-1.79.0-build-auto_index-tool.patch
diff --git a/dev-libs/boost/files/boost-1.71.0-context-x32.patch b/dev-libs/boost/files/boost-1.79.0-context-x32.patch
index 9ee3d545d618..625599152328 100644
--- a/dev-libs/boost/files/boost-1.71.0-context-x32.patch
+++ b/dev-libs/boost/files/boost-1.79.0-context-x32.patch
@@ -1,3 +1,10 @@
+https://github.com/boostorg/context/pull/247
+
+From 922e033fa1464e506c82a0d6980103268f7197cf Mon Sep 17 00:00:00 2001
+From: David Seifert <soap@gentoo.org>
+Date: Tue, 23 Jan 2024 13:23:29 +0100
+Subject: [PATCH] Fix x32 build on x86-64
+
--- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S
+++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S
@@ -24,6 +24,10 @@
@@ -11,7 +18,7 @@
.file "jump_i386_sysv_elf_gas.S"
.text
.globl jump_fcontext
-@@ -81,3 +85,5 @@
+@@ -91,3 +95,5 @@ jump_fcontext:
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
@@ -30,7 +37,7 @@
.file "make_i386_sysv_elf_gas.S"
.text
.globl make_fcontext
-@@ -105,3 +109,5 @@
+@@ -111,3 +115,5 @@ finish:
/* Mark that we don't need executable stack. */
.section .note.GNU-stack,"",%progbits
diff --git a/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch
new file mode 100644
index 000000000000..a64d2d8675ee
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.81.0-disable_icu_rpath.patch
@@ -0,0 +1,19 @@
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
+@@ -99,16 +99,6 @@ if $(.icu-path)
+ rule path_options ( properties * )
+ {
+ local result ;
+- if <address-model>64 in $(properties) && <toolset>msvc in $(properties)
+- {
+- debug-message Search 64 bit ICU in "$(.icu-path)/lib64" ;
+- result = <search>$(.icu-path)/bin64 <search>$(.icu-path)/lib64 ;
+- }
+- else
+- {
+- debug-message Search ICU in "$(.icu-path)/lib" ;
+- result = <search>$(.icu-path)/bin <search>$(.icu-path)/lib ;
+- }
+ return $(result) ;
+ }
+
diff --git a/dev-libs/boost/files/boost-1.83.0-math-gcc14.patch b/dev-libs/boost/files/boost-1.83.0-math-gcc14.patch
new file mode 100644
index 000000000000..935f1486bfee
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.83.0-math-gcc14.patch
@@ -0,0 +1,19 @@
+https://github.com/boostorg/math/pull/1057
+
+From b3a21bcbcbd95c23da594ff53c3a48e38f0ff9f3 Mon Sep 17 00:00:00 2001
+From: Matt Borland <matt@mattborland.com>
+Date: Wed, 13 Dec 2023 08:43:43 +0100
+Subject: [PATCH] Fix cstdfloat numeric limits detection macro for libstdc++14
+
+--- a/boost/math/cstdfloat/cstdfloat_limits.hpp
++++ b/boost/math/cstdfloat/cstdfloat_limits.hpp
+@@ -24,7 +24,7 @@
+ #pragma GCC system_header
+ #endif
+
+- #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) && (!defined(__GNUC__) || (defined(__GNUC__) && __GNUC__ < 14))
++ #if defined(BOOST_CSTDFLOAT_HAS_INTERNAL_FLOAT128_T) && defined(BOOST_MATH_USE_FLOAT128) && !defined(BOOST_CSTDFLOAT_NO_LIBQUADMATH_SUPPORT) && (!defined(_GLIBCXX_RELEASE) || (defined(_GLIBCXX_RELEASE) && _GLIBCXX_RELEASE < 14))
+
+ #include <limits>
+ #include <boost/math/tools/nothrow.hpp>
+
diff --git a/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch b/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch
new file mode 100644
index 000000000000..9c07bd8f06cf
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.84.0-signals2-patch1.patch
@@ -0,0 +1,124 @@
+https://github.com/boostorg/signals2/issues/70
+
+From 2ba258f7b465e7bde14663ca3a966019b4ec3694 Mon Sep 17 00:00:00 2001
+From: Frank Mori Hess <fmh6jj@gmail.com>
+Date: Sat, 30 Dec 2023 14:34:58 -0500
+Subject: [PATCH] Fix disconnect by slot when the slot is another signal.
+
+--- a/boost/signals2/detail/signal_template.hpp
++++ b/boost/signals2/detail/signal_template.hpp
+@@ -103,9 +103,9 @@ namespace boost
+ BOOST_SIGNALS2_FORWARDED_ARGS(BOOST_SIGNALS2_NUM_ARGS));
+ }
+ template<typename T>
+- bool operator==(const T &other) const
++ bool contains(const T &other) const
+ {
+- return _fun == other;
++ return _fun.contains(other);
+ }
+ private:
+ BOOST_SIGNALS2_BOUND_EXTENDED_SLOT_FUNCTION_N(BOOST_SIGNALS2_NUM_ARGS)()
+@@ -115,6 +115,8 @@ namespace boost
+ boost::shared_ptr<connection> _connection;
+ };
+
++ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
++ class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
+ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
+ class BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
+
+@@ -150,6 +152,8 @@ namespace boost
+ typedef GroupCompare group_compare_type;
+ typedef typename detail::slot_call_iterator_t<slot_invoker,
+ typename connection_list_type::iterator, connection_body<group_key_type, slot_type, Mutex> > slot_call_iterator;
++ typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
++ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> weak_signal_type;
+
+ BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(const combiner_type &combiner_arg,
+ const group_compare_type &group_compare):
+@@ -531,13 +535,20 @@ namespace boost
+ {
+ (*it)->nolock_disconnect(lock);
+ }else
+- {
+- // check for wrapped extended slot
++ { // check for wrapped extended slot
+ bound_extended_slot_function_type *fp;
+ fp = (*it)->slot().slot_function().template target<bound_extended_slot_function_type>();
+- if(fp && function_equal(*fp, slot))
++ if(fp && fp->contains(slot))
+ {
+ (*it)->nolock_disconnect(lock);
++ }else
++ { // check for wrapped signal
++ weak_signal_type *fp;
++ fp = (*it)->slot().slot_function().template target<weak_signal_type>();
++ if(fp && fp->contains(slot))
++ {
++ (*it)->nolock_disconnect(lock);
++ }
+ }
+ }
+ }
+@@ -588,8 +599,6 @@ namespace boost
+ const boost::shared_ptr<mutex_type> _mutex;
+ };
+
+- template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DECL(BOOST_SIGNALS2_NUM_ARGS)>
+- class BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS);
+ }
+
+ template<BOOST_SIGNALS2_SIGNAL_TEMPLATE_DEFAULTED_DECL(BOOST_SIGNALS2_NUM_ARGS)>
+@@ -603,8 +612,7 @@ namespace boost
+ typedef detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> impl_class;
+ public:
+- typedef detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+- <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> weak_signal_type;
++ typedef typename impl_class::weak_signal_type weak_signal_type;
+ friend class detail::BOOST_SIGNALS2_WEAK_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION>;
+
+@@ -746,12 +754,24 @@ namespace boost
+ using std::swap;
+ swap(_pimpl, other._pimpl);
+ }
++ bool operator==(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) const
++ {
++ return _pimpl.get() == other._pimpl.get();
++ }
+ protected:
+ virtual shared_ptr<void> lock_pimpl() const
+ {
+ return _pimpl;
+ }
+ private:
++ // explicit private copy constructor to avoid compiler trying to do implicit conversions to signal
++ explicit BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)(
++ const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS) & other) BOOST_NOEXCEPT
++ {
++ // noncopyable
++ BOOST_ASSERT(false);
++ }
++
+ shared_ptr<impl_class>
+ _pimpl;
+ };
+@@ -802,6 +822,16 @@ namespace boost
+ shared_pimpl(_weak_pimpl.lock());
+ return (*shared_pimpl)(BOOST_SIGNALS2_SIGNATURE_ARG_NAMES(BOOST_SIGNALS2_NUM_ARGS));
+ }
++ bool contains(const BOOST_SIGNALS2_SIGNAL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
++ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> &signal) const
++ {
++ return _weak_pimpl.lock().get() == signal._pimpl.get();
++ }
++ template <typename T>
++ bool contains(const T&) const
++ {
++ return false;
++ }
+ private:
+ boost::weak_ptr<detail::BOOST_SIGNALS2_SIGNAL_IMPL_CLASS_NAME(BOOST_SIGNALS2_NUM_ARGS)
+ <BOOST_SIGNALS2_SIGNAL_TEMPLATE_INSTANTIATION> > _weak_pimpl;
diff --git a/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch b/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch
new file mode 100644
index 000000000000..f277ae9973a1
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.84.0-signals2-patch2.patch
@@ -0,0 +1,19 @@
+https://github.com/boostorg/signals2/issues/70
+
+From 4d994bbed820882059c7842ba5e230a26d68f2f0 Mon Sep 17 00:00:00 2001
+From: Frank Mori Hess <fmh6jj@gmail.com>
+Date: Sat, 30 Dec 2023 14:51:49 -0500
+Subject: [PATCH] Fix disconnect by slot when slot is wrapped in a
+ boost::reference_wrapper
+
+--- a/boost/signals2/detail/signal_template.hpp
++++ b/boost/signals2/detail/signal_template.hpp
+@@ -223,7 +223,7 @@ namespace boost
+ void disconnect(const T &slot)
+ {
+ typedef mpl::bool_<(is_convertible<T, group_type>::value)> is_group;
+- do_disconnect(slot, is_group());
++ do_disconnect(unwrap_ref(slot), is_group());
+ }
+ // emit signal
+ result_type operator ()(BOOST_SIGNALS2_SIGNATURE_FULL_ARGS(BOOST_SIGNALS2_NUM_ARGS))
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
new file mode 100644
index 000000000000..23d94040341d
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-bcp-filesystem.patch
@@ -0,0 +1,188 @@
+https://bugs.gentoo.org/932240
+https://github.com/boostorg/bcp/commit/cd21e9b4a749a77c24facf2da44f01e032c40842
+
+From cd21e9b4a749a77c24facf2da44f01e032c40842 Mon Sep 17 00:00:00 2001
+From: Andrey Semashev <andrey.semashev@gmail.com>
+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/metadata.xml b/dev-libs/boost/metadata.xml
index f787dd7a4b77..ba1a98dcc43b 100644
--- a/dev-libs/boost/metadata.xml
+++ b/dev-libs/boost/metadata.xml
@@ -15,11 +15,146 @@
<flag name="doc">Install the full API documentation documentation. This takes over 200MB of extra disk space.</flag>
<flag name="nls">Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries.</flag>
<flag name="numpy">Optionally build NumPy extensions when Boost.Python is enabled</flag>
- <flag name="threads">Build multi-thread-compatible libraries instead of single-threaded only.</flag>
+ <flag name="stacktrace">Build the full Boost.Stacktrace dynamic library instead of relying on the header-only implementation</flag>
<flag name="tools">Build and install the boost tools (bcp, quickbook, inspect, wave)</flag>
</use>
<upstream>
<remote-id type="cpe">cpe:/a:boost:boost</remote-id>
+ <!-- for x in $(find /usr/include/boost -maxdepth 1 -type d | cut -d/ -f5 | sort -u) ; do echo -e "\t\t<remote-id type=\"github\">boostorg/${x}</remote-id>"; done -->
+ <remote-id type="github">boostorg/boost</remote-id>
+ <remote-id type="github">boostorg/accumulators</remote-id>
+ <remote-id type="github">boostorg/algorithm</remote-id>
+ <remote-id type="github">boostorg/align</remote-id>
+ <remote-id type="github">boostorg/any</remote-id>
+ <remote-id type="github">boostorg/archive</remote-id>
+ <remote-id type="github">boostorg/asio</remote-id>
+ <remote-id type="github">boostorg/assert</remote-id>
+ <remote-id type="github">boostorg/assign</remote-id>
+ <remote-id type="github">boostorg/atomic</remote-id>
+ <remote-id type="github">boostorg/beast</remote-id>
+ <remote-id type="github">boostorg/bimap</remote-id>
+ <remote-id type="github">boostorg/bind</remote-id>
+ <remote-id type="github">boostorg/callable_traits</remote-id>
+ <remote-id type="github">boostorg/chrono</remote-id>
+ <remote-id type="github">boostorg/circular_buffer</remote-id>
+ <remote-id type="github">boostorg/compatibility</remote-id>
+ <remote-id type="github">boostorg/compute</remote-id>
+ <remote-id type="github">boostorg/concept</remote-id>
+ <remote-id type="github">boostorg/concept_check</remote-id>
+ <remote-id type="github">boostorg/config</remote-id>
+ <remote-id type="github">boostorg/container</remote-id>
+ <remote-id type="github">boostorg/container_hash</remote-id>
+ <remote-id type="github">boostorg/context</remote-id>
+ <remote-id type="github">boostorg/contract</remote-id>
+ <remote-id type="github">boostorg/convert</remote-id>
+ <remote-id type="github">boostorg/core</remote-id>
+ <remote-id type="github">boostorg/coroutine</remote-id>
+ <remote-id type="github">boostorg/coroutine2</remote-id>
+ <remote-id type="github">boostorg/date_time</remote-id>
+ <remote-id type="github">boostorg/describe</remote-id>
+ <remote-id type="github">boostorg/detail</remote-id>
+ <remote-id type="github">boostorg/dll</remote-id>
+ <remote-id type="github">boostorg/dynamic_bitset</remote-id>
+ <remote-id type="github">boostorg/endian</remote-id>
+ <remote-id type="github">boostorg/exception</remote-id>
+ <remote-id type="github">boostorg/fiber</remote-id>
+ <remote-id type="github">boostorg/filesystem</remote-id>
+ <remote-id type="github">boostorg/flyweight</remote-id>
+ <remote-id type="github">boostorg/format</remote-id>
+ <remote-id type="github">boostorg/function</remote-id>
+ <remote-id type="github">boostorg/functional</remote-id>
+ <remote-id type="github">boostorg/function_types</remote-id>
+ <remote-id type="github">boostorg/fusion</remote-id>
+ <remote-id type="github">boostorg/geometry</remote-id>
+ <remote-id type="github">boostorg/gil</remote-id>
+ <remote-id type="github">boostorg/graph</remote-id>
+ <remote-id type="github">boostorg/hana</remote-id>
+ <remote-id type="github">boostorg/heap</remote-id>
+ <remote-id type="github">boostorg/histogram</remote-id>
+ <remote-id type="github">boostorg/hof</remote-id>
+ <remote-id type="github">boostorg/icl</remote-id>
+ <remote-id type="github">boostorg/integer</remote-id>
+ <remote-id type="github">boostorg/interprocess</remote-id>
+ <remote-id type="github">boostorg/intrusive</remote-id>
+ <remote-id type="github">boostorg/io</remote-id>
+ <remote-id type="github">boostorg/iostreams</remote-id>
+ <remote-id type="github">boostorg/iterator</remote-id>
+ <remote-id type="github">boostorg/json</remote-id>
+ <remote-id type="github">boostorg/lambda</remote-id>
+ <remote-id type="github">boostorg/lambda2</remote-id>
+ <remote-id type="github">boostorg/leaf</remote-id>
+ <remote-id type="github">boostorg/lexical_cast</remote-id>
+ <remote-id type="github">boostorg/locale</remote-id>
+ <remote-id type="github">boostorg/local_function</remote-id>
+ <remote-id type="github">boostorg/lockfree</remote-id>
+ <remote-id type="github">boostorg/log</remote-id>
+ <remote-id type="github">boostorg/logic</remote-id>
+ <remote-id type="github">boostorg/math</remote-id>
+ <remote-id type="github">boostorg/metaparse</remote-id>
+ <remote-id type="github">boostorg/move</remote-id>
+ <remote-id type="github">boostorg/mp11</remote-id>
+ <remote-id type="github">boostorg/mpi</remote-id>
+ <remote-id type="github">boostorg/mpl</remote-id>
+ <remote-id type="github">boostorg/msm</remote-id>
+ <remote-id type="github">boostorg/multi_array</remote-id>
+ <remote-id type="github">boostorg/multi_index</remote-id>
+ <remote-id type="github">boostorg/multiprecision</remote-id>
+ <remote-id type="github">boostorg/nowide</remote-id>
+ <remote-id type="github">boostorg/numeric</remote-id>
+ <remote-id type="github">boostorg/optional</remote-id>
+ <remote-id type="github">boostorg/outcome</remote-id>
+ <remote-id type="github">boostorg/parameter</remote-id>
+ <remote-id type="github">boostorg/pending</remote-id>
+ <remote-id type="github">boostorg/pfr</remote-id>
+ <remote-id type="github">boostorg/phoenix</remote-id>
+ <remote-id type="github">boostorg/poly_collection</remote-id>
+ <remote-id type="github">boostorg/polygon</remote-id>
+ <remote-id type="github">boostorg/pool</remote-id>
+ <remote-id type="github">boostorg/predef</remote-id>
+ <remote-id type="github">boostorg/preprocessor</remote-id>
+ <remote-id type="github">boostorg/process</remote-id>
+ <remote-id type="github">boostorg/program_options</remote-id>
+ <remote-id type="github">boostorg/property_map</remote-id>
+ <remote-id type="github">boostorg/property_tree</remote-id>
+ <remote-id type="github">boostorg/proto</remote-id>
+ <remote-id type="github">boostorg/ptr_container</remote-id>
+ <remote-id type="github">boostorg/python</remote-id>
+ <remote-id type="github">boostorg/qvm</remote-id>
+ <remote-id type="github">boostorg/random</remote-id>
+ <remote-id type="github">boostorg/range</remote-id>
+ <remote-id type="github">boostorg/ratio</remote-id>
+ <remote-id type="github">boostorg/regex</remote-id>
+ <remote-id type="github">boostorg/safe_numerics</remote-id>
+ <remote-id type="github">boostorg/serialization</remote-id>
+ <remote-id type="github">boostorg/signals2</remote-id>
+ <remote-id type="github">boostorg/smart_ptr</remote-id>
+ <remote-id type="github">boostorg/sort</remote-id>
+ <remote-id type="github">boostorg/spirit</remote-id>
+ <remote-id type="github">boostorg/stacktrace</remote-id>
+ <remote-id type="github">boostorg/statechart</remote-id>
+ <remote-id type="github">boostorg/static_string</remote-id>
+ <remote-id type="github">boostorg/stl_interfaces</remote-id>
+ <remote-id type="github">boostorg/system</remote-id>
+ <remote-id type="github">boostorg/test</remote-id>
+ <remote-id type="github">boostorg/thread</remote-id>
+ <remote-id type="github">boostorg/timer</remote-id>
+ <remote-id type="github">boostorg/tti</remote-id>
+ <remote-id type="github">boostorg/tuple</remote-id>
+ <remote-id type="github">boostorg/type_erasure</remote-id>
+ <remote-id type="github">boostorg/type_index</remote-id>
+ <remote-id type="github">boostorg/typeof</remote-id>
+ <remote-id type="github">boostorg/type_traits</remote-id>
+ <remote-id type="github">boostorg/units</remote-id>
+ <remote-id type="github">boostorg/unordered</remote-id>
+ <remote-id type="github">boostorg/utility</remote-id>
+ <remote-id type="github">boostorg/uuid</remote-id>
+ <remote-id type="github">boostorg/variant</remote-id>
+ <remote-id type="github">boostorg/variant2</remote-id>
+ <remote-id type="github">boostorg/vmd</remote-id>
+ <remote-id type="github">boostorg/wave</remote-id>
+ <remote-id type="github">boostorg/winapi</remote-id>
+ <remote-id type="github">boostorg/xpressive</remote-id>
+ <remote-id type="github">boostorg/yap</remote-id>
<remote-id type="sourceforge">boost</remote-id>
</upstream>
</pkgmetadata>