diff options
author | 2012-11-08 03:28:35 +0000 | |
---|---|---|
committer | 2012-11-08 03:28:35 +0000 | |
commit | fee399995479c618d0b3fc4aeb31a9f3d53cfc79 (patch) | |
tree | e57acf734e407cf9f71b518d2890a84a48fc4077 /dev-libs | |
parent | Bump to avoid using versioned names. (diff) | |
download | historical-fee399995479c618d0b3fc4aeb31a9f3d53cfc79.tar.gz historical-fee399995479c618d0b3fc4aeb31a9f3d53cfc79.tar.bz2 historical-fee399995479c618d0b3fc4aeb31a9f3d53cfc79.zip |
Simplify bjam handling; use the unversioned commands from boost-build-1.52.0-r1; force-disabled C++11 support; add threads USE flag and only build either single- or multi-threaded libraries so that there is no doubt on what's being linked in (a deptree check shows that they can cross and collide); use the system layout, designed for Unix installs (closes bug #442116 together with part of Arfrever's patch); drop old code (bug #442114 by Arfrever); use proper GNU stack markings (bug #440284); fix boost.mpi python module (bug #441806) and optimize the module (sneaked in the same bug).
Package-Manager: portage-2.2.0_alpha142/cvs/Linux x86_64
Manifest-Sign-Key: 0x1CD13C8AD4301342
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/boost/ChangeLog | 15 | ||||
-rw-r--r-- | dev-libs/boost/Manifest | 20 | ||||
-rw-r--r-- | dev-libs/boost/boost-1.52.0-r1.ebuild (renamed from dev-libs/boost/boost-1.52.0.ebuild) | 173 | ||||
-rw-r--r-- | dev-libs/boost/metadata.xml | 4 |
4 files changed, 84 insertions, 128 deletions
diff --git a/dev-libs/boost/ChangeLog b/dev-libs/boost/ChangeLog index cbd09c41e91b..76c80378fc56 100644 --- a/dev-libs/boost/ChangeLog +++ b/dev-libs/boost/ChangeLog @@ -1,6 +1,19 @@ # 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.275 2012/11/05 18:23:56 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.276 2012/11/08 03:28:05 flameeyes Exp $ + +*boost-1.52.0-r1 (08 Nov 2012) + + 08 Nov 2012; Diego E. Pettenò <flameeyes@gentoo.org> +boost-1.52.0-r1.ebuild, + -boost-1.52.0.ebuild, metadata.xml: + Simplify bjam handling; use the unversioned commands from boost- + build-1.52.0-r1; force-disabled C++11 support; add threads USE flag and only + build either single- or multi-threaded libraries so that there is no doubt on + what's being linked in (a deptree check shows that they can cross and + collide); use the system layout, designed for Unix installs (closes bug + #442116 together with part of Arfrever's patch); drop old code (bug #442114 by + Arfrever); use proper GNU stack markings (bug #440284); fix boost.mpi python + module (bug #441806) and optimize the module (sneaked in the same bug). *boost-1.52.0 (05 Nov 2012) diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest index cd8f48a98cee..59bd7f55f897 100644 --- a/dev-libs/boost/Manifest +++ b/dev-libs/boost/Manifest @@ -24,17 +24,17 @@ DIST boost_1_52_0.tar.bz2 54421709 SHA256 222b6afd7723f396f5682c20130314a10196d3 EBUILD boost-1.46.1-r1.ebuild 16252 SHA256 682588f5d588746437f4a09aacb6940574e8bf64bd796ef6b886ff0a26979243 SHA512 20a4ce407bf6e339334ad10ebb75ec0edf74748224bb3ce0eb3909954af40f5b483c2a2a3098c4e111dc13a187d64226af235306d7124b10f407e4411ec5c807 WHIRLPOOL 571855ea79e0d38b5e40000c692bc240d54fef65fa467ce4f8c75486ecd660f6af59085f3883bc07b80209140a9db9891e64eb49955308df698a0273484f3a57 EBUILD boost-1.49.0-r2.ebuild 14405 SHA256 7160b23c28b2f5041e7597cf447855f7834c6da64012e96ed388854c2c50f937 SHA512 31416ddc5e8ac340b1202c4a499914a177dab8dc46c2d47e24595bcbd813907b19e7df343fd386f8330d30d4a6fffcf6e7ffa9b591df5af12c168259bd419eb4 WHIRLPOOL d3b066f863ca5ad95fa6d82e5f7f12657ba935b7fa229e848aedfaa24d772e102899a253b7bfb2a1d3510bc77cf14cbf4b1fee26813fa85d67432bb2f33a162b EBUILD boost-1.51.0-r1.ebuild 13462 SHA256 0995d0baaa9134eaac6355d0dadeb36b827cfd946148609dfad5456c7da549e2 SHA512 d239f628319599a37f390ad98a543cafeea6c02eac09db7620c43a4d5576c7f243dcd74dfed62a65e97e34b5a3d4018d5a40a2605361e0cf43d1ba90f111af0f WHIRLPOOL bae45b9aa324d80f651519a82536ab705cb78dc8faef6782580697cc8740d8be1857ae779ea782a6daa3357ba10b3685bfe6cf15897a982f95d45c29d75d6b36 -EBUILD boost-1.52.0.ebuild 13459 SHA256 47f7b4dcd373c121fb3f9a1475cd040b51dfc5e77dc42c9df68ee3639c34b153 SHA512 d88c99abb55dad55995ea5ecff6f324cd863f96626db15d848924a82c67d2bfaa52896595a1c9d1b51198c94e8fe8bc583e52c7b03ad70c510097c0c1ec011a7 WHIRLPOOL 1d687e9284046e79b3e9d394600d9e1947fac3f29e1557a1bce53663c7aa0b38bd6ade1633498cebcd73bf8a4368ba000a2d3c89169ac55780d5289e120799eb -MISC ChangeLog 45738 SHA256 831565b7aa282c52fb5789998156f6f21cf12f0fcc8a537608d47dcfeb2fb16f SHA512 be3953da2cd6cbd4521bcaf26a9ab123bf6e37e3dc549b06795ee773ef539ca0b38e302d70f24d2d43558b7566883ff8a99019f1a2e46b57eceaa9d0726c8f17 WHIRLPOOL 4446a8b6c05d8ed62b231d6ee9f178d4f2e924599af4bce006ee9d443d7ad3b2b523424075bf9ed45a53de62e9d93de78fca9b56cce82674c60d145c3fe82805 -MISC metadata.xml 651 SHA256 9b609678862591de34025983a4353ab3bf6b2f79527988c33379487197db848f SHA512 c923bf7e9075458e555f7f7f1f805c25c163167881bd216e049be8121f655857f8096d89c8f441eba19b80aa9536afe29d8c7651ad341dc6a3cf17b02b7d1c0a WHIRLPOOL fa8ac80464f7464702f607a261ff4b4086c0904db37986d0419058b4713837c5cf474868ca2d6f9d4618507887b412ed2536d0f9a9006db8be8b756a650e6c2c +EBUILD boost-1.52.0-r1.ebuild 10459 SHA256 aae0f43fe87037a418872ecd44f39276ac3fe5941354b0e8a21795090122e6c3 SHA512 f62b20c3ad61b8930bab90ba2884e1cc2fe226030a327659af0853ccc549ce2d7d96d2eb12d92e67e789ca53afffb9d4edf90616702828fc0378c17d758db1bd WHIRLPOOL 973c5512e317d0d8a81810f2900128f4b19cef1627f3492067b0d972bce5830828a2496926a80568052311149a39faf799cab3fd50960e852dd0c58ae1b862bd +MISC ChangeLog 46496 SHA256 789fc4dddeb3c14f24a159cc0b684f6a7cf97b7ee32d6500af65f06364582d5d SHA512 4c2d2db0c1aa9b21b6fb8a06e2d54488d3b28fd26e859131e52d9f1082c4242081b5525c79dfb061eb70a058adb2d4e52793140c07065671a04009a8e49f73fe WHIRLPOOL fbfaa6f5b3b2770883f8927632a3878822506e1dbf85daa563afb5093c2a9b117599927e1f0b420a5659fe826a2d7995357324c70666f63c71f770cf5755ab38 +MISC metadata.xml 774 SHA256 e8a16af6e7ab08a3eb4c3514162b37169bf37f43992dd154f54dface2e841d26 SHA512 5f3c424b16056b14bb42bbb1b0777f9ffb52e665b190ff1a99f727d0da71cab79878155a5d153f041e22b292e8c1bbbb31101d17bd6d5216eff2a366ab5349ce WHIRLPOOL bc3cca0be93ded175f8d383c4fd6328a2492ccb2be09ef6f100f0db3cce4dddbc5bd5e65945f3bd68dbdefb6d0eee76b3cb2c11a3dbde1270a75bb3369adb192 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) -iQEcBAEBCAAGBQJQmAR9AAoJEBzRPIrUMBNCuKMH/3j/dmqAjOhP61W75zXpEK9u -0keiguoXTfqojs5vq11t2ZnuznqbBuqDkVZF1H0zSxFIxYfYjuJfAa3ety/zwB/Z -iU0t1BAhAW8ajNe5Jtf0Mk2CvgrY3+YB/MJxDY1azs/tWmbVb+AYTDvs8KqQc1ys -tlSjkFLPDbdXeTJQmG34rzd0ZMMPpYMuwU+K1bqn48X+79/drVudAWXADFp/ATq3 -ArvhhwHGi7vkq1/1ieOD7IhSnNmDSZ6FyLN83M5AFMFKponE5IaJyRn7JCjy4mq/ -y4c5NbSWWyS+zToPGd6xQpYfilTnUgRgMN1Ghbn7FmczdRR4OjFFmR2uZJH0drU= -=1dhT +iQEcBAEBCAAGBQJQmybiAAoJEBzRPIrUMBNCRFwIAJnamJ/K+H06pVT5UjpurIrQ +IpOgVUBV5JLgfgughJli4jIoilrIGgv5o6j0UOgdTpp+PTiIdWtAET2v2/dnT3DS +Znfm7eTykVcZ+t05LC2frrUrGtZlr4Gc4V4IZWZlcRQPw/vDGSL04bihSZzmGb8H +5BaDGeN1YXMSat0CHtY4DyWfCwmLzdyNm6MCaj2rmCvD7Nlwuuzyb/3dpcEAk7eK +V6g1ilfbh4iSpwc7Fh0RLFOUfUJt3fYb8k9dpbFSnHyzukld+BF4BxEFkOiQHIhE +LBIHHrzjCYPabui+IoB99lrGcF4Ssm77cpQl8jfd1BtTqUpwZP88UVWdmMtQONw= +=x94P -----END PGP SIGNATURE----- diff --git a/dev-libs/boost/boost-1.52.0.ebuild b/dev-libs/boost/boost-1.52.0-r1.ebuild index 2cd7a8306294..a7df3b37587b 100644 --- a/dev-libs/boost/boost-1.52.0.ebuild +++ b/dev-libs/boost/boost-1.52.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.52.0.ebuild,v 1.1 2012/11/05 18:23:56 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.52.0-r1.ebuild,v 1.1 2012/11/08 03:28:05 flameeyes Exp $ EAPI="5" PYTHON_DEPEND="python? *" @@ -19,7 +19,7 @@ LICENSE="Boost-1.0" 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 tools" +IUSE="debug doc icu mpi python static-libs +threads tools" RDEPEND="icu? ( >=dev-libs/icu-3.6:= ) !icu? ( virtual/libiconv ) @@ -31,9 +31,6 @@ DEPEND="${RDEPEND} S=${WORKDIR}/${MY_P} -MAJOR_PV=$(replace_all_version_separators _ ${MAJOR_V}) -BJAM="b2-${MAJOR_PV}" - create_user-config.jam() { local compiler compiler_version compiler_executable @@ -79,6 +76,23 @@ src_prepare() { "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \ "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \ "${FILESDIR}/remove-toolset-1.48.0.patch" + + # Avoid a patch for now + for file in libs/context/src/asm/*.S; do + cat - >> $file <<EOF + +#if defined(__linux__) && defined(__ELF__) +.section .note.GNU-stack,"",%progbits +#endif +EOF + done +} + +ejam() { + local NUMJOBS="-j$(makeopts_jobs)" + + echo b2 ${NUMJOBS} -q -d+2 "$@" + b2 ${NUMJOBS} -q -d+2 "$@" } src_configure() { @@ -95,17 +109,15 @@ src_configure() { [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec fi + # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard. + append-cxxflags -std=gnu++98 + use icu && OPTIONS+=" -sICU_PATH=/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" + OPTIONS+=" pch=off --boost-build=/usr/share/boost-build --prefix=\"${D}usr\" --layout=system" if use static-libs; then LINK_OPTS="link=shared,static" @@ -121,30 +133,21 @@ 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 \ + ejam gentoorelease \ --user-config=user-config.jam \ - ${OPTIONS} threading=single,multi ${LINK_OPTS} \ + ${OPTIONS} threading=$(usex threads multi single) ${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 \ + ejam gentoodebug \ --user-config=user-config.jam \ - ${OPTIONS} threading=single,multi ${LINK_OPTS} \ + ${OPTIONS} threading=$(usex threads multi single) ${LINK_OPTS} \ --buildid=debug \ $(use python && echo --python-buildid=${PYTHON_ABI}) \ || die "Building of Boost debug libraries failed" @@ -188,11 +191,8 @@ src_compile() { 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 \ + ejam gentoorelease \ --user-config=../user-config.jam \ ${OPTIONS} \ || die "Building of Boost tools failed" @@ -217,12 +217,9 @@ src_install () { 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 \ + ejam gentoorelease \ --user-config=user-config.jam \ - ${OPTIONS} threading=single,multi ${LINK_OPTS} \ + ${OPTIONS} threading=$(usex threads multi single) ${LINK_OPTS} \ --includedir="${D}usr/include" \ --libdir="${D}usr/$(get_libdir)" \ $(use python && echo --python-buildid=${PYTHON_ABI}) \ @@ -230,12 +227,10 @@ src_install () { 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 \ + ejam gentoodebug \ --user-config=user-config.jam \ - ${OPTIONS} threading=single,multi ${LINK_OPTS} \ + ${OPTIONS} threading=$(usex threads multi single) ${LINK_OPTS} \ --includedir="${D}usr/include" \ --libdir="${D}usr/$(get_libdir)" \ --buildid=debug \ @@ -246,11 +241,12 @@ src_install () { 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. + # Move mpi.so Python module to Python site-packages directory. + # https://svn.boost.org/trac/boost/ticket/2838 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 + dodir $(python_get_sitedir)/boost + mv "${D}usr/$(get_libdir)/mpi.so" "${D}$(python_get_sitedir)/boost" || die + cat << EOF > "${D}$(python_get_sitedir)/boost/__init__.py" || die import sys if sys.platform.startswith('linux'): import DLFCN @@ -272,7 +268,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 @@ -294,102 +290,33 @@ EOF dosym /usr/include/boost /usr/share/doc/${PF}/html/boost fi - dosym boost-${MAJOR_PV}/boost /usr/include/boost - 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... - - 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)/${lib/-mt/}" - 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)/${lib/-mt/}" - 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)/${lib/-mt/}" - 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)/${lib/-mt/}" - done - fi - fi - + local ext=$(get_libname) local f - for f in $(ls -1 ${LIBRARY_TARGETS} | grep -v debug); do - dosym ${f} /usr/$(get_libdir)/${f/-${MAJOR_PV}} + for f in $(ls -1 *${ext}); do + dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}} done if use debug; then dodir /usr/$(get_libdir)/boost-debug local f - for f in $(ls -1 ${LIBRARY_TARGETS} | grep debug); do - dosym ../${f} /usr/$(get_libdir)/boost-debug/${f/-${MAJOR_PV}-debug} + for f in $(ls -1 *-debug*.a *debug*${ext}); do + dosym ../${f} /usr/$(get_libdir)/boost-debug/${f/-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 + dobin dist/bin/* 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 @@ -423,6 +350,18 @@ EOF fi } +pkg_postinst() { + if use mpi && use python; then + python_mod_optimize boost + fi +} + +pkg_postrm() { + if use mpi && use python; then + python_mod_cleanup boost + 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 diff --git a/dev-libs/boost/metadata.xml b/dev-libs/boost/metadata.xml index 237060cb082a..b85d4bf23d57 100644 --- a/dev-libs/boost/metadata.xml +++ b/dev-libs/boost/metadata.xml @@ -15,5 +15,9 @@ libraries are not used by default, and should not be used unless you're developing against Boost. </flag> + <flag name='threads'> + Build multi-thread-compatible libraries instead of + single-threaded only. + </flag> </use> </pkgmetadata> |