From e02f7b6a79e5d4638697b679553e48477688cf6b Mon Sep 17 00:00:00 2001 From: Sergey Popov Date: Fri, 27 Feb 2015 12:19:57 +0000 Subject: [PATCH] Version bump, wrt bug #528204 Package-Manager: portage-2.2.17/cvs/Linux x86_64 Manifest-Sign-Key: 0x60C0742D1F357D42 --- dev-libs/boost/ChangeLog | 7 +- dev-libs/boost/Manifest | 18 +- dev-libs/boost/boost-1.57.0.ebuild | 403 +++++++++++++++++++++++++++++ 3 files changed, 419 insertions(+), 9 deletions(-) create mode 100644 dev-libs/boost/boost-1.57.0.ebuild diff --git a/dev-libs/boost/ChangeLog b/dev-libs/boost/ChangeLog index 29f0ea152b69..479601b2e601 100644 --- a/dev-libs/boost/ChangeLog +++ b/dev-libs/boost/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-libs/boost # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.343 2015/01/05 17:58:25 ottxor Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.344 2015/02/27 12:19:55 pinkbyte Exp $ + +*boost-1.57.0 (27 Feb 2015) + + 27 Feb 2015; Sergey Popov +boost-1.57.0.ebuild: + Version bump, wrt bug #528204 05 Jan 2015; Christoph Junghans boost-1.56.0-r1.ebuild: added prefix keywords (ebuild does not differ from prefix overlay) diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest index e2326ddb2a7d..63ce770f8707 100644 --- a/dev-libs/boost/Manifest +++ b/dev-libs/boost/Manifest @@ -22,22 +22,24 @@ DIST boost_1_53_0.tar.bz2 55765258 SHA256 f88a041b01882b0c9c5c05b39603ec8383fb88 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 EBUILD boost-1.52.0-r6.ebuild 9801 SHA256 3f6216bd3ae5554331b9f14c28be75ce6f32f92d05dbd44ed14e7bce440b3544 SHA512 1a44b27c48f454c3d0f7f2a3eed259ab23ef79e9669c6f05807e3c3e5e04a845098a2c580db2b9487d255fa39c0fdeacabda85654f6554493bc527a676100317 WHIRLPOOL 3dff797ddad33edfe28238b3553365cf4862f15e3d853cdaff101005b69fc8ee389239b7477021531e5544a58b30689660c7ae31c81c813bd52fbde3857c1df5 EBUILD boost-1.52.0-r7.ebuild 10077 SHA256 da03d3d18d7a8429494bbc7ab0add547b62664b01fdff48b3ec5a7d1cb1499ed SHA512 b4f0dfbce5aae400f68f6d50e9685b1f9bf63761189fb3ac4d2219bac0c9fd8252d4fb94467204a75e1cb6f2e88960a11e97c9771050170db7da991e08270272 WHIRLPOOL ad2ec593b6244a0ee3840dd0902dc13e89ff4f262d7fd75b190efa8812c4bca3d770665b74ba4d4636b795187d3924ecd97f137221704242c8973ddc1e5b544e EBUILD boost-1.53.0-r1.ebuild 10588 SHA256 1d5cd902ff34fe5890540808067428800c11d7b6b4d5eda46254160656d52415 SHA512 1843af3cb168794d3433eac2f1911f5a801bdf7671de8c9f519e554214948bf0b1ba497cd17cbee78463646bad382de56cbd769bc3b642e834ceaf7e5b04a654 WHIRLPOOL 8f47d266e8f1fa10683108ff35374b62b9c14c4749f89190b46477e67fa841abdb8da4c1a2878f7431e3e1bf85749fb522e73f28c9e3f626934bfc64284bb8dd EBUILD boost-1.54.0-r1.ebuild 10608 SHA256 c7d6a302db0e70d49369b52fd5393d45e691881c656b46bdc0e6133add5c31d6 SHA512 483833cea572bfc5a8356ef1a8b18355f175f1f4e37aa5441f5c1e10a92156eaa92658a8804dd258525f03d075e1b74a1358657ce1fda3875e72ec834e752f83 WHIRLPOOL 4f0c3e3097ec9aa0a8de7f073f67552104d24bdda74647529830eb626f0c6c1ff8c25dfabf2faa36f9cb6ad57edd65c68e975cbc60a72c84cce24cd77bc3de3c EBUILD boost-1.55.0-r2.ebuild 11347 SHA256 25db480da5f26352c667686f93e814b111a45cc0459d5169995470a5c9e782be SHA512 4c903a19c637d9cb142d5d69c52e3bb142ff035b3547e3e0f5e6f8c8191a69e7b8557ff4c362fc46dde7daf3cc6710a897816925daa814263430c8b609c5efb5 WHIRLPOOL c95cd1cacc9c8e97343c923ee3c5f375b47cfadf469f4e05356c2772437e97a92c2d24c0dc0f3ca173d0ffa1654acb05867777dc9ef3a6e3deab51b6b7dd5cd8 EBUILD boost-1.56.0-r1.ebuild 11893 SHA256 6465420a1049cbf110b8817f333318bec5f039c70259bd2b78e81c8d230f0f32 SHA512 3211a321d39150c1e97570ff73dbf49c1dddbfd30b87c1ad5169a750826c5f8cb79068a4f3b41f64b3478755ac7d44fd76c52357c7f96e41acd92ef9716a11d2 WHIRLPOOL 6c2b08434e328c2545e0b3eae3975515232d33c80ff56ad6b9282f98ba043b448483fb890c22e0a0690775941e17970d8d37a1edf2c98eb1571f8ab91eb8eb25 -MISC ChangeLog 57886 SHA256 e4281777b6c5ddc2f3395b9dd9d4971c9737af91324854bd0aca303d376b546a SHA512 54881004b27b19fc31171e29505e95db9edda2e2fd3934028207ee200c3ce76dd1cd54d8195ce8cd8340ce1b46a826c98da18df9f9bbc6231c14656b3987eeb2 WHIRLPOOL c2add5189bb8705edbc66d53cae98f4f19e21b11dd200bb20dd87fe9678b79a8e65906110d32dd833f0e7ed3df59150a42f9241fdafcd0da8f716b6768776a55 +EBUILD boost-1.57.0.ebuild 11892 SHA256 98471d1247324e75d03f8c14d80d64f2d915c143a8990aa0c5db50314aaf29ca SHA512 22c45363ef0774656b86232f301bc34579b36daa7734e97a14009acdfc1f9c5e0c2a6bdc4f63d9fad24aaaabd44542b360b61922b7009906ec3cfe538d8c9d1d WHIRLPOOL 9a83a5a683f9210471ca59475d15790767b48410dc73e5ac836e0eb2e2cbbfcbc3a3463bb7af70d5a2f241b36ce8898e2c9ed3f069416c8110e7e040bad8dc75 +MISC ChangeLog 58022 SHA256 9672f3f2d9ae8dabc538f1230f6717da8a2e04c797bfa63d63b75516104ab8eb SHA512 3360c85b9bb2e41b57a54a13a93cb1dfd1c7509827991dcc914e41eb6e34305e0a90dd64e09f5f0e784039beed34af6715fb82f8f2ca30442c47fb3ebadbb360 WHIRLPOOL f17febd11e4553b57b7892182eae6ca28d858776267c3e84dd93bbb3cad4ba652b9acec5717341fd8c99f7f5fbefa0ff3e3d4fdec217e53ae29333db5f37aafb MISC metadata.xml 1363 SHA256 81717d0ffd5ebadbe4b12d4a38b332f3128da205a46e3cfd201e91f6ad474d68 SHA512 162040a40e83cceacea3605d45bc846cbd721446949c66bd836ab54e113ada77f1f462c7e61d7e544bc073920475db6b81c104390d6c83aba7228d65ff270419 WHIRLPOOL be141d041846a3a79efb7579c3f842960afe27a6e29659bad88ae8e999aef30074d2ab23c9eb295152d88f75d80efc86fed1c08c11b4f3f0d5e866b6d3c4802c -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iQEcBAEBCAAGBQJUqtDLAAoJEOeBhlrCAAWGsSYIAIqb5C2wm44hmQdia2Aj47ic -HNjuJDRzVFm3hLV2aI1ksYyz4qmQKCaOEvipbLoKZFSeFPF0K3H/WgV/Ke0DZyoe -g5bf9GpS98TIcQ2UK6/NKWH/pdPxjlTURdiBjst4tuK6FRXE61g5dLbIPxq+dSC9 -meKiTpPPnKsLJNxf38LpF9Q4LPBK+b8KMOn7xE1tfGPA6IWe6c6wlTvn9uWEIc/6 -oh8Fo+jPpE5ND/WOJQhpt/s34vhH3Fej8z5nnjbPtA/YMH4btnXiceuObzg+/vC8 -ADaSpqj3hcV7YYgU+vGVtTdlRFl6YmlFd6Z7yp+QgWnIqLmevxQkv6BxHOQjFSg= -=cpZY +iQEcBAEBCAAGBQJU8GDrAAoJECo/aRed92675vIIAIgSJbo5lVdApaKxEvnarpr3 +adL1rLa4jjmkeg8zVLJRtty1yLvS5qWtEnHf2WoEsgQQdHVep3D88l6XXuexOKzn +dme0u2d7Zc9j8+O5hQ9OQSXBiMD5CyJ7amOYmQWrFuu4dzTQnqFFu6nU7/yqtLB4 +fRVGdjrlELjp/lBihQvz6FIyCVwhUCrzTsDRPpMQ1sgIUjFkdTKxBMnz8EiAOIgh +3Sv8xWSMXCmM6l0/qa60POB9Hc6Kv5Ov72xfHm+czR4Ko0E958MFsVZN/VD+NuNU +VyPJso7S8BOLTCyqx+ym2otGDoEMpCAD2/LbHmz2kD1yI2wSw1eNnSg8JWggpNc= +=SJb6 -----END PGP SIGNATURE----- diff --git a/dev-libs/boost/boost-1.57.0.ebuild b/dev-libs/boost/boost-1.57.0.ebuild new file mode 100644 index 000000000000..009be04c75e9 --- /dev/null +++ b/dev-libs/boost/boost-1.57.0.ebuild @@ -0,0 +1,403 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.57.0.ebuild,v 1.1 2015/02/27 12:19:55 pinkbyte Exp $ + +EAPI="5" +PYTHON_COMPAT=( python{2_7,3_2,3_3,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 ~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? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[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 + if tc-is-cross-compiler; then + python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;" + else + python_configuration="using python : : ${PYTHON} ;" + fi + fi + + cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ +using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CFLAGS}" "${CXXFLAGS}" "${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" + + # 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 +} -- 2.26.2