Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-libs/boost/files/, dev-libs/boost/, dev-util/boost-build/, profiles/, ...
Date: Sun, 14 Apr 2019 23:51:32
Message-Id: 1555285242.0c52eca5a522be8bf5c43d2f4da043553dbf36ce.soap@gentoo
1 commit: 0c52eca5a522be8bf5c43d2f4da043553dbf36ce
2 Author: David Seifert <soap <AT> gentoo <DOT> org>
3 AuthorDate: Sun Apr 14 23:40:42 2019 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Sun Apr 14 23:40:42 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0c52eca5
7
8 dev-libs/boost: Version bump to 1.70.0
9
10 * bzip2/lzma/zlib/zstd support can now be
11 disabled via USE flags explicitly.
12 * Upstream has fixed Boost.Python to finally
13 support building against multiple Python 3
14 implementations concurrently:
15
16 https://github.com/boostorg/python/commit/d4d41d94aecc
17
18 Going forward, Gentoo will stop modifying
19 the upstream build system for its multiple
20 implementations. This will lead to some
21 short-term pain, as the library pattern changes
22 from
23
24 libboost_python-3.6.so
25
26 to
27
28 libboost_python36.so
29
30 which is the canonical name used by upstream.
31 Changing this name should be avoided, as the
32 filename is also encoded as a macro in various
33 boost headers.
34
35 Bug: https://bugs.gentoo.org/631590
36 Closes: https://bugs.gentoo.org/653878
37 Closes: https://github.com/gentoo/gentoo/pull/11659
38 Package-Manager: Portage-2.3.62, Repoman-2.3.12
39 Signed-off-by: David Seifert <soap <AT> gentoo.org>
40
41 dev-libs/boost/Manifest | 1 +
42 dev-libs/boost/boost-1.70.0.ebuild | 327 +++++++++++++++++++++
43 .../boost/files/boost-1.69.0-context-x32.patch | 38 +++
44 ...-1.70.0-fix-python-cmake-duplicate-target.patch | 33 +++
45 dev-libs/boost/metadata.xml | 2 +
46 dev-util/boost-build/Manifest | 1 +
47 dev-util/boost-build/boost-build-1.70.0.ebuild | 142 +++++++++
48 profiles/arch/amd64-fbsd/package.use.mask | 4 +
49 profiles/package.mask | 5 +
50 9 files changed, 553 insertions(+)
51
52 diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
53 index 19a425758e8..2b2ef1bcd31 100644
54 --- a/dev-libs/boost/Manifest
55 +++ b/dev-libs/boost/Manifest
56 @@ -2,3 +2,4 @@ DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6a
57 DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
58 DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
59 DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8
60 +DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
61
62 diff --git a/dev-libs/boost/boost-1.70.0.ebuild b/dev-libs/boost/boost-1.70.0.ebuild
63 new file mode 100644
64 index 00000000000..6d40a9f7054
65 --- /dev/null
66 +++ b/dev-libs/boost/boost-1.70.0.ebuild
67 @@ -0,0 +1,327 @@
68 +# Copyright 1999-2019 Gentoo Authors
69 +# Distributed under the terms of the GNU General Public License v2
70 +
71 +EAPI=7
72 +
73 +PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )
74 +
75 +inherit flag-o-matic multiprocessing python-r1 toolchain-funcs multilib-minimal
76 +
77 +MY_P="${PN}_$(ver_rs 1- _)"
78 +MAJOR_V="$(ver_cut 1-2)"
79 +
80 +DESCRIPTION="Boost Libraries for C++"
81 +HOMEPAGE="https://www.boost.org/"
82 +SRC_URI="https://downloads.sourceforge.net/project/boost/${PN}/${PV}/${MY_P}.tar.bz2"
83 +
84 +LICENSE="Boost-1.0"
85 +SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
86 +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"
87 +IUSE="bzip2 context debug doc icu lzma +nls mpi numpy python static-libs +threads tools zlib zstd"
88 +REQUIRED_USE="
89 + mpi? ( threads )
90 + python? ( ${PYTHON_REQUIRED_USE} )"
91 +
92 +# the tests will never fail because these are not intended as sanity
93 +# tests at all. They are more a way for upstream to check their own code
94 +# on new compilers. Since they would either be completely unreliable
95 +# (failing for no good reason) or completely useless (never failing)
96 +# there is no point in having them in the ebuild to begin with.
97 +RESTRICT="test"
98 +
99 +RDEPEND="
100 + !app-admin/eselect-boost
101 + bzip2? ( app-arch/bzip2:=[${MULTILIB_USEDEP}] )
102 + icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
103 + !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
104 + lzma? ( app-arch/xz-utils:=[${MULTILIB_USEDEP}] )
105 + mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
106 + python? (
107 + ${PYTHON_DEPS}
108 + numpy? ( >=dev-python/numpy-1.14.5[${PYTHON_USEDEP}] )
109 + )
110 + zlib? ( sys-libs/zlib:=[${MULTILIB_USEDEP}] )
111 + zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )"
112 +DEPEND="${RDEPEND}
113 + =dev-util/boost-build-${MAJOR_V}*"
114 +
115 +S="${WORKDIR}/${MY_P}"
116 +
117 +PATCHES=(
118 + "${FILESDIR}"/${PN}-1.48.0-disable_icu_rpath.patch
119 + "${FILESDIR}"/${PN}-1.69.0-context-x32.patch
120 + "${FILESDIR}"/${PN}-1.56.0-build-auto_index-tool.patch
121 + "${FILESDIR}"/${PN}-1.70.0-fix-python-cmake-duplicate-target.patch
122 +)
123 +
124 +python_bindings_needed() {
125 + multilib_is_native_abi && use python
126 +}
127 +
128 +tools_needed() {
129 + multilib_is_native_abi && use tools
130 +}
131 +
132 +create_user-config.jam() {
133 + local user_config_jam="${BUILD_DIR}"/user-config.jam
134 + if [[ -s ${user_config_jam} ]]; then
135 + einfo "${user_config_jam} already exists, skipping configuration"
136 + return
137 + else
138 + einfo "Creating configuration in ${user_config_jam}"
139 + fi
140 +
141 + local compiler compiler_version compiler_executable="$(tc-getCXX)"
142 + if [[ ${CHOST} == *-darwin* ]]; then
143 + compiler="darwin"
144 + compiler_version="$(gcc-fullversion)"
145 + else
146 + compiler="gcc"
147 + compiler_version="$(gcc-version)"
148 + fi
149 +
150 + if use mpi; then
151 + local mpi_configuration="using mpi ;"
152 + fi
153 +
154 + cat > "${user_config_jam}" <<- __EOF__ || die
155 + using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
156 + ${mpi_configuration}
157 + __EOF__
158 +
159 + if python_bindings_needed; then
160 + append_to_user_config() {
161 + local py_config
162 + if tc-is-cross-compiler; then
163 + py_config="using python : ${EPYTHON#python} : : ${ESYSROOT}/usr/include/${EPYTHON} : ${ESYSROOT}/usr/$(get_libdir) ;"
164 + else
165 + py_config="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) ;"
166 + fi
167 + echo "${py_config}" >> "${user_config_jam}" || die
168 + }
169 + python_foreach_impl append_to_user_config
170 + fi
171 +
172 + if python_bindings_needed && use numpy; then
173 + einfo "Enabling support for NumPy extensions in Boost.Python"
174 + else
175 + einfo "Disabling support for NumPy extensions in Boost.Python"
176 +
177 + # Boost.Build does not allow for disabling of numpy
178 + # extensions, thereby leading to automagic numpy
179 + # https://github.com/boostorg/python/issues/111#issuecomment-280447482
180 + sed \
181 + -e 's/\[ unless \[ python\.numpy \] : <build>no \]/<build>no/g' \
182 + -i "${BUILD_DIR}"/libs/python/build/Jamfile || die
183 + fi
184 +}
185 +
186 +pkg_setup() {
187 + # Bail out on unsupported build configuration, bug #456792
188 + if [[ -f "${EROOT}/etc/site-config.jam" ]]; then
189 + if ! grep -q 'gentoo\(debug\|release\)' "${EROOT}/etc/site-config.jam"; then
190 + eerror "You are using custom ${EROOT}/etc/site-config.jam without defined gentoorelease/gentoodebug targets."
191 + eerror "Boost can not be built in such configuration."
192 + eerror "Please, either remove this file or add targets from ${EROOT}/usr/share/boost-build/site-config.jam to it."
193 + die "Unsupported target in ${EROOT}/etc/site-config.jam"
194 + fi
195 + fi
196 +}
197 +
198 +src_prepare() {
199 + default
200 +
201 + # Do not try to build missing 'wave' tool, bug #522682
202 + # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
203 + sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
204 +
205 + multilib_copy_sources
206 +}
207 +
208 +ejam() {
209 + create_user-config.jam
210 +
211 + local b2_opts=( "--user-config=${BUILD_DIR}/user-config.jam" )
212 + if python_bindings_needed; then
213 + append_to_b2_opts() {
214 + b2_opts+=( python="${EPYTHON#python}" )
215 + }
216 + python_foreach_impl append_to_b2_opts
217 + else
218 + b2_opts+=( --without-python )
219 + fi
220 + b2_opts+=( "$@" )
221 +
222 + echo b2 "${b2_opts[@]}" >&2
223 + b2 "${b2_opts[@]}"
224 +}
225 +
226 +src_configure() {
227 + # Workaround for too many parallel processes requested, bug #506064
228 + [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
229 +
230 + OPTIONS=(
231 + $(usex debug gentoodebug gentoorelease)
232 + "-j$(makeopts_jobs)"
233 + -q
234 + -d+2
235 + pch=off
236 + $(usex icu "-sICU_PATH=${EPREFIX}/usr" '--disable-icu boost.locale.icu=off')
237 + $(usex mpi '' '--without-mpi')
238 + $(usex nls '' '--without-locale')
239 + $(usex context '' '--without-context --without-coroutine --without-fiber')
240 + $(usex threads '' '--without-thread')
241 + --boost-build="${EPREFIX}"/usr/share/boost-build
242 + --prefix="${ED}/usr"
243 + --layout=system
244 + # building with threading=single is currently not possible
245 + # https://svn.boost.org/trac/boost/ticket/7105
246 + threading=multi
247 + link=$(usex static-libs shared,static shared)
248 + # this seems to be the only way to disable compression algorithms
249 + # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
250 + -sNO_BZIP2=$(usex bzip2 0 1)
251 + -sNO_LZMA=$(usex lzma 0 1)
252 + -sNO_ZLIB=$(usex zlib 0 1)
253 + -sNO_ZSTD=$(usex zstd 0 1)
254 + )
255 +
256 + if [[ ${CHOST} == *-darwin* ]]; then
257 + # We need to add the prefix, and in two cases this exceeds, so prepare
258 + # for the largest possible space allocation.
259 + append-ldflags -Wl,-headerpad_max_install_names
260 + fi
261 +
262 + # bug 298489
263 + if use ppc || use ppc64; then
264 + [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
265 + fi
266 +
267 + # Use C++14 globally as of 1.62
268 + append-cxxflags -std=c++14
269 +}
270 +
271 +multilib_src_compile() {
272 + ejam "${OPTIONS[@]}" || die
273 +
274 + if tools_needed; then
275 + pushd tools >/dev/null || die
276 + ejam \
277 + "${OPTIONS[@]}" \
278 + || die "Building of Boost tools failed"
279 + popd >/dev/null || die
280 + fi
281 +}
282 +
283 +multilib_src_install_all() {
284 + if ! use numpy; then
285 + rm -r "${ED}"/usr/include/boost/python/numpy* || die
286 + fi
287 +
288 + if ! use python; then
289 + rm -r "${ED}"/usr/include/boost/{python*,mpi/python*,parameter/aux_/python,parameter/python*} || die
290 + fi
291 +
292 + if ! use nls; then
293 + rm -r "${ED}"/usr/include/boost/locale || die
294 + fi
295 +
296 + if ! use context; then
297 + rm -r "${ED}"/usr/include/boost/context || die
298 + rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
299 + rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
300 + fi
301 +
302 + if use doc; then
303 + # find extraneous files that shouldn't be installed
304 + # as part of the documentation and remove them.
305 + find libs/*/* \( -iname 'test' -o -iname 'src' \) -exec rm -rf '{}' + || die
306 + find doc \( -name 'Jamfile.v2' -o -name 'build' -o -name '*.manifest' \) -exec rm -rf '{}' + || die
307 + find tools \( -name 'Jamfile.v2' -o -name 'src' -o -name '*.cpp' -o -name '*.hpp' \) -exec rm -rf '{}' + || die
308 +
309 + docinto html
310 + dodoc *.{htm,html,png,css}
311 + dodoc -r doc libs more tools
312 +
313 + # To avoid broken links
314 + dodoc LICENSE_1_0.txt
315 +
316 + dosym ../../../../include/boost /usr/share/doc/${PF}/html/boost
317 + fi
318 +}
319 +
320 +multilib_src_install() {
321 + ejam \
322 + "${OPTIONS[@]}" \
323 + --includedir="${ED}/usr/include" \
324 + --libdir="${ED}/usr/$(get_libdir)" \
325 + install || die "Installation of Boost libraries failed"
326 +
327 + pushd "${ED}/usr/$(get_libdir)" >/dev/null || die
328 +
329 + local ext=$(get_libname)
330 + if use threads; then
331 + local f
332 + for f in *${ext}; do
333 + dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
334 + done
335 + fi
336 +
337 + popd >/dev/null || die
338 +
339 + if tools_needed; then
340 + dobin dist/bin/*
341 +
342 + insinto /usr/share
343 + doins -r dist/share/boostbook
344 + fi
345 +
346 + # boost's build system truely sucks for not having a destdir. Because for
347 + # this reason we are forced to build with a prefix that includes the
348 + # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
349 + # DESTROOT instread of the actual EPREFIX. There is no way out of here
350 + # but to do it the dirty way of manually setting the right install_names.
351 + if [[ ${CHOST} == *-darwin* ]]; then
352 + einfo "Working around completely broken build-system(tm)"
353 + local d
354 + for d in "${ED}"/usr/lib/*.dylib; do
355 + if [[ -f ${d} ]]; then
356 + # fix the "soname"
357 + ebegin " correcting install_name of ${d#${ED}}"
358 + install_name_tool -id "/${d#${D}}" "${d}"
359 + eend $?
360 + # fix references to other libs
361 + refs=$(otool -XL "${d}" | \
362 + sed -e '1d' -e 's/^\t//' | \
363 + grep "^libboost_" | \
364 + cut -f1 -d' ')
365 + local r
366 + for r in ${refs}; do
367 + ebegin " correcting reference to ${r}"
368 + install_name_tool -change \
369 + "${r}" \
370 + "${EPREFIX}/usr/lib/${r}" \
371 + "${d}"
372 + eend $?
373 + done
374 + fi
375 + done
376 + fi
377 +}
378 +
379 +pkg_preinst() {
380 + # Yai for having symlinks that are nigh-impossible to remove without
381 + # resorting to dirty hacks like these. Removes lingering symlinks
382 + # from the slotted versions.
383 + local symlink
384 + for symlink in "${EROOT}/usr/include/boost" "${EROOT}/usr/share/boostbook"; do
385 + if [[ -L ${symlink} ]]; then
386 + rm -f "${symlink}" || die
387 + fi
388 + done
389 +
390 + # some ancient installs still have boost cruft lying around
391 + # for unknown reasons, causing havoc for reverse dependencies
392 + # Bug: 607734
393 + rm -rf "${EROOT}"/usr/include/boost-1_[3-5]? || die
394 +}
395
396 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
397 new file mode 100644
398 index 00000000000..9ee3d545d61
399 --- /dev/null
400 +++ b/dev-libs/boost/files/boost-1.69.0-context-x32.patch
401 @@ -0,0 +1,38 @@
402 +--- a/libs/context/src/asm/jump_i386_sysv_elf_gas.S
403 ++++ b/libs/context/src/asm/jump_i386_sysv_elf_gas.S
404 +@@ -24,6 +24,10 @@
405 + * *
406 + ****************************************************************************************/
407 +
408 ++#ifdef __x86_64__
409 ++#include "jump_x86_64_sysv_elf_gas.S"
410 ++#else
411 ++
412 + .file "jump_i386_sysv_elf_gas.S"
413 + .text
414 + .globl jump_fcontext
415 +@@ -81,3 +85,5 @@
416 +
417 + /* Mark that we don't need executable stack. */
418 + .section .note.GNU-stack,"",%progbits
419 ++
420 ++#endif
421 +--- a/libs/context/src/asm/make_i386_sysv_elf_gas.S
422 ++++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S
423 +@@ -24,6 +24,10 @@
424 + * *
425 + ****************************************************************************************/
426 +
427 ++#ifdef __x86_64__
428 ++#include "make_x86_64_sysv_elf_gas.S"
429 ++#else
430 ++
431 + .file "make_i386_sysv_elf_gas.S"
432 + .text
433 + .globl make_fcontext
434 +@@ -105,3 +109,5 @@
435 +
436 + /* Mark that we don't need executable stack. */
437 + .section .note.GNU-stack,"",%progbits
438 ++
439 ++#endif
440
441 diff --git a/dev-libs/boost/files/boost-1.70.0-fix-python-cmake-duplicate-target.patch b/dev-libs/boost/files/boost-1.70.0-fix-python-cmake-duplicate-target.patch
442 new file mode 100644
443 index 00000000000..c0097a8581b
444 --- /dev/null
445 +++ b/dev-libs/boost/files/boost-1.70.0-fix-python-cmake-duplicate-target.patch
446 @@ -0,0 +1,33 @@
447 +Boost.Build errors out when passing multiple python impls to b2:
448 +
449 + error: Name clash for '<p/var/tmp/portage/dev-libs/boost-1.70.0/image/usr/lib64/cmake/boost_python-1.70.0>libboost_python-variant-shared.cmake'
450 + error:
451 + error: Tried to build the target twice, with property sets having
452 + error: these incompatible properties:
453 + error:
454 + error: - <python>2.7
455 + error: - <python>3.6
456 + error:
457 + error: Please make sure to have consistent requirements for these
458 + error: properties everywhere in your project, especially for install
459 + error: targets.
460 +
461 +https://github.com/boostorg/python/issues/262
462 +
463 +--- a/tools/boost_install/boost-install.jam
464 ++++ b/tools/boost_install/boost-install.jam
465 +@@ -870,12 +870,12 @@
466 +
467 + $(p).mark-target-as-explicit install-libraries ;
468 +
469 +- install-cmake-config $(libraries) ;
470 ++ # install-cmake-config $(libraries) ;
471 +
472 + generate install-dependencies : $(libraries) : <generating-rule>@boost-install%generate-dependencies <name>install ;
473 + $(p).mark-target-as-explicit install-dependencies ;
474 +
475 +- alias install : install-libraries install-cmake-config install-dependencies ;
476 ++ alias install : install-libraries install-dependencies ;
477 + $(p).mark-target-as-explicit install ;
478 +
479 + # Target stage
480
481 diff --git a/dev-libs/boost/metadata.xml b/dev-libs/boost/metadata.xml
482 index 4f85afb6e3f..aa525f6bd81 100644
483 --- a/dev-libs/boost/metadata.xml
484 +++ b/dev-libs/boost/metadata.xml
485 @@ -17,6 +17,8 @@
486 <flag name="threads">Build multi-thread-compatible libraries instead of single-threaded only.</flag>
487 <flag name="nls">Build libboost_locale. This library requires compatible C library interfaces, which might not be provided by uClibc or other embedded libraries.</flag>
488 <flag name="doc">Install the full API documentation documentation. This takes over 200MB of extra disk space.</flag>
489 + <flag name="numpy">Optionally build NumPy extensions when Boost.Python is enabled</flag>
490 + <flag name="zstd">Enable zstd compression support in Boost.Iostreams</flag>
491 </use>
492 <upstream>
493 <remote-id type="sourceforge">boost</remote-id>
494
495 diff --git a/dev-util/boost-build/Manifest b/dev-util/boost-build/Manifest
496 index 19a425758e8..2b2ef1bcd31 100644
497 --- a/dev-util/boost-build/Manifest
498 +++ b/dev-util/boost-build/Manifest
499 @@ -2,3 +2,4 @@ DIST boost_1_63_0.tar.bz2 81984414 BLAKE2B 227c4432bd3ca0eb390048ec85047958fcb6a
500 DIST boost_1_65_0.tar.bz2 82597718 BLAKE2B 0080956d6ad2f14130ce4a4734b1bd1ce83d3651b226653689e02770baa83cf11811ef4e44948ff68a168d9ce5cbfaea4f758970df2b4e9faa2d410181885f5b SHA512 7142650fb8d61e3ef16ba066fc918e087f19e9bc2ad1d6a11fb10bf0d6b1b5ad05ab032f076a5233a1624b3669e952b2cc38b7dc074bbf53018e2970ee90fcdd
501 DIST boost_1_66_0.tar.bz2 85995778 BLAKE2B 9ab1fe396b10ab85d7e4084ec7abb8d785ecd892c8f51aea5a401cb565b111c256533364fe028da74ed376534889f43c5ccbdcd703cd236526ae66a064220765 SHA512 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b
502 DIST boost_1_67_0.tar.bz2 87336566 BLAKE2B 85ea00fc2197b1bbfc35d69427c87f23ea43d7592f1c9ce66e2afcde8476bdec86f6debdac815b23de59f4665a8e0c7f1519ab66a31d39df629723bc45710058 SHA512 82bf33d7d2c3db109c9d1f12d40bc2d364c8c95262386f906ccd1a71cd71433bcc01829e968b4a13a5003cf0b50cbdf0b435a1d76530cea7bb05725c327411e8
503 +DIST boost_1_70_0.tar.bz2 97887058 BLAKE2B dc7a974c6dc2662b767dbd87cb832cd1749c24fb745779d1059b73f19f7e52b33b645adfe72b0296c5e098e5cdb3b9f5eddd382374f33fbcd2ad5739287b2206 SHA512 7f2ea9636baf0210e8ed1d21ee798efb6ce23c0710ff8228b285e2214f82193bcd2d912fd435929c554289a59101c7be2e27ce798f93833f307976f0dd070b49
504
505 diff --git a/dev-util/boost-build/boost-build-1.70.0.ebuild b/dev-util/boost-build/boost-build-1.70.0.ebuild
506 new file mode 100644
507 index 00000000000..98eb1a3631a
508 --- /dev/null
509 +++ b/dev-util/boost-build/boost-build-1.70.0.ebuild
510 @@ -0,0 +1,142 @@
511 +# Copyright 1999-2019 Gentoo Authors
512 +# Distributed under the terms of the GNU General Public License v2
513 +
514 +EAPI=7
515 +
516 +PYTHON_COMPAT=( python2_7 )
517 +inherit flag-o-matic python-single-r1 toolchain-funcs
518 +
519 +MY_PV="$(ver_rs 1- _)"
520 +
521 +DESCRIPTION="A system for large project software construction, simple to use and powerful"
522 +HOMEPAGE="https://boostorg.github.io/build/"
523 +SRC_URI="https://downloads.sourceforge.net/project/boost/boost/${PV}/boost_${MY_PV}.tar.bz2"
524 +
525 +LICENSE="Boost-1.0"
526 +SLOT="0"
527 +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"
528 +IUSE="examples python test"
529 +RESTRICT="test"
530 +
531 +RDEPEND="python? ( ${PYTHON_DEPS} )
532 + !<dev-libs/boost-1.35.0
533 + !<=dev-util/boost-build-1.35.0-r1"
534 +DEPEND="${RDEPEND}
535 + test? (
536 + sys-apps/diffutils
537 + ${PYTHON_DEPS}
538 + )"
539 +
540 +REQUIRED_USE="
541 + python? ( ${PYTHON_REQUIRED_USE} )
542 + test? ( ${PYTHON_REQUIRED_USE} )"
543 +
544 +S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
545 +
546 +PATCHES=(
547 + "${FILESDIR}/${PN}-1.48.0-disable_python_rpath.patch"
548 + "${FILESDIR}/${PN}-1.50.0-respect-c_ld-flags.patch"
549 + "${FILESDIR}/${PN}-1.49.0-darwin-gentoo-toolchain.patch"
550 + "${FILESDIR}/${PN}-1.52.0-darwin-no-python-framework.patch"
551 + "${FILESDIR}/${PN}-1.55.0-ppc-aix.patch"
552 + "${FILESDIR}/${PN}-1.62.0-sparc-no-default-flags.patch"
553 + "${FILESDIR}/${PN}-1.66.0-add-none-feature-options.patch"
554 +)
555 +
556 +pkg_setup() {
557 + if use python || use test; then
558 + python-single-r1_pkg_setup
559 + fi
560 +}
561 +
562 +src_unpack() {
563 + tar xojf "${DISTDIR}/${A}" boost_${MY_PV}/tools/build || die "unpacking tar failed"
564 +}
565 +
566 +src_prepare() {
567 + default
568 +
569 + pushd ../ >/dev/null || die
570 + eapply "${FILESDIR}/${PN}-1.54.0-fix-test.patch"
571 + popd >/dev/null || die
572 +
573 + # Remove stripping option
574 + # Fix python components build on multilib systems, bug #496446
575 + cd "${S}/engine" || die
576 + sed -i \
577 + -e 's|-s\b||' \
578 + -e "/libpython/s/lib ]/$(get_libdir) ]/" \
579 + build.jam || die "sed failed"
580 +
581 + # Force regeneration
582 + rm jambase.c || die
583 +
584 + # This patch allows us to fully control optimization
585 + # and stripping flags when bjam is used as build-system
586 + # We simply extend the optimization and debug-symbols feature
587 + # with empty dummies called 'none'
588 + cd "${S}" || die
589 + sed -i \
590 + -e 's/\(off speed space\)/\1 none/' \
591 + -e 's/\(debug-symbols : on off\)/\1 none/' \
592 + tools/builtin.jam || die "sed failed"
593 +}
594 +
595 +src_configure() {
596 + if use python; then
597 + # replace versions by user-selected one (TODO: fix this when slot-op
598 + # deps are available to always match the best version available)
599 + sed -i \
600 + -e "s|27 26 25 24 23 22|${EPYTHON#python}|" \
601 + engine/build.jam || die "sed failed"
602 + fi
603 +}
604 +
605 +src_compile() {
606 + cd engine || die
607 +
608 + local toolset
609 +
610 + if [[ ${CHOST} == *-darwin* ]]; then
611 + toolset=darwin
612 + else
613 + # Using boost's generic toolset here, which respects CC and CFLAGS
614 + toolset=cc
615 + fi
616 +
617 + CC=$(tc-getCC) ./build.sh ${toolset} -d+2 $(use_with python python "${ESYSROOT}"/usr) || die "building bjam failed"
618 +}
619 +
620 +src_test() {
621 + cd ../test || die
622 +
623 + local -x TMP="${T}"
624 +
625 + DO_DIFF="${EPREFIX}/usr/bin/diff" "${EPYTHON}" test_all.py
626 +
627 + if [[ -s test_results.txt ]]; then
628 + eerror "At least one test failed: $(<test_results.txt)"
629 + die "tests failed"
630 + fi
631 +}
632 +
633 +src_install() {
634 + dobin engine/bin.*/{bjam,b2}
635 +
636 + insinto /usr/share/boost-build
637 + doins -r "${FILESDIR}/site-config.jam" \
638 + ../boost-build.jam bootstrap.jam build-system.jam ../example/user-config.jam *.py \
639 + build kernel options tools util
640 +
641 + if ! use python; then
642 + find "${ED}/usr/share/boost-build" -iname "*.py" -delete || die "removing experimental python files failed"
643 + fi
644 +
645 + dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
646 +
647 + if use examples; then
648 + docinto examples
649 + dodoc -r ../example/.
650 + docompress -x /usr/share/doc/${PF}/examples
651 + fi
652 +}
653
654 diff --git a/profiles/arch/amd64-fbsd/package.use.mask b/profiles/arch/amd64-fbsd/package.use.mask
655 index 6bfb5adc51a..97ca81bb380 100644
656 --- a/profiles/arch/amd64-fbsd/package.use.mask
657 +++ b/profiles/arch/amd64-fbsd/package.use.mask
658 @@ -1,6 +1,10 @@
659 # Copyright 1999-2019 Gentoo Authors
660 # Distributed under the terms of the GNU General Public License v2
661
662 +# David Seifert <soap@g.o> (15 Apr 2019)
663 +# app-arch/zstd is not keyworded.
664 +dev-libs/boost zstd
665 +
666 # Hans de Graaff <graaff@g.o> (08 Apr 2019)
667 # Obsolete ruby version, no newer versions keyworded or stable.
668 dev-vcs/subversion ruby
669
670 diff --git a/profiles/package.mask b/profiles/package.mask
671 index 633be519138..20d2dfc77ce 100644
672 --- a/profiles/package.mask
673 +++ b/profiles/package.mask
674 @@ -29,6 +29,11 @@
675
676 #--- END OF EXAMPLES ---
677
678 +# David Seifert <soap@g.o> (15 Apr 2019)
679 +# Masked for testing, Bug #653878.
680 +>=dev-libs/boost-1.70.0
681 +>=dev-util/boost-build-1.70.0
682 +
683 # Patrice Clement <monsieurp@g.o> (14 Apr 2019)
684 # Old, unmaintained and sometimes abandoned Java libraries/programs.
685 # Removal in 30 days.