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