From b7ebc951da8800f711142f69d9d958bde67a112d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 28 Apr 2019 09:54:45 +0100 Subject: gentoo resync : 28.04.2019 --- dev-libs/boost/Manifest | 16 +- dev-libs/boost/boost-1.63.0.ebuild | 440 --------------------- dev-libs/boost/boost-1.65.0.ebuild | 4 +- dev-libs/boost/boost-1.66.0.ebuild | 439 -------------------- dev-libs/boost/boost-1.67.0-r1.ebuild | 420 -------------------- dev-libs/boost/boost-1.70.0.ebuild | 332 ++++++++++++++++ dev-libs/boost/files/boost-1.63.0-fix-python.patch | 138 ------- dev-libs/boost/files/boost-1.67.0-fix-python.patch | 153 ------- .../boost/files/boost-1.67.0-lockfree-next.patch | 24 -- .../boost/files/boost-1.69.0-context-x32.patch | 38 ++ dev-libs/boost/metadata.xml | 16 +- 11 files changed, 385 insertions(+), 1635 deletions(-) delete mode 100644 dev-libs/boost/boost-1.63.0.ebuild delete mode 100644 dev-libs/boost/boost-1.66.0.ebuild delete mode 100644 dev-libs/boost/boost-1.67.0-r1.ebuild create mode 100644 dev-libs/boost/boost-1.70.0.ebuild delete mode 100644 dev-libs/boost/files/boost-1.63.0-fix-python.patch delete mode 100644 dev-libs/boost/files/boost-1.67.0-fix-python.patch delete mode 100644 dev-libs/boost/files/boost-1.67.0-lockfree-next.patch create mode 100644 dev-libs/boost/files/boost-1.69.0-context-x32.patch (limited to 'dev-libs/boost') diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest index d5a3bad41635..2d958dc05284 100644 --- a/dev-libs/boost/Manifest +++ b/dev-libs/boost/Manifest @@ -1,16 +1,10 @@ AUX boost-1.48.0-disable_icu_rpath.patch 1077 BLAKE2B 367246d711de06ef20a93a0e2a354fff4e8360ef79582a75d262b2e6dfcd76a5c2bb00e719a05ca79c7f5f0f3fefa975713251e65cb9f2c09e76cb6c3b16888b SHA512 013503fd16bcb609c624c9952a5448e612b81150db9ce60b5a51acbb57b62ce1cf0e7c5dd4a58c110ca7895c86effef24d8fe55ea3f316c9e47d5c549a33180c AUX boost-1.55.0-context-x32.patch 1077 BLAKE2B 76ff0e52ca076ccddd58a469b4531f49782d6373bfa9d65ac63fe365fe90d25d10557fa041584f8d0bcf04438a90e78b69624006220f53983a456485b868cbc9 SHA512 0e2e45abe5833396508666355e26bafe114fa4ada628b24d8d9953268edddcb2f8e3dcfe8bc7f27d6c1794418990dc9ef914c936dfa64ed6e5e647a40e3f8a73 AUX boost-1.56.0-build-auto_index-tool.patch 412 BLAKE2B 4449dbe600547f339eba9afc4d3da5310f08baa2dd1beb30f9c1b4076e95e867c8fa84fef8a84e2aa38bf35368173e52057e73499a66766cbb81e2d3312fa07b SHA512 9fe245adddf76375d0ee8066952c46d229c9e37fdce83ff608fcc1fb5942b1c226a0fba6e28f859bbcd58863dc49a356f32c7fcc3b90baca4069c6bdc9c0f203 -AUX boost-1.63.0-fix-python.patch 4210 BLAKE2B f39a501c9a2718ff77300d97ec8d1ec0a99e90b6f4f2f4ef970a5daaebe1065a870d98f759c0e946707251a93bda0c54f3f864b1e4189f915226d638738e7dca SHA512 0f390cae5a53f48f548e65149aaca4b1191ca6610863e7e471686556107c8ac398eb4bcad71a92849e941cad031cec9cbd543c646ee122238579ca881c420aad AUX boost-1.65.0-fix-python.patch 9210 BLAKE2B 31e32cfbc8fa0c4e8a5c142f56a4a7b1d06173b6a5b7b4bc1c2fcc64e645eac22e9e4f85c8b278a1fcefcb15e389a38d82ec90facdbb1e7812f9f4cc77d2fe93 SHA512 df2e8841b3415724b2920230da36e3e3aa610a5d7ee7dcada847cb4d6c921405ef4f0c034f96d1ac078d33bb3f32408b748cf7835f173b6e7692c76c6135e2f2 -AUX boost-1.67.0-fix-python.patch 6017 BLAKE2B e249ea8f387bb2b87f58bb2a538992ea20c12ad2a127da940bc86f1b6f5231a5d8b77b46cd8e946b723b2e0a2d05240e1bbf66ab738980f95f2407e325bc6bc5 SHA512 bcd0c5fad2dc5ca4964f6b366fb5bb2d5e016b0d67480a3abebee03743d337c8514b580d610e9cbe215bd1602a6846963aeab7f04ac72cbc0ed146c7869b4f32 -AUX boost-1.67.0-lockfree-next.patch 661 BLAKE2B fa81c2d9628645e3980dcf66019c74c47163e19c27680200695fed8273bb40f137e612d835413dccb7301e004440096cb30601c28921af9515c9d54e5ca0b4ac SHA512 9c11e719679262b071195474c8595ae0c324d5a046df89637c5636f8b3e0fcefd4e32c28c2d18ac2a620a5bde46750372b6295d84b55283d48033eb42a0fcb6c -DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6ae289996501812cd8b13bf74bbe9b677d0110948265cab59a60deb36c4fc08440af74ac5a5219ea4eaea4fa6918f SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad +AUX boost-1.69.0-context-x32.patch 1116 BLAKE2B 16b6ddbdc47d72d5afd39e61441f9f094dff8db46bd7fa4e04e5a8b132c8894c51db506d20356c352022f42d5b9a9923f23c5db2b0f9fa1c64ceeb4e50e16be1 SHA512 cf76691d4adbc4b43f468c587fea23c43e1b337ba7eebff2c856b0403bf32b78826f483faca25a4459c1d47eabbd5b67c65863a4d44407990178022433f718bf DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd -DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b -DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8 -EBUILD boost-1.63.0.ebuild 12466 BLAKE2B 7aedf34bbef100bb52457e3906422ae22435a34486a921f60a7b0a5a4f48f251228331f1cebb9317c1c43355a8dffb4f9f555e4477136fc4cfc51f057b118c0f SHA512 215acc04fd1fc80271bb1d64c5e508a1c9162613ea526aabf291445f58a6f547155c0d000987a3a98c8dde8387db012978c42b140d03352b52f91df33d18aa5a -EBUILD boost-1.65.0.ebuild 12440 BLAKE2B 777d2025ef7319680d49995f9570250d9a9305e20e1553451e8f4b802debe147a5631ebf29a75a44c53bc044fea57b5c167401c333f2599c583c66ca212e4855 SHA512 34414d084369ef1d225881a44dbf187141aebb689b8d06d4ee0a34952f58447fbb0ef44683ed1d87305305599c86275ebbb38e844e54bfa70d99ee32fa7de8c9 -EBUILD boost-1.66.0.ebuild 12459 BLAKE2B 6653ddd8bc307f9c91166bac312ee146e174bf09cfbc28afb3dbb8aff8bf286bb37f766bc2735f0cedd5cb113bd26637a3116bdeb6be0afca93d6bd80a89c093 SHA512 6ccbd309c502220afb9da6abedb36fb52791dcaee848acc102c1fcf69f538e3477939b14c0a1892fd31babf3002307adae2b310503d1f9bd17d2393611b2ce6a -EBUILD boost-1.67.0-r1.ebuild 12403 BLAKE2B f3087055657b4541f6a1c8bdec9dd4128fbd77092971b402c33f7edc56a2cb91ae5f60eb198497eabad302e476fdc35943057906aab04b2ff7b47eb1fec2a4ff SHA512 14ef3c29398e5b4e1a034af93ed4789c8a76a85e7fb177d44f6b6a7845595892dadfe9ea72c06506a810c36ecbef06a19472f32999a799c931e81b8b268f3bd6 -MISC metadata.xml 1526 BLAKE2B 11c2e9eb5b41e3fa0b100d58d672acefe4a949d0fa428b4ce1d100cc8f95eec7c1279c725741033ca50f61cb258b388270c18361a5b714a684398cc3ae1a445c SHA512 4ba131f2492ae41f642a28dd69e5bd1d5d79c013e42a6c18ba135b36d470990ea20c8aa7cec6e3cb1d6ea8d7f6b6a5b45efb4b3dcba198bcf43809eff0f65ae6 +DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49 +EBUILD boost-1.65.0.ebuild 12435 BLAKE2B 6d676b8dad7340828f95a16aece6296c006cae693a1ee7bf2e8dbcb82da443f8aa0c460eaf2ab1f5f0a5c26ec50073db463919c3a3cff2015065d371b1bdc375 SHA512 f04be75c396b21449cde08f40a79e40a733fba706a7170fa233d0c6a4e568bb55d9a539ec9eaa65316de41e24c0b5e739f3ca08fd6a8760e1999caf6c2b0a688 +EBUILD boost-1.70.0.ebuild 10162 BLAKE2B 67b85064587e5f5efdd73492914dd650c53fbd00d4fcaaa02982308db30f77f7adca171b22f0be37d478a56861a61ac74d30f1582e8d5e053c770a19c331d893 SHA512 85c2302eb83645f0e9033efae07acf8b2c66ba1bdaccc8597509a8ba6e001913ac1e235257bf248fab2590761db881f1a2fca8ca093b0331d52cdc6be48eab63 +MISC metadata.xml 1343 BLAKE2B ef8b2150e8e0b69fdb1c6878c8ca7da10bf74a896514139b6e00053803d9e4271e7144661e975d0b497ba298e8f9ae74104ce7ccc4ef0e824a6db8695b0fde14 SHA512 4fd2419b80d6f55d5cd41eb6d464d6a04b036e032a5f5361d91f2911190129af017b6b15203ac282c88c3f256cfb0d171d73b51d1a0f3a570e4a23076f5bc2b0 diff --git a/dev-libs/boost/boost-1.63.0.ebuild b/dev-libs/boost/boost-1.63.0.ebuild deleted file mode 100644 index 4f43846220fc..000000000000 --- a/dev-libs/boost/boost-1.63.0.ebuild +++ /dev/null @@ -1,440 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) - -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal - -MY_P="${PN}_$(replace_all_version_separators _)" -MAJOR_V="$(get_version_component_range 1-2)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122 -KEYWORDS="alpha amd64 arm ~arm64 hppa ia64 ~mips ppc ppc64 ~s390 ~sh sparc x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt" - -IUSE="context debug doc icu +nls mpi python static-libs +threads tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( ${PYTHON_DEPS} ) - app-arch/bzip2[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - !app-admin/eselect-boost" -DEPEND="${RDEPEND} - =dev-util/boost-build-${MAJOR_V}*" -REQUIRED_USE=" - mpi? ( threads ) - python? ( ${PYTHON_REQUIRED_USE} )" - -S="${WORKDIR}/${MY_P}" - -# the tests will never fail because these are not intended as sanity -# tests at all. They are more a way for upstream to check their own code -# on new compilers. Since they would either be completely unreliable -# (failing for no good reason) or completely useless (never failing) -# there is no point in having them in the ebuild to begin with. -RESTRICT="test" - -PATCHES=( - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" - "${FILESDIR}/${PN}-1.55.0-context-x32.patch" - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" - "${FILESDIR}/${PN}-1.63.0-fix-python.patch" -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -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 python_bindings_needed; then - # boost expects libpython$(pyver) and doesn't allow overrides - # and the build system is so creepy that it's easier just to - # provide a symlink (linker's going to use SONAME anyway) - # TODO: replace it with proper override one day - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die - - if tc-is-cross-compiler; then - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;" - else - # note: we need to provide version explicitly because of - # a bug in the build system: - # https://github.com/boostorg/build/pull/104 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;" - fi - fi - - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die -using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CFLAGS}" "${CXXFLAGS}" "${LDFLAGS}" ; -${mpi_configuration} -${python_configuration} -__EOF__ -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then - grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" || - ( - eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." - eerror "Boost can not be built in such configuration." - eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it." - die - ) - fi -} - -src_prepare() { - default - - # Do not try to build missing 'wave' tool, bug #522682 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die - - multilib_copy_sources -} - -ejam() { - local b2_opts=( - "--user-config=${BOOST_ROOT}/user-config.jam" - "$@" - ) - echo b2 "${b2_opts[@]}" - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - ) - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - elif [[ ${CHOST} == *-winnt* ]]; then - compiler=parity - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then - compilerVersion=trunk - else - compilerVersion=$($(tc-getCXX) -v | sed '1q' \ - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,') - fi - compilerExecutable=$(tc-getCXX) - fi - - # bug 298489 - if use ppc || use ppc64; then - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec - fi - - # Use C++14 globally as of 1.62 - append-cxxflags -std=c++14 - - use icu && OPTIONS+=( - "-sICU_PATH=${EPREFIX}/usr" - ) - use icu || OPTIONS+=( - --disable-icu - boost.locale.icu=off - ) - use mpi || OPTIONS+=( - --without-mpi - ) - use nls || OPTIONS+=( - --without-locale - ) - use context || OPTIONS+=( - --without-context - --without-coroutine - --without-coroutine2 - --without-fiber - ) - use threads || OPTIONS+=( - --without-thread - ) - - OPTIONS+=( - pch=off - --boost-build="${EPREFIX}"/usr/share/boost-build - --prefix="${ED%/}/usr" - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=$(usex static-libs shared,static shared) - ) - - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=( - -sNO_BZIP2=1 - ) -} - -multilib_src_compile() { - local -x BOOST_ROOT="${BUILD_DIR}" - PYTHON_DIRS="" - MPI_PYTHON_MODULE="" - - building() { - create_user-config.jam - - local PYTHON_OPTIONS - if python_bindings_needed; then - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}" - else - PYTHON_OPTIONS=" --without-python" - fi - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - || die "Building of Boost libraries failed" - - if python_bindings_needed; then - if [[ -z "${PYTHON_DIRS}" ]]; then - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)" - else - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - local dir - for dir in ${PYTHON_DIRS}; do - mv ${dir} ${dir}-${EPYTHON} \ - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed" - done - - if use mpi; then - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then - die "Multiple mpi.so files found" - fi - else - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \ - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed" - fi - fi - } - if python_bindings_needed; then - python_foreach_impl building - else - building - fi - - if tools_needed; then - pushd tools >/dev/null || die - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install_all() { - if ! use python; then - rm -r "${ED%/}"/usr/include/boost/python* || die - fi - - if ! use nls; then - rm -r "${ED%/}"/usr/include/boost/locale || die - fi - - if ! use context; then - rm -r "${ED%/}"/usr/include/boost/context || die - rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die - rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost - fi -} - -multilib_src_install() { - local -x BOOST_ROOT="${BUILD_DIR}" - installation() { - create_user-config.jam - - local PYTHON_OPTIONS - if python_bindings_needed; then - local dir - for dir in ${PYTHON_DIRS}; do - cp -pr ${dir}-${EPYTHON} ${dir} \ - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed" - done - - if use mpi; then - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \ - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed" - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \ - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed" - fi - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}" - else - PYTHON_OPTIONS=" --without-python" - fi - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - --includedir="${ED%/}/usr/include" \ - --libdir="${ED%/}/usr/$(get_libdir)" \ - install || die "Installation of Boost libraries failed" - - if python_bindings_needed; then - rm -r ${PYTHON_DIRS} || die - - # Move mpi.so Python module to Python site-packages directory. - # https://svn.boost.org/trac/boost/ticket/2838 - if use mpi; then - local moddir=$(python_get_sitedir)/boost - # moddir already includes eprefix - mkdir -p "${D}${moddir}" || die - mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die - cat << EOF > "${D}${moddir}/__init__.py" || die -import sys -if sys.platform.startswith('linux'): - import DLFCN - flags = sys.getdlopenflags() - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL) - from . import mpi - sys.setdlopenflags(flags) - del DLFCN, flags -else: - from . import mpi -del sys -EOF - fi - - python_optimize - fi - } - if python_bindings_needed; then - python_foreach_impl installation - else - installation - fi - - pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die - - local ext=$(get_libname) - if use threads; then - local f - for f in *${ext}; do - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}} - done - fi - - popd >/dev/null || die - - if tools_needed; then - dobin dist/bin/* - - insinto /usr/share - doins -r dist/share/boostbook - fi - - # boost's build system truely sucks for not having a destdir. Because for - # this reason we are forced to build with a prefix that includes the - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the - # DESTROOT instread of the actual EPREFIX. There is no way out of here - # but to do it the dirty way of manually setting the right install_names. - if [[ ${CHOST} == *-darwin* ]]; then - einfo "Working around completely broken build-system(tm)" - local d - for d in "${ED%/}"/usr/lib/*.dylib; do - if [[ -f ${d} ]]; then - # fix the "soname" - ebegin " correcting install_name of ${d#${ED}}" - install_name_tool -id "/${d#${D}}" "${d}" - eend $? - # fix references to other libs - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "^libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - ebegin " correcting reference to ${r}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r}" \ - "${d}" - eend $? - done - fi - done - fi -} - -pkg_preinst() { - # Yai for having symlinks that are nigh-impossible to remove without - # resorting to dirty hacks like these. Removes lingering symlinks - # from the slotted versions. - local symlink - for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die -} diff --git a/dev-libs/boost/boost-1.65.0.ebuild b/dev-libs/boost/boost-1.65.0.ebuild index 370eb8ce9a92..25d033ea698d 100644 --- a/dev-libs/boost/boost-1.65.0.ebuild +++ b/dev-libs/boost/boost-1.65.0.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2018 Gentoo Foundation +# Copyright 1999-2019 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 -PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) +PYTHON_COMPAT=( python{2_7,3_{5,6}} ) inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal diff --git a/dev-libs/boost/boost-1.66.0.ebuild b/dev-libs/boost/boost-1.66.0.ebuild deleted file mode 100644 index 7cec3890e28d..000000000000 --- a/dev-libs/boost/boost-1.66.0.ebuild +++ /dev/null @@ -1,439 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 -PYTHON_COMPAT=( python{2_7,3_{4,5,6}} ) - -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal - -MY_P="${PN}_$(replace_all_version_separators _)" -MAJOR_V="$(get_version_component_range 1-2)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122 -#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt" - -IUSE="context debug doc icu +nls mpi python static-libs +threads tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( ${PYTHON_DEPS} ) - app-arch/bzip2[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - !app-admin/eselect-boost" -DEPEND="${RDEPEND} - =dev-util/boost-build-${MAJOR_V}*" -REQUIRED_USE=" - mpi? ( threads ) - python? ( ${PYTHON_REQUIRED_USE} )" - -S="${WORKDIR}/${MY_P}" - -# the tests will never fail because these are not intended as sanity -# tests at all. They are more a way for upstream to check their own code -# on new compilers. Since they would either be completely unreliable -# (failing for no good reason) or completely useless (never failing) -# there is no point in having them in the ebuild to begin with. -RESTRICT="test" - -PATCHES=( - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" - "${FILESDIR}/${PN}-1.55.0-context-x32.patch" - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" - "${FILESDIR}/${PN}-1.65.0-fix-python.patch" -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -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 python_bindings_needed; then - # boost expects libpython$(pyver) and doesn't allow overrides - # and the build system is so creepy that it's easier just to - # provide a symlink (linker's going to use SONAME anyway) - # TODO: replace it with proper override one day - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die - - if tc-is-cross-compiler; then - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;" - else - # note: we need to provide version explicitly because of - # a bug in the build system: - # https://github.com/boostorg/build/pull/104 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;" - fi - fi - - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die -using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CFLAGS}" "${CXXFLAGS}" "${LDFLAGS}" ; -${mpi_configuration} -${python_configuration} -__EOF__ -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then - grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" || - ( - eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." - eerror "Boost can not be built in such configuration." - eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it." - die - ) - fi -} - -src_prepare() { - default - - # Do not try to build missing 'wave' tool, bug #522682 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die - - multilib_copy_sources -} - -ejam() { - local b2_opts=( - "--user-config=${BOOST_ROOT}/user-config.jam" - "$@" - ) - echo b2 "${b2_opts[@]}" - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - ) - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - elif [[ ${CHOST} == *-winnt* ]]; then - compiler=parity - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then - compilerVersion=trunk - else - compilerVersion=$($(tc-getCXX) -v | sed '1q' \ - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,') - fi - compilerExecutable=$(tc-getCXX) - fi - - # bug 298489 - if use ppc || use ppc64; then - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec - fi - - # Use C++14 globally as of 1.62 - append-cxxflags -std=c++14 - - use icu && OPTIONS+=( - "-sICU_PATH=${EPREFIX}/usr" - ) - use icu || OPTIONS+=( - --disable-icu - boost.locale.icu=off - ) - use mpi || OPTIONS+=( - --without-mpi - ) - use nls || OPTIONS+=( - --without-locale - ) - use context || OPTIONS+=( - --without-context - --without-coroutine - --without-fiber - ) - use threads || OPTIONS+=( - --without-thread - ) - - OPTIONS+=( - pch=off - --boost-build="${EPREFIX}"/usr/share/boost-build - --prefix="${ED%/}/usr" - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=$(usex static-libs shared,static shared) - ) - - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=( - -sNO_BZIP2=1 - ) -} - -multilib_src_compile() { - local -x BOOST_ROOT="${BUILD_DIR}" - PYTHON_DIRS="" - MPI_PYTHON_MODULE="" - - building() { - create_user-config.jam - - local PYTHON_OPTIONS - if python_bindings_needed; then - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}" - else - PYTHON_OPTIONS=" --without-python" - fi - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - || die "Building of Boost libraries failed" - - if python_bindings_needed; then - if [[ -z "${PYTHON_DIRS}" ]]; then - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)" - else - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - local dir - for dir in ${PYTHON_DIRS}; do - mv ${dir} ${dir}-${EPYTHON} \ - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed" - done - - if use mpi; then - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then - die "Multiple mpi.so files found" - fi - else - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \ - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed" - fi - fi - } - if python_bindings_needed; then - python_foreach_impl building - else - building - fi - - if tools_needed; then - pushd tools >/dev/null || die - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install_all() { - if ! use python; then - rm -r "${ED%/}"/usr/include/boost/python* || die - fi - - if ! use nls; then - rm -r "${ED%/}"/usr/include/boost/locale || die - fi - - if ! use context; then - rm -r "${ED%/}"/usr/include/boost/context || die - rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die - rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost - fi -} - -multilib_src_install() { - local -x BOOST_ROOT="${BUILD_DIR}" - installation() { - create_user-config.jam - - local PYTHON_OPTIONS - if python_bindings_needed; then - local dir - for dir in ${PYTHON_DIRS}; do - cp -pr ${dir}-${EPYTHON} ${dir} \ - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed" - done - - if use mpi; then - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \ - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed" - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \ - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed" - fi - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}" - else - PYTHON_OPTIONS=" --without-python" - fi - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - --includedir="${ED%/}/usr/include" \ - --libdir="${ED%/}/usr/$(get_libdir)" \ - install || die "Installation of Boost libraries failed" - - if python_bindings_needed; then - rm -r ${PYTHON_DIRS} || die - - # Move mpi.so Python module to Python site-packages directory. - # https://svn.boost.org/trac/boost/ticket/2838 - if use mpi; then - local moddir=$(python_get_sitedir)/boost - # moddir already includes eprefix - mkdir -p "${D}${moddir}" || die - mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die - cat << EOF > "${D}${moddir}/__init__.py" || die -import sys -if sys.platform.startswith('linux'): - import DLFCN - flags = sys.getdlopenflags() - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL) - from . import mpi - sys.setdlopenflags(flags) - del DLFCN, flags -else: - from . import mpi -del sys -EOF - fi - - python_optimize - fi - } - if python_bindings_needed; then - python_foreach_impl installation - else - installation - fi - - pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die - - local ext=$(get_libname) - if use threads; then - local f - for f in *${ext}; do - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}} - done - fi - - popd >/dev/null || die - - if tools_needed; then - dobin dist/bin/* - - insinto /usr/share - doins -r dist/share/boostbook - fi - - # boost's build system truely sucks for not having a destdir. Because for - # this reason we are forced to build with a prefix that includes the - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the - # DESTROOT instread of the actual EPREFIX. There is no way out of here - # but to do it the dirty way of manually setting the right install_names. - if [[ ${CHOST} == *-darwin* ]]; then - einfo "Working around completely broken build-system(tm)" - local d - for d in "${ED%/}"/usr/lib/*.dylib; do - if [[ -f ${d} ]]; then - # fix the "soname" - ebegin " correcting install_name of ${d#${ED}}" - install_name_tool -id "/${d#${D}}" "${d}" - eend $? - # fix references to other libs - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "^libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - ebegin " correcting reference to ${r}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r}" \ - "${d}" - eend $? - done - fi - done - fi -} - -pkg_preinst() { - # Yai for having symlinks that are nigh-impossible to remove without - # resorting to dirty hacks like these. Removes lingering symlinks - # from the slotted versions. - local symlink - for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die -} diff --git a/dev-libs/boost/boost-1.67.0-r1.ebuild b/dev-libs/boost/boost-1.67.0-r1.ebuild deleted file mode 100644 index 1c9de953032d..000000000000 --- a/dev-libs/boost/boost-1.67.0-r1.ebuild +++ /dev/null @@ -1,420 +0,0 @@ -# Copyright 1999-2018 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 -PYTHON_COMPAT=( python{2_7,3_{4,5,6,7}} ) - -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal - -MY_P="${PN}_$(ver_rs 1- _)" -MAJOR_V="$(ver_cut 1-2)" - -DESCRIPTION="Boost Libraries for C++" -HOMEPAGE="https://www.boost.org/" -SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2" - -LICENSE="Boost-1.0" -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122 -#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt" - -IUSE="context debug doc icu +nls mpi python static-libs +threads tools" - -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) - python? ( - ${PYTHON_DEPS} - >dev-python/numpy-1.7[${PYTHON_USEDEP}] - ) - app-arch/bzip2[${MULTILIB_USEDEP}] - sys-libs/zlib[${MULTILIB_USEDEP}] - !app-admin/eselect-boost" -DEPEND="${RDEPEND} - =dev-util/boost-build-${MAJOR_V}*" -REQUIRED_USE=" - mpi? ( threads ) - python? ( ${PYTHON_REQUIRED_USE} )" - -S="${WORKDIR}/${MY_P}" - -# the tests will never fail because these are not intended as sanity -# tests at all. They are more a way for upstream to check their own code -# on new compilers. Since they would either be completely unreliable -# (failing for no good reason) or completely useless (never failing) -# there is no point in having them in the ebuild to begin with. -RESTRICT="test" - -PATCHES=( - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" - "${FILESDIR}/${PN}-1.55.0-context-x32.patch" - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" - "${FILESDIR}/${PN}-1.67.0-fix-python.patch" - "${FILESDIR}/${PN}-1.67.0-lockfree-next.patch" -) - -python_bindings_needed() { - multilib_is_native_abi && use python -} - -tools_needed() { - multilib_is_native_abi && use tools -} - -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 python_bindings_needed; then - # boost expects libpython$(pyver) and doesn't allow overrides - # and the build system is so creepy that it's easier just to - # provide a symlink (linker's going to use SONAME anyway) - # TODO: replace it with proper override one day - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die - - if tc-is-cross-compiler; then - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;" - else - # note: we need to provide version explicitly because of - # a bug in the build system: - # https://github.com/boostorg/build/pull/104 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;" - fi - fi - - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__ || die -using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CFLAGS}" "${CXXFLAGS}" "${LDFLAGS}" ; -${mpi_configuration} -${python_configuration} -__EOF__ -} - -pkg_setup() { - # Bail out on unsupported build configuration, bug #456792 - if [[ -f "${EROOT%/}/etc/site-config.jam" ]]; then - grep -q gentoorelease "${EROOT%/}/etc/site-config.jam" && grep -q gentoodebug "${EROOT%/}/etc/site-config.jam" || - ( - eerror "You are using custom ${EROOT%/}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." - eerror "Boost can not be built in such configuration." - eerror "Please, either remove this file or add targets from ${EROOT%/}/usr/share/boost-build/site-config.jam to it." - die - ) - fi -} - -src_prepare() { - default - - # Do not try to build missing 'wave' tool, bug #522682 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die - - multilib_copy_sources -} - -ejam() { - local b2_opts=( - "--user-config=${BOOST_ROOT}/user-config.jam" - "$@" - ) - echo b2 "${b2_opts[@]}" - b2 "${b2_opts[@]}" -} - -src_configure() { - # Workaround for too many parallel processes requested, bug #506064 - [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" - - OPTIONS=( - $(usex debug gentoodebug gentoorelease) - "-j$(makeopts_jobs)" - -q - -d+2 - pch=off - $(usex icu "-sICU_PATH=${EPREFIX}/usr" '--disable-icu boost.locale.icu=off') - $(usex mpi '' '--without-mpi') - $(usex nls '' '--without-locale') - $(usex context '' '--without-context --without-coroutine --without-fiber') - $(usex threads '' '--without-thread') - --boost-build="${EPREFIX}"/usr/share/boost-build - --prefix="${ED%/}/usr" - --layout=system - # building with threading=single is currently not possible - # https://svn.boost.org/trac/boost/ticket/7105 - threading=multi - link=$(usex static-libs shared,static shared) - $([[ ${CHOST} == *-winnt* ]] && printf -- '-sNO_BZIP2=1\n') - ) - - if [[ ${CHOST} == *-darwin* ]]; then - # We need to add the prefix, and in two cases this exceeds, so prepare - # for the largest possible space allocation. - append-ldflags -Wl,-headerpad_max_install_names - elif [[ ${CHOST} == *-winnt* ]]; then - compiler=parity - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then - compilerVersion=trunk - else - compilerVersion=$($(tc-getCXX) -v | sed '1q' \ - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,') || die "sed failed" - fi - compilerExecutable=$(tc-getCXX) - fi - - # bug 298489 - if use ppc || use ppc64; then - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec - fi - - # Use C++14 globally as of 1.62 - append-cxxflags -std=c++14 -} - -multilib_src_compile() { - local -x BOOST_ROOT="${BUILD_DIR}" - PYTHON_DIRS="" - MPI_PYTHON_MODULE="" - - building() { - create_user-config.jam - - local PYTHON_OPTIONS - if python_bindings_needed; then - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}" - else - PYTHON_OPTIONS=" --without-python" - fi - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - || die "Building of Boost libraries failed" - - if python_bindings_needed; then - if [[ -z "${PYTHON_DIRS}" ]]; then - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)" - else - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - local dir - for dir in ${PYTHON_DIRS}; do - mv ${dir} ${dir}-${EPYTHON} \ - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed" - done - - if use mpi; then - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then - die "Multiple mpi.so files found" - fi - else - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then - die "Inconsistent structure of build directories" - fi - fi - - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \ - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed" - fi - fi - } - if python_bindings_needed; then - python_foreach_impl building - else - building - fi - - if tools_needed; then - pushd tools >/dev/null || die - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - || die "Building of Boost tools failed" - popd >/dev/null || die - fi -} - -multilib_src_install_all() { - if ! use python; then - rm -r "${ED%/}"/usr/include/boost/python* || die - fi - - if ! use nls; then - rm -r "${ED%/}"/usr/include/boost/locale || die - fi - - if ! use context; then - rm -r "${ED%/}"/usr/include/boost/context || die - rm -r "${ED%/}"/usr/include/boost/coroutine{,2} || die - rm "${ED%/}"/usr/include/boost/asio/spawn.hpp || die - fi - - if use doc; then - # find extraneous files that shouldn't be installed - # as part of the documentation and remove them. - find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die - find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die - find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die - - docinto html - dodoc *.{htm,html,png,css} - dodoc -r doc libs more tools - - # To avoid broken links - dodoc LICENSE_1_0.txt - - dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost - fi -} - -multilib_src_install() { - local -x BOOST_ROOT="${BUILD_DIR}" - installation() { - create_user-config.jam - - local PYTHON_OPTIONS - if python_bindings_needed; then - local dir - for dir in ${PYTHON_DIRS}; do - cp -pr ${dir}-${EPYTHON} ${dir} \ - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed" - done - - if use mpi; then - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \ - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed" - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \ - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed" - fi - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}" - else - PYTHON_OPTIONS=" --without-python" - fi - - ejam \ - "${OPTIONS[@]}" \ - ${PYTHON_OPTIONS} \ - --includedir="${ED%/}/usr/include" \ - --libdir="${ED%/}/usr/$(get_libdir)" \ - install || die "Installation of Boost libraries failed" - - if python_bindings_needed; then - rm -r ${PYTHON_DIRS} || die - - # Move mpi.so Python module to Python site-packages directory. - # https://svn.boost.org/trac/boost/ticket/2838 - if use mpi; then - local moddir=$(python_get_sitedir)/boost - # moddir already includes eprefix - mkdir -p "${D}${moddir}" || die - mv "${ED%/}/usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die - cat << EOF > "${D}${moddir}/__init__.py" || die -import sys -if sys.platform.startswith('linux'): - import DLFCN - flags = sys.getdlopenflags() - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL) - from . import mpi - sys.setdlopenflags(flags) - del DLFCN, flags -else: - from . import mpi -del sys -EOF - fi - - python_optimize - fi - } - if python_bindings_needed; then - python_foreach_impl installation - else - installation - fi - - pushd "${ED%/}/usr/$(get_libdir)" >/dev/null || die - - local ext=$(get_libname) - if use threads; then - local f - for f in *${ext}; do - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}} - done - fi - - popd >/dev/null || die - - if tools_needed; then - dobin dist/bin/* - - insinto /usr/share - doins -r dist/share/boostbook - fi - - # boost's build system truely sucks for not having a destdir. Because for - # this reason we are forced to build with a prefix that includes the - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the - # DESTROOT instread of the actual EPREFIX. There is no way out of here - # but to do it the dirty way of manually setting the right install_names. - if [[ ${CHOST} == *-darwin* ]]; then - einfo "Working around completely broken build-system(tm)" - local d - for d in "${ED%/}"/usr/lib/*.dylib; do - if [[ -f ${d} ]]; then - # fix the "soname" - ebegin " correcting install_name of ${d#${ED}}" - install_name_tool -id "/${d#${D}}" "${d}" - eend $? - # fix references to other libs - refs=$(otool -XL "${d}" | \ - sed -e '1d' -e 's/^\t//' | \ - grep "^libboost_" | \ - cut -f1 -d' ') - local r - for r in ${refs}; do - ebegin " correcting reference to ${r}" - install_name_tool -change \ - "${r}" \ - "${EPREFIX}/usr/lib/${r}" \ - "${d}" - eend $? - done - fi - done - fi -} - -pkg_preinst() { - # Yai for having symlinks that are nigh-impossible to remove without - # resorting to dirty hacks like these. Removes lingering symlinks - # from the slotted versions. - local symlink - for symlink in "${EROOT%/}/usr/include/boost" "${EROOT%/}/usr/share/boostbook"; do - if [[ -L ${symlink} ]]; then - rm -f "${symlink}" || die - fi - done - - # some ancient installs still have boost cruft lying around - # for unknown reasons, causing havoc for reverse dependencies - # Bug: 607734 - rm -rf "${EROOT%/}"/usr/include/boost-1_[3-5]? || die -} diff --git a/dev-libs/boost/boost-1.70.0.ebuild b/dev-libs/boost/boost-1.70.0.ebuild new file mode 100644 index 000000000000..570df6cc8443 --- /dev/null +++ b/dev-libs/boost/boost-1.70.0.ebuild @@ -0,0 +1,332 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} ) + +inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal + +MY_P="${PN}_$(ver_rs 1- _)" +MAJOR_V="$(ver_cut 1-2)" + +DESCRIPTION="Boost Libraries for C++" +HOMEPAGE="https://www.boost.org/" +SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2" + +LICENSE="Boost-1.0" +SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122 +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x86-solaris ~x86-winnt" +IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd" +REQUIRED_USE=" + mpi? ( threads ) + python? ( ${PYTHON_REQUIRED_USE} )" + +# the tests will never fail because these are not intended as sanity +# tests at all. They are more a way for upstream to check their own code +# on new compilers. Since they would either be completely unreliable +# (failing for no good reason) or completely useless (never failing) +# there is no point in having them in the ebuild to begin with. +RESTRICT="test" + +RDEPEND=" + !app-admin/eselect-boost + !dev-libs/boost-numpy + bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] ) + icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] ) + !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] ) + lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] ) + mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] ) + python? ( + ${PYTHON_DEPS} + numpy? ( >=dev-python/numpy-1.14.5[${PYTHON_USEDEP}] ) + ) + zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] ) + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )" +DEPEND="${RDEPEND}" +BDEPEND="=dev-util/boost-build-${MAJOR_V}*" + +S="${WORKDIR}/${MY_P}" + +PATCHES=( + "${FILESDIR}"/${PN}-1.48.0-disable_icu_rpath.patch + "${FILESDIR}"/${PN}-1.69.0-context-x32.patch + "${FILESDIR}"/${PN}-1.56.0-build-auto_index-tool.patch +) + +python_bindings_needed() { + multilib_is_native_abi && use python +} + +tools_needed() { + multilib_is_native_abi && use tools +} + +create_user-config.jam() { + local user_config_jam="${BUILD_DIR}"/user-config.jam + if [[ -s ${user_config_jam} ]]; then + einfo "${user_config_jam} already exists, skipping configuration" + return + else + einfo "Creating configuration in ${user_config_jam}" + fi + + local compiler compiler_version compiler_executable="$(tc-getCXX)" + if [[ ${CHOST} == *-darwin* ]]; then + compiler="darwin" + compiler_version="$(gcc-fullversion)" + else + compiler="gcc" + compiler_version="$(gcc-version)" + fi + + if use mpi; then + local mpi_configuration="using mpi ;" + fi + + cat > "${user_config_jam}" <<- __EOF__ || die + using ${compiler} : ${compiler_version} : ${compiler_executable} : "${CFLAGS}" "${CXXFLAGS}" "${LDFLAGS}" ; + ${mpi_configuration} + __EOF__ + + if python_bindings_needed; then + append_to_user_config() { + local py_config + if tc-is-cross-compiler; then + py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;" + else + py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;" + fi + echo "${py_config}" >> "${user_config_jam}" || die + } + python_foreach_impl append_to_user_config + fi + + if python_bindings_needed && use numpy; then + einfo "Enabling support for NumPy extensions in Boost.Python" + else + einfo "Disabling support for NumPy extensions in Boost.Python" + + # Boost.Build does not allow for disabling of numpy + # extensions, thereby leading to automagic numpy + # https://github.com/boostorg/python/issues/111#issuecomment-280447482 + sed \ + -e 's/\[ unless \[ python\.numpy \] : no \]/no/g' \ + -i "${BUILD_DIR}"/libs/python/build/Jamfile || die + fi +} + +pkg_setup() { + # Bail out on unsupported build configuration, bug #456792 + if [[ -f "${EROOT}/etc/site-config.jam" ]]; then + if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}/etc/site-config.jam"; then + eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets." + eerror "Boost can not be built in such configuration." + eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it." + die "Unsupported target in ${EROOT}/etc/site-config.jam" + fi + fi +} + +src_prepare() { + default + + # Do not try to build missing 'wave' tool, bug #522682 + # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507 + sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die + + multilib_copy_sources +} + +ejam() { + create_user-config.jam + + local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" ) + if python_bindings_needed; then + append_to_b2_opts() { + b2_opts+=( python="${EPYTHON#python}" ) + } + python_foreach_impl append_to_b2_opts + else + b2_opts+=( --without-python ) + fi + b2_opts+=( "$@" ) + + echo b2 "${b2_opts[@]}" >&2 + b2 "${b2_opts[@]}" +} + +src_configure() { + # Workaround for too many parallel processes requested, bug #506064 + [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64" + + OPTIONS=( + $(usex debug gentoodebug gentoorelease) + "-j$(makeopts_jobs)" + -q + -d+2 + pch=off + $(usex icu "-sICU_PATH=${ESYSROOT}/usr" '--disable-icu boost.locale.icu=off') + $(usex mpi '' '--without-mpi') + $(usex nls '' '--without-locale') + $(usex context '' '--without-context --without-coroutine --without-fiber') + $(usex threads '' '--without-thread') + --without-stacktrace + --boost-build="${BROOT}"/usr/share/boost-build + --prefix="${ED}/usr" + --layout=system + # CMake has issues working with multiple python impls, + # disable cmake config generation for the time being + # https://github.com/boostorg/python/issues/262#issuecomment-483069294 + --no-cmake-config + # building with threading=single is currently not possible + # https://svn.boost.org/trac/boost/ticket/7105 + threading=multi + link=$(usex static-libs shared,static shared) + # this seems to be the only way to disable compression algorithms + # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build + -sNO_BZIP2=$(usex bzip2 0 1) + -sNO_LZMA=$(usex lzma 0 1) + -sNO_ZLIB=$(usex zlib 0 1) + -sNO_ZSTD=$(usex zstd 0 1) + ) + + 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 C++14 globally as of 1.62 + append-cxxflags -std=c++14 +} + +multilib_src_compile() { + ejam "${OPTIONS[@]}" || die + + if tools_needed; then + pushd tools >/dev/null || die + ejam \ + "${OPTIONS[@]}" \ + || die "Building of Boost tools failed" + popd >/dev/null || die + fi +} + +multilib_src_install_all() { + if ! use numpy; then + rm -r "${ED}"/usr/include/boost/python/numpy* || die + fi + + if ! use python; then + rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die + fi + + if ! use nls; then + rm -r "${ED}"/usr/include/boost/locale || die + fi + + if ! use context; then + rm -r "${ED}"/usr/include/boost/context || die + rm -r "${ED}"/usr/include/boost/coroutine{,2} || die + rm "${ED}"/usr/include/boost/asio/spawn.hpp || die + fi + + if use doc; then + # find extraneous files that shouldn't be installed + # as part of the documentation and remove them. + find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die + find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die + find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die + + docinto html + dodoc *.{htm,html,png,css} + dodoc -r doc libs more tools + + # To avoid broken links + dodoc LICENSE_1_0.txt + + dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost + fi +} + +multilib_src_install() { + ejam \ + "${OPTIONS[@]}" \ + --includedir="${ED}/usr/include" \ + --libdir="${ED}/usr/$(get_libdir)" \ + install || die "Installation of Boost libraries failed" + + pushd "${ED}/usr/$(get_libdir)" >/dev/null || die + + local ext=$(get_libname) + if use threads; then + local f + for f in *${ext}; do + dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}} + done + fi + + popd >/dev/null || die + + if tools_needed; then + dobin dist/bin/* + + insinto /usr/share + doins -r dist/share/boostbook + fi + + # boost's build system truely sucks for not having a destdir. Because for + # this reason we are forced to build with a prefix that includes the + # DESTROOT, dynamic libraries on Darwin end messed up, referencing the + # DESTROOT instread of the actual EPREFIX. There is no way out of here + # but to do it the dirty way of manually setting the right install_names. + if [[ ${CHOST} == *-darwin* ]]; then + einfo "Working around completely broken build-system(tm)" + local d + for d in "${ED}"/usr/lib/*.dylib; do + if [[ -f ${d} ]]; then + # fix the "soname" + ebegin " correcting install_name of ${d#${ED}}" + install_name_tool -id "/${d#${D}}" "${d}" + eend $? + # fix references to other libs + refs=$(otool -XL "${d}" | \ + sed -e '1d' -e 's/^\t//' | \ + grep "^libboost_" | \ + cut -f1 -d' ') + local r + for r in ${refs}; do + ebegin " correcting reference to ${r}" + install_name_tool -change \ + "${r}" \ + "${EPREFIX}/usr/lib/${r}" \ + "${d}" + eend $? + done + fi + done + fi +} + +pkg_preinst() { + # Yai for having symlinks that are nigh-impossible to remove without + # resorting to dirty hacks like these. Removes lingering symlinks + # from the slotted versions. + local symlink + for symlink in "${EROOT}/usr/include/boost" "${EROOT}/usr/share/boostbook"; do + if [[ -L ${symlink} ]]; then + rm -f "${symlink}" || die + fi + done + + # some ancient installs still have boost cruft lying around + # for unknown reasons, causing havoc for reverse dependencies + # Bug: 607734 + rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die +} diff --git a/dev-libs/boost/files/boost-1.63.0-fix-python.patch b/dev-libs/boost/files/boost-1.63.0-fix-python.patch deleted file mode 100644 index 18ca2f566711..000000000000 --- a/dev-libs/boost/files/boost-1.63.0-fix-python.patch +++ /dev/null @@ -1,138 +0,0 @@ ---- a/boostcpp.jam -+++ b/boostcpp.jam -@@ -104,7 +104,7 @@ - python-id = [ option.get "python-buildid" ] ; - if $(python-id) - { -- PYTHON_ID = [ regex.replace $(python-id) [*\\/:.\"\'] _ ] ; -+ PYTHON_ID = [ regex.replace $(python-id) [*\\/:\"\'] _ ] ; - } - - ---- a/libs/python/build/Jamfile -+++ b/libs/python/build/Jamfile -@@ -30,22 +30,6 @@ - ; - } - --rule find-py3-version --{ -- local versions = [ feature.values python ] ; -- local py3ver ; -- for local v in $(versions) -- { -- if $(v) >= 3.0 -- { -- py3ver = $(v) ; -- } -- } -- return $(py3ver) ; --} -- --py3-version = [ find-py3-version ] ; -- - project boost/python - : source-location ../src - ; -@@ -53,10 +37,16 @@ - rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } } - rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } } - --rule lib_boost_python ( is-py3 ? ) -+rule lib_boost_python - { -+ local python_major_version = [ MATCH "^([^.]+)" : [ feature.values python ] ] ; -+ local python2 ; -+ if $(python_major_version) = 2 -+ { -+ python2 = true ; -+ } - -- lib [ cond $(is-py3) : boost_python3 : boost_python ] -+ lib boost_python - : # sources - numeric.cpp - list.cpp -@@ -90,20 +80,9 @@ - : # requirements - static:BOOST_PYTHON_STATIC_LIB - BOOST_PYTHON_SOURCE -+ [ cond $(python2) : -fno-strict-aliasing ] - -- # On Windows, all code using Python has to link to the Python -- # import library. -- # -- # On *nix we never link libboost_python to libpython. When -- # extending Python, all Python symbols are provided by the -- # Python interpreter executable. When embedding Python, the -- # client executable is expected to explicitly link to -- # /python//python (the target representing libpython) itself. -- # -- # python_for_extensions is a target defined by Boost.Build to -- # provide the Python include paths, and on Windows, the Python -- # import library, as usage requirements. -- [ cond [ python.configured ] : /python//python_for_extensions ] -+ [ cond [ python.configured ] : /python//python ] - - # we prevent building when there is no python available - # as it's not possible anyway, and to cause dependents to -@@ -112,7 +91,6 @@ - config-warning - - on:BOOST_DEBUG_PYTHON -- [ cond $(is-py3) : $(py3-version) ] - - -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag - @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag -@@ -125,51 +103,8 @@ - ; - } - --rule lib_boost_numpy ( is-py3 ? ) --{ -- numpy-include = [ python.numpy-include ] ; -- lib [ cond $(is-py3) : boost_numpy3 : boost_numpy ] -- : # sources -- numpy/dtype.cpp -- numpy/matrix.cpp -- numpy/ndarray.cpp -- numpy/numpy.cpp -- numpy/scalars.cpp -- numpy/ufunc.cpp -- : # requirements -- [ cond [ python.numpy ] : /python//python_for_extensions ] -- [ unless [ python.numpy ] : no ] -- $(numpy-include) -- boost_python -- on:BOOST_DEBUG_PYTHON -- [ cond $(is-py3) : $(py3-version) ] -- -- -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag -- @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag -- -- : # default build -- shared -- : # usage requirements -- on:BOOST_DEBUG_PYTHON -- ; --} -- - libraries = boost_python ; --libraries3 = boost_python3 ; --if [ python.numpy ] --{ -- libraries += boost_numpy ; -- libraries3 += boost_numpy3 ; --} - - lib_boost_python ; --lib_boost_numpy ; -- --if $(py3-version) --{ -- lib_boost_python yes ; -- lib_boost_numpy yes ; -- libraries += $(libraries3) ; --} - - boost-install $(libraries) ; diff --git a/dev-libs/boost/files/boost-1.67.0-fix-python.patch b/dev-libs/boost/files/boost-1.67.0-fix-python.patch deleted file mode 100644 index 6f51152d12e3..000000000000 --- a/dev-libs/boost/files/boost-1.67.0-fix-python.patch +++ /dev/null @@ -1,153 +0,0 @@ -Python module needs to be built without these extra renames. -MPI module needs to reference correct python - -~Index: boost_1_64_0/libs/mpi/build/Jamfile.v2 -~=================================================================== -~--- boost_1_64_0.orig/libs/mpi/build/Jamfile.v2 -~+++ boost_1_64_0/libs/mpi/build/Jamfile.v2 -~@@ -61,10 +61,10 @@ libraries += boost_mpi ; -~ lib boost_mpi_python -~ : # Sources -~ python/serialize.cpp -~+ /user-config//boost_python_alias -~ : # Requirements -~ boost_mpi -~ /mpi//mpi [ mpi.extra-requirements ] -~- /boost/python//boost_python -~ shared:BOOST_MPI_DYN_LINK=1 -~ shared:BOOST_MPI_PYTHON_DYN_LINK=1 -~ shared:BOOST_PYTHON_DYN_LINK=1 -~@@ -92,8 +92,8 @@ libraries += boost_mpi ; -~ python/skeleton_and_content.cpp -~ python/status.cpp -~ python/py_timer.cpp -~+ /user-config//boost_python_alias -~ : # Requirements -~- /boost/python//boost_python -~ boost_mpi_python -~ boost_mpi -~ /mpi//mpi [ mpi.extra-requirements ] -Index: boost_1_67_0/libs/mpi/build/Jamfile.v2 -=================================================================== ---- boost_1_67_0.orig/libs/mpi/build/Jamfile.v2 -+++ boost_1_67_0/libs/mpi/build/Jamfile.v2 -@@ -60,33 +60,13 @@ libraries += boost_mpi ; - - if [ python.configured ] - { -- py2-version = [ py-version 2 ] ; -- py3-version = [ py-version 3 ] ; -- -- # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile. -- lib_boost_python(2) = boost_python ; -- lib_boost_python(3) = boost_python3 ; -- -- lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ; -- lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ; -- -- lib_boost_mpi_python(2) = boost_mpi_python ; -- lib_boost_mpi_python(3) = boost_mpi_python3 ; -- -- lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ; -- lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ; -- -- for local N in 2 3 -- { -- if $(py$(N)-version) -- { -- lib $(lib_boost_mpi_python($(py$(N)-version))) -+ lib boost_mpi_python - : # Sources - python/serialize.cpp - : # Requirements - boost_mpi - /mpi//mpi [ mpi.extra-requirements ] -- /boost/python//$(lib_boost_python($(py$(N)-version))) -+ /boost/python//boost_python - shared:BOOST_MPI_DYN_LINK=1 - shared:BOOST_MPI_PYTHON_DYN_LINK=1 - shared:BOOST_PYTHON_DYN_LINK=1 -@@ -94,12 +74,12 @@ libraries += boost_mpi ; - -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag - @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag - on:BOOST_DEBUG_PYTHON -- $(py$(N)-version) - : # Default build - shared - : # Usage requirements - /mpi//mpi [ mpi.extra-requirements ] - ; -+ libraries += boost_mpi_python ; - - python-extension mpi - : # Sources -@@ -116,8 +96,8 @@ libraries += boost_mpi ; - python/status.cpp - python/py_timer.cpp - : # Requirements -- /boost/python//$(lib_boost_python($(py$(N)-version))) -- $(lib_boost_mpi_python($(py$(N)-version))) -+ /boost/python//boost_python -+ boost_mpi_python - boost_mpi - /mpi//mpi [ mpi.extra-requirements ] - shared:BOOST_MPI_DYN_LINK=1 -@@ -125,16 +105,7 @@ libraries += boost_mpi ; - shared:BOOST_PYTHON_DYN_LINK=1 - shared shared - on:BOOST_DEBUG_PYTHON -- $(py$(N)-version) - ; -- -- libraries += $(lib_boost_mpi_python($(py$(N)-version))) ; -- } -- else -- { -- alias $(lib_boost_mpi_python($(N))) ; -- } -- } - } - } - else if ! ( --without-mpi in [ modules.peek : ARGV ] ) -Index: boost_1_67_0/libs/python/Jamfile -=================================================================== ---- boost_1_67_0.orig/libs/python/Jamfile -+++ boost_1_67_0/libs/python/Jamfile -@@ -36,9 +36,10 @@ local rule split-version ( version ) - # For example, Boost.Python built for Python 2.7 uses the suffix "27" - rule version-suffix ( version ) - { -- local major-minor = [ split-version $(version) ] ; -- local suffix = $(major-minor:J="") ; -- return $(suffix) ; -+ # local major-minor = [ split-version $(version) ] ; -+ # local suffix = $(major-minor:J="") ; -+ # return $(suffix) ; -+ return "" ; - } - - -diff -ur boost_1_67_0.orig/boostcpp.jam boost_1_67_0/boostcpp.jam ---- boost_1_67_0.orig/boostcpp.jam 2018-07-30 16:26:03.346187542 -0700 -+++ boost_1_67_0/boostcpp.jam 2018-07-30 16:26:18.839081472 -0700 -@@ -105,7 +105,7 @@ - python-id = [ option.get "python-buildid" ] ; - if $(python-id) - { -- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ; -+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" _ ] ; - } - - -diff -ur boost_1_67_0.orig/libs/python/Jamfile boost_1_67_0/libs/python/Jamfile ---- boost_1_67_0.orig/libs/python/Jamfile 2018-07-30 14:56:15.591366992 -0700 -+++ boost_1_67_0/libs/python/Jamfile 2018-07-30 16:26:31.662993677 -0700 -@@ -47,7 +47,7 @@ - python-id = [ option.get "python-buildid" ] ; - if $(python-id) - { -- PYTHON_ID = [ regex.replace $(python-id) "[*\\/:.\"\']" _ ] ; -+ PYTHON_ID = [ regex.replace $(python-id) "[*\\/:\"\']" _ ] ; - } - - rule python-tag ( name : type ? : property-set ) diff --git a/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch b/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch deleted file mode 100644 index acf9a96777e5..000000000000 --- a/dev-libs/boost/files/boost-1.67.0-lockfree-next.patch +++ /dev/null @@ -1,24 +0,0 @@ -https://bugs.gentoo.org/671724 - -From 12726cda009a855073b9bedbdce57b6ce7763da2 Mon Sep 17 00:00:00 2001 -From: Peter Dimov -Date: Sat, 2 Dec 2017 04:10:46 +0200 -Subject: [PATCH] Add #include ; no longer in utility.hpp - ---- - include/boost/lockfree/spsc_queue.hpp | 1 + - 1 file changed, 1 insertion(+) - ---- a/boost/lockfree/spsc_queue.hpp -+++ b/boost/lockfree/spsc_queue.hpp -@@ -17,6 +17,7 @@ - #include - #include - #include -+#include - #include - #include // for BOOST_LIKELY - --- -2.19.2 - diff --git a/dev-libs/boost/files/boost-1.69.0-context-x32.patch b/dev-libs/boost/files/boost-1.69.0-context-x32.patch new file mode 100644 index 000000000000..9ee3d545d618 --- /dev/null +++ b/dev-libs/boost/files/boost-1.69.0-context-x32.patch @@ -0,0 +1,38 @@ +--- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S ++++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S +@@ -24,6 +24,10 @@ + * * + ****************************************************************************************/ + ++#ifdef __x86_64__ ++#include "jump_x86_64_sysv_elf_gas.S" ++#else ++ + .file "jump_i386_sysv_elf_gas.S" + .text + .globl jump_fcontext +@@ -81,3 +85,5 @@ + + /* Mark that we don't need executable stack. */ + .section .note.GNU-stack,"",%progbits ++ ++#endif +--- a/libs/context/src/asm/make_i386_sysv_elf_gas.S ++++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S +@@ -24,6 +24,10 @@ + * * + ****************************************************************************************/ + ++#ifdef __x86_64__ ++#include "make_x86_64_sysv_elf_gas.S" ++#else ++ + .file "make_i386_sysv_elf_gas.S" + .text + .globl make_fcontext +@@ -105,3 +109,5 @@ + + /* Mark that we don't need executable stack. */ + .section .note.GNU-stack,"",%progbits ++ ++#endif diff --git a/dev-libs/boost/metadata.xml b/dev-libs/boost/metadata.xml index 4f85afb6e3f1..9d4579b80fb2 100644 --- a/dev-libs/boost/metadata.xml +++ b/dev-libs/boost/metadata.xml @@ -1,9 +1,9 @@ - - cpp@gentoo.org - Gentoo C++ Project + + soap@gentoo.org + David Seifert office@gentoo.org @@ -11,12 +11,12 @@ Build and install the Boost.Context (and Boost.Fiber) library and all other Boost libraries that depend on it - Build and install the boost tools (bcp, quickbook, inspect, wave) - 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. - Build and install only the debug version of the Boost libraries. Only enable this flag if you're developing against boost. - Build multi-thread-compatible libraries instead of single-threaded only. - Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries. + Build and install only the debug version of the Boost libraries. Only enable this flag if you're developing against boost. Install the full API documentation documentation. This takes over 200MB of extra disk space. + Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries. + Optionally build NumPy extensions when Boost.Python is enabled + Build multi-thread-compatible libraries instead of single-threaded only. + Build and install the boost tools (bcp, quickbook, inspect, wave) boost -- cgit v1.2.3