* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2016-01-27 6:21 Sergey Popov
0 siblings, 0 replies; 27+ messages in thread
From: Sergey Popov @ 2016-01-27 6:21 UTC (permalink / raw
To: gentoo-commits
commit: 02d60f710015005b938d501e5f4f0615c1667fda
Author: Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 27 06:14:58 2016 +0000
Commit: Sergey Popov <pinkbyte <AT> gentoo <DOT> org>
CommitDate: Wed Jan 27 06:14:58 2016 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=02d60f71
dev-libs/boost: drop old masked versions
Package-Manager: portage-2.2.26
dev-libs/boost/Manifest | 3 -
dev-libs/boost/boost-1.52.0-r7.ebuild | 352 --------------------
dev-libs/boost/boost-1.53.0-r1.ebuild | 365 ---------------------
dev-libs/boost/boost-1.54.0-r1.ebuild | 365 ---------------------
.../boost/files/boost-1.48.0-mpi_python3.patch | 95 ------
dev-libs/boost/files/boost-1.52.0-locale-utf.patch | 52 ---
dev-libs/boost/files/boost-1.52.0-tuple.patch | 11 -
.../files/boost-1.53.0-glibc-2.18-compat.patch | 18 -
.../boost/files/boost-1.53.0-library_status.patch | 57 ----
dev-libs/boost/files/remove-toolset-1.48.0.patch | 11 -
10 files changed, 1329 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index bc223f6..fb6648e 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,6 +1,3 @@
-DIST boost_1_52_0.tar.bz2 54421709 SHA256 222b6afd7723f396f5682c20130314a10196d3999feab5ba920d2a6bf53bac92 SHA512 fc512d3bfa6a39a60fee548775c97239271cf757587b8df7ed739c800844a819a359dca172be0e69ad7752753753139bf11f0813d650066d58386662fe32842d WHIRLPOOL 73bbab4a1d2a652200f4b5e669440a2afcebcea96a1139ecc75213067ca32d5cadb0f060bb0ec2e29e9e31272fb7ec9d2cb960801032ee6c5dcb86564766411d
-DIST boost_1_53_0.tar.bz2 55765258 SHA256 f88a041b01882b0c9c5c05b39603ec8383fb881f772f6f9e6e6fd0e0cddb9196 SHA512 8cd7806653cb6ea4a1c6862796ef698de5ae0bdbda96954fedbe090c59e3e6cb8f8d385df35183e9063ac4e2c2fccf10744516c47a994cde5f1d1cba1b07e522 WHIRLPOOL e8c5ed6b34dd5f68dc7e102a9e22b302616a65077d3f4af370ece6352b02a866e04294a4fc76bbd5555b6a4131f590e6455e6a74b5f12c4ffc2dd15af0bc8746
-DIST boost_1_54_0.tar.bz2 57873778 SHA256 047e927de336af106a24bceba30069980c191529fd76b8dff8eb9a328b48ae1d SHA512 3467a2bb9b4797cadfc52150cb036939ef35263f421870897dbe9492d1504a714805668a193b0811fdaf39a3527ee693ff70da5b942d7ab11b307e2e693e1760 WHIRLPOOL dbe3cbecaccf86ca184cf73cff75c17d6307b680bab098e38a9efd24d17776481e597017fc9f8fc8f488495f315c6d2b14b9212c51cf98529c302482bf67e92a
DIST boost_1_55_0.tar.bz2 58146647 SHA256 fff00023dd79486d444c8e29922f4072e1d451fc5a4d2b6075852ead7f2b7b52 SHA512 dc606477f4c303e8f40de2586c16394b6d758e198b35bf3a7d3e576a2f49171aadc4f95e8d685fa731bc4e61e19869d5a24e1e816febfca9de078d66e096e041 WHIRLPOOL 6ae111d6a956651bd91914432b743faffeb466703191b05193db47f02fd3528a14ce200f26c1ab77bf2c68994eb5b135b0176f66a746964d334b4793ba113ad5
DIST boost_1_56_0.tar.bz2 94777674 SHA256 134732acaf3a6e7eba85988118d943f0fa6b7f0850f65131fff89823ad30ff1d SHA512 1ce9871c3a2519682538a5f1331938b948123432d99aea0ce026958cbebd25d84019a3a28c452724b9693df98a8d1264bb2d93d2fee508453f8b42836e67481e WHIRLPOOL e9e9bb965816b687141d55bc026e378a56ed577a2bf0bdad61a1736e7f11d1797e0cac0185a1fa25b6c4b9fe1f75cbb0bb73a5ea05e84d59385bb3b17a90fd12
DIST boost_1_57_0.tar.bz2 60821561 SHA256 910c8c022a33ccec7f088bd65d4f14b466588dda94ba2124e78b8c57db264967 SHA512 61881440fd89644c43c6e3bc6292e9fed75a6d3a76f98654b189d0ed4e1087d77b585884e882270c08bf9f7132b173bfc1fde05848e06aa78ba7f1008d10714d WHIRLPOOL ff092af332434082a774645a5eb42829cdbdac805ef86dccce8988542062901524bd4d5fc890e3a9c01f0a721047501e5d8b13d50ffa5368066c3438dcf719d6
diff --git a/dev-libs/boost/boost-1.52.0-r7.ebuild b/dev-libs/boost/boost-1.52.0-r7.ebuild
deleted file mode 100644
index 04e7578..0000000
--- a/dev-libs/boost/boost-1.52.0-r7.ebuild
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_3} )
-
-inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
-
-MY_P=${PN}_$(replace_all_version_separators _)
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-MAJOR_V="$(get_version_component_range 1-2)"
-SLOT="0/${MAJOR_V}"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~amd64-fbsd ~x86-fbsd"
-IUSE="debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
- !icu? ( virtual/libiconv )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2
- sys-libs/zlib
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-1.52.0*"
-
-REQUIRED_USE="mpi? ( threads )"
-
-S="${WORKDIR}/${MY_P}"
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if use python; then
- python_configuration="using python : : ${PYTHON} ;"
- fi
-
- cat > user-config.jam << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
- "${FILESDIR}/remove-toolset-1.48.0.patch" \
- "${FILESDIR}/${PN}-1.52.0-tuple.patch" \
- "${FILESDIR}/${P}-locale-utf.patch" \
- "${FILESDIR}/${PN}-1.52.0-threads.patch" \
- "${FILESDIR}/${PN}-1.53.0-glibc-2.18-compat.patch" # bug 482372
-
- # Avoid a patch for now
- for file in libs/context/src/asm/*.S; do
- cat - >> $file <<EOF
-
-#if defined(__linux__) && defined(__ELF__)
-.section .note.GNU-stack,"",%progbits
-#endif
-EOF
- done
-
- epatch_user
-}
-
-ejam() {
- echo b2 "$@"
- b2 "$@"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2 --user-config=${S}/user-config.jam"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- use mpi || OPTIONS+=" --without-mpi"
- use python || OPTIONS+=" --without-python"
- use nls || OPTIONS+=" --without-locale"
-
- OPTIONS+=" pch=off --boost-build=/usr/share/boost-build --prefix=\"${D}usr\" --layout=system threading=$(usex threads multi single) link=$(usex static-libs shared,static shared) --without-context"
-}
-
-src_compile() {
- export BOOST_ROOT="${S}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- ejam ${OPTIONS} \
- $(use python && echo --python-buildid=${EPYTHON#python}) \
- || die "Building of Boost libraries failed"
-
- if use python; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if use python; then
- python_foreach_impl building
- else
- building
- fi
-
- if use tools; then
- pushd tools > /dev/null || die
-
- ejam ${OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-src_install () {
- installation() {
- create_user-config.jam
-
- if use python; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- fi
-
- ejam ${OPTIONS} \
- --includedir="${D}usr/include" \
- --libdir="${D}usr/$(get_libdir)" \
- $(use python && echo --python-buildid=${EPYTHON#python}) \
- install || die "Installation of Boost libraries failed"
-
- if use python; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- dodir "${moddir}"
- mv "${D}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if use python; then
- python_foreach_impl installation
- else
- installation
- fi
-
- if ! use python; then
- rm -r "${D}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${D}"/usr/include/boost/locale || die
- fi
-
- rm -r "${D}"/usr/include/boost/context || die
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- dohtml \
- -A pdf,txt,cpp,hpp \
- *.{htm,html,png,css} \
- -r doc
- dohtml -A pdf,txt -r tools
- insinto /usr/share/doc/${PF}/html
- doins -r libs
- doins -r more
-
- # To avoid broken links
- insinto /usr/share/doc/${PF}/html
- doins LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-
- pushd "${D}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 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
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
-
-# 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.
-src_test() { :; }
diff --git a/dev-libs/boost/boost-1.53.0-r1.ebuild b/dev-libs/boost/boost-1.53.0-r1.ebuild
deleted file mode 100644
index 200101b..0000000
--- a/dev-libs/boost/boost-1.53.0-r1.ebuild
+++ /dev/null
@@ -1,365 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_3} )
-
-inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
-
-MY_P=${PN}_$(replace_all_version_separators _)
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-MAJOR_V="$(get_version_component_range 1-2)"
-SLOT="0/${MAJOR_V}"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~amd64-linux ~x86-fbsd ~x86-linux"
-IUSE="debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
- !icu? ( virtual/libiconv )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2
- sys-libs/zlib
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if use python; then
- python_configuration="using python : : ${PYTHON} ;"
- fi
-
- cat > user-config.jam << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- epatch "${FILESDIR}/${PN}-1.53.0-library_status.patch" # bug 459112
- epatch "${FILESDIR}/${PN}-1.53.0-glibc-2.18-compat.patch" # bug 482372
- epatch "${FILESDIR}/${PN}-1.52.0-threads.patch"
-
- # Avoid a patch for now
- for file in libs/context/src/asm/*.S; do
- cat - >> $file <<EOF
-
-#if defined(__linux__) && defined(__ELF__)
-.section .note.GNU-stack,"",%progbits
-#endif
-EOF
- done
-
- epatch_user
-}
-
-ejam() {
- echo b2 "$@"
- b2 "$@"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2 --user-config=${S}/user-config.jam"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- use mpi || OPTIONS+=" --without-mpi"
- use python || OPTIONS+=" --without-python"
- use nls || OPTIONS+=" --without-locale"
-
- OPTIONS+=" pch=off --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\" --layout=system threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
- OPTIONS+=" --without-context"
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
-}
-
-src_compile() {
- export BOOST_ROOT="${S}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- ejam ${OPTIONS} \
- $(use python && echo --python-buildid=${EPYTHON#python}) \
- || die "Building of Boost libraries failed"
-
- if use python; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if use python; then
- python_foreach_impl building
- else
- building
- fi
-
- if use tools; then
- pushd tools > /dev/null || die
-
- ejam ${OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-src_install () {
- installation() {
- create_user-config.jam
-
- if use python; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- fi
-
- ejam ${OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- $(use python && echo --python-buildid=${EPYTHON#python}) \
- install || die "Installation of Boost libraries failed"
-
- if use python; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if use python; then
- python_foreach_impl installation
- else
- installation
- fi
-
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine || die
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- dohtml \
- -A pdf,txt,cpp,hpp \
- *.{htm,html,png,css} \
- -r doc
- dohtml -A pdf,txt -r tools
- insinto /usr/share/doc/${PF}/html
- doins -r libs
- doins -r more
-
- # To avoid broken links
- insinto /usr/share/doc/${PF}/html
- doins LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if 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
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
-
-# 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.
-src_test() { :; }
diff --git a/dev-libs/boost/boost-1.54.0-r1.ebuild b/dev-libs/boost/boost-1.54.0-r1.ebuild
deleted file mode 100644
index a5f9bc2..0000000
--- a/dev-libs/boost/boost-1.54.0-r1.ebuild
+++ /dev/null
@@ -1,365 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_3} )
-
-inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
-
-MY_P=${PN}_$(replace_all_version_separators _)
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-MAJOR_V="$(get_version_component_range 1-2)"
-SLOT="0/${MAJOR_V}"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~amd64-linux ~x86-fbsd ~x86-linux"
-IUSE="debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
- !icu? ( virtual/libiconv )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2
- sys-libs/zlib
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if use python; then
- python_configuration="using python : : ${PYTHON} ;"
- fi
-
- cat > user-config.jam << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- epatch "${FILESDIR}/${PN}-1.53.0-library_status.patch" # bug 459112
- epatch "${FILESDIR}/${PN}-1.53.0-glibc-2.18-compat.patch" # bug 482372
- epatch "${FILESDIR}/${PN}-1.52.0-threads.patch"
-
- # Avoid a patch for now
- for file in libs/context/src/asm/*.S; do
- cat - >> $file <<EOF
-
-#if defined(__linux__) && defined(__ELF__)
-.section .note.GNU-stack,"",%progbits
-#endif
-EOF
- done
-
- epatch_user
-}
-
-ejam() {
- echo b2 "$@"
- b2 "$@"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2 --user-config=${S}/user-config.jam"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- use mpi || OPTIONS+=" --without-mpi"
- use python || OPTIONS+=" --without-python"
- use nls || OPTIONS+=" --without-locale"
-
- OPTIONS+=" pch=off --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\" --layout=system threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
- OPTIONS+=" --without-context --without-coroutine"
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
-}
-
-src_compile() {
- export BOOST_ROOT="${S}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- ejam ${OPTIONS} \
- $(use python && echo --python-buildid=${EPYTHON#python}) \
- || die "Building of Boost libraries failed"
-
- if use python; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if use python; then
- python_foreach_impl building
- else
- building
- fi
-
- if use tools; then
- pushd tools > /dev/null || die
-
- ejam ${OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-src_install () {
- installation() {
- create_user-config.jam
-
- if use python; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- fi
-
- ejam ${OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- $(use python && echo --python-buildid=${EPYTHON#python}) \
- install || die "Installation of Boost libraries failed"
-
- if use python; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if use python; then
- python_foreach_impl installation
- else
- installation
- fi
-
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine || die
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- dohtml \
- -A pdf,txt,cpp,hpp \
- *.{htm,html,png,css} \
- -r doc
- dohtml -A pdf,txt -r tools
- insinto /usr/share/doc/${PF}/html
- doins -r libs
- doins -r more
-
- # To avoid broken links
- insinto /usr/share/doc/${PF}/html
- doins LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if 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
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
-
-# 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.
-src_test() { :; }
diff --git a/dev-libs/boost/files/boost-1.48.0-mpi_python3.patch b/dev-libs/boost/files/boost-1.48.0-mpi_python3.patch
deleted file mode 100644
index a32eca9..0000000
--- a/dev-libs/boost/files/boost-1.48.0-mpi_python3.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-https://svn.boost.org/trac/boost/ticket/4657
-https://svn.boost.org/trac/boost/changeset/76290
-
---- libs/mpi/src/python/datatypes.cpp
-+++ libs/mpi/src/python/datatypes.cpp
-@@ -17,7 +17,9 @@
-
- void export_datatypes()
- {
-+#if PY_MAJOR_VERSION < 3
- register_serialized(long(0), &PyInt_Type);
-+#endif
- register_serialized(false, &PyBool_Type);
- register_serialized(double(0.0), &PyFloat_Type);
- }
---- libs/mpi/src/python/py_environment.cpp
-+++ libs/mpi/src/python/py_environment.cpp
-@@ -11,6 +11,9 @@
- * This file reflects the Boost.MPI "environment" class into Python
- * methods at module level.
- */
-+
-+#include <locale>
-+#include <string>
- #include <boost/python.hpp>
- #include <boost/mpi.hpp>
-
-@@ -50,11 +53,64 @@
-
- // If anything changed, convert C-style argc/argv into Python argv
- if (mpi_argv != my_argv)
-+ {
-+#if PY_MAJOR_VERSION >= 3
-+
-+ wchar_t **argv_copy = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc);
-+ /* We need a second copy, as Python might modify the first one. */
-+ wchar_t **argv_copy2 = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*mpi_argc);
-+
-+ if (!argv_copy || !argv_copy2) {
-+ fprintf(stderr, "out of memory\n");
-+ return false;
-+ }
-+
-+ std::locale mylocale;
-+ mbstate_t mystate;
-+
-+ const std::codecvt<char, wchar_t, mbstate_t>& myfacet =
-+ std::use_facet<std::codecvt<char, wchar_t, mbstate_t> >(mylocale);
-+
-+ for (int i = 0; i < mpi_argc; i++)
-+ {
-+ size_t length = strlen(mpi_argv[i]);
-+
-+ wchar_t *dest = (wchar_t *) PyMem_Malloc(sizeof(wchar_t) * (length + 1));
-+
-+ const char *from_next;
-+ wchar_t *to_next;
-+
-+ std::codecvt<wchar_t,char,mbstate_t>::result myresult =
-+ myfacet.out(mystate,
-+ mpi_argv[i], mpi_argv[i] + length + 1, from_next,
-+ dest, dest+length+1, to_next);
-+
-+ if (myresult != std::codecvt<wchar_t,char,mbstate_t>::ok )
-+ {
-+ fprintf(stderr, "failure translating argv\n");
-+ return 1;
-+ }
-+
-+ argv_copy2[i] = argv_copy[i] = dest;
-+ if (!argv_copy[i])
-+ return false;
-+ }
-+
-+ PySys_SetArgv(mpi_argc, argv_copy);
-+
-+ for (int i = 0; i < mpi_argc; i++) {
-+ PyMem_Free(argv_copy2[i]);
-+ }
-+ PyMem_Free(argv_copy);
-+ PyMem_Free(argv_copy2);
-+#else
- PySys_SetArgv(mpi_argc, mpi_argv);
-+#endif
-+ }
-
-- for (int arg = 0; arg < my_argc; ++arg)
-- free(my_argv[arg]);
-- delete [] my_argv;
-+ for (int arg = 0; arg < mpi_argc; ++arg)
-+ free(mpi_argv[arg]);
-+ delete [] mpi_argv;
-
- return true;
- }
diff --git a/dev-libs/boost/files/boost-1.52.0-locale-utf.patch b/dev-libs/boost/files/boost-1.52.0-locale-utf.patch
deleted file mode 100644
index 7ef51e9..0000000
--- a/dev-libs/boost/files/boost-1.52.0-locale-utf.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-Index: boost/locale/utf.hpp
-===================================================================
---- boost/locale/utf.hpp (revision 81589)
-+++ boost/locale/utf.hpp (revision 81590)
-@@ -219,16 +219,22 @@
- if(BOOST_LOCALE_UNLIKELY(p==e))
- return incomplete;
- tmp = *p++;
-+ if (!is_trail(tmp))
-+ return illegal;
- c = (c << 6) | ( tmp & 0x3F);
- case 2:
- if(BOOST_LOCALE_UNLIKELY(p==e))
- return incomplete;
- tmp = *p++;
-+ if (!is_trail(tmp))
-+ return illegal;
- c = (c << 6) | ( tmp & 0x3F);
- case 1:
- if(BOOST_LOCALE_UNLIKELY(p==e))
- return incomplete;
- tmp = *p++;
-+ if (!is_trail(tmp))
-+ return illegal;
- c = (c << 6) | ( tmp & 0x3F);
- }
-
-Index: libs/locale/test/test_codepage_converter.cpp
-===================================================================
---- libs/locale/test/test_codepage_converter.cpp (revision 81589)
-+++ libs/locale/test/test_codepage_converter.cpp (revision 81590)
-@@ -140,6 +140,20 @@
- TEST_TO("\xf8\x90\x80\x80\x80",illegal); // 400 0000
- TEST_TO("\xfd\xbf\xbf\xbf\xbf\xbf",illegal); // 7fff ffff
-
-+ std::cout << "-- Invalid trail" << std::endl;
-+ TEST_TO("\xC2\x7F",illegal);
-+ TEST_TO("\xdf\x7F",illegal);
-+ TEST_TO("\xe0\x7F\x80",illegal);
-+ TEST_TO("\xef\xbf\x7F",illegal);
-+ TEST_TO("\xe0\x7F\x80",illegal);
-+ TEST_TO("\xef\xbf\x7F",illegal);
-+ TEST_TO("\xf0\x7F\x80\x80",illegal);
-+ TEST_TO("\xf4\x7f\xbf\xbf",illegal);
-+ TEST_TO("\xf0\x90\x7F\x80",illegal);
-+ TEST_TO("\xf4\x8f\x7F\xbf",illegal);
-+ TEST_TO("\xf0\x90\x80\x7F",illegal);
-+ TEST_TO("\xf4\x8f\xbf\x7F",illegal);
-+
- std::cout << "-- Invalid length" << std::endl;
-
- /// Test that this actually works
diff --git a/dev-libs/boost/files/boost-1.52.0-tuple.patch b/dev-libs/boost/files/boost-1.52.0-tuple.patch
deleted file mode 100644
index 08bab86..0000000
--- a/dev-libs/boost/files/boost-1.52.0-tuple.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- boost/signals2/detail/variadic_slot_invoker.hpp.org 2012-11-20 09:15:55.000000000 +0400
-+++ boost/signals2/detail/variadic_slot_invoker.hpp 2012-11-20 09:19:56.000000000 +0400
-@@ -20,7 +20,7 @@
- // if compiler has std::tuple use it instead of boost::tuple
- // because boost::tuple does not have variadic template support at present.
- #ifdef BOOST_NO_CXX11_HDR_TUPLE
--#include <boost/tuple.hpp>
-+#include <boost/tuple/tuple.hpp>
- #define BOOST_SIGNALS2_TUPLE boost::tuple
- #else
- #include <tuple>
diff --git a/dev-libs/boost/files/boost-1.53.0-glibc-2.18-compat.patch b/dev-libs/boost/files/boost-1.53.0-glibc-2.18-compat.patch
deleted file mode 100644
index 54d2e29..0000000
--- a/dev-libs/boost/files/boost-1.53.0-glibc-2.18-compat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Patch for compatibility with glibc 2.18
-Gentoo bugreport: https://bugs.gentoo.org/show_bug.cgi?id=482372
-Upstream fix: https://svn.boost.org/trac/boost/changeset/84950
-
---- boost_1_53_0/boost/cstdint.hpp 2012-12-11 22:42:26.000000000 +0800
-+++ boost_1_53_0.fix/boost/cstdint.hpp 2013-08-25 20:48:53.683000000 +0800
-@@ -41,7 +41,10 @@
- // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
- // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
- //
--#if defined(BOOST_HAS_STDINT_H) && (!defined(__GLIBC__) || defined(__GLIBC_HAVE_LONG_LONG))
-+#if defined(BOOST_HAS_STDINT_H) \
-+ && (!defined(__GLIBC__) \
-+ || defined(__GLIBC_HAVE_LONG_LONG) \
-+ || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
-
- // The following #include is an implementation artifact; not part of interface.
- # ifdef __hpux
diff --git a/dev-libs/boost/files/boost-1.53.0-library_status.patch b/dev-libs/boost/files/boost-1.53.0-library_status.patch
deleted file mode 100644
index 7d10461..0000000
--- a/dev-libs/boost/files/boost-1.53.0-library_status.patch
+++ /dev/null
@@ -1,57 +0,0 @@
---- tools_orig/regression/src/library_status.cpp 2012-12-11 15:42:26.000000000 +0100
-+++ tools/regression/src/library_status.cpp 2013-07-11 16:15:54.000000000 +0200
-@@ -171,16 +171,17 @@
- // find_element ------------------------------------------------------------//
-
-+ struct element_equal {
-+ const string & m_name;
-+ element_equal(const string & name) :
-+ m_name(name)
-+ {}
-+ bool operator()(const xml::element_ptr & xep) const {
-+ return xep.get()->name == m_name;
-+ }
-+ };
-+
- xml::element_list::const_iterator find_element(
- const xml::element & root, const string & name
- ){
-- struct element_equal {
-- const string & m_name;
-- element_equal(const string & name) :
-- m_name(name)
-- {}
-- bool operator()(const xml::element_ptr & xep) const {
-- return xep.get()->name == m_name;
-- }
-- };
- return std::find_if(
- root.elements.begin(),
-@@ -203,17 +204,18 @@
- // attribute_value ----------------------------------------------------------//
-
-+ struct attribute_equal {
-+ const string & m_name;
-+ attribute_equal(const string & name) :
-+ m_name(name)
-+ {}
-+ bool operator()(const xml::attribute & a) const {
-+ return a.name == m_name;
-+ }
-+ };
-+
- const string & attribute_value(
- const xml::element & element,
- const string & attribute_name
- ){
-- struct attribute_equal {
-- const string & m_name;
-- attribute_equal(const string & name) :
-- m_name(name)
-- {}
-- bool operator()(const xml::attribute & a) const {
-- return a.name == m_name;
-- }
-- };
- xml::attribute_list::const_iterator itr;
- itr = std::find_if(
diff --git a/dev-libs/boost/files/remove-toolset-1.48.0.patch b/dev-libs/boost/files/remove-toolset-1.48.0.patch
deleted file mode 100644
index df91529..0000000
--- a/dev-libs/boost/files/remove-toolset-1.48.0.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- boostcpp.jam
-+++ boostcpp.jam
-@@ -377,7 +377,7 @@
- if $(layout) = versioned
- {
- result = [ common.format-name
-- <base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG)
-+ <base> <threading> <runtime> -$(BOOST_VERSION_TAG)
- -$(BUILD_ID)
- : $(name) : $(type) : $(property-set) ] ;
- }
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2017-04-04 17:54 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2017-04-04 17:54 UTC (permalink / raw
To: gentoo-commits
commit: 400e20295bf062a0bf697acce718e78116b143e2
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 4 17:33:14 2017 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Apr 4 17:54:18 2017 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=400e2029
dev-libs/boost: Remove old
Package-Manager: Portage-2.3.5, Repoman-2.3.2
Closes: https://github.com/gentoo/gentoo/pull/4352
dev-libs/boost/Manifest | 5 -
dev-libs/boost/boost-1.56.0-r1.ebuild | 413 --------------------
dev-libs/boost/boost-1.58.0-r1.ebuild | 411 -------------------
dev-libs/boost/boost-1.59.0.ebuild | 405 -------------------
dev-libs/boost/boost-1.60.0.ebuild | 408 -------------------
dev-libs/boost/boost-1.61.0-r1.ebuild | 428 --------------------
dev-libs/boost/boost-1.61.0.ebuild | 433 ---------------------
dev-libs/boost/files/boost-1.52.0-threads.patch | 63 ---
.../files/boost-1.55.0-tools-c98-compat.patch | 17 -
.../files/boost-1.55.0-variadic-templates.patch | 37 --
dev-libs/boost/files/boost-1.56.0-atomic.patch | 402 -------------------
...1.58.0-fix-non-constexpr-types-regression.patch | 233 -----------
.../files/boost-1.60.0-auto-pointer-python.patch | 42 --
| 42 --
14 files changed, 3339 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index c464b7788c7..2bed45d4d28 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,7 +1,2 @@
-DIST boost_1_56_0.tar.bz2 94777674 SHA256 134732acaf3a6e7eba85988118d943f0fa6b7f0850f65131fff89823ad30ff1d SHA512 1ce9871c3a2519682538a5f1331938b948123432d99aea0ce026958cbebd25d84019a3a28c452724b9693df98a8d1264bb2d93d2fee508453f8b42836e67481e WHIRLPOOL e9e9bb965816b687141d55bc026e378a56ed577a2bf0bdad61a1736e7f11d1797e0cac0185a1fa25b6c4b9fe1f75cbb0bb73a5ea05e84d59385bb3b17a90fd12
-DIST boost_1_58_0.tar.bz2 70394057 SHA256 fdfc204fc33ec79c99b9a74944c3e54bd78be4f7f15e260c0e2700a36dc7d3e5 SHA512 7480ec713b0aa13f0ec990603e87e3b5c8d53f4411329b10fae37fc963b90aad12dbd9290a33c3669ae801e9012a68683eadff057591e9ca2ebcd22b1a67b5d1 WHIRLPOOL 0ed66f7de8b2ac28eda89e2fcadfc5533e6a3887ef7a929610804efa3ca66b850fecafeb61c986d37cb704ec844744e47d08f87e08ea25c779f57cffd26a1be2
-DIST boost_1_59_0.tar.bz2 70389425 SHA256 727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca SHA512 8139e1ae997a86974071c5714ad3307e3d8fd15ef702b81a953410dd4d424b932135f53a0ef4891d9b9b747a38e539e66d6a803388fe0cc98e5166be872d682a WHIRLPOOL ab26f6b770c32320e71806d7f7856b3841917dcc59e0c5ee588fc77d77f11855dda66bfb808dbe0f3f89859b958211439c271401a5b1ad2ea98aa5d377934510
-DIST boost_1_60_0.tar.bz2 76553944 SHA256 686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b SHA512 7c851b3fc2b322ff05d642d9cf03e7c30c5f04d5cf0579c99046b1ec708901c58a3d349031dfe24591f5b88c1e664b6a0d40abea6cce89abb52080c02eb725df WHIRLPOOL 828b0797a8b62150ecef5ee13f0e8b8d6b6a0e7365511ec9782d2d8f3a26ac38a98f10876c40d05ea46697c013b1f96f22b3a24c449372520c84bb725059fe48
-DIST boost_1_61_0.tar.bz2 85202254 SHA256 a547bd06c2fd9a71ba1d169d9cf0339da7ebf4753849a8f7d6fdb8feee99b640 SHA512 a1c7338e2d2dbac8552ede7c554640d22cbb2fda7fbc325dc3cdcb51e769713626695426ffc158cbe0e1729dd9a7b5ad18af4800d74e24539e8d8564268c2b9d WHIRLPOOL 59b47e7ae9ae8443ecaab29b1104cfe3ebfa607d22afcc3fad4a87bdfd575939eba8130a80fd509da178eb3227a26cb74db51852716dc5df068d36fc4839372b
DIST boost_1_62_0.tar.bz2 84513338 SHA256 36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0 SHA512 5385ae3d5255a433a704169ad454d8dc2b0b5bcae3fb23defd6570df4ff7d845cf9fcbeebccdc1c5db0eec9f82ee3d90040de9507c8167467c635d3b215463be WHIRLPOOL 49c4558d5e6d72084f083a76217e3d97b504f112d7e4d228eded72dc49fa7e675ba943a9fc52a3c27d296ee689aee27d4566796c6eae71cf647430285777c0fb
DIST boost_1_63_0.tar.bz2 81984414 SHA256 beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad WHIRLPOOL 28c241785097272a1e0952e529eef082444e4ef35a8d738161e4a491a986d75359d3afe888b2ea91a4a81b6ec7a5772ebea337c9d09377b43f6eed66cac90378
diff --git a/dev-libs/boost/boost-1.56.0-r1.ebuild b/dev-libs/boost/boost-1.56.0-r1.ebuild
deleted file mode 100644
index 5f07390a0d9..00000000000
--- a/dev-libs/boost/boost-1.56.0-r1.ebuild
+++ /dev/null
@@ -1,413 +0,0 @@
-# Copyright 1999-2015 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_4} )
-
-inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
-mpi_needed() {
- multilib_is_native_abi && use mpi
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if mpi_needed; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
- "${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
- "${FILESDIR}/${PN}-1.52.0-threads.patch" \
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
- "${FILESDIR}/${PN}-1.55.0-variadic-templates.patch" \
- "${FILESDIR}/${PN}-1.56.0-atomic.patch"
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- epatch_user
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
- echo b2 ${b2_opts}
- b2 ${b2_opts}
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- mpi_needed || OPTIONS+=" --without-mpi"
- use nls || OPTIONS+=" --without-locale"
- use context || OPTIONS+=" --without-context --without-coroutine"
-
- OPTIONS+=" pch=off"
- OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
- OPTIONS+=" --layout=system"
- OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if mpi_needed; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools > /dev/null || die
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine || die
- fi
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- dohtml \
- -A pdf,txt,cpp,hpp \
- *.{htm,html,png,css} \
- -r doc
- dohtml -A pdf,txt -r tools
- insinto /usr/share/doc/${PF}/html
- doins -r libs
- doins -r more
-
- # To avoid broken links
- insinto /usr/share/doc/${PF}/html
- doins LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if mpi_needed; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if mpi_needed; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
diff --git a/dev-libs/boost/boost-1.58.0-r1.ebuild b/dev-libs/boost/boost-1.58.0-r1.ebuild
deleted file mode 100644
index 3dadf7a0687..00000000000
--- a/dev-libs/boost/boost-1.58.0-r1.ebuild
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-
-inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
-mpi_needed() {
- multilib_is_native_abi && use mpi
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if mpi_needed; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
- "${FILESDIR}/${PN}-1.52.0-threads.patch" \
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
- "${FILESDIR}/${PN}-1.58.0-fix-non-constexpr-types-regression.patch"
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- epatch_user
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
- echo b2 ${b2_opts}
- b2 ${b2_opts}
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- mpi_needed || OPTIONS+=" --without-mpi"
- use nls || OPTIONS+=" --without-locale"
- use context || OPTIONS+=" --without-context --without-coroutine"
-
- OPTIONS+=" pch=off"
- OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
- OPTIONS+=" --layout=system"
- OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if mpi_needed; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools > /dev/null || die
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- dohtml \
- -A pdf,txt,cpp,hpp \
- *.{htm,html,png,css} \
- -r doc
- dohtml -A pdf,txt -r tools
- insinto /usr/share/doc/${PF}/html
- doins -r libs
- doins -r more
-
- # To avoid broken links
- insinto /usr/share/doc/${PF}/html
- doins LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if mpi_needed; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if mpi_needed; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
diff --git a/dev-libs/boost/boost-1.59.0.ebuild b/dev-libs/boost/boost-1.59.0.ebuild
deleted file mode 100644
index dda95561d2b..00000000000
--- a/dev-libs/boost/boost-1.59.0.ebuild
+++ /dev/null
@@ -1,405 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
-mpi_needed() {
- multilib_is_native_abi && use mpi
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if mpi_needed; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- epatch \
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- eapply_user
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
- echo b2 ${b2_opts}
- b2 ${b2_opts}
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- mpi_needed || OPTIONS+=" --without-mpi"
- use nls || OPTIONS+=" --without-locale"
- use context || OPTIONS+=" --without-context --without-coroutine"
-
- OPTIONS+=" pch=off"
- OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
- OPTIONS+=" --layout=system"
- OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if mpi_needed; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools > /dev/null || die
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
- find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if mpi_needed; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if mpi_needed; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
diff --git a/dev-libs/boost/boost-1.60.0.ebuild b/dev-libs/boost/boost-1.60.0.ebuild
deleted file mode 100644
index 426b974048f..00000000000
--- a/dev-libs/boost/boost-1.60.0.ebuild
+++ /dev/null
@@ -1,408 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
- "${FILESDIR}/${PN}-1.60.0-deprecated-header-ice_not.patch"
- "${FILESDIR}/${PN}-1.60.0-auto-pointer-python.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
-mpi_needed() {
- multilib_is_native_abi && use mpi
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if mpi_needed; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
- echo b2 ${b2_opts}
- b2 ${b2_opts}
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
- use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
- mpi_needed || OPTIONS+=" --without-mpi"
- use nls || OPTIONS+=" --without-locale"
- use context || OPTIONS+=" --without-context --without-coroutine --without-coroutine2"
-
- OPTIONS+=" pch=off"
- OPTIONS+=" --boost-build=\"${EPREFIX}\"/usr/share/boost-build --prefix=\"${ED}usr\""
- OPTIONS+=" --layout=system"
- OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if mpi_needed; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools > /dev/null || die
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
- find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if mpi_needed; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- ${OPTIONS} \
- ${PYTHON_OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if mpi_needed; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
diff --git a/dev-libs/boost/boost-1.61.0-r1.ebuild b/dev-libs/boost/boost-1.61.0-r1.ebuild
deleted file mode 100644
index 48f16ecdbc9..00000000000
--- a/dev-libs/boost/boost-1.61.0-r1.ebuild
+++ /dev/null
@@ -1,428 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if use mpi; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- use mpi || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-coroutine2
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED}usr"
- --layout=system
- threading=$(usex threads multi single)
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if use mpi; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools > /dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
- find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if use mpi; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if use mpi; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
diff --git a/dev-libs/boost/boost-1.61.0.ebuild b/dev-libs/boost/boost-1.61.0.ebuild
deleted file mode 100644
index 2a56268a16e..00000000000
--- a/dev-libs/boost/boost-1.61.0.ebuild
+++ /dev/null
@@ -1,433 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-PYTHON_COMPAT=( python{2_7,3_4,3_5} )
-
-inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
-
-MY_P="${PN}_$(replace_all_version_separators _)"
-MAJOR_V="$(get_version_component_range 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="http://www.boost.org/"
-SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-
-IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
-
-RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- mpi? ( virtual/mpi[cxx,threads] )
- python? ( ${PYTHON_DEPS} )
- app-arch/bzip2[${MULTILIB_USEDEP}]
- sys-libs/zlib[${MULTILIB_USEDEP}]
- !app-admin/eselect-boost"
-DEPEND="${RDEPEND}
- =dev-util/boost-build-${MAJOR_V}*"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-S="${WORKDIR}/${MY_P}"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-PATCHES=(
- "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
- "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
- "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
- "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
- "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
- "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
- "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
-mpi_needed() {
- multilib_is_native_abi && use mpi
-}
-
-create_user-config.jam() {
- local compiler compiler_version compiler_executable
-
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- compiler_executable="$(tc-getCXX)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- compiler_executable="$(tc-getCXX)"
- fi
- local mpi_configuration python_configuration
-
- if mpi_needed; then
- mpi_configuration="using mpi ;"
- fi
-
- if python_bindings_needed; then
- # boost expects libpython$(pyver) and doesn't allow overrides
- # and the build system is so creepy that it's easier just to
- # provide a symlink (linker's going to use SONAME anyway)
- # TODO: replace it with proper override one day
- ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
-
- if tc-is-cross-compiler; then
- python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
- else
- # note: we need to provide version explicitly because of
- # a bug in the build system:
- # https://github.com/boostorg/build/pull/104
- python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
- fi
- fi
-
- cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
-using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
-${mpi_configuration}
-${python_configuration}
-__EOF__
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}etc/site-config.jam" ]]; then
- grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
- (
- eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
- die
- )
- fi
-}
-
-src_prepare() {
- default
-
- # Do not try to build missing 'wave' tool, bug #522682
- # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
- sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
-
- multilib_copy_sources
-}
-
-ejam() {
- local b2_opts=(
- "--user-config=${BOOST_ROOT}/user-config.jam"
- "$@"
- )
- echo b2 "${b2_opts[@]}"
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- elif [[ ${CHOST} == *-winnt* ]]; then
- compiler=parity
- if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
- compilerVersion=trunk
- else
- compilerVersion=$($(tc-getCXX) -v | sed '1q' \
- | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
- fi
- compilerExecutable=$(tc-getCXX)
- fi
-
- # bug 298489
- if use ppc || use ppc64; then
- [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
- fi
-
- # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
- append-cxxflags -std=gnu++98
-
- use icu && OPTIONS+=(
- "-sICU_PATH=${EPREFIX}/usr"
- )
- use icu || OPTIONS+=(
- --disable-icu
- boost.locale.icu=off
- )
- mpi_needed || OPTIONS+=(
- --without-mpi
- )
- use nls || OPTIONS+=(
- --without-locale
- )
- use context || OPTIONS+=(
- --without-context
- --without-coroutine
- --without-coroutine2
- )
-
- OPTIONS+=(
- pch=off
- --boost-build="${EPREFIX}"/usr/share/boost-build
- --prefix="${ED}usr"
- --layout=system
- threading=$(usex threads multi single)
- link=$(usex static-libs shared,static shared)
- )
-
- [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
- -sNO_BZIP2=1
- )
-}
-
-multilib_src_compile() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- PYTHON_DIRS=""
- MPI_PYTHON_MODULE=""
-
- building() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost libraries failed"
-
- if python_bindings_needed; then
- if [[ -z "${PYTHON_DIRS}" ]]; then
- PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
- else
- if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- local dir
- for dir in ${PYTHON_DIRS}; do
- mv ${dir} ${dir}-${EPYTHON} \
- || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
- done
-
- if mpi_needed; then
- if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
- MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
- if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
- die "Multiple mpi.so files found"
- fi
- else
- if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
- die "Inconsistent structure of build directories"
- fi
- fi
-
- mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
- || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
- fi
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl building
- else
- building
- fi
-
- if tools_needed; then
- pushd tools > /dev/null || die
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- || die "Building of Boost tools failed"
- popd > /dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use python; then
- rm -r "${ED}"/usr/include/boost/python* || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
- find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
- find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- local -x BOOST_ROOT="${BUILD_DIR}"
- installation() {
- create_user-config.jam
-
- local PYTHON_OPTIONS
- if python_bindings_needed; then
- local dir
- for dir in ${PYTHON_DIRS}; do
- cp -pr ${dir}-${EPYTHON} ${dir} \
- || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
- done
-
- if mpi_needed; then
- cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
- cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
- || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
- fi
- PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
- else
- PYTHON_OPTIONS=" --without-python"
- fi
-
- ejam \
- "${OPTIONS[@]}" \
- ${PYTHON_OPTIONS} \
- --includedir="${ED}usr/include" \
- --libdir="${ED}usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- if python_bindings_needed; then
- rm -r ${PYTHON_DIRS} || die
-
- # Move mpi.so Python module to Python site-packages directory.
- # https://svn.boost.org/trac/boost/ticket/2838
- if mpi_needed; then
- local moddir=$(python_get_sitedir)/boost
- # moddir already includes eprefix
- mkdir -p "${D}${moddir}" || die
- mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
- cat << EOF > "${D}${moddir}/__init__.py" || die
-import sys
-if sys.platform.startswith('linux'):
- import DLFCN
- flags = sys.getdlopenflags()
- sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
- from . import mpi
- sys.setdlopenflags(flags)
- del DLFCN, flags
-else:
- from . import mpi
-del sys
-EOF
- fi
-
- python_optimize
- fi
- }
- if python_bindings_needed; then
- python_foreach_impl installation
- else
- installation
- fi
-
- pushd "${ED}usr/$(get_libdir)" > /dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd > /dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
- [[ -L ${symlink} ]] && rm -f "${symlink}"
- done
-}
diff --git a/dev-libs/boost/files/boost-1.52.0-threads.patch b/dev-libs/boost/files/boost-1.52.0-threads.patch
deleted file mode 100644
index e078fc2e106..00000000000
--- a/dev-libs/boost/files/boost-1.52.0-threads.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Index: /trunk/boostcpp.jam
-===================================================================
---- /trunk/boostcpp.jam (revision 79301)
-+++ /trunk/boostcpp.jam (revision 81000)
-@@ -210,6 +210,44 @@
- }
-
-+rule filtered-target ( name : message + : sources + : requirements * )
-+{
-+ message $(name)-message : warning: $(message) ;
-+ alias $(name) : $(sources) : $(requirements) ;
-+ alias $(name) : $(name)-message ;
-+
-+ local p = [ project.current ] ;
-+ $(p).mark-target-as-explicit $(name) ;
-+ $(p).mark-target-as-explicit $(name)-message ;
-+}
-+
- rule declare_install_and_stage_proper_targets ( libraries * : headers * )
- {
-+ for local l in $(libraries)
-+ {
-+ if $(l) = locale
-+ {
-+ filtered-target $(l)-for-install :
-+ Skipping Boost.Locale library with threading=single. :
-+ libs/$(l)/build : <threading>multi ;
-+ }
-+ else if $(l) = wave
-+ {
-+ filtered-target $(l)-for-install :
-+ Skipping Boost.Wave library with threading=single. :
-+ libs/$(l)/build : <threading>multi ;
-+ }
-+ else if $(l) = thread
-+ {
-+ filtered-target $(l)-for-install :
-+ Skipping Boost.Thread library with threading=single. :
-+ libs/$(l)/build : <threading>multi ;
-+ }
-+ else
-+ {
-+ alias $(l)-for-install : libs/$(l)/build ;
-+ }
-+ }
-+ local library-targets = $(libraries)-for-install ;
-+
- install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
-
-@@ -239,5 +277,5 @@
- : $(install-requirements) <install-no-version-symlinks>on
- :
-- : libs/$(libraries)/build
-+ : $(libraries)-for-install
- : $(headers)
- ;
-@@ -246,5 +284,5 @@
- # Install just library.
- install stage-proper
-- : libs/$(libraries)/build
-+ : $(libraries)-for-install
- : <location>$(stage-locate)/lib
- <install-dependencies>on <install-type>LIB
diff --git a/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch b/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch
deleted file mode 100644
index df2a14a34ae..00000000000
--- a/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Make tools compiled successfully with forced C++98
-
-Gentoo bugreport: https://bugs.gentoo.org/show_bug.cgi?id=503468
-
-diff --git a/tools/regression/src/compiler_status.cpp b/tools/regression/src/compiler_status.cpp
-index 63f8134..3f3374a 100644
---- a/tools/regression/src/compiler_status.cpp
-+++ b/tools/regression/src/compiler_status.cpp
-@@ -128,7 +128,7 @@ namespace
- string ln(line);
- if (ln.find("Revision: ") != string::npos)
- {
-- for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
-+ for(string::iterator itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
- rev += *itr;
- }
- }
diff --git a/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch b/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch
deleted file mode 100644
index 547dbbd5caa..00000000000
--- a/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From eec808554936ae068b23df07ab54d4dc6302a695 Mon Sep 17 00:00:00 2001
-From: jzmaddock <jzmaddock@gmail.com>
-Date: Sat, 23 Aug 2014 09:38:02 +0100
-Subject: [PATCH] Fix BOOST_NO_CXX11_VARIADIC_TEMPLATES definition - the
- feature was introduced in GCC 4.4.
-
----
- boost/config/compiler/gcc.hpp | 9 +--------
- 1 file changed, 1 insertion(+), 8 deletions(-)
-
-diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
-index f37159d..97d8a18 100644
---- a/boost/config/compiler/gcc.hpp
-+++ b/boost/config/compiler/gcc.hpp
-@@ -154,14 +154,6 @@
- # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
- # define BOOST_NO_CXX11_RVALUE_REFERENCES
- # define BOOST_NO_CXX11_STATIC_ASSERT
--
--// Variadic templates compiler:
--// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
--# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
--# define BOOST_HAS_VARIADIC_TMPL
--# else
--# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
--# endif
- #endif
-
- // C++0x features in 4.4.n and later
-@@ -176,6 +168,7 @@
- # define BOOST_NO_CXX11_DELETED_FUNCTIONS
- # define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
- # define BOOST_NO_CXX11_INLINE_NAMESPACES
-+# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
- #endif
-
- #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
diff --git a/dev-libs/boost/files/boost-1.56.0-atomic.patch b/dev-libs/boost/files/boost-1.56.0-atomic.patch
deleted file mode 100644
index 6d724188c8b..00000000000
--- a/dev-libs/boost/files/boost-1.56.0-atomic.patch
+++ /dev/null
@@ -1,402 +0,0 @@
-Fixed in 1.57
-
-commit 415db7054723291042e4ff1ffa8fdd5bc8b07163
-Author: Andrey Semashev <andrey.semashev@gmail.com>
-Date: Sat Sep 27 20:40:09 2014 +0400
-
- Added support for extending operations to GCC atomic backend.
-
- Fix for #10446. Some platforms (e.g. Raspberry Pi) only support atomic ops of some particular size but not less. Use extending arithmetic operations for these platforms. Also, make sure bools are always treated as 8-bit values, even if the actual type is larger. This makes its use in atomic<>, atomic_flag and lock pool more consistent.
-
-diff --git a/include/boost/atomic/capabilities.hpp b/include/boost/atomic/capabilities.hpp
-index 658dd22..05bbb0f 100644
---- a/include/boost/atomic/capabilities.hpp
-+++ b/include/boost/atomic/capabilities.hpp
-@@ -142,6 +142,7 @@
- #define BOOST_ATOMIC_ADDRESS_LOCK_FREE BOOST_ATOMIC_POINTER_LOCK_FREE
-
- #ifndef BOOST_ATOMIC_BOOL_LOCK_FREE
-+// We store bools in 1-byte storage in all backends
- #define BOOST_ATOMIC_BOOL_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
- #endif
-
-diff --git a/include/boost/atomic/detail/atomic_template.hpp b/include/boost/atomic/detail/atomic_template.hpp
-index 4fd6d79..bc3922a 100644
---- a/include/boost/atomic/detail/atomic_template.hpp
-+++ b/include/boost/atomic/detail/atomic_template.hpp
-@@ -234,7 +234,7 @@ class base_atomic< bool, int >
- {
- private:
- typedef bool value_type;
-- typedef atomics::detail::operations< storage_size_of< value_type >::value, false > operations;
-+ typedef atomics::detail::operations< 1u, false > operations;
-
- protected:
- typedef value_type value_arg_type;
-diff --git a/include/boost/atomic/detail/caps_gcc_atomic.hpp b/include/boost/atomic/detail/caps_gcc_atomic.hpp
-index 8299ad0..f4e7a70 100644
---- a/include/boost/atomic/detail/caps_gcc_atomic.hpp
-+++ b/include/boost/atomic/detail/caps_gcc_atomic.hpp
-@@ -29,66 +29,48 @@
- #define BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B 1
- #endif
-
--#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
--#define BOOST_ATOMIC_FLAG_LOCK_FREE 2
--#else
--#define BOOST_ATOMIC_FLAG_LOCK_FREE 0
--#endif
--#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
--#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
--#else
--#define BOOST_ATOMIC_CHAR_LOCK_FREE 0
--#endif
--#if __GCC_ATOMIC_CHAR16_T_LOCK_FREE == 2
--#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2
--#else
--#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 0
--#endif
--#if __GCC_ATOMIC_CHAR32_T_LOCK_FREE == 2
--#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2
-+#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
-+#define BOOST_ATOMIC_INT128_LOCK_FREE 2
- #else
--#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 0
-+#define BOOST_ATOMIC_INT128_LOCK_FREE 0
- #endif
--#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
--#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
-+
-+#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
-+#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
- #else
--#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
-+#define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT128_LOCK_FREE
- #endif
--#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
--#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
-+
-+#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
-+#define BOOST_ATOMIC_LONG_LOCK_FREE 2
- #else
--#define BOOST_ATOMIC_SHORT_LOCK_FREE 0
-+#define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_LLONG_LOCK_FREE
- #endif
-+
- #if __GCC_ATOMIC_INT_LOCK_FREE == 2
- #define BOOST_ATOMIC_INT_LOCK_FREE 2
- #else
--#define BOOST_ATOMIC_INT_LOCK_FREE 0
--#endif
--#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
--#define BOOST_ATOMIC_LONG_LOCK_FREE 2
--#else
--#define BOOST_ATOMIC_LONG_LOCK_FREE 0
-+#define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_LONG_LOCK_FREE
- #endif
--#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
--#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
-+
-+#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
-+#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
- #else
--#define BOOST_ATOMIC_LLONG_LOCK_FREE 0
-+#define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT_LOCK_FREE
- #endif
--#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
--#define BOOST_ATOMIC_INT128_LOCK_FREE 2
-+
-+#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
-+#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
- #else
--#define BOOST_ATOMIC_INT128_LOCK_FREE 0
-+#define BOOST_ATOMIC_CHAR_LOCK_FREE BOOST_ATOMIC_SHORT_LOCK_FREE
- #endif
-+
- #if __GCC_ATOMIC_POINTER_LOCK_FREE == 2
- #define BOOST_ATOMIC_POINTER_LOCK_FREE 2
- #else
- #define BOOST_ATOMIC_POINTER_LOCK_FREE 0
- #endif
--#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
--#define BOOST_ATOMIC_BOOL_LOCK_FREE 2
--#else
--#define BOOST_ATOMIC_BOOL_LOCK_FREE 0
--#endif
-+
-
- #define BOOST_ATOMIC_INT8_LOCK_FREE BOOST_ATOMIC_CHAR_LOCK_FREE
-
-@@ -128,6 +110,24 @@
- #define BOOST_ATOMIC_INT64_LOCK_FREE 0
- #endif
-
-+
-+#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
-+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
-+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
-+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
-+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
-+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
-+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
-+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
-+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
-+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
-+#else
-+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
-+#endif
-+
-+#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
-+#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
-+
- #define BOOST_ATOMIC_THREAD_FENCE 2
- #define BOOST_ATOMIC_SIGNAL_FENCE 2
-
-diff --git a/include/boost/atomic/detail/ops_gcc_atomic.hpp b/include/boost/atomic/detail/ops_gcc_atomic.hpp
-index 2297791..2e4c37b 100644
---- a/include/boost/atomic/detail/ops_gcc_atomic.hpp
-+++ b/include/boost/atomic/detail/ops_gcc_atomic.hpp
-@@ -24,6 +24,15 @@
- #include <boost/atomic/detail/ops_cas_based.hpp>
- #endif
-
-+#if __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE || __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE ||\
-+ __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE || __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE ||\
-+ __GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE || __GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE ||\
-+ __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE
-+// There are platforms where we need to use larger storage types
-+#include <boost/atomic/detail/int_sizes.hpp>
-+#include <boost/atomic/detail/ops_extending_cas_based.hpp>
-+#endif
-+
- #ifdef BOOST_HAS_PRAGMA_ONCE
- #pragma once
- #endif
-@@ -154,73 +163,206 @@ struct gcc_atomic_operations
- }
- };
-
--#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
-+#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
-+#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
-+
-+// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
-+// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
- template< bool Signed >
--struct operations< 1u, Signed > :
-- public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
-+struct operations< 16u, Signed > :
-+ public cas_based_operations< gcc_dcas_x86_64< Signed > >
- {
- };
-+
-+#else
-+
-+template< bool Signed >
-+struct operations< 16u, Signed > :
-+ public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
-+{
-+};
-+
-+#endif
- #endif
-
--#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
-+
-+#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
-+#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
-+
-+// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
- template< bool Signed >
--struct operations< 2u, Signed > :
-- public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
-+struct operations< 8u, Signed > :
-+ public cas_based_operations< gcc_dcas_x86< Signed > >
-+{
-+};
-+
-+#elif (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
-+
-+#define BOOST_ATOMIC_DETAIL_INT64_EXTENDED
-+
-+template< bool Signed >
-+struct operations< 8u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 8u, Signed >
- {
- };
-+
-+#else
-+
-+template< bool Signed >
-+struct operations< 8u, Signed > :
-+ public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
-+{
-+};
-+
-+#endif
- #endif
-
- #if BOOST_ATOMIC_INT32_LOCK_FREE > 0
-+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
-+
-+#define BOOST_ATOMIC_DETAIL_INT32_EXTENDED
-+
-+#if !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
-+
-+template< bool Signed >
-+struct operations< 4u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 4u, Signed >
-+{
-+};
-+
-+#else // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
-+
-+template< bool Signed >
-+struct operations< 4u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 4u, Signed >
-+{
-+};
-+
-+#endif // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
-+
-+#else
-+
- template< bool Signed >
- struct operations< 4u, Signed > :
- public gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >
- {
- };
-+
-+#endif
- #endif
-
--#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
--#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
-+#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
-+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
-+
-+#define BOOST_ATOMIC_DETAIL_INT16_EXTENDED
-+
-+#if !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
-
--// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
- template< bool Signed >
--struct operations< 8u, Signed > :
-- public cas_based_operations< gcc_dcas_x86< Signed > >
-+struct operations< 2u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 2u, Signed >
-+{
-+};
-+
-+#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
-+
-+template< bool Signed >
-+struct operations< 2u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 2u, Signed >
- {
- };
-
- #else
-
- template< bool Signed >
--struct operations< 8u, Signed > :
-- public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
-+struct operations< 2u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 2u, Signed >
-+{
-+};
-+
-+#endif
-+
-+#else
-+
-+template< bool Signed >
-+struct operations< 2u, Signed > :
-+ public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
- {
- };
-
- #endif
- #endif
-
--#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
--#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
-+#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
-+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
-+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE) ||\
-+ (__GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE) ||\
-+ (__GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE)
-+
-+#if !defined(BOOST_ATOMIC_DETAIL_INT16_EXTENDED)
-
--// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
--// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
- template< bool Signed >
--struct operations< 16u, Signed > :
-- public cas_based_operations< gcc_dcas_x86_64< Signed > >
-+struct operations< 1u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >, 1u, Signed >
-+{
-+};
-+
-+#elif !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
-+
-+template< bool Signed >
-+struct operations< 1u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 1u, Signed >
-+{
-+};
-+
-+#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
-+
-+template< bool Signed >
-+struct operations< 1u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 1u, Signed >
- {
- };
-
- #else
-
- template< bool Signed >
--struct operations< 16u, Signed > :
-- public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
-+struct operations< 1u, Signed > :
-+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 1u, Signed >
-+{
-+};
-+
-+#endif
-+
-+#else
-+
-+template< bool Signed >
-+struct operations< 1u, Signed > :
-+ public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
- {
- };
-
- #endif
- #endif
-
-+#undef BOOST_ATOMIC_DETAIL_INT16_EXTENDED
-+#undef BOOST_ATOMIC_DETAIL_INT32_EXTENDED
-+#undef BOOST_ATOMIC_DETAIL_INT64_EXTENDED
-+
- BOOST_FORCEINLINE void thread_fence(memory_order order) BOOST_NOEXCEPT
- {
- __atomic_thread_fence(atomics::detail::convert_memory_order_to_gcc(order));
diff --git a/dev-libs/boost/files/boost-1.58.0-fix-non-constexpr-types-regression.patch b/dev-libs/boost/files/boost-1.58.0-fix-non-constexpr-types-regression.patch
deleted file mode 100644
index da54a48bc32..00000000000
--- a/dev-libs/boost/files/boost-1.58.0-fix-non-constexpr-types-regression.patch
+++ /dev/null
@@ -1,233 +0,0 @@
-diff --git a/boost/fusion/adapted/struct/detail/define_struct.hpp b/boost/fusion/adapted/struct/detail/define_struct.hpp
-index 2554292..ce3737e 100644
---- a/boost/fusion/adapted/struct/detail/define_struct.hpp
-+++ b/boost/fusion/adapted/struct/detail/define_struct.hpp
-@@ -69,7 +69,7 @@
- ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
- \
- template<typename Seq> \
-- BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- self_type& \
- operator=(Seq const& seq) \
- { \
-@@ -128,7 +128,7 @@
- ATTRIBUTE_TUPEL_SIZE, \
- ATTRIBUTES_SEQ) \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- NAME() \
- : BOOST_PP_SEQ_FOR_EACH_I_R( \
- 1, \
-@@ -137,7 +137,7 @@
- ATTRIBUTES_SEQ) \
- {} \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- NAME(self_type const& other_self) \
- : BOOST_PP_SEQ_FOR_EACH_I_R( \
- 1, \
-@@ -147,7 +147,7 @@
- {} \
- \
- template<typename Seq> \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- NAME(Seq const& seq \
- BOOST_PP_IF( \
- BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)), \
-@@ -167,7 +167,7 @@
- #define BOOST_FUSION_DEFINE_STRUCT_CTOR_1( \
- NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- explicit \
- NAME(boost::call_traits< \
- BOOST_PP_TUPLE_ELEM( \
-@@ -180,7 +180,7 @@
- #define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_1( \
- TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- explicit \
- NAME(typename boost::call_traits< \
- typename boost::fusion::detail::get_first_arg< \
-@@ -217,7 +217,7 @@
- #define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_N( \
- TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
- 1, \
- BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_ARG_I, \
-@@ -245,7 +245,7 @@
- #define BOOST_FUSION_DEFINE_STRUCT_CTOR_N( \
- NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
- 1, \
- BOOST_FUSION_DEFINE_STRUCT_CTOR_ARG_I, \
-diff --git a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
-index a5a3ae0..a037ffe 100644
---- a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
-+++ b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
-@@ -66,7 +66,7 @@
- #define BOOST_FUSION_IGNORE_2(ARG1, ARG2)
-
- #define BOOST_FUSION_MAKE_COPY_CONSTRUCTOR(NAME, ATTRIBUTES_SEQ) \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- NAME(BOOST_PP_SEQ_FOR_EACH_I( \
- BOOST_FUSION_MAKE_CONST_REF_PARAM, \
- ~, \
-@@ -337,7 +337,7 @@
- typedef boost::mpl::int_<N> index; \
- typedef boost_fusion_detail_Seq sequence_type; \
- \
-- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
-+ BOOST_FUSION_GPU_ENABLED \
- BOOST_FUSION_ITERATOR_NAME(NAME)(boost_fusion_detail_Seq& seq) \
- : seq_(seq) \
- BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES( \
-diff --git a/libs/fusion/test/sequence/adapt_struct.cpp b/libs/fusion/test/sequence/adapt_struct.cpp
-index c0cd304..121827f 100644
---- a/libs/fusion/test/sequence/adapt_struct.cpp
-+++ b/libs/fusion/test/sequence/adapt_struct.cpp
-@@ -67,6 +67,17 @@ namespace ns
- foo foo_;
- int y;
- };
-+
-+
-+ // Testing non-constexpr compatible types
-+ struct employee {
-+ std::string name;
-+ std::string nickname;
-+
-+ employee(std::string name, std::string nickname)
-+ : name(name), nickname(nickname)
-+ {}
-+ };
- }
-
- #if BOOST_PP_VARIADICS
-@@ -96,6 +107,13 @@ namespace ns
- y
- )
-
-+ BOOST_FUSION_ADAPT_STRUCT(
-+ ns::employee,
-+ name,
-+ nickname
-+ )
-+
-+
- #else // BOOST_PP_VARIADICS
-
- BOOST_FUSION_ADAPT_STRUCT(
-@@ -123,6 +141,12 @@ namespace ns
- (BOOST_FUSION_ADAPT_AUTO, y)
- )
-
-+ BOOST_FUSION_ADAPT_STRUCT(
-+ ns::employee,
-+ (std::string, name)
-+ (BOOST_FUSION_ADAPT_AUTO, nickname)
-+ )
-+
- #endif
-
- int
-@@ -224,6 +248,15 @@ main()
- BOOST_TEST(v2 >= v1);
- }
-
-+ {
-+ ns::employee emp("John Doe", "jdoe");
-+ std::cout << at_c<0>(emp) << std::endl;
-+ std::cout << at_c<1>(emp) << std::endl;
-+
-+ fusion::vector<std::string, std::string> v1("John Doe", "jdoe");
-+ BOOST_TEST(emp == v1);
-+ }
-+
- return boost::report_errors();
- }
-
-diff --git a/libs/fusion/test/sequence/define_struct.cpp b/libs/fusion/test/sequence/define_struct.cpp
-index 795fdf6..63b5a19 100644
---- a/libs/fusion/test/sequence/define_struct.cpp
-+++ b/libs/fusion/test/sequence/define_struct.cpp
-@@ -26,6 +26,14 @@ BOOST_FUSION_DEFINE_STRUCT(
-
- BOOST_FUSION_DEFINE_STRUCT(BOOST_PP_EMPTY(), s, (int, m))
-
-+// Testing non-constexpr compatible types
-+BOOST_FUSION_DEFINE_STRUCT(
-+ (ns),
-+ employee,
-+ (std::string, name)
-+ (std::string, nickname)
-+)
-+
- int
- main()
- {
-@@ -100,6 +108,14 @@ main()
- BOOST_TEST(p == make_vector(3,5));
- }
-
-+ {
-+ ns::employee emp = make_list("John Doe", "jdoe");
-+ std::cout << at_c<0>(emp) << std::endl;
-+ std::cout << at_c<1>(emp) << std::endl;
-+
-+ BOOST_TEST(emp == make_vector("John Doe", "jdoe"));
-+ }
-+
- return boost::report_errors();
- }
-
-diff --git a/libs/fusion/test/sequence/define_struct_inline.cpp b/libs/fusion/test/sequence/define_struct_inline.cpp
-index e849ce9..d34a142 100644
---- a/libs/fusion/test/sequence/define_struct_inline.cpp
-+++ b/libs/fusion/test/sequence/define_struct_inline.cpp
-@@ -41,6 +41,13 @@ namespace ns
- BOOST_FUSION_DEFINE_STRUCT_INLINE(s, (int, m))
-
- BOOST_FUSION_DEFINE_STRUCT_INLINE(empty_struct, )
-+
-+ // Testing non-constexpr compatible types
-+ BOOST_FUSION_DEFINE_STRUCT_INLINE(
-+ employee,
-+ (std::string, name)
-+ (std::string, nickname)
-+ )
- }
-
- template <typename Point>
-@@ -128,6 +135,17 @@ main()
- {
- run_test<cls::point>(); // test with non-template enclosing class
- run_test<tpl_cls<>::point>(); // test with template enclosing class
-+
-+ {
-+ using namespace boost::fusion;
-+
-+ ns::employee emp = make_list("John Doe", "jdoe");
-+ std::cout << at_c<0>(emp) << std::endl;
-+ std::cout << at_c<1>(emp) << std::endl;
-+
-+ BOOST_TEST(emp == make_vector("John Doe", "jdoe"));
-+ }
-+
- return boost::report_errors();
-
- }
diff --git a/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch b/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch
deleted file mode 100644
index 1566c3417fc..00000000000
--- a/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f2c465ffa508459216f7093bf95ba001ad994206 Mon Sep 17 00:00:00 2001
-From: vslashg <veloso@verylowsodium.com>
-Date: Mon, 29 Feb 2016 13:33:35 -0500
-Subject: [PATCH] Fix auto-pointer registration in Boost Python 1.60.
-
-The conditional instantiation magic of maybe_register_pointer_to_python() assumes that use_value_holder and use_back_reference will be one of the boost::mpl::bool_ types, but this assumption is no longer true in Boost 1.60, where they can be standard library bool wrappers instead.
-
-Explicitly defining these types as mpl::bool_ classes fixes https://github.com/boostorg/python/issues/56.
----
- boost/python/object/class_metadata.hpp | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/boost/python/object/class_metadata.hpp b/boost/python/object/class_metadata.hpp
-index c71cf67..5009c17 100644
---- a/boost/python/object/class_metadata.hpp
-+++ b/boost/python/object/class_metadata.hpp
-@@ -164,7 +164,7 @@ struct class_metadata
- >::type held_type;
-
- // Determine if the object will be held by value
-- typedef is_convertible<held_type*,T*> use_value_holder;
-+ typedef mpl::bool_<is_convertible<held_type*,T*>::value> use_value_holder;
-
- // Compute the "wrapped type", that is, if held_type is a smart
- // pointer, we're talking about the pointee.
-@@ -175,10 +175,12 @@ struct class_metadata
- >::type wrapped;
-
- // Determine whether to use a "back-reference holder"
-- typedef mpl::or_<
-- has_back_reference<T>
-- , is_same<held_type_arg,T>
-- , is_base_and_derived<T,wrapped>
-+ typedef mpl::bool_<
-+ mpl::or_<
-+ has_back_reference<T>
-+ , is_same<held_type_arg,T>
-+ , is_base_and_derived<T,wrapped>
-+ >::value
- > use_back_reference;
-
- // Select the holder.
diff --git a/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch b/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch
deleted file mode 100644
index 624dc648ae4..00000000000
--- a/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From: jzmaddock <john@johnmaddock.co.uk>
-Date: Tue, 21 Jul 2015 18:54:48 +0100
-Subject: [PATCH] Remove deprecated type_traits usage.
-
----
- include/boost/graph/adjacency_matrix.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/boost/graph/adjacency_matrix.hpp b/include/boost/graph/adjacency_matrix.hpp
-index b1078d9..ade7351 100644
---- a/boost/graph/adjacency_matrix.hpp
-+++ b/boost/graph/adjacency_matrix.hpp
-@@ -443,7 +443,7 @@ namespace boost {
- // graph type. Instead, use directedS, which also provides the
- // functionality required for a Bidirectional Graph (in_edges,
- // in_degree, etc.).
-- BOOST_STATIC_ASSERT(type_traits::ice_not<(is_same<Directed, bidirectionalS>::value)>::value);
-+ BOOST_STATIC_ASSERT(!(is_same<Directed, bidirectionalS>::value));
-
- typedef typename mpl::if_<is_directed,
- bidirectional_tag, undirected_tag>::type
-From: Vladimir Prus <vladimir.prus@gmail.com>
-Date: Mon, 7 Dec 2015 13:55:07 +0300
-Subject: [PATCH] Add missing include of <list>.
-
-Thanks to Amit Prakash Ambasta for the report.
----
- include/boost/graph/r_c_shortest_paths.hpp | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/boost/graph/r_c_shortest_paths.hpp b/include/boost/graph/r_c_shortest_paths.hpp
-index afa50cf..7e490fc 100644
---- a/boost/graph/r_c_shortest_paths.hpp
-+++ b/boost/graph/r_c_shortest_paths.hpp
-@@ -11,6 +11,7 @@
- #include <map>
- #include <queue>
- #include <vector>
-+#include <list>
-
- #include <boost/graph/graph_traits.hpp>
- #include <boost/graph/iteration_macros.hpp>
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2018-07-31 22:27 Patrick McLean
0 siblings, 0 replies; 27+ messages in thread
From: Patrick McLean @ 2018-07-31 22:27 UTC (permalink / raw
To: gentoo-commits
commit: 224556f6e9363673a864d8fd7fe98d37beb8051e
Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 31 22:27:11 2018 +0000
Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Jul 31 22:27:11 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=224556f6
dev-libs/boost: Unkeyworded version bump to 1.67.0 (bug #653878)
Bug: https://bugs.gentoo.org/653878
Package-Manager: Portage-2.3.44, Repoman-2.3.10
dev-libs/boost/Manifest | 1 +
dev-libs/boost/boost-1.67.0.ebuild | 419 +++++++++++++++++++++
dev-libs/boost/files/boost-1.67.0-fix-python.patch | 153 ++++++++
3 files changed, 573 insertions(+)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index f5513e8c136..19a425758e8 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,4 @@
DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
+DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8
diff --git a/dev-libs/boost/boost-1.67.0.ebuild b/dev-libs/boost/boost-1.67.0.ebuild
new file mode 100644
index 00000000000..7eb5c945be4
--- /dev/null
+++ b/dev-libs/boost/boost-1.67.0.ebuild
@@ -0,0 +1,419 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} )
+
+inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_P="${PN}_$(ver_rs 1- _)"
+MAJOR_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+
+IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
+
+RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ >dev-python/numpy-1.7[${PYTHON_USEDEP}]
+ )
+ app-arch/bzip2[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ !app-admin/eselect-boost"
+DEPEND="${RDEPEND}
+ =dev-util/boost-build-${MAJOR_V}*"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/${MY_P}"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
+ "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
+ "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
+ "${FILESDIR}/${PN}-1.67.0-fix-python.patch"
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local compiler compiler_version compiler_executable
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ compiler_executable="$(tc-getCXX)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ compiler_executable="$(tc-getCXX)"
+ fi
+ local mpi_configuration python_configuration
+
+ if use mpi; then
+ mpi_configuration="using mpi ;"
+ fi
+
+ if python_bindings_needed; then
+ # boost expects libpython$(pyver) and doesn't allow overrides
+ # and the build system is so creepy that it's easier just to
+ # provide a symlink (linker's going to use SONAME anyway)
+ # TODO: replace it with proper override one day
+ ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
+
+ if tc-is-cross-compiler; then
+ python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
+ else
+ # note: we need to provide version explicitly because of
+ # a bug in the build system:
+ # https://github.com/boostorg/build/pull/104
+ python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
+ fi
+ fi
+
+ cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
+using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+${mpi_configuration}
+${python_configuration}
+__EOF__
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
+ grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
+ (
+ eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
+ die
+ )
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Do not try to build missing 'wave' tool, bug #522682
+ # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
+ sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
+
+ multilib_copy_sources
+}
+
+ejam() {
+ local b2_opts=(
+ "--user-config=${BOOST_ROOT}/user-config.jam"
+ "$@"
+ )
+ echo b2 "${b2_opts[@]}"
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "-sICU_PATH=${EPREFIX}/usr" '--disable-icu boost.locale.icu=off')
+ $(usex mpi '' '--without-mpi')
+ $(usex nls '' '--without-locale')
+ $(usex context '' '--without-context --without-coroutine --without-fiber')
+ $(usex threads '' '--without-thread')
+ --boost-build="${EPREFIX}"/usr/share/boost-build
+ --prefix="${ED%/}/usr"
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=$(usex static-libs shared,static shared)
+ $([[ ${CHOST} == *-winnt* ]] && printf -- '-sNO_BZIP2=1\n')
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ elif [[ ${CHOST} == *-winnt* ]]; then
+ compiler=parity
+ if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
+ compilerVersion=trunk
+ else
+ compilerVersion=$($(tc-getCXX) -v | sed '1q' \
+ | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,') || die "sed failed"
+ fi
+ compilerExecutable=$(tc-getCXX)
+ fi
+
+ # bug 298489
+ if use ppc || use ppc64; then
+ [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
+ fi
+
+ # Use C++14 globally as of 1.62
+ append-cxxflags -std=c++14
+}
+
+multilib_src_compile() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ PYTHON_DIRS=""
+ MPI_PYTHON_MODULE=""
+
+ building() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost libraries failed"
+
+ if python_bindings_needed; then
+ if [[ -z "${PYTHON_DIRS}" ]]; then
+ PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
+ else
+ if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ mv ${dir} ${dir}-${EPYTHON} \
+ || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
+ done
+
+ if use mpi; then
+ if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
+ MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
+ if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
+ die "Multiple mpi.so files found"
+ fi
+ else
+ if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
+ || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
+ fi
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl building
+ else
+ building
+ fi
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use python; then
+ rm -r "${ED%/}"/usr/include/boost/python* || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED%/}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED%/}"/usr/include/boost/context || die
+ rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ installation() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ cp -pr ${dir}-${EPYTHON} ${dir} \
+ || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
+ done
+
+ if use mpi; then
+ cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
+ cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
+ fi
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ --includedir="${ED%/}/usr/include" \
+ --libdir="${ED%/}/usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ if python_bindings_needed; then
+ rm -r ${PYTHON_DIRS} || die
+
+ # Move mpi.so Python module to Python site-packages directory.
+ # https://svn.boost.org/trac/boost/ticket/2838
+ if use mpi; then
+ local moddir=$(python_get_sitedir)/boost
+ # moddir already includes eprefix
+ mkdir -p "${D}${moddir}" || die
+ mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
+ cat << EOF > "${D}${moddir}/__init__.py" || die
+import sys
+if sys.platform.startswith('linux'):
+ import DLFCN
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
+ from . import mpi
+ sys.setdlopenflags(flags)
+ del DLFCN, flags
+else:
+ from . import mpi
+del sys
+EOF
+ fi
+
+ python_optimize
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl installation
+ else
+ installation
+ fi
+
+ pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd >/dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED%/}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
+}
diff --git a/dev-libs/boost/files/boost-1.67.0-fix-python.patch b/dev-libs/boost/files/boost-1.67.0-fix-python.patch
new file mode 100644
index 00000000000..6f51152d12e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.67.0-fix-python.patch
@@ -0,0 +1,153 @@
+Python module needs to be built without these extra renames.
+MPI module needs to reference correct python
+
+~Index: boost_1_64_0/libs/mpi/build/Jamfile.v2
+~===================================================================
+~--- boost_1_64_0.orig/libs/mpi/build/Jamfile.v2
+~+++ boost_1_64_0/libs/mpi/build/Jamfile.v2
+~@@ -61,10 +61,10 @@ libraries += boost_mpi ;
+~ lib boost_mpi_python
+~ : # Sources
+~ python/serialize.cpp
+~+ /user-config//boost_python_alias
+~ : # Requirements
+~ <library>boost_mpi
+~ <library>/mpi//mpi [ mpi.extra-requirements ]
+~- <library>/boost/python//boost_python
+~ <link>shared:<define>BOOST_MPI_DYN_LINK=1
+~ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
+~ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
+~@@ -92,8 +92,8 @@ libraries += boost_mpi ;
+~ python/skeleton_and_content.cpp
+~ python/status.cpp
+~ python/py_timer.cpp
+~+ /user-config//boost_python_alias
+~ : # Requirements
+~- <library>/boost/python//boost_python
+~ <library>boost_mpi_python
+~ <library>boost_mpi
+~ <library>/mpi//mpi [ mpi.extra-requirements ]
+Index: boost_1_67_0/libs/mpi/build/Jamfile.v2
+===================================================================
+--- boost_1_67_0.orig/libs/mpi/build/Jamfile.v2
++++ boost_1_67_0/libs/mpi/build/Jamfile.v2
+@@ -60,33 +60,13 @@ libraries += boost_mpi ;
+
+ if [ python.configured ]
+ {
+- py2-version = [ py-version 2 ] ;
+- py3-version = [ py-version 3 ] ;
+-
+- # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile.
+- lib_boost_python(2) = boost_python ;
+- lib_boost_python(3) = boost_python3 ;
+-
+- lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ;
+- lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ;
+-
+- lib_boost_mpi_python(2) = boost_mpi_python ;
+- lib_boost_mpi_python(3) = boost_mpi_python3 ;
+-
+- lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ;
+- lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ;
+-
+- for local N in 2 3
+- {
+- if $(py$(N)-version)
+- {
+- lib $(lib_boost_mpi_python($(py$(N)-version)))
++ lib boost_mpi_python
+ : # Sources
+ python/serialize.cpp
+ : # Requirements
+ <library>boost_mpi
+ <library>/mpi//mpi [ mpi.extra-requirements ]
+- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
++ <library>/boost/python//boost_python
+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
+ <link>shared:<define>BOOST_MPI_PYTHON_DYN_LINK=1
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
+@@ -94,12 +74,12 @@ libraries += boost_mpi ;
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- <python>$(py$(N)-version)
+ : # Default build
+ <link>shared
+ : # Usage requirements
+ <library>/mpi//mpi [ mpi.extra-requirements ]
+ ;
++ libraries += boost_mpi_python ;
+
+ python-extension mpi
+ : # Sources
+@@ -116,8 +96,8 @@ libraries += boost_mpi ;
+ python/status.cpp
+ python/py_timer.cpp
+ : # Requirements
+- <library>/boost/python//$(lib_boost_python($(py$(N)-version)))
+- <library>$(lib_boost_mpi_python($(py$(N)-version)))
++ <library>/boost/python//boost_python
++ <library>boost_mpi_python
+ <library>boost_mpi
+ <library>/mpi//mpi [ mpi.extra-requirements ]
+ <link>shared:<define>BOOST_MPI_DYN_LINK=1
+@@ -125,16 +105,7 @@ libraries += boost_mpi ;
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
+ <link>shared <runtime-link>shared
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- <python>$(py$(N)-version)
+ ;
+-
+- libraries += $(lib_boost_mpi_python($(py$(N)-version))) ;
+- }
+- else
+- {
+- alias $(lib_boost_mpi_python($(N))) ;
+- }
+- }
+ }
+ }
+ else if ! ( --without-mpi in [ modules.peek : ARGV ] )
+Index: boost_1_67_0/libs/python/Jamfile
+===================================================================
+--- boost_1_67_0.orig/libs/python/Jamfile
++++ boost_1_67_0/libs/python/Jamfile
+@@ -36,9 +36,10 @@ local rule split-version ( version )
+ # 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) ;
++ # local major-minor = [ split-version $(version) ] ;
++ # local suffix = $(major-minor:J="") ;
++ # return $(suffix) ;
++ return "" ;
+ }
+
+
+diff -ur boost_1_67_0.orig/boostcpp.jam boost_1_67_0/boostcpp.jam
+--- boost_1_67_0.orig/boostcpp.jam 2018-07-30 16:26:03.346187542 -0700
++++ boost_1_67_0/boostcpp.jam 2018-07-30 16:26:18.839081472 -0700
+@@ -105,7 +105,7 @@
+ python-id = [ option.get "python-buildid" ] ;
+ if $(python-id)
+ {
+- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ;
++ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" _ ] ;
+ }
+
+
+diff -ur boost_1_67_0.orig/libs/python/Jamfile boost_1_67_0/libs/python/Jamfile
+--- boost_1_67_0.orig/libs/python/Jamfile 2018-07-30 14:56:15.591366992 -0700
++++ boost_1_67_0/libs/python/Jamfile 2018-07-30 16:26:31.662993677 -0700
+@@ -47,7 +47,7 @@
+ python-id = [ option.get "python-buildid" ] ;
+ if $(python-id)
+ {
+- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ;
++ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" _ ] ;
+ }
+
+ rule python-tag ( name : type ? : property-set )
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2018-11-24 19:27 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2018-11-24 19:27 UTC (permalink / raw
To: gentoo-commits
commit: 9c1c90cf0f8507cd5f9da6c9db68deb90d429b2d
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 24 15:17:48 2018 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Nov 24 19:26:27 2018 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c1c90cf
dev-libs/boost: backport spsc_queue.hpp include fix
Reported-by: Toralf Förster
Bug: https://bugs.gentoo.org/671724
Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: David Seifert <soap <AT> gentoo.org>
...{boost-1.67.0.ebuild => boost-1.67.0-r1.ebuild} | 3 ++-
.../boost/files/boost-1.67.0-lockfree-next.patch | 24 ++++++++++++++++++++++
2 files changed, 26 insertions(+), 1 deletion(-)
diff --git a/dev-libs/boost/boost-1.67.0.ebuild b/dev-libs/boost/boost-1.67.0-r1.ebuild
similarity index 99%
rename from dev-libs/boost/boost-1.67.0.ebuild
rename to dev-libs/boost/boost-1.67.0-r1.ebuild
index 7eb5c945be4..1c9de953032 100644
--- a/dev-libs/boost/boost-1.67.0.ebuild
+++ b/dev-libs/boost/boost-1.67.0-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
@@ -49,6 +49,7 @@ PATCHES=(
"${FILESDIR}/${PN}-1.55.0-context-x32.patch"
"${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
"${FILESDIR}/${PN}-1.67.0-fix-python.patch"
+ "${FILESDIR}/${PN}-1.67.0-lockfree-next.patch"
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch b/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch
new file mode 100644
index 00000000000..acf9a96777e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/671724
+
+From 12726cda009a855073b9bedbdce57b6ce7763da2 Mon Sep 17 00:00:00 2001
+From: Peter Dimov <pdimov@pdimov.com>
+Date: Sat, 2 Dec 2017 04:10:46 +0200
+Subject: [PATCH] Add #include <boost/next_prior.hpp>; no longer in utility.hpp
+
+---
+ include/boost/lockfree/spsc_queue.hpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/boost/lockfree/spsc_queue.hpp
++++ b/boost/lockfree/spsc_queue.hpp
+@@ -17,6 +17,7 @@
+ #include <boost/assert.hpp>
+ #include <boost/static_assert.hpp>
+ #include <boost/utility.hpp>
++#include <boost/next_prior.hpp>
+ #include <boost/utility/enable_if.hpp>
+ #include <boost/config.hpp> // for BOOST_LIKELY
+
+--
+2.19.2
+
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2019-04-16 12:09 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2019-04-16 12:09 UTC (permalink / raw
To: gentoo-commits
commit: 5c9c9f5803dda28bfaa8c4fd0cfa48616233c594
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 16 12:07:46 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Apr 16 12:09:04 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5c9c9f58
Revert "dev-libs/boost: Remove old"
This reverts commit 738fd73c6e6f51f2ec2e858d6277e430cda0d965.
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 +
dev-libs/boost/boost-1.63.0.ebuild | 440 +++++++++++++++++++++
dev-libs/boost/files/boost-1.63.0-fix-python.patch | 138 +++++++
3 files changed, 579 insertions(+)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 5f560092574..a4de8bd61e2 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1,3 @@
+DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad
DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
diff --git a/dev-libs/boost/boost-1.63.0.ebuild b/dev-libs/boost/boost-1.63.0.ebuild
new file mode 100644
index 00000000000..4f43846220f
--- /dev/null
+++ b/dev-libs/boost/boost-1.63.0.ebuild
@@ -0,0 +1,440 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
+
+MY_P="${PN}_$(replace_all_version_separators _)"
+MAJOR_V="$(get_version_component_range 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+
+IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
+
+RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? ( ${PYTHON_DEPS} )
+ app-arch/bzip2[${MULTILIB_USEDEP}]
+ sys-libs/zlib[${MULTILIB_USEDEP}]
+ !app-admin/eselect-boost"
+DEPEND="${RDEPEND}
+ =dev-util/boost-build-${MAJOR_V}*"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/${MY_P}"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
+ "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
+ "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
+ "${FILESDIR}/${PN}-1.63.0-fix-python.patch"
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local compiler compiler_version compiler_executable
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ compiler_executable="$(tc-getCXX)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ compiler_executable="$(tc-getCXX)"
+ fi
+ local mpi_configuration python_configuration
+
+ if use mpi; then
+ mpi_configuration="using mpi ;"
+ fi
+
+ if python_bindings_needed; then
+ # boost expects libpython$(pyver) and doesn't allow overrides
+ # and the build system is so creepy that it's easier just to
+ # provide a symlink (linker's going to use SONAME anyway)
+ # TODO: replace it with proper override one day
+ ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
+
+ if tc-is-cross-compiler; then
+ python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
+ else
+ # note: we need to provide version explicitly because of
+ # a bug in the build system:
+ # https://github.com/boostorg/build/pull/104
+ python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
+ fi
+ fi
+
+ cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die
+using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+${mpi_configuration}
+${python_configuration}
+__EOF__
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then
+ grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" ||
+ (
+ eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it."
+ die
+ )
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Do not try to build missing 'wave' tool, bug #522682
+ # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
+ sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
+
+ multilib_copy_sources
+}
+
+ejam() {
+ local b2_opts=(
+ "--user-config=${BOOST_ROOT}/user-config.jam"
+ "$@"
+ )
+ echo b2 "${b2_opts[@]}"
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ elif [[ ${CHOST} == *-winnt* ]]; then
+ compiler=parity
+ if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
+ compilerVersion=trunk
+ else
+ compilerVersion=$($(tc-getCXX) -v | sed '1q' \
+ | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
+ fi
+ compilerExecutable=$(tc-getCXX)
+ fi
+
+ # bug 298489
+ if use ppc || use ppc64; then
+ [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
+ fi
+
+ # Use C++14 globally as of 1.62
+ append-cxxflags -std=c++14
+
+ use icu && OPTIONS+=(
+ "-sICU_PATH=${EPREFIX}/usr"
+ )
+ use icu || OPTIONS+=(
+ --disable-icu
+ boost.locale.icu=off
+ )
+ use mpi || OPTIONS+=(
+ --without-mpi
+ )
+ use nls || OPTIONS+=(
+ --without-locale
+ )
+ use context || OPTIONS+=(
+ --without-context
+ --without-coroutine
+ --without-coroutine2
+ --without-fiber
+ )
+ use threads || OPTIONS+=(
+ --without-thread
+ )
+
+ OPTIONS+=(
+ pch=off
+ --boost-build="${EPREFIX}"/usr/share/boost-build
+ --prefix="${ED%/}/usr"
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=$(usex static-libs shared,static shared)
+ )
+
+ [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
+ -sNO_BZIP2=1
+ )
+}
+
+multilib_src_compile() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ PYTHON_DIRS=""
+ MPI_PYTHON_MODULE=""
+
+ building() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost libraries failed"
+
+ if python_bindings_needed; then
+ if [[ -z "${PYTHON_DIRS}" ]]; then
+ PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
+ else
+ if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ mv ${dir} ${dir}-${EPYTHON} \
+ || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
+ done
+
+ if use mpi; then
+ if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
+ MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
+ if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
+ die "Multiple mpi.so files found"
+ fi
+ else
+ if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
+ die "Inconsistent structure of build directories"
+ fi
+ fi
+
+ mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
+ || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
+ fi
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl building
+ else
+ building
+ fi
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use python; then
+ rm -r "${ED%/}"/usr/include/boost/python* || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED%/}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED%/}"/usr/include/boost/context || die
+ rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ local -x BOOST_ROOT="${BUILD_DIR}"
+ installation() {
+ create_user-config.jam
+
+ local PYTHON_OPTIONS
+ if python_bindings_needed; then
+ local dir
+ for dir in ${PYTHON_DIRS}; do
+ cp -pr ${dir}-${EPYTHON} ${dir} \
+ || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
+ done
+
+ if use mpi; then
+ cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
+ cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
+ || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
+ fi
+ PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
+ else
+ PYTHON_OPTIONS=" --without-python"
+ fi
+
+ ejam \
+ "${OPTIONS[@]}" \
+ ${PYTHON_OPTIONS} \
+ --includedir="${ED%/}/usr/include" \
+ --libdir="${ED%/}/usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ if python_bindings_needed; then
+ rm -r ${PYTHON_DIRS} || die
+
+ # Move mpi.so Python module to Python site-packages directory.
+ # https://svn.boost.org/trac/boost/ticket/2838
+ if use mpi; then
+ local moddir=$(python_get_sitedir)/boost
+ # moddir already includes eprefix
+ mkdir -p "${D}${moddir}" || die
+ mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
+ cat << EOF > "${D}${moddir}/__init__.py" || die
+import sys
+if sys.platform.startswith('linux'):
+ import DLFCN
+ flags = sys.getdlopenflags()
+ sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
+ from . import mpi
+ sys.setdlopenflags(flags)
+ del DLFCN, flags
+else:
+ from . import mpi
+del sys
+EOF
+ fi
+
+ python_optimize
+ fi
+ }
+ if python_bindings_needed; then
+ python_foreach_impl installation
+ else
+ installation
+ fi
+
+ pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd >/dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED%/}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die
+}
diff --git a/dev-libs/boost/files/boost-1.63.0-fix-python.patch b/dev-libs/boost/files/boost-1.63.0-fix-python.patch
new file mode 100644
index 00000000000..18ca2f56671
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.63.0-fix-python.patch
@@ -0,0 +1,138 @@
+--- a/boostcpp.jam
++++ b/boostcpp.jam
+@@ -104,7 +104,7 @@
+ python-id = [ option.get "python-buildid" ] ;
+ if $(python-id)
+ {
+- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
++ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
+ }
+
+
+--- a/libs/python/build/Jamfile
++++ b/libs/python/build/Jamfile
+@@ -30,22 +30,6 @@
+ ;
+ }
+
+-rule find-py3-version
+-{
+- local versions = [ feature.values python ] ;
+- local py3ver ;
+- for local v in $(versions)
+- {
+- if $(v) >= 3.0
+- {
+- py3ver = $(v) ;
+- }
+- }
+- return $(py3ver) ;
+-}
+-
+-py3-version = [ find-py3-version ] ;
+-
+ project boost/python
+ : source-location ../src
+ ;
+@@ -53,10 +37,16 @@
+ rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
+ rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
+
+-rule lib_boost_python ( is-py3 ? )
++rule lib_boost_python
+ {
++ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
++ local python2 ;
++ if $(python_major_version) = 2
++ {
++ python2 = true ;
++ }
+
+- lib [ cond $(is-py3) : boost_python3 : boost_python ]
++ lib boost_python
+ : # sources
+ numeric.cpp
+ list.cpp
+@@ -90,20 +80,9 @@
+ : # requirements
+ <link>static:<define>BOOST_PYTHON_STATIC_LIB
+ <define>BOOST_PYTHON_SOURCE
++ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
+
+- # On Windows, all code using Python has to link to the Python
+- # import library.
+- #
+- # On *nix we never link libboost_python to libpython. When
+- # extending Python, all Python symbols are provided by the
+- # Python interpreter executable. When embedding Python, the
+- # client executable is expected to explicitly link to
+- # /python//python (the target representing libpython) itself.
+- #
+- # python_for_extensions is a target defined by Boost.Build to
+- # provide the Python include paths, and on Windows, the Python
+- # import library, as usage requirements.
+- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
++ [ cond [ python.configured ] : <library>/python//python ]
+
+ # we prevent building when there is no python available
+ # as it's not possible anyway, and to cause dependents to
+@@ -112,7 +91,6 @@
+ <dependency>config-warning
+
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- [ cond $(is-py3) : <python>$(py3-version) ]
+
+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+ <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+@@ -125,51 +103,8 @@
+ ;
+ }
+
+-rule lib_boost_numpy ( is-py3 ? )
+-{
+- numpy-include = [ python.numpy-include ] ;
+- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ]
+- : # sources
+- numpy/dtype.cpp
+- numpy/matrix.cpp
+- numpy/ndarray.cpp
+- numpy/numpy.cpp
+- numpy/scalars.cpp
+- numpy/ufunc.cpp
+- : # requirements
+- [ cond [ python.numpy ] : <library>/python//python_for_extensions ]
+- [ unless [ python.numpy ] : <build>no ]
+- <include>$(numpy-include)
+- <library>boost_python
+- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- [ cond $(is-py3) : <python>$(py3-version) ]
+-
+- -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
+- <tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+-
+- : # default build
+- <link>shared
+- : # usage requirements
+- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
+- ;
+-}
+-
+ libraries = boost_python ;
+-libraries3 = boost_python3 ;
+-if [ python.numpy ]
+-{
+- libraries += boost_numpy ;
+- libraries3 += boost_numpy3 ;
+-}
+
+ lib_boost_python ;
+-lib_boost_numpy ;
+-
+-if $(py3-version)
+-{
+- lib_boost_python yes ;
+- lib_boost_numpy yes ;
+- libraries += $(libraries3) ;
+-}
+
+ boost-install $(libraries) ;
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2019-12-22 23:12 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2019-12-22 23:12 UTC (permalink / raw
To: gentoo-commits
commit: af50ab943bce9e10c97e47ea5c7da87e11b51be9
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 22 23:12:28 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Dec 22 23:12:28 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=af50ab94
dev-libs/boost: Fix Boost.MPI with python
* A big thanks goes out to @pdimov in helping me patch
Boost.Build to produce per py-impl MPI variants.
Closes: boostorg/mpi#112
Closes: https://bugs.gentoo.org/703036
Package-Manager: Portage-2.3.82, Repoman-2.3.20
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.72.0.ebuild | 21 ++++++++-
.../files/boost-1.72.0-boost-mpi-python.patch | 50 ++++++++++++++++++++++
2 files changed, 70 insertions(+), 1 deletion(-)
diff --git a/dev-libs/boost/boost-1.72.0.ebuild b/dev-libs/boost/boost-1.72.0.ebuild
index ca52c5105fe..3417b408e43 100644
--- a/dev-libs/boost/boost-1.72.0.ebuild
+++ b/dev-libs/boost/boost-1.72.0.ebuild
@@ -56,6 +56,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
# Bug 703294, incomplete Boost.Serialization refactoring
"${FILESDIR}"/${PN}-1.72.0-missing-serialization-split_member-include.patch
+ # Bug 703036, per python-impl Boost.MPI
+ "${FILESDIR}"/${PN}-1.72.0-boost-mpi-python.patch
)
python_bindings_needed() {
@@ -217,7 +219,24 @@ multilib_src_install_all() {
rm -r "${ED}"/usr/include/boost/python/numpy* || die
fi
- if ! use python; then
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ local pyver="${EPYTHON#python}"
+ python_moduleinto boost
+ python_domodule "${ED}"/usr/$(get_libdir)/mpi${pyver/./}.so
+ rm "${ED}"/usr/$(get_libdir)/mpi${pyver/./}* || die
+ dosym mpi${pyver/./}.so $(python_get_sitedir)/boost/mpi.so
+
+ # create a proper python package
+ touch "${D}"/$(python_get_sitedir)/boost/__init__.py || die
+ python_optimize
+ }
+ python_foreach_impl move_mpi_py_into_sitedir
+ else
+ rm -r "${ED}"/usr/include/boost/mpi/python* || die
+ fi
+ else
rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
fi
diff --git a/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch b/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch
new file mode 100644
index 00000000000..8fb164a6278
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch
@@ -0,0 +1,50 @@
+Tag Boost.MPI python impls properly to avoid name clash
+https://github.com/boostorg/mpi/issues/112
+
+--- a/boostcpp.jam
++++ b/boostcpp.jam
+@@ -185,7 +185,7 @@
+
+ rule tag ( name : type ? : property-set )
+ {
+- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION
+ {
+ local args = $(.format-name-args) ;
+ if $(layout) = versioned
+@@ -223,7 +223,7 @@
+ {
+ local result = $(name) ;
+
+- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION
+ {
+ # Add Python version suffix
+
+--- a/libs/mpi/build/Jamfile.v2
++++ b/libs/mpi/build/Jamfile.v2
+@@ -58,13 +58,13 @@
+ rule python-tag ( name : type ? : property-set )
+ {
+ local result = $(name) ;
+- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION
+ {
+ local version = [ $(property-set).get <python> ] ;
+ local lib-suffix = [ version-suffix $(version) ] ;
+ result = $(result)$(lib-suffix) ;
+ }
+- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
++ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION && $(PYTHON_ID)
+ {
+ result = $(result)-$(PYTHON_ID) ;
+ }
+@@ -168,6 +168,8 @@
+ <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
+ <link>shared <runtime-link>shared
+ <python-debugging>on:<define>BOOST_DEBUG_PYTHON
++ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
++ <tag>@$(__name__).python-tag
+ ;
+
+ mpi_python_libs = boost_mpi_python mpi ;
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2019-12-29 13:06 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2019-12-29 13:06 UTC (permalink / raw
To: gentoo-commits
commit: 51a79e39c1005fe618fe146872a931ce4ae2035c
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 29 13:06:01 2019 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Dec 29 13:06:01 2019 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=51a79e39
dev-libs/boost: Include patch for net-analyzer/icinga2
Closes: https://bugs.gentoo.org/704128
Package-Manager: Portage-2.3.83, Repoman-2.3.20
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.72.0.ebuild | 2 +
...t-1.72.0-revert-cease-dependence-on-range.patch | 49 ++++++++++++++++++++++
2 files changed, 51 insertions(+)
diff --git a/dev-libs/boost/boost-1.72.0.ebuild b/dev-libs/boost/boost-1.72.0.ebuild
index 3417b408e43..b44e04ef83d 100644
--- a/dev-libs/boost/boost-1.72.0.ebuild
+++ b/dev-libs/boost/boost-1.72.0.ebuild
@@ -58,6 +58,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.72.0-missing-serialization-split_member-include.patch
# Bug 703036, per python-impl Boost.MPI
"${FILESDIR}"/${PN}-1.72.0-boost-mpi-python.patch
+ # Bug 704128, missing include on Boost.Ranges
+ "${FILESDIR}"/${PN}-1.72.0-revert-cease-dependence-on-range.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.72.0-revert-cease-dependence-on-range.patch b/dev-libs/boost/files/boost-1.72.0-revert-cease-dependence-on-range.patch
new file mode 100644
index 00000000000..a6002074ab9
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.72.0-revert-cease-dependence-on-range.patch
@@ -0,0 +1,49 @@
+From 436e1dbe6fcd31523d261d18ad011392f1d6fbbc Mon Sep 17 00:00:00 2001
+From: Oliver Kowalke <oliver.kowalke@gmail.com>
+Date: Sun, 1 Dec 2019 20:40:28 +0100
+Subject: [PATCH] Revert "Cease dependence on Range"
+
+This reverts commit 0c556bb59241e682bbcd3f572815149c5a9b17db.
+
+see #44 (One test fails to compile after boostorg/coroutine submodule updated)
+---
+ boost/coroutine/asymmetric_coroutine.hpp | 12 +++---------
+ 1 file changed, 3 insertions(+), 9 deletions(-)
+
+diff --git a/boost/coroutine/asymmetric_coroutine.hpp b/boost/coroutine/asymmetric_coroutine.hpp
+index ea96981..640896f 100644
+--- a/boost/coroutine/asymmetric_coroutine.hpp
++++ b/boost/coroutine/asymmetric_coroutine.hpp
+@@ -14,6 +14,7 @@
+ #include <boost/assert.hpp>
+ #include <boost/config.hpp>
+ #include <boost/move/move.hpp>
++#include <boost/range.hpp>
+ #include <boost/throw_exception.hpp>
+ #include <boost/utility/explicit_operator_bool.hpp>
+
+@@ -2354,19 +2355,12 @@ end( push_coroutine< R > & c)
+
+ }
+
+-// forward declaration of Boost.Range traits to break dependency on it
+-template<typename C, typename Enabler>
+-struct range_mutable_iterator;
+-
+-template<typename C, typename Enabler>
+-struct range_const_iterator;
+-
+ template< typename Arg >
+-struct range_mutable_iterator< coroutines::push_coroutine< Arg >, void >
++struct range_mutable_iterator< coroutines::push_coroutine< Arg > >
+ { typedef typename coroutines::push_coroutine< Arg >::iterator type; };
+
+ template< typename R >
+-struct range_mutable_iterator< coroutines::pull_coroutine< R >, void >
++struct range_mutable_iterator< coroutines::pull_coroutine< R > >
+ { typedef typename coroutines::pull_coroutine< R >::iterator type; };
+
+ }
+--
+2.24.1
+
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2020-12-22 21:22 Andreas K. Hüttel
0 siblings, 0 replies; 27+ messages in thread
From: Andreas K. Hüttel @ 2020-12-22 21:22 UTC (permalink / raw
To: gentoo-commits
commit: e56515f4c40646457042b106fdf6131a9b585038
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 22 21:22:08 2020 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Tue Dec 22 21:22:27 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e56515f4
dev-libs/boost: Revbump for CVE-2012-2677
Bug: https://bugs.gentoo.org/620468
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
dev-libs/boost/boost-1.74.0-r2.ebuild | 359 +++++++++++++++++++++
.../boost/files/boost-1.74-CVE-2012-2677.patch | 125 +++++++
2 files changed, 484 insertions(+)
diff --git a/dev-libs/boost/boost-1.74.0-r2.ebuild b/dev-libs/boost/boost-1.74.0-r2.ebuild
new file mode 100644
index 00000000000..de5aba9c7e6
--- /dev/null
+++ b/dev-libs/boost/boost-1.74.0-r2.ebuild
@@ -0,0 +1,359 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+MAJOR_V="$(ver_cut 1-2)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
+IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
+REQUIRED_USE="
+ mpi? ( threads )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ !app-admin/eselect-boost
+ !dev-libs/boost-numpy
+ !<dev-libs/leatherman-1.12.0-r1
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
+
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
+ # upstream unresponsive to pull request
+ # https://github.com/boostorg/python/pull/286
+ "${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
+ # Remove annoying #pragma message
+ "${FILESDIR}"/${PN}-1.73-property-tree-include.patch
+ "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ fi
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
+ $(usex mpi '' '--without-mpi')
+ $(usex nls '' '--without-locale')
+ $(usex context '' '--without-context --without-coroutine --without-fiber')
+ $(usex threads '' '--without-thread')
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/boost-build
+ --prefix="${ED}/usr"
+ --layout=system
+ # CMake has issues working with multiple python impls,
+ # disable cmake config generation for the time being
+ # https://github.com/boostorg/python/issues/262#issuecomment-483069294
+ --no-cmake-config
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=$(usex static-libs shared,static shared)
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++14 globally as of 1.62
+ append-cxxflags -std=c++14
+}
+
+multilib_src_compile() {
+ ejam "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
+
+ python_optimize
+ }
+ python_foreach_impl move_mpi_py_into_sitedir
+ else
+ rm -r "${ED}"/usr/include/boost/mpi/python* || die
+ fi
+ else
+ rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ "${OPTIONS[@]}" \
+ --includedir="${ED}/usr/include" \
+ --libdir="${ED}/usr/$(get_libdir)" \
+ install || die "Installation of Boost libraries failed"
+
+ pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
+
+ local ext=$(get_libname)
+ if use threads; then
+ local f
+ for f in *${ext}; do
+ dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
+ done
+ fi
+
+ popd >/dev/null || die
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+pkg_preinst() {
+ # Yai for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch b/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
new file mode 100644
index 00000000000..ff947f74f1c
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.74-CVE-2012-2677.patch
@@ -0,0 +1,125 @@
+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;
++}
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2020-12-24 22:14 Andreas K. Hüttel
0 siblings, 0 replies; 27+ messages in thread
From: Andreas K. Hüttel @ 2020-12-24 22:14 UTC (permalink / raw
To: gentoo-commits
commit: ce923a91650ce8028c00387c4a37524773ec3d21
Author: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 24 22:12:34 2020 +0000
Commit: Andreas K. Hüttel <dilfridge <AT> gentoo <DOT> org>
CommitDate: Thu Dec 24 22:14:35 2020 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce923a91
dev-libs/boost: Remove old
Package-Manager: Portage-3.0.9, Repoman-3.0.2
Signed-off-by: Andreas K. Hüttel <dilfridge <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.72.0-r2.ebuild | 358 ---------------------
.../files/boost-1.72.0-boost-mpi-python.patch | 50 ---
...issing-serialization-split_member-include.patch | 29 --
...t-1.72.0-revert-cease-dependence-on-range.patch | 49 ---
5 files changed, 487 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index c833789b410..205dbe8592a 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1 @@
-DIST boost_1_72_0.tar.bz2 106907358 BLAKE2B ab270a0e3cb24da687d86785e2d2e6d7731b4dbc07bd839eadb642dfa5a428ad584acb1f3529661a8de9a986008ff3427491041059ea2b742348d02e00761cd8 SHA512 63bbd1743e7c904b2e69fdc2eafd1c2a8a30fd70d960dcd366059d0100f000cb605d56cbd9397bb18421631f1c9552a772c434d0f0caddbe56302273f51fd1f6
DIST boost_1_74_0.tar.bz2 109600630 BLAKE2B 2982f64fccf6fdb3b4b74452e603f459242d7abb42df4162278d9b558b637786a2eb97442126967b19088d591777c64ced8f60a23e71eaa0b7545e80f800de63 SHA512 4ec9c1164ec9b95ce46ba1c073e586c94b3882dce5b7347ea14bbef0c1da230e12aa5328a501ce38cae1b1d7623daa3246325625899179b4cc309242540982a4
diff --git a/dev-libs/boost/boost-1.72.0-r2.ebuild b/dev-libs/boost/boost-1.72.0-r2.ebuild
deleted file mode 100644
index 2556d26576e..00000000000
--- a/dev-libs/boost/boost-1.72.0-r2.ebuild
+++ /dev/null
@@ -1,358 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{6,7,8} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
-
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # Bug 703294, incomplete Boost.Serialization refactoring
- "${FILESDIR}"/${PN}-1.72.0-missing-serialization-split_member-include.patch
- # Bug 703036, per python-impl Boost.MPI
- "${FILESDIR}"/${PN}-1.72.0-boost-mpi-python.patch
- # Bug 704128, missing include on Boost.Ranges
- "${FILESDIR}"/${PN}-1.72.0-revert-cease-dependence-on-range.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build
- --prefix="${ED}/usr"
- --layout=system
- # CMake has issues working with multiple python impls,
- # disable cmake config generation for the time being
- # https://github.com/boostorg/python/issues/262#issuecomment-483069294
- --no-cmake-config
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- local pyver="${EPYTHON#python}"
- python_moduleinto boost
- python_domodule "${ED}"/usr/$(get_libdir)/mpi${pyver/./}.so
- rm "${ED}"/usr/$(get_libdir)/mpi${pyver/./}* || die
- dosym mpi${pyver/./}.so $(python_get_sitedir)/boost/mpi.so
-
- # create a proper python package
- touch "${D}"/$(python_get_sitedir)/boost/__init__.py || die
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- ejam \
- "${OPTIONS[@]}" \
- --includedir="${ED}/usr/include" \
- --libdir="${ED}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch b/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch
deleted file mode 100644
index 8fb164a6278..00000000000
--- a/dev-libs/boost/files/boost-1.72.0-boost-mpi-python.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Tag Boost.MPI python impls properly to avoid name clash
-https://github.com/boostorg/mpi/issues/112
-
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -185,7 +185,7 @@
-
- rule tag ( name : type ? : property-set )
- {
-- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
-+ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION
- {
- local args = $(.format-name-args) ;
- if $(layout) = versioned
-@@ -223,7 +223,7 @@
- {
- local result = $(name) ;
-
-- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
-+ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION
- {
- # Add Python version suffix
-
---- a/libs/mpi/build/Jamfile.v2
-+++ b/libs/mpi/build/Jamfile.v2
-@@ -58,13 +58,13 @@
- rule python-tag ( name : type ? : property-set )
- {
- local result = $(name) ;
-- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB
-+ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION
- {
- local version = [ $(property-set).get <python> ] ;
- local lib-suffix = [ version-suffix $(version) ] ;
- result = $(result)$(lib-suffix) ;
- }
-- if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB && $(PYTHON_ID)
-+ if $(type) in STATIC_LIB SHARED_LIB IMPORT_LIB PYTHON_EXTENSION && $(PYTHON_ID)
- {
- result = $(result)-$(PYTHON_ID) ;
- }
-@@ -168,6 +168,8 @@
- <link>shared:<define>BOOST_PYTHON_DYN_LINK=1
- <link>shared <runtime-link>shared
- <python-debugging>on:<define>BOOST_DEBUG_PYTHON
-+ -<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
-+ <tag>@$(__name__).python-tag
- ;
-
- mpi_python_libs = boost_mpi_python mpi ;
diff --git a/dev-libs/boost/files/boost-1.72.0-missing-serialization-split_member-include.patch b/dev-libs/boost/files/boost-1.72.0-missing-serialization-split_member-include.patch
deleted file mode 100644
index 0c9f72583ef..00000000000
--- a/dev-libs/boost/files/boost-1.72.0-missing-serialization-split_member-include.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Missing #include, as the split_member.hpp include is not
-part of the nvp.hpp interface, and hence cannot be relied
-upon to be included transitively.
-
-Confirmed on
-https://github.com/boostorg/serialization/commit/c32a663c9963385430abc563f9c85f94d8da43a9#r36528430
-
-Bug: https://bugs.gentoo.org/703294
-
---- a/boost/bimap/detail/map_view_iterator.hpp
-+++ b/boost/bimap/detail/map_view_iterator.hpp
-@@ -22,6 +22,7 @@
-
- #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION
- #include <boost/serialization/nvp.hpp>
-+ #include <boost/serialization/split_member.hpp>
- #endif // BOOST_BIMAP_DISABLE_SERIALIZATION
-
- #include <boost/iterator/detail/enable_if.hpp>
---- a/boost/bimap/detail/set_view_iterator.hpp
-+++ b/boost/bimap/detail/set_view_iterator.hpp
-@@ -22,6 +22,7 @@
-
- #ifndef BOOST_BIMAP_DISABLE_SERIALIZATION
- #include <boost/serialization/nvp.hpp>
-+ #include <boost/serialization/split_member.hpp>
- #endif // BOOST_BIMAP_DISABLE_SERIALIZATION
-
- #include <boost/iterator/detail/enable_if.hpp>
diff --git a/dev-libs/boost/files/boost-1.72.0-revert-cease-dependence-on-range.patch b/dev-libs/boost/files/boost-1.72.0-revert-cease-dependence-on-range.patch
deleted file mode 100644
index a6002074ab9..00000000000
--- a/dev-libs/boost/files/boost-1.72.0-revert-cease-dependence-on-range.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 436e1dbe6fcd31523d261d18ad011392f1d6fbbc Mon Sep 17 00:00:00 2001
-From: Oliver Kowalke <oliver.kowalke@gmail.com>
-Date: Sun, 1 Dec 2019 20:40:28 +0100
-Subject: [PATCH] Revert "Cease dependence on Range"
-
-This reverts commit 0c556bb59241e682bbcd3f572815149c5a9b17db.
-
-see #44 (One test fails to compile after boostorg/coroutine submodule updated)
----
- boost/coroutine/asymmetric_coroutine.hpp | 12 +++---------
- 1 file changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/boost/coroutine/asymmetric_coroutine.hpp b/boost/coroutine/asymmetric_coroutine.hpp
-index ea96981..640896f 100644
---- a/boost/coroutine/asymmetric_coroutine.hpp
-+++ b/boost/coroutine/asymmetric_coroutine.hpp
-@@ -14,6 +14,7 @@
- #include <boost/assert.hpp>
- #include <boost/config.hpp>
- #include <boost/move/move.hpp>
-+#include <boost/range.hpp>
- #include <boost/throw_exception.hpp>
- #include <boost/utility/explicit_operator_bool.hpp>
-
-@@ -2354,19 +2355,12 @@ end( push_coroutine< R > & c)
-
- }
-
--// forward declaration of Boost.Range traits to break dependency on it
--template<typename C, typename Enabler>
--struct range_mutable_iterator;
--
--template<typename C, typename Enabler>
--struct range_const_iterator;
--
- template< typename Arg >
--struct range_mutable_iterator< coroutines::push_coroutine< Arg >, void >
-+struct range_mutable_iterator< coroutines::push_coroutine< Arg > >
- { typedef typename coroutines::push_coroutine< Arg >::iterator type; };
-
- template< typename R >
--struct range_mutable_iterator< coroutines::pull_coroutine< R >, void >
-+struct range_mutable_iterator< coroutines::pull_coroutine< R > >
- { typedef typename coroutines::pull_coroutine< R >::iterator type; };
-
- }
---
-2.24.1
-
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2021-03-21 21:15 Andreas Sturmlechner
0 siblings, 0 replies; 27+ messages in thread
From: Andreas Sturmlechner @ 2021-03-21 21:15 UTC (permalink / raw
To: gentoo-commits
commit: 9263505e76737f19470b0b507fae85d9d6f4f17b
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 21 20:06:47 2021 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Mar 21 21:15:36 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9263505e
dev-libs/boost: Drop 1.74.0-r2
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.74.0-r2.ebuild | 359 ---------------------
.../files/boost-1.73-boost-python-cleanup.patch | 107 ------
3 files changed, 467 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 98c80b335c3..fe393b9f612 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1 @@
-DIST boost_1_74_0.tar.bz2 109600630 BLAKE2B 2982f64fccf6fdb3b4b74452e603f459242d7abb42df4162278d9b558b637786a2eb97442126967b19088d591777c64ced8f60a23e71eaa0b7545e80f800de63 SHA512 4ec9c1164ec9b95ce46ba1c073e586c94b3882dce5b7347ea14bbef0c1da230e12aa5328a501ce38cae1b1d7623daa3246325625899179b4cc309242540982a4
DIST boost_1_75_0.tar.bz2 121849575 BLAKE2B ce7ecd8bcee518ce54f7e5302f202acbea60cedd6ae9248708c0bb5bbc2713607b2e1967a9e6f77cc20a4c008c1ee4db651def55937efc80407487a7a44fa8d6 SHA512 d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a
diff --git a/dev-libs/boost/boost-1.74.0-r2.ebuild b/dev-libs/boost/boost-1.74.0-r2.ebuild
deleted file mode 100644
index fd174377897..00000000000
--- a/dev-libs/boost/boost-1.74.0-r2.ebuild
+++ /dev/null
@@ -1,359 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{7,8,9} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-MAJOR_V="$(ver_cut 1-2)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
-REQUIRED_USE="
- mpi? ( threads )
- python? ( ${PYTHON_REQUIRED_USE} )"
-
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( $(python_gen_cond_dep 'dev-python/numpy[${PYTHON_USEDEP}]' -3) )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND="=dev-util/boost-build-${MAJOR_V}*"
-
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # upstream unresponsive to pull request
- # https://github.com/boostorg/python/pull/286
- "${FILESDIR}"/${PN}-1.73-boost-python-cleanup.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- # Remove annoying #pragma message
- "${FILESDIR}"/${PN}-1.73-property-tree-include.patch
- "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build
- --prefix="${ED}/usr"
- --layout=system
- # CMake has issues working with multiple python impls,
- # disable cmake config generation for the time being
- # https://github.com/boostorg/python/issues/262#issuecomment-483069294
- --no-cmake-config
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=$(usex static-libs shared,static shared)
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
-
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-multilib_src_install() {
- ejam \
- "${OPTIONS[@]}" \
- --includedir="${ED}/usr/include" \
- --libdir="${ED}/usr/$(get_libdir)" \
- install || die "Installation of Boost libraries failed"
-
- pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
-
- local ext=$(get_libname)
- if use threads; then
- local f
- for f in *${ext}; do
- dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
- done
- fi
-
- popd >/dev/null || die
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-pkg_preinst() {
- # Yai for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.73-boost-python-cleanup.patch b/dev-libs/boost/files/boost-1.73-boost-python-cleanup.patch
deleted file mode 100644
index 64c8eec814e..00000000000
--- a/dev-libs/boost/files/boost-1.73-boost-python-cleanup.patch
+++ /dev/null
@@ -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
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2021-05-31 12:15 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2021-05-31 12:15 UTC (permalink / raw
To: gentoo-commits
commit: e420d181a07a0dcfef293eb85dc299511daf85cd
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon May 31 12:13:58 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon May 31 12:14:56 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e420d181
dev-libs/boost: add patch to fix build (a typo) on sparc
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.76.0-r1.ebuild | 1 +
dev-libs/boost/files/boost-1.76-sparc-define.patch | 21 +++++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/dev-libs/boost/boost-1.76.0-r1.ebuild b/dev-libs/boost/boost-1.76.0-r1.ebuild
index 16bc039e226..88835738818 100644
--- a/dev-libs/boost/boost-1.76.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.76.0-r1.ebuild
@@ -55,6 +55,7 @@ PATCHES=(
"${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
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.76-sparc-define.patch b/dev-libs/boost/files/boost-1.76-sparc-define.patch
new file mode 100644
index 00000000000..b3909ee3137
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.76-sparc-define.patch
@@ -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)
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2021-08-23 16:17 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2021-08-23 16:17 UTC (permalink / raw
To: gentoo-commits
commit: 5688163ca8cafad73827308c2efdda56e4985714
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 23 16:16:38 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Aug 23 16:17:18 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5688163c
dev-libs/boost: backport math header fix
Bug: https://bugs.gentoo.org/808087
Closes: https://bugs.gentoo.org/808663
Closes: https://bugs.gentoo.org/808677
Signed-off-by: Sam James <sam <AT> gentoo.org>
...{boost-1.77.0.ebuild => boost-1.77.0-r1.ebuild} | 1 +
.../files/boost-1.77-math-deprecated-include.patch | 40 ++++++++++++++++++++++
2 files changed, 41 insertions(+)
diff --git a/dev-libs/boost/boost-1.77.0.ebuild b/dev-libs/boost/boost-1.77.0-r1.ebuild
similarity index 99%
rename from dev-libs/boost/boost-1.77.0.ebuild
rename to dev-libs/boost/boost-1.77.0-r1.ebuild
index 40748904301..9a715e08895 100644
--- a/dev-libs/boost/boost-1.77.0.ebuild
+++ b/dev-libs/boost/boost-1.77.0-r1.ebuild
@@ -53,6 +53,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
"${FILESDIR}"/${PN}-1.76-sparc-define.patch
+ "${FILESDIR}"/${PN}-1.77-math-deprecated-include.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.77-math-deprecated-include.patch b/dev-libs/boost/files/boost-1.77-math-deprecated-include.patch
new file mode 100644
index 00000000000..44943243eaa
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.77-math-deprecated-include.patch
@@ -0,0 +1,40 @@
+https://github.com/boostorg/math/commit/720536a08e4e33639869e1b7a99d9ec923409c0b
+https://github.com/boostorg/math/issues/675
+https://github.com/boostorg/math/pull/676
+
+From 720536a08e4e33639869e1b7a99d9ec923409c0b Mon Sep 17 00:00:00 2001
+From: Matt Borland <matt@mattborland.com>
+Date: Mon, 23 Aug 2021 17:48:28 +0300
+Subject: [PATCH] Fix for issue 675 (#676)
+
+--- a/boost/math/tools/header_deprecated.hpp
++++ a/boost/math/tools/header_deprecated.hpp
+@@ -6,12 +6,22 @@
+ #ifndef BOOST_MATH_TOOLS_HEADER_DEPRECATED
+ #define BOOST_MATH_TOOLS_HEADER_DEPRECATED
+
+-#ifdef _MSC_VER
+-// Expands to "This header is deprecated; use expr instead."
+-#define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
+-#else // GNU, Clang, Intel, IBM, etc.
++#ifndef BOOST_MATH_STANDALONE
++
++# include <boost/config/header_deprecated.hpp>
++# define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_HEADER_DEPRECATED(expr)
++
++#else
++
++# ifdef _MSC_VER
+ // Expands to "This header is deprecated; use expr instead."
+-#define BOOST_MATH_HEADER_DEPRECATED(expr) _Pragma("This header is deprecated; use " expr " instead.")
+-#endif
++# define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
++# else // GNU, Clang, Intel, IBM, etc.
++// Expands to "This header is deprecated use expr instead"
++# define BOOST_MATH_HEADER_DEPRECATED_MESSAGE(expr) _Pragma(#expr)
++# define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_MATH_HEADER_DEPRECATED_MESSAGE(message "This header is deprecated use " expr " instead")
++# endif
++
++#endif // BOOST_MATH_STANDALONE
+
+ #endif // BOOST_MATH_TOOLS_HEADER_DEPRECATED
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2021-09-05 2:22 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2021-09-05 2:22 UTC (permalink / raw
To: gentoo-commits
commit: 103255c242edc16d375bd8f9948213485965344f
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 5 02:20:35 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Sep 5 02:22:14 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=103255c2
dev-libs/boost: add additional geometry patches
Some internal includes were missing within boost/geometry.
Acked-by: David Seifert <soap <AT> gentoo.org>
Bug: https://bugs.gentoo.org/808087
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/Manifest | 1 +
...ost-1.77.0-r1.ebuild => boost-1.77.0-r2.ebuild} | 4 ++-
.../files/boost-1.77-math-deprecated-include.patch | 40 ----------------------
3 files changed, 4 insertions(+), 41 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 20cf00e4292..553e397f12d 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1,3 @@
+DIST boost-1.77.0-patches.tar.xz 6996 BLAKE2B c561bb5eacdb6c3a49582407f1d85f22dd60de6caa494087d473f91926dd1eb0bffed7054ee5cc32e5263f450342fda29f0cee7a329ef524701730b027285e14 SHA512 82e323ac44c3e94630ac4ed48c6eeb2231128fa876c9b54ccb02d070bf0debf205061f44ceca76e4067362360a596408a31420d60fe006e6be8b2ead75dc3248
DIST boost_1_76_0.tar.bz2 110073117 BLAKE2B 45445e6a9725cb99131e0b831b2fac0840d083692c13887b41adeac5cb8b3732026db3641d6be20591a676b78a87fcf363eb9b1508f87ed26039bba6a1ced533 SHA512 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429
DIST boost_1_77_0.tar.bz2 110361537 BLAKE2B 106aeb09ec7705b595f2ca966a76c53c649eac6fac50d88c156862e0991c33c89a2f3a09edcbcb453fa44bf71cdde030b35d0a0889ad97b65f3a868cb877a532 SHA512 39b45c9b60bc5a2a4c669a4463d1272c1e093376b2fb374d7f20a84ea10a3e23bb04b335a735a83a04575731f874d9bff77e89acd947524b3fbbae1b26ae1f2f
diff --git a/dev-libs/boost/boost-1.77.0-r1.ebuild b/dev-libs/boost/boost-1.77.0-r2.ebuild
similarity index 98%
rename from dev-libs/boost/boost-1.77.0-r1.ebuild
rename to dev-libs/boost/boost-1.77.0-r2.ebuild
index 9a715e08895..74412ce61b9 100644
--- a/dev-libs/boost/boost-1.77.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.77.0-r2.ebuild
@@ -13,6 +13,7 @@ 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.tar.xz"
S="${WORKDIR}/${PN}_${MY_PV}"
LICENSE="Boost-1.0"
@@ -53,7 +54,8 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
"${FILESDIR}"/${PN}-1.76-sparc-define.patch
- "${FILESDIR}"/${PN}-1.77-math-deprecated-include.patch
+ "${WORKDIR}"/${PN}-1.77-math-deprecated-include.patch
+ "${WORKDIR}"/${PN}-1.77-geometry.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.77-math-deprecated-include.patch b/dev-libs/boost/files/boost-1.77-math-deprecated-include.patch
deleted file mode 100644
index 44943243eaa..00000000000
--- a/dev-libs/boost/files/boost-1.77-math-deprecated-include.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-https://github.com/boostorg/math/commit/720536a08e4e33639869e1b7a99d9ec923409c0b
-https://github.com/boostorg/math/issues/675
-https://github.com/boostorg/math/pull/676
-
-From 720536a08e4e33639869e1b7a99d9ec923409c0b Mon Sep 17 00:00:00 2001
-From: Matt Borland <matt@mattborland.com>
-Date: Mon, 23 Aug 2021 17:48:28 +0300
-Subject: [PATCH] Fix for issue 675 (#676)
-
---- a/boost/math/tools/header_deprecated.hpp
-+++ a/boost/math/tools/header_deprecated.hpp
-@@ -6,12 +6,22 @@
- #ifndef BOOST_MATH_TOOLS_HEADER_DEPRECATED
- #define BOOST_MATH_TOOLS_HEADER_DEPRECATED
-
--#ifdef _MSC_VER
--// Expands to "This header is deprecated; use expr instead."
--#define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
--#else // GNU, Clang, Intel, IBM, etc.
-+#ifndef BOOST_MATH_STANDALONE
-+
-+# include <boost/config/header_deprecated.hpp>
-+# define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_HEADER_DEPRECATED(expr)
-+
-+#else
-+
-+# ifdef _MSC_VER
- // Expands to "This header is deprecated; use expr instead."
--#define BOOST_MATH_HEADER_DEPRECATED(expr) _Pragma("This header is deprecated; use " expr " instead.")
--#endif
-+# define BOOST_MATH_HEADER_DEPRECATED(expr) __pragma("This header is deprecated; use " expr " instead.")
-+# else // GNU, Clang, Intel, IBM, etc.
-+// Expands to "This header is deprecated use expr instead"
-+# define BOOST_MATH_HEADER_DEPRECATED_MESSAGE(expr) _Pragma(#expr)
-+# define BOOST_MATH_HEADER_DEPRECATED(expr) BOOST_MATH_HEADER_DEPRECATED_MESSAGE(message "This header is deprecated use " expr " instead")
-+# endif
-+
-+#endif // BOOST_MATH_STANDALONE
-
- #endif // BOOST_MATH_TOOLS_HEADER_DEPRECATED
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2021-11-20 7:07 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2021-11-20 7:07 UTC (permalink / raw
To: gentoo-commits
commit: 6d3c1357a7c95b95ecdbf31b3c919890efbcd7f0
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 20 07:06:09 2021 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Nov 20 07:07:25 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6d3c1357
dev-libs/boost: add Python 3.10 patch
Been meaning to add this but was undecided given no problems seemed to pop up.
Then made the connection (doh) between the linked OpenVDB bug after seeing
another distro (Exherbo) pick up this patch. Let's see if it helps the
situation there.
Bug: https://bugs.gentoo.org/790350
Signed-off-by: Sam James <sam <AT> gentoo.org>
...ost-1.77.0-r2.ebuild => boost-1.77.0-r3.ebuild} | 1 +
.../boost/files/boost-1.77.0-python-3.10.patch | 44 ++++++++++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/dev-libs/boost/boost-1.77.0-r2.ebuild b/dev-libs/boost/boost-1.77.0-r3.ebuild
similarity index 99%
rename from dev-libs/boost/boost-1.77.0-r2.ebuild
rename to dev-libs/boost/boost-1.77.0-r3.ebuild
index 05e615af56f6..f0f451a1432a 100644
--- a/dev-libs/boost/boost-1.77.0-r2.ebuild
+++ b/dev-libs/boost/boost-1.77.0-r3.ebuild
@@ -56,6 +56,7 @@ PATCHES=(
"${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
)
python_bindings_needed() {
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
new file mode 100644
index 000000000000..69181b1fa42b
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.77.0-python-3.10.patch
@@ -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
+
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-01-15 12:28 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2022-01-15 12:28 UTC (permalink / raw
To: gentoo-commits
commit: 6bcfb65ff722c6db281faeb8984be807b416f045
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 15 12:28:45 2022 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Jan 15 12:28:45 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6bcfb65f
dev-libs/boost: drop 1.76.0-r1
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.76.0-r1.ebuild | 352 ---------------------
dev-libs/boost/files/boost-1.76-boost-numpy.patch | 23 --
dev-libs/boost/files/boost-1.76-sparc-define.patch | 21 --
dev-libs/boost/metadata.xml | 1 -
5 files changed, 398 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 8f92e20febf1..1649b2507a37 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,4 +1,3 @@
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_78_0.tar.bz2 110675550 BLAKE2B ed7da98862ec1e0a28472544400e6f44ffadbc967eed969ce6cb62b1c4f0b7a4b98a395269eb374b57326eff9cdb1dd6e47df9d1a9730aff7c926cc44388fb2d SHA512 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf
diff --git a/dev-libs/boost/boost-1.76.0-r1.ebuild b/dev-libs/boost/boost-1.76.0-r1.ebuild
deleted file mode 100644
index fd0a7959b900..000000000000
--- a/dev-libs/boost/boost-1.76.0-r1.ebuild
+++ /dev/null
@@ -1,352 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{8..10} )
-
-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"
-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} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
-
-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
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off')
- $(usex mpi '' '--without-mpi')
- $(usex nls '' '--without-locale')
- $(usex context '' '--without-context --without-coroutine --without-fiber')
- $(usex threads '' '--without-thread')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/boost-build/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)
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- 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() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
-
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.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/metadata.xml b/dev-libs/boost/metadata.xml
index f787dd7a4b77..28a449a02899 100644
--- a/dev-libs/boost/metadata.xml
+++ b/dev-libs/boost/metadata.xml
@@ -15,7 +15,6 @@
<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="tools">Build and install the boost tools (bcp, quickbook, inspect, wave)</flag>
</use>
<upstream>
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-05-08 13:35 Andreas Sturmlechner
0 siblings, 0 replies; 27+ messages in thread
From: Andreas Sturmlechner @ 2022-05-08 13:35 UTC (permalink / raw
To: gentoo-commits
commit: bd7deb456020b9b3329b05c3aaa0d26a7997caf3
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sun May 8 13:13:29 2022 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun May 8 13:23:40 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bd7deb45
dev-libs/boost: Drop 1.77.0-r4
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 2 -
dev-libs/boost/boost-1.77.0-r4.ebuild | 341 ---------------------
.../files/boost-1.77.0-fix-process-include.patch | 19 --
.../boost/files/boost-1.77.0-python-3.10.patch | 44 ---
4 files changed, 406 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 0d1e5b8ce3d8..dda317544a26 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,4 +1,2 @@
-DIST boost-1.77.0-patches-1.tar.xz 9612 BLAKE2B b56e45cee94329c97e8ee4e6f040832829e63fb0ae47f02fb1aa54720311f56e68b4d4d53557952bb280d60316ecf64ffc1a1e9c9411b70a733690270b85c2d2 SHA512 1358fa6d3afa45fe414f0c11bb583cc8b95737405c6fc3831f7485e22edac990e98849c06c851a4d0fe26bbeec7b8b40103090dc80417ae717ba33caa2088d86
-DIST boost_1_77_0.tar.bz2 110361537 BLAKE2B 106aeb09ec7705b595f2ca966a76c53c649eac6fac50d88c156862e0991c33c89a2f3a09edcbcb453fa44bf71cdde030b35d0a0889ad97b65f3a868cb877a532 SHA512 39b45c9b60bc5a2a4c669a4463d1272c1e093376b2fb374d7f20a84ea10a3e23bb04b335a735a83a04575731f874d9bff77e89acd947524b3fbbae1b26ae1f2f
DIST boost_1_78_0.tar.bz2 110675550 BLAKE2B ed7da98862ec1e0a28472544400e6f44ffadbc967eed969ce6cb62b1c4f0b7a4b98a395269eb374b57326eff9cdb1dd6e47df9d1a9730aff7c926cc44388fb2d SHA512 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf
DIST boost_1_79_0.tar.bz2 113456811 BLAKE2B 61f47ca022e60745868e6bdd3b5c75603dd68d878e126dcbb73de5b40fc03c0eec8eede3ec304ece58050435ef2fc1ed7eb763773c20673f85e32bbf4d5f978a SHA512 70909e0561c213d10a1fdd692f9ae7b293d3cdc63e925bdc207da9e9bba6e86474341100e7ee5de6d94f9561196b1a3a1597055a7b7382babf8931131170a312
diff --git a/dev-libs/boost/boost-1.77.0-r4.ebuild b/dev-libs/boost/boost-1.77.0-r4.ebuild
deleted file mode 100644
index 5ec5337f1703..000000000000
--- a/dev-libs/boost/boost-1.77.0-r4.ebuild
+++ /dev/null
@@ -1,341 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-
-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"
-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="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-util/boost-build-${MAJOR_V}-r2"
-
-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
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- 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')
- $(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
- --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++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
-
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.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
-
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-07-03 8:33 WANG Xuerui
0 siblings, 0 replies; 27+ messages in thread
From: WANG Xuerui @ 2022-07-03 8:33 UTC (permalink / raw
To: gentoo-commits
commit: 1a9b0d1fe535f498e607f7f8f860656237af347e
Author: WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 3 03:25:27 2022 +0000
Commit: WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Sun Jul 3 08:31:31 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a9b0d1f
dev-libs/boost: fix build for 1.79.0
Fix upstream issue causing configure errors on multiple arches. Changes
are hand-picked into the dist sources tree. One file rename is reverted
to make scrubbed patch work with patch(1).
Bug: https://bugs.gentoo.org/843212
Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>
dev-libs/boost/boost-1.79.0.ebuild | 1 +
.../files/boost-1.79.0-fix-mips1-transition.patch | 39 ++++++++++++++++++++++
2 files changed, 40 insertions(+)
diff --git a/dev-libs/boost/boost-1.79.0.ebuild b/dev-libs/boost/boost-1.79.0.ebuild
index 13fa77c98924..71cb13108ea5 100644
--- a/dev-libs/boost/boost-1.79.0.ebuild
+++ b/dev-libs/boost/boost-1.79.0.ebuild
@@ -53,6 +53,7 @@ PATCHES=(
# Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
"${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
+ "${FILESDIR}"/${PN}-1.79.0-fix-mips1-transition.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.79.0-fix-mips1-transition.patch b/dev-libs/boost/files/boost-1.79.0-fix-mips1-transition.patch
new file mode 100644
index 000000000000..81b29ac6cac1
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.79.0-fix-mips1-transition.patch
@@ -0,0 +1,39 @@
+https://github.com/boostorg/boost/commit/791442bf1ed7a3b14893ed9e73ef2ab32b2a6026, and
+https://github.com/boostorg/config/commit/1a55d1d9c6d1cf7739645080bdd92fe903b4211e without the file renaming.
+
+--- a/boostcpp.jam
++++ b/boostcpp.jam
+@@ -634,7 +634,7 @@ rule address-model ( )
+ return <conditional>@boostcpp.deduce-address-model ;
+ }
+
+-local deducable-architectures = arm mips1 power riscv s390x sparc x86 combined ;
++local deducable-architectures = arm mips power riscv s390x sparc x86 combined ;
+ feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
+ for a in $(deducable-architectures)
+ {
+@@ -645,10 +645,10 @@ rule deduce-architecture ( properties * )
+ {
+ local result ;
+ local filtered = [ toolset-properties $(properties) ] ;
+- local names = arm mips1 power riscv s390x sparc x86 combined ;
++ local names = arm mips power riscv s390x sparc x86 combined ;
+ local idx = [ configure.find-builds "default architecture" : $(filtered)
+ : /boost/architecture//arm
+- : /boost/architecture//mips1
++ : /boost/architecture//mips
+ : /boost/architecture//power
+ : /boost/architecture//riscv
+ : /boost/architecture//s390x
+--- a/libs/config/checks/architecture/Jamfile.jam
++++ b/libs/config/checks/architecture/Jamfile.jam
+@@ -18,7 +18,8 @@ obj 64 : 64.cpp ;
+
+ obj arm : arm.cpp ;
+ obj combined : combined.cpp ;
+-obj mips1 : mips1.cpp ;
++obj mips : mips1.cpp ;
++alias mips1 : mips ; # Backwards compatibility
+ obj power : power.cpp ;
+ obj riscv : riscv.cpp ;
+ obj sparc : sparc.cpp ;
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-07-06 10:27 Andreas Sturmlechner
0 siblings, 0 replies; 27+ messages in thread
From: Andreas Sturmlechner @ 2022-07-06 10:27 UTC (permalink / raw
To: gentoo-commits
commit: 83fa068a17d25caf9270499dc08f4b3f0e081dcc
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 6 09:34:10 2022 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Wed Jul 6 10:27:31 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=83fa068a
dev-libs/boost: Drop 1.78.0-r2
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.78.0-r2.ebuild | 338 ---------------------
.../boost-1.78.0-interprocess-musl-include.patch | 25 --
3 files changed, 364 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index dda317544a26..7e0c56594141 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1 @@
-DIST boost_1_78_0.tar.bz2 110675550 BLAKE2B ed7da98862ec1e0a28472544400e6f44ffadbc967eed969ce6cb62b1c4f0b7a4b98a395269eb374b57326eff9cdb1dd6e47df9d1a9730aff7c926cc44388fb2d SHA512 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf
DIST boost_1_79_0.tar.bz2 113456811 BLAKE2B 61f47ca022e60745868e6bdd3b5c75603dd68d878e126dcbb73de5b40fc03c0eec8eede3ec304ece58050435ef2fc1ed7eb763773c20673f85e32bbf4d5f978a SHA512 70909e0561c213d10a1fdd692f9ae7b293d3cdc63e925bdc207da9e9bba6e86474341100e7ee5de6d94f9561196b1a3a1597055a7b7382babf8931131170a312
diff --git a/dev-libs/boost/boost-1.78.0-r2.ebuild b/dev-libs/boost/boost-1.78.0-r2.ebuild
deleted file mode 100644
index 5d72852573ab..000000000000
--- a/dev-libs/boost/boost-1.78.0-r2.ebuild
+++ /dev/null
@@ -1,338 +0,0 @@
-# Copyright 1999-2022 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{8..10} )
-
-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"
-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 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !app-admin/eselect-boost
- !dev-libs/boost-numpy
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-#BDEPEND=">=dev-util/boost-build-${MAJOR_V}"
-BDEPEND=">=dev-util/boost-build-1.78.0-r1"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.71.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.71.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.71.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.73-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.74-CVE-2012-2677.patch
-
- "${FILESDIR}"/${P}-interprocess-musl-include.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- 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')
- $(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
- --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++14 globally as of 1.62
- append-cxxflags -std=c++14
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
-
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.78.0-interprocess-musl-include.patch b/dev-libs/boost/files/boost-1.78.0-interprocess-musl-include.patch
deleted file mode 100644
index 85d25861f11b..000000000000
--- a/dev-libs/boost/files/boost-1.78.0-interprocess-musl-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://github.com/boostorg/interprocess/commit/d002a0d929ecb031843d806c2bda69e013442e13
-https://bugs.gentoo.org/829147
-
-From: Leonardo Neumann <leonardo@neumann.dev.br>
-Date: Mon, 13 Dec 2021 01:07:20 -0300
-Subject: [PATCH] Fix missing sys/stat.h include on musl-based systems
-
-Boost 1.78.0 fails to build on musl-based systems because musl does
-not include sys/stat.h by default.
-
-Fixes #161 ("Boost compiler error")
---- a/boost/interprocess/permissions.hpp
-+++ b/boost/interprocess/permissions.hpp
-@@ -29,6 +29,10 @@
-
- #include <boost/interprocess/detail/win32_api.hpp>
-
-+#else
-+
-+#include <sys/stat.h>
-+
- #endif
-
- #endif //#ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
-
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-09-03 20:28 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2022-09-03 20:28 UTC (permalink / raw
To: gentoo-commits
commit: a966f0af1aa94f3f9560a6ca88c21248614af559
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 3 20:28:27 2022 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Sep 3 20:28:27 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a966f0af
dev-libs/boost: add 1.80.0
Closes: https://bugs.gentoo.org/865527
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/Manifest | 1 +
dev-libs/boost/boost-1.80.0.ebuild | 341 +++++++++++++++++++++
.../files/boost-1.80.0-disable_icu_rpath.patch | 13 +
.../files/boost-1.80.0-fix-mips1-transition.patch | 24 ++
.../boost/files/boost-1.80.0-unordered-fix.patch | 192 ++++++++++++
5 files changed, 571 insertions(+)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 7e0c56594141..ba3e5b485af8 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1 +1,2 @@
DIST boost_1_79_0.tar.bz2 113456811 BLAKE2B 61f47ca022e60745868e6bdd3b5c75603dd68d878e126dcbb73de5b40fc03c0eec8eede3ec304ece58050435ef2fc1ed7eb763773c20673f85e32bbf4d5f978a SHA512 70909e0561c213d10a1fdd692f9ae7b293d3cdc63e925bdc207da9e9bba6e86474341100e7ee5de6d94f9561196b1a3a1597055a7b7382babf8931131170a312
+DIST boost_1_80_0.tar.bz2 115869904 BLAKE2B 507e811be7659442c41bc2d99811bd02a236dc94932e1a7a8cf256243b479f2d2707819cd99e016a51c9dadc215713e803afdd9ea4c105af8d5d2d28d3d06a1f SHA512 829a95b463473d69ff79ea41799c68429bb79d3b2321fbdb71df079af237ab01de9ad7e9612d8783d925730acada010068d2d1aa856c34244ee5c0ece16f208f
diff --git a/dev-libs/boost/boost-1.80.0.ebuild b/dev-libs/boost/boost-1.80.0.ebuild
new file mode 100644
index 000000000000..712ad83f404a
--- /dev/null
+++ b/dev-libs/boost/boost-1.80.0.ebuild
@@ -0,0 +1,341 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+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"
+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 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ !<dev-libs/leatherman-1.12.0-r1
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/boost-build-${MAJOR_V}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.80.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
+ # (upstreamed)
+ "${FILESDIR}"/${PN}-1.80.0-unordered-fix.patch
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ fi
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
+
+ python_optimize
+ }
+ python_foreach_impl move_mpi_py_into_sitedir
+ else
+ rm -r "${ED}"/usr/include/boost/mpi/python* || die
+ fi
+ else
+ rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.80.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.80.0-disable_icu_rpath.patch
new file mode 100644
index 000000000000..1f4ec29fcf00
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.80.0-disable_icu_rpath.patch
@@ -0,0 +1,13 @@
+--- a/libs/locale/build/Jamfile.v2
++++ b/libs/locale/build/Jamfile.v2
+@@ -82,8 +82,8 @@ ICU_LINK ?= [ modules.peek : ICU_LINK_LOCALE ] ;
+
+ 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
+ {
+ searched-lib icuuc : : <name>icuuc
diff --git a/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch b/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch
new file mode 100644
index 000000000000..4f5e81c925b3
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch
@@ -0,0 +1,24 @@
+--- a/boostcpp.jam
++++ b/boostcpp.jam
+@@ -634,7 +634,7 @@ rule address-model ( )
+ return <conditional>@boostcpp.deduce-address-model ;
+ }
+
+-local deducable-architectures = arm mips1 power riscv s390x sparc x86 combined ;
++local deducable-architectures = arm mips power riscv s390x sparc x86 combined ;
+ feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
+ for a in $(deducable-architectures)
+ {
+@@ -645,10 +645,10 @@ rule deduce-architecture ( properties * )
+ {
+ local result ;
+ local filtered = [ toolset-properties $(properties) ] ;
+- local names = arm mips1 power riscv s390x sparc x86 combined ;
++ local names = arm mips power riscv s390x sparc x86 combined ;
+ local idx = [ configure.find-builds "default architecture" : $(filtered)
+ : /boost/architecture//arm
+- : /boost/architecture//mips1
++ : /boost/architecture//mips
+ : /boost/architecture//power
+ : /boost/architecture//riscv
+ : /boost/architecture//s390x
diff --git a/dev-libs/boost/files/boost-1.80.0-unordered-fix.patch b/dev-libs/boost/files/boost-1.80.0-unordered-fix.patch
new file mode 100644
index 000000000000..51776094386e
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.80.0-unordered-fix.patch
@@ -0,0 +1,192 @@
+From f9eae4153f4ea9aac4b6c46e660ec92824d5827f Mon Sep 17 00:00:00 2001
+From: Christian Mazakas <christian.mazakas@gmail.com>
+Date: Tue, 16 Aug 2022 14:34:58 -0700
+Subject: [PATCH] Update code to be valid when the internal `buckets_` data
+ member is moved-from
+
+---
+ boost/unordered/detail/fca.hpp | 18 +++++--
+ .../boost/unordered/detail/implementation.hpp | 49 +++++++++++--------
+ boost/unordered/unordered_map.hpp | 8 +++
+ boost/unordered/unordered_set.hpp | 8 +++
+ 4 files changed, 58 insertions(+), 25 deletions(-)
+
+diff --git a/boost/unordered/detail/fca.hpp b/boost/unordered/detail/fca.hpp
+index 19fafe739..a1d14d957 100644
+--- a/boost/unordered/detail/fca.hpp
++++ b/boost/unordered/detail/fca.hpp
+@@ -646,7 +646,7 @@ namespace boost {
+
+ size_type bucket_count() const { return size_; }
+
+- iterator begin() const { return ++at(size_); }
++ iterator begin() const { return size_ == 0 ? end() : ++at(size_); }
+
+ iterator end() const
+ {
+@@ -660,6 +660,10 @@ namespace boost {
+
+ local_iterator begin(size_type n) const
+ {
++ if (size_ == 0) {
++ return this->end(n);
++ }
++
+ return local_iterator(
+ (buckets + static_cast<difference_type>(n))->next);
+ }
+@@ -670,12 +674,16 @@ namespace boost {
+
+ iterator at(size_type n) const
+ {
+- std::size_t const N = group::N;
++ if (size_ > 0) {
++ std::size_t const N = group::N;
+
+- iterator pbg(buckets + static_cast<difference_type>(n),
+- groups + static_cast<difference_type>(n / N));
++ iterator pbg(buckets + static_cast<difference_type>(n),
++ groups + static_cast<difference_type>(n / N));
+
+- return pbg;
++ return pbg;
++ } else {
++ return this->end();
++ }
+ }
+
+ span<Bucket> raw()
+diff --git a/boost/unordered/detail/implementation.hpp b/boost/unordered/detail/implementation.hpp
+index 2cc27c5d4..373236754 100644
+--- a/boost/unordered/detail/implementation.hpp
++++ b/boost/unordered/detail/implementation.hpp
+@@ -2054,12 +2054,14 @@ namespace boost {
+
+ std::size_t bucket_size(std::size_t index) const
+ {
+- bucket_iterator itb = buckets_.at(index);
+- node_pointer n = itb->next;
+ std::size_t count = 0;
+- while (n) {
+- ++count;
+- n = n->next;
++ if (size_ > 0) {
++ bucket_iterator itb = buckets_.at(index);
++ node_pointer n = itb->next;
++ while (n) {
++ ++count;
++ n = n->next;
++ }
+ }
+ return count;
+ }
+@@ -2420,11 +2422,14 @@ namespace boost {
+ node_pointer find_node_impl(
+ Key const& x, bucket_iterator itb) const
+ {
+- key_equal const& pred = this->key_eq();
+- node_pointer p = itb->next;
+- for (; p; p = p->next) {
+- if (pred(x, extractor::extract(p->value()))) {
+- break;
++ node_pointer p = node_pointer();
++ if (itb != buckets_.end()) {
++ key_equal const& pred = this->key_eq();
++ p = itb->next;
++ for (; p; p = p->next) {
++ if (pred(x, extractor::extract(p->value()))) {
++ break;
++ }
+ }
+ }
+ return p;
+@@ -2453,11 +2458,13 @@ namespace boost {
+ inline iterator transparent_find(
+ Key const& k, Hash const& h, Pred const& pred) const
+ {
+- std::size_t const key_hash = h(k);
+- bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
+- for (node_pointer p = itb->next; p; p = p->next) {
+- if (BOOST_LIKELY(pred(k, extractor::extract(p->value())))) {
+- return iterator(p, itb);
++ if (size_ > 0) {
++ std::size_t const key_hash = h(k);
++ bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
++ for (node_pointer p = itb->next; p; p = p->next) {
++ if (BOOST_LIKELY(pred(k, extractor::extract(p->value())))) {
++ return iterator(p, itb);
++ }
+ }
+ }
+
+@@ -2467,11 +2474,13 @@ namespace boost {
+ template <class Key>
+ node_pointer* find_prev(Key const& key, bucket_iterator itb)
+ {
+- key_equal pred = this->key_eq();
+- for (node_pointer* pp = boost::addressof(itb->next); *pp;
+- pp = boost::addressof((*pp)->next)) {
+- if (pred(key, extractor::extract((*pp)->value()))) {
+- return pp;
++ if (size_ > 0) {
++ key_equal pred = this->key_eq();
++ for (node_pointer* pp = boost::addressof(itb->next); *pp;
++ pp = boost::addressof((*pp)->next)) {
++ if (pred(key, extractor::extract((*pp)->value()))) {
++ return pp;
++ }
+ }
+ }
+ typedef node_pointer* node_pointer_pointer;
+diff --git a/boost/unordered/unordered_map.hpp b/boost/unordered/unordered_map.hpp
+index 97908fb65..3e25a28a2 100644
+--- a/boost/unordered/unordered_map.hpp
++++ b/boost/unordered/unordered_map.hpp
+@@ -2069,6 +2069,10 @@ namespace boost {
+ template <class K, class T, class H, class P, class A>
+ float unordered_map<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
+ {
++ if (table_.size_ == 0) {
++ return 0.0f;
++ }
++
+ BOOST_ASSERT(table_.bucket_count() != 0);
+ return static_cast<float>(table_.size_) /
+ static_cast<float>(table_.bucket_count());
+@@ -2506,6 +2510,10 @@ namespace boost {
+ template <class K, class T, class H, class P, class A>
+ float unordered_multimap<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
+ {
++ if (table_.size_ == 0) {
++ return 0.0f;
++ }
++
+ BOOST_ASSERT(table_.bucket_count() != 0);
+ return static_cast<float>(table_.size_) /
+ static_cast<float>(table_.bucket_count());
+diff --git a/boost/unordered/unordered_set.hpp b/boost/unordered/unordered_set.hpp
+index 8721a68a0..82d323c6e 100644
+--- a/boost/unordered/unordered_set.hpp
++++ b/boost/unordered/unordered_set.hpp
+@@ -1586,6 +1586,10 @@ namespace boost {
+ template <class T, class H, class P, class A>
+ float unordered_set<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
+ {
++ if (table_.size_ == 0) {
++ return 0.0f;
++ }
++
+ BOOST_ASSERT(table_.bucket_count() != 0);
+ return static_cast<float>(table_.size_) /
+ static_cast<float>(table_.bucket_count());
+@@ -1986,6 +1990,10 @@ namespace boost {
+ template <class T, class H, class P, class A>
+ float unordered_multiset<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
+ {
++ if (table_.size_ == 0) {
++ return 0.0f;
++ }
++
+ BOOST_ASSERT(table_.bucket_count() != 0);
+ return static_cast<float>(table_.size_) /
+ static_cast<float>(table_.bucket_count());
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-09-10 10:59 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2022-09-10 10:59 UTC (permalink / raw
To: gentoo-commits
commit: 301f5e6332309bfe2bdc10aea941bbe0bd9a16cb
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 10 10:57:58 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Sep 10 10:57:58 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=301f5e63
dev-libs/boost: fix build with libcxx
No revbump as:
1. Didn't build with libcxx anyway;
2. Mixing libcxx and libstdc++ isn't supported (suppose built Boost
with libstdc++ & tried to use libcxx in an application) so no
need to worry about that case, although doubt things would work
enough that you'd get to the point where this caused a problem.
Closes: https://bugs.gentoo.org/869401
Thanks-to: Peter Dimov <pdimov <AT> gmail.com>
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.80.0.ebuild | 1 +
.../boost/files/boost-1.80.0-unary-function.patch | 27 ++++++++++++++++++++++
2 files changed, 28 insertions(+)
diff --git a/dev-libs/boost/boost-1.80.0.ebuild b/dev-libs/boost/boost-1.80.0.ebuild
index e0c8fcaf0060..d70b29fc1bf3 100644
--- a/dev-libs/boost/boost-1.80.0.ebuild
+++ b/dev-libs/boost/boost-1.80.0.ebuild
@@ -51,6 +51,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
# (upstreamed)
"${FILESDIR}"/${PN}-1.80.0-unordered-fix.patch
+ "${FILESDIR}"/${PN}-1.80.0-unary-function.patch
)
python_bindings_needed() {
diff --git a/dev-libs/boost/files/boost-1.80.0-unary-function.patch b/dev-libs/boost/files/boost-1.80.0-unary-function.patch
new file mode 100644
index 000000000000..7941d7c66395
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.80.0-unary-function.patch
@@ -0,0 +1,27 @@
+https://bugs.gentoo.org/869401
+https://github.com/boostorg/config/commit/f0af4a9184457939b89110795ae2d293582c5f66
+https://github.com/boostorg/container_hash/issues/24
+
+From: jzmaddock <john@johnmaddock.co.uk>
+Date: Mon, 11 Jul 2022 18:26:07 +0100
+Subject: [PATCH] The std lib unary/binary_function base classes are
+ deprecated/removed from libcpp15. Fixes
+ https://github.com/boostorg/container_hash/issues/24.
+
+--- a/boost/config/stdlib/libcpp.hpp
++++ b/boost/config/stdlib/libcpp.hpp
+@@ -168,4 +168,13 @@
+ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
+ #endif
+
++#if _LIBCPP_VERSION >= 15000
++//
++// Unary function is now deprecated in C++11 and later:
++//
++#if __cplusplus >= 201103L
++#define BOOST_NO_CXX98_FUNCTION_BASE
++#endif
++#endif
++
+ // --- end ---
+
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2022-12-20 23:57 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2022-12-20 23:57 UTC (permalink / raw
To: gentoo-commits
commit: 5297062bb5b595e8a37fdd0cad3bb3c79c5a52db
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Dec 20 23:56:15 2022 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Dec 20 23:56:27 2022 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5297062b
dev-libs/boost: fix phoenix multiple definitions
Closes: https://bugs.gentoo.org/887041
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.81.0-r1.ebuild | 341 +++++++++++++++++++++
...boost-1.81.0-phoenix-multiple-definitions.patch | 11 +
2 files changed, 352 insertions(+)
diff --git a/dev-libs/boost/boost-1.81.0-r1.ebuild b/dev-libs/boost/boost-1.81.0-r1.ebuild
new file mode 100644
index 000000000000..4879ee3c6c95
--- /dev/null
+++ b/dev-libs/boost/boost-1.81.0-r1.ebuild
@@ -0,0 +1,341 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..11} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
+IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ !<dev-libs/leatherman-1.12.0-r1
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/b2-4.9.2"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
+ "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
+
+ # (upstreamed)
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ if [[ ${CHOST} == *-darwin* ]]; then
+ compiler="darwin"
+ compiler_version="$(gcc-fullversion)"
+ else
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+ fi
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ --without-stacktrace
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "^libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ ebegin " correcting reference to ${r}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
+
+ python_optimize
+ }
+ python_foreach_impl move_mpi_py_into_sitedir
+ else
+ rm -r "${ED}"/usr/include/boost/mpi/python* || die
+ fi
+ else
+ rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch b/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch
new file mode 100644
index 000000000000..0aedde6d0735
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch
@@ -0,0 +1,11 @@
+https://bugs.gentoo.org/887041
+https://github.com/boostorg/phoenix/issues/111
+--- a/boost/phoenix/stl.hpp
++++ b/boost/phoenix/stl.hpp
+@@ -11,6 +11,5 @@
+
+ #include <boost/phoenix/stl/algorithm.hpp>
+ #include <boost/phoenix/stl/container.hpp>
+-#include <boost/phoenix/stl/tuple.hpp>
+
+ #endif
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2023-04-30 17:16 Andreas Sturmlechner
0 siblings, 0 replies; 27+ messages in thread
From: Andreas Sturmlechner @ 2023-04-30 17:16 UTC (permalink / raw
To: gentoo-commits
commit: 9abdf3274aa90bf4dec65675f25325f6502e8bd6
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 29 21:27:59 2023 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sun Apr 30 17:16:23 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9abdf327
dev-libs/boost: drop 1.80.0-r1
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.80.0-r1.ebuild | 343 ---------------------
.../files/boost-1.80.0-disable_icu_rpath.patch | 13 -
dev-libs/boost/files/boost-1.80.0-python3.11.patch | 33 --
.../boost/files/boost-1.80.0-unary-function.patch | 27 --
.../boost/files/boost-1.80.0-unordered-fix.patch | 192 ------------
.../files/boost-1.80.0-unordered-ftm-malloc.patch | 21 --
7 files changed, 630 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index 9789dbd925d6..4c89701f991c 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,3 +1,2 @@
-DIST boost_1_80_0.tar.bz2 115869904 BLAKE2B 507e811be7659442c41bc2d99811bd02a236dc94932e1a7a8cf256243b479f2d2707819cd99e016a51c9dadc215713e803afdd9ea4c105af8d5d2d28d3d06a1f SHA512 829a95b463473d69ff79ea41799c68429bb79d3b2321fbdb71df079af237ab01de9ad7e9612d8783d925730acada010068d2d1aa856c34244ee5c0ece16f208f
DIST boost_1_81_0.tar.bz2 118797750 BLAKE2B ae57247fb80ee5a952881a99bdbe9a1d5622690879ef59053716647dc1121e70fdd322251837387b43357f1cd63c6d1ba285cf35c0c40e4f5ee28a929d7eacf7 SHA512 a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36
DIST boost_1_82_0.tar.bz2 121325129 BLAKE2B 16ee164ce7114d8134c861b3652c842750cec63ab0e79e4386d8cb9c56f7a454f9a9cfa75f25d9132a8d8d9e6f39d32a8e7535f83f52f355bbc40ef530163fa5 SHA512 6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb
diff --git a/dev-libs/boost/boost-1.80.0-r1.ebuild b/dev-libs/boost/boost-1.80.0-r1.ebuild
deleted file mode 100644
index 89992f545238..000000000000
--- a/dev-libs/boost/boost-1.80.0-r1.ebuild
+++ /dev/null
@@ -1,343 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{9..11} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- !<dev-libs/leatherman-1.12.0-r1
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-util/b2-4.9.2"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.80.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
- # (upstreamed)
- "${FILESDIR}"/${PN}-1.80.0-unordered-fix.patch
- "${FILESDIR}"/${PN}-1.80.0-unary-function.patch
- "${FILESDIR}"/${PN}-1.80.0-python3.11.patch
- "${FILESDIR}"/${PN}-1.80.0-unordered-ftm-malloc.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- if [[ ${CHOST} == *-darwin* ]]; then
- compiler="darwin"
- compiler_version="$(gcc-fullversion)"
- else
- compiler="gcc"
- compiler_version="$(gcc-version)"
- fi
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- # We don't want to end up with -L/usr/lib on our linker lines
- # which then gives us lots of
- # skipping incompatible /usr/lib/libc.a when searching for -lc
- # warnings
- [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
- $(usev !mpi --without-mpi)
- $(usev !nls --without-locale)
- $(usev !context '--without-context --without-coroutine --without-fiber')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/b2/src
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=shared
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++17 globally as of 1.80
- append-cxxflags -std=c++17
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "^libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- ebegin " correcting reference to ${r}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
-
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.80.0-disable_icu_rpath.patch b/dev-libs/boost/files/boost-1.80.0-disable_icu_rpath.patch
deleted file mode 100644
index 1f4ec29fcf00..000000000000
--- a/dev-libs/boost/files/boost-1.80.0-disable_icu_rpath.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/libs/locale/build/Jamfile.v2
-+++ b/libs/locale/build/Jamfile.v2
-@@ -82,8 +82,8 @@ ICU_LINK ?= [ modules.peek : ICU_LINK_LOCALE ] ;
-
- 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
- {
- searched-lib icuuc : : <name>icuuc
diff --git a/dev-libs/boost/files/boost-1.80.0-python3.11.patch b/dev-libs/boost/files/boost-1.80.0-python3.11.patch
deleted file mode 100644
index cdbc36ca953f..000000000000
--- a/dev-libs/boost/files/boost-1.80.0-python3.11.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-https://github.com/boostorg/python/commit/a218babc8daee904a83f550fb66e5cb3f1cb3013
-https://github.com/boostorg/python/pull/385
-
-From a218babc8daee904a83f550fb66e5cb3f1cb3013 Mon Sep 17 00:00:00 2001
-From: Victor Stinner <vstinner@python.org>
-Date: Mon, 25 Apr 2022 10:51:46 +0200
-Subject: [PATCH] Fix enum_type_object type on Python 3.11
-
-The enum_type_object type inherits from PyLong_Type which is not tracked
-by the GC. Instances doesn't have to be tracked by the GC: remove the
-Py_TPFLAGS_HAVE_GC flag.
-
-The Python C API documentation says:
-
- "To create a container type, the tp_flags field of the type object
- must include the Py_TPFLAGS_HAVE_GC and provide an implementation of
- the tp_traverse handler."
-
-https://docs.python.org/dev/c-api/gcsupport.html
-
-The new exception was introduced in Python 3.11 by:
-https://github.com/python/cpython/issues/88429
---- a/libs/python/src/object/enum.cpp
-+++ b/libs/python/src/object/enum.cpp
-@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = {
- #if PY_VERSION_HEX < 0x03000000
- | Py_TPFLAGS_CHECKTYPES
- #endif
-- | Py_TPFLAGS_HAVE_GC
- | Py_TPFLAGS_BASETYPE, /* tp_flags */
- 0, /* tp_doc */
- 0, /* tp_traverse */
-
diff --git a/dev-libs/boost/files/boost-1.80.0-unary-function.patch b/dev-libs/boost/files/boost-1.80.0-unary-function.patch
deleted file mode 100644
index 7941d7c66395..000000000000
--- a/dev-libs/boost/files/boost-1.80.0-unary-function.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-https://bugs.gentoo.org/869401
-https://github.com/boostorg/config/commit/f0af4a9184457939b89110795ae2d293582c5f66
-https://github.com/boostorg/container_hash/issues/24
-
-From: jzmaddock <john@johnmaddock.co.uk>
-Date: Mon, 11 Jul 2022 18:26:07 +0100
-Subject: [PATCH] The std lib unary/binary_function base classes are
- deprecated/removed from libcpp15. Fixes
- https://github.com/boostorg/container_hash/issues/24.
-
---- a/boost/config/stdlib/libcpp.hpp
-+++ b/boost/config/stdlib/libcpp.hpp
-@@ -168,4 +168,13 @@
- # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
- #endif
-
-+#if _LIBCPP_VERSION >= 15000
-+//
-+// Unary function is now deprecated in C++11 and later:
-+//
-+#if __cplusplus >= 201103L
-+#define BOOST_NO_CXX98_FUNCTION_BASE
-+#endif
-+#endif
-+
- // --- end ---
-
diff --git a/dev-libs/boost/files/boost-1.80.0-unordered-fix.patch b/dev-libs/boost/files/boost-1.80.0-unordered-fix.patch
deleted file mode 100644
index 51776094386e..000000000000
--- a/dev-libs/boost/files/boost-1.80.0-unordered-fix.patch
+++ /dev/null
@@ -1,192 +0,0 @@
-From f9eae4153f4ea9aac4b6c46e660ec92824d5827f Mon Sep 17 00:00:00 2001
-From: Christian Mazakas <christian.mazakas@gmail.com>
-Date: Tue, 16 Aug 2022 14:34:58 -0700
-Subject: [PATCH] Update code to be valid when the internal `buckets_` data
- member is moved-from
-
----
- boost/unordered/detail/fca.hpp | 18 +++++--
- .../boost/unordered/detail/implementation.hpp | 49 +++++++++++--------
- boost/unordered/unordered_map.hpp | 8 +++
- boost/unordered/unordered_set.hpp | 8 +++
- 4 files changed, 58 insertions(+), 25 deletions(-)
-
-diff --git a/boost/unordered/detail/fca.hpp b/boost/unordered/detail/fca.hpp
-index 19fafe739..a1d14d957 100644
---- a/boost/unordered/detail/fca.hpp
-+++ b/boost/unordered/detail/fca.hpp
-@@ -646,7 +646,7 @@ namespace boost {
-
- size_type bucket_count() const { return size_; }
-
-- iterator begin() const { return ++at(size_); }
-+ iterator begin() const { return size_ == 0 ? end() : ++at(size_); }
-
- iterator end() const
- {
-@@ -660,6 +660,10 @@ namespace boost {
-
- local_iterator begin(size_type n) const
- {
-+ if (size_ == 0) {
-+ return this->end(n);
-+ }
-+
- return local_iterator(
- (buckets + static_cast<difference_type>(n))->next);
- }
-@@ -670,12 +674,16 @@ namespace boost {
-
- iterator at(size_type n) const
- {
-- std::size_t const N = group::N;
-+ if (size_ > 0) {
-+ std::size_t const N = group::N;
-
-- iterator pbg(buckets + static_cast<difference_type>(n),
-- groups + static_cast<difference_type>(n / N));
-+ iterator pbg(buckets + static_cast<difference_type>(n),
-+ groups + static_cast<difference_type>(n / N));
-
-- return pbg;
-+ return pbg;
-+ } else {
-+ return this->end();
-+ }
- }
-
- span<Bucket> raw()
-diff --git a/boost/unordered/detail/implementation.hpp b/boost/unordered/detail/implementation.hpp
-index 2cc27c5d4..373236754 100644
---- a/boost/unordered/detail/implementation.hpp
-+++ b/boost/unordered/detail/implementation.hpp
-@@ -2054,12 +2054,14 @@ namespace boost {
-
- std::size_t bucket_size(std::size_t index) const
- {
-- bucket_iterator itb = buckets_.at(index);
-- node_pointer n = itb->next;
- std::size_t count = 0;
-- while (n) {
-- ++count;
-- n = n->next;
-+ if (size_ > 0) {
-+ bucket_iterator itb = buckets_.at(index);
-+ node_pointer n = itb->next;
-+ while (n) {
-+ ++count;
-+ n = n->next;
-+ }
- }
- return count;
- }
-@@ -2420,11 +2422,14 @@ namespace boost {
- node_pointer find_node_impl(
- Key const& x, bucket_iterator itb) const
- {
-- key_equal const& pred = this->key_eq();
-- node_pointer p = itb->next;
-- for (; p; p = p->next) {
-- if (pred(x, extractor::extract(p->value()))) {
-- break;
-+ node_pointer p = node_pointer();
-+ if (itb != buckets_.end()) {
-+ key_equal const& pred = this->key_eq();
-+ p = itb->next;
-+ for (; p; p = p->next) {
-+ if (pred(x, extractor::extract(p->value()))) {
-+ break;
-+ }
- }
- }
- return p;
-@@ -2453,11 +2458,13 @@ namespace boost {
- inline iterator transparent_find(
- Key const& k, Hash const& h, Pred const& pred) const
- {
-- std::size_t const key_hash = h(k);
-- bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
-- for (node_pointer p = itb->next; p; p = p->next) {
-- if (BOOST_LIKELY(pred(k, extractor::extract(p->value())))) {
-- return iterator(p, itb);
-+ if (size_ > 0) {
-+ std::size_t const key_hash = h(k);
-+ bucket_iterator itb = buckets_.at(buckets_.position(key_hash));
-+ for (node_pointer p = itb->next; p; p = p->next) {
-+ if (BOOST_LIKELY(pred(k, extractor::extract(p->value())))) {
-+ return iterator(p, itb);
-+ }
- }
- }
-
-@@ -2467,11 +2474,13 @@ namespace boost {
- template <class Key>
- node_pointer* find_prev(Key const& key, bucket_iterator itb)
- {
-- key_equal pred = this->key_eq();
-- for (node_pointer* pp = boost::addressof(itb->next); *pp;
-- pp = boost::addressof((*pp)->next)) {
-- if (pred(key, extractor::extract((*pp)->value()))) {
-- return pp;
-+ if (size_ > 0) {
-+ key_equal pred = this->key_eq();
-+ for (node_pointer* pp = boost::addressof(itb->next); *pp;
-+ pp = boost::addressof((*pp)->next)) {
-+ if (pred(key, extractor::extract((*pp)->value()))) {
-+ return pp;
-+ }
- }
- }
- typedef node_pointer* node_pointer_pointer;
-diff --git a/boost/unordered/unordered_map.hpp b/boost/unordered/unordered_map.hpp
-index 97908fb65..3e25a28a2 100644
---- a/boost/unordered/unordered_map.hpp
-+++ b/boost/unordered/unordered_map.hpp
-@@ -2069,6 +2069,10 @@ namespace boost {
- template <class K, class T, class H, class P, class A>
- float unordered_map<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
- {
-+ if (table_.size_ == 0) {
-+ return 0.0f;
-+ }
-+
- BOOST_ASSERT(table_.bucket_count() != 0);
- return static_cast<float>(table_.size_) /
- static_cast<float>(table_.bucket_count());
-@@ -2506,6 +2510,10 @@ namespace boost {
- template <class K, class T, class H, class P, class A>
- float unordered_multimap<K, T, H, P, A>::load_factor() const BOOST_NOEXCEPT
- {
-+ if (table_.size_ == 0) {
-+ return 0.0f;
-+ }
-+
- BOOST_ASSERT(table_.bucket_count() != 0);
- return static_cast<float>(table_.size_) /
- static_cast<float>(table_.bucket_count());
-diff --git a/boost/unordered/unordered_set.hpp b/boost/unordered/unordered_set.hpp
-index 8721a68a0..82d323c6e 100644
---- a/boost/unordered/unordered_set.hpp
-+++ b/boost/unordered/unordered_set.hpp
-@@ -1586,6 +1586,10 @@ namespace boost {
- template <class T, class H, class P, class A>
- float unordered_set<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
- {
-+ if (table_.size_ == 0) {
-+ return 0.0f;
-+ }
-+
- BOOST_ASSERT(table_.bucket_count() != 0);
- return static_cast<float>(table_.size_) /
- static_cast<float>(table_.bucket_count());
-@@ -1986,6 +1990,10 @@ namespace boost {
- template <class T, class H, class P, class A>
- float unordered_multiset<T, H, P, A>::load_factor() const BOOST_NOEXCEPT
- {
-+ if (table_.size_ == 0) {
-+ return 0.0f;
-+ }
-+
- BOOST_ASSERT(table_.bucket_count() != 0);
- return static_cast<float>(table_.size_) /
- static_cast<float>(table_.bucket_count());
diff --git a/dev-libs/boost/files/boost-1.80.0-unordered-ftm-malloc.patch b/dev-libs/boost/files/boost-1.80.0-unordered-ftm-malloc.patch
deleted file mode 100644
index 95b39e4bb6be..000000000000
--- a/dev-libs/boost/files/boost-1.80.0-unordered-ftm-malloc.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-https://github.com/boostorg/align/commit/5ad7df63cd792fbdb801d600b93cad1a432f0151
-https://github.com/boostorg/align/pull/19
-
-From 5ad7df63cd792fbdb801d600b93cad1a432f0151 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=89rico=20Nogueira=20Rolim?=
- <34201958+ericonr@users.noreply.github.com>
-Date: Fri, 11 Nov 2022 18:29:45 -0300
-Subject: [PATCH] Don't use FTMs to determine implementation choice
-
---- a/boost/align/aligned_alloc.hpp
-+++ b/boost/align/aligned_alloc.hpp
-@@ -38,7 +38,7 @@ Distributed under the Boost Software License, Version 1.0.
- #include <boost/align/detail/aligned_alloc_posix.hpp>
- #elif defined(sun) || defined(__sun)
- #include <boost/align/detail/aligned_alloc_sunos.hpp>
--#elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)
-+#elif defined(_POSIX_VERSION)
- #include <boost/align/detail/aligned_alloc_posix.hpp>
- #else
- #include <boost/align/detail/aligned_alloc.hpp>
-
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2023-12-14 8:12 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2023-12-14 8:12 UTC (permalink / raw
To: gentoo-commits
commit: 2a4a04784c5da33533936217bce103e89d5c3285
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec 14 08:11:44 2023 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec 14 08:11:44 2023 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a4a0478
dev-libs/boost: backport math fix for gcc 14
Thanks to jwakely-via-arsen for the headsup.
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.83.0-r3.ebuild | 358 +++++++++++++++++++++
dev-libs/boost/files/boost-1.83.0-math-gcc14.patch | 19 ++
2 files changed, 377 insertions(+)
diff --git a/dev-libs/boost/boost-1.83.0-r3.ebuild b/dev-libs/boost/boost-1.83.0-r3.ebuild
new file mode 100644
index 000000000000..b6aff8ac5c20
--- /dev/null
+++ b/dev-libs/boost/boost-1.83.0-r3.ebuild
@@ -0,0 +1,358 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Keep an eye on both of these after releases for patches:
+# * https://www.boost.org/patches/
+# * https://www.boost.org/users/history/version_${MY_PV}.html
+# (e.g. https://www.boost.org/users/history/version_1_83_0.html)
+# Note that the latter may sometimes feature patches not on the former too.
+
+PYTHON_COMPAT=( python3_{10..12} )
+
+inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="Boost Libraries for C++"
+HOMEPAGE="https://www.boost.org/"
+SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+S="${WORKDIR}/${PN}_${MY_PV}"
+
+LICENSE="Boost-1.0"
+SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+IUSE="bzip2 +context debug doc icu lzma +nls mpi numpy python +stacktrace tools zlib zstd"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+# the tests will never fail because these are not intended as sanity
+# tests at all. They are more a way for upstream to check their own code
+# on new compilers. Since they would either be completely unreliable
+# (failing for no good reason) or completely useless (never failing)
+# there is no point in having them in the ebuild to begin with.
+RESTRICT="test"
+
+RDEPEND="
+ bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
+ icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
+ !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
+ lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
+ mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
+ python? (
+ ${PYTHON_DEPS}
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ )
+ zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
+ zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
+DEPEND="${RDEPEND}"
+BDEPEND=">=dev-util/b2-4.9.2"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
+ "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
+ # Boost.MPI's __init__.py doesn't work on Py3
+ "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
+ "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
+ "${FILESDIR}"/${PN}-1.83.0-unordered-uaf.patch
+ "${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch
+)
+
+python_bindings_needed() {
+ multilib_is_native_abi && use python
+}
+
+tools_needed() {
+ multilib_is_native_abi && use tools
+}
+
+create_user-config.jam() {
+ local user_config_jam="${BUILD_DIR}"/user-config.jam
+ if [[ -s ${user_config_jam} ]]; then
+ einfo "${user_config_jam} already exists, skipping configuration"
+ return
+ else
+ einfo "Creating configuration in ${user_config_jam}"
+ fi
+
+ local compiler compiler_version compiler_executable="$(tc-getCXX)"
+ compiler="gcc"
+ compiler_version="$(gcc-version)"
+
+ if use mpi; then
+ local mpi_configuration="using mpi ;"
+ fi
+
+ cat > "${user_config_jam}" <<- __EOF__ || die
+ using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
+ ${mpi_configuration}
+ __EOF__
+
+ if python_bindings_needed; then
+ append_to_user_config() {
+ local py_config
+ if tc-is-cross-compiler; then
+ py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
+ else
+ py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
+ fi
+ echo "${py_config}" >> "${user_config_jam}" || die
+ }
+ python_foreach_impl append_to_user_config
+ fi
+
+ if python_bindings_needed && use numpy; then
+ einfo "Enabling support for NumPy extensions in Boost.Python"
+ else
+ einfo "Disabling support for NumPy extensions in Boost.Python"
+
+ # Boost.Build does not allow for disabling of numpy
+ # extensions, thereby leading to automagic numpy
+ # https://github.com/boostorg/python/issues/111#issuecomment-280447482
+ sed \
+ -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
+ -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
+ fi
+}
+
+pkg_setup() {
+ # Bail out on unsupported build configuration, bug #456792
+ if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
+ if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
+ eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
+ eerror "Boost can not be built in such configuration."
+ eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
+ die "Unsupported target in ${EROOT}/etc/site-config.jam"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+ejam() {
+ create_user-config.jam
+
+ local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
+ if python_bindings_needed; then
+ append_to_b2_opts() {
+ b2_opts+=( python="${EPYTHON#python}" )
+ }
+ python_foreach_impl append_to_b2_opts
+ else
+ b2_opts+=( --without-python )
+ fi
+ b2_opts+=( "$@" )
+
+ echo b2 "${b2_opts[@]}" >&2
+ b2 "${b2_opts[@]}"
+}
+
+src_configure() {
+ # Workaround for too many parallel processes requested, bug #506064
+ [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
+
+ # We don't want to end up with -L/usr/lib on our linker lines
+ # which then gives us lots of
+ # skipping incompatible /usr/lib/libc.a when searching for -lc
+ # warnings
+ [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
+
+ OPTIONS=(
+ $(usex debug gentoodebug gentoorelease)
+ "-j$(makeopts_jobs)"
+ -q
+ -d+2
+ pch=off
+ $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
+ $(usev !mpi --without-mpi)
+ $(usev !nls --without-locale)
+ $(usev !context '--without-context --without-coroutine --without-fiber')
+ $(usev !stacktrace --without-stacktrace)
+ --boost-build="${BROOT}"/usr/share/b2/src
+ --layout=system
+ # building with threading=single is currently not possible
+ # https://svn.boost.org/trac/boost/ticket/7105
+ threading=multi
+ link=shared
+ # this seems to be the only way to disable compression algorithms
+ # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
+ -sNO_BZIP2=$(usex bzip2 0 1)
+ -sNO_LZMA=$(usex lzma 0 1)
+ -sNO_ZLIB=$(usex zlib 0 1)
+ -sNO_ZSTD=$(usex zstd 0 1)
+ )
+
+ if [[ ${CHOST} == *-darwin* ]]; then
+ # We need to add the prefix, and in two cases this exceeds, so prepare
+ # for the largest possible space allocation.
+ append-ldflags -Wl,-headerpad_max_install_names
+ fi
+
+ # Use C++17 globally as of 1.80
+ append-cxxflags -std=c++17
+
+ if [[ ${CHOST} != *-darwin* ]]; then
+ # On modern macOS, file I/O is already 64-bit by default,
+ # there's no support for special options like O_LARGEFILE.
+ # Thus, LFS must be disabled.
+ #
+ # On other systems, we need to enable LFS explicitly for 64-bit
+ # offsets on 32-bit hosts (#894564)
+ append-lfs-flags
+ fi
+}
+
+multilib_src_compile() {
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" || die
+
+ if tools_needed; then
+ pushd tools >/dev/null || die
+ ejam \
+ --prefix="${EPREFIX}"/usr \
+ "${OPTIONS[@]}" \
+ || die "Building of Boost tools failed"
+ popd >/dev/null || die
+ fi
+}
+
+multilib_src_install() {
+ ejam \
+ --prefix="${ED}"/usr \
+ --includedir="${ED}"/usr/include \
+ --libdir="${ED}"/usr/$(get_libdir) \
+ "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
+
+ if tools_needed; then
+ dobin dist/bin/*
+
+ insinto /usr/share
+ doins -r dist/share/boostbook
+ fi
+
+ # boost's build system truely sucks for not having a destdir. Because for
+ # this reason we are forced to build with a prefix that includes the
+ # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
+ # DESTROOT instread of the actual EPREFIX. There is no way out of here
+ # but to do it the dirty way of manually setting the right install_names.
+ if [[ ${CHOST} == *-darwin* ]]; then
+ einfo "Working around completely broken build-system(tm)"
+ local d
+ for d in "${ED}"/usr/lib/*.dylib; do
+ if [[ -f ${d} ]]; then
+ # fix the "soname"
+ ebegin " correcting install_name of ${d#${ED}}"
+ install_name_tool -id "/${d#${D}}" "${d}"
+ eend $?
+ # fix references to other libs
+ # these paths look like this:
+ # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
+ # threadapi-pthread/threading-multi/visibility-hidden/
+ # libboost_thread.dylib
+ refs=$(otool -XL "${d}" | \
+ sed -e '1d' -e 's/^\t//' | \
+ grep "libboost_" | \
+ cut -f1 -d' ')
+ local r
+ for r in ${refs}; do
+ # strip path prefix from references, so we obtain
+ # something like libboost_thread.dylib.
+ local r_basename=${r##*/}
+
+ ebegin " correcting reference to ${r_basename}"
+ install_name_tool -change \
+ "${r}" \
+ "${EPREFIX}/usr/lib/${r_basename}" \
+ "${d}"
+ eend $?
+ done
+ fi
+ done
+ fi
+}
+
+multilib_src_install_all() {
+ if ! use numpy; then
+ rm -r "${ED}"/usr/include/boost/python/numpy* || die
+ fi
+
+ if use python; then
+ if use mpi; then
+ move_mpi_py_into_sitedir() {
+ python_moduleinto boost
+ python_domodule "${S}"/libs/mpi/build/__init__.py
+
+ python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
+ rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
+
+ python_optimize
+ }
+ python_foreach_impl move_mpi_py_into_sitedir
+ else
+ rm -r "${ED}"/usr/include/boost/mpi/python* || die
+ fi
+ else
+ rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
+ fi
+
+ if ! use nls; then
+ rm -r "${ED}"/usr/include/boost/locale || die
+ fi
+
+ if ! use context; then
+ rm -r "${ED}"/usr/include/boost/context || die
+ rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
+ rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
+ fi
+
+ if use doc; then
+ # find extraneous files that shouldn't be installed
+ # as part of the documentation and remove them.
+ find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
+ find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
+ find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
+
+ docinto html
+ dodoc *.{htm,html,png,css}
+ dodoc -r doc libs more tools
+
+ # To avoid broken links
+ dodoc LICENSE_1_0.txt
+
+ dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
+ fi
+}
+
+pkg_preinst() {
+ # Yay for having symlinks that are nigh-impossible to remove without
+ # resorting to dirty hacks like these. Removes lingering symlinks
+ # from the slotted versions.
+ local symlink
+ for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
+ if [[ -L ${symlink} ]]; then
+ rm -f "${symlink}" || die
+ fi
+ done
+
+ # some ancient installs still have boost cruft lying around
+ # for unknown reasons, causing havoc for reverse dependencies
+ # Bug: 607734
+ rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
+}
+
+pkg_postinst() {
+ elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
+ elog
+ elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
+ elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
+ elog
+ elog "Then you need to recompile Boost and all its reverse dependencies"
+ elog "using the same toolchain. In general, *every* change of the C++ toolchain"
+ elog "requires a complete rebuild of the Boost-dependent ecosystem."
+ elog
+ elog "See for instance https://bugs.gentoo.org/638138"
+}
diff --git a/dev-libs/boost/files/boost-1.83.0-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>
+
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2024-01-23 16:32 David Seifert
0 siblings, 0 replies; 27+ messages in thread
From: David Seifert @ 2024-01-23 16:32 UTC (permalink / raw
To: gentoo-commits
commit: 4917db41e78e43f9288405745bedd9a6cf679833
Author: David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 23 16:32:40 2024 +0000
Commit: David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Tue Jan 23 16:32:40 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4917db41
dev-libs/boost: update patch with upstreamed info
Signed-off-by: David Seifert <soap <AT> gentoo.org>
dev-libs/boost/boost-1.84.0-r1.ebuild | 2 +-
dev-libs/boost/files/boost-1.79.0-context-x32.patch | 11 +++++++++--
2 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/dev-libs/boost/boost-1.84.0-r1.ebuild b/dev-libs/boost/boost-1.84.0-r1.ebuild
index 4b95253ac198..a9eadf2838c9 100644
--- a/dev-libs/boost/boost-1.84.0-r1.ebuild
+++ b/dev-libs/boost/boost-1.84.0-r1.ebuild
@@ -49,7 +49,6 @@ BDEPEND=">=dev-build/b2-4.9.2"
PATCHES=(
"${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
"${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
# Boost.MPI's __init__.py doesn't work on Py3
"${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
@@ -57,6 +56,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-1.83.0-math-gcc14.patch
# upstreamed
+ "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
"${FILESDIR}"/${PN}-1.84.0-signals2-patch1.patch
"${FILESDIR}"/${PN}-1.84.0-signals2-patch2.patch
)
diff --git a/dev-libs/boost/files/boost-1.79.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.79.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
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2024-02-20 20:49 Andreas Sturmlechner
0 siblings, 0 replies; 27+ messages in thread
From: Andreas Sturmlechner @ 2024-02-20 20:49 UTC (permalink / raw
To: gentoo-commits
commit: 600a5319152d434ae5f936afacbacb2240f63202
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 20 19:31:37 2024 +0000
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Tue Feb 20 20:48:17 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=600a5319
dev-libs/boost: drop 1.82.0-r1
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org>
dev-libs/boost/Manifest | 1 -
dev-libs/boost/boost-1.82.0-r1.ebuild | 354 ---------------------
.../boost-1.79.0-boost-mpi-python-PEP-328.patch | 17 -
.../files/boost-1.80.0-fix-mips1-transition.patch | 24 --
...boost-1.81.0-phoenix-multiple-definitions.patch | 11 -
.../boost/files/boost-1.82.0-context-arm64.patch | 19 --
6 files changed, 426 deletions(-)
diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
index c627f2a7f59b..3d25ce0460ba 100644
--- a/dev-libs/boost/Manifest
+++ b/dev-libs/boost/Manifest
@@ -1,2 +1 @@
-DIST boost_1_82_0.tar.bz2 121325129 BLAKE2B 16ee164ce7114d8134c861b3652c842750cec63ab0e79e4386d8cb9c56f7a454f9a9cfa75f25d9132a8d8d9e6f39d32a8e7535f83f52f355bbc40ef530163fa5 SHA512 6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb
DIST boost_1_84_0.tar.bz2 123110547 BLAKE2B a872ee00402be0383726020f4d13a7df6c2765c52eac2e09aab1604432931d26dd597503f5dcbbf788d7e7528d13c6d1dbfff1e85d22bf92c7828ef74cf2405d SHA512 5dfeb35198bb096e46cf9e131ef0334cb95bc0bf09f343f291b860b112598b3c36111bd8c232439c401a2b2fb832fa0c399a8d5b96afc60bd359dff070154497
diff --git a/dev-libs/boost/boost-1.82.0-r1.ebuild b/dev-libs/boost/boost-1.82.0-r1.ebuild
deleted file mode 100644
index 0c89cbe000f2..000000000000
--- a/dev-libs/boost/boost-1.82.0-r1.ebuild
+++ /dev/null
@@ -1,354 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{10..11} )
-
-inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
-
-MY_PV="$(ver_rs 1- _)"
-
-DESCRIPTION="Boost Libraries for C++"
-HOMEPAGE="https://www.boost.org/"
-SRC_URI="https://boostorg.jfrog.io/artifactory/main/release/${PV}/source/boost_${MY_PV}.tar.bz2"
-S="${WORKDIR}/${PN}_${MY_PV}"
-
-LICENSE="Boost-1.0"
-SLOT="0/${PV}" # ${PV} instead of the major version due to bug 486122
-KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python tools zlib zstd"
-REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
-# the tests will never fail because these are not intended as sanity
-# tests at all. They are more a way for upstream to check their own code
-# on new compilers. Since they would either be completely unreliable
-# (failing for no good reason) or completely useless (never failing)
-# there is no point in having them in the ebuild to begin with.
-RESTRICT="test"
-
-RDEPEND="
- bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
- icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
- !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
- lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
- mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
- python? (
- ${PYTHON_DEPS}
- numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
- )
- zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
- zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}"
-BDEPEND=">=dev-build/b2-4.9.2"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.81.0-disable_icu_rpath.patch
- "${FILESDIR}"/${PN}-1.79.0-context-x32.patch
- "${FILESDIR}"/${PN}-1.79.0-build-auto_index-tool.patch
- # Boost.MPI's __init__.py doesn't work on Py3
- "${FILESDIR}"/${PN}-1.79.0-boost-mpi-python-PEP-328.patch
- "${FILESDIR}"/${PN}-1.80.0-fix-mips1-transition.patch
- "${FILESDIR}"/${PN}-1.81.0-phoenix-multiple-definitions.patch
-
- # (upstreamed)
- "${FILESDIR}"/${PN}-1.82.0-context-arm64.patch
-)
-
-python_bindings_needed() {
- multilib_is_native_abi && use python
-}
-
-tools_needed() {
- multilib_is_native_abi && use tools
-}
-
-create_user-config.jam() {
- local user_config_jam="${BUILD_DIR}"/user-config.jam
- if [[ -s ${user_config_jam} ]]; then
- einfo "${user_config_jam} already exists, skipping configuration"
- return
- else
- einfo "Creating configuration in ${user_config_jam}"
- fi
-
- local compiler compiler_version compiler_executable="$(tc-getCXX)"
- compiler="gcc"
- compiler_version="$(gcc-version)"
-
- if use mpi; then
- local mpi_configuration="using mpi ;"
- fi
-
- cat > "${user_config_jam}" <<- __EOF__ || die
- using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CPPFLAGS} ${CFLAGS}" <cxxflags>"${CPPFLAGS} ${CXXFLAGS}" <linkflags>"${LDFLAGS}" <archiver>"$(tc-getAR)" <ranlib>"$(tc-getRANLIB)" ;
- ${mpi_configuration}
- __EOF__
-
- if python_bindings_needed; then
- append_to_user_config() {
- local py_config
- if tc-is-cross-compiler; then
- py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
- else
- py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
- fi
- echo "${py_config}" >> "${user_config_jam}" || die
- }
- python_foreach_impl append_to_user_config
- fi
-
- if python_bindings_needed && use numpy; then
- einfo "Enabling support for NumPy extensions in Boost.Python"
- else
- einfo "Disabling support for NumPy extensions in Boost.Python"
-
- # Boost.Build does not allow for disabling of numpy
- # extensions, thereby leading to automagic numpy
- # https://github.com/boostorg/python/issues/111#issuecomment-280447482
- sed \
- -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
- -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
- fi
-}
-
-pkg_setup() {
- # Bail out on unsupported build configuration, bug #456792
- if [[ -f "${EROOT}"/etc/site-config.jam ]]; then
- if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}"/etc/site-config.jam; then
- eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
- eerror "Boost can not be built in such configuration."
- eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
- die "Unsupported target in ${EROOT}/etc/site-config.jam"
- fi
- fi
-}
-
-src_prepare() {
- default
- multilib_copy_sources
-}
-
-ejam() {
- create_user-config.jam
-
- local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
- if python_bindings_needed; then
- append_to_b2_opts() {
- b2_opts+=( python="${EPYTHON#python}" )
- }
- python_foreach_impl append_to_b2_opts
- else
- b2_opts+=( --without-python )
- fi
- b2_opts+=( "$@" )
-
- echo b2 "${b2_opts[@]}" >&2
- b2 "${b2_opts[@]}"
-}
-
-src_configure() {
- # Workaround for too many parallel processes requested, bug #506064
- [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
-
- # We don't want to end up with -L/usr/lib on our linker lines
- # which then gives us lots of
- # skipping incompatible /usr/lib/libc.a when searching for -lc
- # warnings
- [[ -n ${ESYSROOT} ]] && local icuarg="-sICU_PATH=${ESYSROOT}/usr"
-
- OPTIONS=(
- $(usex debug gentoodebug gentoorelease)
- "-j$(makeopts_jobs)"
- -q
- -d+2
- pch=off
- $(usex icu "${icuarg}" '--disable-icu boost.locale.icu=off')
- $(usev !mpi --without-mpi)
- $(usev !nls --without-locale)
- $(usev !context '--without-context --without-coroutine --without-fiber')
- --without-stacktrace
- --boost-build="${BROOT}"/usr/share/b2/src
- --layout=system
- # building with threading=single is currently not possible
- # https://svn.boost.org/trac/boost/ticket/7105
- threading=multi
- link=shared
- # this seems to be the only way to disable compression algorithms
- # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
- -sNO_BZIP2=$(usex bzip2 0 1)
- -sNO_LZMA=$(usex lzma 0 1)
- -sNO_ZLIB=$(usex zlib 0 1)
- -sNO_ZSTD=$(usex zstd 0 1)
- )
-
- if [[ ${CHOST} == *-darwin* ]]; then
- # We need to add the prefix, and in two cases this exceeds, so prepare
- # for the largest possible space allocation.
- append-ldflags -Wl,-headerpad_max_install_names
- fi
-
- # Use C++17 globally as of 1.80
- append-cxxflags -std=c++17
-
- if [[ ${CHOST} != *-darwin* ]]; then
- # On modern macOS, file I/O is already 64-bit by default,
- # there's no support for special options like O_LARGEFILE.
- # Thus, LFS must be disabled.
- #
- # On other systems, we need to enable LFS explicitly for 64-bit
- # offsets on 32-bit hosts (#894564)
- append-lfs-flags
- fi
-}
-
-multilib_src_compile() {
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" || die
-
- if tools_needed; then
- pushd tools >/dev/null || die
- ejam \
- --prefix="${EPREFIX}"/usr \
- "${OPTIONS[@]}" \
- || die "Building of Boost tools failed"
- popd >/dev/null || die
- fi
-}
-
-multilib_src_install() {
- ejam \
- --prefix="${ED}"/usr \
- --includedir="${ED}"/usr/include \
- --libdir="${ED}"/usr/$(get_libdir) \
- "${OPTIONS[@]}" install || die "Installation of Boost libraries failed"
-
- if tools_needed; then
- dobin dist/bin/*
-
- insinto /usr/share
- doins -r dist/share/boostbook
- fi
-
- # boost's build system truely sucks for not having a destdir. Because for
- # this reason we are forced to build with a prefix that includes the
- # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
- # DESTROOT instread of the actual EPREFIX. There is no way out of here
- # but to do it the dirty way of manually setting the right install_names.
- if [[ ${CHOST} == *-darwin* ]]; then
- einfo "Working around completely broken build-system(tm)"
- local d
- for d in "${ED}"/usr/lib/*.dylib; do
- if [[ -f ${d} ]]; then
- # fix the "soname"
- ebegin " correcting install_name of ${d#${ED}}"
- install_name_tool -id "/${d#${D}}" "${d}"
- eend $?
- # fix references to other libs
- # these paths look like this:
- # bin.v2/libs/thread/build/gcc-12.1/gentoorelease/pch-off/
- # threadapi-pthread/threading-multi/visibility-hidden/
- # libboost_thread.dylib
- refs=$(otool -XL "${d}" | \
- sed -e '1d' -e 's/^\t//' | \
- grep "libboost_" | \
- cut -f1 -d' ')
- local r
- for r in ${refs}; do
- # strip path prefix from references, so we obtain
- # something like libboost_thread.dylib.
- local r_basename=${r##*/}
-
- ebegin " correcting reference to ${r_basename}"
- install_name_tool -change \
- "${r}" \
- "${EPREFIX}/usr/lib/${r_basename}" \
- "${d}"
- eend $?
- done
- fi
- done
- fi
-}
-
-multilib_src_install_all() {
- if ! use numpy; then
- rm -r "${ED}"/usr/include/boost/python/numpy* || die
- fi
-
- if use python; then
- if use mpi; then
- move_mpi_py_into_sitedir() {
- python_moduleinto boost
- python_domodule "${S}"/libs/mpi/build/__init__.py
-
- python_domodule "${ED}"/usr/$(get_libdir)/boost-${EPYTHON}/mpi.so
- rm -r "${ED}"/usr/$(get_libdir)/boost-${EPYTHON} || die
-
- python_optimize
- }
- python_foreach_impl move_mpi_py_into_sitedir
- else
- rm -r "${ED}"/usr/include/boost/mpi/python* || die
- fi
- else
- rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
- fi
-
- if ! use nls; then
- rm -r "${ED}"/usr/include/boost/locale || die
- fi
-
- if ! use context; then
- rm -r "${ED}"/usr/include/boost/context || die
- rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
- rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
- fi
-
- if use doc; then
- # find extraneous files that shouldn't be installed
- # as part of the documentation and remove them.
- find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
- find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
- find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
-
- docinto html
- dodoc *.{htm,html,png,css}
- dodoc -r doc libs more tools
-
- # To avoid broken links
- dodoc LICENSE_1_0.txt
-
- dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
- fi
-}
-
-pkg_preinst() {
- # Yay for having symlinks that are nigh-impossible to remove without
- # resorting to dirty hacks like these. Removes lingering symlinks
- # from the slotted versions.
- local symlink
- for symlink in "${EROOT}"/usr/include/boost "${EROOT}"/usr/share/boostbook; do
- if [[ -L ${symlink} ]]; then
- rm -f "${symlink}" || die
- fi
- done
-
- # some ancient installs still have boost cruft lying around
- # for unknown reasons, causing havoc for reverse dependencies
- # Bug: 607734
- rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
-}
-
-pkg_postinst() {
- elog "Boost.Regex is *extremely* ABI sensitive. If you get errors such as"
- elog
- elog " undefined reference to \`boost::re_detail_$(ver_cut 1)0$(ver_cut 2)00::cpp_regex_traits_implementation"
- elog " <char>::transform_primary[abi:cxx11](char const*, char const*) const'"
- elog
- elog "Then you need to recompile Boost and all its reverse dependencies"
- elog "using the same toolchain. In general, *every* change of the C++ toolchain"
- elog "requires a complete rebuild of the Boost-dependent ecosystem."
- elog
- elog "See for instance https://bugs.gentoo.org/638138"
-}
diff --git a/dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch b/dev-libs/boost/files/boost-1.79.0-boost-mpi-python-PEP-328.patch
deleted file mode 100644
index 444db2b60952..000000000000
--- a/dev-libs/boost/files/boost-1.79.0-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.80.0-fix-mips1-transition.patch b/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch
deleted file mode 100644
index 4f5e81c925b3..000000000000
--- a/dev-libs/boost/files/boost-1.80.0-fix-mips1-transition.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/boostcpp.jam
-+++ b/boostcpp.jam
-@@ -634,7 +634,7 @@ rule address-model ( )
- return <conditional>@boostcpp.deduce-address-model ;
- }
-
--local deducable-architectures = arm mips1 power riscv s390x sparc x86 combined ;
-+local deducable-architectures = arm mips power riscv s390x sparc x86 combined ;
- feature.feature deduced-architecture : $(deducable-architectures) : propagated optional composite hidden ;
- for a in $(deducable-architectures)
- {
-@@ -645,10 +645,10 @@ rule deduce-architecture ( properties * )
- {
- local result ;
- local filtered = [ toolset-properties $(properties) ] ;
-- local names = arm mips1 power riscv s390x sparc x86 combined ;
-+ local names = arm mips power riscv s390x sparc x86 combined ;
- local idx = [ configure.find-builds "default architecture" : $(filtered)
- : /boost/architecture//arm
-- : /boost/architecture//mips1
-+ : /boost/architecture//mips
- : /boost/architecture//power
- : /boost/architecture//riscv
- : /boost/architecture//s390x
diff --git a/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch b/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch
deleted file mode 100644
index 0aedde6d0735..000000000000
--- a/dev-libs/boost/files/boost-1.81.0-phoenix-multiple-definitions.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-https://bugs.gentoo.org/887041
-https://github.com/boostorg/phoenix/issues/111
---- a/boost/phoenix/stl.hpp
-+++ b/boost/phoenix/stl.hpp
-@@ -11,6 +11,5 @@
-
- #include <boost/phoenix/stl/algorithm.hpp>
- #include <boost/phoenix/stl/container.hpp>
--#include <boost/phoenix/stl/tuple.hpp>
-
- #endif
diff --git a/dev-libs/boost/files/boost-1.82.0-context-arm64.patch b/dev-libs/boost/files/boost-1.82.0-context-arm64.patch
deleted file mode 100644
index a4efac7f2f62..000000000000
--- a/dev-libs/boost/files/boost-1.82.0-context-arm64.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-https://github.com/boostorg/context/commit/d039c8e4da79dbc76481236249e22892bfdde047
-https://bugs.gentoo.org/904132
-
-From d039c8e4da79dbc76481236249e22892bfdde047 Mon Sep 17 00:00:00 2001
-From: Nikita Kniazev <nok.raven@gmail.com>
-Date: Thu, 23 Mar 2023 16:23:07 +0300
-Subject: [PATCH] Fix arm64 detection broken by recent B2 change
-
---- a/libs/context/build/Jamfile.v2
-+++ b/libs/context/build/Jamfile.v2
-@@ -79,7 +79,7 @@ local rule default_abi ( )
- local tmp = sysv ;
- if [ os.name ] = "NT" { tmp = ms ; }
- else if [ os.name ] = "CYGWIN" { tmp = ms ; }
-- else if [ os.platform ] = "ARM" { tmp = aapcs ; }
-+ else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; }
- else if [ os.platform ] = "MIPS32" { tmp = o32 ; }
- else if [ os.platform ] = "MIPS64" { tmp = n64 ; }
- return $(tmp) ;
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2024-05-20 7:00 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2024-05-20 7:00 UTC (permalink / raw
To: gentoo-commits
commit: 9292ab9aa7003a86b551aba3470bb23581e6ab2c
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon May 20 06:56:36 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon May 20 06:56:36 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9292ab9a
dev-libs/boost: fix USE=tools build
Closes: https://bugs.gentoo.org/932240
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.85.0.ebuild | 1 +
.../boost/files/boost-1.85.0-bcp-filesystem.patch | 188 +++++++++++++++++++++
2 files changed, 189 insertions(+)
diff --git a/dev-libs/boost/boost-1.85.0.ebuild b/dev-libs/boost/boost-1.85.0.ebuild
index 3a6700ea176b..30577a1da191 100644
--- a/dev-libs/boost/boost-1.85.0.ebuild
+++ b/dev-libs/boost/boost-1.85.0.ebuild
@@ -50,6 +50,7 @@ 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
)
create_user-config.jam() {
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);
+
+ }
+
+
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/
@ 2024-05-31 22:38 Sam James
0 siblings, 0 replies; 27+ messages in thread
From: Sam James @ 2024-05-31 22:38 UTC (permalink / raw
To: gentoo-commits
commit: 7c4165b90a91bb690c3a21dc686ab72ce2c741af
Author: Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri May 31 22:34:43 2024 +0000
Commit: Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri May 31 22:35:49 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7c4165b9
dev-libs/boost: fix build w/ numpy-2
Closes: https://bugs.gentoo.org/932459
Signed-off-by: Sam James <sam <AT> gentoo.org>
dev-libs/boost/boost-1.85.0.ebuild | 1 +
.../boost/files/boost-1.85.0-python-numpy-2.patch | 26 ++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/dev-libs/boost/boost-1.85.0.ebuild b/dev-libs/boost/boost-1.85.0.ebuild
index 30577a1da191..dfa9b09e6ad2 100644
--- a/dev-libs/boost/boost-1.85.0.ebuild
+++ b/dev-libs/boost/boost-1.85.0.ebuild
@@ -51,6 +51,7 @@ 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
)
create_user-config.jam() {
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
new file mode 100644
index 000000000000..e7a7d98b8573
--- /dev/null
+++ b/dev-libs/boost/files/boost-1.85.0-python-numpy-2.patch
@@ -0,0 +1,26 @@
+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 <alexis.duburcq@gmail.com>
+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
^ permalink raw reply related [flat|nested] 27+ messages in thread
end of thread, other threads:[~2024-05-31 22:38 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-20 20:49 [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/ Andreas Sturmlechner
-- strict thread matches above, loose matches on Subject: below --
2024-05-31 22:38 Sam James
2024-05-20 7:00 Sam James
2024-01-23 16:32 David Seifert
2023-12-14 8:12 Sam James
2023-04-30 17:16 Andreas Sturmlechner
2022-12-20 23:57 Sam James
2022-09-10 10:59 Sam James
2022-09-03 20:28 David Seifert
2022-07-06 10:27 Andreas Sturmlechner
2022-07-03 8:33 WANG Xuerui
2022-05-08 13:35 Andreas Sturmlechner
2022-01-15 12:28 David Seifert
2021-11-20 7:07 Sam James
2021-09-05 2:22 Sam James
2021-08-23 16:17 Sam James
2021-05-31 12:15 Sam James
2021-03-21 21:15 Andreas Sturmlechner
2020-12-24 22:14 Andreas K. Hüttel
2020-12-22 21:22 Andreas K. Hüttel
2019-12-29 13:06 David Seifert
2019-12-22 23:12 David Seifert
2019-04-16 12:09 David Seifert
2018-11-24 19:27 David Seifert
2018-07-31 22:27 Patrick McLean
2017-04-04 17:54 David Seifert
2016-01-27 6:21 Sergey Popov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox