chore(dev-libs/boost): import from portage

Change-Id: Ibce4440c488bbe90a5c7256fb01aca2b6cb11030
This commit is contained in:
Brandon Philips 2013-02-15 16:36:11 -08:00
parent a95ff23340
commit 3943d59440
16 changed files with 2510 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
AUX boost-1.48.0-disable_icu_rpath.patch 1073 SHA256 e1c947d20f0864e22f6dd2b091da6948bb51aec0d3323c37fe4264ddf57204b4 SHA512 efb62b65dbcb52258dcca074997a0380dfc52f48161777a8b6f9672179247e534e098784dcbb574826f495981fd2189290c7fe733d943bba2b668bb62ef50087 WHIRLPOOL 6f9a142e15bf3674114f2b07c8708055888e74cda4c3c775ca5470e8f54c921aa12660a1f905a370ec5f44f16b73f05025d3ff1ccad557d379ff55ad3ad0a8f0
AUX boost-1.48.0-disable_libboost_python3.patch 1509 SHA256 0b229762863b72a5faa39ea57538f757548abc492325e6458d3801fd49e4804e SHA512 5aa0eb72365a0674d7d654b924c3189501495c22cc1eb50dc1ce7aaee941ba418c17857475ebbcc4d8f8102100d889aa1c059e3782dbff9eb03ff101bea2ffbb WHIRLPOOL 5710ac3ecf1f6d18db0307f07c720d12646666ec83adde2b2464cb87c901d57088e98801720efb176420f9728967c8752382b15ca69f632b00852d51be412795
AUX boost-1.48.0-mpi_python3.patch 2549 SHA256 9120a660469fba15554e790150e03a665ea5497e94a79469053506147bd7dad1 SHA512 7c8aa497ceba42319194dd6400ea8af883656c79e4f697d87c5e825cfdef5733bce91c3e930b504b264cae80f582c85f2c2b29d5f8db11ebcabeb744c888096e WHIRLPOOL 1b740f102467c787bd45813ecf085297171892c1126675f1abd501c11dc9a56506d0cb32222239f4e4bb1e6913533b3884acd2a749633f781c53a6529106264c
AUX boost-1.48.0-no_strict_aliasing_python2.patch 741 SHA256 d11db74992a7a692f655b36c1cd78355fcec6703007fde522b6a82c88f171689 SHA512 cd06ba8bf5623a5ca590cbd024ba27fae14d1d2a193ccd4baf91b06c5d41b6442f40561fa49b5ba14deb0c156d5773fc4a15890a85b6cea35cab91d54e94aa6e WHIRLPOOL 1b5cce1374f56d702213d7479beb90d15413c90010442a37a46821f383afa371aac3de49e657e7623d6e9079d1e3b07353233aa40218b760042161effedd813a
AUX boost-1.48.0-python_linking.patch 1278 SHA256 5bb937bd4423e039aa406ee4a366c61542a8067ec96b22dbcc48e8826bb7b1f8 SHA512 d588d9391c654a0c3cd49078933563705da4157cd79929ac2ff2021a2e86eec1b87ed85f5ec6d2028b76974abe7e947bd379d78aa60d97da9dc23a6f74c77ec2 WHIRLPOOL 879318dd228ca01841dd3ef0d8020810357c4699fbd1d9f164b0db07319b599634bd823f0e06dd462157d81550bc9f101506d0a7469ad2352d4b1b366bb7fb00
AUX boost-1.48.0-respect_python-buildid.patch 1648 SHA256 996395941b5518dd2782cb18ed937273ccb256d5c5e64301b1d152dc81be39cd SHA512 b53432893fb390354dfd98a88a7905b523e528780c349e3d0da2b019255cbc58b3b987065fdef903d4959387994fdf240f7cd87c53f801e485a0811a2da56316 WHIRLPOOL 72ef562edf844944c9d7bf7931819522984dcffb7af43ef8c9d7a41fd0272ef1ebca99fffdd67654ab4564e8899aa6e0acafa27f72c8f7c06e582a0d211dfd91
AUX boost-1.48.0-support_dots_in_python-buildid.patch 625 SHA256 da1a6c1b501f6c3bd152b2d13ec690adc2566b159f0e489723ea84865d43b88d SHA512 3a8c3efd11eba1097312dd3141f8846e23578a0386701348ebc77279a02fecf4b715de2231c998bd426b0b63f3f1875f5f47833835a4b41b8e0723b9b5b35399 WHIRLPOOL cf9ad2c82ff1c68ce4ac6a685875e53b00d5f88aa0c562007c4dbe73610811eeaf9ce93a706d0fad46aea4322fe10e9b0bc4a73659d8b98540ebf96bb5288adb
AUX boost-1.51.0-respect_python-buildid.patch 1565 SHA256 a783cd262cfda7c0046a9a9f34dd91cdc48bc2442c4c466873e85ead818326bb SHA512 65a7456c63db5eeab862fdb6245ba3a26536e26b56be9ed7a502a3d5be91bc278cd4a22cf1c5a1d8917bdeaa6575cbf37a11bfc3e982272f56308117fd2b230e WHIRLPOOL fb430e9c5368540493e13fdadff94df426203c9e6776891a3fc421488266b39f7e5720e5f5d289665d62d753c9bce7a33198cf6e911d94961714c22d1452ac92
AUX boost-1.51.0-support_dots_in_python-buildid.patch 609 SHA256 189299e2ef3cde98584e60a5bdd8606894c19bceb0c4d40b38f04aae0aed0edd SHA512 0bf1e4cae598a098b8c252bab1938b29dd5d3ea19d9355156b14add27238e9359ad39a73d3afecb031efebd801215804ecebc11ca8fa6ac2b7b3c2f5ff9bc32f WHIRLPOOL ffc318bc06c33263906be6d0e565ef4c2e3fde9f6224cc5413c02cbe446d9f286c69153f4aee6f588472b058b9b4a37110b0be696bd22362989f1b6a8c8fc13e
AUX boost-1.52.0-tuple.patch 500 SHA256 dbf631c8c412ea12b3d63dd4b515e0d5f1383a13db18e13696bd33dee91645d7 SHA512 ed2790b35058a3bf91b49e5e1b61f1861e2ba8d8ec6f885e85d74d62e2182fd1768099660712a900e29a505fbf568f0235c748cca801ede836f67d2adbc6bcd1 WHIRLPOOL be88916331907ad528983e370619c9e734e122c7a1a0a2fb4a6df30f5ca9567884bfece928cab314ecdb425e6195a1b154a6c15722c6c860946ad356b4a4b502
AUX remove-toolset-1.48.0.patch 396 SHA256 59af4c05d71def0b14e22a7a5f756a054ca82e3f9686b7668335af7d9bed28fa SHA512 bbb01be2e4b4807eeb19faf13fc6c73e3cb8843953586312076a15c67ad5c5cac683fc3fb26f4e2902c60ab7930e83922f4d499756a85f78a20ac53399329f61 WHIRLPOOL 2490dac69a45b3f48e2513b4f21d75dc7cf5361411541dde96f027c66ca459df5390708902c86f11577d1129410f52d20de1ff275524fb51083a17eee6adc332
DIST boost_1_49_0.tar.bz2 48499961 SHA256 dd748a7f5507a7e7af74f452e1c52a64e651ed1f7263fce438a06641d2180d3c SHA512 9f6198270659df112a57731afe31cbf1012d103ba36ed82f6c3f1bdc0185ddb89dcc42c5dfb9ee3f95973d52999aad6c7509dc61125420d45146e39ebf20219d WHIRLPOOL c049b4212307b0208d0b37ac870a7cfb8562d2b685ce505e1971af7bc68ae9746b06ea80ddc52599ed4cbd6dc3305b5f8051cd771387412aaa1d2f8e939a48ba
DIST boost_1_52_0.tar.bz2 54421709 SHA256 222b6afd7723f396f5682c20130314a10196d3999feab5ba920d2a6bf53bac92 SHA512 fc512d3bfa6a39a60fee548775c97239271cf757587b8df7ed739c800844a819a359dca172be0e69ad7752753753139bf11f0813d650066d58386662fe32842d WHIRLPOOL 73bbab4a1d2a652200f4b5e669440a2afcebcea96a1139ecc75213067ca32d5cadb0f060bb0ec2e29e9e31272fb7ec9d2cb960801032ee6c5dcb86564766411d
DIST boost_1_53_0_beta1.tar.bz2 55879466 SHA256 a86669b92af08bc05a96857f893d8f7e4bdaecf3c58bfe13b8a57b30b4470685 SHA512 9acc6d96610516f4198bf922ed6a14d6948315aee0ec7b32b04e2c59620a582a1d0cdf83b8ad4c8298a33d686fd8a1f2dd1dd5012750981774824d119e082579 WHIRLPOOL ef654834d5cfefdeb5358cd70dafaf07391820c929e0285b9e78596a27eb0fbd0cd9eeb59f1a8322650f70a25c2a66ad985ff5a9225d47162a13ca486a9cc596
EBUILD boost-1.49.0-r2.ebuild 14407 SHA256 0b2876567540ccf696342fe43a67590fa03c60d13a2b7f8796d40c1344b54032 SHA512 4249e7059c0c54b3a11737d444a6453254aba27d3b247841323045ea269ef4091c2818394c257303ef144564a48f18991ab90eea9d9378203b46498e74a904c6 WHIRLPOOL 4a30c5cd4cbdcd6592f609fcdb4c16a2515d3748fe841ed560deccd45a0795b013a57533613967fe75efccb04eaf2e534a75861173805c96f2422d2f24ec2d94
EBUILD boost-1.52.0-r5.ebuild 9192 SHA256 a18df966e8a9dee2739e3075ff026314f8a982b31ad721e0250e937098ce9963 SHA512 07dc87d14cb724f5ce4f6036c41c5d652a442100a8e903ead5fcf26330b821081feaeed6fba79d5abdbd4e428b5a86be7f5a5cf51b19ac11c20016337ba1543a WHIRLPOOL dd30a72812b322cc5cce325e3079b05ed243208bcc15a2a5d7f6f85400495fdb5f68693d4a0f70f6034af985632d54fc8f865054ee95a186f00d368d558f0377
EBUILD boost-1.53.0_beta1.ebuild 9109 SHA256 3ecf741e9e9295319477d643d0e997557ff1afef3ca2d3fb42aa08130945c701 SHA512 00652dd5c263400045ab692fc9c2f6ad45114875949d83837d876327e226dfb27c5b9614531d033d59b388e399501ba0a334ca66d4ff0a95f1a35ad7afc0b08c WHIRLPOOL c5113b7279d12e1b9bf433761529414c20c8964e970f65ce4a52a3e444ae15c0ef35ec78c7940054b16b2dc123ff2cc4af9593a75210b8310b18e82c7f6f28c4
MISC ChangeLog 48975 SHA256 687557c69e83d2a924d8f46b5e77959e0997a2c305796223010ad2398a066a5f SHA512 b254e982a35e9e0252f17070f3bd9759a0c68e0cd8dbac0717407904dfaa67f445cd29833157f9e7bb38ff8185ebb9f3b64c38a4bf41139606621d77a5609ed3 WHIRLPOOL b7bf108a8331056b1c13f12d5208ee4e2ca54246e69df9e90979781fde8386e280435238bd3257848e358ec4486d6477a4036c3132f2802bcf8e719cd8d1387b
MISC metadata.xml 1220 SHA256 12442e258455aa70d08879028a9bb0424d6a5ceea321984009ae7dd51af10c50 SHA512 163fa62be2cad395e8f9bb7779d105bd02be0e09ba4571c41accf707ec25b9ad0d15a62db90c2cc01660b3759235493c00d96f9b741a93fe857c4bea15ac52b9 WHIRLPOOL ae70da326b7b36689ee9a7f3c29921e9e4d85fd7f8b7863866ff9aa7a86eae2983fb12e23f7f0a0aac35a8c09572954ebf67212bb103bed4e15ee2e4ec764ba0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
iQEcBAEBCAAGBQJRAw+RAAoJEBzRPIrUMBNCfiAH/3mlAcTTomXqXk1+PyLxX30c
yi7iLwbSQe5Cnu1Y3Jsg5+JFH8O79D/Fgq2vy94LauEUyFLV3WSRls4I1ik12zCq
rrB9JLm50v+jP8EyifQGZXGZ+b/d2c+K5+6166Jz8VHHUgLDNz6AfthnGL7n3q/N
ERfif5pYe/rBC5W4CBI24q8nrFFhTDtPJLDhEKqzS1bWE3YNJ2TRkJ86mu5iCZCs
q69+iXSr/O6hknJEvZW0gAqC1Jpm1v45bDTsDJmvBcBJ4BWUtmGB4GV0Yir2Y+xt
kLMtcEH+4iYVAhdfVpkCVROQVylipNT21P2+HMmUGSlZH9hcZQuSTCl6bkkHjQg=
=Js3C
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,448 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.49.0-r2.ebuild,v 1.5 2012/11/22 19:48:37 zerochaos Exp $
EAPI="4"
PYTHON_DEPEND="python? *"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="*-jython *-pypy-*"
inherit flag-o-matic multilib python 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"
SLOT=0
MAJOR_V="$(get_version_component_range 1-2)"
KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd"
IUSE="debug doc icu mpi python static-libs tools"
RDEPEND="icu? ( >=dev-libs/icu-3.3 )
mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
sys-libs/zlib
!app-admin/eselect-boost
elibc_glibc? ( <sys-libs/glibc-2.16 )"
DEPEND="${RDEPEND}
=dev-util/boost-build-${MAJOR_V}*"
S=${WORKDIR}/${MY_P}
MAJOR_PV=$(replace_all_version_separators _ ${MAJOR_V})
BJAM="b2-${MAJOR_PV}"
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_get_version) : /usr : $(python_get_includedir) : /usr/$(get_libdir) ;"
fi
# The debug-symbols=none and optimization=none are not official upstream flags but a Gentoo
# specific patch to make sure that all our CFLAGS/CXXFLAGS/LDFLAGS are being respected.
# Using optimization=off would for example add "-O0" and override "-O2" set by the user.
# Please take a look at the boost-build ebuild for more information.
cat > user-config.jam << __EOF__
variant gentoorelease : release : <optimization>none <debug-symbols>none ;
variant gentoodebug : debug : <optimization>none ;
using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
${mpi_configuration}
${python_configuration}
__EOF__
}
pkg_setup() {
if use python; then
python_pkg_setup
fi
}
src_prepare() {
epatch "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch"
epatch "${FILESDIR}/${PN}-1.48.0-respect_python-buildid.patch"
epatch "${FILESDIR}/${PN}-1.48.0-support_dots_in_python-buildid.patch"
epatch "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
epatch "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
epatch "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
epatch "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
epatch "${FILESDIR}/remove-toolset-1.48.0.patch"
}
src_configure() {
OPTIONS=""
if [[ ${CHOST} == *-darwin* ]]; then
# We need to add the prefix, and in two cases this exceeds, so prepare
# for the largest possible space allocation.
append-ldflags -Wl,-headerpad_max_install_names
fi
# bug 298489
if use ppc || use ppc64; then
[[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
fi
use icu && OPTIONS+=" -sICU_PATH=/usr"
use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
use mpi || OPTIONS+=" --without-mpi"
use python || OPTIONS+=" --without-python"
# https://svn.boost.org/trac/boost/attachment/ticket/2597/add-disable-long-double.patch
if use sparc || { use mips && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; then
OPTIONS+=" --disable-long-double"
fi
OPTIONS+=" pch=off --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=\"${D}usr\" --layout=versioned"
if use static-libs; then
LINK_OPTS="link=shared,static"
LIBRARY_TARGETS="*.a *$(get_libname)"
else
LINK_OPTS="link=shared"
# There is no dynamically linked version of libboost_test_exec_monitor and libboost_exception.
LIBRARY_TARGETS="libboost_test_exec_monitor*.a libboost_exception*.a *$(get_libname)"
fi
}
src_compile() {
local jobs
jobs=$( echo " ${MAKEOPTS} " | \
sed -e 's/ --jobs[= ]/ -j /g' \
-e 's/ -j \([1-9][0-9]*\)/ -j\1/g' \
-e 's/ -j\>/ -j1/g' | \
( while read -d ' ' j; do if [[ "${j#-j}" = "$j" ]]; then continue; fi; jobs="${j#-j}"; done; echo ${jobs} ) )
if [[ "${jobs}" != "" ]]; then NUMJOBS="-j"${jobs}; fi
export BOOST_ROOT="${S}"
PYTHON_DIRS=""
MPI_PYTHON_MODULE=""
building() {
create_user-config.jam
einfo "Using the following command to build:"
einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared $(use python && echo --python-buildid=${PYTHON_ABI})"
${BJAM} ${NUMJOBS} -q -d+2 \
gentoorelease \
--user-config=user-config.jam \
${OPTIONS} \
threading=single,multi ${LINK_OPTS} runtime-link=shared \
$(use python && echo --python-buildid=${PYTHON_ABI}) \
|| die "Building of Boost libraries failed"
# ... and do the whole thing one more time to get the debug libs
if use debug; then
einfo "Using the following command to build:"
einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoodebug --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --buildid=debug $(use python && echo --python-buildid=${PYTHON_ABI})"
${BJAM} ${NUMJOBS} -q -d+2 \
gentoodebug \
--user-config=user-config.jam \
${OPTIONS} \
threading=single,multi ${LINK_OPTS} runtime-link=shared \
--buildid=debug \
$(use python && echo --python-buildid=${PYTHON_ABI}) \
|| die "Building of Boost debug libraries failed"
fi
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}-${PYTHON_ABI} || die "Renaming of '${dir}' to '${dir}-${PYTHON_ABI}' failed"
done
if use mpi; then
if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoorelease -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/*/gentoorelease -name mpi.so)" ]]; then
die "Inconsistent structure of build directories"
fi
fi
mv stage/lib/mpi.so stage/lib/mpi.so-${PYTHON_ABI} || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${PYTHON_ABI}' failed"
fi
fi
}
if use python; then
python_execute_function building
else
building
fi
if use tools; then
pushd tools > /dev/null || die
einfo "Using the following command to build the tools:"
einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease --user-config=../user-config.jam ${OPTIONS}"
${BJAM} ${NUMJOBS} -q -d+2\
gentoorelease \
--user-config=../user-config.jam \
${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}-${PYTHON_ABI} ${dir} || die "Copying of '${dir}-${PYTHON_ABI}' to '${dir}' failed"
done
if use mpi; then
cp -p stage/lib/mpi.so-${PYTHON_ABI} "${MPI_PYTHON_MODULE}" || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to '${MPI_PYTHON_MODULE}' failed"
cp -p stage/lib/mpi.so-${PYTHON_ABI} stage/lib/mpi.so || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to 'stage/lib/mpi.so' failed"
fi
fi
einfo "Using the following command to install:"
einfo "${BJAM} -q -d+2 gentoorelease --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}usr/include\" --libdir=\"${D}usr/$(get_libdir)\" $(use python && echo --python-buildid=${PYTHON_ABI}) install"
${BJAM} -q -d+2 \
gentoorelease \
--user-config=user-config.jam \
${OPTIONS} \
threading=single,multi ${LINK_OPTS} runtime-link=shared \
--includedir="${D}usr/include" \
--libdir="${D}usr/$(get_libdir)" \
$(use python && echo --python-buildid=${PYTHON_ABI}) \
install || die "Installation of Boost libraries failed"
if use debug; then
einfo "Using the following command to install:"
einfo "${BJAM} -q -d+2 gentoodebug --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}usr/include\" --libdir=\"${D}usr/$(get_libdir)\" --buildid=debug $(use python && echo --python-buildid=${PYTHON_ABI})"
${BJAM} -q -d+2 \
gentoodebug \
--user-config=user-config.jam \
${OPTIONS} \
threading=single,multi ${LINK_OPTS} runtime-link=shared \
--includedir="${D}usr/include" \
--libdir="${D}usr/$(get_libdir)" \
--buildid=debug \
$(use python && echo --python-buildid=${PYTHON_ABI}) \
install || die "Installation of Boost debug libraries failed"
fi
if use python; then
rm -r ${PYTHON_DIRS} || die
# Move mpi.so Python module to Python site-packages directory and make sure it is slotted.
if use mpi; then
mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die
mv "${D}usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die
cat << EOF > "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__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
fi
}
if use python; then
python_execute_function installation
else
installation
fi
use python || rm -rf "${D}usr/include/boost-${MAJOR_PV}/boost"/python* || 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
dosym boost-${MAJOR_PV}/boost /usr/include/boost
pushd "${D}usr/$(get_libdir)" > /dev/null || die
# The threading libs obviously always gets the "-mt" (multithreading) tag
# some packages seem to have a problem with it. Creating symlinks...
if use static-libs; then
THREAD_LIBS="libboost_thread-mt-${MAJOR_PV}.a libboost_thread-mt-${MAJOR_PV}$(get_libname)"
else
THREAD_LIBS="libboost_thread-mt-${MAJOR_PV}$(get_libname)"
fi
local lib
for lib in ${THREAD_LIBS}; do
dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}"
done
# The same goes for the mpi libs
if use mpi; then
if use static-libs; then
MPI_LIBS="libboost_mpi-mt-${MAJOR_PV}.a libboost_mpi-mt-${MAJOR_PV}$(get_libname)"
else
MPI_LIBS="libboost_mpi-mt-${MAJOR_PV}$(get_libname)"
fi
local lib
for lib in ${MPI_LIBS}; do
dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}"
done
fi
if use debug; then
if use static-libs; then
THREAD_DEBUG_LIBS="libboost_thread-mt-${MAJOR_PV}-debug$(get_libname) libboost_thread-mt-${MAJOR_PV}-debug.a"
else
THREAD_DEBUG_LIBS="libboost_thread-mt-${MAJOR_PV}-debug$(get_libname)"
fi
local lib
for lib in ${THREAD_DEBUG_LIBS}; do
dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}"
done
if use mpi; then
if use static-libs; then
MPI_DEBUG_LIBS="libboost_mpi-mt-${MAJOR_PV}-debug.a libboost_mpi-mt-${MAJOR_PV}-debug$(get_libname)"
else
MPI_DEBUG_LIBS="libboost_mpi-mt-${MAJOR_PV}-debug$(get_libname)"
fi
local lib
for lib in ${MPI_DEBUG_LIBS}; do
dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}"
done
fi
fi
local f
for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug); do
dosym ${f} /usr/$(get_libdir)/${f/-${MAJOR_PV}}
done
if use debug; then
dodir /usr/$(get_libdir)/boost-debug
local f
for f in $(ls -1 ${LIBRARY_TARGETS} | grep debug); do
dosym ../${f} /usr/$(get_libdir)/boost-debug/${f/-${MAJOR_PV}-debug}
done
fi
popd > /dev/null || die
if use tools; then
pushd dist/bin > /dev/null || die
# Append version postfix to binaries for slotting
local b
for b in *; do
newbin "${b}" "${b}-${MAJOR_PV}"
done
popd > /dev/null || die
pushd dist > /dev/null || die
insinto /usr/share
doins -r share/boostbook
# Append version postfix for slotting
mv "${D}usr/share/boostbook" "${D}usr/share/boostbook-${MAJOR_PV}" || die
popd > /dev/null || die
fi
pushd status > /dev/null || die
if [[ -f regress.log ]]; then
docinto status
dohtml *.html ../boost.png
dodoc regress.log
fi
popd > /dev/null || die
# 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
}
# 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() { :; }

View File

@ -0,0 +1,328 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.52.0-r5.ebuild,v 1.1 2012/12/15 14:45:27 mgorny Exp $
EAPI="5"
PYTHON_COMPAT=( python{2_5,2_6,2_7,3_1,3_2,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"
SLOT=0
MAJOR_V="$(get_version_component_range 1-2)"
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? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
python? ( ${PYTHON_DEPS} )
sys-libs/zlib
!app-admin/eselect-boost"
DEPEND="${RDEPEND}
=dev-util/boost-build-${MAJOR_V}*"
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__
}
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"
# 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
}
ejam() {
echo b2 "$@"
b2 "$@"
}
src_configure() {
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() { :; }

View File

@ -0,0 +1,29 @@
--- libs/locale/build/Jamfile.v2
+++ libs/locale/build/Jamfile.v2
@@ -58,8 +58,8 @@
if $(ICU_LINK)
{
- ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin <runtime-link>shared ;
- ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <dll-path>$(ICU_PATH)/bin64 <runtime-link>shared ;
+ ICU_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
+ ICU64_OPTS = <include>$(ICU_PATH)/include <linkflags>$(ICU_LINK) <runtime-link>shared ;
}
else
{
@@ -117,7 +117,6 @@
<library>icuuc/<link>shared/<runtime-link>shared
<library>icudt/<link>shared/<runtime-link>shared
<library>icuin/<link>shared/<runtime-link>shared
- <dll-path>$(ICU_PATH)/bin
<runtime-link>shared ;
@@ -176,7 +175,6 @@
<library>icuuc_64/<link>shared/<runtime-link>shared
<library>icudt_64/<link>shared/<runtime-link>shared
<library>icuin_64/<link>shared/<runtime-link>shared
- <dll-path>$(ICU_PATH)/bin64
<runtime-link>shared ;

View File

@ -0,0 +1,62 @@
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -39,23 +39,6 @@
PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" "_" ] ;
}
-
-rule find-py3-version
-{
- local versions = [ feature.values python ] ;
- local py3ver ;
- for local v in $(versions)
- {
- if $(v) >= 3.0
- {
- py3ver = $(v) ;
- }
- }
- return $(py3ver) ;
-}
-
-py3-version = [ find-py3-version ] ;
-
project boost/python
: source-location ../src
: requirements
@@ -82,7 +65,7 @@
rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } }
rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } }
-rule lib_boost_python ( is-py3 ? )
+rule lib_boost_python
{
local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
@@ -91,7 +74,7 @@
{
python2 = true ;
}
- lib [ cond $(is-py3) : boost_python3 : boost_python ]
+ lib boost_python
: # sources
numeric.cpp
list.cpp
@@ -148,7 +131,6 @@
<dependency>config-warning
<python-debugging>on:<define>BOOST_DEBUG_PYTHON
- [ cond $(is-py3) : <python>$(py3-version) ]
: # default build
<link>shared
: # usage requirements
@@ -160,9 +142,3 @@
lib_boost_python ;
boost-install boost_python ;
-
-if $(py3-version)
-{
- lib_boost_python yes ;
- boost-install boost_python3 ;
-}

View File

@ -0,0 +1,95 @@
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;
}

View File

@ -0,0 +1,23 @@
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -85,6 +85,12 @@
rule lib_boost_python ( is-py3 ? )
{
+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ;
+ local python2 ;
+ if $(python_major_version) = 2
+ {
+ python2 = true ;
+ }
lib [ cond $(is-py3) : boost_python3 : boost_python ]
: # sources
numeric.cpp
@@ -119,6 +125,7 @@
: # requirements
<link>static:<define>BOOST_PYTHON_STATIC_LIB
<define>BOOST_PYTHON_SOURCE
+ [ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
# On Windows, all code using Python has to link to the Python
# import library.

View File

@ -0,0 +1,24 @@
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -109,20 +109,7 @@
<link>static:<define>BOOST_PYTHON_STATIC_LIB
<define>BOOST_PYTHON_SOURCE
[ cond $(python2) : <cxxflags>-fno-strict-aliasing ]
-
- # On Windows, all code using Python has to link to the Python
- # import library.
- #
- # On *nix we never link libboost_python to libpython. When
- # extending Python, all Python symbols are provided by the
- # Python interpreter executable. When embedding Python, the
- # client executable is expected to explicitly link to
- # /python//python (the target representing libpython) itself.
- #
- # python_for_extensions is a target defined by Boost.Build to
- # provide the Python include paths, and on Windows, the Python
- # import library, as usage requirements.
- [ cond [ python.configured ] : <library>/python//python_for_extensions ]
+ [ cond [ python.configured ] : <library>/python//python ]
# we prevent building when there is no python available
# as it's not possible anyway, and to cause dependents to

View File

@ -0,0 +1,69 @@
https://svn.boost.org/trac/boost/ticket/6286
--- boostcpp.jam
+++ boostcpp.jam
@@ -99,13 +99,6 @@
BUILD_ID = [ regex.replace $(build-id) "[*\\/:.\"\' ]" "_" ] ;
}
-# Python build id (only for Python libraries)
-python-id = [ option.get "python-buildid" ] ;
-if $(python-id)
-{
- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ;
-}
-
##############################################################################
#
# 1. The 'tag' function that adds decoration suitable to the properties if
--- libs/mpi/build/Jamfile.v2
+++ libs/mpi/build/Jamfile.v2
@@ -8,6 +8,8 @@
# Authors: Douglas Gregor
# Andrew Lumsdaine
+import option ;
+import regex ;
import mpi ;
import indirect ;
import python ;
@@ -24,6 +26,13 @@
<tag>@$(__name__).tag
;
+# Python build id (only for Python libraries)
+python-id = [ option.get "python-buildid" ] ;
+if $(python-id)
+{
+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ;
+}
+
rule tag ( name : type ? : property-set )
{
local result = $(name) ;
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -2,6 +2,8 @@
# Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+import option ;
+import regex ;
import os ;
import indirect ;
import modules ;
@@ -30,6 +32,14 @@
;
}
+# Python build id (only for Python libraries)
+python-id = [ option.get "python-buildid" ] ;
+if $(python-id)
+{
+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ;
+}
+
+
rule find-py3-version
{
local versions = [ feature.values python ] ;

View File

@ -0,0 +1,22 @@
--- libs/mpi/build/Jamfile.v2
+++ libs/mpi/build/Jamfile.v2
@@ -30,7 +30,7 @@
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
{
- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ;
+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" "_" ] ;
}
rule tag ( name : type ? : property-set )
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -36,7 +36,7 @@
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
{
- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" "_" ] ;
+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" "_" ] ;
}

View File

@ -0,0 +1,69 @@
https://svn.boost.org/trac/boost/ticket/6286
--- boostcpp.jam
+++ boostcpp.jam
@@ -99,13 +99,6 @@
BUILD_ID = [ regex.replace $(build-id) "[*\\/:.\"\' ]" _ ] ;
}
-# Python build id (for Python libraries only).
-python-id = [ option.get "python-buildid" ] ;
-if $(python-id)
-{
- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
-}
-
################################################################################
#
--- libs/mpi/build/Jamfile.v2
+++ libs/mpi/build/Jamfile.v2
@@ -8,6 +8,8 @@
# Authors: Douglas Gregor
# Andrew Lumsdaine
+import option ;
+import regex ;
import mpi ;
import indirect ;
import python ;
@@ -24,6 +26,13 @@
<tag>@$(__name__).tag
;
+# Python build id (for Python libraries only).
+python-id = [ option.get "python-buildid" ] ;
+if $(python-id)
+{
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
+}
+
rule tag ( name : type ? : property-set )
{
local result = $(name) ;
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -2,6 +2,8 @@
# Software License, Version 1.0. (See accompanying
# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+import option ;
+import regex ;
import os ;
import indirect ;
import modules ;
@@ -30,6 +32,14 @@
;
}
+# Python build id (for Python libraries only).
+python-id = [ option.get "python-buildid" ] ;
+if $(python-id)
+{
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
+}
+
+
rule find-py3-version
{
local versions = [ feature.values python ] ;

View File

@ -0,0 +1,22 @@
--- libs/mpi/build/Jamfile.v2
+++ libs/mpi/build/Jamfile.v2
@@ -30,7 +30,7 @@
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
{
- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
}
rule tag ( name : type ? : property-set )
--- libs/python/build/Jamfile.v2
+++ libs/python/build/Jamfile.v2
@@ -36,7 +36,7 @@
python-id = [ option.get "python-buildid" ] ;
if $(python-id)
{
- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ;
+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ;
}

View File

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

View File

@ -0,0 +1,11 @@
--- 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) ] ;
}

View File

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<herd>cpp</herd>
<use>
<flag name='tools'>
Build and install the boost tools (bcp, quickbook, inspect,
wave)
</flag>
<flag name='debug' restrict='&lt;dev-libs/boost-1.50.0-r3'>
Build and install debug versions of the Boost libraries. These
libraries are not used by default, and should not be used unless
you're developing against Boost.
</flag>
<flag name='debug' restrict='&gt;dev-libs/boost-1.52.0-r2'>
Build and install only the debug version of the Boost
libraries. Only enable this flag if you're developing against
boost.
</flag>
<flag name='threads'>
Build multi-thread-compatible libraries instead of
single-threaded only.
</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='doc'>
Install the full API documentation documentation. This takes
over 200MB of extra disk space.
</flag>
</use>
</pkgmetadata>