Accepting request 449886 from home:adamm:branches:devel:libraries:c_c++

- update to version 1.63.0
  * updated libraries: atomic, container, context, fiber,
    fusion, geometry, hash, interprocess, intrusive, lexical cast,
    log, metaparse, move, optional, phoenix, python, test,
    typeindex, units, unordered
  * see http://www.boost.org/users/history/version_1_63_0.html
    for complete list of changes
- refresh patches
  * boost-1.55.0-python-test-PyImport_AppendInittab.patch
  * boost-strict_aliasing.patch, and enable -fno-strict-aliasing
    for python module
- baselibs.conf:
  * add libboost_locale
  * rename python to include new soname
- remove python-2059618.patch, not needed
- make build condition --without buil_mpi work
- allow building without python3 bindings, for SLE11SP4
- remove versioned build dependency on libicu-devel, apparently
  not needed.
- split out the boost-devel package into individudal compiled
  libraries and their -devel subpackages and libboost_headers-devel
  package for header-only libraries.
- remove all the -mt.so symlinks, probably not needed anymore.
- ship MPI python bindings for both Python 2.7 and 3.x

OBS-URL: https://build.opensuse.org/request/show/449886
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=182
This commit is contained in:
Marcus Rückert 2017-01-13 14:53:30 +00:00 committed by Git OBS Bridge
parent ba09852d23
commit 9d48e24b64
14 changed files with 1735 additions and 325 deletions

4
README.boost-devel Normal file
View File

@ -0,0 +1,4 @@
boost-devel has been split up into individual packages for simpler
product management. Please stop depending explicitly on boost-devel
and depend on individual boost -devel packages

1
__init__.py Normal file
View File

@ -0,0 +1 @@
# placeholder

View File

@ -1,25 +1,25 @@
boost_1_62-devel
boost_1_63-devel
requires -boost-<targettype>
libboost_atomic1_62_0
libboost_container1_62_0
libboost_context1_62_0
libboost_coroutine1_62_0
libboost_date_time1_62_0
libboost_fiber1_62_0
libboost_filesystem1_62_0
libboost_graph1_62_0
libboost_graph_parallel1_62_0
libboost_iostreams1_62_0
libboost_math1_62_0
libboost_mpi1_62_0
libboost_test1_62_0
libboost_program_options1_62_0
libboost_python1_62_0
libboost_random1_62_0
libboost_serialization1_62_0
libboost_signals1_62_0
libboost_system1_62_0
libboost_thread1_62_0
libboost_type_erasure1_62_0
libboost_wave1_62_0
libboost_regex1_62_0
libboost_atomic1_63_0
libboost_container1_63_0
libboost_context1_63_0
libboost_coroutine1_63_0
libboost_date_time1_63_0
libboost_fiber1_63_0
libboost_filesystem1_63_0
libboost_graph1_63_0
libboost_graph_parallel1_63_0
libboost_iostreams1_63_0
libboost_locale1_63_0
libboost_math1_63_0
libboost_mpi1_63_0
libboost_test1_63_0
libboost_program_options1_63_0
libboost_random1_63_0
libboost_serialization1_63_0
libboost_signals1_63_0
libboost_system1_63_0
libboost_thread1_63_0
libboost_type_erasure1_63_0
libboost_wave1_63_0
libboost_regex1_63_0

View File

