Add initial support for *-mingw* CHOST
This is a direct copy of the Gentoo boost-1.53.0 ebuild, with only minor differences to support mingw targets. * specify target-os in bjam options * disable builds with threads and shared linking due to unresolved linking errors.
This commit is contained in:
parent
5e51448630
commit
01f1094931
14
dev-libs/boost/Manifest
Normal file
14
dev-libs/boost/Manifest
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
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-locale-utf.patch 2062 SHA256 8212150730073ba5b08aa9808afcb45d5ce90109cfc1ba90d22a673418ea003c SHA512 641a56541efb51e7db66c6c9eac65f8e0e62b4ad2c1b792ea573ce86fc62cd94327be75d22b8fdb84128e792977a2b450681d729a85b143146dc79a007ecefc4 WHIRLPOOL 67cfd6bd4591c3dcc47ad06aaa634e9c1598e0214635a66a1e57fb933b025aebc05cf3ddadd7309fdab353daa7b7880e468874c958e641604d4a7e3fa986fd96
|
||||||
|
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_53_0.tar.bz2 55765258 SHA256 f88a041b01882b0c9c5c05b39603ec8383fb881f772f6f9e6e6fd0e0cddb9196 SHA512 8cd7806653cb6ea4a1c6862796ef698de5ae0bdbda96954fedbe090c59e3e6cb8f8d385df35183e9063ac4e2c2fccf10744516c47a994cde5f1d1cba1b07e522 WHIRLPOOL e8c5ed6b34dd5f68dc7e102a9e22b302616a65077d3f4af370ece6352b02a866e04294a4fc76bbd5555b6a4131f590e6455e6a74b5f12c4ffc2dd15af0bc8746
|
||||||
|
EBUILD boost-1.53.0.ebuild 10218 SHA256 747e8e919a99cbee09fcbd01ace01490b1411f71833a803777e40303fc221253 SHA512 6a727efd93fcd67ccd23f1461514b222341890fe2ae30d220eac266f9b02c22ea1d6f02752dfe5ddcd20a5d7b19c87cc3a1fd98147b827cbb9efff1adfee5e77 WHIRLPOOL d35172a226cffa1dbde2c78b49f2e3b50f4f087ce26676239124b1bf369493b980d5abc7452cdecc851971130791289680037b3ae0693747f4f1cbc3f9225132
|
357
dev-libs/boost/boost-1.53.0.ebuild
Normal file
357
dev-libs/boost/boost-1.53.0.ebuild
Normal file
@ -0,0 +1,357 @@
|
|||||||
|
# Copyright 1999-2013 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.53.0.ebuild,v 1.5 2013/07/10 11:54:02 pinkbyte 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"
|
||||||
|
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? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[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="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__
|
||||||
|
}
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
# 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
|
||||||
|
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"
|
||||||
|
|
||||||
|
# Set the valid link options when requesting static libs
|
||||||
|
local static_libs
|
||||||
|
if [[ ${CHOST} == *-mingw* ]]; then
|
||||||
|
# The build currently dies with undefined references to set_tss_data
|
||||||
|
# if threads are used with shared linking. Suggestions are to add
|
||||||
|
# BOOST_THREAD_USE_LIB to build flags, but it's been unsuccessful.
|
||||||
|
if use threads && ! use static-libs; then
|
||||||
|
die "this ebuild does not currently support shared linking and threads with mingw"
|
||||||
|
fi
|
||||||
|
|
||||||
|
static_libs="static"
|
||||||
|
else
|
||||||
|
static_libs="shared,static"
|
||||||
|
fi
|
||||||
|
|
||||||
|
OPTIONS+=" pch=off --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\" --layout=system threading=$(usex threads multi single) link=$(usex static-libs $static_libs shared) --without-context"
|
||||||
|
|
||||||
|
[[ ${CHOST} == *-mingw* ]] && OPTIONS+=" target-os=windows"
|
||||||
|
[[ ${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
|
||||||
|
|
||||||
|
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() { :; }
|
29
dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
Normal file
29
dev-libs/boost/files/boost-1.48.0-disable_icu_rpath.patch
Normal 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 ;
|
||||||
|
|
||||||
|
|
@ -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 ;
|
||||||
|
-}
|
95
dev-libs/boost/files/boost-1.48.0-mpi_python3.patch
Normal file
95
dev-libs/boost/files/boost-1.48.0-mpi_python3.patch
Normal 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;
|
||||||
|
}
|
@ -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.
|
24
dev-libs/boost/files/boost-1.48.0-python_linking.patch
Normal file
24
dev-libs/boost/files/boost-1.48.0-python_linking.patch
Normal 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
|
@ -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 ] ;
|
@ -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) "[*\\/:\"\']" "_" ] ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -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 ] ;
|
@ -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) [*\\/:\"\'] _ ] ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
52
dev-libs/boost/files/boost-1.52.0-locale-utf.patch
Normal file
52
dev-libs/boost/files/boost-1.52.0-locale-utf.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
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
|
11
dev-libs/boost/files/boost-1.52.0-tuple.patch
Normal file
11
dev-libs/boost/files/boost-1.52.0-tuple.patch
Normal 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>
|
11
dev-libs/boost/files/remove-toolset-1.48.0.patch
Normal file
11
dev-libs/boost/files/remove-toolset-1.48.0.patch
Normal 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) ] ;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user