dev-libs/boost: Sync with gentoo

It's from gentoo commit 80aab75a103a5976b57d67abbdb052fe4c8d4ef0.
This commit is contained in:
Krzesimir Nowak 2021-11-30 17:34:40 +01:00
parent 0eebccc2db
commit e9744e6291
9 changed files with 242 additions and 328 deletions

View File

@ -1,2 +1,3 @@
DIST boost_1_74_0.tar.bz2 109600630 BLAKE2B 2982f64fccf6fdb3b4b74452e603f459242d7abb42df4162278d9b558b637786a2eb97442126967b19088d591777c64ced8f60a23e71eaa0b7545e80f800de63 SHA512 4ec9c1164ec9b95ce46ba1c073e586c94b3882dce5b7347ea14bbef0c1da230e12aa5328a501ce38cae1b1d7623daa3246325625899179b4cc309242540982a4 DIST boost-1.77.0-patches-1.tar.xz 9612 BLAKE2B b56e45cee94329c97e8ee4e6f040832829e63fb0ae47f02fb1aa54720311f56e68b4d4d53557952bb280d60316ecf64ffc1a1e9c9411b70a733690270b85c2d2 SHA512 1358fa6d3afa45fe414f0c11bb583cc8b95737405c6fc3831f7485e22edac990e98849c06c851a4d0fe26bbeec7b8b40103090dc80417ae717ba33caa2088d86
DIST boost_1_75_0.tar.bz2 121849575 BLAKE2B ce7ecd8bcee518ce54f7e5302f202acbea60cedd6ae9248708c0bb5bbc2713607b2e1967a9e6f77cc20a4c008c1ee4db651def55937efc80407487a7a44fa8d6 SHA512 d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a DIST boost_1_76_0.tar.bz2 110073117 BLAKE2B 45445e6a9725cb99131e0b831b2fac0840d083692c13887b41adeac5cb8b3732026db3641d6be20591a676b78a87fcf363eb9b1508f87ed26039bba6a1ced533 SHA512 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429
DIST boost_1_77_0.tar.bz2 110361537 BLAKE2B 106aeb09ec7705b595f2ca966a76c53c649eac6fac50d88c156862e0991c33c89a2f3a09edcbcb453fa44bf71cdde030b35d0a0889ad97b65f3a868cb877a532 SHA512 39b45c9b60bc5a2a4c669a4463d1272c1e093376b2fb374d7f20a84ea10a3e23bb04b335a735a83a04575731f874d9bff77e89acd947524b3fbbae1b26ae1f2f

View File