@ -1,7 +1,8 @@
diff -up boost_1_55_0/libs/python/test/exec.cpp\~ boost_1_55_0/libs/python/test/exec.cpp
--- boost_1_55_0/libs/python/test/exec.cpp~ 2010-07-05 00:38:38.000000000 +0200
+++ boost_1_55_0/libs/python/test/exec.cpp 2015-01-09 21:31:12.903218280 +0100
@@ -56,6 +56,20 @@ void eval_test()
Index: boost_1_63_0/libs/python/test/exec.cpp
===================================================================
--- boost_1_63_0.orig/libs/python/test/exec.cpp
+++ boost_1_63_0/libs/python/test/exec.cpp
@@ -56,8 +56,24 @@ void eval_test()
BOOST_TEST(value == "ABCDEFG");
}
@ -21,17 +22,12 @@ diff -up boost_1_55_0/libs/python/test/exec.cpp\~ boost_1_55_0/libs/python/test/
+
void exec_test()
{
// Register the module with the interpreter
@@ -68,6 +82,8 @@ void exec_test()
) == -1)
throw std::runtime_error("Failed to add embedded_hello to the interpreter's "
"builtin modules");
+
+ PyCtx ctx;
+
// Retrieve the main module
python::object main = python::import("__main__");
@@ -148,41 +164,43 @@ void check_pyerr(bool pyerr_expected=fal
@@ -138,6 +154,19 @@ void check_pyerr(bool pyerr_expected=fal
}
}
@ -51,22 +47,25 @@ diff -up boost_1_55_0/libs/python/test/exec.cpp\~ boost_1_55_0/libs/python/test/
int main(int argc, char **argv)
{
BOOST_TEST(argc == 2 || argc == 3);
std::string script = argv[1];
@@ -156,29 +185,19 @@ int main(int argc, char **argv)
"builtin modules");
}
- // Initialize the interpreter
- Py_Initialize();
-
- if (python::handle_exception(eval_test)) {
- check_pyerr();
+ // N.B. exec_test mustn't be called through run_and_handle_exception
+ // as it needs to handles the python context by itself.
+ if (run_and_handle_exception(eval_test)
+ || python::handle_exception(exec_test))
check_pyerr();
- }
- else if(python::handle_exception(exec_test)) {
- check_pyerr();
- }
- else if (python::handle_exception(boost::bind(exec_file_test, script))) {
+ // N.B. exec_test mustn't be called through run_and_handle_exception
+ // as it needs to handles the python context by itself.
+ if (run_and_handle_exception(eval_test)
+ || python::handle_exception(exec_test))
check_pyerr();
- check_pyerr();
- }
-
- if (python::handle_exception(exec_test_error))
@ -86,13 +85,3 @@ diff -up boost_1_55_0/libs/python/test/exec.cpp\~ boost_1_55_0/libs/python/test/
// The main purpose is to test compilation. Since this test generates
// a file and I (rwgk) am uncertain about the side-effects, run it only
// if explicitly requested.
exercise_embedding_html();
}
- // Boost.Python doesn't support Py_Finalize yet.
- // Py_Finalize();
return boost::report_errors();
}
Diff finished. Fri Jan 9 21:31:13 2015

View File

@ -1,12 +1,12 @@
Index: libs/python/build/Jamfile.v2
Index: libs/python/build/Jamfile
===================================================================
--- libs/python/build/Jamfile.v2.orig 2010-07-13 00:29:41.000000000 +0200
+++ libs/python/build/Jamfile.v2 2010-08-24 12:51:20.939878260 +0200
@@ -51,6 +51,7 @@ project boost/python
: requirements
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
<tag>@$(__name__).tag
+ <cxxflags>-fno-strict-aliasing
;
--- libs/python/build/Jamfile.orig
+++ libs/python/build/Jamfile
@@ -116,6 +116,7 @@ rule lib_boost_python ( is-py3 ? )
rule tag ( name : type ? : property-set )
-<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag
<tag>@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag
+ <cxxflags>-fno-strict-aliasing
: # default build
<link>shared

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Wed Jan 4 12:31:56 UTC 2017 - adam.majer@suse.de
- update to version 1.63.0
* updated libraries: atomic, container, context, fiber,
fusion, geometry, hash, interprocess, intrusive, lexical cast,
log, metaparse, move, optional, phoenix, python, test,
typeindex, units, unordered
* see http://www.boost.org/users/history/version_1_63_0.html
for complete list of changes
- refresh patches
* boost-1.55.0-python-test-PyImport_AppendInittab.patch
* boost-strict_aliasing.patch, and enable -fno-strict-aliasing
for python module
- baselibs.conf:
* add libboost_locale
* rename python to include new soname
- remove python-2059618.patch, not needed
- make build condition --without buil_mpi work
- allow building without python3 bindings, for SLE11SP4
- remove versioned build dependency on libicu-devel, apparently
not needed.
- split out the boost-devel package into individudal compiled
libraries and their -devel subpackages and libboost_headers-devel
package for header-only libraries.
- remove all the -mt.so symlinks, probably not needed anymore.
- ship MPI python bindings for both Python 2.7 and 3.x
-------------------------------------------------------------------
Tue Nov 8 13:32:31 UTC 2016 - adam.majer@suse.de

1714
boost.spec

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:36c96b0f6155c98404091d8ceb48319a28279ca0333fba1ad8611eb90afb2ca0
size 84513338

