diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2012-10-31 16:32:26 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2012-10-31 16:32:26 +0000 |
commit | 443977c23782282c0c85e32403c2a11def452f8a (patch) | |
tree | bbe66e5b47aa670fabc6249564d039ac3e9f39cd /dev-libs/boost | |
parent | Unslotting. This removes a bunch of older packages that will not build on mod... (diff) | |
download | gentoo-2-443977c23782282c0c85e32403c2a11def452f8a.tar.gz gentoo-2-443977c23782282c0c85e32403c2a11def452f8a.tar.bz2 gentoo-2-443977c23782282c0c85e32403c2a11def452f8a.zip |
Unslotting. This removes a bunch of older packages that will not build on modern systems, keeps only three versions (stable, mostly-stable and masked). The new 1.51.0-r1 is designed so that it does not have to do any eselect or eselect-like trickery for the symlinks, also drops the tests (which are not working as expected anyway).
(Portage version: 2.2.0_alpha141/cvs/Linux x86_64, signed Manifest commit with key 1CD13C8AD4301342)
Diffstat (limited to 'dev-libs/boost')
40 files changed, 81 insertions, 7477 deletions
diff --git a/dev-libs/boost/ChangeLog b/dev-libs/boost/ChangeLog index e427c30b3d72..de447ff3b2f5 100644 --- a/dev-libs/boost/ChangeLog +++ b/dev-libs/boost/ChangeLog @@ -1,6 +1,37 @@ # 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.268 2012/10/30 23:28:10 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.269 2012/10/31 16:32:25 flameeyes Exp $ + +*boost-1.51.0-r1 (31 Oct 2012) + + 31 Oct 2012; Diego E. Pettenò <flameeyes@gentoo.org> +boost-1.51.0-r1.ebuild, + -boost-1.35.0-r2.ebuild, -boost-1.35.0-r5.ebuild, -boost-1.37.0-r1.ebuild, + -boost-1.39.0.ebuild, -boost-1.41.0-r3.ebuild, -boost-1.42.0-r1.ebuild, + -boost-1.42.0-r2.ebuild, -boost-1.42.0.ebuild, -boost-1.45.0.ebuild, + -boost-1.47.0-r1.ebuild, -boost-1.47.0.ebuild, -boost-1.48.0-r2.ebuild, + -boost-1.50.0-r2.ebuild, -boost-1.50.0.ebuild, -boost-1.51.0.ebuild, + -files/1.35-remove-hardlink-creation.patch, + -files/boost-1.41.0-fix-CRC-on-x64-during-gzip-decompression.patch, + -files/boost-1.41.0-iostreams-missing-include-guard.patch, + -files/boost-1.41.0-mpi_process_group-missing-include.patch, + -files/boost-1.41.0-parameter-needs-python.patch, + -files/boost-1.41.0-spirit-fixed-include-guard-conflict.patch, + -files/boost-1.42.0-gcc45-python.patch, + -files/boost-1.42.0-parameter-needs-python.patch, + -files/boost-1.42.0-template_arity-gcc45.patch, + -files/boost-1.47.0-exceptions.patch, -files/boost-1.48.0-BOOST_FOREACH.patch, + -files/boost-1.48.0-gcc47.patch, -files/buildid-fix.patch, + -files/random-Jamfile, -files/random-Jamfile-1.45.0, + -files/random-Jamfile-1.47.0, -files/remove-toolset-1.41.0.patch, + -files/remove-toolset-1.42.0.patch, -files/remove-toolset-1.45.0.patch, + -files/remove-toolset-1.47.0.patch, + -files/remove_toolset_from_targetname.patch, boost-1.46.1-r1.ebuild, + boost-1.49.0-r1.ebuild, metadata.xml: + Unslotting. This removes a bunch of older packages that will not build on + modern systems, keeps only three versions (stable, mostly-stable and masked). + The new 1.51.0-r1 is designed so that it does not have to do any eselect or + eselect-like trickery for the symlinks, also drops the tests (which are not + working as expected anyway). 30 Oct 2012; Mike Gilbert <floppym@gentoo.org> boost-1.51.0.ebuild: Remove python_mod_optimize call; boost_1_51 does not exist in site-packages. diff --git a/dev-libs/boost/boost-1.35.0-r2.ebuild b/dev-libs/boost/boost-1.35.0-r2.ebuild deleted file mode 100644 index 0961212fdcb9..000000000000 --- a/dev-libs/boost/boost-1.35.0-r2.ebuild +++ /dev/null @@ -1,268 +0,0 @@ -# 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.35.0-r2.ebuild,v 1.17 2012/06/06 20:29:00 jer Exp $ - -inherit python flag-o-matic multilib toolchain-funcs versionator check-reqs - -KEYWORDS="alpha amd64 arm ia64 ~mips ppc ppc64 s390 sh sparc x86" - -MY_P=${PN}_$(replace_all_version_separators _) -PATCHSET_VERSION="${PV}-3" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="http://www.boost.org/" -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2 - mirror://gentoo/boost-patches-${PATCHSET_VERSION}.tbz2" -LICENSE="Boost-1.0" -SLOT="0" -IUSE="debug doc expat icu mpi test tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - expat? ( dev-libs/expat ) - mpi? ( || ( sys-cluster/openmpi sys-cluster/mpich2 ) ) - sys-libs/zlib - dev-lang/python" -DEPEND="${RDEPEND} - =dev-util/boost-build-${PV}-r1" - -S=${WORKDIR}/${MY_P} - -# Maintainer Information -# ToDo: -# - write a patch to support /dev/urandom on FreeBSD and OSX (see below) - -pkg_setup() { - 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 -} - -src_unpack() { - unpack ${A} - - cd "${S}" - - EPATCH_SOURCE="${WORKDIR}/patches" - EPATCH_SUFFIX="patch" - epatch - - # This enables building the boost.random library with /dev/urandom support - if ! use userland_Darwin ; then - mkdir -p libs/random/build - cp "${FILESDIR}/random-Jamfile" libs/random/build/Jamfile.v2 - fi -} - -generate_options() { - # 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 information. - - BUILDNAME="gentoorelease" - use debug && BUILDNAME="gentoodebug" - - OPTIONS="${BUILDNAME}" - - use icu && OPTIONS="${OPTIONS} -sICU_PATH=/usr" - if use expat ; then - OPTIONS="${OPTIONS} -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/$(get_libdir)" - fi - - if ! use mpi ; then - OPTIONS="${OPTIONS} --without-mpi" - fi - - OPTIONS="${OPTIONS} --user-config=${S}/user-config.jam --boost-build=/usr/share/boost-build" -} - -generate_userconfig() { - einfo "Writing new user-config.jam" - - local compiler compilerVersion compilerExecutable - if [[ ${CHOST} == *-darwin* ]] ; then - compiler=darwin - compilerVersion=$(gcc-version) - compilerExecutable=$(tc-getCXX) - append-ldflags -ldl - else - compiler=gcc - compilerVersion=$(gcc-version) - compilerExecutable=$(tc-getCXX) - fi - - cat > "${S}/user-config.jam" << __EOF__ - -variant gentoorelease : release : <optimization>none <debug-symbols>none ; -variant gentoodebug : debug : <optimization>none <debug-symbols>none ; - -using ${compiler} : ${compilerVersion} : ${compilerExecutable} : <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ; -using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ; - -__EOF__ - - if use mpi ; then - echo "using mpi ;" >> "${S}/user-config.jam" - fi -} - -src_compile() { - - NUMJOBS=$(sed -e 's/.*\(\-j[ 0-9]\+\) .*/\1/' <<< ${MAKEOPTS}) - - generate_userconfig - generate_options - - elog "Using the following options to build: " - elog " ${OPTIONS}" - - export BOOST_ROOT=${S} - - bjam ${NUMJOBS} -q \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - --prefix="${D}/usr" \ - --layout=system \ - || die "building boost failed" - - if use tools; then - cd "${S}/tools/" - # We have to set optimization to -O0 or -O1 to work around a gcc-bug - # optimization=off adds -O0 to the compiler call and overwrites our settings. - bjam ${NUMJOBS} -q \ - ${OPTIONS} \ - --prefix="${D}/usr" \ - --layout=system \ - || die "building tools failed" - fi -} - -src_install () { - - generate_options - - export BOOST_ROOT=${S} - - bjam -q \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - --prefix="${D}/usr" \ - --includedir="${D}/usr/include" \ - --libdir="${D}/usr/$(get_libdir)" \ - --layout=system \ - install || die "install failed for options '${OPTIONS}'" - - # Move the mpi.so to the right place - if use mpi; then - mkdir -p "${D}$(python_get_sitedir)" - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)" - fi - - if use doc ; then - find libs -iname "test" -or -iname "src" | xargs rm -rf - dohtml \ - -A pdf,txt,cpp \ - *.{htm,html,png,css} \ - -r doc more people wiki - insinto /usr/share/doc/${PF}/html - doins -r libs - - # 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 - - cd "${D}/usr/$(get_libdir)" - - # If built with debug enabled, all libraries get a 'd' postfix, - # this breaks linking other apps against boost (bug #181972) - if use debug ; then - for lib in $(ls -1 libboost_*) ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-d\././' -e 's/d\././' <<< ${lib})" - done - fi - - for lib in $(ls -1 libboost_thread-mt.*) ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - if use tools; then - cd "${S}/dist" - dobin bin/* - insinto /usr - doins -r share - fi - - cd "${S}/status" - if [ -f regress.log ]; then - docinto status - dohtml *.{html,gif} ../boost.png - dodoc regress.log - fi -} - -src_test() { - generate_options - - export BOOST_ROOT=${S} - - cd "${S}/tools/regression/build" - bjam -q \ - ${OPTIONS} \ - --prefix="${D}/usr" \ - --layout=system \ - process_jam_log compiler_status \ - || die "building regression test helpers failed" - - cd "${S}/status" - - # 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 - bjam \ - ${OPTIONS} \ - --dump-tests 2>&1 | tee regress.log - - # Postprocessing - cat regress.log | "${S}/tools/regression/build/bin/gcc-$(gcc-version)/${BUILDNAME}/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)/${BUILDNAME}/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|../boost.png|boost.png|' *.html -} diff --git a/dev-libs/boost/boost-1.35.0-r5.ebuild b/dev-libs/boost/boost-1.35.0-r5.ebuild deleted file mode 100644 index 95234592ca6c..000000000000 --- a/dev-libs/boost/boost-1.35.0-r5.ebuild +++ /dev/null @@ -1,334 +0,0 @@ -# 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.35.0-r5.ebuild,v 1.18 2012/06/06 20:29:00 jer Exp $ - -EAPI="2" - -inherit python flag-o-matic multilib toolchain-funcs versionator check-reqs eutils - -KEYWORDS="alpha amd64 arm ia64 ~mips ppc ~ppc64 s390 sh sparc x86" - -MY_P=${PN}_$(replace_all_version_separators _) -PATCHSET_VERSION="${PV}-5" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="http://www.boost.org/" -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2 - mirror://gentoo/boost-patches-${PATCHSET_VERSION}.tbz2 - http://www.gentoo.org/~dev-zero/distfiles/boost-patches-${PATCHSET_VERSION}.tbz2" -LICENSE="Boost-1.0" -SLOT="0" -IUSE="doc +eselect expat icu mpi python test tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - expat? ( dev-libs/expat ) - mpi? ( sys-cluster/openmpi[cxx] ) - sys-libs/zlib - python? ( dev-lang/python ) - !!<=dev-libs/boost-1.35.0-r2 - >=app-admin/eselect-boost-0.3" -DEPEND="${RDEPEND} - >=dev-util/boost-build-1.35.0-r2:${SLOT}" - -S=${WORKDIR}/${MY_P} - -# Maintainer Information -# ToDo: -# - write a patch to support /dev/urandom on FreeBSD and OSX (see below) - -# manually setting it for this major version -MAJOR_PV=1_35 -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/1.35/default" - else - echo "${1}" >> "${D}/usr/share/boost-eselect/profiles/1.35/${2}" - fi -} - -pkg_setup() { - 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 -} - -src_prepare() { - EPATCH_SOURCE="${WORKDIR}/patches" - EPATCH_SUFFIX="patch" - epatch - - epatch \ - "${FILESDIR}/remove_toolset_from_targetname.patch" - - # This enables building the boost.random library with /dev/urandom support - if ! use userland_Darwin ; then - mkdir -p libs/random/build - cp "${FILESDIR}/random-Jamfile" libs/random/build/Jamfile.v2 - fi - - epatch "${FILESDIR}/1.35-remove-hardlink-creation.patch" -} - -src_configure() { - einfo "Writing new user-config.jam" - - local compiler compilerVersion compilerExecutable mpi - if [[ ${CHOST} == *-darwin* ]] ; then - compiler=darwin - compilerVersion=$(gcc-version) - compilerExecutable=$(tc-getCXX) - append-ldflags -ldl - else - compiler=gcc - compilerVersion=$(gcc-version) - compilerExecutable=$(tc-getCXX) - fi - - # Huge number of strict-aliasing warnings cause a build failure w/ >= GCC 4.4 bug #252287 - [[ $(gcc-version) > 4.3 ]] && append-flags -Wno-strict-aliasing - - use mpi && mpi="using mpi ;" - - if use python ; then - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 expat && OPTIONS="${OPTIONS} -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/$(get_libdir)" - use mpi || OPTIONS="${OPTIONS} --without-mpi" - use python || OPTIONS="${OPTIONS} --without-python" - - OPTIONS="${OPTIONS} --user-config=${S}/user-config.jam --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=${D}/usr --layout=versioned" - -} - -src_compile() { - - NUMJOBS=$(sed -e 's/.*\(\-j[ 0-9]\+\) .*/\1/; s/--jobs=\?/-j/' <<< ${MAKEOPTS}) - - einfo "Using the following options to build: " - einfo " ${OPTIONS}" - - export BOOST_ROOT="${S}" - - ${BJAM} ${NUMJOBS} -q \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - || die "building boost failed" - - if use tools; then - cd "${S}/tools/" - ${BJAM} ${NUMJOBS} -q \ - gentoorelease \ - ${OPTIONS} \ - || die "building tools failed" - fi - -} - -src_install () { - einfo "Using the following options to install: " - einfo " ${OPTIONS}" - - export BOOST_ROOT="${S}" - - ${BJAM} -q \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - --includedir="${D}/usr/include" \ - --libdir="${D}/usr/$(get_libdir)" \ - install || die "install failed for options '${OPTIONS}'" - - use python || rm -rf "${D}/usr/include/boost-${MAJOR_PV}/boost"/python* - - dodir /usr/share/boost-eselect/profiles/1.35 - touch "${D}/usr/share/boost-eselect/profiles/1.35/default" - - # Move the mpi.so to the right place and make sure it's slotted - if use mpi && use python; then - mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" - _add_line "python=\"$(python_get_sitedir)/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,cpp,hpp \ - *.{htm,html,png,css} \ - -r doc more people wiki - insinto /usr/share/doc/${PF}/html - doins -r libs - - # 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 - - cd "${D}/usr/$(get_libdir)" - - # 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 *.{a,so} | 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}" - done - - # The threading libs obviously always gets the "-mt" (multithreading) tag - # some packages seem to have a problem with it. Creating symlinks... - for lib in libboost_thread-mt-${MAJOR_PV}{.a,.so} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - # The same goes for the mpi libs - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}{.a,.so} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - 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} - - _add_line "libs=\"" default - for f in libboost_*.{a,so} ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} - _add_line "/usr/$(get_libdir)/${f}" default - done - _add_line "\"" default - - _add_line "includes=\"/usr/include/boost-${MAJOR_PV}/boost\"" default - - if use tools; then - cd "${S}/dist/bin" - # Append version postfix to binaries for slotting - _add_line "bins=\"" - for b in * ; do - newbin "${b}" "${b}-${MAJOR_PV}" - _add_line "/usr/bin/${b}-${MAJOR_PV}" - done - _add_line "\"" - - cd "${S}/dist" - insinto /usr/share - doins -r share/boostbook - # Append version postfix for slotting - mv "${D}/usr/share/boostbook" "${D}/usr/share/boostbook-${MAJOR_PV}" - _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" - fi - - cd "${S}/status" - if [ -f regress.log ] ; then - docinto status - dohtml *.{html,gif} ../boost.png - dodoc regress.log - fi - - use python && python_need_rebuild -} - -src_test() { - export BOOST_ROOT=${S} - - cd "${S}/tools/regression/build" - ${BJAM} -q \ - gentoorelease \ - ${OPTIONS} \ - process_jam_log compiler_status \ - || die "building regression test helpers failed" - - cd "${S}/status" - - # 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 - ${BJAM} \ - ${OPTIONS} \ - --dump-tests 2>&1 | tee regress.log - - # Postprocessing - cat regress.log | "${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/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/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|../boost.png|boost.png|' *.html -} - -pkg_postinst() { - use eselect && eselect boost update - if [ ! -h "${ROOT}/etc/eselect/boost/active" ] ; then - elog "No active boost version found. Calling eselect to select one..." - eselect boost update - fi -} diff --git a/dev-libs/boost/boost-1.37.0-r1.ebuild b/dev-libs/boost/boost-1.37.0-r1.ebuild deleted file mode 100644 index 932e93cac988..000000000000 --- a/dev-libs/boost/boost-1.37.0-r1.ebuild +++ /dev/null @@ -1,428 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.37.0-r1.ebuild,v 1.17 2011/04/05 05:23:28 ulm Exp $ - -EAPI="2" - -inherit python flag-o-matic multilib toolchain-funcs versionator check-reqs - -KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" - -MY_P=${PN}_$(replace_all_version_separators _) -PATCHSET_VERSION="${PV}-1" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="http://www.boost.org/" -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2 - mirror://gentoo/boost-patches-${PATCHSET_VERSION}.tbz2 - http://www.gentoo.org/~dev-zero/distfiles/boost-patches-${PATCHSET_VERSION}.tbz2" -LICENSE="Boost-1.0" -SLOT="1.37" -IUSE="debug doc +eselect expat icu mpi python test tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - expat? ( dev-libs/expat ) - mpi? ( sys-cluster/openmpi[cxx] ) - sys-libs/zlib - python? ( dev-lang/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} - -# Maintainer Information -# ToDo: -# - write a patch to support /dev/urandom on FreeBSD and OSX (see below) - -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() { - 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_SOURCE="${WORKDIR}/patches" - EPATCH_SUFFIX="patch" - epatch - - epatch \ - "${FILESDIR}/remove_toolset_from_targetname.patch" \ - "${FILESDIR}/buildid-fix.patch" \ - "${FILESDIR}"/${P}-darwin-long-double.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 - - # Huge number of strict-aliasing warnings cause a build failure w/ >= GCC 4.4 bug #252287 - [[ $(gcc-version) > 4.3 ]] && append-flags -Wno-strict-aliasing - - use mpi && mpi="using mpi ;" - - if use python ; then - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 expat && OPTIONS="${OPTIONS} -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/$(get_libdir)" - use mpi || OPTIONS="${OPTIONS} --without-mpi" - use python || OPTIONS="${OPTIONS} --without-python" - - OPTIONS="${OPTIONS} --user-config=\"${S}/user-config.jam\" --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=\"${D}/usr\" --layout=versioned" - -} - -src_compile() { - - NUMJOBS=$(sed -e 's/.*\(\-j[ 0-9]\+\) .*/\1/; s/--jobs=\?/-j/' <<< ${MAKEOPTS}) - - einfo "Using the following options to build: " - einfo " ${OPTIONS}" - - export BOOST_ROOT="${S}" - - ${BJAM} ${NUMJOBS} -q \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - || die "building boost failed" - - # ... and do the whole thing one more time to get the debug libs - if use debug ; then - ${BJAM} ${NUMJOBS} -q \ - gentoodebug \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - --buildid=debug \ - || die "building boost failed" - fi - - if use tools; then - cd "${S}/tools/" - ${BJAM} ${NUMJOBS} -q \ - gentoorelease \ - ${OPTIONS} \ - || die "building tools failed" - fi - -} - -src_install () { - einfo "Using the following options to install: " - einfo " ${OPTIONS}" - - export BOOST_ROOT="${S}" - - ${BJAM} -q \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - --includedir="${D}/usr/include" \ - --libdir="${D}/usr/$(get_libdir)" \ - install || die "install failed for options '${OPTIONS}'" - - if use debug ; then - ${BJAM} -q \ - gentoodebug \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared,static \ - --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* - - dodir /usr/share/boost-eselect/profiles/${SLOT} - touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" - use debug && touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" - - # Move the mpi.so to the right place and make sure it's slotted - if use mpi && use python; then - mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" - _add_line "python=\"$(python_get_sitedir)/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 - dohtml \ - -A pdf,txt \ - -r tools - insinto /usr/share/doc/${PF}/html - doins -r libs - - # 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 - - cd "${D}/usr/$(get_libdir)" - - # 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 *{.a,$(get_libname)} | 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}" - done - - # The threading libs obviously always gets the "-mt" (multithreading) tag - # some packages seem to have a problem with it. Creating symlinks... - for lib in libboost_thread-mt-${MAJOR_PV}{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - # The same goes for the mpi libs - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - fi - - if use debug ; then - for lib in libboost_thread-mt-${MAJOR_PV}-debug{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}-debug{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - 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} - - _add_line "libs=\"" default - for f in $(ls -1 *{.a,$(get_libname)} | grep -v debug) ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} - _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 - for f in $(ls -1 *{.a,$(get_libname)} | grep debug) ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}-debug/${f/-${MAJOR_PV}-debug} - _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" - # Append version postfix to binaries for slotting - _add_line "bins=\"" - for b in * ; do - newbin "${b}" "${b}-${MAJOR_PV}" - _add_line "/usr/bin/${b}-${MAJOR_PV}" - done - _add_line "\"" - - cd "${S}/dist" - insinto /usr/share - doins -r share/boostbook - # Append version postfix for slotting - mv "${D}/usr/share/boostbook" "${D}/usr/share/boostbook-${MAJOR_PV}" - _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" - fi - - cd "${S}/status" - if [ -f regress.log ] ; then - docinto status - dohtml *.{html,gif} ../boost.png - dodoc regress.log - 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" - ${BJAM} -q \ - gentoorelease \ - ${OPTIONS} \ - process_jam_log compiler_status \ - || die "building regression test helpers failed" - - cd "${S}/status" - - # 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 - ${BJAM} \ - ${OPTIONS} \ - --dump-tests 2>&1 | tee regress.log - - # Postprocessing - cat regress.log | "${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/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/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 -} - -pkg_postinst() { - use eselect && eselect boost update - if [ ! -h "${ROOT}/etc/eselect/boost/active" ] ; then - elog "No active boost version found. Calling eselect to select one..." - eselect boost update - fi -} diff --git a/dev-libs/boost/boost-1.39.0.ebuild b/dev-libs/boost/boost-1.39.0.ebuild deleted file mode 100644 index aef488d03a45..000000000000 --- a/dev-libs/boost/boost-1.39.0.ebuild +++ /dev/null @@ -1,422 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.39.0.ebuild,v 1.11 2011/04/05 05:23:28 ulm Exp $ - -EAPI="2" - -inherit python flag-o-matic multilib toolchain-funcs versionator check-reqs - -KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86" - -MY_P=${PN}_$(replace_all_version_separators _) -PATCHSET_VERSION="${PV}-1" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="http://www.boost.org/" -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2 - mirror://gentoo/boost-patches-${PATCHSET_VERSION}.tbz2 - http://www.gentoo.org/~dev-zero/distfiles/boost-patches-${PATCHSET_VERSION}.tbz2" -LICENSE="Boost-1.0" -SLOT="$(get_version_component_range 1-2)" -IUSE="debug doc +eselect expat icu mpi python test tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - expat? ( dev-libs/expat ) - mpi? ( sys-cluster/openmpi[cxx] ) - sys-libs/zlib - python? ( dev-lang/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() { - 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_SOURCE="${WORKDIR}/patches" - EPATCH_SUFFIX="patch" - epatch - - epatch \ - "${FILESDIR}/remove_toolset_from_targetname.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 - - # Huge number of strict-aliasing warnings cause a build failure w/ >= GCC 4.4 bug #252287 - [[ $(gcc-version) > 4.3 ]] && append-flags -Wno-strict-aliasing - - use mpi && mpi="using mpi ;" - - if use python ; then - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 expat && OPTIONS="${OPTIONS} -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/$(get_libdir)" - use mpi || OPTIONS="${OPTIONS} --without-mpi" - use python || OPTIONS="${OPTIONS} --without-python" - - OPTIONS="${OPTIONS} --user-config=\"${S}/user-config.jam\" --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=\"${D}/usr\" --layout=versioned" - -} - -src_compile() { - - NUMJOBS=$(sed -e 's/.*\(\-j[ 0-9]\+\) .*/\1/; s/--jobs=\?/-j/' <<< ${MAKEOPTS}) - - einfo "Using the following options to build: " - einfo " ${OPTIONS}" - - export BOOST_ROOT="${S}" - - ${BJAM} ${NUMJOBS} -q \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared \ - || die "building boost failed" - - # ... and do the whole thing one more time to get the debug libs - if use debug ; then - ${BJAM} ${NUMJOBS} -q \ - gentoodebug \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared \ - --buildid=debug \ - || die "building boost failed" - fi - - if use tools; then - cd "${S}/tools/" - ${BJAM} ${NUMJOBS} -q \ - gentoorelease \ - ${OPTIONS} \ - || die "building tools failed" - fi - -} - -src_install () { - einfo "Using the following options to install: " - einfo " ${OPTIONS}" - - export BOOST_ROOT="${S}" - - ${BJAM} -q \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static runtime-link=shared \ - --includedir="${D}/usr/include" \ - --libdir="${D}/usr/$(get_libdir)" \ - install || die "install failed for options '${OPTIONS}'" - - if use debug ; then - ${BJAM} -q \ - gentoodebug \ - ${OPTIONS} \ - threading=single,multi link=shared,static 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* - - dodir /usr/share/boost-eselect/profiles/${SLOT} - touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" - use debug && touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" - - # Move the mpi.so to the right place and make sure it's slotted - if use mpi && use python; then - mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" - _add_line "python=\"$(python_get_sitedir)/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 - dohtml \ - -A pdf,txt \ - -r tools - insinto /usr/share/doc/${PF}/html - doins -r libs - - # 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 - - cd "${D}/usr/$(get_libdir)" - - # 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 *{.a,$(get_libname)} | 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}" - done - - # The threading libs obviously always gets the "-mt" (multithreading) tag - # some packages seem to have a problem with it. Creating symlinks... - for lib in libboost_thread-mt-${MAJOR_PV}{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - # The same goes for the mpi libs - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - fi - - if use debug ; then - for lib in libboost_thread-mt-${MAJOR_PV}-debug{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}-debug{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - 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} - - _add_line "libs=\"" default - for f in $(ls -1 *{.a,$(get_libname)} | grep -v debug) ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} - _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 - for f in $(ls -1 *{.a,$(get_libname)} | grep debug) ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}-debug/${f/-${MAJOR_PV}-debug} - _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" - # Append version postfix to binaries for slotting - _add_line "bins=\"" - for b in * ; do - newbin "${b}" "${b}-${MAJOR_PV}" - _add_line "/usr/bin/${b}-${MAJOR_PV}" - done - _add_line "\"" - - cd "${S}/dist" - insinto /usr/share - doins -r share/boostbook - # Append version postfix for slotting - mv "${D}/usr/share/boostbook" "${D}/usr/share/boostbook-${MAJOR_PV}" - _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" - fi - - cd "${S}/status" - if [ -f regress.log ] ; then - docinto status - dohtml *.{html,gif} ../boost.png - dodoc regress.log - 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" - ${BJAM} -q \ - gentoorelease \ - ${OPTIONS} \ - process_jam_log compiler_status \ - || die "building regression test helpers failed" - - cd "${S}/status" - - # 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 - ${BJAM} \ - ${OPTIONS} \ - --dump-tests 2>&1 | tee regress.log - - # Postprocessing - cat regress.log | "${S}/tools/regression/build/bin/gcc-$(gcc-version)/gentoorelease/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/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 -} - -pkg_postinst() { - use eselect && eselect boost update - if [ ! -h "${ROOT}/etc/eselect/boost/active" ] ; then - elog "No active boost version found. Calling eselect to select one..." - eselect boost update - fi -} diff --git a/dev-libs/boost/boost-1.41.0-r3.ebuild b/dev-libs/boost/boost-1.41.0-r3.ebuild deleted file mode 100644 index 9935dc930aff..000000000000 --- a/dev-libs/boost/boost-1.41.0-r3.ebuild +++ /dev/null @@ -1,473 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.41.0-r3.ebuild,v 1.14 2011/07/15 16:27:59 mattst88 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 expat icu mpi python test tools" - -KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - expat? ( dev-libs/expat ) - mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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 - if [[ "$(python_get_version --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" - - # http://thread.gmane.org/gmane.comp.lib.boost.devel/196471 - epatch "${FILESDIR}/boost-${PV}-mpi_process_group-missing-include.patch" - - # https://svn.boost.org/trac/boost/ticket/3010 - epatch "${FILESDIR}/boost-${PV}-iostreams-missing-include-guard.patch" - - # bug 297163 - # https://svn.boost.org/trac/boost/ticket/3352 - epatch "${FILESDIR}/boost-${PV}-fix-CRC-on-x64-during-gzip-decompression.patch" - - # bug 297500 - # https://svn.boost.org/trac/boost/ticket/3724 - epatch "${FILESDIR}/boost-${PV}-spirit-fixed-include-guard-conflict.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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 expat && OPTIONS="${OPTIONS} -sEXPAT_INCLUDE=/usr/include -sEXPAT_LIBPATH=/usr/$(get_libdir)" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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" - -} - -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=shared,static runtime-link=shared" - - ${BJAM} ${NUMJOBS} -q -d+2 \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static 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=shared,static runtime-link=shared --buildid=debug" - - ${BJAM} ${NUMJOBS} -q -d+2 \ - gentoodebug \ - ${OPTIONS} \ - threading=single,multi link=shared,static 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=shared,static runtime-link=shared --includedir=\"${D}/usr/include\" --libdir=\"${D}/usr/$(get_libdir)\" install" - - ${BJAM} -q -d+2 \ - gentoorelease \ - ${OPTIONS} \ - threading=single,multi link=shared,static 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=shared,static runtime-link=shared --includedir=\"${D}/usr/include\" --libdir=\"${D}/usr/$(get_libdir)\" --buildid=debug" - - ${BJAM} -q -d+2 \ - gentoodebug \ - ${OPTIONS} \ - threading=single,multi link=shared,static 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* - - dodir /usr/share/boost-eselect/profiles/${SLOT} - touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/default" - use debug && touch "${D}/usr/share/boost-eselect/profiles/${SLOT}/debug" - - # Move the mpi.so to the right place and make sure it's slotted - if use mpi && use python; then - mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" - _add_line "python=\"$(python_get_sitedir)/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 - dohtml \ - -A pdf,txt \ - -r tools - insinto /usr/share/doc/${PF}/html - doins -r libs - - # 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 - - cd "${D}/usr/$(get_libdir)" - - # 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 *{.a,$(get_libname)} | 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}" - done - - # The threading libs obviously always gets the "-mt" (multithreading) tag - # some packages seem to have a problem with it. Creating symlinks... - for lib in libboost_thread-mt-${MAJOR_PV}{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - # The same goes for the mpi libs - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - fi - - if use debug ; then - for lib in libboost_thread-mt-${MAJOR_PV}-debug{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - done - - if use mpi ; then - for lib in libboost_mpi-mt-${MAJOR_PV}-debug{.a,$(get_libname)} ; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" - 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} - - _add_line "libs=\"" default - for f in $(ls -1 *{.a,$(get_libname)} | grep -v debug) ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} - _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 - for f in $(ls -1 *{.a,$(get_libname)} | grep debug) ; do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}-debug/${f/-${MAJOR_PV}-debug} - _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" - # Append version postfix to binaries for slotting - _add_line "bins=\"" - for b in * ; do - newbin "${b}" "${b}-${MAJOR_PV}" - _add_line "/usr/bin/${b}-${MAJOR_PV}" - done - _add_line "\"" - - cd "${S}/dist" - insinto /usr/share - doins -r share/boostbook - # Append version postfix for slotting - mv "${D}/usr/share/boostbook" "${D}/usr/share/boostbook-${MAJOR_PV}" - _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" - fi - - cd "${S}/status" - if [ -f regress.log ] ; then - docinto status - dohtml *.html ../boost.png - dodoc regress.log - 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" - 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" - - # 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 - - # 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 -} - -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 - fi -} diff --git a/dev-libs/boost/boost-1.42.0-r1.ebuild b/dev-libs/boost/boost-1.42.0-r1.ebuild deleted file mode 100644 index 558448362894..000000000000 --- a/dev-libs/boost/boost-1.42.0-r1.ebuild +++ /dev/null @@ -1,491 +0,0 @@ -# Copyright 1999-2011 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-r1.ebuild,v 1.4 2011/07/15 16:27:59 mattst88 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[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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 - if [[ "$(python_get_version --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" - epatch "${FILESDIR}"/${P}-template_arity-gcc45.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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die - _add_line "python=\"$(python_get_sitedir)/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/boost-1.42.0-r2.ebuild b/dev-libs/boost/boost-1.42.0-r2.ebuild deleted file mode 100644 index 0603f5a2d399..000000000000 --- a/dev-libs/boost/boost-1.42.0-r2.ebuild +++ /dev/null @@ -1,492 +0,0 @@ -# Copyright 1999-2011 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-r2.ebuild,v 1.12 2011/07/15 16:27:59 mattst88 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[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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 - if [[ "$(python_get_version --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" - epatch "${FILESDIR}"/${P}-template_arity-gcc45.patch - epatch "${FILESDIR}"/${P}-gcc45-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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die - _add_line "python=\"$(python_get_sitedir)/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/boost-1.42.0.ebuild b/dev-libs/boost/boost-1.42.0.ebuild deleted file mode 100644 index aa9035aabb51..000000000000 --- a/dev-libs/boost/boost-1.42.0.ebuild +++ /dev/null @@ -1,490 +0,0 @@ -# Copyright 1999-2011 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.6 2011/07/15 16:27:59 mattst88 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[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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 - if [[ "$(python_get_version --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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die - _add_line "python=\"$(python_get_sitedir)/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/boost-1.45.0.ebuild b/dev-libs/boost/boost-1.45.0.ebuild deleted file mode 100644 index 1d4a79bddefa..000000000000 --- a/dev-libs/boost/boost-1.45.0.ebuild +++ /dev/null @@ -1,486 +0,0 @@ -# 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.45.0.ebuild,v 1.8 2012/01/08 11:42:28 hwoarang 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[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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 - if [[ "$(python_get_version --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="15G" - 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" - epatch "${FILESDIR}/${P}-lambda_bind.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-${PV}" libs/random/build/Jamfile.v2 - 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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die - _add_line "python=\"$(python_get_sitedir)/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 || 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/boost-1.46.1-r1.ebuild b/dev-libs/boost/boost-1.46.1-r1.ebuild index 985602f9a284..8a0fbac1f867 100644 --- a/dev-libs/boost/boost-1.46.1-r1.ebuild +++ b/dev-libs/boost/boost-1.46.1-r1.ebuild @@ -1,6 +1,6 @@ # 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.46.1-r1.ebuild,v 1.7 2012/01/08 11:42:28 hwoarang Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.46.1-r1.ebuild,v 1.8 2012/10/31 16:32:25 flameeyes Exp $ EAPI="2" @@ -12,7 +12,8 @@ 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)" +SLOT=0 +MAJOR_V="$(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" @@ -24,11 +25,11 @@ RDEPEND="icu? ( >=dev-libs/icu-3.3 ) !!<=dev-libs/boost-1.35.0-r2 >=app-admin/eselect-boost-0.3" DEPEND="${RDEPEND} - dev-util/boost-build:${SLOT}" + =dev-util/boost-build-${MAJOR_V}*" S=${WORKDIR}/${MY_P} -MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) +MAJOR_PV=$(replace_all_version_separators _ ${MAJOR_V}) BJAM="bjam-${MAJOR_PV}" # Usage: diff --git a/dev-libs/boost/boost-1.47.0-r1.ebuild b/dev-libs/boost/boost-1.47.0-r1.ebuild deleted file mode 100644 index a22644a52cce..000000000000 --- a/dev-libs/boost/boost-1.47.0-r1.ebuild +++ /dev/null @@ -1,487 +0,0 @@ -# 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.47.0-r1.ebuild,v 1.2 2012/01/08 11:42:28 hwoarang 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[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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="b2-${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 - if [[ "$(python_get_version --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="15G" - 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" - epatch "${FILESDIR}/${P}-exceptions.patch" - # This enables building the boost.random library with /dev/urandom support - if [[ -e /dev/urandom ]] ; then - mkdir -p libs/random/build || die - cp "${FILESDIR}/random-Jamfile-${PV}" libs/random/build/Jamfile.v2 || 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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 icu || OPTIONS="--disable-icu" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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 and libboost_exception - LIBRARY_TARGETS="libboost_test_exec_monitor*.a libboost_exception*.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}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die - _add_line "python=\"$(python_get_sitedir)/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 || die - dohtml \ - -A pdf,txt \ - -r tools || die - insinto /usr/share/doc/${PF}/html - doins -r libs || die - doins -r more || 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/boost-1.47.0.ebuild b/dev-libs/boost/boost-1.47.0.ebuild deleted file mode 100644 index 5f2eebf9fc68..000000000000 --- a/dev-libs/boost/boost-1.47.0.ebuild +++ /dev/null @@ -1,487 +0,0 @@ -# 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.47.0.ebuild,v 1.3 2012/01/08 11:42:28 hwoarang 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[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - python? ( dev-lang/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="b2-${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 - if [[ "$(python_get_version --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="15G" - 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" - epatch "${FILESDIR}/${P}-exceptions.patch" - # This enables building the boost.random library with /dev/urandom support - if [[ -e /dev/urandom ]] ; then - mkdir -p libs/random/build || die - cp "${FILESDIR}/random-Jamfile-${PV}" libs/random/build/Jamfile.v2 || 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 - pystring="using python : $(python_get_version) : /usr : $(python_get_includedir) : $(python_get_libdir) ;" - 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 icu || OPTIONS="--disable-icu" - 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 && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; 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 and libboost_exception - LIBRARY_TARGETS="libboost_test_exec_monitor*.a libboost_exception*.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}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}/usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/" || die - touch "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die - _add_line "python=\"$(python_get_sitedir)/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 || die - dohtml \ - -A pdf,txt \ - -r tools || die - insinto /usr/share/doc/${PF}/html - doins -r libs || die - doins -r more || 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/boost-1.48.0-r2.ebuild b/dev-libs/boost/boost-1.48.0-r2.ebuild deleted file mode 100644 index ec7b5b1ac471..000000000000 --- a/dev-libs/boost/boost-1.48.0-r2.ebuild +++ /dev/null @@ -1,615 +0,0 @@ -# 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.48.0-r2.ebuild,v 1.10 2012/10/30 23:11:53 floppym Exp $ - -EAPI="4" -PYTHON_DEPEND="python? *" -SUPPORT_PYTHON_ABIS="1" -RESTRICT_PYTHON_ABIS="*-jython *-pypy-*" - -inherit check-reqs flag-o-matic multilib python toolchain-funcs versionator - -MY_P=${PN}_$(replace_all_version_separators _) - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="http://www.boost.org/" -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2" - -LICENSE="Boost-1.0" -SLOT="$(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 +eselect icu mpi python static-libs test tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - !!<=dev-libs/boost-1.35.0-r2 - >=app-admin/eselect-boost-0.4" -DEPEND="${RDEPEND} - >=dev-util/boost-build-1.48.0-r1:${SLOT}" - -S=${WORKDIR}/${MY_P} - -MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) -BJAM="b2-${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" - if use debug; then - echo "${1}" >> "${D}usr/share/boost-eselect/profiles/${SLOT}/debug" - fi - else - echo "${1}" >> "${D}usr/share/boost-eselect/profiles/${SLOT}/${2}" - fi -} - -create_user-config.jam() { - local compiler compiler_version compiler_executable - - if [[ ${CHOST} == *-darwin* ]]; then - compiler="darwin" - compiler_version="$(gcc-fullversion)" - compiler_executable="$(tc-getCXX)" - else - compiler="gcc" - compiler_version="$(gcc-version)" - compiler_executable="$(tc-getCXX)" - fi - local mpi_configuration python_configuration - - if use mpi; then - mpi_configuration="using mpi ;" - fi - - if use python; then - python_configuration="using python : $(python_get_version) : /usr : $(python_get_includedir) : /usr/$(get_libdir) ;" - fi - - # The debug-symbols=none and optimization=none are not official upstream flags but a Gentoo - # specific patch to make sure that all our CFLAGS/CXXFLAGS/LDFLAGS are being respected. - # Using optimization=off would for example add "-O0" and override "-O2" set by the user. - # Please take a look at the boost-build ebuild for more information. - cat > user-config.jam << __EOF__ -variant gentoorelease : release : <optimization>none <debug-symbols>none ; -variant gentoodebug : debug : <optimization>none ; - -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ; -${mpi_configuration} -${python_configuration} -__EOF__ -} - -pkg_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. 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}/${P}-BOOST_FOREACH.patch" - epatch "${FILESDIR}/${P}-mpi_python3.patch" - epatch "${FILESDIR}/${P}-respect_python-buildid.patch" - epatch "${FILESDIR}/${P}-support_dots_in_python-buildid.patch" - epatch "${FILESDIR}/${P}-no_strict_aliasing_python2.patch" - epatch "${FILESDIR}/${P}-disable_libboost_python3.patch" - epatch "${FILESDIR}/${P}-python_linking.patch" - epatch "${FILESDIR}/${P}-disable_icu_rpath.patch" - epatch "${FILESDIR}/remove-toolset-${PV}.patch" - epatch "${FILESDIR}/${P}-gcc47.patch" -} - -src_configure() { - OPTIONS="" - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - fi - - # bug 298489 - if use ppc || use ppc64; then - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec - fi - - use icu && OPTIONS+=" -sICU_PATH=/usr" - use icu || OPTIONS+=" --disable-icu boost.locale.icu=off" - use mpi || OPTIONS+=" --without-mpi" - use python || OPTIONS+=" --without-python" - - # https://svn.boost.org/trac/boost/attachment/ticket/2597/add-disable-long-double.patch - if use sparc || { use mips && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; then - OPTIONS+=" --disable-long-double" - fi - - OPTIONS+=" pch=off --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=\"${D}usr\" --layout=versioned" - - if use static-libs; then - LINK_OPTS="link=shared,static" - LIBRARY_TARGETS="*.a *$(get_libname)" - else - LINK_OPTS="link=shared" - # There is no dynamically linked version of libboost_test_exec_monitor and libboost_exception. - LIBRARY_TARGETS="libboost_test_exec_monitor*.a libboost_exception*.a *$(get_libname)" - fi -} - -src_compile() { - local jobs - jobs=$( echo " ${MAKEOPTS} " | \ - sed -e 's/ --jobs[= ]/ -j /g' \ - -e 's/ -j \([1-9][0-9]*\)/ -j\1/g' \ - -e 's/ -j\>/ -j1/g' | \ - ( while read -d ' ' j; do if [[ "${j#-j}" = "$j" ]]; then continue; fi; jobs="${j#-j}"; done; echo ${jobs} ) ) - if [[ "${jobs}" != "" ]]; then NUMJOBS="-j"${jobs}; fi - - export BOOST_ROOT="${S}" - PYTHON_DIRS="" - MPI_PYTHON_MODULE="" - - building() { - create_user-config.jam - - einfo "Using the following command to build:" - einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared $(use python && echo --python-buildid=${PYTHON_ABI})" - - ${BJAM} ${NUMJOBS} -q -d+2 \ - gentoorelease \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - || die "Building of Boost libraries failed" - - # ... and do the whole thing one more time to get the debug libs - if use debug; then - einfo "Using the following command to build:" - einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoodebug --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --buildid=debug $(use python && echo --python-buildid=${PYTHON_ABI})" - - ${BJAM} ${NUMJOBS} -q -d+2 \ - gentoodebug \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - --buildid=debug \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - || die "Building of Boost debug libraries failed" - fi - - if use python; then - if [[ -z "${PYTHON_DIRS}" ]]; then - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)" - else - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - local dir - for dir in ${PYTHON_DIRS}; do - mv ${dir} ${dir}-${PYTHON_ABI} || die "Renaming of '${dir}' to '${dir}-${PYTHON_ABI}' failed" - done - - if use mpi; then - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoorelease -name mpi.so)" - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then - die "Multiple mpi.so files found" - fi - else - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoorelease -name mpi.so)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - mv stage/lib/mpi.so stage/lib/mpi.so-${PYTHON_ABI} || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${PYTHON_ABI}' failed" - fi - fi - } - if use python; then - python_execute_function building - else - building - fi - - if use tools; then - pushd tools > /dev/null || die - einfo "Using the following command to build the tools:" - einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease --user-config=../user-config.jam ${OPTIONS}" - - ${BJAM} ${NUMJOBS} -q -d+2\ - gentoorelease \ - --user-config=../user-config.jam \ - ${OPTIONS} \ - || die "Building of Boost tools failed" - popd > /dev/null || die - fi -} - -src_install () { - dodir /usr/share/boost-eselect/profiles/${SLOT} - 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 - - if use mpi && use python; then - _add_line "python_modules=\"" - fi - - installation() { - create_user-config.jam - - if use python; then - local dir - for dir in ${PYTHON_DIRS}; do - cp -pr ${dir}-${PYTHON_ABI} ${dir} || die "Copying of '${dir}-${PYTHON_ABI}' to '${dir}' failed" - done - - if use mpi; then - cp -p stage/lib/mpi.so-${PYTHON_ABI} "${MPI_PYTHON_MODULE}" || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to '${MPI_PYTHON_MODULE}' failed" - cp -p stage/lib/mpi.so-${PYTHON_ABI} stage/lib/mpi.so || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to 'stage/lib/mpi.so' failed" - fi - fi - - einfo "Using the following command to install:" - einfo "${BJAM} -q -d+2 gentoorelease --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}usr/include\" --libdir=\"${D}usr/$(get_libdir)\" $(use python && echo --python-buildid=${PYTHON_ABI}) install" - - ${BJAM} -q -d+2 \ - gentoorelease \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - --includedir="${D}usr/include" \ - --libdir="${D}usr/$(get_libdir)" \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - install || die "Installation of Boost libraries failed" - - if use debug; then - einfo "Using the following command to install:" - einfo "${BJAM} -q -d+2 gentoodebug --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}usr/include\" --libdir=\"${D}usr/$(get_libdir)\" --buildid=debug $(use python && echo --python-buildid=${PYTHON_ABI})" - - ${BJAM} -q -d+2 \ - gentoodebug \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - --includedir="${D}usr/include" \ - --libdir="${D}usr/$(get_libdir)" \ - --buildid=debug \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - install || die "Installation of Boost debug libraries failed" - fi - - if use python; then - rm -r ${PYTHON_DIRS} || die - - # Move mpi.so Python module to Python site-packages directory and make sure it is slotted. - if use mpi; then - mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - cat << EOF > "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die -import sys -if sys.platform.startswith('linux'): - import DLFCN - flags = sys.getdlopenflags() - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL) - from . import mpi - sys.setdlopenflags(flags) - del DLFCN, flags -else: - from . import mpi -del sys -EOF - _add_line "$(python_get_sitedir)/mpi.py:boost_${MAJOR_PV}.mpi" - fi - fi - } - if use python; then - python_execute_function installation - else - installation - fi - - if use mpi && use python; then - _add_line "\"" - 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 - # and store the names in the profiles-file for eselect - dodir /usr/$(get_libdir)/boost-${MAJOR_PV} - - _add_line "libs=\"" default - local f - for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug); do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} - _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 - 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} - _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 - - popd > /dev/null || die - - if use tools; then - pushd dist/bin > /dev/null || die - # Append version postfix to binaries for slotting - _add_line "bins=\"" - local b - for b in *; do - newbin "${b}" "${b}-${MAJOR_PV}" - _add_line "/usr/bin/${b}-${MAJOR_PV}" - done - _add_line "\"" - 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 - _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" - 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() { - 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/boost-1.49.0-r1.ebuild b/dev-libs/boost/boost-1.49.0-r1.ebuild index 4e868193b698..3fe06f356b03 100644 --- a/dev-libs/boost/boost-1.49.0-r1.ebuild +++ b/dev-libs/boost/boost-1.49.0-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.49.0-r1.ebuild,v 1.10 2012/10/30 23:11:53 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.49.0-r1.ebuild,v 1.11 2012/10/31 16:32:25 flameeyes Exp $ EAPI="4" PYTHON_DEPEND="python? *" @@ -16,7 +16,8 @@ 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)" +SLOT=0 +MAJOR_V="$(get_version_component_range 1-2)" KEYWORDS="~alpha amd64 arm hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~x86-fbsd" IUSE="debug doc +eselect icu mpi python static-libs test tools" @@ -26,11 +27,11 @@ RDEPEND="icu? ( >=dev-libs/icu-3.3 ) !!<=dev-libs/boost-1.35.0-r2 >=app-admin/eselect-boost-0.4" DEPEND="${RDEPEND} - dev-util/boost-build:${SLOT}" + =dev-util/boost-build-${MAJOR_V}*" S=${WORKDIR}/${MY_P} -MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) +MAJOR_PV=$(replace_all_version_separators _ ${MAJOR_V}) BJAM="b2-${MAJOR_PV}" # Usage: diff --git a/dev-libs/boost/boost-1.50.0-r2.ebuild b/dev-libs/boost/boost-1.50.0-r2.ebuild deleted file mode 100644 index 08f9d682e0da..000000000000 --- a/dev-libs/boost/boost-1.50.0-r2.ebuild +++ /dev/null @@ -1,595 +0,0 @@ -# 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.50.0-r2.ebuild,v 1.4 2012/10/30 23:11:53 floppym Exp $ - -EAPI="4" -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-1.50.0-r2:${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.48.0-respect_python-buildid.patch" \ - "${FILESDIR}/${PN}-1.48.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 mpi_debug.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 older versions of Boost. - 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 -} diff --git a/dev-libs/boost/boost-1.50.0.ebuild b/dev-libs/boost/boost-1.50.0.ebuild deleted file mode 100644 index de9704e56afc..000000000000 --- a/dev-libs/boost/boost-1.50.0.ebuild +++ /dev/null @@ -1,613 +0,0 @@ -# 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.50.0.ebuild,v 1.1 2012/07/07 18:56:41 floppym Exp $ - -EAPI="4" -PYTHON_DEPEND="python? *" -SUPPORT_PYTHON_ABIS="1" -RESTRICT_PYTHON_ABIS="*-jython *-pypy-*" - -inherit check-reqs flag-o-matic multilib python toolchain-funcs versionator - -MY_P=${PN}_$(replace_all_version_separators _) - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="http://www.boost.org/" -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2" - -LICENSE="Boost-1.0" -SLOT="$(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 +eselect icu mpi python static-libs test tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.3 ) - mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) ) - sys-libs/zlib - !!<=dev-libs/boost-1.35.0-r2 - >=app-admin/eselect-boost-0.4" -DEPEND="${RDEPEND} - dev-util/boost-build:${SLOT}" - -S=${WORKDIR}/${MY_P} - -MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) -BJAM="b2-${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" - if use debug; then - echo "${1}" >> "${D}usr/share/boost-eselect/profiles/${SLOT}/debug" - fi - else - echo "${1}" >> "${D}usr/share/boost-eselect/profiles/${SLOT}/${2}" - fi -} - -create_user-config.jam() { - local compiler compiler_version compiler_executable - - if [[ ${CHOST} == *-darwin* ]]; then - compiler="darwin" - compiler_version="$(gcc-fullversion)" - compiler_executable="$(tc-getCXX)" - else - compiler="gcc" - compiler_version="$(gcc-version)" - compiler_executable="$(tc-getCXX)" - fi - local mpi_configuration python_configuration - - if use mpi; then - mpi_configuration="using mpi ;" - fi - - if use python; then - python_configuration="using python : $(python_get_version) : /usr : $(python_get_includedir) : /usr/$(get_libdir) ;" - fi - - # The debug-symbols=none and optimization=none are not official upstream flags but a Gentoo - # specific patch to make sure that all our CFLAGS/CXXFLAGS/LDFLAGS are being respected. - # Using optimization=off would for example add "-O0" and override "-O2" set by the user. - # Please take a look at the boost-build ebuild for more information. - cat > user-config.jam << __EOF__ -variant gentoorelease : release : <optimization>none <debug-symbols>none ; -variant gentoodebug : debug : <optimization>none ; - -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ; -${mpi_configuration} -${python_configuration} -__EOF__ -} - -pkg_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. 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}/${PN}-1.48.0-mpi_python3.patch" - epatch "${FILESDIR}/${PN}-1.48.0-respect_python-buildid.patch" - epatch "${FILESDIR}/${PN}-1.48.0-support_dots_in_python-buildid.patch" - epatch "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" - epatch "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" - epatch "${FILESDIR}/${PN}-1.48.0-python_linking.patch" - epatch "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" - epatch "${FILESDIR}/remove-toolset-1.48.0.patch" -} - -src_configure() { - OPTIONS="" - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - fi - - # bug 298489 - if use ppc || use ppc64; then - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec - fi - - use icu && OPTIONS+=" -sICU_PATH=/usr" - use icu || OPTIONS+=" --disable-icu boost.locale.icu=off" - use mpi || OPTIONS+=" --without-mpi" - use python || OPTIONS+=" --without-python" - - # https://svn.boost.org/trac/boost/attachment/ticket/2597/add-disable-long-double.patch - if use sparc || { use mips && [[ ${ABI} = "o32" ]]; } || use hppa || use arm || use x86-fbsd || use sh; then - OPTIONS+=" --disable-long-double" - fi - - OPTIONS+=" pch=off --boost-build=/usr/share/boost-build-${MAJOR_PV} --prefix=\"${D}usr\" --layout=versioned" - - if use static-libs; then - LINK_OPTS="link=shared,static" - LIBRARY_TARGETS="*.a *$(get_libname)" - else - LINK_OPTS="link=shared" - # There is no dynamically linked version of libboost_test_exec_monitor and libboost_exception. - LIBRARY_TARGETS="libboost_test_exec_monitor*.a libboost_exception*.a *$(get_libname)" - fi -} - -src_compile() { - local jobs - jobs=$( echo " ${MAKEOPTS} " | \ - sed -e 's/ --jobs[= ]/ -j /g' \ - -e 's/ -j \([1-9][0-9]*\)/ -j\1/g' \ - -e 's/ -j\>/ -j1/g' | \ - ( while read -d ' ' j; do if [[ "${j#-j}" = "$j" ]]; then continue; fi; jobs="${j#-j}"; done; echo ${jobs} ) ) - if [[ "${jobs}" != "" ]]; then NUMJOBS="-j"${jobs}; fi - - export BOOST_ROOT="${S}" - PYTHON_DIRS="" - MPI_PYTHON_MODULE="" - - building() { - create_user-config.jam - - einfo "Using the following command to build:" - einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared $(use python && echo --python-buildid=${PYTHON_ABI})" - - ${BJAM} ${NUMJOBS} -q -d+2 \ - gentoorelease \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - || die "Building of Boost libraries failed" - - # ... and do the whole thing one more time to get the debug libs - if use debug; then - einfo "Using the following command to build:" - einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoodebug --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --buildid=debug $(use python && echo --python-buildid=${PYTHON_ABI})" - - ${BJAM} ${NUMJOBS} -q -d+2 \ - gentoodebug \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - --buildid=debug \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - || die "Building of Boost debug libraries failed" - fi - - if use python; then - if [[ -z "${PYTHON_DIRS}" ]]; then - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)" - else - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - local dir - for dir in ${PYTHON_DIRS}; do - mv ${dir} ${dir}-${PYTHON_ABI} || die "Renaming of '${dir}' to '${dir}-${PYTHON_ABI}' failed" - done - - if use mpi; then - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoorelease -name mpi.so)" - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then - die "Multiple mpi.so files found" - fi - else - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoorelease -name mpi.so)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - mv stage/lib/mpi.so stage/lib/mpi.so-${PYTHON_ABI} || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${PYTHON_ABI}' failed" - fi - fi - } - if use python; then - python_execute_function building - else - building - fi - - if use tools; then - pushd tools > /dev/null || die - einfo "Using the following command to build the tools:" - einfo "${BJAM} ${NUMJOBS} -q -d+2 gentoorelease --user-config=../user-config.jam ${OPTIONS}" - - ${BJAM} ${NUMJOBS} -q -d+2\ - gentoorelease \ - --user-config=../user-config.jam \ - ${OPTIONS} \ - || die "Building of Boost tools failed" - popd > /dev/null || die - fi -} - -src_install () { - dodir /usr/share/boost-eselect/profiles/${SLOT} - 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 - - if use mpi && use python; then - _add_line "python_modules=\"" - fi - - installation() { - create_user-config.jam - - if use python; then - local dir - for dir in ${PYTHON_DIRS}; do - cp -pr ${dir}-${PYTHON_ABI} ${dir} || die "Copying of '${dir}-${PYTHON_ABI}' to '${dir}' failed" - done - - if use mpi; then - cp -p stage/lib/mpi.so-${PYTHON_ABI} "${MPI_PYTHON_MODULE}" || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to '${MPI_PYTHON_MODULE}' failed" - cp -p stage/lib/mpi.so-${PYTHON_ABI} stage/lib/mpi.so || die "Copying of 'stage/lib/mpi.so-${PYTHON_ABI}' to 'stage/lib/mpi.so' failed" - fi - fi - - einfo "Using the following command to install:" - einfo "${BJAM} -q -d+2 gentoorelease --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}usr/include\" --libdir=\"${D}usr/$(get_libdir)\" $(use python && echo --python-buildid=${PYTHON_ABI}) install" - - ${BJAM} -q -d+2 \ - gentoorelease \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - --includedir="${D}usr/include" \ - --libdir="${D}usr/$(get_libdir)" \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - install || die "Installation of Boost libraries failed" - - if use debug; then - einfo "Using the following command to install:" - einfo "${BJAM} -q -d+2 gentoodebug --user-config=user-config.jam ${OPTIONS} threading=single,multi ${LINK_OPTS} runtime-link=shared --includedir=\"${D}usr/include\" --libdir=\"${D}usr/$(get_libdir)\" --buildid=debug $(use python && echo --python-buildid=${PYTHON_ABI})" - - ${BJAM} -q -d+2 \ - gentoodebug \ - --user-config=user-config.jam \ - ${OPTIONS} \ - threading=single,multi ${LINK_OPTS} runtime-link=shared \ - --includedir="${D}usr/include" \ - --libdir="${D}usr/$(get_libdir)" \ - --buildid=debug \ - $(use python && echo --python-buildid=${PYTHON_ABI}) \ - install || die "Installation of Boost debug libraries failed" - fi - - if use python; then - rm -r ${PYTHON_DIRS} || die - - # Move mpi.so Python module to Python site-packages directory and make sure it is slotted. - if use mpi; then - mkdir -p "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - mv "${D}usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost_${MAJOR_PV}" || die - cat << EOF > "${D}$(python_get_sitedir)/boost_${MAJOR_PV}/__init__.py" || die -import sys -if sys.platform.startswith('linux'): - import DLFCN - flags = sys.getdlopenflags() - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL) - from . import mpi - sys.setdlopenflags(flags) - del DLFCN, flags -else: - from . import mpi -del sys -EOF - _add_line "$(python_get_sitedir)/mpi.py:boost_${MAJOR_PV}.mpi" - fi - fi - } - if use python; then - python_execute_function installation - else - installation - fi - - if use mpi && use python; then - _add_line "\"" - 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 - # and store the names in the profiles-file for eselect - dodir /usr/$(get_libdir)/boost-${MAJOR_PV} - - _add_line "libs=\"" default - local f - for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug); do - dosym ../${f} /usr/$(get_libdir)/boost-${MAJOR_PV}/${f/-${MAJOR_PV}} - _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 - 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} - _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 - - popd > /dev/null || die - - if use tools; then - pushd dist/bin > /dev/null || die - # Append version postfix to binaries for slotting - _add_line "bins=\"" - local b - for b in *; do - newbin "${b}" "${b}-${MAJOR_PV}" - _add_line "/usr/bin/${b}-${MAJOR_PV}" - done - _add_line "\"" - 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 - _add_line "dirs=\"/usr/share/boostbook-${MAJOR_PV}\"" - 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() { - 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/boost-1.51.0.ebuild b/dev-libs/boost/boost-1.51.0-r1.ebuild index 81a6c38395cc..b6ccc9081f81 100644 --- a/dev-libs/boost/boost-1.51.0.ebuild +++ b/dev-libs/boost/boost-1.51.0-r1.ebuild @@ -1,13 +1,13 @@ # 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.2 2012/10/30 23:28:10 floppym Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.51.0-r1.ebuild,v 1.1 2012/10/31 16:32:25 flameeyes 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 +inherit flag-o-matic multilib multiprocessing python toolchain-funcs versionator MY_P=${PN}_$(replace_all_version_separators _) @@ -16,21 +16,22 @@ 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)" +SLOT=0 +MAJOR_V="$(get_version_component_range 1-2)" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" -IUSE="debug doc icu mpi python static-libs test tools" +IUSE="debug doc icu mpi python static-libs 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" + !app-admin/eselect-boost" DEPEND="${RDEPEND} - dev-util/boost-build:${SLOT}" + =dev-util/boost-build-${MAJOR_V}*" S=${WORKDIR}/${MY_P} -MAJOR_PV=$(replace_all_version_separators _ ${SLOT}) +MAJOR_PV=$(replace_all_version_separators _ ${MAJOR_V}) BJAM="b2-${MAJOR_PV}" create_user-config.jam() { @@ -62,32 +63,10 @@ ${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() { @@ -293,7 +272,7 @@ EOF installation fi - use python || rm -rf "${D}usr/include/boost-${MAJOR_PV}/boost"/python* || die + use python || rm -rf "${D}usr/include/boost"/python* || die if use doc; then find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf @@ -312,22 +291,12 @@ EOF insinto /usr/share/doc/${PF}/html doins LICENSE_1_0.txt - dosym /usr/include/boost-${MAJOR_PV}/boost /usr/share/doc/${PF}/html/boost + dosym /usr/include/boost /usr/share/doc/${PF}/html/boost fi - pushd "${D}usr/$(get_libdir)" > /dev/null || die + dosym boost-${MAJOR_PV}/boost /usr/include/boost - # 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 + pushd "${D}usr/$(get_libdir)" > /dev/null || die # The threading libs obviously always gets the "-mt" (multithreading) tag # some packages seem to have a problem with it. Creating symlinks... @@ -339,7 +308,7 @@ EOF fi local lib for lib in ${THREAD_LIBS}; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" + dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}" done # The same goes for the mpi libs @@ -351,7 +320,7 @@ EOF fi local lib for lib in ${MPI_LIBS}; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" + dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}" done fi @@ -364,7 +333,7 @@ EOF local lib for lib in ${THREAD_DEBUG_LIBS}; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" + dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}" done if use mpi; then @@ -376,24 +345,21 @@ EOF local lib for lib in ${MPI_DEBUG_LIBS}; do - dosym ${lib} "/usr/$(get_libdir)/$(sed -e 's/-mt//' <<< ${lib})" + dosym ${lib} "/usr/$(get_libdir)/${lib/-mt/}" 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}} + dosym ${f} /usr/$(get_libdir)/${f/-${MAJOR_PV}} done if use debug; then - dodir /usr/$(get_libdir)/boost-${MAJOR_PV}-debug + dodir /usr/$(get_libdir)/boost-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} + dosym ../${f} /usr/$(get_libdir)/boost-debug/${f/-${MAJOR_PV}-debug} done fi @@ -457,139 +423,9 @@ EOF 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 -} +# 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() { :; } diff --git a/dev-libs/boost/files/1.35-remove-hardlink-creation.patch b/dev-libs/boost/files/1.35-remove-hardlink-creation.patch deleted file mode 100644 index 4b1c143cf707..000000000000 --- a/dev-libs/boost/files/1.35-remove-hardlink-creation.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- Jamroot.orig 2009-04-03 19:23:02.876426258 +0200 -+++ Jamroot 2009-04-03 19:37:05.899697787 +0200 -@@ -444,14 +444,10 @@ - } - return $(result) ; - } -- -- generate stage-unversioned : stage-proper : -- <generating-rule>@make-unversioned-links ; -- explicit stage-unversioned ; -- -- generate install-unversioned : install-proper : -- <generating-rule>@make-unversioned-links ; -- explicit install-unversioned ; -+ -+ -+ alias stage-unversioned ; -+ alias install-unversioned ; - } - else - { diff --git a/dev-libs/boost/files/boost-1.41.0-fix-CRC-on-x64-during-gzip-decompression.patch b/dev-libs/boost/files/boost-1.41.0-fix-CRC-on-x64-during-gzip-decompression.patch deleted file mode 100644 index 1707ff6785b7..000000000000 --- a/dev-libs/boost/files/boost-1.41.0-fix-CRC-on-x64-during-gzip-decompression.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -Nur boost_1_41_0.orig/boost/iostreams/filter/zlib.hpp boost_1_41_0/boost/iostreams/filter/zlib.hpp ---- boost_1_41_0.orig/boost/iostreams/filter/zlib.hpp 2009-10-14 18:20:36.000000000 +0300 -+++ boost_1_41_0/boost/iostreams/filter/zlib.hpp 2009-12-13 16:47:53.078056507 +0200 -@@ -20,6 +20,7 @@ - #include <memory> // allocator, bad_alloc. - #include <new> - #include <boost/config.hpp> // MSVC, STATIC_CONSTANT, DEDUCED_TYPENAME, DINKUM. -+#include <boost/cstdint.hpp> // uint*_t - #include <boost/detail/workaround.hpp> - #include <boost/iostreams/constants.hpp> // buffer size. - #include <boost/iostreams/detail/config/auto_link.hpp> -@@ -43,9 +44,9 @@ - namespace zlib { - // Typedefs - --typedef unsigned int uint; --typedef unsigned char byte; --typedef unsigned long ulong; -+typedef uint32_t uint; -+typedef uint8_t byte; -+typedef uint32_t ulong; - - // Prefix 'x' prevents symbols from being redefined when Z_PREFIX is defined - typedef void* (*xalloc_func)(void*, zlib::uint, zlib::uint); diff --git a/dev-libs/boost/files/boost-1.41.0-iostreams-missing-include-guard.patch b/dev-libs/boost/files/boost-1.41.0-iostreams-missing-include-guard.patch deleted file mode 100644 index 3f5bb7e16179..000000000000 --- a/dev-libs/boost/files/boost-1.41.0-iostreams-missing-include-guard.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/boost/iostreams/device/mapped_file.hpp b/boost/iostreams/device/mapped_file.hpp -index aae9dab..be656ef 100644 ---- a/boost/iostreams/device/mapped_file.hpp -+++ b/boost/iostreams/device/mapped_file.hpp -@@ -4,6 +4,9 @@ - // Distributed under 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_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED -+#define BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED -+ - #if defined(_MSC_VER) && (_MSC_VER >= 1020) - # pragma once - #endif -@@ -591,3 +594,5 @@ operator^=(mapped_file::mapmode& a, mapped_file::mapmode b) - } } // End namespaces iostreams, boost. - - #include <boost/config/abi_suffix.hpp> // pops abi_suffix.hpp pragmas -+ -+#endif // #ifndef BOOST_IOSTREAMS_MAPPED_FILE_HPP_INCLUDED diff --git a/dev-libs/boost/files/boost-1.41.0-mpi_process_group-missing-include.patch b/dev-libs/boost/files/boost-1.41.0-mpi_process_group-missing-include.patch deleted file mode 100644 index 13f7b8a4e83c..000000000000 --- a/dev-libs/boost/files/boost-1.41.0-mpi_process_group-missing-include.patch +++ /dev/null @@ -1,12 +0,0 @@ -Index: boost/graph/distributed/detail/mpi_process_group.ipp -=================================================================== ---- boost/graph/distributed/detail/mpi_process_group.ipp (revision 57744) -+++ boost/graph/distributed/detail/mpi_process_group.ipp (working copy) -@@ -28,6 +28,7 @@ - #include <queue> - #include <stack> - #include <boost/graph/distributed/detail/tag_allocator.hpp> -+#include <stdio.h> - - // #define PBGL_PROCESS_GROUP_DEBUG - diff --git a/dev-libs/boost/files/boost-1.41.0-parameter-needs-python.patch b/dev-libs/boost/files/boost-1.41.0-parameter-needs-python.patch deleted file mode 100644 index 2002ba3a9019..000000000000 --- a/dev-libs/boost/files/boost-1.41.0-parameter-needs-python.patch +++ /dev/null @@ -1,106 +0,0 @@ ---- 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/boost-1.41.0-spirit-fixed-include-guard-conflict.patch b/dev-libs/boost/files/boost-1.41.0-spirit-fixed-include-guard-conflict.patch deleted file mode 100644 index 9b68e9740ec7..000000000000 --- a/dev-libs/boost/files/boost-1.41.0-spirit-fixed-include-guard-conflict.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: trunk/boost/spirit/include/version.hpp -=================================================================== ---- a/trunk/boost/spirit/include/version.hpp -+++ b/trunk/boost/spirit/include/version.hpp -@@ -7,6 +7,6 @@ - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - =============================================================================*/ --#if !defined(SPIRIT_VERSION_NOVEMBER_13_2008_0834AM) --#define SPIRIT_VERSION_NOVEMBER_13_2008_0834AM -+#if !defined(SPIRIT_VERSION) -+#define SPIRIT_VERSION - - /////////////////////////////////////////////////////////////////////////////// diff --git a/dev-libs/boost/files/boost-1.42.0-gcc45-python.patch b/dev-libs/boost/files/boost-1.42.0-gcc45-python.patch deleted file mode 100644 index b41528945c8b..000000000000 --- a/dev-libs/boost/files/boost-1.42.0-gcc45-python.patch +++ /dev/null @@ -1,15 +0,0 @@ -https://bugs.gentoo.org/317997 -https://svn.boost.org/trac/boost/ticket/4223 -https://svn.boost.org/trac/boost/changeset/62198 - ---- a/boost/python/exception_translator.hpp -+++ b/boost/python/exception_translator.hpp -@@ -18,7 +18,7 @@ template <class ExceptionType, class Translate> - void register_exception_translator(Translate translate, boost::type<ExceptionType>* = 0) - { - detail::register_exception_handler( -- bind<bool>(detail::translate_exception<ExceptionType,Translate>(), _1, _2, translate) -+ boost::bind<bool>(detail::translate_exception<ExceptionType,Translate>(), _1, _2, translate) - ); - } - 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 deleted file mode 100644 index 2002ba3a9019..000000000000 --- a/dev-libs/boost/files/boost-1.42.0-parameter-needs-python.patch +++ /dev/null @@ -1,106 +0,0 @@ ---- 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/boost-1.42.0-template_arity-gcc45.patch b/dev-libs/boost/files/boost-1.42.0-template_arity-gcc45.patch deleted file mode 100644 index 4a498794760e..000000000000 --- a/dev-libs/boost/files/boost-1.42.0-template_arity-gcc45.patch +++ /dev/null @@ -1,28 +0,0 @@ -MPL is broken with GCC 4.5. - -https://bugs.gentoo.org/317969 -https://svn.boost.org/trac/boost/ticket/4061 -https://svn.boost.org/trac/boost/changeset/61467 - ---- a/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp -+++ b/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp -@@ -83,7 +81,7 @@ template< typename F, int N > - struct template_arity_impl - { - BOOST_STATIC_CONSTANT(int, value = -- sizeof(arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1 -+ sizeof(::boost::mpl::aux::arity_helper(type_wrapper<F>(), arity_tag<N>())) - 1 - ); - }; - ---- a/boost/mpl/aux_/template_arity.hpp -+++ b/boost/mpl/aux_/template_arity.hpp -@@ -98,7 +98,7 @@ template< typename F, BOOST_MPL_AUX_NTTP_DECL(int, N) > - struct template_arity_impl - { - BOOST_STATIC_CONSTANT(int, value = -- sizeof(arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1 -+ sizeof(::boost::mpl::aux::arity_helper(type_wrapper<F>(),arity_tag<N>())) - 1 - ); - }; - diff --git a/dev-libs/boost/files/boost-1.47.0-exceptions.patch b/dev-libs/boost/files/boost-1.47.0-exceptions.patch deleted file mode 100644 index 61ab3564a3ab..000000000000 --- a/dev-libs/boost/files/boost-1.47.0-exceptions.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- boost/numeric/conversion/converter_policies.hpp 2008-10-13 11:00:03.000000000 +0200 -+++ boost/numeric/conversion/converter_policies.hpp 2011-07-22 11:46:40.961876274 +0200 -@@ -20,6 +20,7 @@ - - #include "boost/mpl/if.hpp" - #include "boost/mpl/integral_c.hpp" -+#include "boost/throw_exception.hpp" - - namespace boost { namespace numeric - { -@@ -159,9 +160,9 @@ struct def_overflow_handler - void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow) - { - if ( r == cNegOverflow ) -- throw negative_overflow() ; -+ boost::throw_exception( negative_overflow() ) ; - else if ( r == cPosOverflow ) -- throw positive_overflow() ; -+ boost::throw_exception( positive_overflow() ) ; - } - } ; - diff --git a/dev-libs/boost/files/boost-1.48.0-BOOST_FOREACH.patch b/dev-libs/boost/files/boost-1.48.0-BOOST_FOREACH.patch deleted file mode 100644 index 02f7a013fbb8..000000000000 --- a/dev-libs/boost/files/boost-1.48.0-BOOST_FOREACH.patch +++ /dev/null @@ -1,69 +0,0 @@ -https://svn.boost.org/trac/boost/ticket/6131 -https://svn.boost.org/trac/boost/changeset/75540 - ---- boost/foreach_fwd.hpp -+++ boost/foreach_fwd.hpp -@@ -14,6 +14,8 @@ - #ifndef BOOST_FOREACH_FWD_HPP - #define BOOST_FOREACH_FWD_HPP - -+#include <utility> // for std::pair -+ - // This must be at global scope, hence the uglified name - enum boost_foreach_argument_dependent_lookup_hack - { -@@ -25,6 +27,9 @@ - - namespace foreach - { -+ template<typename T> -+ std::pair<T, T> in_range(T begin, T end); -+ - /////////////////////////////////////////////////////////////////////////////// - // boost::foreach::tag - // -@@ -46,6 +51,24 @@ - - } // namespace foreach - -+// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131 -+namespace BOOST_FOREACH -+{ -+ using foreach::in_range; -+ using foreach::tag; -+ -+ template<typename T> -+ struct is_lightweight_proxy -+ : foreach::is_lightweight_proxy<T> -+ {}; -+ -+ template<typename T> -+ struct is_noncopyable -+ : foreach::is_noncopyable<T> -+ {}; -+ -+} // namespace BOOST_FOREACH -+ - } // namespace boost - - #endif ---- boost/foreach.hpp -+++ boost/foreach.hpp -@@ -165,7 +165,7 @@ - // this one works on legacy compilers. Overload boost_foreach_is_lightweight_proxy - // at the global namespace for your type. - template<typename T> --inline boost::foreach::is_lightweight_proxy<T> * -+inline boost::BOOST_FOREACH::is_lightweight_proxy<T> * - boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } - - template<typename T> -@@ -190,7 +190,7 @@ - // this one works on legacy compilers. Overload boost_foreach_is_noncopyable - // at the global namespace for your type. - template<typename T> --inline boost::foreach::is_noncopyable<T> * -+inline boost::BOOST_FOREACH::is_noncopyable<T> * - boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } - - namespace boost diff --git a/dev-libs/boost/files/boost-1.48.0-gcc47.patch b/dev-libs/boost/files/boost-1.48.0-gcc47.patch deleted file mode 100644 index a7caebcbe7dd..000000000000 --- a/dev-libs/boost/files/boost-1.48.0-gcc47.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/boost/config/stdlib/libstdcpp3.hpp b/boost/config/stdlib/libstdcpp3.hpp -index 52d5837..aaa8890 100644 ---- a/boost/config/stdlib/libstdcpp3.hpp -+++ b/boost/config/stdlib/libstdcpp3.hpp -@@ -33,7 +33,8 @@ - - #ifdef __GLIBCXX__ // gcc 3.4 and greater: - # if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \ -- || defined(_GLIBCXX__PTHREADS) -+ || defined(_GLIBCXX__PTHREADS) \ -+ || defined(_GLIBCXX_HAS_GTHREADS) - // - // If the std lib has thread support turned on, then turn it on in Boost - // as well. We do this because some gcc-3.4 std lib headers define _REENTANT diff --git a/dev-libs/boost/files/buildid-fix.patch b/dev-libs/boost/files/buildid-fix.patch deleted file mode 100644 index 2786f7c257d3..000000000000 --- a/dev-libs/boost/files/buildid-fix.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- Jamroot.orig 2009-02-10 17:36:25.000000000 +0100 -+++ Jamroot 2009-02-10 17:37:09.000000000 +0100 -@@ -442,15 +442,15 @@ - local noversion-file ; - if $(nt) - { -- noversion-file = [ MATCH "(.*)-[0-9_]+([.]lib)" : $(name) ] ; -+ noversion-file = [ MATCH "(.*)-[0-9_]+(.*[.]lib)" : $(name) ] ; - } - else - { - noversion-file = -- [ MATCH "(.*)-[0-9_]+([.]so)[.0-9]*" : $(name) ] -- [ MATCH "(.*)-[0-9_]+([.]dylib)" : $(name) ] -- [ MATCH "(.*)-[0-9_]+([.]a)" : $(name) ] -- [ MATCH "(.*)-[0-9_]+([.]dll[.]a)" : $(name) ] ; -+ [ MATCH "(.*)-[0-9_]+(.*[.]so)[.0-9]*" : $(name) ] -+ [ MATCH "(.*)-[0-9_]+(.*[.]dylib)" : $(name) ] -+ [ MATCH "(.*)-[0-9_]+(.*[.]a)" : $(name) ] -+ [ MATCH "(.*)-[0-9_]+(.*[.]dll[.]a)" : $(name) ] ; - } - - local new-name = diff --git a/dev-libs/boost/files/random-Jamfile b/dev-libs/boost/files/random-Jamfile deleted file mode 100644 index 5cb6f6bcd9be..000000000000 --- a/dev-libs/boost/files/random-Jamfile +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2006 Tiziano Mueller -# -# Use, modification and distribution of the file is subject to the -# Boost Software License, Version 1.0. -# (See at http://www.boost.org/LICENSE_1_0.txt) - - -project boost/random - : source-location ../ ; - -SOURCES = random_device ; - -lib boost_random - : $(SOURCES).cpp - : <link>shared:<define>BOOST_RANDOM_DYN_LINK=1 ; diff --git a/dev-libs/boost/files/random-Jamfile-1.45.0 b/dev-libs/boost/files/random-Jamfile-1.45.0 deleted file mode 100644 index 81fb136be2b0..000000000000 --- a/dev-libs/boost/files/random-Jamfile-1.45.0 +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2006 Tiziano Mueller -# -# Use, modification and distribution of the file is subject to the -# Boost Software License, Version 1.0. -# (See at http://www.boost.org/LICENSE_1_0.txt) - - -project boost/random - : source-location ../src ; - -SOURCES = random_device ; - -lib boost_random - : $(SOURCES).cpp - : <link>shared:<define>BOOST_RANDOM_DYN_LINK=1 ; diff --git a/dev-libs/boost/files/random-Jamfile-1.47.0 b/dev-libs/boost/files/random-Jamfile-1.47.0 deleted file mode 100644 index 81fb136be2b0..000000000000 --- a/dev-libs/boost/files/random-Jamfile-1.47.0 +++ /dev/null @@ -1,15 +0,0 @@ -# Copyright (c) 2006 Tiziano Mueller -# -# Use, modification and distribution of the file is subject to the -# Boost Software License, Version 1.0. -# (See at http://www.boost.org/LICENSE_1_0.txt) - - -project boost/random - : source-location ../src ; - -SOURCES = random_device ; - -lib boost_random - : $(SOURCES).cpp - : <link>shared:<define>BOOST_RANDOM_DYN_LINK=1 ; diff --git a/dev-libs/boost/files/remove-toolset-1.41.0.patch b/dev-libs/boost/files/remove-toolset-1.41.0.patch deleted file mode 100644 index b7d797c37376..000000000000 --- a/dev-libs/boost/files/remove-toolset-1.41.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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) ] ; - } diff --git a/dev-libs/boost/files/remove-toolset-1.42.0.patch b/dev-libs/boost/files/remove-toolset-1.42.0.patch deleted file mode 100644 index b7d797c37376..000000000000 --- a/dev-libs/boost/files/remove-toolset-1.42.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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) ] ; - } diff --git a/dev-libs/boost/files/remove-toolset-1.45.0.patch b/dev-libs/boost/files/remove-toolset-1.45.0.patch deleted file mode 100644 index c80191ce43d6..000000000000 --- a/dev-libs/boost/files/remove-toolset-1.45.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- Jamroot 2010-11-17 11:51:56.000000000 +0200 -+++ Jamroot.gentoo 2011-01-06 15:07:17.893270002 +0200 -@@ -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) ] ; - } diff --git a/dev-libs/boost/files/remove-toolset-1.47.0.patch b/dev-libs/boost/files/remove-toolset-1.47.0.patch deleted file mode 100644 index d74a88296681..000000000000 --- a/dev-libs/boost/files/remove-toolset-1.47.0.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- boostcpp.jam 2010-11-17 11:51:56.000000000 +0200 -+++ boostcpp.jam.gentoo 2011-01-06 15:07:17.893270002 +0200 -@@ -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) ] ; - } diff --git a/dev-libs/boost/files/remove_toolset_from_targetname.patch b/dev-libs/boost/files/remove_toolset_from_targetname.patch deleted file mode 100644 index 1a0cb1c61471..000000000000 --- a/dev-libs/boost/files/remove_toolset_from_targetname.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- boost_1_36_0/Jamroot.orig 2008-11-14 16:36:10.000000000 +0100 -+++ boost_1_36_0/Jamroot 2008-11-14 16:36:54.000000000 +0100 -@@ -311,7 +311,7 @@ - if $(layout) = versioned - { - local result = [ common.format-name -- <base> <toolset> <threading> <runtime> -$(BOOST_VERSION_TAG) -+ <base> <threading> <runtime> -$(BOOST_VERSION_TAG) - -$(BUILD_ID) - : $(name) : $(type) : $(property-set) ] ; - diff --git a/dev-libs/boost/metadata.xml b/dev-libs/boost/metadata.xml index 7d2701dd3d92..237060cb082a 100644 --- a/dev-libs/boost/metadata.xml +++ b/dev-libs/boost/metadata.xml @@ -2,29 +2,18 @@ <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> <herd>cpp</herd> - <maintainer> - <email>dev-zero@gentoo.org</email> - <name>Tiziano Müller</name> - </maintainer> - <maintainer> - <email>SebastianLuther@gmx.de</email> - <name>Sebastian Luther</name> - </maintainer> - <maintainer> - <email>arfrever.fta@gmail.com</email> - <name>Arfrever Frehtes Taifersar Arahesis</name> - </maintainer> - <maintainer> - <email>mgorny@gentoo.org</email> - <name>Michał Górny</name> - </maintainer> -<longdescription> -Boost is a free peer-reviewed portable C++ source libraries. -</longdescription> -<use> - <flag name='tools'>Build and install the boost tools (bcp, quickbook, - inspect, wave)</flag> - <flag name='eselect'>Run "eselect boost update" even if version is - already selected</flag> -</use> + <use> + <flag name='tools'> + Build and install the boost tools (bcp, quickbook, inspect, + wave) + </flag> + <flag name='eselect' restrict='<dev-libs/boost-1.50.0-r2'> + Run "eselect boost update" even if version is already selected + </flag> + <flag name='debug'> + Build and install debug versions of the Boost libraries. These + libraries are not used by default, and should not be used unless + you're developing against Boost. + </flag> + </use> </pkgmetadata> |