@ -3,7 +3,7 @@
EAPI=7 EAPI=7
PYTHON_COMPAT=(python3_6) PYTHON_COMPAT=( python3_{8..10} )
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
@ -12,16 +12,16 @@ MAJOR_V="$(ver_cut 1-2)"
DESCRIPTION="Boost Libraries for C++" DESCRIPTION="Boost Libraries for C++"
HOMEPAGE="https://www.boost.org/" HOMEPAGE="https://www.boost.org/"
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2" SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
S="${WORKDIR}/${PN}_${MY_PV}"
LICENSE="Boost-1.0" LICENSE="Boost-1.0"
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122 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" 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" IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
REQUIRED_USE=" REQUIRED_USE="
mpi? ( threads ) mpi? ( threads )
python? ( ${PYTHON_REQUIRED_USE} )" python? ( ${PYTHON_REQUIRED_USE} )"
# the tests will never fail because these are not intended as sanity # 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 # 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 # on new compilers. Since they would either be completely unreliable
@ -45,9 +45,7 @@ RDEPEND="
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}" DEPEND="${RDEPEND}"
BDEPEND="=dev-util/boost-build-${MAJOR_V}*" BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
S="${WORKDIR}/${PN}_${MY_PV}"
PATCHES=( PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
@ -55,9 +53,9 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
# Boost.MPI's __init__.py doesn't work on Py3 # Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
# Remove annoying #pragma message
"${FILESDIR}"/${PN}-1.73-property-tree-include.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
"${FILESDIR}"/${PN}-1.76-boost-numpy.patch
"${FILESDIR}"/${PN}-1.76-sparc-define.patch
) )
python_bindings_needed() { python_bindings_needed() {
@ -173,13 +171,8 @@ src_configure() {
$(usex context '' '--without-context --without-coroutine --without-fiber') $(usex context '' '--without-context --without-coroutine --without-fiber')
$(usex threads '' '--without-thread') $(usex threads '' '--without-thread')
--without-stacktrace --without-stacktrace
--boost-build="${BROOT}"/usr/share/boost-build --boost-build="${BROOT}"/usr/share/boost-build/src
--prefix="${ED}/usr"
--layout=system --layout=system
# CMake has issues working with multiple python impls,
# disable cmake config generation for the time being
# https://github.com/boostorg/python/issues/262#issuecomment-483069294
--no-cmake-config
# building with threading=single is currently not possible # building with threading=single is currently not possible
# https://svn.boost.org/trac/boost/ticket/7105 # https://svn.boost.org/trac/boost/ticket/7105
threading=multi threading=multi
@ -203,17 +196,79 @@ src_configure() {
} }
multilib_src_compile() { multilib_src_compile() {
ejam "${OPTIONS[@]}" || die ejam \
--prefix="${EPREFIX}"/usr \
"${OPTIONS[@]}" || die
if tools_needed; then if tools_needed; then
pushd tools >/dev/null || die pushd tools >/dev/null || die
ejam \ ejam \
--prefix="${EPREFIX}"/usr \
"${OPTIONS[@]}" \ "${OPTIONS[@]}" \
|| die "Building of Boost tools failed" || die "Building of Boost tools failed"
popd >/dev/null || die popd >/dev/null || die
fi 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"
pushd "${ED}"/usr/$(get_libdir) >/dev/null || die
local ext=$(get_libname)
if use threads; then
local f
for f in *${ext}; do
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
done
fi
popd >/dev/null || die
if tools_needed; then
dobin dist/bin/*
insinto /usr/share
doins -r dist/share/boostbook
fi
# boost's build system truely sucks for not having a destdir. Because for
# this reason we are forced to build with a prefix that includes the
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
# DESTROOT instread of the actual EPREFIX. There is no way out of here
# but to do it the dirty way of manually setting the right install_names.
if [[ ${CHOST} == *-darwin* ]]; then
einfo "Working around completely broken build-system(tm)"
local d
for d in "${ED}"/usr/lib/*.dylib; do
if [[ -f ${d} ]]; then
# fix the "soname"
ebegin " correcting install_name of ${d#${ED}}"
install_name_tool -id "/${d#${D}}" "${d}"
eend $?
# fix references to other libs
refs=$(otool -XL "${d}" | \
sed -e '1d' -e 's/^\t//' | \
grep "^libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
ebegin " correcting reference to ${r}"
install_name_tool -change \
"${r}" \
"${EPREFIX}/usr/lib/${r}" \
"${d}"
eend $?
done
fi
done
fi
}
multilib_src_install_all() { multilib_src_install_all() {
if ! use numpy; then if ! use numpy; then
rm -r "${ED}"/usr/include/boost/python/numpy* || die rm -r "${ED}"/usr/include/boost/python/numpy* || die
@ -266,67 +321,8 @@ multilib_src_install_all() {
fi fi
} }
multilib_src_install() {
ejam \
"${OPTIONS[@]}" \
--includedir="${ED}/usr/include" \
--libdir="${ED}/usr/$(get_libdir)" \
install || die "Installation of Boost libraries failed"
pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
local ext=$(get_libname)
if use threads; then
local f
for f in *${ext}; do
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
done
fi
popd >/dev/null || die
if tools_needed; then
dobin dist/bin/*
insinto /usr/share
doins -r dist/share/boostbook
fi
# boost's build system truely sucks for not having a destdir. Because for
# this reason we are forced to build with a prefix that includes the
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
# DESTROOT instread of the actual EPREFIX. There is no way out of here
# but to do it the dirty way of manually setting the right install_names.
if [[ ${CHOST} == *-darwin* ]]; then
einfo "Working around completely broken build-system(tm)"
local d
for d in "${ED}"/usr/lib/*.dylib; do
if [[ -f ${d} ]]; then
# fix the "soname"
ebegin " correcting install_name of ${d#${ED}}"
install_name_tool -id "/${d#${D}}" "${d}"
eend $?
# fix references to other libs
refs=$(otool -XL "${d}" | \
sed -e '1d' -e 's/^\t//' | \
grep "^libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
ebegin " correcting reference to ${r}"
install_name_tool -change \
"${r}" \
"${EPREFIX}/usr/lib/${r}" \
"${d}"
eend $?
done
fi
done
fi
}
pkg_preinst() { pkg_preinst() {
# Yai for having symlinks that are nigh-impossible to remove without # Yay for having symlinks that are nigh-impossible to remove without
# resorting to dirty hacks like these. Removes lingering symlinks # resorting to dirty hacks like these. Removes lingering symlinks
# from the slotted versions. # from the slotted versions.
local symlink local symlink
@ -350,7 +346,7 @@ pkg_postinst() {
elog elog
elog "Then you need to recompile Boost and all its reverse dependencies" 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 "using the same toolchain. In general, *every* change of the C++ toolchain"
elog "requires a complete rebuild of the boost-dependent ecosystem." elog "requires a complete rebuild of the Boost-dependent ecosystem."
elog elog
elog "See for instance https://bugs.gentoo.org/638138" elog "See for instance https://bugs.gentoo.org/638138"
} }

View File

@ -1,9 +1,9 @@
# Copyright 1999-2021 Gentoo Authors # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
EAPI=7 EAPI=8
PYTHON_COMPAT=(python3_6) PYTHON_COMPAT=( python3_{8..10} )
inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
@ -12,16 +12,15 @@ MAJOR_V="$(ver_cut 1-2)"
DESCRIPTION="Boost Libraries for C++" DESCRIPTION="Boost Libraries for C++"
HOMEPAGE="https://www.boost.org/" HOMEPAGE="https://www.boost.org/"
SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2" 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" LICENSE="Boost-1.0"
SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122 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 ~x86-solaris ~x86-winnt" 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 static-libs +threads tools zlib zstd" IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
REQUIRED_USE=" REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
mpi? ( threads )
python? ( ${PYTHON_REQUIRED_USE} )"
# the tests will never fail because these are not intended as sanity # 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 # 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 # on new compilers. Since they would either be completely unreliable
@ -40,27 +39,24 @@ RDEPEND="
mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
python? ( python? (
${PYTHON_DEPS} ${PYTHON_DEPS}
numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) ) numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
) )
zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
DEPEND="${RDEPEND}" DEPEND="${RDEPEND}"
BDEPEND="=dev-util/boost-build-${MAJOR_V}*" BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
S="${WORKDIR}/${PN}_${MY_PV}"
PATCHES=( PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch "${WORKDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
"${FILESDIR}"/${PN}-1.71.0-context-x32.patch "${WORKDIR}"/${PN}-1.71.0-context-x32.patch
"${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch "${WORKDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
# upstream unresponsive to pull request
# https://github.com/boostorg/python/pull/286
"${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
# Boost.MPI's __init__.py doesn't work on Py3 # Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch "${WORKDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
# Remove annoying #pragma message "${WORKDIR}"/${PN}-1.74-CVE-2012-2677.patch
"${FILESDIR}"/${PN}-1.73-property-tree-include.patch "${WORKDIR}"/${PN}-1.76-sparc-define.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch "${WORKDIR}"/${PN}-1.77-math-deprecated-include.patch
"${WORKDIR}"/${PN}-1.77-geometry.patch
"${FILESDIR}"/${P}-python-3.10.patch
) )
python_bindings_needed() { python_bindings_needed() {
@ -171,22 +167,16 @@ src_configure() {
-d+2 -d+2
pch=off pch=off
$(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off') $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
$(usex mpi '' '--without-mpi') $(usev !mpi --without-mpi)
$(usex nls '' '--without-locale') $(usev !nls --without-locale)
$(usex context '' '--without-context --without-coroutine --without-fiber') $(usev !context '--without-context --without-coroutine --without-fiber')
$(usex threads '' '--without-thread')
--without-stacktrace --without-stacktrace
--boost-build="${BROOT}"/usr/share/boost-build --boost-build="${BROOT}"/usr/share/boost-build/src
--prefix="${ED}/usr"
--layout=system --layout=system
# CMake has issues working with multiple python impls,
# disable cmake config generation for the time being
# https://github.com/boostorg/python/issues/262#issuecomment-483069294
--no-cmake-config
# building with threading=single is currently not possible # building with threading=single is currently not possible
# https://svn.boost.org/trac/boost/ticket/7105 # https://svn.boost.org/trac/boost/ticket/7105
threading=multi threading=multi
link=$(usex static-libs shared,static shared) link=shared
# this seems to be the only way to disable compression algorithms # 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 # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
-sNO_BZIP2=$(usex bzip2 0 1) -sNO_BZIP2=$(usex bzip2 0 1)
@ -206,17 +196,67 @@ src_configure() {
} }
multilib_src_compile() { multilib_src_compile() {
ejam "${OPTIONS[@]}" || die ejam \
--prefix="${EPREFIX}"/usr \
"${OPTIONS[@]}" || die
if tools_needed; then if tools_needed; then
pushd tools >/dev/null || die pushd tools >/dev/null || die
ejam \ ejam \
--prefix="${EPREFIX}"/usr \
"${OPTIONS[@]}" \ "${OPTIONS[@]}" \
|| die "Building of Boost tools failed" || die "Building of Boost tools failed"
popd >/dev/null || die popd >/dev/null || die
fi fi
} }
multilib_src_install() {
ejam \
--prefix="${ED}"/usr \
--includedir="${ED}"/usr/include \
--libdir="${ED}"/usr/$(get_libdir) \
"${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
if tools_needed; then
dobin dist/bin/*
insinto /usr/share
doins -r dist/share/boostbook
fi
# boost's build system truely sucks for not having a destdir. Because for
# this reason we are forced to build with a prefix that includes the
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
# DESTROOT instread of the actual EPREFIX. There is no way out of here
# but to do it the dirty way of manually setting the right install_names.
if [[ ${CHOST} == *-darwin* ]]; then
einfo "Working around completely broken build-system(tm)"
local d
for d in "${ED}"/usr/lib/*.dylib; do
if [[ -f ${d} ]]; then
# fix the "soname"
ebegin " correcting install_name of ${d#${ED}}"
install_name_tool -id "/${d#${D}}" "${d}"
eend $?
# fix references to other libs
refs=$(otool -XL "${d}" | \
sed -e '1d' -e 's/^\t//' | \
grep "^libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
ebegin " correcting reference to ${r}"
install_name_tool -change \
"${r}" \
"${EPREFIX}/usr/lib/${r}" \
"${d}"
eend $?
done
fi
done
fi
}
multilib_src_install_all() { multilib_src_install_all() {
if ! use numpy; then if ! use numpy; then
rm -r "${ED}"/usr/include/boost/python/numpy* || die rm -r "${ED}"/usr/include/boost/python/numpy* || die
@ -269,67 +309,8 @@ multilib_src_install_all() {
fi fi
} }
multilib_src_install() {
ejam \
"${OPTIONS[@]}" \
--includedir="${ED}/usr/include" \
--libdir="${ED}/usr/$(get_libdir)" \
install || die "Installation of Boost libraries failed"
pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
local ext=$(get_libname)
if use threads; then
local f
for f in *${ext}; do
dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
done
fi
popd >/dev/null || die
if tools_needed; then
dobin dist/bin/*
insinto /usr/share
doins -r dist/share/boostbook
fi
# boost's build system truely sucks for not having a destdir. Because for
# this reason we are forced to build with a prefix that includes the
# DESTROOT, dynamic libraries on Darwin end messed up, referencing the
# DESTROOT instread of the actual EPREFIX. There is no way out of here
# but to do it the dirty way of manually setting the right install_names.
if [[ ${CHOST} == *-darwin* ]]; then
einfo "Working around completely broken build-system(tm)"
local d
for d in "${ED}"/usr/lib/*.dylib; do
if [[ -f ${d} ]]; then
# fix the "soname"
ebegin " correcting install_name of ${d#${ED}}"
install_name_tool -id "/${d#${D}}" "${d}"
eend $?
# fix references to other libs
refs=$(otool -XL "${d}" | \
sed -e '1d' -e 's/^\t//' | \
grep "^libboost_" | \
cut -f1 -d' ')
local r
for r in ${refs}; do
ebegin " correcting reference to ${r}"
install_name_tool -change \
"${r}" \
"${EPREFIX}/usr/lib/${r}" \
"${d}"
eend $?
done
fi
done
fi
}
pkg_preinst() { pkg_preinst() {
# Yai for having symlinks that are nigh-impossible to remove without # Yay for having symlinks that are nigh-impossible to remove without
# resorting to dirty hacks like these. Removes lingering symlinks # resorting to dirty hacks like these. Removes lingering symlinks
# from the slotted versions. # from the slotted versions.
local symlink local symlink
@ -353,7 +334,7 @@ pkg_postinst() {
elog elog
elog "Then you need to recompile Boost and all its reverse dependencies" 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 "using the same toolchain. In general, *every* change of the C++ toolchain"
elog "requires a complete rebuild of the boost-dependent ecosystem." elog "requires a complete rebuild of the Boost-dependent ecosystem."
elog elog
elog "See for instance https://bugs.gentoo.org/638138" elog "See for instance https://bugs.gentoo.org/638138"
} }

View File

@ -1,107 +0,0 @@
From c1cae8e6b0480e046ea627679a3afe488ed02dc1 Mon Sep 17 00:00:00 2001
From: David Seifert <soap@gentoo.org>
Date: Wed, 25 Dec 2019 12:37:35 +0100
Subject: [PATCH] Remove Boost.Python-specific python-tag code
---
libs/python/Jamfile | 68 ---------------------------------------------------
libs/python/build/Jamfile | 4 +--
2 files changed, 2 insertions(+), 70 deletions(-)
delete mode 100644 Jamfile
diff --git a/libs/python/Jamfile b/libs/python/Jamfile
deleted file mode 100644
index 32e87d80f..000000000
--- a/libs/python/Jamfile
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2018 Stefan Seefeld
-# All rights reserved.
-#
-# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
-
-import option ;
-import regex ;
-import python ;
-
-#
-# The `version-suffix` rule really belongs into python.jam, and
-# should be moved there. `split-version` is only duplicated here
-# as a prerequisite. (See https://github.com/boostorg/build/pull/290)
-#
-
-
-# Validate the version string and extract the major/minor part we care about.
-#
-local rule split-version ( version )
-{
- local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)(.*)$" : $(version) : 1 2 3 ] ;
- if ! $(major-minor[2]) || $(major-minor[3])
- {
- ECHO "Warning: \"using python\" expects a two part (major, minor) version number; got" $(version) instead ;
-
- # Add a zero to account for the missing digit if necessary.
- major-minor += 0 ;
- }
-
- return $(major-minor[1]) $(major-minor[2]) ;
-}
-
-# Define a version suffix for libraries depending on Python.
-# For example, Boost.Python built for Python 2.7 uses the suffix "27"
-rule version-suffix ( version )
-{
- local major-minor = [ split-version $(version) ] ;
- local suffix = $(major-minor:J="") ;
- return $(suffix) ;
-}
-
-
-# Python build id (for Python libraries only).
-python-id = [ option.get "python-buildid" ] ;
-if $(python-id)
-{
- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ;
-}
-
-rule python-tag ( name : type ? : property-set )
-{
- local result = $(name) ;
- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
- {
- local version = [ $(property-set).get <python> ] ;
- local lib-suffix = [ version-suffix $(version) ] ;
- result = $(result)$(lib-suffix) ;
- }
- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
- {
- result = $(result)-$(PYTHON_ID) ;
- }
-
- # forward to the boost tagging rule
- return [ tag $(result) : $(type) : $(property-set) ] ;
-}
diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
index d03d4dd08..dbc9fb203 100644
--- a/libs/python/build/Jamfile
+++ b/libs/python/build/Jamfile
@@ -95,7 +95,7 @@
<dependency>config-warning
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
- <tag>@$(__name__).python-tag
+ <tag>@python-tag
<conditional>@python.require-py
: # default build
@@ -123,7 +123,7 @@
<library>boost_python
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
- <tag>@$(__name__).python-tag
+ <tag>@python-tag
<conditional>@python.require-py
: # default build

View File

@ -1,45 +0,0 @@
From d1c8825a45a0717e1ad79583d3283b0e5e32831e Mon Sep 17 00:00:00 2001
From: Andrey Semashev <Lastique@users.noreply.github.com>
Date: Tue, 28 Apr 2020 22:03:04 +0300
Subject: [PATCH] Fix usage of deprecated Boost.Bind features
This fixes deprecation warnings generated by boost/bind.hpp.
Also, use a more actual include path for ref.hpp.
---
boost/property_tree/json_parser/detail/parser.hpp | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/boost/property_tree/json_parser/detail/parser.hpp b/boost/property_tree/json_parser/detail/parser.hpp
index 5554990fb..6cf636394 100644
--- a/boost/property_tree/json_parser/detail/parser.hpp
+++ b/boost/property_tree/json_parser/detail/parser.hpp
@@ -3,8 +3,8 @@
#include <boost/property_tree/json_parser/error.hpp>
-#include <boost/ref.hpp>
-#include <boost/bind.hpp>
+#include <boost/core/ref.hpp>
+#include <boost/bind/bind.hpp>
#include <boost/format.hpp>
#include <iterator>
@@ -214,7 +214,7 @@ namespace boost { namespace property_tree {
void process_codepoint(Sentinel end, EncodingErrorFn error_fn) {
encoding.transcode_codepoint(cur, end,
boost::bind(&Callbacks::on_code_unit,
- boost::ref(callbacks), _1),
+ boost::ref(callbacks), boost::placeholders::_1),
error_fn);
}
@@ -517,7 +517,7 @@ namespace boost { namespace property_tree {
void feed(unsigned codepoint) {
encoding.feed_codepoint(codepoint,
boost::bind(&Callbacks::on_code_unit,
- boost::ref(callbacks), _1));
+ boost::ref(callbacks), boost::placeholders::_1));
}
Callbacks& callbacks;

View File

@ -0,0 +1,23 @@
From 0796305c863804a2b31610507c531da5c0408422 Mon Sep 17 00:00:00 2001
From: Peter Dimov <pdimov@gmail.com>
Date: Mon, 24 May 2021 22:14:55 +0300
Subject: [PATCH] Use the /python//numpy target instead of [ numpy.include ]
(fixes #361)
---
libs/python/build/Jamfile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/python/build/Jamfile b/libs/python/build/Jamfile
index dbc9fb203..03b69a25d 100644
--- a/libs/python/build/Jamfile
+++ b/libs/python/build/Jamfile
@@ -117,7 +117,7 @@ lib boost_numpy
<define>BOOST_NUMPY_SOURCE
[ cond [ python.numpy ] : <library>/python//python_for_extensions ]
[ unless [ python.numpy ] : <build>no ]
- <include>$(numpy-include)
+ <library>/python//numpy
<library>boost_python
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag

View File

@ -0,0 +1,21 @@
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)

View File

@ -0,0 +1,44 @@
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

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata> <pkgmetadata>
<maintainer type="person"> <maintainer type="person">
<email>soap@gentoo.org</email> <email>soap@gentoo.org</email>