diff options
author | Dirkjan Ochtman <djc@gentoo.org> | 2010-03-03 13:02:00 +0000 |
---|---|---|
committer | Dirkjan Ochtman <djc@gentoo.org> | 2010-03-03 13:02:00 +0000 |
commit | 8881840b7e81ce21f4136b8ee598bf9fc51b8f48 (patch) | |
tree | 6522e7c1afcbb83ca3b06eb220e1c44ee38b05bc /dev-libs | |
parent | Version bump, bug #306851, thank Oschtan for report and Andrey for explanatio... (diff) | |
download | historical-8881840b7e81ce21f4136b8ee598bf9fc51b8f48.tar.gz historical-8881840b7e81ce21f4136b8ee598bf9fc51b8f48.tar.bz2 historical-8881840b7e81ce21f4136b8ee598bf9fc51b8f48.zip |
Version bump dev-libs/boost to 1.42.
Package-Manager: portage-2.1.7.16/cvs/Linux x86_64
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/boost/ChangeLog | 9 | ||||
-rw-r--r-- | dev-libs/boost/Manifest | 6 | ||||
-rw-r--r-- | dev-libs/boost/boost-1.42.0.ebuild | 492 | ||||
-rw-r--r-- | dev-libs/boost/files/boost-1.42.0-parameter-needs-python.patch | 106 | ||||
-rw-r--r-- | dev-libs/boost/files/remove-toolset-1.42.0.patch | 11 |
5 files changed, 622 insertions, 2 deletions
diff --git a/dev-libs/boost/ChangeLog b/dev-libs/boost/ChangeLog index d50fa59e2212..4ff8335a7fac 100644 --- a/dev-libs/boost/ChangeLog +++ b/dev-libs/boost/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-libs/boost # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.187 2010/03/03 12:19:36 djc Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.188 2010/03/03 13:01:59 djc Exp $ + +*boost-1.42.0 (03 Mar 2010) + + 03 Mar 2010; Dirkjan Ochtman <djc@gentoo.org> +boost-1.42.0.ebuild, + +files/boost-1.42.0-parameter-needs-python.patch, + +files/remove-toolset-1.42.0.patch: + Version bump to 1.42.0. 03 Mar 2010; Dirkjan Ochtman <djc@gentoo.org> boost-1.41.0-r3.ebuild: Fix bug 298489 in boost-1.41.0-r3. diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest index f20637ebaa23..90a866449454 100644 --- a/dev-libs/boost/Manifest +++ b/dev-libs/boost/Manifest @@ -5,9 +5,11 @@ AUX boost-1.41.0-iostreams-missing-include-guard.patch 813 RMD160 3a8e5e7f1635d7 AUX boost-1.41.0-mpi_process_group-missing-include.patch 448 RMD160 415f9e7d9195b8d3796524285e090230831466a1 SHA1 7cca39a7847f9d6c4fe0d30f5c677774576db5d3 SHA256 0d5a09e3dc170afd4756fbb296f1a0c30438cc7fb4a771dc7b91763c88e8f88d AUX boost-1.41.0-parameter-needs-python.patch 3037 RMD160 901d7bdda6c9f604d5487b09d247592e8558fcfa SHA1 ee3bf830495506e6d250b2073efbf42de60f9d03 SHA256 0d0e47ef2582da43c40ccf8b5b58435a2d42e2236d29ea7883e1b1ecd1aaa439 AUX boost-1.41.0-spirit-fixed-include-guard-conflict.patch 613 RMD160 434235581f62a4fa569cb6425b7718f866a52ed4 SHA1 39738e64e9e935914a132f899cab8310fe3bb273 SHA256 83c7b2b00225433f82a78c86e3959e56e8529443d769ba35ebef02b4c2c26888 +AUX boost-1.42.0-parameter-needs-python.patch 3037 RMD160 901d7bdda6c9f604d5487b09d247592e8558fcfa SHA1 ee3bf830495506e6d250b2073efbf42de60f9d03 SHA256 0d0e47ef2582da43c40ccf8b5b58435a2d42e2236d29ea7883e1b1ecd1aaa439 AUX buildid-fix.patch 1045 RMD160 ce9dbea25e21ed1ac177b16982ef1850957474f2 SHA1 af1069055e6f8d8fa143fb2ddeccb2fc36ddce9a SHA256 42a2aa4c0f4d8579a501d6133f55852acbd1d7b497598983c50bdebaa17df17f AUX random-Jamfile 355 RMD160 478b592e9d33d371b07e5364e63512c8208263bf SHA1 8ca047df78758f62a6c131bd27441173e9079fa6 SHA256 7dc71ab8b862ccd5ea9c21c42557adfe0c711ea7fbe7faa47328a37aa84bc096 AUX remove-toolset-1.41.0.patch 465 RMD160 5d93141f9cf98fc558e15c273d4ede298a96d535 SHA1 0533de67dd64cf96c992a05161fc8dc6cff3453e SHA256 e1b3c77d5116722df5c5a48973f95307fd46fea675d53d268d60548b7ac4bd2b +AUX remove-toolset-1.42.0.patch 465 RMD160 5d93141f9cf98fc558e15c273d4ede298a96d535 SHA1 0533de67dd64cf96c992a05161fc8dc6cff3453e SHA256 e1b3c77d5116722df5c5a48973f95307fd46fea675d53d268d60548b7ac4bd2b AUX remove_toolset_from_targetname.patch 490 RMD160 e050992fd79005af73410a2ea4037a82177ddf33 SHA1 80d96cca8cb0acb752c428ffcada3ef2964642b1 SHA256 5c5c6fea3c1e20e290d15a68f91b6c084cc5b34daae338e3aa0879a3fd5b9fb5 DIST boost-patches-1.35.0-3.tbz2 4521 RMD160 8a1cac05a7db956482ffb9bc16accaae04891970 SHA1 bcb41aa6bba2ad46df82d9a87751a2ae046bf988 SHA256 e6360a99de6daa43daa3a605d1e2eeee2bf3a8bb4bf0128fc17b4e9d3f9348b8 DIST boost-patches-1.35.0-5.tbz2 5537 RMD160 94ce8edab7127308b93705d6fb0317277dbd88db SHA1 2d195374d6cb6af3b187544afc58a00ee1e2309d SHA256 9d8d6c61d6915cb7629f5f1537054949b616301ecd1f1cfe1d0e2a5a7a676e11 @@ -19,6 +21,7 @@ DIST boost_1_36_0.tar.bz2 28839275 RMD160 0ac38ee3c355c22fd5534bc806bf516890e518 DIST boost_1_37_0.tar.bz2 29435646 RMD160 3c4cf7eb97a8fb126e564ba529ed9edec8765185 SHA1 c0d0cf9ad8d954507824aed51a3e93e6a9da1d99 SHA256 d52ef49f70b1b9addc4e0d1a3a2a1966227f0d173c3301bac3e6d399eeac5472 DIST boost_1_39_0.tar.bz2 29408537 RMD160 4962256b48fa8563bf373b8bed97cc8655206a51 SHA1 6af42f74ab24ccc51589a025593bad298c8adde8 SHA256 44785eae8c6cce61a29a8a51f9b737e57b34d66baa7c0bcd4af188832b8018fd DIST boost_1_41_0.tar.bz2 33348161 RMD160 a604ef5a6f6f5bf50be59206c8534258ab431aea SHA1 31134e28866b90c39ca4a903c263e036bb25550c SHA256 1ef94e6749eaf13318284b4f629be063544c7015b45e38113b975ac1945cc726 +DIST boost_1_42_0.tar.bz2 33426755 RMD160 90cea6aaa35f22b97e6eb3f5879ca9fe21098349 SHA1 3ce3bb1a1bed504635287017f9e628597b409e7b SHA256 4b1eb95bd250ce15ac66435d6167f225b072b0d3a7eb72477a31847a9ca9e609 EBUILD boost-1.35.0-r2.ebuild 7110 RMD160 561df964af02bc9aac75ad3f33f610c2aa8a9ad7 SHA1 70b4d1946342770d6a361cb61fdbaba678fc70c3 SHA256 be62c1e09e7aa5bb4e44115fa0a49797f4a8333dd40f0311e4019090c0b09626 EBUILD boost-1.35.0-r5.ebuild 9714 RMD160 15a86ae2b066e759352954f9e7dbbc520b71acc0 SHA1 8ddb9fffce9068bed7d99fcdcac8e520a519b768 SHA256 4eddd4aa993478e1fa0bdab8c4d9f3ab73913380b49975d3695494ef0089292e EBUILD boost-1.36.0-r1.ebuild 9662 RMD160 f415650ed89492c5a635f4b8183a6693a1f61578 SHA1 33c523b5aaf2a9822ae67a7616b8541f736cff3d SHA256 5b452ed5fa1b3f01f3420a0854c0e5356e3130f9f09b1a4cda19b5ccd479df92 @@ -26,5 +29,6 @@ EBUILD boost-1.37.0-r1.ebuild 13178 RMD160 14d44df115bb49d1551abd07ad9dc5303ade1 EBUILD boost-1.39.0.ebuild 12985 RMD160 f6f349747e51213713321a3d31b1e1c53713f47e SHA1 a26afdda9369d7ea8a690ec67e854e53eee3d045 SHA256 74d8f0e1992659639b52012bf01097d3f9b4da809f8bf7aed4eb2dea5a4bb22a EBUILD boost-1.41.0-r2.ebuild 15233 RMD160 75f118ccbb1c9eb6edd6ba0dd445887e8b5cd2e9 SHA1 26f267523a0360c3bf3ec3b7b4ea1fa3a4700d1c SHA256 a5ded34c079650c83342462cd30c1ddc653cda89db5e0ba48728510e936401cb EBUILD boost-1.41.0-r3.ebuild 15553 RMD160 1abda0c6986a1954eff783299ccc7913c299e2be SHA1 08a9a4f293d0b66e2509a3ef0fc74fde6bcf77aa SHA256 136bc4a6121acb3dac70eb0049837470304bc231e2f98e265f9854ae6e3376bc -MISC ChangeLog 29009 RMD160 a644f912ac2d48d57a0450607cad86086be7585a SHA1 fc41edfe4a90fade5b8efd4cf58bb104280f03a1 SHA256 28a4582de74a5ff53ce903a6f635259897dff2825811272c64febe8ea7a4a096 +EBUILD boost-1.42.0.ebuild 16138 RMD160 1efddb242c1b0ab2acca16fb113431a295909093 SHA1 e0604624b5f37e811344ead9254021e9d0e11c71 SHA256 588a869048ce990d6398c917f4efd0ba05678d4cb4f2a3b2bc53d667f59cfff7 +MISC ChangeLog 29225 RMD160 ea269cbadaa4ad3d9326d5341445083e0024b310 SHA1 84fd744648879cb89b6889ea0603ca36182f5d10 SHA256 7dc9f6117a92bfce1ac2420d8c7a9cc660b15a905008a3609097548edb5cc63c MISC metadata.xml 769 RMD160 e6bbf02a9f1fcd72dd5fd362e7bec537f1cee024 SHA1 2ba5a2d97f635bc855bb4004c563d3b1ef3fae8f SHA256 e429f749e5872188ba979cd3fde10a5ba798c210413a57c9d8685ee06613b964 diff --git a/dev-libs/boost/boost-1.42.0.ebuild b/dev-libs/boost/boost-1.42.0.ebuild new file mode 100644 index 000000000000..da53aaeffcb4 --- /dev/null +++ b/dev-libs/boost/boost-1.42.0.ebuild @@ -0,0 +1,492 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.42.0.ebuild,v 1.1 2010/03/03 13:01:59 djc Exp $ + +EAPI="2" + +inherit python flag-o-matic multilib toolchain-funcs versionator check-reqs + +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)" +IUSE="debug doc +eselect icu mpi python static-libs test tools" + +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd" + +RDEPEND="icu? ( >=dev-libs/icu-3.3 ) + mpi? ( || ( >=sys-cluster/openmpi-1.2.9[cxx] <sys-cluster/openmpi-1.2.9[-nocxx] sys-cluster/mpich2[cxx,threads] sys-cluster/lam-mpi ) ) + sys-libs/zlib + python? ( virtual/python ) + !!<=dev-libs/boost-1.35.0-r2 + >=app-admin/eselect-boost-0.3" +DEPEND="${RDEPEND} + dev-util/boost-build:${SLOT}" + +S=${WORKDIR}/${MY_P} + +MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) +BJAM="bjam-${MAJOR_PV}" + +# Usage: +# _add_line <line-to-add> <profile> +# ... to add to specific profile +# or +# _add_line <line-to-add> +# ... to add to all profiles for which the use flag set + +_add_line() { + if [ -z "$2" ] ; then + echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" + use debug && echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" + else + echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/${SLOT}/${2}" + fi +} + +pkg_setup() { + # It doesn't compile with USE="python mpi" and python-3 (bug 295705) + if use python && use mpi ; then + python_version + if [[ "${PYVER_MAJOR}" != "2" ]]; then + eerror "The Boost.MPI python bindings do not support any other python version" + eerror "than 2.x. Please either use eselect to select a python 2.x version or" + eerror "disable the python and/or mpi use flag for =${CATEGORY}/${PF}." + die "unsupported python version" + fi + fi + + if use test ; then + CHECKREQS_DISK_BUILD="1024" + check_reqs + + 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" + ebeep 5 + + 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. You'll be able to select them" + ewarn "using the boost-eselect module. 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}/remove-toolset-${PV}.patch" + + # bug 291660 + epatch "${FILESDIR}/boost-${PV}-parameter-needs-python.patch" + + # This enables building the boost.random library with /dev/urandom support + if [[ -e /dev/urandom ]] ; then + mkdir -p libs/random/build + cp "${FILESDIR}/random-Jamfile" libs/random/build/Jamfile.v2 + # yeah, we WANT it to work on non-Linux too + sed -i -e 's/#ifdef __linux__/#if 1/' libs/random/random_device.cpp || die + fi +} + +src_configure() { + einfo "Writing new user-config.jam" + + local compiler compilerVersion compilerExecutable mpi + if [[ ${CHOST} == *-darwin* ]] ; then + compiler=darwin + compilerVersion=$(gcc-fullversion) + compilerExecutable=$(tc-getCXX) + # 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 + else + compiler=gcc + compilerVersion=$(gcc-version) + compilerExecutable=$(tc-getCXX) + fi + + # Using -fno-strict-aliasing to prevent possible creation of invalid code. + append-flags -fno-strict-aliasing + + # bug 298489 + if use ppc || use ppc64 ; then + [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec + fi; + + use mpi && mpi="using mpi ;" + + if use python ; then + python_version + pystring="using python : ${PYVER} : /usr : /usr/include/python${PYVER} : /usr/lib/python${PYVER} ;" + fi + + cat > "${S}/user-config.jam" << __EOF__ + +variant gentoorelease : release : <optimization>none <debug-symbols>none ; +variant gentoodebug : debug : <optimization>none ; + +using ${compiler} : ${compilerVersion} : ${compilerExecutable} : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ; + +${pystring} + +${mpi} + +__EOF__ + + # Maintainer information: + # The debug-symbols=none and optimization=none + # are not official upstream flags but a Gentoo + # specific patch to make sure that all our + # CXXFLAGS/LDFLAGS are being respected. + # Using optimization=off would for example add + # "-O0" and override "-O2" set by the user. + # Please take a look at the boost-build ebuild + # for more infomration. + + use icu && OPTIONS="-sICU_PATH=/usr" + use mpi || OPTIONS="${OPTIONS} --without-mpi" + use python || OPTIONS="${OPTIONS} --without-python" + + # https://svn.boost.org/trac/boost/attachment/ticket/2597/add-disable-long-double.patch + if use sparc || use mips || use hppa || use arm || use x86-fbsd; then + OPTIONS="${OPTIONS} --disable-long-double" + fi + + OPTIONS="${OPTIONS} pch=off --user-config=\"${S}/user-config.jam\" --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 dynamicly linked version of libboost_test_exec_monitor + LIBRARY_TARGETS="libboost_test_exec_monitor*.a *$(get_libname)" + fi +} + +src_compile() { + jobs=$( echo " ${MAKEOPTS} " | \ + sed -e 's/ --jobs[= ]/ -j /g' \ + -e 's/ -j \([1-9][0-9]*\)/ -j\1/g' \ + -e 's/ -j\>/ -j1/g' | \ + ( while read -d ' ' j ; do if [[ "${j#-j}" = "$j" ]]; then continue; fi; jobs="${j#-j}"; done; echo ${jobs} ) ) + if [[ "${jobs}" != "" ]]; then NUMJOBS="-j"${jobs}; fi; + + export BOOST_ROOT="${S}" + + einfo "Using the following command to build: " + einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared" + + ${BJAM} ${NUMJOBS} -q -d+2 \ + gentoorelease \ + ${OPTIONS} \ + threading=single,multi ${LINK_OPTS} runtime-link=shared \ + || die "building boost 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 ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --buildid=debug" + + ${BJAM} ${NUMJOBS} -q -d+2 \ + gentoodebug \ + ${OPTIONS} \ + threading=single,multi ${LINK_OPTS} runtime-link=shared \ + --buildid=debug \ + || die "building boost failed" + fi + + if use tools; then + cd "${S}/tools/" + einfo "Using the following command to build the tools: " + einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease ${OPTIONS}" + + ${BJAM} ${NUMJOBS} -q -d+2\ + gentoorelease \ + ${OPTIONS} \ + || die "building tools failed" + fi + +} + +src_install () { + export BOOST_ROOT="${S}" + + einfo "Using the following command to install: " + einfo "${BJAM} -q -d+2 gentoorelease ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}/usr/include\" --libdir=\"${D}/usr/$(get_libdir)\" install" + + ${BJAM} -q -d+2 \ + gentoorelease \ + ${OPTIONS} \ + threading=single,multi ${LINK_OPTS} runtime-link=shared \ + --includedir="${D}/usr/include" \ + --libdir="${D}/usr/$(get_libdir)" \ + install || die "install failed for options '${OPTIONS}'" + + if use debug ; then + einfo "Using the following command to install: " + einfo "${BJAM} -q -d+2 gentoodebug ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}/usr/include\" --libdir=\"${D}/usr/$(get_libdir)\" --buildid=debug" + + ${BJAM} -q -d+2 \ + gentoodebug \ + ${OPTIONS} \ + threading=single,multi ${LINK_OPTS} runtime-link=shared \ + --includedir="${D}/usr/include" \ + --libdir="${D}/usr/$(get_libdir)" \ + --buildid=debug \ + install || die "install failed for options '${OPTIONS}'" + fi + + use python || rm -rf "${D}/usr/include/boost-${MAJOR_PV}/boost"/python* || die + + dodir /usr/share/boost-eselect/profiles/${SLOT} || die + touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" || die + if use debug ; then + touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" || die + fi + + # Move the mpi.so to the right place and make sure it's slotted + if use mpi && use python; then + mkdir -p "${D}/usr/$(get_libdir)/python${PYVER}/site-packages/boost_${MAJOR_PV}" || die + mv "${D}/usr/$(get_libdir)/mpi.so" "${D}/usr/$(get_libdir)/python${PYVER}/site-packages/boost_${MAJOR_PV}/" || die + touch "${D}/usr/$(get_libdir)/python${PYVER}/site-packages/boost_${MAJOR_PV}/__init__.py" || die + _add_line "python=\"/usr/$(get_libdir)/python${PYVER}/site-packages/boost_${MAJOR_PV}/mpi.so\"" + 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 more people wiki || die + dohtml \ + -A pdf,txt \ + -r tools || die + insinto /usr/share/doc/${PF}/html + doins -r libs || die + + # To avoid broken links + insinto /usr/share/doc/${PF}/html + doins LICENSE_1_0.txt || die + + dosym /usr/include/boost-${MAJOR_PV}/boost /usr/share/doc/${PF}/html/boost || die + fi + + cd "${D}/usr/$(get_libdir)" || die + + # Remove (unversioned) symlinks + # And check for what we remove to catch bugs + # got a better idea how to do it? tell me! + for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v "${MAJOR_PV}") ; do + if [ ! -h "${f}" ] ; then + eerror "Ups, tried to remove '${f}' which is a a real file instead of a symlink" + die "slotting/naming of the libs 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 + for lib in ${THREAD_LIBS} ; do + dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die + 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 + for lib in ${MPI_LIBS} ; do + dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die + 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 + + for lib in ${THREAD_DEBUG_LIBS} ; do + dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die + 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 + + for lib in ${MPI_DEBUG_LIBS} ; do + dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" || die + done + fi + fi + + # Create a subdirectory with completely unversioned symlinks + # and store the names in the profiles-file for eselect + dodir /usr/$(get_libdir)/boost-${MAJOR_PV} || die + + _add_line "libs=\"" default + for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug) ; do + dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} || die + _add_line "/usr/$(get_libdir)/${f}" default + done + _add_line "\"" default + + if use debug ; then + _add_line "libs=\"" debug + dodir /usr/$(get_libdir)/boost-${MAJOR_PV}-debug || die + for f in $(ls -1 ${LIBRARY_TARGETS} | grep debug) ; do + dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}-debug/${f/-${MAJOR_PV}-debug} || die + _add_line "/usr/$(get_libdir)/${f}" debug + done + _add_line "\"" debug + + _add_line "includes=\"/usr/include/boost-${MAJOR_PV}/boost\"" debug + _add_line "suffix=\"-debug\"" debug + fi + + _add_line "includes=\"/usr/include/boost-${MAJOR_PV}/boost\"" default + + if use tools; then + cd "${S}/dist/bin" || die + # Append version postfix to binaries for slotting + _add_line "bins=\"" + for b in * ; do + newbin "${b}" "${b}-${MAJOR_PV}" || die + _add_line "/usr/bin/${b}-${MAJOR_PV}" + done + _add_line "\"" + + cd "${S}/dist" || die + insinto /usr/share || die + doins -r share/boostbook || die + # Append version postfix for slotting + mv "${D}/usr/share/boostbook" "${D}/usr/share/boostbook-${MAJOR_PV}" || die + _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" + fi + + cd "${S}/status" || die + if [ -f regress.log ] ; then + docinto status || die + dohtml *.html ../boost.png || die + dodoc regress.log || die + fi + + use python && python_need_rebuild + + # 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. + [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/ + if [[ ${CHOST} == *-darwin* ]] ; then + einfo "Working around completely broken build-system(tm)" + 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' ') + 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() { + export BOOST_ROOT=${S} + + cd "${S}/tools/regression/build" || die + einfo "Using the following command to build test helpers: " + einfo "${BJAM} -q -d+2 gentoorelease ${OPTIONS} process_jam_log compiler_status" + + ${BJAM} -q -d+2 \ + gentoorelease \ + ${OPTIONS} \ + process_jam_log compiler_status \ + || die "building regression test helpers failed" + + cd "${S}/status" || 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} ${OPTIONS} --dump-tests" + + ${BJAM} \ + ${OPTIONS} \ + --dump-tests 2>&1 | tee regress.log || die + + # Postprocessing + cat regress.log | "${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/pch-off/process_jam_log" --v2 + if test $? != 0 ; then + die "Postprocessing the build log failed" + fi + + cat > "${S}/status/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 + "${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/pch-off/compiler_status" --v2 \ + --comment "${S}/status/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 +} + +pkg_postinst() { + if use eselect ; then + eselect boost update || ewarn "eselect boost update failed." + fi + + if [ ! -h "${ROOT}/etc/eselect/boost/active" ] ; then + elog "No active boost version found. Calling eselect to select one..." + eselect boost update || ewarn "eselect boost update failed." + fi +} diff --git a/dev-libs/boost/files/boost-1.42.0-parameter-needs-python.patch b/dev-libs/boost/files/boost-1.42.0-parameter-needs-python.patch new file mode 100644 index 000000000000..2002ba3a9019 --- /dev/null +++ b/dev-libs/boost/files/boost-1.42.0-parameter-needs-python.patch @@ -0,0 +1,106 @@ +--- boost/parameter/aux_/maybe.hpp 2008-03-22 21:45:55.000000000 +0000 ++++ boost/parameter/aux_/maybe.hpp.new 2009-10-22 03:55:24.000000000 +0000 +@@ -2,20 +2,41 @@ + // subject to the Boost Software License, Version 1.0. (See accompanying + // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +-#ifndef BOOST_PARAMETER_MAYBE_060211_HPP +-# define BOOST_PARAMETER_MAYBE_060211_HPP ++// ++// 2009.10.21 TDS remove depenency on boost::python::detail::referent_storage ++// ++#ifndef BOOST_PARAMETER_MAYBE_091021_HPP ++# define BOOST_PARAMETER_MAYBE_091021_HPP + + # include <boost/mpl/if.hpp> + # include <boost/mpl/identity.hpp> + # include <boost/type_traits/is_reference.hpp> + # include <boost/type_traits/add_reference.hpp> + # include <boost/optional.hpp> +-# include <boost/python/detail/referent_storage.hpp> ++# include <boost/aligned_storage.hpp> + # include <boost/type_traits/remove_cv.hpp> + # include <boost/type_traits/add_const.hpp> + + namespace boost { namespace parameter { namespace aux { + ++template <class T> struct referent_size; ++ ++template <class T> ++struct referent_size<T&> ++{ ++ BOOST_STATIC_CONSTANT(std::size_t, value = sizeof(T)); ++}; ++ ++// A metafunction returning a POD type which can store U, where T == ++// U&. If T is not a reference type, returns a POD which can store T. ++template <class T> ++struct referent_storage ++{ ++ typedef typename boost::aligned_storage< ++ referent_size<T>::value ++ >::type type; ++}; ++ + struct maybe_base {}; + + template <class T> +@@ -33,8 +54,8 @@ + BOOST_DEDUCED_TYPENAME remove_reference<reference>::type + >::type non_cv_value; + +- explicit maybe(T value) +- : value(value) ++ explicit maybe(T value_) ++ : value(value_) + , constructed(false) + {} + +@@ -48,28 +69,28 @@ + this->destroy(); + } + +- reference construct(reference value) const ++ reference construct(reference value_) const + { +- return value; ++ return value_; + } + + template <class U> +- reference construct2(U const& value) const ++ reference construct2(U const& value_) const + { +- new (m_storage.bytes) non_cv_value(value); ++ new (m_storage.address()) non_cv_value(value_); + constructed = true; +- return *(non_cv_value*)m_storage.bytes; ++ return *(non_cv_value*)m_storage.address(); + } + + template <class U> +- reference construct(U const& value) const ++ reference construct(U const& value_) const + { +- return this->construct2(value); ++ return this->construct2(value_); + } + + void destroy() + { +- ((non_cv_value*)m_storage.bytes)->~non_cv_value(); ++ ((non_cv_value*)m_storage.address())->~non_cv_value(); + } + + typedef reference(maybe<T>::*safe_bool)() const; +@@ -87,7 +108,9 @@ + private: + boost::optional<T> value; + mutable bool constructed; +- mutable typename boost::python::detail::referent_storage< ++ ++ ++ mutable typename referent_storage< + reference + >::type m_storage; + }; diff --git a/dev-libs/boost/files/remove-toolset-1.42.0.patch b/dev-libs/boost/files/remove-toolset-1.42.0.patch new file mode 100644 index 000000000000..b7d797c37376 --- /dev/null +++ b/dev-libs/boost/files/remove-toolset-1.42.0.patch @@ -0,0 +1,11 @@ +--- Jamroot 2009-08-23 18:17:37.000000000 +0200 ++++ Jamroot.gentoo 2009-10-21 13:31:46.000000000 +0200 +@@ -352,7 +352,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) ] ; + } |