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/
Date: Tue, 04 Apr 2017 17:54:38
Message-Id: 1491328458.400e20295bf062a0bf697acce718e78116b143e2.soap@gentoo
1 commit: 400e20295bf062a0bf697acce718e78116b143e2
2 Author: David Seifert <soap <AT> gentoo <DOT> org>
3 AuthorDate: Tue Apr 4 17:33:14 2017 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Tue Apr 4 17:54:18 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=400e2029
7
8 dev-libs/boost: Remove old
9
10 Package-Manager: Portage-2.3.5, Repoman-2.3.2
11 Closes: https://github.com/gentoo/gentoo/pull/4352
12
13 dev-libs/boost/Manifest | 5 -
14 dev-libs/boost/boost-1.56.0-r1.ebuild | 413 --------------------
15 dev-libs/boost/boost-1.58.0-r1.ebuild | 411 -------------------
16 dev-libs/boost/boost-1.59.0.ebuild | 405 -------------------
17 dev-libs/boost/boost-1.60.0.ebuild | 408 -------------------
18 dev-libs/boost/boost-1.61.0-r1.ebuild | 428 --------------------
19 dev-libs/boost/boost-1.61.0.ebuild | 433 ---------------------
20 dev-libs/boost/files/boost-1.52.0-threads.patch | 63 ---
21 .../files/boost-1.55.0-tools-c98-compat.patch | 17 -
22 .../files/boost-1.55.0-variadic-templates.patch | 37 --
23 dev-libs/boost/files/boost-1.56.0-atomic.patch | 402 -------------------
24 ...1.58.0-fix-non-constexpr-types-regression.patch | 233 -----------
25 .../files/boost-1.60.0-auto-pointer-python.patch | 42 --
26 .../boost-1.60.0-deprecated-header-ice_not.patch | 42 --
27 14 files changed, 3339 deletions(-)
28
29 diff --git a/dev-libs/boost/Manifest b/dev-libs/boost/Manifest
30 index c464b7788c7..2bed45d4d28 100644
31 --- a/dev-libs/boost/Manifest
32 +++ b/dev-libs/boost/Manifest
33 @@ -1,7 +1,2 @@
34 -DIST boost_1_56_0.tar.bz2 94777674 SHA256 134732acaf3a6e7eba85988118d943f0fa6b7f0850f65131fff89823ad30ff1d SHA512 1ce9871c3a2519682538a5f1331938b948123432d99aea0ce026958cbebd25d84019a3a28c452724b9693df98a8d1264bb2d93d2fee508453f8b42836e67481e WHIRLPOOL e9e9bb965816b687141d55bc026e378a56ed577a2bf0bdad61a1736e7f11d1797e0cac0185a1fa25b6c4b9fe1f75cbb0bb73a5ea05e84d59385bb3b17a90fd12
35 -DIST boost_1_58_0.tar.bz2 70394057 SHA256 fdfc204fc33ec79c99b9a74944c3e54bd78be4f7f15e260c0e2700a36dc7d3e5 SHA512 7480ec713b0aa13f0ec990603e87e3b5c8d53f4411329b10fae37fc963b90aad12dbd9290a33c3669ae801e9012a68683eadff057591e9ca2ebcd22b1a67b5d1 WHIRLPOOL 0ed66f7de8b2ac28eda89e2fcadfc5533e6a3887ef7a929610804efa3ca66b850fecafeb61c986d37cb704ec844744e47d08f87e08ea25c779f57cffd26a1be2
36 -DIST boost_1_59_0.tar.bz2 70389425 SHA256 727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca SHA512 8139e1ae997a86974071c5714ad3307e3d8fd15ef702b81a953410dd4d424b932135f53a0ef4891d9b9b747a38e539e66d6a803388fe0cc98e5166be872d682a WHIRLPOOL ab26f6b770c32320e71806d7f7856b3841917dcc59e0c5ee588fc77d77f11855dda66bfb808dbe0f3f89859b958211439c271401a5b1ad2ea98aa5d377934510
37 -DIST boost_1_60_0.tar.bz2 76553944 SHA256 686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b SHA512 7c851b3fc2b322ff05d642d9cf03e7c30c5f04d5cf0579c99046b1ec708901c58a3d349031dfe24591f5b88c1e664b6a0d40abea6cce89abb52080c02eb725df WHIRLPOOL 828b0797a8b62150ecef5ee13f0e8b8d6b6a0e7365511ec9782d2d8f3a26ac38a98f10876c40d05ea46697c013b1f96f22b3a24c449372520c84bb725059fe48
38 -DIST boost_1_61_0.tar.bz2 85202254 SHA256 a547bd06c2fd9a71ba1d169d9cf0339da7ebf4753849a8f7d6fdb8feee99b640 SHA512 a1c7338e2d2dbac8552ede7c554640d22cbb2fda7fbc325dc3cdcb51e769713626695426ffc158cbe0e1729dd9a7b5ad18af4800d74e24539e8d8564268c2b9d WHIRLPOOL 59b47e7ae9ae8443ecaab29b1104cfe3ebfa607d22afcc3fad4a87bdfd575939eba8130a80fd509da178eb3227a26cb74db51852716dc5df068d36fc4839372b
39 DIST boost_1_62_0.tar.bz2 84513338 SHA256 36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0 SHA512 5385ae3d5255a433a704169ad454d8dc2b0b5bcae3fb23defd6570df4ff7d845cf9fcbeebccdc1c5db0eec9f82ee3d90040de9507c8167467c635d3b215463be WHIRLPOOL 49c4558d5e6d72084f083a76217e3d97b504f112d7e4d228eded72dc49fa7e675ba943a9fc52a3c27d296ee689aee27d4566796c6eae71cf647430285777c0fb
40 DIST boost_1_63_0.tar.bz2 81984414 SHA256 beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0 SHA512 c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad WHIRLPOOL 28c241785097272a1e0952e529eef082444e4ef35a8d738161e4a491a986d75359d3afe888b2ea91a4a81b6ec7a5772ebea337c9d09377b43f6eed66cac90378
41
42 diff --git a/dev-libs/boost/boost-1.56.0-r1.ebuild b/dev-libs/boost/boost-1.56.0-r1.ebuild
43 deleted file mode 100644
44 index 5f07390a0d9..00000000000
45 --- a/dev-libs/boost/boost-1.56.0-r1.ebuild
46 +++ /dev/null
47 @@ -1,413 +0,0 @@
48 -# Copyright 1999-2015 Gentoo Foundation
49 -# Distributed under the terms of the GNU General Public License v2
50 -
51 -EAPI="5"
52 -PYTHON_COMPAT=( python{2_7,3_4} )
53 -
54 -inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
55 -
56 -MY_P="${PN}_$(replace_all_version_separators _)"
57 -MAJOR_V="$(get_version_component_range 1-2)"
58 -
59 -DESCRIPTION="Boost Libraries for C++"
60 -HOMEPAGE="http://www.boost.org/"
61 -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
62 -
63 -LICENSE="Boost-1.0"
64 -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
65 -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"
66 -
67 -IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
68 -
69 -RDEPEND="abi_x86_32? ( !app-emulation/emul-linux-x86-cpplibs[-abi_x86_32(-)] )
70 - icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
71 - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
72 - mpi? ( virtual/mpi[cxx,threads] )
73 - python? ( ${PYTHON_DEPS} )
74 - app-arch/bzip2[${MULTILIB_USEDEP}]
75 - sys-libs/zlib[${MULTILIB_USEDEP}]
76 - !app-admin/eselect-boost"
77 -DEPEND="${RDEPEND}
78 - =dev-util/boost-build-${MAJOR_V}*"
79 -REQUIRED_USE="
80 - mpi? ( threads )
81 - python? ( ${PYTHON_REQUIRED_USE} )"
82 -
83 -S="${WORKDIR}/${MY_P}"
84 -
85 -# the tests will never fail because these are not intended as sanity
86 -# tests at all. They are more a way for upstream to check their own code
87 -# on new compilers. Since they would either be completely unreliable
88 -# (failing for no good reason) or completely useless (never failing)
89 -# there is no point in having them in the ebuild to begin with.
90 -RESTRICT="test"
91 -
92 -python_bindings_needed() {
93 - multilib_is_native_abi && use python
94 -}
95 -
96 -tools_needed() {
97 - multilib_is_native_abi && use tools
98 -}
99 -
100 -# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
101 -mpi_needed() {
102 - multilib_is_native_abi && use mpi
103 -}
104 -
105 -create_user-config.jam() {
106 - local compiler compiler_version compiler_executable
107 -
108 - if [[ ${CHOST} == *-darwin* ]]; then
109 - compiler="darwin"
110 - compiler_version="$(gcc-fullversion)"
111 - compiler_executable="$(tc-getCXX)"
112 - else
113 - compiler="gcc"
114 - compiler_version="$(gcc-version)"
115 - compiler_executable="$(tc-getCXX)"
116 - fi
117 - local mpi_configuration python_configuration
118 -
119 - if mpi_needed; then
120 - mpi_configuration="using mpi ;"
121 - fi
122 -
123 - if python_bindings_needed; then
124 - # boost expects libpython$(pyver) and doesn't allow overrides
125 - # and the build system is so creepy that it's easier just to
126 - # provide a symlink (linker's going to use SONAME anyway)
127 - # TODO: replace it with proper override one day
128 - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
129 -
130 - if tc-is-cross-compiler; then
131 - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
132 - else
133 - # note: we need to provide version explicitly because of
134 - # a bug in the build system:
135 - # https://github.com/boostorg/build/pull/104
136 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
137 - fi
138 - fi
139 -
140 - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
141 -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
142 -${mpi_configuration}
143 -${python_configuration}
144 -__EOF__
145 -}
146 -
147 -pkg_setup() {
148 - # Bail out on unsupported build configuration, bug #456792
149 - if [[ -f "${EROOT}etc/site-config.jam" ]]; then
150 - grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
151 - (
152 - eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
153 - eerror "Boost can not be built in such configuration."
154 - eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
155 - die
156 - )
157 - fi
158 -}
159 -
160 -src_prepare() {
161 - epatch \
162 - "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
163 - "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
164 - "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
165 - "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
166 - "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
167 - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
168 - "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
169 - "${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
170 - "${FILESDIR}/${PN}-1.52.0-threads.patch" \
171 - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
172 - "${FILESDIR}/${PN}-1.55.0-variadic-templates.patch" \
173 - "${FILESDIR}/${PN}-1.56.0-atomic.patch"
174 -
175 - # Do not try to build missing 'wave' tool, bug #522682
176 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
177 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
178 -
179 - epatch_user
180 -
181 - multilib_copy_sources
182 -}
183 -
184 -ejam() {
185 - local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
186 - echo b2 ${b2_opts}
187 - b2 ${b2_opts}
188 -}
189 -
190 -src_configure() {
191 - # Workaround for too many parallel processes requested, bug #506064
192 - [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
193 -
194 - OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
195 -
196 - if [[ ${CHOST} == *-darwin* ]]; then
197 - # We need to add the prefix, and in two cases this exceeds, so prepare
198 - # for the largest possible space allocation.
199 - append-ldflags -Wl,-headerpad_max_install_names
200 - elif [[ ${CHOST} == *-winnt* ]]; then
201 - compiler=parity
202 - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
203 - compilerVersion=trunk
204 - else
205 - compilerVersion=$($(tc-getCXX) -v | sed '1q' \
206 - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
207 - fi
208 - compilerExecutable=$(tc-getCXX)
209 - fi
210 -
211 - # bug 298489
212 - if use ppc || use ppc64; then
213 - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
214 - fi
215 -
216 - # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
217 - append-cxxflags -std=gnu++98
218 -
219 - use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
220 - use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
221 - mpi_needed || OPTIONS+=" --without-mpi"
222 - use nls || OPTIONS+=" --without-locale"
223 - use context || OPTIONS+=" --without-context --without-coroutine"
224 -
225 - OPTIONS+=" pch=off"
226 - OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
227 - OPTIONS+=" --layout=system"
228 - OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
229 -
230 - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
231 -}
232 -
233 -multilib_src_compile() {
234 - local -x BOOST_ROOT="${BUILD_DIR}"
235 - PYTHON_DIRS=""
236 - MPI_PYTHON_MODULE=""
237 -
238 - building() {
239 - create_user-config.jam
240 -
241 - local PYTHON_OPTIONS
242 - if python_bindings_needed; then
243 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
244 - else
245 - PYTHON_OPTIONS=" --without-python"
246 - fi
247 -
248 - ejam \
249 - ${OPTIONS} \
250 - ${PYTHON_OPTIONS} \
251 - || die "Building of Boost libraries failed"
252 -
253 - if python_bindings_needed; then
254 - if [[ -z "${PYTHON_DIRS}" ]]; then
255 - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
256 - else
257 - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
258 - die "Inconsistent structure of build directories"
259 - fi
260 - fi
261 -
262 - local dir
263 - for dir in ${PYTHON_DIRS}; do
264 - mv ${dir} ${dir}-${EPYTHON} \
265 - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
266 - done
267 -
268 - if mpi_needed; then
269 - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
270 - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
271 - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
272 - die "Multiple mpi.so files found"
273 - fi
274 - else
275 - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
276 - die "Inconsistent structure of build directories"
277 - fi
278 - fi
279 -
280 - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
281 - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
282 - fi
283 - fi
284 - }
285 - if python_bindings_needed; then
286 - python_foreach_impl building
287 - else
288 - building
289 - fi
290 -
291 - if tools_needed; then
292 - pushd tools > /dev/null || die
293 -
294 - ejam \
295 - ${OPTIONS} \
296 - ${PYTHON_OPTIONS} \
297 - || die "Building of Boost tools failed"
298 - popd > /dev/null || die
299 - fi
300 -}
301 -
302 -multilib_src_install_all() {
303 - if ! use python; then
304 - rm -r "${ED}"/usr/include/boost/python* || die
305 - fi
306 -
307 - if ! use nls; then
308 - rm -r "${ED}"/usr/include/boost/locale || die
309 - fi
310 -
311 - if ! use context; then
312 - rm -r "${ED}"/usr/include/boost/context || die
313 - rm -r "${ED}"/usr/include/boost/coroutine || die
314 - fi
315 -
316 - if use doc; then
317 - find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
318 - dohtml \
319 - -A pdf,txt,cpp,hpp \
320 - *.{htm,html,png,css} \
321 - -r doc
322 - dohtml -A pdf,txt -r tools
323 - insinto /usr/share/doc/${PF}/html
324 - doins -r libs
325 - doins -r more
326 -
327 - # To avoid broken links
328 - insinto /usr/share/doc/${PF}/html
329 - doins LICENSE_1_0.txt
330 -
331 - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
332 - fi
333 -}
334 -
335 -multilib_src_install() {
336 - local -x BOOST_ROOT="${BUILD_DIR}"
337 - installation() {
338 - create_user-config.jam
339 -
340 - local PYTHON_OPTIONS
341 - if python_bindings_needed; then
342 - local dir
343 - for dir in ${PYTHON_DIRS}; do
344 - cp -pr ${dir}-${EPYTHON} ${dir} \
345 - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
346 - done
347 -
348 - if mpi_needed; then
349 - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
350 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
351 - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
352 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
353 - fi
354 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
355 - else
356 - PYTHON_OPTIONS=" --without-python"
357 - fi
358 -
359 - ejam \
360 - ${OPTIONS} \
361 - ${PYTHON_OPTIONS} \
362 - --includedir="${ED}usr/include" \
363 - --libdir="${ED}usr/$(get_libdir)" \
364 - install || die "Installation of Boost libraries failed"
365 -
366 - if python_bindings_needed; then
367 - rm -r ${PYTHON_DIRS} || die
368 -
369 - # Move mpi.so Python module to Python site-packages directory.
370 - # https://svn.boost.org/trac/boost/ticket/2838
371 - if mpi_needed; then
372 - local moddir=$(python_get_sitedir)/boost
373 - # moddir already includes eprefix
374 - mkdir -p "${D}${moddir}" || die
375 - mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
376 - cat << EOF > "${D}${moddir}/__init__.py" || die
377 -import sys
378 -if sys.platform.startswith('linux'):
379 - import DLFCN
380 - flags = sys.getdlopenflags()
381 - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
382 - from . import mpi
383 - sys.setdlopenflags(flags)
384 - del DLFCN, flags
385 -else:
386 - from . import mpi
387 -del sys
388 -EOF
389 - fi
390 -
391 - python_optimize
392 - fi
393 - }
394 - if python_bindings_needed; then
395 - python_foreach_impl installation
396 - else
397 - installation
398 - fi
399 -
400 - pushd "${ED}usr/$(get_libdir)" > /dev/null || die
401 -
402 - local ext=$(get_libname)
403 - if use threads; then
404 - local f
405 - for f in *${ext}; do
406 - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
407 - done
408 - fi
409 -
410 - popd > /dev/null || die
411 -
412 - if tools_needed; then
413 - dobin dist/bin/*
414 -
415 - insinto /usr/share
416 - doins -r dist/share/boostbook
417 - fi
418 -
419 - # boost's build system truely sucks for not having a destdir. Because for
420 - # this reason we are forced to build with a prefix that includes the
421 - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
422 - # DESTROOT instread of the actual EPREFIX. There is no way out of here
423 - # but to do it the dirty way of manually setting the right install_names.
424 - if [[ ${CHOST} == *-darwin* ]]; then
425 - einfo "Working around completely broken build-system(tm)"
426 - local d
427 - for d in "${ED}"usr/lib/*.dylib; do
428 - if [[ -f ${d} ]]; then
429 - # fix the "soname"
430 - ebegin " correcting install_name of ${d#${ED}}"
431 - install_name_tool -id "/${d#${D}}" "${d}"
432 - eend $?
433 - # fix references to other libs
434 - refs=$(otool -XL "${d}" | \
435 - sed -e '1d' -e 's/^\t//' | \
436 - grep "^libboost_" | \
437 - cut -f1 -d' ')
438 - local r
439 - for r in ${refs}; do
440 - ebegin " correcting reference to ${r}"
441 - install_name_tool -change \
442 - "${r}" \
443 - "${EPREFIX}/usr/lib/${r}" \
444 - "${d}"
445 - eend $?
446 - done
447 - fi
448 - done
449 - fi
450 -}
451 -
452 -pkg_preinst() {
453 - # Yai for having symlinks that are nigh-impossible to remove without
454 - # resorting to dirty hacks like these. Removes lingering symlinks
455 - # from the slotted versions.
456 - local symlink
457 - for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
458 - [[ -L ${symlink} ]] && rm -f "${symlink}"
459 - done
460 -}
461
462 diff --git a/dev-libs/boost/boost-1.58.0-r1.ebuild b/dev-libs/boost/boost-1.58.0-r1.ebuild
463 deleted file mode 100644
464 index 3dadf7a0687..00000000000
465 --- a/dev-libs/boost/boost-1.58.0-r1.ebuild
466 +++ /dev/null
467 @@ -1,411 +0,0 @@
468 -# Copyright 1999-2016 Gentoo Foundation
469 -# Distributed under the terms of the GNU General Public License v2
470 -
471 -EAPI="5"
472 -PYTHON_COMPAT=( python{2_7,3_4,3_5} )
473 -
474 -inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
475 -
476 -MY_P="${PN}_$(replace_all_version_separators _)"
477 -MAJOR_V="$(get_version_component_range 1-2)"
478 -
479 -DESCRIPTION="Boost Libraries for C++"
480 -HOMEPAGE="http://www.boost.org/"
481 -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
482 -
483 -LICENSE="Boost-1.0"
484 -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
485 -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"
486 -
487 -IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
488 -
489 -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
490 - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
491 - mpi? ( virtual/mpi[cxx,threads] )
492 - python? ( ${PYTHON_DEPS} )
493 - app-arch/bzip2[${MULTILIB_USEDEP}]
494 - sys-libs/zlib[${MULTILIB_USEDEP}]
495 - !app-admin/eselect-boost"
496 -DEPEND="${RDEPEND}
497 - =dev-util/boost-build-${MAJOR_V}*"
498 -REQUIRED_USE="
499 - mpi? ( threads )
500 - python? ( ${PYTHON_REQUIRED_USE} )"
501 -
502 -S="${WORKDIR}/${MY_P}"
503 -
504 -# the tests will never fail because these are not intended as sanity
505 -# tests at all. They are more a way for upstream to check their own code
506 -# on new compilers. Since they would either be completely unreliable
507 -# (failing for no good reason) or completely useless (never failing)
508 -# there is no point in having them in the ebuild to begin with.
509 -RESTRICT="test"
510 -
511 -python_bindings_needed() {
512 - multilib_is_native_abi && use python
513 -}
514 -
515 -tools_needed() {
516 - multilib_is_native_abi && use tools
517 -}
518 -
519 -# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
520 -mpi_needed() {
521 - multilib_is_native_abi && use mpi
522 -}
523 -
524 -create_user-config.jam() {
525 - local compiler compiler_version compiler_executable
526 -
527 - if [[ ${CHOST} == *-darwin* ]]; then
528 - compiler="darwin"
529 - compiler_version="$(gcc-fullversion)"
530 - compiler_executable="$(tc-getCXX)"
531 - else
532 - compiler="gcc"
533 - compiler_version="$(gcc-version)"
534 - compiler_executable="$(tc-getCXX)"
535 - fi
536 - local mpi_configuration python_configuration
537 -
538 - if mpi_needed; then
539 - mpi_configuration="using mpi ;"
540 - fi
541 -
542 - if python_bindings_needed; then
543 - # boost expects libpython$(pyver) and doesn't allow overrides
544 - # and the build system is so creepy that it's easier just to
545 - # provide a symlink (linker's going to use SONAME anyway)
546 - # TODO: replace it with proper override one day
547 - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
548 -
549 - if tc-is-cross-compiler; then
550 - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
551 - else
552 - # note: we need to provide version explicitly because of
553 - # a bug in the build system:
554 - # https://github.com/boostorg/build/pull/104
555 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
556 - fi
557 - fi
558 -
559 - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
560 -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
561 -${mpi_configuration}
562 -${python_configuration}
563 -__EOF__
564 -}
565 -
566 -pkg_setup() {
567 - # Bail out on unsupported build configuration, bug #456792
568 - if [[ -f "${EROOT}etc/site-config.jam" ]]; then
569 - grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
570 - (
571 - eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
572 - eerror "Boost can not be built in such configuration."
573 - eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
574 - die
575 - )
576 - fi
577 -}
578 -
579 -src_prepare() {
580 - epatch \
581 - "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
582 - "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
583 - "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
584 - "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
585 - "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
586 - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
587 - "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
588 - "${FILESDIR}/${PN}-1.52.0-threads.patch" \
589 - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch" \
590 - "${FILESDIR}/${PN}-1.58.0-fix-non-constexpr-types-regression.patch"
591 -
592 - # Do not try to build missing 'wave' tool, bug #522682
593 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
594 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
595 -
596 - epatch_user
597 -
598 - multilib_copy_sources
599 -}
600 -
601 -ejam() {
602 - local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
603 - echo b2 ${b2_opts}
604 - b2 ${b2_opts}
605 -}
606 -
607 -src_configure() {
608 - # Workaround for too many parallel processes requested, bug #506064
609 - [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
610 -
611 - OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
612 -
613 - if [[ ${CHOST} == *-darwin* ]]; then
614 - # We need to add the prefix, and in two cases this exceeds, so prepare
615 - # for the largest possible space allocation.
616 - append-ldflags -Wl,-headerpad_max_install_names
617 - elif [[ ${CHOST} == *-winnt* ]]; then
618 - compiler=parity
619 - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
620 - compilerVersion=trunk
621 - else
622 - compilerVersion=$($(tc-getCXX) -v | sed '1q' \
623 - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
624 - fi
625 - compilerExecutable=$(tc-getCXX)
626 - fi
627 -
628 - # bug 298489
629 - if use ppc || use ppc64; then
630 - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
631 - fi
632 -
633 - # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
634 - append-cxxflags -std=gnu++98
635 -
636 - use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
637 - use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
638 - mpi_needed || OPTIONS+=" --without-mpi"
639 - use nls || OPTIONS+=" --without-locale"
640 - use context || OPTIONS+=" --without-context --without-coroutine"
641 -
642 - OPTIONS+=" pch=off"
643 - OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
644 - OPTIONS+=" --layout=system"
645 - OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
646 -
647 - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
648 -}
649 -
650 -multilib_src_compile() {
651 - local -x BOOST_ROOT="${BUILD_DIR}"
652 - PYTHON_DIRS=""
653 - MPI_PYTHON_MODULE=""
654 -
655 - building() {
656 - create_user-config.jam
657 -
658 - local PYTHON_OPTIONS
659 - if python_bindings_needed; then
660 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
661 - else
662 - PYTHON_OPTIONS=" --without-python"
663 - fi
664 -
665 - ejam \
666 - ${OPTIONS} \
667 - ${PYTHON_OPTIONS} \
668 - || die "Building of Boost libraries failed"
669 -
670 - if python_bindings_needed; then
671 - if [[ -z "${PYTHON_DIRS}" ]]; then
672 - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
673 - else
674 - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
675 - die "Inconsistent structure of build directories"
676 - fi
677 - fi
678 -
679 - local dir
680 - for dir in ${PYTHON_DIRS}; do
681 - mv ${dir} ${dir}-${EPYTHON} \
682 - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
683 - done
684 -
685 - if mpi_needed; then
686 - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
687 - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
688 - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
689 - die "Multiple mpi.so files found"
690 - fi
691 - else
692 - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
693 - die "Inconsistent structure of build directories"
694 - fi
695 - fi
696 -
697 - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
698 - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
699 - fi
700 - fi
701 - }
702 - if python_bindings_needed; then
703 - python_foreach_impl building
704 - else
705 - building
706 - fi
707 -
708 - if tools_needed; then
709 - pushd tools > /dev/null || die
710 -
711 - ejam \
712 - ${OPTIONS} \
713 - ${PYTHON_OPTIONS} \
714 - || die "Building of Boost tools failed"
715 - popd > /dev/null || die
716 - fi
717 -}
718 -
719 -multilib_src_install_all() {
720 - if ! use python; then
721 - rm -r "${ED}"/usr/include/boost/python* || die
722 - fi
723 -
724 - if ! use nls; then
725 - rm -r "${ED}"/usr/include/boost/locale || die
726 - fi
727 -
728 - if ! use context; then
729 - rm -r "${ED}"/usr/include/boost/context || die
730 - rm -r "${ED}"/usr/include/boost/coroutine || die
731 - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
732 - fi
733 -
734 - if use doc; then
735 - find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
736 - dohtml \
737 - -A pdf,txt,cpp,hpp \
738 - *.{htm,html,png,css} \
739 - -r doc
740 - dohtml -A pdf,txt -r tools
741 - insinto /usr/share/doc/${PF}/html
742 - doins -r libs
743 - doins -r more
744 -
745 - # To avoid broken links
746 - insinto /usr/share/doc/${PF}/html
747 - doins LICENSE_1_0.txt
748 -
749 - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
750 - fi
751 -}
752 -
753 -multilib_src_install() {
754 - local -x BOOST_ROOT="${BUILD_DIR}"
755 - installation() {
756 - create_user-config.jam
757 -
758 - local PYTHON_OPTIONS
759 - if python_bindings_needed; then
760 - local dir
761 - for dir in ${PYTHON_DIRS}; do
762 - cp -pr ${dir}-${EPYTHON} ${dir} \
763 - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
764 - done
765 -
766 - if mpi_needed; then
767 - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
768 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
769 - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
770 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
771 - fi
772 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
773 - else
774 - PYTHON_OPTIONS=" --without-python"
775 - fi
776 -
777 - ejam \
778 - ${OPTIONS} \
779 - ${PYTHON_OPTIONS} \
780 - --includedir="${ED}usr/include" \
781 - --libdir="${ED}usr/$(get_libdir)" \
782 - install || die "Installation of Boost libraries failed"
783 -
784 - if python_bindings_needed; then
785 - rm -r ${PYTHON_DIRS} || die
786 -
787 - # Move mpi.so Python module to Python site-packages directory.
788 - # https://svn.boost.org/trac/boost/ticket/2838
789 - if mpi_needed; then
790 - local moddir=$(python_get_sitedir)/boost
791 - # moddir already includes eprefix
792 - mkdir -p "${D}${moddir}" || die
793 - mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
794 - cat << EOF > "${D}${moddir}/__init__.py" || die
795 -import sys
796 -if sys.platform.startswith('linux'):
797 - import DLFCN
798 - flags = sys.getdlopenflags()
799 - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
800 - from . import mpi
801 - sys.setdlopenflags(flags)
802 - del DLFCN, flags
803 -else:
804 - from . import mpi
805 -del sys
806 -EOF
807 - fi
808 -
809 - python_optimize
810 - fi
811 - }
812 - if python_bindings_needed; then
813 - python_foreach_impl installation
814 - else
815 - installation
816 - fi
817 -
818 - pushd "${ED}usr/$(get_libdir)" > /dev/null || die
819 -
820 - local ext=$(get_libname)
821 - if use threads; then
822 - local f
823 - for f in *${ext}; do
824 - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
825 - done
826 - fi
827 -
828 - popd > /dev/null || die
829 -
830 - if tools_needed; then
831 - dobin dist/bin/*
832 -
833 - insinto /usr/share
834 - doins -r dist/share/boostbook
835 - fi
836 -
837 - # boost's build system truely sucks for not having a destdir. Because for
838 - # this reason we are forced to build with a prefix that includes the
839 - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
840 - # DESTROOT instread of the actual EPREFIX. There is no way out of here
841 - # but to do it the dirty way of manually setting the right install_names.
842 - if [[ ${CHOST} == *-darwin* ]]; then
843 - einfo "Working around completely broken build-system(tm)"
844 - local d
845 - for d in "${ED}"usr/lib/*.dylib; do
846 - if [[ -f ${d} ]]; then
847 - # fix the "soname"
848 - ebegin " correcting install_name of ${d#${ED}}"
849 - install_name_tool -id "/${d#${D}}" "${d}"
850 - eend $?
851 - # fix references to other libs
852 - refs=$(otool -XL "${d}" | \
853 - sed -e '1d' -e 's/^\t//' | \
854 - grep "^libboost_" | \
855 - cut -f1 -d' ')
856 - local r
857 - for r in ${refs}; do
858 - ebegin " correcting reference to ${r}"
859 - install_name_tool -change \
860 - "${r}" \
861 - "${EPREFIX}/usr/lib/${r}" \
862 - "${d}"
863 - eend $?
864 - done
865 - fi
866 - done
867 - fi
868 -}
869 -
870 -pkg_preinst() {
871 - # Yai for having symlinks that are nigh-impossible to remove without
872 - # resorting to dirty hacks like these. Removes lingering symlinks
873 - # from the slotted versions.
874 - local symlink
875 - for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
876 - [[ -L ${symlink} ]] && rm -f "${symlink}"
877 - done
878 -}
879
880 diff --git a/dev-libs/boost/boost-1.59.0.ebuild b/dev-libs/boost/boost-1.59.0.ebuild
881 deleted file mode 100644
882 index dda95561d2b..00000000000
883 --- a/dev-libs/boost/boost-1.59.0.ebuild
884 +++ /dev/null
885 @@ -1,405 +0,0 @@
886 -# Copyright 1999-2016 Gentoo Foundation
887 -# Distributed under the terms of the GNU General Public License v2
888 -
889 -EAPI="6"
890 -PYTHON_COMPAT=( python{2_7,3_4,3_5} )
891 -
892 -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
893 -
894 -MY_P="${PN}_$(replace_all_version_separators _)"
895 -MAJOR_V="$(get_version_component_range 1-2)"
896 -
897 -DESCRIPTION="Boost Libraries for C++"
898 -HOMEPAGE="http://www.boost.org/"
899 -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
900 -
901 -LICENSE="Boost-1.0"
902 -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
903 -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"
904 -
905 -IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
906 -
907 -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
908 - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
909 - mpi? ( virtual/mpi[cxx,threads] )
910 - python? ( ${PYTHON_DEPS} )
911 - app-arch/bzip2[${MULTILIB_USEDEP}]
912 - sys-libs/zlib[${MULTILIB_USEDEP}]
913 - !app-admin/eselect-boost"
914 -DEPEND="${RDEPEND}
915 - =dev-util/boost-build-${MAJOR_V}*"
916 -REQUIRED_USE="
917 - mpi? ( threads )
918 - python? ( ${PYTHON_REQUIRED_USE} )"
919 -
920 -S="${WORKDIR}/${MY_P}"
921 -
922 -# the tests will never fail because these are not intended as sanity
923 -# tests at all. They are more a way for upstream to check their own code
924 -# on new compilers. Since they would either be completely unreliable
925 -# (failing for no good reason) or completely useless (never failing)
926 -# there is no point in having them in the ebuild to begin with.
927 -RESTRICT="test"
928 -
929 -python_bindings_needed() {
930 - multilib_is_native_abi && use python
931 -}
932 -
933 -tools_needed() {
934 - multilib_is_native_abi && use tools
935 -}
936 -
937 -# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
938 -mpi_needed() {
939 - multilib_is_native_abi && use mpi
940 -}
941 -
942 -create_user-config.jam() {
943 - local compiler compiler_version compiler_executable
944 -
945 - if [[ ${CHOST} == *-darwin* ]]; then
946 - compiler="darwin"
947 - compiler_version="$(gcc-fullversion)"
948 - compiler_executable="$(tc-getCXX)"
949 - else
950 - compiler="gcc"
951 - compiler_version="$(gcc-version)"
952 - compiler_executable="$(tc-getCXX)"
953 - fi
954 - local mpi_configuration python_configuration
955 -
956 - if mpi_needed; then
957 - mpi_configuration="using mpi ;"
958 - fi
959 -
960 - if python_bindings_needed; then
961 - # boost expects libpython$(pyver) and doesn't allow overrides
962 - # and the build system is so creepy that it's easier just to
963 - # provide a symlink (linker's going to use SONAME anyway)
964 - # TODO: replace it with proper override one day
965 - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
966 -
967 - if tc-is-cross-compiler; then
968 - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
969 - else
970 - # note: we need to provide version explicitly because of
971 - # a bug in the build system:
972 - # https://github.com/boostorg/build/pull/104
973 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
974 - fi
975 - fi
976 -
977 - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
978 -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
979 -${mpi_configuration}
980 -${python_configuration}
981 -__EOF__
982 -}
983 -
984 -pkg_setup() {
985 - # Bail out on unsupported build configuration, bug #456792
986 - if [[ -f "${EROOT}etc/site-config.jam" ]]; then
987 - grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
988 - (
989 - eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
990 - eerror "Boost can not be built in such configuration."
991 - eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
992 - die
993 - )
994 - fi
995 -}
996 -
997 -src_prepare() {
998 - epatch \
999 - "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
1000 - "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
1001 - "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
1002 - "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
1003 - "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
1004 - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
1005 - "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
1006 - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
1007 -
1008 - # Do not try to build missing 'wave' tool, bug #522682
1009 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
1010 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
1011 -
1012 - eapply_user
1013 -
1014 - multilib_copy_sources
1015 -}
1016 -
1017 -ejam() {
1018 - local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
1019 - echo b2 ${b2_opts}
1020 - b2 ${b2_opts}
1021 -}
1022 -
1023 -src_configure() {
1024 - # Workaround for too many parallel processes requested, bug #506064
1025 - [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
1026 -
1027 - OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
1028 -
1029 - if [[ ${CHOST} == *-darwin* ]]; then
1030 - # We need to add the prefix, and in two cases this exceeds, so prepare
1031 - # for the largest possible space allocation.
1032 - append-ldflags -Wl,-headerpad_max_install_names
1033 - elif [[ ${CHOST} == *-winnt* ]]; then
1034 - compiler=parity
1035 - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
1036 - compilerVersion=trunk
1037 - else
1038 - compilerVersion=$($(tc-getCXX) -v | sed '1q' \
1039 - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
1040 - fi
1041 - compilerExecutable=$(tc-getCXX)
1042 - fi
1043 -
1044 - # bug 298489
1045 - if use ppc || use ppc64; then
1046 - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
1047 - fi
1048 -
1049 - # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
1050 - append-cxxflags -std=gnu++98
1051 -
1052 - use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
1053 - use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
1054 - mpi_needed || OPTIONS+=" --without-mpi"
1055 - use nls || OPTIONS+=" --without-locale"
1056 - use context || OPTIONS+=" --without-context --without-coroutine"
1057 -
1058 - OPTIONS+=" pch=off"
1059 - OPTIONS+=" --boost-build=${EPREFIX}/usr/share/boost-build --prefix=\"${ED}usr\""
1060 - OPTIONS+=" --layout=system"
1061 - OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
1062 -
1063 - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
1064 -}
1065 -
1066 -multilib_src_compile() {
1067 - local -x BOOST_ROOT="${BUILD_DIR}"
1068 - PYTHON_DIRS=""
1069 - MPI_PYTHON_MODULE=""
1070 -
1071 - building() {
1072 - create_user-config.jam
1073 -
1074 - local PYTHON_OPTIONS
1075 - if python_bindings_needed; then
1076 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
1077 - else
1078 - PYTHON_OPTIONS=" --without-python"
1079 - fi
1080 -
1081 - ejam \
1082 - ${OPTIONS} \
1083 - ${PYTHON_OPTIONS} \
1084 - || die "Building of Boost libraries failed"
1085 -
1086 - if python_bindings_needed; then
1087 - if [[ -z "${PYTHON_DIRS}" ]]; then
1088 - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
1089 - else
1090 - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
1091 - die "Inconsistent structure of build directories"
1092 - fi
1093 - fi
1094 -
1095 - local dir
1096 - for dir in ${PYTHON_DIRS}; do
1097 - mv ${dir} ${dir}-${EPYTHON} \
1098 - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
1099 - done
1100 -
1101 - if mpi_needed; then
1102 - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
1103 - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
1104 - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
1105 - die "Multiple mpi.so files found"
1106 - fi
1107 - else
1108 - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
1109 - die "Inconsistent structure of build directories"
1110 - fi
1111 - fi
1112 -
1113 - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
1114 - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
1115 - fi
1116 - fi
1117 - }
1118 - if python_bindings_needed; then
1119 - python_foreach_impl building
1120 - else
1121 - building
1122 - fi
1123 -
1124 - if tools_needed; then
1125 - pushd tools > /dev/null || die
1126 -
1127 - ejam \
1128 - ${OPTIONS} \
1129 - ${PYTHON_OPTIONS} \
1130 - || die "Building of Boost tools failed"
1131 - popd > /dev/null || die
1132 - fi
1133 -}
1134 -
1135 -multilib_src_install_all() {
1136 - if ! use python; then
1137 - rm -r "${ED}"/usr/include/boost/python* || die
1138 - fi
1139 -
1140 - if ! use nls; then
1141 - rm -r "${ED}"/usr/include/boost/locale || die
1142 - fi
1143 -
1144 - if ! use context; then
1145 - rm -r "${ED}"/usr/include/boost/context || die
1146 - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
1147 - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
1148 - fi
1149 -
1150 - if use doc; then
1151 - find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
1152 - find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
1153 - find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
1154 - docinto html
1155 - dodoc *.{htm,html,png,css}
1156 - dodoc -r doc libs more tools
1157 -
1158 - # To avoid broken links
1159 - dodoc LICENSE_1_0.txt
1160 -
1161 - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
1162 - fi
1163 -}
1164 -
1165 -multilib_src_install() {
1166 - local -x BOOST_ROOT="${BUILD_DIR}"
1167 - installation() {
1168 - create_user-config.jam
1169 -
1170 - local PYTHON_OPTIONS
1171 - if python_bindings_needed; then
1172 - local dir
1173 - for dir in ${PYTHON_DIRS}; do
1174 - cp -pr ${dir}-${EPYTHON} ${dir} \
1175 - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
1176 - done
1177 -
1178 - if mpi_needed; then
1179 - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
1180 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
1181 - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
1182 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
1183 - fi
1184 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
1185 - else
1186 - PYTHON_OPTIONS=" --without-python"
1187 - fi
1188 -
1189 - ejam \
1190 - ${OPTIONS} \
1191 - ${PYTHON_OPTIONS} \
1192 - --includedir="${ED}usr/include" \
1193 - --libdir="${ED}usr/$(get_libdir)" \
1194 - install || die "Installation of Boost libraries failed"
1195 -
1196 - if python_bindings_needed; then
1197 - rm -r ${PYTHON_DIRS} || die
1198 -
1199 - # Move mpi.so Python module to Python site-packages directory.
1200 - # https://svn.boost.org/trac/boost/ticket/2838
1201 - if mpi_needed; then
1202 - local moddir=$(python_get_sitedir)/boost
1203 - # moddir already includes eprefix
1204 - mkdir -p "${D}${moddir}" || die
1205 - mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
1206 - cat << EOF > "${D}${moddir}/__init__.py" || die
1207 -import sys
1208 -if sys.platform.startswith('linux'):
1209 - import DLFCN
1210 - flags = sys.getdlopenflags()
1211 - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
1212 - from . import mpi
1213 - sys.setdlopenflags(flags)
1214 - del DLFCN, flags
1215 -else:
1216 - from . import mpi
1217 -del sys
1218 -EOF
1219 - fi
1220 -
1221 - python_optimize
1222 - fi
1223 - }
1224 - if python_bindings_needed; then
1225 - python_foreach_impl installation
1226 - else
1227 - installation
1228 - fi
1229 -
1230 - pushd "${ED}usr/$(get_libdir)" > /dev/null || die
1231 -
1232 - local ext=$(get_libname)
1233 - if use threads; then
1234 - local f
1235 - for f in *${ext}; do
1236 - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
1237 - done
1238 - fi
1239 -
1240 - popd > /dev/null || die
1241 -
1242 - if tools_needed; then
1243 - dobin dist/bin/*
1244 -
1245 - insinto /usr/share
1246 - doins -r dist/share/boostbook
1247 - fi
1248 -
1249 - # boost's build system truely sucks for not having a destdir. Because for
1250 - # this reason we are forced to build with a prefix that includes the
1251 - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
1252 - # DESTROOT instread of the actual EPREFIX. There is no way out of here
1253 - # but to do it the dirty way of manually setting the right install_names.
1254 - if [[ ${CHOST} == *-darwin* ]]; then
1255 - einfo "Working around completely broken build-system(tm)"
1256 - local d
1257 - for d in "${ED}"usr/lib/*.dylib; do
1258 - if [[ -f ${d} ]]; then
1259 - # fix the "soname"
1260 - ebegin " correcting install_name of ${d#${ED}}"
1261 - install_name_tool -id "/${d#${D}}" "${d}"
1262 - eend $?
1263 - # fix references to other libs
1264 - refs=$(otool -XL "${d}" | \
1265 - sed -e '1d' -e 's/^\t//' | \
1266 - grep "^libboost_" | \
1267 - cut -f1 -d' ')
1268 - local r
1269 - for r in ${refs}; do
1270 - ebegin " correcting reference to ${r}"
1271 - install_name_tool -change \
1272 - "${r}" \
1273 - "${EPREFIX}/usr/lib/${r}" \
1274 - "${d}"
1275 - eend $?
1276 - done
1277 - fi
1278 - done
1279 - fi
1280 -}
1281 -
1282 -pkg_preinst() {
1283 - # Yai for having symlinks that are nigh-impossible to remove without
1284 - # resorting to dirty hacks like these. Removes lingering symlinks
1285 - # from the slotted versions.
1286 - local symlink
1287 - for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
1288 - [[ -L ${symlink} ]] && rm -f "${symlink}"
1289 - done
1290 -}
1291
1292 diff --git a/dev-libs/boost/boost-1.60.0.ebuild b/dev-libs/boost/boost-1.60.0.ebuild
1293 deleted file mode 100644
1294 index 426b974048f..00000000000
1295 --- a/dev-libs/boost/boost-1.60.0.ebuild
1296 +++ /dev/null
1297 @@ -1,408 +0,0 @@
1298 -# Copyright 1999-2016 Gentoo Foundation
1299 -# Distributed under the terms of the GNU General Public License v2
1300 -
1301 -EAPI="6"
1302 -PYTHON_COMPAT=( python{2_7,3_4,3_5} )
1303 -
1304 -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
1305 -
1306 -MY_P="${PN}_$(replace_all_version_separators _)"
1307 -MAJOR_V="$(get_version_component_range 1-2)"
1308 -
1309 -DESCRIPTION="Boost Libraries for C++"
1310 -HOMEPAGE="http://www.boost.org/"
1311 -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
1312 -
1313 -LICENSE="Boost-1.0"
1314 -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
1315 -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"
1316 -
1317 -IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
1318 -
1319 -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
1320 - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
1321 - mpi? ( virtual/mpi[cxx,threads] )
1322 - python? ( ${PYTHON_DEPS} )
1323 - app-arch/bzip2[${MULTILIB_USEDEP}]
1324 - sys-libs/zlib[${MULTILIB_USEDEP}]
1325 - !app-admin/eselect-boost"
1326 -DEPEND="${RDEPEND}
1327 - =dev-util/boost-build-${MAJOR_V}*"
1328 -REQUIRED_USE="
1329 - mpi? ( threads )
1330 - python? ( ${PYTHON_REQUIRED_USE} )"
1331 -
1332 -S="${WORKDIR}/${MY_P}"
1333 -
1334 -# the tests will never fail because these are not intended as sanity
1335 -# tests at all. They are more a way for upstream to check their own code
1336 -# on new compilers. Since they would either be completely unreliable
1337 -# (failing for no good reason) or completely useless (never failing)
1338 -# there is no point in having them in the ebuild to begin with.
1339 -RESTRICT="test"
1340 -
1341 -PATCHES=(
1342 - "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
1343 - "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
1344 - "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
1345 - "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
1346 - "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
1347 - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
1348 - "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
1349 - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
1350 - "${FILESDIR}/${PN}-1.60.0-deprecated-header-ice_not.patch"
1351 - "${FILESDIR}/${PN}-1.60.0-auto-pointer-python.patch"
1352 -)
1353 -
1354 -python_bindings_needed() {
1355 - multilib_is_native_abi && use python
1356 -}
1357 -
1358 -tools_needed() {
1359 - multilib_is_native_abi && use tools
1360 -}
1361 -
1362 -# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
1363 -mpi_needed() {
1364 - multilib_is_native_abi && use mpi
1365 -}
1366 -
1367 -create_user-config.jam() {
1368 - local compiler compiler_version compiler_executable
1369 -
1370 - if [[ ${CHOST} == *-darwin* ]]; then
1371 - compiler="darwin"
1372 - compiler_version="$(gcc-fullversion)"
1373 - compiler_executable="$(tc-getCXX)"
1374 - else
1375 - compiler="gcc"
1376 - compiler_version="$(gcc-version)"
1377 - compiler_executable="$(tc-getCXX)"
1378 - fi
1379 - local mpi_configuration python_configuration
1380 -
1381 - if mpi_needed; then
1382 - mpi_configuration="using mpi ;"
1383 - fi
1384 -
1385 - if python_bindings_needed; then
1386 - # boost expects libpython$(pyver) and doesn't allow overrides
1387 - # and the build system is so creepy that it's easier just to
1388 - # provide a symlink (linker's going to use SONAME anyway)
1389 - # TODO: replace it with proper override one day
1390 - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
1391 -
1392 - if tc-is-cross-compiler; then
1393 - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
1394 - else
1395 - # note: we need to provide version explicitly because of
1396 - # a bug in the build system:
1397 - # https://github.com/boostorg/build/pull/104
1398 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
1399 - fi
1400 - fi
1401 -
1402 - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
1403 -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
1404 -${mpi_configuration}
1405 -${python_configuration}
1406 -__EOF__
1407 -}
1408 -
1409 -pkg_setup() {
1410 - # Bail out on unsupported build configuration, bug #456792
1411 - if [[ -f "${EROOT}etc/site-config.jam" ]]; then
1412 - grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
1413 - (
1414 - eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
1415 - eerror "Boost can not be built in such configuration."
1416 - eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
1417 - die
1418 - )
1419 - fi
1420 -}
1421 -
1422 -src_prepare() {
1423 - default
1424 -
1425 - # Do not try to build missing 'wave' tool, bug #522682
1426 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
1427 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
1428 -
1429 - multilib_copy_sources
1430 -}
1431 -
1432 -ejam() {
1433 - local b2_opts="--user-config=${BOOST_ROOT}/user-config.jam $@"
1434 - echo b2 ${b2_opts}
1435 - b2 ${b2_opts}
1436 -}
1437 -
1438 -src_configure() {
1439 - # Workaround for too many parallel processes requested, bug #506064
1440 - [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
1441 -
1442 - OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2"
1443 -
1444 - if [[ ${CHOST} == *-darwin* ]]; then
1445 - # We need to add the prefix, and in two cases this exceeds, so prepare
1446 - # for the largest possible space allocation.
1447 - append-ldflags -Wl,-headerpad_max_install_names
1448 - elif [[ ${CHOST} == *-winnt* ]]; then
1449 - compiler=parity
1450 - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
1451 - compilerVersion=trunk
1452 - else
1453 - compilerVersion=$($(tc-getCXX) -v | sed '1q' \
1454 - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
1455 - fi
1456 - compilerExecutable=$(tc-getCXX)
1457 - fi
1458 -
1459 - # bug 298489
1460 - if use ppc || use ppc64; then
1461 - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
1462 - fi
1463 -
1464 - # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
1465 - append-cxxflags -std=gnu++98
1466 -
1467 - use icu && OPTIONS+=" -sICU_PATH=${EPREFIX}/usr"
1468 - use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
1469 - mpi_needed || OPTIONS+=" --without-mpi"
1470 - use nls || OPTIONS+=" --without-locale"
1471 - use context || OPTIONS+=" --without-context --without-coroutine --without-coroutine2"
1472 -
1473 - OPTIONS+=" pch=off"
1474 - OPTIONS+=" --boost-build=\"${EPREFIX}\"/usr/share/boost-build --prefix=\"${ED}usr\""
1475 - OPTIONS+=" --layout=system"
1476 - OPTIONS+=" threading=$(usex threads multi single) link=$(usex static-libs shared,static shared)"
1477 -
1478 - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=" -sNO_BZIP2=1"
1479 -}
1480 -
1481 -multilib_src_compile() {
1482 - local -x BOOST_ROOT="${BUILD_DIR}"
1483 - PYTHON_DIRS=""
1484 - MPI_PYTHON_MODULE=""
1485 -
1486 - building() {
1487 - create_user-config.jam
1488 -
1489 - local PYTHON_OPTIONS
1490 - if python_bindings_needed; then
1491 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
1492 - else
1493 - PYTHON_OPTIONS=" --without-python"
1494 - fi
1495 -
1496 - ejam \
1497 - ${OPTIONS} \
1498 - ${PYTHON_OPTIONS} \
1499 - || die "Building of Boost libraries failed"
1500 -
1501 - if python_bindings_needed; then
1502 - if [[ -z "${PYTHON_DIRS}" ]]; then
1503 - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
1504 - else
1505 - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
1506 - die "Inconsistent structure of build directories"
1507 - fi
1508 - fi
1509 -
1510 - local dir
1511 - for dir in ${PYTHON_DIRS}; do
1512 - mv ${dir} ${dir}-${EPYTHON} \
1513 - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
1514 - done
1515 -
1516 - if mpi_needed; then
1517 - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
1518 - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
1519 - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
1520 - die "Multiple mpi.so files found"
1521 - fi
1522 - else
1523 - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
1524 - die "Inconsistent structure of build directories"
1525 - fi
1526 - fi
1527 -
1528 - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
1529 - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
1530 - fi
1531 - fi
1532 - }
1533 - if python_bindings_needed; then
1534 - python_foreach_impl building
1535 - else
1536 - building
1537 - fi
1538 -
1539 - if tools_needed; then
1540 - pushd tools > /dev/null || die
1541 -
1542 - ejam \
1543 - ${OPTIONS} \
1544 - ${PYTHON_OPTIONS} \
1545 - || die "Building of Boost tools failed"
1546 - popd > /dev/null || die
1547 - fi
1548 -}
1549 -
1550 -multilib_src_install_all() {
1551 - if ! use python; then
1552 - rm -r "${ED}"/usr/include/boost/python* || die
1553 - fi
1554 -
1555 - if ! use nls; then
1556 - rm -r "${ED}"/usr/include/boost/locale || die
1557 - fi
1558 -
1559 - if ! use context; then
1560 - rm -r "${ED}"/usr/include/boost/context || die
1561 - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
1562 - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
1563 - fi
1564 -
1565 - if use doc; then
1566 - find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
1567 - find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
1568 - find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
1569 - docinto html
1570 - dodoc *.{htm,html,png,css}
1571 - dodoc -r doc libs more tools
1572 -
1573 - # To avoid broken links
1574 - dodoc LICENSE_1_0.txt
1575 -
1576 - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
1577 - fi
1578 -}
1579 -
1580 -multilib_src_install() {
1581 - local -x BOOST_ROOT="${BUILD_DIR}"
1582 - installation() {
1583 - create_user-config.jam
1584 -
1585 - local PYTHON_OPTIONS
1586 - if python_bindings_needed; then
1587 - local dir
1588 - for dir in ${PYTHON_DIRS}; do
1589 - cp -pr ${dir}-${EPYTHON} ${dir} \
1590 - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
1591 - done
1592 -
1593 - if mpi_needed; then
1594 - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
1595 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
1596 - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
1597 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
1598 - fi
1599 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
1600 - else
1601 - PYTHON_OPTIONS=" --without-python"
1602 - fi
1603 -
1604 - ejam \
1605 - ${OPTIONS} \
1606 - ${PYTHON_OPTIONS} \
1607 - --includedir="${ED}usr/include" \
1608 - --libdir="${ED}usr/$(get_libdir)" \
1609 - install || die "Installation of Boost libraries failed"
1610 -
1611 - if python_bindings_needed; then
1612 - rm -r ${PYTHON_DIRS} || die
1613 -
1614 - # Move mpi.so Python module to Python site-packages directory.
1615 - # https://svn.boost.org/trac/boost/ticket/2838
1616 - if mpi_needed; then
1617 - local moddir=$(python_get_sitedir)/boost
1618 - # moddir already includes eprefix
1619 - mkdir -p "${D}${moddir}" || die
1620 - mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
1621 - cat << EOF > "${D}${moddir}/__init__.py" || die
1622 -import sys
1623 -if sys.platform.startswith('linux'):
1624 - import DLFCN
1625 - flags = sys.getdlopenflags()
1626 - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
1627 - from . import mpi
1628 - sys.setdlopenflags(flags)
1629 - del DLFCN, flags
1630 -else:
1631 - from . import mpi
1632 -del sys
1633 -EOF
1634 - fi
1635 -
1636 - python_optimize
1637 - fi
1638 - }
1639 - if python_bindings_needed; then
1640 - python_foreach_impl installation
1641 - else
1642 - installation
1643 - fi
1644 -
1645 - pushd "${ED}usr/$(get_libdir)" > /dev/null || die
1646 -
1647 - local ext=$(get_libname)
1648 - if use threads; then
1649 - local f
1650 - for f in *${ext}; do
1651 - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
1652 - done
1653 - fi
1654 -
1655 - popd > /dev/null || die
1656 -
1657 - if tools_needed; then
1658 - dobin dist/bin/*
1659 -
1660 - insinto /usr/share
1661 - doins -r dist/share/boostbook
1662 - fi
1663 -
1664 - # boost's build system truely sucks for not having a destdir. Because for
1665 - # this reason we are forced to build with a prefix that includes the
1666 - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
1667 - # DESTROOT instread of the actual EPREFIX. There is no way out of here
1668 - # but to do it the dirty way of manually setting the right install_names.
1669 - if [[ ${CHOST} == *-darwin* ]]; then
1670 - einfo "Working around completely broken build-system(tm)"
1671 - local d
1672 - for d in "${ED}"usr/lib/*.dylib; do
1673 - if [[ -f ${d} ]]; then
1674 - # fix the "soname"
1675 - ebegin " correcting install_name of ${d#${ED}}"
1676 - install_name_tool -id "/${d#${D}}" "${d}"
1677 - eend $?
1678 - # fix references to other libs
1679 - refs=$(otool -XL "${d}" | \
1680 - sed -e '1d' -e 's/^\t//' | \
1681 - grep "^libboost_" | \
1682 - cut -f1 -d' ')
1683 - local r
1684 - for r in ${refs}; do
1685 - ebegin " correcting reference to ${r}"
1686 - install_name_tool -change \
1687 - "${r}" \
1688 - "${EPREFIX}/usr/lib/${r}" \
1689 - "${d}"
1690 - eend $?
1691 - done
1692 - fi
1693 - done
1694 - fi
1695 -}
1696 -
1697 -pkg_preinst() {
1698 - # Yai for having symlinks that are nigh-impossible to remove without
1699 - # resorting to dirty hacks like these. Removes lingering symlinks
1700 - # from the slotted versions.
1701 - local symlink
1702 - for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
1703 - [[ -L ${symlink} ]] && rm -f "${symlink}"
1704 - done
1705 -}
1706
1707 diff --git a/dev-libs/boost/boost-1.61.0-r1.ebuild b/dev-libs/boost/boost-1.61.0-r1.ebuild
1708 deleted file mode 100644
1709 index 48f16ecdbc9..00000000000
1710 --- a/dev-libs/boost/boost-1.61.0-r1.ebuild
1711 +++ /dev/null
1712 @@ -1,428 +0,0 @@
1713 -# Copyright 1999-2017 Gentoo Foundation
1714 -# Distributed under the terms of the GNU General Public License v2
1715 -
1716 -EAPI="6"
1717 -PYTHON_COMPAT=( python{2_7,3_4,3_5} )
1718 -
1719 -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
1720 -
1721 -MY_P="${PN}_$(replace_all_version_separators _)"
1722 -MAJOR_V="$(get_version_component_range 1-2)"
1723 -
1724 -DESCRIPTION="Boost Libraries for C++"
1725 -HOMEPAGE="http://www.boost.org/"
1726 -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
1727 -
1728 -LICENSE="Boost-1.0"
1729 -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
1730 -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"
1731 -
1732 -IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
1733 -
1734 -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
1735 - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
1736 - mpi? ( >=virtual/mpi-2.0-r4[${MULTILIB_USEDEP},cxx,threads] )
1737 - python? ( ${PYTHON_DEPS} )
1738 - app-arch/bzip2[${MULTILIB_USEDEP}]
1739 - sys-libs/zlib[${MULTILIB_USEDEP}]
1740 - !app-admin/eselect-boost"
1741 -DEPEND="${RDEPEND}
1742 - =dev-util/boost-build-${MAJOR_V}*"
1743 -REQUIRED_USE="
1744 - mpi? ( threads )
1745 - python? ( ${PYTHON_REQUIRED_USE} )"
1746 -
1747 -S="${WORKDIR}/${MY_P}"
1748 -
1749 -# the tests will never fail because these are not intended as sanity
1750 -# tests at all. They are more a way for upstream to check their own code
1751 -# on new compilers. Since they would either be completely unreliable
1752 -# (failing for no good reason) or completely useless (never failing)
1753 -# there is no point in having them in the ebuild to begin with.
1754 -RESTRICT="test"
1755 -
1756 -PATCHES=(
1757 - "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
1758 - "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
1759 - "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
1760 - "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
1761 - "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
1762 - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
1763 - "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
1764 - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
1765 -)
1766 -
1767 -python_bindings_needed() {
1768 - multilib_is_native_abi && use python
1769 -}
1770 -
1771 -tools_needed() {
1772 - multilib_is_native_abi && use tools
1773 -}
1774 -
1775 -create_user-config.jam() {
1776 - local compiler compiler_version compiler_executable
1777 -
1778 - if [[ ${CHOST} == *-darwin* ]]; then
1779 - compiler="darwin"
1780 - compiler_version="$(gcc-fullversion)"
1781 - compiler_executable="$(tc-getCXX)"
1782 - else
1783 - compiler="gcc"
1784 - compiler_version="$(gcc-version)"
1785 - compiler_executable="$(tc-getCXX)"
1786 - fi
1787 - local mpi_configuration python_configuration
1788 -
1789 - if use mpi; then
1790 - mpi_configuration="using mpi ;"
1791 - fi
1792 -
1793 - if python_bindings_needed; then
1794 - # boost expects libpython$(pyver) and doesn't allow overrides
1795 - # and the build system is so creepy that it's easier just to
1796 - # provide a symlink (linker's going to use SONAME anyway)
1797 - # TODO: replace it with proper override one day
1798 - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
1799 -
1800 - if tc-is-cross-compiler; then
1801 - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
1802 - else
1803 - # note: we need to provide version explicitly because of
1804 - # a bug in the build system:
1805 - # https://github.com/boostorg/build/pull/104
1806 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
1807 - fi
1808 - fi
1809 -
1810 - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
1811 -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
1812 -${mpi_configuration}
1813 -${python_configuration}
1814 -__EOF__
1815 -}
1816 -
1817 -pkg_setup() {
1818 - # Bail out on unsupported build configuration, bug #456792
1819 - if [[ -f "${EROOT}etc/site-config.jam" ]]; then
1820 - grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
1821 - (
1822 - eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
1823 - eerror "Boost can not be built in such configuration."
1824 - eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
1825 - die
1826 - )
1827 - fi
1828 -}
1829 -
1830 -src_prepare() {
1831 - default
1832 -
1833 - # Do not try to build missing 'wave' tool, bug #522682
1834 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
1835 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
1836 -
1837 - multilib_copy_sources
1838 -}
1839 -
1840 -ejam() {
1841 - local b2_opts=(
1842 - "--user-config=${BOOST_ROOT}/user-config.jam"
1843 - "$@"
1844 - )
1845 - echo b2 "${b2_opts[@]}"
1846 - b2 "${b2_opts[@]}"
1847 -}
1848 -
1849 -src_configure() {
1850 - # Workaround for too many parallel processes requested, bug #506064
1851 - [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
1852 -
1853 - OPTIONS=(
1854 - $(usex debug gentoodebug gentoorelease)
1855 - "-j$(makeopts_jobs)"
1856 - -q
1857 - -d+2
1858 - )
1859 -
1860 - if [[ ${CHOST} == *-darwin* ]]; then
1861 - # We need to add the prefix, and in two cases this exceeds, so prepare
1862 - # for the largest possible space allocation.
1863 - append-ldflags -Wl,-headerpad_max_install_names
1864 - elif [[ ${CHOST} == *-winnt* ]]; then
1865 - compiler=parity
1866 - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
1867 - compilerVersion=trunk
1868 - else
1869 - compilerVersion=$($(tc-getCXX) -v | sed '1q' \
1870 - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
1871 - fi
1872 - compilerExecutable=$(tc-getCXX)
1873 - fi
1874 -
1875 - # bug 298489
1876 - if use ppc || use ppc64; then
1877 - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
1878 - fi
1879 -
1880 - # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
1881 - append-cxxflags -std=gnu++98
1882 -
1883 - use icu && OPTIONS+=(
1884 - "-sICU_PATH=${EPREFIX}/usr"
1885 - )
1886 - use icu || OPTIONS+=(
1887 - --disable-icu
1888 - boost.locale.icu=off
1889 - )
1890 - use mpi || OPTIONS+=(
1891 - --without-mpi
1892 - )
1893 - use nls || OPTIONS+=(
1894 - --without-locale
1895 - )
1896 - use context || OPTIONS+=(
1897 - --without-context
1898 - --without-coroutine
1899 - --without-coroutine2
1900 - )
1901 -
1902 - OPTIONS+=(
1903 - pch=off
1904 - --boost-build="${EPREFIX}"/usr/share/boost-build
1905 - --prefix="${ED}usr"
1906 - --layout=system
1907 - threading=$(usex threads multi single)
1908 - link=$(usex static-libs shared,static shared)
1909 - )
1910 -
1911 - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
1912 - -sNO_BZIP2=1
1913 - )
1914 -}
1915 -
1916 -multilib_src_compile() {
1917 - local -x BOOST_ROOT="${BUILD_DIR}"
1918 - PYTHON_DIRS=""
1919 - MPI_PYTHON_MODULE=""
1920 -
1921 - building() {
1922 - create_user-config.jam
1923 -
1924 - local PYTHON_OPTIONS
1925 - if python_bindings_needed; then
1926 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
1927 - else
1928 - PYTHON_OPTIONS=" --without-python"
1929 - fi
1930 -
1931 - ejam \
1932 - "${OPTIONS[@]}" \
1933 - ${PYTHON_OPTIONS} \
1934 - || die "Building of Boost libraries failed"
1935 -
1936 - if python_bindings_needed; then
1937 - if [[ -z "${PYTHON_DIRS}" ]]; then
1938 - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
1939 - else
1940 - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
1941 - die "Inconsistent structure of build directories"
1942 - fi
1943 - fi
1944 -
1945 - local dir
1946 - for dir in ${PYTHON_DIRS}; do
1947 - mv ${dir} ${dir}-${EPYTHON} \
1948 - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
1949 - done
1950 -
1951 - if use mpi; then
1952 - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
1953 - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
1954 - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
1955 - die "Multiple mpi.so files found"
1956 - fi
1957 - else
1958 - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
1959 - die "Inconsistent structure of build directories"
1960 - fi
1961 - fi
1962 -
1963 - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
1964 - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
1965 - fi
1966 - fi
1967 - }
1968 - if python_bindings_needed; then
1969 - python_foreach_impl building
1970 - else
1971 - building
1972 - fi
1973 -
1974 - if tools_needed; then
1975 - pushd tools > /dev/null || die
1976 -
1977 - ejam \
1978 - "${OPTIONS[@]}" \
1979 - ${PYTHON_OPTIONS} \
1980 - || die "Building of Boost tools failed"
1981 - popd > /dev/null || die
1982 - fi
1983 -}
1984 -
1985 -multilib_src_install_all() {
1986 - if ! use python; then
1987 - rm -r "${ED}"/usr/include/boost/python* || die
1988 - fi
1989 -
1990 - if ! use nls; then
1991 - rm -r "${ED}"/usr/include/boost/locale || die
1992 - fi
1993 -
1994 - if ! use context; then
1995 - rm -r "${ED}"/usr/include/boost/context || die
1996 - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
1997 - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
1998 - fi
1999 -
2000 - if use doc; then
2001 - find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
2002 - find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
2003 - find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
2004 - docinto html
2005 - dodoc *.{htm,html,png,css}
2006 - dodoc -r doc libs more tools
2007 -
2008 - # To avoid broken links
2009 - dodoc LICENSE_1_0.txt
2010 -
2011 - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
2012 - fi
2013 -}
2014 -
2015 -multilib_src_install() {
2016 - local -x BOOST_ROOT="${BUILD_DIR}"
2017 - installation() {
2018 - create_user-config.jam
2019 -
2020 - local PYTHON_OPTIONS
2021 - if python_bindings_needed; then
2022 - local dir
2023 - for dir in ${PYTHON_DIRS}; do
2024 - cp -pr ${dir}-${EPYTHON} ${dir} \
2025 - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
2026 - done
2027 -
2028 - if use mpi; then
2029 - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
2030 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
2031 - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
2032 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
2033 - fi
2034 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
2035 - else
2036 - PYTHON_OPTIONS=" --without-python"
2037 - fi
2038 -
2039 - ejam \
2040 - "${OPTIONS[@]}" \
2041 - ${PYTHON_OPTIONS} \
2042 - --includedir="${ED}usr/include" \
2043 - --libdir="${ED}usr/$(get_libdir)" \
2044 - install || die "Installation of Boost libraries failed"
2045 -
2046 - if python_bindings_needed; then
2047 - rm -r ${PYTHON_DIRS} || die
2048 -
2049 - # Move mpi.so Python module to Python site-packages directory.
2050 - # https://svn.boost.org/trac/boost/ticket/2838
2051 - if use mpi; then
2052 - local moddir=$(python_get_sitedir)/boost
2053 - # moddir already includes eprefix
2054 - mkdir -p "${D}${moddir}" || die
2055 - mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
2056 - cat << EOF > "${D}${moddir}/__init__.py" || die
2057 -import sys
2058 -if sys.platform.startswith('linux'):
2059 - import DLFCN
2060 - flags = sys.getdlopenflags()
2061 - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
2062 - from . import mpi
2063 - sys.setdlopenflags(flags)
2064 - del DLFCN, flags
2065 -else:
2066 - from . import mpi
2067 -del sys
2068 -EOF
2069 - fi
2070 -
2071 - python_optimize
2072 - fi
2073 - }
2074 - if python_bindings_needed; then
2075 - python_foreach_impl installation
2076 - else
2077 - installation
2078 - fi
2079 -
2080 - pushd "${ED}usr/$(get_libdir)" > /dev/null || die
2081 -
2082 - local ext=$(get_libname)
2083 - if use threads; then
2084 - local f
2085 - for f in *${ext}; do
2086 - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
2087 - done
2088 - fi
2089 -
2090 - popd > /dev/null || die
2091 -
2092 - if tools_needed; then
2093 - dobin dist/bin/*
2094 -
2095 - insinto /usr/share
2096 - doins -r dist/share/boostbook
2097 - fi
2098 -
2099 - # boost's build system truely sucks for not having a destdir. Because for
2100 - # this reason we are forced to build with a prefix that includes the
2101 - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
2102 - # DESTROOT instread of the actual EPREFIX. There is no way out of here
2103 - # but to do it the dirty way of manually setting the right install_names.
2104 - if [[ ${CHOST} == *-darwin* ]]; then
2105 - einfo "Working around completely broken build-system(tm)"
2106 - local d
2107 - for d in "${ED}"usr/lib/*.dylib; do
2108 - if [[ -f ${d} ]]; then
2109 - # fix the "soname"
2110 - ebegin " correcting install_name of ${d#${ED}}"
2111 - install_name_tool -id "/${d#${D}}" "${d}"
2112 - eend $?
2113 - # fix references to other libs
2114 - refs=$(otool -XL "${d}" | \
2115 - sed -e '1d' -e 's/^\t//' | \
2116 - grep "^libboost_" | \
2117 - cut -f1 -d' ')
2118 - local r
2119 - for r in ${refs}; do
2120 - ebegin " correcting reference to ${r}"
2121 - install_name_tool -change \
2122 - "${r}" \
2123 - "${EPREFIX}/usr/lib/${r}" \
2124 - "${d}"
2125 - eend $?
2126 - done
2127 - fi
2128 - done
2129 - fi
2130 -}
2131 -
2132 -pkg_preinst() {
2133 - # Yai for having symlinks that are nigh-impossible to remove without
2134 - # resorting to dirty hacks like these. Removes lingering symlinks
2135 - # from the slotted versions.
2136 - local symlink
2137 - for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
2138 - [[ -L ${symlink} ]] && rm -f "${symlink}"
2139 - done
2140 -}
2141
2142 diff --git a/dev-libs/boost/boost-1.61.0.ebuild b/dev-libs/boost/boost-1.61.0.ebuild
2143 deleted file mode 100644
2144 index 2a56268a16e..00000000000
2145 --- a/dev-libs/boost/boost-1.61.0.ebuild
2146 +++ /dev/null
2147 @@ -1,433 +0,0 @@
2148 -# Copyright 1999-2016 Gentoo Foundation
2149 -# Distributed under the terms of the GNU General Public License v2
2150 -
2151 -EAPI="6"
2152 -PYTHON_COMPAT=( python{2_7,3_4,3_5} )
2153 -
2154 -inherit eutils flag-o-matic multiprocessing python-r1 toolchain-funcs versionator multilib-minimal
2155 -
2156 -MY_P="${PN}_$(replace_all_version_separators _)"
2157 -MAJOR_V="$(get_version_component_range 1-2)"
2158 -
2159 -DESCRIPTION="Boost Libraries for C++"
2160 -HOMEPAGE="http://www.boost.org/"
2161 -SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
2162 -
2163 -LICENSE="Boost-1.0"
2164 -SLOT="0/${PV}" # ${PV} instead ${MAJOR_V} due to bug 486122
2165 -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"
2166 -
2167 -IUSE="context debug doc icu +nls mpi python static-libs +threads tools"
2168 -
2169 -RDEPEND="icu? ( >=dev-libs/icu-3.6:=[${MULTILIB_USEDEP}] )
2170 - !icu? ( virtual/libiconv[${MULTILIB_USEDEP}] )
2171 - mpi? ( virtual/mpi[cxx,threads] )
2172 - python? ( ${PYTHON_DEPS} )
2173 - app-arch/bzip2[${MULTILIB_USEDEP}]
2174 - sys-libs/zlib[${MULTILIB_USEDEP}]
2175 - !app-admin/eselect-boost"
2176 -DEPEND="${RDEPEND}
2177 - =dev-util/boost-build-${MAJOR_V}*"
2178 -REQUIRED_USE="
2179 - mpi? ( threads )
2180 - python? ( ${PYTHON_REQUIRED_USE} )"
2181 -
2182 -S="${WORKDIR}/${MY_P}"
2183 -
2184 -# the tests will never fail because these are not intended as sanity
2185 -# tests at all. They are more a way for upstream to check their own code
2186 -# on new compilers. Since they would either be completely unreliable
2187 -# (failing for no good reason) or completely useless (never failing)
2188 -# there is no point in having them in the ebuild to begin with.
2189 -RESTRICT="test"
2190 -
2191 -PATCHES=(
2192 - "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch"
2193 - "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch"
2194 - "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch"
2195 - "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch"
2196 - "${FILESDIR}/${PN}-1.48.0-python_linking.patch"
2197 - "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
2198 - "${FILESDIR}/${PN}-1.55.0-context-x32.patch"
2199 - "${FILESDIR}/${PN}-1.56.0-build-auto_index-tool.patch"
2200 -)
2201 -
2202 -python_bindings_needed() {
2203 - multilib_is_native_abi && use python
2204 -}
2205 -
2206 -tools_needed() {
2207 - multilib_is_native_abi && use tools
2208 -}
2209 -
2210 -# MPI stuff is not ported on multilib yet, disabling it for non-native ABIs
2211 -mpi_needed() {
2212 - multilib_is_native_abi && use mpi
2213 -}
2214 -
2215 -create_user-config.jam() {
2216 - local compiler compiler_version compiler_executable
2217 -
2218 - if [[ ${CHOST} == *-darwin* ]]; then
2219 - compiler="darwin"
2220 - compiler_version="$(gcc-fullversion)"
2221 - compiler_executable="$(tc-getCXX)"
2222 - else
2223 - compiler="gcc"
2224 - compiler_version="$(gcc-version)"
2225 - compiler_executable="$(tc-getCXX)"
2226 - fi
2227 - local mpi_configuration python_configuration
2228 -
2229 - if mpi_needed; then
2230 - mpi_configuration="using mpi ;"
2231 - fi
2232 -
2233 - if python_bindings_needed; then
2234 - # boost expects libpython$(pyver) and doesn't allow overrides
2235 - # and the build system is so creepy that it's easier just to
2236 - # provide a symlink (linker's going to use SONAME anyway)
2237 - # TODO: replace it with proper override one day
2238 - ln -f -s "$(python_get_library_path)" "${T}/lib${EPYTHON}$(get_libname)" || die
2239 -
2240 - if tc-is-cross-compiler; then
2241 - python_configuration="using python : ${EPYTHON#python} : : ${SYSROOT:-${EROOT}}/usr/include/${EPYTHON} : ${SYSROOT:-${EROOT}}/usr/$(get_libdir) ;"
2242 - else
2243 - # note: we need to provide version explicitly because of
2244 - # a bug in the build system:
2245 - # https://github.com/boostorg/build/pull/104
2246 - python_configuration="using python : ${EPYTHON#python} : ${PYTHON} : $(python_get_includedir) : ${T} ;"
2247 - fi
2248 - fi
2249 -
2250 - cat > "${BOOST_ROOT}/user-config.jam" << __EOF__
2251 -using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
2252 -${mpi_configuration}
2253 -${python_configuration}
2254 -__EOF__
2255 -}
2256 -
2257 -pkg_setup() {
2258 - # Bail out on unsupported build configuration, bug #456792
2259 - if [[ -f "${EROOT}etc/site-config.jam" ]]; then
2260 - grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
2261 - (
2262 - eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
2263 - eerror "Boost can not be built in such configuration."
2264 - eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
2265 - die
2266 - )
2267 - fi
2268 -}
2269 -
2270 -src_prepare() {
2271 - default
2272 -
2273 - # Do not try to build missing 'wave' tool, bug #522682
2274 - # Upstream bugreport - https://svn.boost.org/trac/boost/ticket/10507
2275 - sed -i -e 's:wave/build//wave::' tools/Jamfile.v2 || die
2276 -
2277 - multilib_copy_sources
2278 -}
2279 -
2280 -ejam() {
2281 - local b2_opts=(
2282 - "--user-config=${BOOST_ROOT}/user-config.jam"
2283 - "$@"
2284 - )
2285 - echo b2 "${b2_opts[@]}"
2286 - b2 "${b2_opts[@]}"
2287 -}
2288 -
2289 -src_configure() {
2290 - # Workaround for too many parallel processes requested, bug #506064
2291 - [ "$(makeopts_jobs)" -gt 64 ] && MAKEOPTS="${MAKEOPTS} -j64"
2292 -
2293 - OPTIONS=(
2294 - $(usex debug gentoodebug gentoorelease)
2295 - "-j$(makeopts_jobs)"
2296 - -q
2297 - -d+2
2298 - )
2299 -
2300 - if [[ ${CHOST} == *-darwin* ]]; then
2301 - # We need to add the prefix, and in two cases this exceeds, so prepare
2302 - # for the largest possible space allocation.
2303 - append-ldflags -Wl,-headerpad_max_install_names
2304 - elif [[ ${CHOST} == *-winnt* ]]; then
2305 - compiler=parity
2306 - if [[ $($(tc-getCXX) -v) == *trunk* ]]; then
2307 - compilerVersion=trunk
2308 - else
2309 - compilerVersion=$($(tc-getCXX) -v | sed '1q' \
2310 - | sed -e 's,\([a-z]*\) \([0-9]\.[0-9]\.[0-9][^ \t]*\) .*,\2,')
2311 - fi
2312 - compilerExecutable=$(tc-getCXX)
2313 - fi
2314 -
2315 - # bug 298489
2316 - if use ppc || use ppc64; then
2317 - [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
2318 - fi
2319 -
2320 - # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
2321 - append-cxxflags -std=gnu++98
2322 -
2323 - use icu && OPTIONS+=(
2324 - "-sICU_PATH=${EPREFIX}/usr"
2325 - )
2326 - use icu || OPTIONS+=(
2327 - --disable-icu
2328 - boost.locale.icu=off
2329 - )
2330 - mpi_needed || OPTIONS+=(
2331 - --without-mpi
2332 - )
2333 - use nls || OPTIONS+=(
2334 - --without-locale
2335 - )
2336 - use context || OPTIONS+=(
2337 - --without-context
2338 - --without-coroutine
2339 - --without-coroutine2
2340 - )
2341 -
2342 - OPTIONS+=(
2343 - pch=off
2344 - --boost-build="${EPREFIX}"/usr/share/boost-build
2345 - --prefix="${ED}usr"
2346 - --layout=system
2347 - threading=$(usex threads multi single)
2348 - link=$(usex static-libs shared,static shared)
2349 - )
2350 -
2351 - [[ ${CHOST} == *-winnt* ]] && OPTIONS+=(
2352 - -sNO_BZIP2=1
2353 - )
2354 -}
2355 -
2356 -multilib_src_compile() {
2357 - local -x BOOST_ROOT="${BUILD_DIR}"
2358 - PYTHON_DIRS=""
2359 - MPI_PYTHON_MODULE=""
2360 -
2361 - building() {
2362 - create_user-config.jam
2363 -
2364 - local PYTHON_OPTIONS
2365 - if python_bindings_needed; then
2366 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
2367 - else
2368 - PYTHON_OPTIONS=" --without-python"
2369 - fi
2370 -
2371 - ejam \
2372 - "${OPTIONS[@]}" \
2373 - ${PYTHON_OPTIONS} \
2374 - || die "Building of Boost libraries failed"
2375 -
2376 - if python_bindings_needed; then
2377 - if [[ -z "${PYTHON_DIRS}" ]]; then
2378 - PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
2379 - else
2380 - if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
2381 - die "Inconsistent structure of build directories"
2382 - fi
2383 - fi
2384 -
2385 - local dir
2386 - for dir in ${PYTHON_DIRS}; do
2387 - mv ${dir} ${dir}-${EPYTHON} \
2388 - || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
2389 - done
2390 -
2391 - if mpi_needed; then
2392 - if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
2393 - MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
2394 - if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
2395 - die "Multiple mpi.so files found"
2396 - fi
2397 - else
2398 - if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
2399 - die "Inconsistent structure of build directories"
2400 - fi
2401 - fi
2402 -
2403 - mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
2404 - || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
2405 - fi
2406 - fi
2407 - }
2408 - if python_bindings_needed; then
2409 - python_foreach_impl building
2410 - else
2411 - building
2412 - fi
2413 -
2414 - if tools_needed; then
2415 - pushd tools > /dev/null || die
2416 -
2417 - ejam \
2418 - "${OPTIONS[@]}" \
2419 - ${PYTHON_OPTIONS} \
2420 - || die "Building of Boost tools failed"
2421 - popd > /dev/null || die
2422 - fi
2423 -}
2424 -
2425 -multilib_src_install_all() {
2426 - if ! use python; then
2427 - rm -r "${ED}"/usr/include/boost/python* || die
2428 - fi
2429 -
2430 - if ! use nls; then
2431 - rm -r "${ED}"/usr/include/boost/locale || die
2432 - fi
2433 -
2434 - if ! use context; then
2435 - rm -r "${ED}"/usr/include/boost/context || die
2436 - rm -r "${ED}"/usr/include/boost/coroutine{,2} || die
2437 - rm "${ED}"/usr/include/boost/asio/spawn.hpp || die
2438 - fi
2439 -
2440 - if use doc; then
2441 - find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
2442 - find doc -name Jamfile.v2 -or -name build -or -name *.manifest | xargs rm -f
2443 - find tools -name Jamfile.v2 -or -name src -or -name *.cpp -or -name *.hpp | xargs rm -rf
2444 - docinto html
2445 - dodoc *.{htm,html,png,css}
2446 - dodoc -r doc libs more tools
2447 -
2448 - # To avoid broken links
2449 - dodoc LICENSE_1_0.txt
2450 -
2451 - dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
2452 - fi
2453 -}
2454 -
2455 -multilib_src_install() {
2456 - local -x BOOST_ROOT="${BUILD_DIR}"
2457 - installation() {
2458 - create_user-config.jam
2459 -
2460 - local PYTHON_OPTIONS
2461 - if python_bindings_needed; then
2462 - local dir
2463 - for dir in ${PYTHON_DIRS}; do
2464 - cp -pr ${dir}-${EPYTHON} ${dir} \
2465 - || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
2466 - done
2467 -
2468 - if mpi_needed; then
2469 - cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
2470 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
2471 - cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
2472 - || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
2473 - fi
2474 - PYTHON_OPTIONS=" --python-buildid=${EPYTHON#python}"
2475 - else
2476 - PYTHON_OPTIONS=" --without-python"
2477 - fi
2478 -
2479 - ejam \
2480 - "${OPTIONS[@]}" \
2481 - ${PYTHON_OPTIONS} \
2482 - --includedir="${ED}usr/include" \
2483 - --libdir="${ED}usr/$(get_libdir)" \
2484 - install || die "Installation of Boost libraries failed"
2485 -
2486 - if python_bindings_needed; then
2487 - rm -r ${PYTHON_DIRS} || die
2488 -
2489 - # Move mpi.so Python module to Python site-packages directory.
2490 - # https://svn.boost.org/trac/boost/ticket/2838
2491 - if mpi_needed; then
2492 - local moddir=$(python_get_sitedir)/boost
2493 - # moddir already includes eprefix
2494 - mkdir -p "${D}${moddir}" || die
2495 - mv "${ED}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
2496 - cat << EOF > "${D}${moddir}/__init__.py" || die
2497 -import sys
2498 -if sys.platform.startswith('linux'):
2499 - import DLFCN
2500 - flags = sys.getdlopenflags()
2501 - sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
2502 - from . import mpi
2503 - sys.setdlopenflags(flags)
2504 - del DLFCN, flags
2505 -else:
2506 - from . import mpi
2507 -del sys
2508 -EOF
2509 - fi
2510 -
2511 - python_optimize
2512 - fi
2513 - }
2514 - if python_bindings_needed; then
2515 - python_foreach_impl installation
2516 - else
2517 - installation
2518 - fi
2519 -
2520 - pushd "${ED}usr/$(get_libdir)" > /dev/null || die
2521 -
2522 - local ext=$(get_libname)
2523 - if use threads; then
2524 - local f
2525 - for f in *${ext}; do
2526 - dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
2527 - done
2528 - fi
2529 -
2530 - popd > /dev/null || die
2531 -
2532 - if tools_needed; then
2533 - dobin dist/bin/*
2534 -
2535 - insinto /usr/share
2536 - doins -r dist/share/boostbook
2537 - fi
2538 -
2539 - # boost's build system truely sucks for not having a destdir. Because for
2540 - # this reason we are forced to build with a prefix that includes the
2541 - # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
2542 - # DESTROOT instread of the actual EPREFIX. There is no way out of here
2543 - # but to do it the dirty way of manually setting the right install_names.
2544 - if [[ ${CHOST} == *-darwin* ]]; then
2545 - einfo "Working around completely broken build-system(tm)"
2546 - local d
2547 - for d in "${ED}"usr/lib/*.dylib; do
2548 - if [[ -f ${d} ]]; then
2549 - # fix the "soname"
2550 - ebegin " correcting install_name of ${d#${ED}}"
2551 - install_name_tool -id "/${d#${D}}" "${d}"
2552 - eend $?
2553 - # fix references to other libs
2554 - refs=$(otool -XL "${d}" | \
2555 - sed -e '1d' -e 's/^\t//' | \
2556 - grep "^libboost_" | \
2557 - cut -f1 -d' ')
2558 - local r
2559 - for r in ${refs}; do
2560 - ebegin " correcting reference to ${r}"
2561 - install_name_tool -change \
2562 - "${r}" \
2563 - "${EPREFIX}/usr/lib/${r}" \
2564 - "${d}"
2565 - eend $?
2566 - done
2567 - fi
2568 - done
2569 - fi
2570 -}
2571 -
2572 -pkg_preinst() {
2573 - # Yai for having symlinks that are nigh-impossible to remove without
2574 - # resorting to dirty hacks like these. Removes lingering symlinks
2575 - # from the slotted versions.
2576 - local symlink
2577 - for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
2578 - [[ -L ${symlink} ]] && rm -f "${symlink}"
2579 - done
2580 -}
2581
2582 diff --git a/dev-libs/boost/files/boost-1.52.0-threads.patch b/dev-libs/boost/files/boost-1.52.0-threads.patch
2583 deleted file mode 100644
2584 index e078fc2e106..00000000000
2585 --- a/dev-libs/boost/files/boost-1.52.0-threads.patch
2586 +++ /dev/null
2587 @@ -1,63 +0,0 @@
2588 -Index: /trunk/boostcpp.jam
2589 -===================================================================
2590 ---- /trunk/boostcpp.jam (revision 79301)
2591 -+++ /trunk/boostcpp.jam (revision 81000)
2592 -@@ -210,6 +210,44 @@
2593 - }
2594 -
2595 -+rule filtered-target ( name : message + : sources + : requirements * )
2596 -+{
2597 -+ message $(name)-message : warning: $(message) ;
2598 -+ alias $(name) : $(sources) : $(requirements) ;
2599 -+ alias $(name) : $(name)-message ;
2600 -+
2601 -+ local p = [ project.current ] ;
2602 -+ $(p).mark-target-as-explicit $(name) ;
2603 -+ $(p).mark-target-as-explicit $(name)-message ;
2604 -+}
2605 -+
2606 - rule declare_install_and_stage_proper_targets ( libraries * : headers * )
2607 - {
2608 -+ for local l in $(libraries)
2609 -+ {
2610 -+ if $(l) = locale
2611 -+ {
2612 -+ filtered-target $(l)-for-install :
2613 -+ Skipping Boost.Locale library with threading=single. :
2614 -+ libs/$(l)/build : <threading>multi ;
2615 -+ }
2616 -+ else if $(l) = wave
2617 -+ {
2618 -+ filtered-target $(l)-for-install :
2619 -+ Skipping Boost.Wave library with threading=single. :
2620 -+ libs/$(l)/build : <threading>multi ;
2621 -+ }
2622 -+ else if $(l) = thread
2623 -+ {
2624 -+ filtered-target $(l)-for-install :
2625 -+ Skipping Boost.Thread library with threading=single. :
2626 -+ libs/$(l)/build : <threading>multi ;
2627 -+ }
2628 -+ else
2629 -+ {
2630 -+ alias $(l)-for-install : libs/$(l)/build ;
2631 -+ }
2632 -+ }
2633 -+ local library-targets = $(libraries)-for-install ;
2634 -+
2635 - install-requirements = <install-source-root>$(BOOST_ROOT)/boost ;
2636 -
2637 -@@ -239,5 +277,5 @@
2638 - : $(install-requirements) <install-no-version-symlinks>on
2639 - :
2640 -- : libs/$(libraries)/build
2641 -+ : $(libraries)-for-install
2642 - : $(headers)
2643 - ;
2644 -@@ -246,5 +284,5 @@
2645 - # Install just library.
2646 - install stage-proper
2647 -- : libs/$(libraries)/build
2648 -+ : $(libraries)-for-install
2649 - : <location>$(stage-locate)/lib
2650 - <install-dependencies>on <install-type>LIB
2651
2652 diff --git a/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch b/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch
2653 deleted file mode 100644
2654 index df2a14a34ae..00000000000
2655 --- a/dev-libs/boost/files/boost-1.55.0-tools-c98-compat.patch
2656 +++ /dev/null
2657 @@ -1,17 +0,0 @@
2658 -Make tools compiled successfully with forced C++98
2659 -
2660 -Gentoo bugreport: https://bugs.gentoo.org/show_bug.cgi?id=503468
2661 -
2662 -diff --git a/tools/regression/src/compiler_status.cpp b/tools/regression/src/compiler_status.cpp
2663 -index 63f8134..3f3374a 100644
2664 ---- a/tools/regression/src/compiler_status.cpp
2665 -+++ b/tools/regression/src/compiler_status.cpp
2666 -@@ -128,7 +128,7 @@ namespace
2667 - string ln(line);
2668 - if (ln.find("Revision: ") != string::npos)
2669 - {
2670 -- for(auto itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
2671 -+ for(string::iterator itr = ln.begin()+10; itr != ln.end() && isdigit(*itr); ++itr)
2672 - rev += *itr;
2673 - }
2674 - }
2675
2676 diff --git a/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch b/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch
2677 deleted file mode 100644
2678 index 547dbbd5caa..00000000000
2679 --- a/dev-libs/boost/files/boost-1.55.0-variadic-templates.patch
2680 +++ /dev/null
2681 @@ -1,37 +0,0 @@
2682 -From eec808554936ae068b23df07ab54d4dc6302a695 Mon Sep 17 00:00:00 2001
2683 -From: jzmaddock <jzmaddock@×××××.com>
2684 -Date: Sat, 23 Aug 2014 09:38:02 +0100
2685 -Subject: [PATCH] Fix BOOST_NO_CXX11_VARIADIC_TEMPLATES definition - the
2686 - feature was introduced in GCC 4.4.
2687 -
2688 ----
2689 - boost/config/compiler/gcc.hpp | 9 +--------
2690 - 1 file changed, 1 insertion(+), 8 deletions(-)
2691 -
2692 -diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
2693 -index f37159d..97d8a18 100644
2694 ---- a/boost/config/compiler/gcc.hpp
2695 -+++ b/boost/config/compiler/gcc.hpp
2696 -@@ -154,14 +154,6 @@
2697 - # define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
2698 - # define BOOST_NO_CXX11_RVALUE_REFERENCES
2699 - # define BOOST_NO_CXX11_STATIC_ASSERT
2700 --
2701 --// Variadic templates compiler:
2702 --// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
2703 --# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
2704 --# define BOOST_HAS_VARIADIC_TMPL
2705 --# else
2706 --# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
2707 --# endif
2708 - #endif
2709 -
2710 - // C++0x features in 4.4.n and later
2711 -@@ -176,6 +168,7 @@
2712 - # define BOOST_NO_CXX11_DELETED_FUNCTIONS
2713 - # define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
2714 - # define BOOST_NO_CXX11_INLINE_NAMESPACES
2715 -+# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
2716 - #endif
2717 -
2718 - #if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
2719
2720 diff --git a/dev-libs/boost/files/boost-1.56.0-atomic.patch b/dev-libs/boost/files/boost-1.56.0-atomic.patch
2721 deleted file mode 100644
2722 index 6d724188c8b..00000000000
2723 --- a/dev-libs/boost/files/boost-1.56.0-atomic.patch
2724 +++ /dev/null
2725 @@ -1,402 +0,0 @@
2726 -Fixed in 1.57
2727 -
2728 -commit 415db7054723291042e4ff1ffa8fdd5bc8b07163
2729 -Author: Andrey Semashev <andrey.semashev@×××××.com>
2730 -Date: Sat Sep 27 20:40:09 2014 +0400
2731 -
2732 - Added support for extending operations to GCC atomic backend.
2733 -
2734 - Fix for #10446. Some platforms (e.g. Raspberry Pi) only support atomic ops of some particular size but not less. Use extending arithmetic operations for these platforms. Also, make sure bools are always treated as 8-bit values, even if the actual type is larger. This makes its use in atomic<>, atomic_flag and lock pool more consistent.
2735 -
2736 -diff --git a/include/boost/atomic/capabilities.hpp b/include/boost/atomic/capabilities.hpp
2737 -index 658dd22..05bbb0f 100644
2738 ---- a/include/boost/atomic/capabilities.hpp
2739 -+++ b/include/boost/atomic/capabilities.hpp
2740 -@@ -142,6 +142,7 @@
2741 - #define BOOST_ATOMIC_ADDRESS_LOCK_FREE BOOST_ATOMIC_POINTER_LOCK_FREE
2742 -
2743 - #ifndef BOOST_ATOMIC_BOOL_LOCK_FREE
2744 -+// We store bools in 1-byte storage in all backends
2745 - #define BOOST_ATOMIC_BOOL_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
2746 - #endif
2747 -
2748 -diff --git a/include/boost/atomic/detail/atomic_template.hpp b/include/boost/atomic/detail/atomic_template.hpp
2749 -index 4fd6d79..bc3922a 100644
2750 ---- a/include/boost/atomic/detail/atomic_template.hpp
2751 -+++ b/include/boost/atomic/detail/atomic_template.hpp
2752 -@@ -234,7 +234,7 @@ class base_atomic< bool, int >
2753 - {
2754 - private:
2755 - typedef bool value_type;
2756 -- typedef atomics::detail::operations< storage_size_of< value_type >::value, false > operations;
2757 -+ typedef atomics::detail::operations< 1u, false > operations;
2758 -
2759 - protected:
2760 - typedef value_type value_arg_type;
2761 -diff --git a/include/boost/atomic/detail/caps_gcc_atomic.hpp b/include/boost/atomic/detail/caps_gcc_atomic.hpp
2762 -index 8299ad0..f4e7a70 100644
2763 ---- a/include/boost/atomic/detail/caps_gcc_atomic.hpp
2764 -+++ b/include/boost/atomic/detail/caps_gcc_atomic.hpp
2765 -@@ -29,66 +29,48 @@
2766 - #define BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B 1
2767 - #endif
2768 -
2769 --#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
2770 --#define BOOST_ATOMIC_FLAG_LOCK_FREE 2
2771 --#else
2772 --#define BOOST_ATOMIC_FLAG_LOCK_FREE 0
2773 --#endif
2774 --#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
2775 --#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
2776 --#else
2777 --#define BOOST_ATOMIC_CHAR_LOCK_FREE 0
2778 --#endif
2779 --#if __GCC_ATOMIC_CHAR16_T_LOCK_FREE == 2
2780 --#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 2
2781 --#else
2782 --#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE 0
2783 --#endif
2784 --#if __GCC_ATOMIC_CHAR32_T_LOCK_FREE == 2
2785 --#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 2
2786 -+#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
2787 -+#define BOOST_ATOMIC_INT128_LOCK_FREE 2
2788 - #else
2789 --#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE 0
2790 -+#define BOOST_ATOMIC_INT128_LOCK_FREE 0
2791 - #endif
2792 --#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
2793 --#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
2794 -+
2795 -+#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
2796 -+#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
2797 - #else
2798 --#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
2799 -+#define BOOST_ATOMIC_LLONG_LOCK_FREE BOOST_ATOMIC_INT128_LOCK_FREE
2800 - #endif
2801 --#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
2802 --#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
2803 -+
2804 -+#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
2805 -+#define BOOST_ATOMIC_LONG_LOCK_FREE 2
2806 - #else
2807 --#define BOOST_ATOMIC_SHORT_LOCK_FREE 0
2808 -+#define BOOST_ATOMIC_LONG_LOCK_FREE BOOST_ATOMIC_LLONG_LOCK_FREE
2809 - #endif
2810 -+
2811 - #if __GCC_ATOMIC_INT_LOCK_FREE == 2
2812 - #define BOOST_ATOMIC_INT_LOCK_FREE 2
2813 - #else
2814 --#define BOOST_ATOMIC_INT_LOCK_FREE 0
2815 --#endif
2816 --#if __GCC_ATOMIC_LONG_LOCK_FREE == 2
2817 --#define BOOST_ATOMIC_LONG_LOCK_FREE 2
2818 --#else
2819 --#define BOOST_ATOMIC_LONG_LOCK_FREE 0
2820 -+#define BOOST_ATOMIC_INT_LOCK_FREE BOOST_ATOMIC_LONG_LOCK_FREE
2821 - #endif
2822 --#if __GCC_ATOMIC_LLONG_LOCK_FREE == 2
2823 --#define BOOST_ATOMIC_LLONG_LOCK_FREE 2
2824 -+
2825 -+#if __GCC_ATOMIC_SHORT_LOCK_FREE == 2
2826 -+#define BOOST_ATOMIC_SHORT_LOCK_FREE 2
2827 - #else
2828 --#define BOOST_ATOMIC_LLONG_LOCK_FREE 0
2829 -+#define BOOST_ATOMIC_SHORT_LOCK_FREE BOOST_ATOMIC_INT_LOCK_FREE
2830 - #endif
2831 --#if defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B) && (defined(BOOST_HAS_INT128) || !defined(BOOST_NO_ALIGNMENT))
2832 --#define BOOST_ATOMIC_INT128_LOCK_FREE 2
2833 -+
2834 -+#if __GCC_ATOMIC_CHAR_LOCK_FREE == 2
2835 -+#define BOOST_ATOMIC_CHAR_LOCK_FREE 2
2836 - #else
2837 --#define BOOST_ATOMIC_INT128_LOCK_FREE 0
2838 -+#define BOOST_ATOMIC_CHAR_LOCK_FREE BOOST_ATOMIC_SHORT_LOCK_FREE
2839 - #endif
2840 -+
2841 - #if __GCC_ATOMIC_POINTER_LOCK_FREE == 2
2842 - #define BOOST_ATOMIC_POINTER_LOCK_FREE 2
2843 - #else
2844 - #define BOOST_ATOMIC_POINTER_LOCK_FREE 0
2845 - #endif
2846 --#if __GCC_ATOMIC_BOOL_LOCK_FREE == 2
2847 --#define BOOST_ATOMIC_BOOL_LOCK_FREE 2
2848 --#else
2849 --#define BOOST_ATOMIC_BOOL_LOCK_FREE 0
2850 --#endif
2851 -+
2852 -
2853 - #define BOOST_ATOMIC_INT8_LOCK_FREE BOOST_ATOMIC_CHAR_LOCK_FREE
2854 -
2855 -@@ -128,6 +110,24 @@
2856 - #define BOOST_ATOMIC_INT64_LOCK_FREE 0
2857 - #endif
2858 -
2859 -+
2860 -+#if __GCC_ATOMIC_WCHAR_T_LOCK_FREE == 2
2861 -+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 2
2862 -+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8
2863 -+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT64_LOCK_FREE
2864 -+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4
2865 -+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
2866 -+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2
2867 -+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
2868 -+#elif BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1
2869 -+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE BOOST_ATOMIC_INT8_LOCK_FREE
2870 -+#else
2871 -+#define BOOST_ATOMIC_WCHAR_T_LOCK_FREE 0
2872 -+#endif
2873 -+
2874 -+#define BOOST_ATOMIC_CHAR32_T_LOCK_FREE BOOST_ATOMIC_INT32_LOCK_FREE
2875 -+#define BOOST_ATOMIC_CHAR16_T_LOCK_FREE BOOST_ATOMIC_INT16_LOCK_FREE
2876 -+
2877 - #define BOOST_ATOMIC_THREAD_FENCE 2
2878 - #define BOOST_ATOMIC_SIGNAL_FENCE 2
2879 -
2880 -diff --git a/include/boost/atomic/detail/ops_gcc_atomic.hpp b/include/boost/atomic/detail/ops_gcc_atomic.hpp
2881 -index 2297791..2e4c37b 100644
2882 ---- a/include/boost/atomic/detail/ops_gcc_atomic.hpp
2883 -+++ b/include/boost/atomic/detail/ops_gcc_atomic.hpp
2884 -@@ -24,6 +24,15 @@
2885 - #include <boost/atomic/detail/ops_cas_based.hpp>
2886 - #endif
2887 -
2888 -+#if __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE || __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE ||\
2889 -+ __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE || __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE ||\
2890 -+ __GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE || __GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE ||\
2891 -+ __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE
2892 -+// There are platforms where we need to use larger storage types
2893 -+#include <boost/atomic/detail/int_sizes.hpp>
2894 -+#include <boost/atomic/detail/ops_extending_cas_based.hpp>
2895 -+#endif
2896 -+
2897 - #ifdef BOOST_HAS_PRAGMA_ONCE
2898 - #pragma once
2899 - #endif
2900 -@@ -154,73 +163,206 @@ struct gcc_atomic_operations
2901 - }
2902 - };
2903 -
2904 --#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
2905 -+#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
2906 -+#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
2907 -+
2908 -+// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
2909 -+// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
2910 - template< bool Signed >
2911 --struct operations< 1u, Signed > :
2912 -- public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
2913 -+struct operations< 16u, Signed > :
2914 -+ public cas_based_operations< gcc_dcas_x86_64< Signed > >
2915 - {
2916 - };
2917 -+
2918 -+#else
2919 -+
2920 -+template< bool Signed >
2921 -+struct operations< 16u, Signed > :
2922 -+ public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
2923 -+{
2924 -+};
2925 -+
2926 -+#endif
2927 - #endif
2928 -
2929 --#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
2930 -+
2931 -+#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
2932 -+#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
2933 -+
2934 -+// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
2935 - template< bool Signed >
2936 --struct operations< 2u, Signed > :
2937 -- public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
2938 -+struct operations< 8u, Signed > :
2939 -+ public cas_based_operations< gcc_dcas_x86< Signed > >
2940 -+{
2941 -+};
2942 -+
2943 -+#elif (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 8 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
2944 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 8 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
2945 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 8 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
2946 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 8 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
2947 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 8 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
2948 -+
2949 -+#define BOOST_ATOMIC_DETAIL_INT64_EXTENDED
2950 -+
2951 -+template< bool Signed >
2952 -+struct operations< 8u, Signed > :
2953 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 8u, Signed >
2954 - {
2955 - };
2956 -+
2957 -+#else
2958 -+
2959 -+template< bool Signed >
2960 -+struct operations< 8u, Signed > :
2961 -+ public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
2962 -+{
2963 -+};
2964 -+
2965 -+#endif
2966 - #endif
2967 -
2968 - #if BOOST_ATOMIC_INT32_LOCK_FREE > 0
2969 -+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 4 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
2970 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 4 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
2971 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 4 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
2972 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 4 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
2973 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 4 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
2974 -+
2975 -+#define BOOST_ATOMIC_DETAIL_INT32_EXTENDED
2976 -+
2977 -+#if !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
2978 -+
2979 -+template< bool Signed >
2980 -+struct operations< 4u, Signed > :
2981 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 4u, Signed >
2982 -+{
2983 -+};
2984 -+
2985 -+#else // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
2986 -+
2987 -+template< bool Signed >
2988 -+struct operations< 4u, Signed > :
2989 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 4u, Signed >
2990 -+{
2991 -+};
2992 -+
2993 -+#endif // !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
2994 -+
2995 -+#else
2996 -+
2997 - template< bool Signed >
2998 - struct operations< 4u, Signed > :
2999 - public gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >
3000 - {
3001 - };
3002 -+
3003 -+#endif
3004 - #endif
3005 -
3006 --#if BOOST_ATOMIC_INT64_LOCK_FREE > 0
3007 --#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG8B)
3008 -+#if BOOST_ATOMIC_INT16_LOCK_FREE > 0
3009 -+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 2 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
3010 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 2 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
3011 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 2 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
3012 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 2 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
3013 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 2 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE)
3014 -+
3015 -+#define BOOST_ATOMIC_DETAIL_INT16_EXTENDED
3016 -+
3017 -+#if !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
3018 -
3019 --// Workaround for clang bug http://llvm.org/bugs/show_bug.cgi?id=19355
3020 - template< bool Signed >
3021 --struct operations< 8u, Signed > :
3022 -- public cas_based_operations< gcc_dcas_x86< Signed > >
3023 -+struct operations< 2u, Signed > :
3024 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 2u, Signed >
3025 -+{
3026 -+};
3027 -+
3028 -+#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
3029 -+
3030 -+template< bool Signed >
3031 -+struct operations< 2u, Signed > :
3032 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 2u, Signed >
3033 - {
3034 - };
3035 -
3036 - #else
3037 -
3038 - template< bool Signed >
3039 --struct operations< 8u, Signed > :
3040 -- public gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >
3041 -+struct operations< 2u, Signed > :
3042 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 2u, Signed >
3043 -+{
3044 -+};
3045 -+
3046 -+#endif
3047 -+
3048 -+#else
3049 -+
3050 -+template< bool Signed >
3051 -+struct operations< 2u, Signed > :
3052 -+ public gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >
3053 - {
3054 - };
3055 -
3056 - #endif
3057 - #endif
3058 -
3059 --#if BOOST_ATOMIC_INT128_LOCK_FREE > 0
3060 --#if defined(__clang__) && defined(BOOST_ATOMIC_DETAIL_X86_HAS_CMPXCHG16B)
3061 -+#if BOOST_ATOMIC_INT8_LOCK_FREE > 0
3062 -+#if (BOOST_ATOMIC_DETAIL_SIZEOF_LLONG == 1 && __GCC_ATOMIC_LLONG_LOCK_FREE != BOOST_ATOMIC_LLONG_LOCK_FREE) ||\
3063 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_LONG == 1 && __GCC_ATOMIC_LONG_LOCK_FREE != BOOST_ATOMIC_LONG_LOCK_FREE) ||\
3064 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_INT == 1 && __GCC_ATOMIC_INT_LOCK_FREE != BOOST_ATOMIC_INT_LOCK_FREE) ||\
3065 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_SHORT == 1 && __GCC_ATOMIC_SHORT_LOCK_FREE != BOOST_ATOMIC_SHORT_LOCK_FREE) ||\
3066 -+ (BOOST_ATOMIC_DETAIL_SIZEOF_WCHAR_T == 1 && __GCC_ATOMIC_WCHAR_T_LOCK_FREE != BOOST_ATOMIC_WCHAR_T_LOCK_FREE) ||\
3067 -+ (__GCC_ATOMIC_CHAR_LOCK_FREE != BOOST_ATOMIC_CHAR_LOCK_FREE) ||\
3068 -+ (__GCC_ATOMIC_BOOL_LOCK_FREE != BOOST_ATOMIC_BOOL_LOCK_FREE)
3069 -+
3070 -+#if !defined(BOOST_ATOMIC_DETAIL_INT16_EXTENDED)
3071 -
3072 --// Workaround for clang bug: http://llvm.org/bugs/show_bug.cgi?id=19149
3073 --// Clang 3.4 does not implement 128-bit __atomic* intrinsics even though it defines __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16
3074 - template< bool Signed >
3075 --struct operations< 16u, Signed > :
3076 -- public cas_based_operations< gcc_dcas_x86_64< Signed > >
3077 -+struct operations< 1u, Signed > :
3078 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 2u, Signed >::type >, 1u, Signed >
3079 -+{
3080 -+};
3081 -+
3082 -+#elif !defined(BOOST_ATOMIC_DETAIL_INT32_EXTENDED)
3083 -+
3084 -+template< bool Signed >
3085 -+struct operations< 1u, Signed > :
3086 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 4u, Signed >::type >, 1u, Signed >
3087 -+{
3088 -+};
3089 -+
3090 -+#elif !defined(BOOST_ATOMIC_DETAIL_INT64_EXTENDED)
3091 -+
3092 -+template< bool Signed >
3093 -+struct operations< 1u, Signed > :
3094 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 8u, Signed >::type >, 1u, Signed >
3095 - {
3096 - };
3097 -
3098 - #else
3099 -
3100 - template< bool Signed >
3101 --struct operations< 16u, Signed > :
3102 -- public gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >
3103 -+struct operations< 1u, Signed > :
3104 -+ public extending_cas_based_operations< gcc_atomic_operations< typename make_storage_type< 16u, Signed >::type >, 1u, Signed >
3105 -+{
3106 -+};
3107 -+
3108 -+#endif
3109 -+
3110 -+#else
3111 -+
3112 -+template< bool Signed >
3113 -+struct operations< 1u, Signed > :
3114 -+ public gcc_atomic_operations< typename make_storage_type< 1u, Signed >::type >
3115 - {
3116 - };
3117 -
3118 - #endif
3119 - #endif
3120 -
3121 -+#undef BOOST_ATOMIC_DETAIL_INT16_EXTENDED
3122 -+#undef BOOST_ATOMIC_DETAIL_INT32_EXTENDED
3123 -+#undef BOOST_ATOMIC_DETAIL_INT64_EXTENDED
3124 -+
3125 - BOOST_FORCEINLINE void thread_fence(memory_order order) BOOST_NOEXCEPT
3126 - {
3127 - __atomic_thread_fence(atomics::detail::convert_memory_order_to_gcc(order));
3128
3129 diff --git a/dev-libs/boost/files/boost-1.58.0-fix-non-constexpr-types-regression.patch b/dev-libs/boost/files/boost-1.58.0-fix-non-constexpr-types-regression.patch
3130 deleted file mode 100644
3131 index da54a48bc32..00000000000
3132 --- a/dev-libs/boost/files/boost-1.58.0-fix-non-constexpr-types-regression.patch
3133 +++ /dev/null
3134 @@ -1,233 +0,0 @@
3135 -diff --git a/boost/fusion/adapted/struct/detail/define_struct.hpp b/boost/fusion/adapted/struct/detail/define_struct.hpp
3136 -index 2554292..ce3737e 100644
3137 ---- a/boost/fusion/adapted/struct/detail/define_struct.hpp
3138 -+++ b/boost/fusion/adapted/struct/detail/define_struct.hpp
3139 -@@ -69,7 +69,7 @@
3140 - ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
3141 - \
3142 - template<typename Seq> \
3143 -- BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3144 -+ BOOST_FUSION_GPU_ENABLED \
3145 - self_type& \
3146 - operator=(Seq const& seq) \
3147 - { \
3148 -@@ -128,7 +128,7 @@
3149 - ATTRIBUTE_TUPEL_SIZE, \
3150 - ATTRIBUTES_SEQ) \
3151 - \
3152 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3153 -+ BOOST_FUSION_GPU_ENABLED \
3154 - NAME() \
3155 - : BOOST_PP_SEQ_FOR_EACH_I_R( \
3156 - 1, \
3157 -@@ -137,7 +137,7 @@
3158 - ATTRIBUTES_SEQ) \
3159 - {} \
3160 - \
3161 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3162 -+ BOOST_FUSION_GPU_ENABLED \
3163 - NAME(self_type const& other_self) \
3164 - : BOOST_PP_SEQ_FOR_EACH_I_R( \
3165 - 1, \
3166 -@@ -147,7 +147,7 @@
3167 - {} \
3168 - \
3169 - template<typename Seq> \
3170 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3171 -+ BOOST_FUSION_GPU_ENABLED \
3172 - NAME(Seq const& seq \
3173 - BOOST_PP_IF( \
3174 - BOOST_PP_DEC(BOOST_PP_SEQ_SIZE(ATTRIBUTES_SEQ)), \
3175 -@@ -167,7 +167,7 @@
3176 - #define BOOST_FUSION_DEFINE_STRUCT_CTOR_1( \
3177 - NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
3178 - \
3179 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3180 -+ BOOST_FUSION_GPU_ENABLED \
3181 - explicit \
3182 - NAME(boost::call_traits< \
3183 - BOOST_PP_TUPLE_ELEM( \
3184 -@@ -180,7 +180,7 @@
3185 - #define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_1( \
3186 - TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
3187 - \
3188 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3189 -+ BOOST_FUSION_GPU_ENABLED \
3190 - explicit \
3191 - NAME(typename boost::call_traits< \
3192 - typename boost::fusion::detail::get_first_arg< \
3193 -@@ -217,7 +217,7 @@
3194 - #define BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_N( \
3195 - TEMPLATE_PARAMS_SEQ, NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
3196 - \
3197 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3198 -+ BOOST_FUSION_GPU_ENABLED \
3199 - NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
3200 - 1, \
3201 - BOOST_FUSION_DEFINE_TPL_STRUCT_CTOR_ARG_I, \
3202 -@@ -245,7 +245,7 @@
3203 - #define BOOST_FUSION_DEFINE_STRUCT_CTOR_N( \
3204 - NAME, ATTRIBUTES_SEQ, ATTRIBUTE_TUPEL_SIZE) \
3205 - \
3206 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3207 -+ BOOST_FUSION_GPU_ENABLED \
3208 - NAME(BOOST_PP_SEQ_FOR_EACH_I_R( \
3209 - 1, \
3210 - BOOST_FUSION_DEFINE_STRUCT_CTOR_ARG_I, \
3211 -diff --git a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
3212 -index a5a3ae0..a037ffe 100644
3213 ---- a/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
3214 -+++ b/boost/fusion/adapted/struct/detail/define_struct_inline.hpp
3215 -@@ -66,7 +66,7 @@
3216 - #define BOOST_FUSION_IGNORE_2(ARG1, ARG2)
3217 -
3218 - #define BOOST_FUSION_MAKE_COPY_CONSTRUCTOR(NAME, ATTRIBUTES_SEQ) \
3219 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3220 -+ BOOST_FUSION_GPU_ENABLED \
3221 - NAME(BOOST_PP_SEQ_FOR_EACH_I( \
3222 - BOOST_FUSION_MAKE_CONST_REF_PARAM, \
3223 - ~, \
3224 -@@ -337,7 +337,7 @@
3225 - typedef boost::mpl::int_<N> index; \
3226 - typedef boost_fusion_detail_Seq sequence_type; \
3227 - \
3228 -- BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED \
3229 -+ BOOST_FUSION_GPU_ENABLED \
3230 - BOOST_FUSION_ITERATOR_NAME(NAME)(boost_fusion_detail_Seq& seq) \
3231 - : seq_(seq) \
3232 - BOOST_FUSION_DEFINE_ITERATOR_WKND_INIT_LIST_ENTRIES( \
3233 -diff --git a/libs/fusion/test/sequence/adapt_struct.cpp b/libs/fusion/test/sequence/adapt_struct.cpp
3234 -index c0cd304..121827f 100644
3235 ---- a/libs/fusion/test/sequence/adapt_struct.cpp
3236 -+++ b/libs/fusion/test/sequence/adapt_struct.cpp
3237 -@@ -67,6 +67,17 @@ namespace ns
3238 - foo foo_;
3239 - int y;
3240 - };
3241 -+
3242 -+
3243 -+ // Testing non-constexpr compatible types
3244 -+ struct employee {
3245 -+ std::string name;
3246 -+ std::string nickname;
3247 -+
3248 -+ employee(std::string name, std::string nickname)
3249 -+ : name(name), nickname(nickname)
3250 -+ {}
3251 -+ };
3252 - }
3253 -
3254 - #if BOOST_PP_VARIADICS
3255 -@@ -96,6 +107,13 @@ namespace ns
3256 - y
3257 - )
3258 -
3259 -+ BOOST_FUSION_ADAPT_STRUCT(
3260 -+ ns::employee,
3261 -+ name,
3262 -+ nickname
3263 -+ )
3264 -+
3265 -+
3266 - #else // BOOST_PP_VARIADICS
3267 -
3268 - BOOST_FUSION_ADAPT_STRUCT(
3269 -@@ -123,6 +141,12 @@ namespace ns
3270 - (BOOST_FUSION_ADAPT_AUTO, y)
3271 - )
3272 -
3273 -+ BOOST_FUSION_ADAPT_STRUCT(
3274 -+ ns::employee,
3275 -+ (std::string, name)
3276 -+ (BOOST_FUSION_ADAPT_AUTO, nickname)
3277 -+ )
3278 -+
3279 - #endif
3280 -
3281 - int
3282 -@@ -224,6 +248,15 @@ main()
3283 - BOOST_TEST(v2 >= v1);
3284 - }
3285 -
3286 -+ {
3287 -+ ns::employee emp("John Doe", "jdoe");
3288 -+ std::cout << at_c<0>(emp) << std::endl;
3289 -+ std::cout << at_c<1>(emp) << std::endl;
3290 -+
3291 -+ fusion::vector<std::string, std::string> v1("John Doe", "jdoe");
3292 -+ BOOST_TEST(emp == v1);
3293 -+ }
3294 -+
3295 - return boost::report_errors();
3296 - }
3297 -
3298 -diff --git a/libs/fusion/test/sequence/define_struct.cpp b/libs/fusion/test/sequence/define_struct.cpp
3299 -index 795fdf6..63b5a19 100644
3300 ---- a/libs/fusion/test/sequence/define_struct.cpp
3301 -+++ b/libs/fusion/test/sequence/define_struct.cpp
3302 -@@ -26,6 +26,14 @@ BOOST_FUSION_DEFINE_STRUCT(
3303 -
3304 - BOOST_FUSION_DEFINE_STRUCT(BOOST_PP_EMPTY(), s, (int, m))
3305 -
3306 -+// Testing non-constexpr compatible types
3307 -+BOOST_FUSION_DEFINE_STRUCT(
3308 -+ (ns),
3309 -+ employee,
3310 -+ (std::string, name)
3311 -+ (std::string, nickname)
3312 -+)
3313 -+
3314 - int
3315 - main()
3316 - {
3317 -@@ -100,6 +108,14 @@ main()
3318 - BOOST_TEST(p == make_vector(3,5));
3319 - }
3320 -
3321 -+ {
3322 -+ ns::employee emp = make_list("John Doe", "jdoe");
3323 -+ std::cout << at_c<0>(emp) << std::endl;
3324 -+ std::cout << at_c<1>(emp) << std::endl;
3325 -+
3326 -+ BOOST_TEST(emp == make_vector("John Doe", "jdoe"));
3327 -+ }
3328 -+
3329 - return boost::report_errors();
3330 - }
3331 -
3332 -diff --git a/libs/fusion/test/sequence/define_struct_inline.cpp b/libs/fusion/test/sequence/define_struct_inline.cpp
3333 -index e849ce9..d34a142 100644
3334 ---- a/libs/fusion/test/sequence/define_struct_inline.cpp
3335 -+++ b/libs/fusion/test/sequence/define_struct_inline.cpp
3336 -@@ -41,6 +41,13 @@ namespace ns
3337 - BOOST_FUSION_DEFINE_STRUCT_INLINE(s, (int, m))
3338 -
3339 - BOOST_FUSION_DEFINE_STRUCT_INLINE(empty_struct, )
3340 -+
3341 -+ // Testing non-constexpr compatible types
3342 -+ BOOST_FUSION_DEFINE_STRUCT_INLINE(
3343 -+ employee,
3344 -+ (std::string, name)
3345 -+ (std::string, nickname)
3346 -+ )
3347 - }
3348 -
3349 - template <typename Point>
3350 -@@ -128,6 +135,17 @@ main()
3351 - {
3352 - run_test<cls::point>(); // test with non-template enclosing class
3353 - run_test<tpl_cls<>::point>(); // test with template enclosing class
3354 -+
3355 -+ {
3356 -+ using namespace boost::fusion;
3357 -+
3358 -+ ns::employee emp = make_list("John Doe", "jdoe");
3359 -+ std::cout << at_c<0>(emp) << std::endl;
3360 -+ std::cout << at_c<1>(emp) << std::endl;
3361 -+
3362 -+ BOOST_TEST(emp == make_vector("John Doe", "jdoe"));
3363 -+ }
3364 -+
3365 - return boost::report_errors();
3366 -
3367 - }
3368
3369 diff --git a/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch b/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch
3370 deleted file mode 100644
3371 index 1566c3417fc..00000000000
3372 --- a/dev-libs/boost/files/boost-1.60.0-auto-pointer-python.patch
3373 +++ /dev/null
3374 @@ -1,42 +0,0 @@
3375 -From f2c465ffa508459216f7093bf95ba001ad994206 Mon Sep 17 00:00:00 2001
3376 -From: vslashg <veloso@×××××××××××××.com>
3377 -Date: Mon, 29 Feb 2016 13:33:35 -0500
3378 -Subject: [PATCH] Fix auto-pointer registration in Boost Python 1.60.
3379 -
3380 -The conditional instantiation magic of maybe_register_pointer_to_python() assumes that use_value_holder and use_back_reference will be one of the boost::mpl::bool_ types, but this assumption is no longer true in Boost 1.60, where they can be standard library bool wrappers instead.
3381 -
3382 -Explicitly defining these types as mpl::bool_ classes fixes https://github.com/boostorg/python/issues/56.
3383 ----
3384 - boost/python/object/class_metadata.hpp | 12 +++++++-----
3385 - 1 file changed, 7 insertions(+), 5 deletions(-)
3386 -
3387 -diff --git a/boost/python/object/class_metadata.hpp b/boost/python/object/class_metadata.hpp
3388 -index c71cf67..5009c17 100644
3389 ---- a/boost/python/object/class_metadata.hpp
3390 -+++ b/boost/python/object/class_metadata.hpp
3391 -@@ -164,7 +164,7 @@ struct class_metadata
3392 - >::type held_type;
3393 -
3394 - // Determine if the object will be held by value
3395 -- typedef is_convertible<held_type*,T*> use_value_holder;
3396 -+ typedef mpl::bool_<is_convertible<held_type*,T*>::value> use_value_holder;
3397 -
3398 - // Compute the "wrapped type", that is, if held_type is a smart
3399 - // pointer, we're talking about the pointee.
3400 -@@ -175,10 +175,12 @@ struct class_metadata
3401 - >::type wrapped;
3402 -
3403 - // Determine whether to use a "back-reference holder"
3404 -- typedef mpl::or_<
3405 -- has_back_reference<T>
3406 -- , is_same<held_type_arg,T>
3407 -- , is_base_and_derived<T,wrapped>
3408 -+ typedef mpl::bool_<
3409 -+ mpl::or_<
3410 -+ has_back_reference<T>
3411 -+ , is_same<held_type_arg,T>
3412 -+ , is_base_and_derived<T,wrapped>
3413 -+ >::value
3414 - > use_back_reference;
3415 -
3416 - // Select the holder.
3417
3418 diff --git a/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch b/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch
3419 deleted file mode 100644
3420 index 624dc648ae4..00000000000
3421 --- a/dev-libs/boost/files/boost-1.60.0-deprecated-header-ice_not.patch
3422 +++ /dev/null
3423 @@ -1,42 +0,0 @@
3424 -From: jzmaddock <john@××××××××××××××.uk>
3425 -Date: Tue, 21 Jul 2015 18:54:48 +0100
3426 -Subject: [PATCH] Remove deprecated type_traits usage.
3427 -
3428 ----
3429 - include/boost/graph/adjacency_matrix.hpp | 2 +-
3430 - 1 file changed, 1 insertion(+), 1 deletion(-)
3431 -
3432 -diff --git a/include/boost/graph/adjacency_matrix.hpp b/include/boost/graph/adjacency_matrix.hpp
3433 -index b1078d9..ade7351 100644
3434 ---- a/boost/graph/adjacency_matrix.hpp
3435 -+++ b/boost/graph/adjacency_matrix.hpp
3436 -@@ -443,7 +443,7 @@ namespace boost {
3437 - // graph type. Instead, use directedS, which also provides the
3438 - // functionality required for a Bidirectional Graph (in_edges,
3439 - // in_degree, etc.).
3440 -- BOOST_STATIC_ASSERT(type_traits::ice_not<(is_same<Directed, bidirectionalS>::value)>::value);
3441 -+ BOOST_STATIC_ASSERT(!(is_same<Directed, bidirectionalS>::value));
3442 -
3443 - typedef typename mpl::if_<is_directed,
3444 - bidirectional_tag, undirected_tag>::type
3445 -From: Vladimir Prus <vladimir.prus@×××××.com>
3446 -Date: Mon, 7 Dec 2015 13:55:07 +0300
3447 -Subject: [PATCH] Add missing include of <list>.
3448 -
3449 -Thanks to Amit Prakash Ambasta for the report.
3450 ----
3451 - include/boost/graph/r_c_shortest_paths.hpp | 1 +
3452 - 1 file changed, 1 insertion(+)
3453 -
3454 -diff --git a/include/boost/graph/r_c_shortest_paths.hpp b/include/boost/graph/r_c_shortest_paths.hpp
3455 -index afa50cf..7e490fc 100644
3456 ---- a/boost/graph/r_c_shortest_paths.hpp
3457 -+++ b/boost/graph/r_c_shortest_paths.hpp
3458 -@@ -11,6 +11,7 @@
3459 - #include <map>
3460 - #include <queue>
3461 - #include <vector>
3462 -+#include <list>
3463 -
3464 - #include <boost/graph/graph_traits.hpp>
3465 - #include <boost/graph/iteration_macros.hpp>