3
boost_1_63_0.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:beae2529f759f6b3bf3f4969a19c2e9d6f0c503edcb2de4a61d1428519fcb3b0
size 81984414

115
dynamic_linking.patch Normal file
View File

@ -0,0 +1,115 @@
Index: boost_1_63_0/libs/test/build/Jamfile.v2
===================================================================
--- boost_1_63_0.orig/libs/test/build/Jamfile.v2
+++ boost_1_63_0/libs/test/build/Jamfile.v2
@@ -93,7 +93,7 @@ lib boost_test_exec_monitor
: # sources
$(TEST_EXEC_MON_SOURCES).cpp
: # requirements
- <link>static
+ # <link>static
: # default build
: # usage-requirements
<link>shared:<define>BOOST_TEST_DYN_LINK=1
Index: boost_1_63_0/libs/exception/build/Jamfile.v2
===================================================================
--- boost_1_63_0.orig/libs/exception/build/Jamfile.v2
+++ boost_1_63_0/libs/exception/build/Jamfile.v2
@@ -7,7 +7,7 @@
project boost/exception
: source-location ../src
- : requirements <link>static
+ : # requirements <link>static
;
lib boost_exception : clone_current_exception_non_intrusive.cpp ;
Index: boost_1_63_0/libs/chrono/build/Jamfile.v2
===================================================================
--- boost_1_63_0.orig/libs/chrono/build/Jamfile.v2
+++ boost_1_63_0/libs/chrono/build/Jamfile.v2
@@ -99,7 +99,7 @@ project boost/chrono
<define>BOOST_SYSTEM_NO_DEPRECATED
<link>shared:<define>BOOST_CHRONO_DYN_LINK=1
- <link>static:<define>BOOST_CHRONO_STATIC_LINK=1
+ # <link>static:<define>BOOST_CHRONO_STATIC_LINK=1
<toolset>gcc-3.4.4:<linkflags>--enable-auto-import
<toolset>gcc-4.3.4:<linkflags>--enable-auto-import
<toolset>gcc-4.4.0,<target-os>windows:<linkflags>--enable-auto-import
@@ -113,6 +113,6 @@ lib boost_chrono
: $(SOURCES).cpp
:
<link>shared:<define>BOOST_ALL_DYN_LINK=1 # tell source we're building dll's
- <link>static:<define>BOOST_All_STATIC_LINK=1 # tell source we're building static lib's
+ # <link>static:<define>BOOST_All_STATIC_LINK=1 # tell source we're building static lib's
;
Index: boost_1_63_0/libs/system/build/Jamfile.v2
===================================================================
--- boost_1_63_0.orig/libs/system/build/Jamfile.v2
+++ boost_1_63_0/libs/system/build/Jamfile.v2
@@ -11,7 +11,7 @@ project boost/system
: source-location ../src
: usage-requirements # pass these requirement to dependents (i.e. users)
<link>shared:<define>BOOST_SYSTEM_DYN_LINK=1
- <link>static:<define>BOOST_SYSTEM_STATIC_LINK=1
+# <link>static:<define>BOOST_SYSTEM_STATIC_LINK=1
;
SOURCES = error_code ;
@@ -19,7 +19,7 @@ SOURCES = error_code ;
lib boost_system
: $(SOURCES).cpp
: <link>shared:<define>BOOST_SYSTEM_DYN_LINK=1
- <link>static:<define>BOOST_SYSTEM_STATIC_LINK=1
+# <link>static:<define>BOOST_SYSTEM_STATIC_LINK=1
;
-boost-install boost_system ;
\ No newline at end of file
+boost-install boost_system ;
Index: boost_1_63_0/libs/timer/build/Jamfile.v2
===================================================================
--- boost_1_63_0.orig/libs/timer/build/Jamfile.v2
+++ boost_1_63_0/libs/timer/build/Jamfile.v2
@@ -14,7 +14,7 @@ project boost/timer
<library>/boost/system//boost_system
: usage-requirements # pass these requirement to dependants (i.e. users)
<link>shared:<define>BOOST_TIMER_DYN_LINK=1
- <link>static:<define>BOOST_TIMER_STATIC_LINK=1
+# <link>static:<define>BOOST_TIMER_STATIC_LINK=1
;
SOURCES = auto_timers_construction cpu_timer ;
@@ -22,7 +22,7 @@ SOURCES = auto_timers_construction cpu_t
lib boost_timer
: $(SOURCES).cpp
: <link>shared:<define>BOOST_TIMER_DYN_LINK=1
- <link>static:<define>BOOST_TIMER_STATIC_LINK=1
+# <link>static:<define>BOOST_TIMER_STATIC_LINK=1
;
boost-install boost_timer ;
Index: boost_1_63_0/libs/filesystem/build/Jamfile.v2
===================================================================
--- boost_1_63_0.orig/libs/filesystem/build/Jamfile.v2
+++ boost_1_63_0/libs/filesystem/build/Jamfile.v2
@@ -11,7 +11,7 @@ project boost/filesystem
: source-location ../src
: usage-requirements # pass these requirement to dependents (i.e. users)
<link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1
- <link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
+# <link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
;
SOURCES =
@@ -28,7 +28,7 @@ SOURCES =
lib boost_filesystem
: $(SOURCES).cpp ../../system/build//boost_system
: <link>shared:<define>BOOST_FILESYSTEM_DYN_LINK=1
- <link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
+# <link>static:<define>BOOST_FILESYSTEM_STATIC_LINK=1
:
: # Boost.Filesystem uses some of Boost.System functions in inlined/templated
# functions, so clients that use Boost.Filesystem will have direct references

