diff options
author | Mike Gilbert <floppym@gentoo.org> | 2012-10-25 22:28:47 +0000 |
---|---|---|
committer | Mike Gilbert <floppym@gentoo.org> | 2012-10-25 22:28:47 +0000 |
commit | 156d3b546b6f0d37ab1c488a13248a087d0550f0 (patch) | |
tree | ed76042ee76ea1776d962f7f6943ab918e6a2c43 /dev-libs/boost | |
parent | Byte-compile Python modules. Create mpi.py for Boost >=1.50. Backported from ... (diff) | |
download | historical-156d3b546b6f0d37ab1c488a13248a087d0550f0.tar.gz historical-156d3b546b6f0d37ab1c488a13248a087d0550f0.tar.bz2 historical-156d3b546b6f0d37ab1c488a13248a087d0550f0.zip |
Version bump. Backported from Progress Overlay. Ebuild and patches by Arfrever.
Package-Manager: portage-2.2.0_alpha141/cvs/Linux x86_64
Manifest-Sign-Key: 0x0BBEEA1FEA4843A4
Diffstat (limited to 'dev-libs/boost')
-rw-r--r-- | dev-libs/boost/ChangeLog | 10 | ||||
-rw-r--r-- | dev-libs/boost/Manifest | 12 | ||||
-rw-r--r-- | dev-libs/boost/boost-1.51.0.ebuild | 621 | ||||
-rw-r--r-- | dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch | 69 | ||||
-rw-r--r-- | dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch | 22 |
5 files changed, 729 insertions, 5 deletions
diff --git a/dev-libs/boost/ChangeLog b/dev-libs/boost/ChangeLog index 275ba667383f..5760b89dc0f0 100644 --- a/dev-libs/boost/ChangeLog +++ b/dev-libs/boost/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for dev-libs/boost # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.265 2012/10/25 22:04:33 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.266 2012/10/25 22:28:45 floppym Exp $ + +*boost-1.51.0 (25 Oct 2012) + + 25 Oct 2012; Mike Gilbert <floppym@gentoo.org> +boost-1.51.0.ebuild, + +files/boost-1.51.0-respect_python-buildid.patch, + +files/boost-1.51.0-support_dots_in_python-buildid.patch: + Version bump. Backported from Progress Overlay. Ebuild and patches by + Arfrever. 25 Oct 2012; Mike Gilbert <floppym@gentoo.org> boost-1.48.0-r2.ebuild, boost-1.49.0-r1.ebuild, boost-1.50.0-r2.ebuild: diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest index 887d4751002f..df2ea5f735c1 100644 --- a/dev-libs/boost/Manifest +++ b/dev-libs/boost/Manifest @@ -23,6 +23,8 @@ AUX boost-1.48.0-no_strict_aliasing_python2.patch 741 SHA256 d11db74992a7a692f65 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 buildid-fix.patch 1045 SHA256 42a2aa4c0f4d8579a501d6133f55852acbd1d7b497598983c50bdebaa17df17f SHA512 dcd835d51f33470b3b1a4528335d789e5077c90f0aa80ca08da0b9bd86dd619cb89722287fb7511b2a4cc735d3a876d9ea56e85bdd434b0ff046859cb7e05474 WHIRLPOOL 58fa87ba947d9ae03d4c146450f32486681d0f51fcec2b9b741b6e495836aacaccc32cc6c32036fbc5d7ae31b9bb5c0e3cc30ce445286dcbcce9e64782b15bdc AUX point_release_naming_fix.patch 379 SHA256 9369cf6effe61948c3ec6536172c97474b37a84311171a23189189b6c03b86d8 SHA512 fcf4982a4b7dac019fddc790bf5d2129a71e7166173514ba01a92d456c1dcdfb99c03c07bf51377e253da8624ed928de4dd9d28826e05cdba6a0d83c20a7d13d WHIRLPOOL 019bb917476eaa4e9185da7abd5b1c1f5d0747000b090328ef51cdc68e39135698b28644769d0fcc01f1bfd0ada8371e7afec6929a65bfdcd203f9e6b9fed085 AUX random-Jamfile 355 SHA256 7dc71ab8b862ccd5ea9c21c42557adfe0c711ea7fbe7faa47328a37aa84bc096 SHA512 1c5c2fc8fbc720ab07c1345efd92160c8fc67990da778ad0f2564de1ff1692f5bd3a54b77a672b1b6e87c5ef7e0cb07b74765348ef518a0b2a6cd2c11f1fd906 WHIRLPOOL dfe9dda5f2405b01edcf5947a41e6f05b8ed78e3be2c4fb1e21d73cfb0580a4efacb66eb74ea56343056961595b8acf377fd58177c245eea2dc82186f8192c57 @@ -51,6 +53,7 @@ DIST boost_1_47_0.tar.bz2 45952657 SHA256 815a5d9faac4dbd523fbcf3fe1065e443c0bbf DIST boost_1_48_0.tar.bz2 48236989 SHA256 1bf254b2d69393ccd57a3cdd30a2f80318a005de8883a0792ed2f5e2598e5ada SHA512 f8188d65a47f1f6b34d154eb84ec3afb4ce8730fac0adc2bce629db4eb6994bb1192330b8e18a4d3509ff533a6f2bd91f59f4cb5d5c82b0453a99b2289c754e1 WHIRLPOOL a74ecca3fb611ebe7b3627aefe6a651ba2da8a8095ee1fa6e49b57fe6510cd947d81e5aea7ebb7523667a33aa9aa2783e182e39fc5f79f2bddc5faec80cff0e2 DIST boost_1_49_0.tar.bz2 48499961 SHA256 dd748a7f5507a7e7af74f452e1c52a64e651ed1f7263fce438a06641d2180d3c SHA512 9f6198270659df112a57731afe31cbf1012d103ba36ed82f6c3f1bdc0185ddb89dcc42c5dfb9ee3f95973d52999aad6c7509dc61125420d45146e39ebf20219d WHIRLPOOL c049b4212307b0208d0b37ac870a7cfb8562d2b685ce505e1971af7bc68ae9746b06ea80ddc52599ed4cbd6dc3305b5f8051cd771387412aaa1d2f8e939a48ba DIST boost_1_50_0.tar.bz2 50786885 SHA256 c9ace2b8c81fa6703d1d17c7e478de3bc51101c5adbdeb3f6cb72cf3045a8529 SHA512 5909a2eca520a28af31de6a36c51f57b11fddcc0a51493a1e500ade00d9c4e78175c4892c04857ee385f3874f96e561b74b6427e1a155102e926421067d889fe WHIRLPOOL f5f5d9bc2e321da270dbaab04e0ec898240010720e77b362fac7266896a67b1eaa2e71a1d0e948057f55578dca5998e4faf8dc300e2c92608ee06316092bd08c +DIST boost_1_51_0.tar.bz2 50811407 SHA256 fb2d2335a29ee7fe040a197292bfce982af84a645c81688a915c84c925b69696 SHA512 43a45ff34879328c57e1694e199b895d7535df7cdf78b127ec2649841ac5973f2dddbc0b00a1ed71f2347def6d44f1d8cc5c0deea120f60f53714ebe28046478 WHIRLPOOL 2cfe8ff8b1b812f1a2d02cad25a06fe2a824ef319d95e113fc307d432ff54f2367ac86d922517ce63fce2335b14a9d86ec0c9858b10466b4bf76d28c1ceca828 EBUILD boost-1.35.0-r2.ebuild 7044 SHA256 4ba3c784bcf376934da015560896047753c1d855ced8389af0a05acf923566a3 SHA512 4c6aba43c3dbfaa856c948b7c138694e7d2c4a9181e8d12de144bdae80316fe9bb585211ce1867aeda08c64b5d187e9b700b61ee60599b2864fc1dde32d1b05d WHIRLPOOL 35f695700f5017a7368e89faf4d0f298c8139bf82e8b4ab677e38ea5ee6c7e4d1f2ef9ef46e9fcae722792900c61ebc82613b3cc4f576fb7192dc06e77896877 EBUILD boost-1.35.0-r5.ebuild 9542 SHA256 d2d2da1df8fededcfff4e1950481f377dea9094ba3ae31bcc33b82bae8acd8d1 SHA512 a8aef40a9670686e99d484a4de52b357bf5ad5cfd58866236343dcfcfe14f4108e2f3de7f94ad793fd21d3c81a7a5b288e497c3edc3cd14bf0f55cd62d010fb2 WHIRLPOOL 8cff31104117ba012da613f509b3eab255630f04bd5323475ff1e8a3e96965c1e8c28e7af1bddf7211a523356b82b5b73de774c00301bbefbe1a9040b2ac580b EBUILD boost-1.37.0-r1.ebuild 13015 SHA256 13960c13c1a53ba4fe13694ed0a19672e1a341d2674966884f316acf84fed9f2 SHA512 88bc807f5952a79f502bb19f82f3d3b520295f29a321b5cf2c4b61896d8f4ee7197e10eb51e93a1ae98897179d6dc02db1cfee9218b4443e238a3020d10155a8 WHIRLPOOL 157098c9446d7e6a34529fcbd8db91eccfc38a9c4a8f3f663e340aadca759a5b01e76aedcf6df560df882c8a2955a5edf77930a4314d5ba51694ed6a602c8ec2 @@ -67,12 +70,13 @@ EBUILD boost-1.48.0-r2.ebuild 19954 SHA256 acccf121c23f5fb211ec55d08576b14d57240 EBUILD boost-1.49.0-r1.ebuild 19912 SHA256 a62787ab6416b8e567a8b3e0cdb74a1351cbe24531fdc417b8c407de50cae4fe SHA512 dbb92af96f5dac8bcfe586d326ceccc90d90c0c8a08eba30dfd1c8597b860177570a9c328d9e89ef4f126b8c6ef2e4a7071e9efbb1f23ac19838a229ff75d6cb WHIRLPOOL de1015b39beb31444f85a78304521c69cdf0316383a841cebd3e2c282ff392ff6031c53f8c45150b5379330e1acf2336df8729d4257be9661320a74ac726de0a EBUILD boost-1.50.0-r2.ebuild 19736 SHA256 83664e73a3bb8612fa724f3269dc082bc9ad8c6427a615ab0438b59c1ea7e4ca SHA512 78f5c28a58b0ac010a03a1083e655eb85f03e73f3bf0dff5de0d5570bd2e49c82d86ca46fcdf6f49d8b5ac41a110dd5971a3073726dd393836e72fe0e657833f WHIRLPOOL ff4d3d667bf4aebffd13fa3701dcdccf7a12dd69133764a945e8e05d6d097f392f123f87ae889fa994ac4f6eb45b105d7d3ca0cd0056b872d60591546fd4bc06 EBUILD boost-1.50.0.ebuild 19767 SHA256 485a0d40d3195c664c8bc6e294eb36c8ffe367541ac71bc424d9dfcc640ccfbc SHA512 8305b38a044bea58c7078fb19723363b00b78e7f8379ace6afc5cd5ce35e8788fb1694bae7e51470c8b2925369e5b7bc4d5d6e9bfa19992a5bc07a6399482248 WHIRLPOOL 4c60b0e2ccb05e89ec98dbc83ad31416ce6ca01a347c02fe9a4c99d4a402eb8ce5cf916580f6294796575cdcc7779b3ad31c539abb0f35bed19139cd78237186 -MISC ChangeLog 42197 SHA256 927c6dc022746d122640cf521965d97635f7a6587fc9d5ca3c6ce52c93920181 SHA512 aafd6d9767aeaf280271200c2dc3d330df797cb0a9df34c938d02021d155003db6fd537f523cf18303d94c6e862e3382bd285a4f666f9de0a0469e70a1260a3a WHIRLPOOL b3962b1e571133a21c871c80bfdcea32c8084945a9b3cf1ea67a33a4048124ada4fb82f315b8b0d739ce642523c5fa28e49094a2a2c043a7048711b727c6f4b6 +EBUILD boost-1.51.0.ebuild 19723 SHA256 bf584571ec8120e59df49addd246697ad9699d02234db4e81e562fc3d02d1e1e SHA512 6e457ccaa74085f2aa55179241c490d9326fce6d2761bebd29b9a4e222ca51ea4f6a05c0080221f8f1346f6343b2b2249c88585ffd14dcc16d26fdca846362f8 WHIRLPOOL a235fd2ea613ae48fdac5b5a03f360f9f21c225bcd7c2226b8f174c3ca22ee304cbfb93997969721f7294666380abac2e300eef4241ec70b7fd666f44b2f9701 +MISC ChangeLog 42494 SHA256 43f17035f9c5503eabdc6d4c0aa3a7486f330e2bf5098f8b685ee8b932c80fbe SHA512 5dea417b4323feee77a8bc2eb284ff4306d0cd36564b6032a43b687a73a2ff88019d2e0c5df620afb17f4c18405d62ba55b91dcdb10c86c7b6b04df7fb21671f WHIRLPOOL f3e47abe82d4652a2e68a9386112a631e13562bcd922d169809c2286cb09448e22fa5c56d8e523ba66cf744cf5b497cb22abbf2e2eabdc8041350d2521ddc6cb MISC metadata.xml 900 SHA256 145957b2e684c72aaa4fd6d2174e7ae66b2d8a36a49e144f6f99f3b9fa7fa811 SHA512 c3dec3e401bb1e27f37c81998079ed459adec357b6b044bcd08161d5a53ced18bf76d07d665c4f80bed1fe072b02ef84dc7a21316fee41f5c20ef893dfb93d09 WHIRLPOOL 05b7460e6f69943413caec2756b4e8054f9d884bf350027e5fbef56534279b25d6df937c94d8e96d5fb2ac01a109ef23d6d5359d48604f3f99fa7afdd83805e9 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) -iF4EAREIAAYFAlCJt3QACgkQC77qH+pIQ6Q3/gD9F3tIeOy9RhE2q3f0blUtuMkx -f1z+8JKsMtntUQdiPDgBAL8oqyfLgR1MTBvGQcYbYbdNADkjxW1zxiwKGwwmF+8F -=VMSf +iF4EAREIAAYFAlCJvR4ACgkQC77qH+pIQ6QBrgD8C+ipiPZqN+vO41slBqDhoOcE +jmzfzhUhtxtf0KiKcBIA/iumNapLs5BNSGP7A+efZdN/XA9ya65TDUBjg4gJz5gv +=40TU -----END PGP SIGNATURE----- diff --git a/dev-libs/boost/boost-1.51.0.ebuild b/dev-libs/boost/boost-1.51.0.ebuild new file mode 100644 index 000000000000..77ef13bac964 --- /dev/null +++ b/dev-libs/boost/boost-1.51.0.ebuild @@ -0,0 +1,621 @@ +# 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.51.0.ebuild,v 1.1 2012/10/25 22:28:45 floppym Exp $ + +EAPI="5" +PYTHON_DEPEND="python? *" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="*-jython *-pypy-*" + +inherit check-reqs flag-o-matic multilib multiprocessing 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="$(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 test tools" + +RDEPEND="icu? ( >=dev-libs/icu-3.6:= ) + !icu? ( virtual/libiconv ) + mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) ) + sys-libs/zlib + !!<=dev-libs/boost-1.35.0-r2" +DEPEND="${RDEPEND} + dev-util/boost-build:${SLOT}" + +S=${WORKDIR}/${MY_P} + +MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) +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 + + cat > user-config.jam << __EOF__ +using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ; +${mpi_configuration} +${python_configuration} +__EOF__ +} + +pkg_pretend() { + if use test; then + CHECKREQS_DISK_BUILD="15G" check-reqs_pkg_pretend + + ewarn "The tests may take several hours on a recent machine" + ewarn "but they will not fail (unless something weird happens ;-)" + ewarn "This is because the tests depend on the used compiler version" + ewarn "and the platform and upstream says that this is normal." + ewarn "If you are interested in the results, please take a look at the" + ewarn "generated results page:" + ewarn " ${ROOT}usr/share/doc/${PF}/status/cs-$(uname).html" + fi +} + +pkg_setup() { + if use python; then + python_pkg_setup + fi + + if use debug; then + ewarn "The debug USE flag means that a second set of the boost libraries" + ewarn "will be built containing debug symbols. But even though the optimization flags" + ewarn "you might have set are not stripped, there will be a performance" + ewarn "penalty and linking other packages against the debug version" + ewarn "of boost is _not_ recommended." + fi +} + +src_prepare() { + epatch \ + "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \ + "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \ + "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \ + "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \ + "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \ + "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \ + "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \ + "${FILESDIR}/remove-toolset-1.48.0.patch" +} + +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() { + export BOOST_ROOT="${S}" + PYTHON_DIRS="" + MPI_PYTHON_MODULE="" + NUMJOBS="-j$(makeopts_jobs)" + + 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} $(use python && echo --python-buildid=${PYTHON_ABI})" + + ${BJAM} ${NUMJOBS} -q -d+2 \ + gentoorelease \ + --user-config=user-config.jam \ + ${OPTIONS} threading=single,multi ${LINK_OPTS} \ + $(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} --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} \ + --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} --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} \ + --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} --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} \ + --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-${MAJOR_PV}/boost /usr/share/doc/${PF}/html/boost + fi + + pushd "${D}usr/$(get_libdir)" > /dev/null || die + + # Remove (unversioned) symlinks + # And check for what we remove to catch bugs + # got a better idea how to do it? tell me! + local f + for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v "${MAJOR_PV}"); do + if [[ ! -h "${f}" ]]; then + eerror "Tried to remove '${f}' which is a regular file instead of a symlink" + die "Slotting/naming of the libraries broken!" + fi + rm "${f}" || die + done + + # 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)/$(sed -e 's/-mt//' <<< ${lib})" + 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)/$(sed -e 's/-mt//' <<< ${lib})" + 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)/$(sed -e 's/-mt//' <<< ${lib})" + 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)/$(sed -e 's/-mt//' <<< ${lib})" + done + fi + fi + + # Create a subdirectory with completely unversioned symlinks + dodir /usr/$(get_libdir)/boost-${MAJOR_PV} + + local f + for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug); do + dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} + done + + if use debug; then + dodir /usr/$(get_libdir)/boost-${MAJOR_PV}-debug + local f + for f in $(ls -1 ${LIBRARY_TARGETS} | grep debug); do + dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}-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 +} + +src_test() { + testing() { + 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 + + pushd tools/regression/build > /dev/null || die + einfo "Using the following command to build test helpers:" + einfo "${BJAM} -q -d+2 gentoorelease --user-config=../../../user-config.jam ${OPTIONS} process_jam_log compiler_status" + + ${BJAM} -q -d+2 \ + gentoorelease \ + --user-config=../../../user-config.jam \ + ${OPTIONS} \ + process_jam_log compiler_status \ + || die "Building of regression test helpers failed" + + popd > /dev/null || die + pushd status > /dev/null || die + + # Some of the test-checks seem to rely on regexps + export LC_ALL="C" + + # The following is largely taken from tools/regression/run_tests.sh, + # but adapted to our needs. + + # Run the tests & write them into a file for postprocessing + einfo "Using the following command to test:" + einfo "${BJAM} --user-config=../user-config.jam ${OPTIONS} --dump-tests" + + ${BJAM} \ + --user-config=../user-config.jam \ + ${OPTIONS} \ + --dump-tests 2>&1 | tee regress.log || die + + # Postprocessing + cat regress.log | "$(find ../tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease -name process_jam_log)" --v2 + if test $? != 0; then + die "Postprocessing the build log failed" + fi + + cat > comment.html <<- __EOF__ + <p>Tests are run on a <a href="http://www.gentoo.org">Gentoo</a> system.</p> +__EOF__ + + # Generate the build log html summary page + "$(find ../tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease -name compiler_status)" --v2 \ + --comment comment.html "${S}" \ + cs-$(uname).html cs-$(uname)-links.html + if test $? != 0; then + die "Generating the build log html summary page failed" + fi + + # And do some cosmetic fixes :) + sed -i -e 's|http://www.boost.org/boost.png|boost.png|' *.html || die + + popd > /dev/null || die + + if use python; then + rm -r ${PYTHON_DIRS} || die + fi + } + if use python; then + python_execute_function -f -q testing + else + testing + fi +} + +pkg_postinst() { + # mostly copy/paste from eselect-boost + + _boost_tools="bcp bjam compiler_status inspect library_status process_jam_log quickbook wave" + + # ... meaning: <none> and -debug: + _suffices="|-debug" + + einfo "Removing symlinks from old version" + + local link + for link in "${ROOT}/usr/include/boost" "${ROOT}/usr/share/boostbook" ; do + if [[ -L "${link}" ]] ; then + rm "${link}" || die -q "Couldn't remove \"${link}\" symlink" + else + [[ -e "${link}" ]] && die -q "\"${link}\" exists and isn't a symlink" + fi + done + + pushd "${ROOT}/usr/$(get_libdir)" 1>/dev/null + local lib + for lib in libboost_*.{a,so} ; do + [[ -L "${lib}" && "${lib}" != libboost_*[[:digit:]]_[[:digit:]][[:digit:]]@(${_suffices}).@(a|so) ]] || continue + rm "${lib}" || die -q "Unable to remove \"/usr/$(get_libdir)/${lib}\" symlink" + done + popd 1>/dev/null + + pushd "${ROOT}"/usr/bin 1>/dev/null + local tool + for tool in ${_boost_tools} ; do + [[ -L "${tool}" ]] && ( rm "${tool}" || die -q "Unable to remove \"/usr/bin/${tool}\" symlink" ) + done + popd 1>/dev/null + + local python_module python_module_dir + for python_module in mpi.py ; do + for python_module_dir in "${ROOT}"usr/$(get_libdir)/python*/site-packages ; do + if [[ -e "${python_module_dir}/${python_module}" ]] ; then + rm "${python_module_dir}/${python_module}" || die -q "Unable to remove \"${python_module_dir}/${python_module}\"" + fi + done + done + + # Deprecated code for Boost <1.48. + local mod="mpi.so" + for moddir in "${ROOT}"/usr/$(get_libdir)/python*/site-packages ; do + if [ -L "${moddir}/${mod}" ] ; then + rm "${moddir}/${mod}" || die -q "Unable to remove \"${moddir}/${mod}\" symlink" + else + [[ -e "${moddir}/${mod}" ]] && die -q "\"${moddir}/${mod}\" exists and isn't a symlink" + fi + done + + if [ -L "${ROOT}/etc/eselect/boost/active" ] ; then + rm "${ROOT}/etc/eselect/boost/active" || die -q "Unable to remove \"${ROOT}/etc/eselect/boost/active\" symlink" + else + [[ -e "${ROOT}/etc/eselect/boost/active" ]] && die -q "\"${ROOT}/etc/eselect/boost/active\" exists and isn't a symlink" + fi + + if use python; then + if use mpi; then + create_mpi.py() { + echo "from boost_${MAJOR_PV}.mpi import *" > "${EROOT}$(python_get_sitedir -b)/mpi.py" + } + python_execute_function -q create_mpi.py + fi + + python_mod_optimize boost_${MAJOR_PV} $(use mpi && echo mpi.py) + fi +} + +pkg_postrm() { + if use python; then + if use mpi; then + delete_mpi.py() { + if [[ "$(<"${EROOT}$(python_get_sitedir -b)/mpi.py")" == "from boost_${MAJOR_PV}.mpi import *" ]]; then + rm -f "${EROOT}$(python_get_sitedir -b)/mpi.py" + fi + } + python_execute_function -q delete_mpi.py + fi + + python_mod_cleanup boost_${MAJOR_PV} $(use mpi && echo mpi.py) + fi +} diff --git a/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch new file mode 100644 index 000000000000..327429e2c0b2 --- /dev/null +++ b/dev-libs/boost/files/boost-1.51.0-respect_python-buildid.patch @@ -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 ] ; diff --git a/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch new file mode 100644 index 000000000000..c8dc6e1b7e49 --- /dev/null +++ b/dev-libs/boost/files/boost-1.51.0-support_dots_in_python-buildid.patch @@ -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) [*\\/:\"\'] _ ] ; + } + + |