Gentoo Archives: gentoo-commits

From: "Julian Ospald (hasufell)" <hasufell@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in dev-libs/boost: boost-1.53.0-r1.ebuild boost-1.52.0-r7.ebuild ChangeLog boost-1.55.0-r1.ebuild boost-1.54.0-r1.ebuild
Date: Tue, 29 Jul 2014 13:32:22
Message-Id: 20140729133218.621232004E@flycatcher.gentoo.org
1 hasufell 14/07/29 13:32:16
2
3 Modified: boost-1.53.0-r1.ebuild ChangeLog
4 boost-1.55.0-r1.ebuild boost-1.54.0-r1.ebuild
5 Added: boost-1.52.0-r7.ebuild
6 Log:
7 fix build with USE=-threads wrt #458404
8
9 (Portage version: 2.2.10/cvs/Linux x86_64, signed Manifest commit with key BDEED020)
10
11 Revision Changes Path
12 1.5 dev-libs/boost/boost-1.53.0-r1.ebuild
13
14 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.53.0-r1.ebuild?rev=1.5&view=markup
15 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.53.0-r1.ebuild?rev=1.5&content-type=text/plain
16 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.53.0-r1.ebuild?r1=1.4&r2=1.5
17
18 Index: boost-1.53.0-r1.ebuild
19 ===================================================================
20 RCS file: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.53.0-r1.ebuild,v
21 retrieving revision 1.4
22 retrieving revision 1.5
23 diff -u -r1.4 -r1.5
24 --- boost-1.53.0-r1.ebuild 28 Apr 2014 07:20:08 -0000 1.4
25 +++ boost-1.53.0-r1.ebuild 29 Jul 2014 13:32:16 -0000 1.5
26 @@ -1,6 +1,6 @@
27 # Copyright 1999-2014 Gentoo Foundation
28 # Distributed under the terms of the GNU General Public License v2
29 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.53.0-r1.ebuild,v 1.4 2014/04/28 07:20:08 pinkbyte Exp $
30 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.53.0-r1.ebuild,v 1.5 2014/07/29 13:32:16 hasufell Exp $
31
32 EAPI="5"
33 PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} )
34 @@ -85,6 +85,7 @@
35 "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
36 epatch "${FILESDIR}/${PN}-1.53.0-library_status.patch" # bug 459112
37 epatch "${FILESDIR}/${PN}-1.53.0-glibc-2.18-compat.patch" # bug 482372
38 + epatch "${FILESDIR}/${PN}-1.52.0-threads.patch"
39
40 # Avoid a patch for now
41 for file in libs/context/src/asm/*.S; do
42
43
44
45 1.319 dev-libs/boost/ChangeLog
46
47 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/ChangeLog?rev=1.319&view=markup
48 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/ChangeLog?rev=1.319&content-type=text/plain
49 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/ChangeLog?r1=1.318&r2=1.319
50
51 Index: ChangeLog
52 ===================================================================
53 RCS file: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v
54 retrieving revision 1.318
55 retrieving revision 1.319
56 diff -u -r1.318 -r1.319
57 --- ChangeLog 23 Jun 2014 15:36:15 -0000 1.318
58 +++ ChangeLog 29 Jul 2014 13:32:16 -0000 1.319
59 @@ -1,6 +1,13 @@
60 # ChangeLog for dev-libs/boost
61 # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
62 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.318 2014/06/23 15:36:15 mgorny Exp $
63 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/ChangeLog,v 1.319 2014/07/29 13:32:16 hasufell Exp $
64 +
65 +*boost-1.52.0-r7 (29 Jul 2014)
66 +
67 + 29 Jul 2014; Julian Ospald <hasufell@g.o> +boost-1.52.0-r7.ebuild,
68 + boost-1.53.0-r1.ebuild, boost-1.54.0-r1.ebuild, boost-1.55.0-r1.ebuild,
69 + +files/boost-1.52.0-threads.patch:
70 + fix build with USE=-threads wrt #458404
71
72 23 Jun 2014; Michał Górny <mgorny@g.o> boost-1.55.0-r1.ebuild:
73 Enable python3.4.
74
75
76
77 1.7 dev-libs/boost/boost-1.55.0-r1.ebuild
78
79 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.55.0-r1.ebuild?rev=1.7&view=markup
80 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.55.0-r1.ebuild?rev=1.7&content-type=text/plain
81 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.55.0-r1.ebuild?r1=1.6&r2=1.7
82
83 Index: boost-1.55.0-r1.ebuild
84 ===================================================================
85 RCS file: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.55.0-r1.ebuild,v
86 retrieving revision 1.6
87 retrieving revision 1.7
88 diff -u -r1.6 -r1.7
89 --- boost-1.55.0-r1.ebuild 23 Jun 2014 15:36:15 -0000 1.6
90 +++ boost-1.55.0-r1.ebuild 29 Jul 2014 13:32:16 -0000 1.7
91 @@ -1,6 +1,6 @@
92 # Copyright 1999-2014 Gentoo Foundation
93 # Distributed under the terms of the GNU General Public License v2
94 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.55.0-r1.ebuild,v 1.6 2014/06/23 15:36:15 mgorny Exp $
95 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.55.0-r1.ebuild,v 1.7 2014/07/29 13:32:16 hasufell Exp $
96
97 EAPI="5"
98 PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3,3_4} )
99 @@ -91,7 +91,8 @@
100 "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
101 "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
102 "${FILESDIR}/${PN}-1.55.0-context-x32.patch" \
103 - "${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch"
104 + "${FILESDIR}/${PN}-1.55.0-tools-c98-compat.patch" \
105 + "${FILESDIR}/${PN}-1.52.0-threads.patch"
106
107 epatch_user
108 }
109
110
111
112 1.5 dev-libs/boost/boost-1.54.0-r1.ebuild
113
114 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.54.0-r1.ebuild?rev=1.5&view=markup
115 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.54.0-r1.ebuild?rev=1.5&content-type=text/plain
116 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.54.0-r1.ebuild?r1=1.4&r2=1.5
117
118 Index: boost-1.54.0-r1.ebuild
119 ===================================================================
120 RCS file: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.54.0-r1.ebuild,v
121 retrieving revision 1.4
122 retrieving revision 1.5
123 diff -u -r1.4 -r1.5
124 --- boost-1.54.0-r1.ebuild 28 Apr 2014 07:20:08 -0000 1.4
125 +++ boost-1.54.0-r1.ebuild 29 Jul 2014 13:32:16 -0000 1.5
126 @@ -1,6 +1,6 @@
127 # Copyright 1999-2014 Gentoo Foundation
128 # Distributed under the terms of the GNU General Public License v2
129 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.54.0-r1.ebuild,v 1.4 2014/04/28 07:20:08 pinkbyte Exp $
130 +# $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.54.0-r1.ebuild,v 1.5 2014/07/29 13:32:16 hasufell Exp $
131
132 EAPI="5"
133 PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} )
134 @@ -85,6 +85,7 @@
135 "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch"
136 epatch "${FILESDIR}/${PN}-1.53.0-library_status.patch" # bug 459112
137 epatch "${FILESDIR}/${PN}-1.53.0-glibc-2.18-compat.patch" # bug 482372
138 + epatch "${FILESDIR}/${PN}-1.52.0-threads.patch"
139
140 # Avoid a patch for now
141 for file in libs/context/src/asm/*.S; do
142
143
144
145 1.1 dev-libs/boost/boost-1.52.0-r7.ebuild
146
147 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.52.0-r7.ebuild?rev=1.1&view=markup
148 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/dev-libs/boost/boost-1.52.0-r7.ebuild?rev=1.1&content-type=text/plain
149
150 Index: boost-1.52.0-r7.ebuild
151 ===================================================================
152 # Copyright 1999-2014 Gentoo Foundation
153 # Distributed under the terms of the GNU General Public License v2
154 # $Header: /var/cvsroot/gentoo-x86/dev-libs/boost/boost-1.52.0-r7.ebuild,v 1.1 2014/07/29 13:32:16 hasufell Exp $
155
156 EAPI="5"
157 PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3} )
158
159 inherit eutils flag-o-matic multilib multiprocessing python-r1 toolchain-funcs versionator
160
161 MY_P=${PN}_$(replace_all_version_separators _)
162
163 DESCRIPTION="Boost Libraries for C++"
164 HOMEPAGE="http://www.boost.org/"
165 SRC_URI="mirror://sourceforge/boost/${MY_P}.tar.bz2"
166
167 LICENSE="Boost-1.0"
168 MAJOR_V="$(get_version_component_range 1-2)"
169 SLOT="0/${MAJOR_V}"
170 KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd"
171 IUSE="debug doc icu +nls mpi python static-libs +threads tools"
172
173 RDEPEND="icu? ( >=dev-libs/icu-3.6:= )
174 !icu? ( virtual/libiconv )
175 mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) )
176 python? ( ${PYTHON_DEPS} )
177 app-arch/bzip2
178 sys-libs/zlib
179 !app-admin/eselect-boost"
180 DEPEND="${RDEPEND}
181 =dev-util/boost-build-1.52.0-r1"
182
183 S=${WORKDIR}/${MY_P}
184
185 create_user-config.jam() {
186 local compiler compiler_version compiler_executable
187
188 if [[ ${CHOST} == *-darwin* ]]; then
189 compiler="darwin"
190 compiler_version="$(gcc-fullversion)"
191 compiler_executable="$(tc-getCXX)"
192 else
193 compiler="gcc"
194 compiler_version="$(gcc-version)"
195 compiler_executable="$(tc-getCXX)"
196 fi
197 local mpi_configuration python_configuration
198
199 if use mpi; then
200 mpi_configuration="using mpi ;"
201 fi
202
203 if use python; then
204 python_configuration="using python : : ${PYTHON} ;"
205 fi
206
207 cat > user-config.jam << __EOF__
208 using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
209 ${mpi_configuration}
210 ${python_configuration}
211 __EOF__
212 }
213
214 pkg_setup() {
215 # Bail out on unsupported build configuration, bug #456792
216 if [[ -f "${EROOT}etc/site-config.jam" ]]; then
217 grep -q gentoorelease "${EROOT}etc/site-config.jam" && grep -q gentoodebug "${EROOT}etc/site-config.jam" ||
218 (
219 eerror "You are using custom ${EROOT}etc/site-config.jam without defined gentoorelease/gentoodebug targets."
220 eerror "Boost can not be built in such configuration."
221 eerror "Please, either remove this file or add targets from ${EROOT}usr/share/boost-build/site-config.jam to it."
222 die
223 )
224 fi
225 }
226
227 src_prepare() {
228 epatch \
229 "${FILESDIR}/${PN}-1.48.0-mpi_python3.patch" \
230 "${FILESDIR}/${PN}-1.51.0-respect_python-buildid.patch" \
231 "${FILESDIR}/${PN}-1.51.0-support_dots_in_python-buildid.patch" \
232 "${FILESDIR}/${PN}-1.48.0-no_strict_aliasing_python2.patch" \
233 "${FILESDIR}/${PN}-1.48.0-disable_libboost_python3.patch" \
234 "${FILESDIR}/${PN}-1.48.0-python_linking.patch" \
235 "${FILESDIR}/${PN}-1.48.0-disable_icu_rpath.patch" \
236 "${FILESDIR}/remove-toolset-1.48.0.patch" \
237 "${FILESDIR}/${PN}-1.52.0-tuple.patch" \
238 "${FILESDIR}/${P}-locale-utf.patch" \
239 "${FILESDIR}/${PN}-1.52.0-threads.patch"
240
241 # Avoid a patch for now
242 for file in libs/context/src/asm/*.S; do
243 cat - >> $file <<EOF
244
245 #if defined(__linux__) && defined(__ELF__)
246 .section .note.GNU-stack,"",%progbits
247 #endif
248 EOF
249 done
250
251 epatch_user
252 }
253
254 ejam() {
255 echo b2 "$@"
256 b2 "$@"
257 }
258
259 src_configure() {
260 OPTIONS="$(usex debug gentoodebug gentoorelease) -j$(makeopts_jobs) -q -d+2 --user-config=${S}/user-config.jam"
261
262 if [[ ${CHOST} == *-darwin* ]]; then
263 # We need to add the prefix, and in two cases this exceeds, so prepare
264 # for the largest possible space allocation.
265 append-ldflags -Wl,-headerpad_max_install_names
266 fi
267
268 # bug 298489
269 if use ppc || use ppc64; then
270 [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
271 fi
272
273 # Do _not_ use C++11 yet, make sure to force GNU C++ 98 standard.
274 append-cxxflags -std=gnu++98
275
276 use icu && OPTIONS+=" -sICU_PATH=/usr"
277 use icu || OPTIONS+=" --disable-icu boost.locale.icu=off"
278 use mpi || OPTIONS+=" --without-mpi"
279 use python || OPTIONS+=" --without-python"
280 use nls || OPTIONS+=" --without-locale"
281
282 OPTIONS+=" pch=off --boost-build=/usr/share/boost-build --prefix=\"${D}usr\" --layout=system threading=$(usex threads multi single) link=$(usex static-libs shared,static shared) --without-context"
283 }
284
285 src_compile() {
286 export BOOST_ROOT="${S}"
287 PYTHON_DIRS=""
288 MPI_PYTHON_MODULE=""
289
290 building() {
291 create_user-config.jam
292
293 ejam ${OPTIONS} \
294 $(use python && echo --python-buildid=${EPYTHON#python}) \
295 || die "Building of Boost libraries failed"
296
297 if use python; then
298 if [[ -z "${PYTHON_DIRS}" ]]; then
299 PYTHON_DIRS="$(find bin.v2/libs -name python | sort)"
300 else
301 if [[ "${PYTHON_DIRS}" != "$(find bin.v2/libs -name python | sort)" ]]; then
302 die "Inconsistent structure of build directories"
303 fi
304 fi
305
306 local dir
307 for dir in ${PYTHON_DIRS}; do
308 mv ${dir} ${dir}-${EPYTHON} \
309 || die "Renaming of '${dir}' to '${dir}-${EPYTHON}' failed"
310 done
311
312 if use mpi; then
313 if [[ -z "${MPI_PYTHON_MODULE}" ]]; then
314 MPI_PYTHON_MODULE="$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)"
315 if [[ "$(echo "${MPI_PYTHON_MODULE}" | wc -l)" -ne 1 ]]; then
316 die "Multiple mpi.so files found"
317 fi
318 else
319 if [[ "${MPI_PYTHON_MODULE}" != "$(find bin.v2/libs/mpi/build/*/gentoo* -name mpi.so)" ]]; then
320 die "Inconsistent structure of build directories"
321 fi
322 fi
323
324 mv stage/lib/mpi.so stage/lib/mpi.so-${EPYTHON} \
325 || die "Renaming of 'stage/lib/mpi.so' to 'stage/lib/mpi.so-${EPYTHON}' failed"
326 fi
327 fi
328 }
329 if use python; then
330 python_foreach_impl building
331 else
332 building
333 fi
334
335 if use tools; then
336 pushd tools > /dev/null || die
337
338 ejam ${OPTIONS} \
339 || die "Building of Boost tools failed"
340 popd > /dev/null || die
341 fi
342 }
343
344 src_install () {
345 installation() {
346 create_user-config.jam
347
348 if use python; then
349 local dir
350 for dir in ${PYTHON_DIRS}; do
351 cp -pr ${dir}-${EPYTHON} ${dir} \
352 || die "Copying of '${dir}-${EPYTHON}' to '${dir}' failed"
353 done
354
355 if use mpi; then
356 cp -p stage/lib/mpi.so-${EPYTHON} "${MPI_PYTHON_MODULE}" \
357 || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to '${MPI_PYTHON_MODULE}' failed"
358 cp -p stage/lib/mpi.so-${EPYTHON} stage/lib/mpi.so \
359 || die "Copying of 'stage/lib/mpi.so-${EPYTHON}' to 'stage/lib/mpi.so' failed"
360 fi
361 fi
362
363 ejam ${OPTIONS} \
364 --includedir="${D}usr/include" \
365 --libdir="${D}usr/$(get_libdir)" \
366 $(use python && echo --python-buildid=${EPYTHON#python}) \
367 install || die "Installation of Boost libraries failed"
368
369 if use python; then
370 rm -r ${PYTHON_DIRS} || die
371
372 # Move mpi.so Python module to Python site-packages directory.
373 # https://svn.boost.org/trac/boost/ticket/2838
374 if use mpi; then
375 local moddir=$(python_get_sitedir)/boost
376 dodir "${moddir}"
377 mv "${D}usr/$(get_libdir)/mpi.so" "${D}${moddir}" || die
378 cat << EOF > "${D}${moddir}/__init__.py" || die
379 import sys
380 if sys.platform.startswith('linux'):
381 import DLFCN
382 flags = sys.getdlopenflags()
383 sys.setdlopenflags(DLFCN.RTLD_NOW | DLFCN.RTLD_GLOBAL)
384 from . import mpi
385 sys.setdlopenflags(flags)
386 del DLFCN, flags
387 else:
388 from . import mpi
389 del sys
390 EOF
391 fi
392
393 python_optimize
394 fi
395 }
396 if use python; then
397 python_foreach_impl installation
398 else
399 installation
400 fi
401
402 if ! use python; then
403 rm -r "${D}"/usr/include/boost/python* || die
404 fi
405
406 if ! use nls; then
407 rm -r "${D}"/usr/include/boost/locale || die
408 fi
409
410 rm -r "${D}"/usr/include/boost/context || die
411
412 if use doc; then
413 find libs/*/* -iname "test" -or -iname "src" | xargs rm -rf
414 dohtml \
415 -A pdf,txt,cpp,hpp \
416 *.{htm,html,png,css} \
417 -r doc
418 dohtml -A pdf,txt -r tools
419 insinto /usr/share/doc/${PF}/html
420 doins -r libs
421 doins -r more
422
423 # To avoid broken links
424 insinto /usr/share/doc/${PF}/html
425 doins LICENSE_1_0.txt
426
427 dosym /usr/include/boost /usr/share/doc/${PF}/html/boost
428 fi
429
430 pushd "${D}usr/$(get_libdir)" > /dev/null || die
431
432 local ext=$(get_libname)
433 if use threads; then
434 local f
435 for f in *${ext}; do
436 dosym ${f} /usr/$(get_libdir)/${f/${ext}/-mt${ext}}
437 done
438 fi
439
440 popd > /dev/null || die
441
442 if use tools; then
443 dobin dist/bin/*
444
445 insinto /usr/share
446 doins -r dist/share/boostbook
447 fi
448
449 # boost's build system truely sucks for not having a destdir. Because for
450 # this reason we are forced to build with a prefix that includes the
451 # DESTROOT, dynamic libraries on Darwin end messed up, referencing the
452 # DESTROOT instread of the actual EPREFIX. There is no way out of here
453 # but to do it the dirty way of manually setting the right install_names.
454 if [[ ${CHOST} == *-darwin* ]]; then
455 einfo "Working around completely broken build-system(tm)"
456 local d
457 for d in "${ED}"usr/lib/*.dylib; do
458 if [[ -f ${d} ]]; then
459 # fix the "soname"
460 ebegin " correcting install_name of ${d#${ED}}"
461 install_name_tool -id "/${d#${D}}" "${d}"
462 eend $?
463 # fix references to other libs
464 refs=$(otool -XL "${d}" | \
465 sed -e '1d' -e 's/^\t//' | \
466 grep "^libboost_" | \
467 cut -f1 -d' ')
468 local r
469 for r in ${refs}; do
470 ebegin " correcting reference to ${r}"
471 install_name_tool -change \
472 "${r}" \
473 "${EPREFIX}/usr/lib/${r}" \
474 "${d}"
475 eend $?
476 done
477 fi
478 done
479 fi
480 }
481
482 pkg_preinst() {
483 # Yai for having symlinks that are nigh-impossible to remove without
484 # resorting to dirty hacks like these. Removes lingering symlinks
485 # from the slotted versions.
486 local symlink
487 for symlink in "${EROOT}usr/include/boost" "${EROOT}usr/share/boostbook"; do
488 [[ -L ${symlink} ]] && rm -f "${symlink}"
489 done
490 }
491
492 # the tests will never fail because these are not intended as sanity
493 # tests at all. They are more a way for upstream to check their own code
494 # on new compilers. Since they would either be completely unreliable
495 # (failing for no good reason) or completely useless (never failing)
496 # there is no point in having them in the ebuild to begin with.
497 src_test() { :; }