dev-util/boost-build: Version bump to 1.71.0
authorDavid Seifert <soap@gentoo.org>
Sat, 14 Sep 2019 18:29:41 +0000 (20:29 +0200)
committerDavid Seifert <soap@gentoo.org>
Sat, 14 Sep 2019 18:29:41 +0000 (20:29 +0200)
Bug: https://bugs.gentoo.org/624616
Package-Manager: Portage-2.3.76, Repoman-2.3.17
Signed-off-by: David Seifert <soap@gentoo.org>
dev-util/boost-build/Manifest
dev-util/boost-build/boost-build-1.71.0.ebuild [new file with mode: 0644]
dev-util/boost-build/files/boost-build-1.71.0-respect-c_ld-flags.patch [new file with mode: 0644]

index 5f5600925747ebcf842534defe4d35cd3ae161f5..c189b10ccc4c9c80c629970c001de44ae994401d 100644 (file)
@@ -1,2 +1,3 @@
 DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
 DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
+DIST boost_1_71_0.tar.bz2 100124647 BLAKE2B edf5a03d5a5a63ef5826ef3c19a5ee862a43eb93e8e3d76f8a0d1f2c23122f5a0535e045058110574cd19092f3199c28ab9dae53f9db05ffe8c0b0b8cdbe27a9 SHA512 b7937d50c4512cf13cadd0ca829de36cf2cbc6fb788f45b1d4565ad0753e2b206c545125a5862016c2f16016f2e4a6b687928963b466fff17c3e0a4437142c20
diff --git a/dev-util/boost-build/boost-build-1.71.0.ebuild b/dev-util/boost-build/boost-build-1.71.0.ebuild
new file mode 100644 (file)
index 0000000..2aa4b38
--- /dev/null
@@ -0,0 +1,122 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+inherit flag-o-matic prefix python-single-r1 toolchain-funcs
+
+MY_PV="$(ver_rs 1- _)"
+
+DESCRIPTION="A system for large project software construction, simple to use and powerful"
+HOMEPAGE="https://boostorg.github.io/build/"
+SRC_URI="https://dl.bintray.com/boostorg/release/${PV}/source/boost_${MY_PV}.tar.bz2"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~x64-cygwin ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="examples python test"
+RESTRICT="test"
+
+RDEPEND="python? ( ${PYTHON_DEPS} )
+       !<dev-libs/boost-1.35.0
+       !<=dev-util/boost-build-1.35.0-r1"
+DEPEND="${RDEPEND}
+       test? (
+               sys-apps/diffutils
+               ${PYTHON_DEPS}
+       )"
+
+REQUIRED_USE="
+       python? ( ${PYTHON_REQUIRED_USE} )
+       test? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.48.0-disable_python_rpath.patch
+       "${FILESDIR}"/${PN}-1.49.0-darwin-gentoo-toolchain.patch
+       "${FILESDIR}"/${PN}-1.62.0-sparc-no-default-flags.patch
+       "${FILESDIR}"/${PN}-1.66.0-add-none-feature-options.patch
+       "${FILESDIR}"/${PN}-1.71.0-respect-c_ld-flags.patch
+)
+
+pkg_setup() {
+       if use python || use test; then
+               python-single-r1_pkg_setup
+       fi
+}
+
+src_unpack() {
+       tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
+}
+
+src_prepare() {
+       default
+
+       pushd .. >/dev/null || die
+       eapply "${FILESDIR}/${PN}-1.54.0-fix-test.patch"
+       popd >/dev/null || die
+
+       # remove default -march/-mcpu definitions
+       # bjam is trying to be clever and injects -march= in order to
+       # optimize code for you. This breaks on 32-bit builds, because
+       # -march=i686 will not work on an i486 CHOST.
+       # https://bugs.gentoo.org/624616
+       sed -e '/^cpu-flags\s*gcc\s*OPTIONS/d' \
+               -e '/toolset\.flags\s*gcc\s*OPTIONS/d' \
+               -e "/cpu_flags('gcc',\s*'OPTIONS'/d" \
+               -i tools/gcc.{jam,py} || die "Failed removing -march/-mcpu"
+}
+
+src_configure() {
+       hprefixify engine/Jambase
+       if use python; then
+               # replace versions by user-selected one (TODO: fix this when slot-op
+               # deps are available to always match the best version available)
+               sed -i \
+                       -e "s|27 26 25 24 23 22|${EPYTHON#python}|" \
+                       engine/build.jam || die "sed failed"
+       fi
+
+       tc-export CXX
+}
+
+src_compile() {
+       cd engine || die
+       ./build.sh cxx -d+2 $(use_with python python "${ESYSROOT}"/usr) || die "building bjam failed"
+}
+
+src_test() {
+       cd ../test || die
+
+       local -x TMP="${T}"
+
+       DO_DIFF="${EPREFIX}/usr/bin/diff" "${EPYTHON}" test_all.py
+
+       if [[ -s test_results.txt ]]; then
+               eerror "At least one test failed: $(<test_results.txt)"
+               die "tests failed"
+       fi
+}
+
+src_install() {
+       dobin engine/{bjam,b2}
+
+       insinto /usr/share/boost-build
+       doins -r "${FILESDIR}/site-config.jam" \
+               ../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
+               build kernel options tools util
+
+       if ! use python; then
+               find "${ED}/usr/share/boost-build" -iname "*.py" -delete || die "removing experimental python files failed"
+       fi
+
+       dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
+
+       if use examples; then
+               docinto examples
+               dodoc -r ../example/.
+               docompress -x /usr/share/doc/${PF}/examples
+       fi
+}
diff --git a/dev-util/boost-build/files/boost-build-1.71.0-respect-c_ld-flags.patch b/dev-util/boost-build/files/boost-build-1.71.0-respect-c_ld-flags.patch
new file mode 100644 (file)
index 0000000..f51abea
--- /dev/null
@@ -0,0 +1,9 @@
+--- a/engine/build.sh
++++ b/engine/build.sh
+@@ -439,5 +439,5 @@
+ if check_debug_build "$@" ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
+ else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
+ fi
+-echo_run ${B2_CXX} ${CXXFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2
++echo_run ${B2_CXX} ${CPPFLAGS} ${CXXFLAGS} ${LDFLAGS} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2
+ echo_run cp b2 bjam