1
exception.objdump Normal file
View File

@ -0,0 +1 @@
boost::exception_detail::clone_current_exception_non_intrusive(boost::exception_detail::clone_base const*&)

View File

@ -1,28 +0,0 @@
Reverse: 2059618861eb25ae2ed3f1b6ebee8609365cbed9
Bug: bnc#1006584
https://svn.boost.org/trac/boost/ticket/12515
Index: boost_1_62_0/tools/build/src/tools/python.jam
===================================================================
--- boost_1_62_0.orig/tools/build/src/tools/python.jam
+++ boost_1_62_0/tools/build/src/tools/python.jam
@@ -903,19 +903,6 @@ local rule configure ( version ? : cmd-o
toolset.add-requirements
$(target-requirements:J=,):<python.interpreter>$(interpreter-cmd) ;
- # We also set a default requirement that assigns the first python configured
- # for a particular target OS as the default. This makes it so that we can
- # select a python interpreter with only knowledge of the target OS. And hence
- # can configure different Pythons based on the target OS only.
- local toolset-requirements = [ toolset.requirements ] ;
- local toolset-target-os-requirements
- = [ property.evaluate-conditionals-in-context
- [ $(toolset-requirements).raw ] : <target-os>$(target-os) ] ;
- if ! <python> in $(toolset-target-os-requirements:G)
- {
- toolset.add-requirements <target-os>$(target-os):<python>$(version:E=default) ;
- }
-
# Register the right suffix for extensions.
register-extension-suffix $(extension-suffix) : $(target-requirements) ;

27
python_mpi.patch Normal file
View File

@ -0,0 +1,27 @@
Author: Adam Majer <adam.majer@suse.de>
Summary: Fix MPI module loading
MPI requires dl.RTLD_NOW|dl.RTLD_GLOBAL flags to load
properly.
Index: boost_1_63_0/libs/mpi/build/__init__.py
===================================================================
--- boost_1_63_0.orig/libs/mpi/build/__init__.py
+++ boost_1_63_0/libs/mpi/build/__init__.py
@@ -1,10 +1,7 @@
import sys
-if sys.platform == 'linux2':
- import DLFCN as dl
- flags = sys.getdlopenflags()
- sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
- import mpi
- sys.setdlopenflags(flags)
-else:
- import mpi
+import DLFCN as dl
+flags = sys.getdlopenflags()
+sys.setdlopenflags(dl.RTLD_NOW|dl.RTLD_GLOBAL)
+import boost.parallel.mpi.mpi
+sys.setdlopenflags(flags)

21
symbol_diff.sh Normal file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# compares symbols of $1 vs. $2
# returns diff of the two global function tables
#
if test $# -ne 2; then
echo "$0 library1 library2"
exit 2
fi
PARAMS='[0-9a-f]\+[[:space:]]\+g[[:space:]]\+F[[:space:]]\+\.text[[:space:]]\+[0-9a-f]\+[[:space:]]\+'
objdump -t $1 | grep $PARAMS | sed -e 's#'$PARAMS'##' | sort > temp.$$
objdump -t $2 | grep $PARAMS | sed -e 's#'$PARAMS'##' | sort | diff temp.$$ -
RET=$?
rm temp.$$
exit $RET