From c3969a1a6c347b3e17c3dbd7da1bf5ff3eb2d451 Mon Sep 17 00:00:00 2001 From: zyppe <210hcl@gmail.com> Date: Wed, 28 Feb 2024 20:52:17 +0800 Subject: [PATCH] Initialize for boost-base --- .boost-base.metadata | 2 + .gitignore | 2 + README.boost-devel | 4 + __init__.py | 1 + baselibs.conf | 26 + ...0-python-test-PyImport_AppendInittab.patch | 87 + boost-1.57.0-python-abi_letters.patch | 64 + boost-1.57.0-python-libpython_dep.patch | 13 + boost-aarch64-flags.patch | 15 + boost-disable-pch-on-aarch64.patch | 75 + boost-no_segfault_in_Regex_filter.patch | 11 + boost-no_type_punning.patch | 144 ++ boost-pool_check_overflow.patch | 36 + boost-rpmlintrc | 14 + boost-rpmoptflags-only.patch | 51 + boost-strict_aliasing.patch | 12 + boost-thread.patch | 13 + boost-use_std_xml_catalog.patch | 46 + boost-visibility.patch | 110 + boost.changes | 1332 ++++++++++++ boost.spec | 1919 +++++++++++++++++ dynamic_linking.patch | 115 + exception.objdump | 1 + existing_extra_docs | 470 ++++ libreoffice_compat_backports.patch | 17 + python_library_name.patch | 176 ++ python_mpi.patch | 27 + python_numpy_retfunc.patch | 22 + symbol_diff.sh | 21 + variant.patch | 102 + 30 files changed, 4928 insertions(+) create mode 100644 .boost-base.metadata create mode 100644 .gitignore create mode 100644 README.boost-devel create mode 100644 __init__.py create mode 100644 baselibs.conf create mode 100644 boost-1.55.0-python-test-PyImport_AppendInittab.patch create mode 100644 boost-1.57.0-python-abi_letters.patch create mode 100644 boost-1.57.0-python-libpython_dep.patch create mode 100644 boost-aarch64-flags.patch create mode 100644 boost-disable-pch-on-aarch64.patch create mode 100644 boost-no_segfault_in_Regex_filter.patch create mode 100644 boost-no_type_punning.patch create mode 100644 boost-pool_check_overflow.patch create mode 100644 boost-rpmlintrc create mode 100644 boost-rpmoptflags-only.patch create mode 100644 boost-strict_aliasing.patch create mode 100644 boost-thread.patch create mode 100644 boost-use_std_xml_catalog.patch create mode 100644 boost-visibility.patch create mode 100644 boost.changes create mode 100644 boost.spec create mode 100644 dynamic_linking.patch create mode 100644 exception.objdump create mode 100644 existing_extra_docs create mode 100644 libreoffice_compat_backports.patch create mode 100644 python_library_name.patch create mode 100644 python_mpi.patch create mode 100644 python_numpy_retfunc.patch create mode 100644 symbol_diff.sh create mode 100644 variant.patch diff --git a/.boost-base.metadata b/.boost-base.metadata new file mode 100644 index 0000000..c42183d --- /dev/null +++ b/.boost-base.metadata @@ -0,0 +1,2 @@ +54950a14807fda3af0dc72d5180c4e33ac5a2e561de89fa782a247056cba9643 boost_1_56_pdf.tar.bz2 +19663b3972f9993402c5db32b3180d6ad91a89fd5bfe844cf5b15f1993ba24ea boost_1_66_0.tar.bz2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a01e8db --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +boost_1_56_pdf.tar.bz2 +boost_1_66_0.tar.bz2 diff --git a/README.boost-devel b/README.boost-devel new file mode 100644 index 0000000..152efd4 --- /dev/null +++ b/README.boost-devel @@ -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 + diff --git a/__init__.py b/__init__.py new file mode 100644 index 0000000..fdffa2a --- /dev/null +++ b/__init__.py @@ -0,0 +1 @@ +# placeholder diff --git a/baselibs.conf b/baselibs.conf new file mode 100644 index 0000000..b405349 --- /dev/null +++ b/baselibs.conf @@ -0,0 +1,26 @@ +libboost_atomic1_66_0 +libboost_container1_66_0 +libboost_context1_66_0 +libboost_coroutine1_66_0 +libboost_date_time1_66_0 +libboost_fiber1_66_0 +libboost_filesystem1_66_0 +libboost_graph1_66_0 +libboost_graph_parallel1_66_0 +libboost_iostreams1_66_0 +libboost_locale1_66_0 +libboost_math1_66_0 +libboost_mpi1_66_0 +libboost_test1_66_0 +libboost_program_options1_66_0 +libboost_python-py2_7-1_66_0 +libboost_python-py3-1_66_0 +libboost_random1_66_0 +libboost_serialization1_66_0 +libboost_signals1_66_0 +libboost_stacktrace1_66_0 +libboost_system1_66_0 +libboost_thread1_66_0 +libboost_type_erasure1_66_0 +libboost_wave1_66_0 +libboost_regex1_66_0 diff --git a/boost-1.55.0-python-test-PyImport_AppendInittab.patch b/boost-1.55.0-python-test-PyImport_AppendInittab.patch new file mode 100644 index 0000000..b96121e --- /dev/null +++ b/boost-1.55.0-python-test-PyImport_AppendInittab.patch @@ -0,0 +1,87 @@ +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"); + } + ++struct PyCtx ++{ ++ PyCtx() { ++ Py_Initialize(); ++ } ++ ++ ~PyCtx() { ++ // N.B. certain problems may arise when Py_Finalize is called when ++ // using Boost.Python. However in this test suite it all seems to ++ // work fine. ++ Py_Finalize(); ++ } ++}; ++ + void exec_test() + { ++ PyCtx ctx; ++ + // Retrieve the main module + python::object main = python::import("__main__"); + +@@ -138,6 +154,19 @@ void check_pyerr(bool pyerr_expected=fal + } + } + ++template ++bool ++run_and_handle_exception(Cb cb, bool pyerr_expected = false) ++{ ++ PyCtx ctx; ++ if (python::handle_exception(cb)) { ++ check_pyerr(pyerr_expected); ++ return true; ++ } else { ++ return false; ++ } ++} ++ + int main(int argc, char **argv) + { + BOOST_TEST(argc == 2 || argc == 3); +@@ -156,29 +185,19 @@ int main(int argc, char **argv) + "builtin modules"); + } + +- // Initialize the interpreter +- Py_Initialize(); +- +- if (python::handle_exception(eval_test)) { ++ // 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))) { +- check_pyerr(); +- } +- +- if (python::handle_exception(exec_test_error)) +- { +- check_pyerr(/*pyerr_expected*/ true); +- } + else +- { ++ run_and_handle_exception(boost::bind(exec_file_test, script)); ++ ++ if (!run_and_handle_exception(exec_test_error, true)) + BOOST_ERROR("Python exception expected, but not seen."); +- } + + if (argc > 2) { ++ PyCtx ctx; + // 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. diff --git a/boost-1.57.0-python-abi_letters.patch b/boost-1.57.0-python-abi_letters.patch new file mode 100644 index 0000000..a11c20f --- /dev/null +++ b/boost-1.57.0-python-abi_letters.patch @@ -0,0 +1,64 @@ +Index: boost_1_65_0/tools/build/src/tools/python.jam +=================================================================== +--- boost_1_65_0.orig/tools/build/src/tools/python.jam ++++ boost_1_65_0/tools/build/src/tools/python.jam +@@ -99,7 +99,7 @@ py3-version = ; + # using python : 2.3 : /usr/local/bin/python ; + # + rule init ( version ? : cmd-or-prefix ? : includes * : libraries ? +- : condition * : extension-suffix ? ) ++ : condition * : extension-suffix ? : abi-letters ? ) + { + project.push-current $(.project) ; + +@@ -112,7 +112,7 @@ rule init ( version ? : cmd-or-prefix ? + } + } + +- configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) ; ++ configure $(version) : $(cmd-or-prefix) : $(includes) : $(libraries) : $(condition) : $(extension-suffix) : $(abi-letters) ; + + project.pop-current ; + } +@@ -659,7 +659,7 @@ local rule system-library-dependencies ( + + # Declare a target to represent Python's library. + # +-local rule declare-libpython-target ( version ? : requirements * ) ++local rule declare-libpython-target ( version ? : requirements * : abi-letters ? ) + { + # Compute the representation of Python version in the name of Python's + # library file. +@@ -683,13 +683,13 @@ local rule declare-libpython-target ( ve + } + + # Declare it. +- lib python.lib : : python$(lib-version) $(requirements) ; ++ lib python.lib : : python$(lib-version)$(abi-letters) $(requirements) ; + } + + + # Implementation of init. + local rule configure ( version ? : cmd-or-prefix ? : includes * : libraries ? : +- condition * : extension-suffix ? ) ++ condition * : extension-suffix ? : abi-letters ? ) + { + local prefix ; + local exec-prefix ; +@@ -705,6 +705,7 @@ local rule configure ( version ? : cmd-o + extension-suffix ?= _d ; + } + extension-suffix ?= "" ; ++ abi-letters ?= "" ; + + local cmds-to-try ; + +@@ -968,7 +969,7 @@ local rule configure ( version ? : cmd-o + } + else + { +- declare-libpython-target $(version) : $(target-requirements) ; ++ declare-libpython-target $(version) : $(target-requirements) : $(abi-letters) ; + + # This is an evil hack. On, Windows, when Python is embedded, nothing + # seems to set up sys.path to include Python's standard library diff --git a/boost-1.57.0-python-libpython_dep.patch b/boost-1.57.0-python-libpython_dep.patch new file mode 100644 index 0000000..57bfc26 --- /dev/null +++ b/boost-1.57.0-python-libpython_dep.patch @@ -0,0 +1,13 @@ +Index: boost_1_57_0/tools/build/src/tools/python.jam +=================================================================== +--- boost_1_57_0/tools/build/src/tools/python.jam (revision 50406) ++++ boost_1_57_0/tools/build/src/tools/python.jam (working copy) +@@ -994,7 +994,7 @@ + else + { + alias python_for_extensions +- : ++ : python + : $(target-requirements) + : + : $(usage-requirements) diff --git a/boost-aarch64-flags.patch b/boost-aarch64-flags.patch new file mode 100644 index 0000000..01b3dae --- /dev/null +++ b/boost-aarch64-flags.patch @@ -0,0 +1,15 @@ +Index: boost_1_58_0/tools/build/src/tools/gcc.jam +=================================================================== +--- boost_1_58_0.orig/tools/build/src/tools/gcc.jam ++++ boost_1_58_0/tools/build/src/tools/gcc.jam +@@ -457,10 +457,6 @@ rule setup-address-model ( targets * : s + { + option = -m32 ; + } +- else if $(model) = 64 +- { +- option = -m64 ; +- } + } + # For darwin, the model can be 32_64. darwin.jam will handle that + # on its own. diff --git a/boost-disable-pch-on-aarch64.patch b/boost-disable-pch-on-aarch64.patch new file mode 100644 index 0000000..14854b1 --- /dev/null +++ b/boost-disable-pch-on-aarch64.patch @@ -0,0 +1,75 @@ +diff -urEbwB boost_1_60_0.orig/libs/math/build/Jamfile.v2 boost_1_60_0/libs/math/build/Jamfile.v2 +--- boost_1_60_0.orig/libs/math/build/Jamfile.v2 2015-12-23 17:26:17.352006018 +0100 ++++ boost_1_60_0/libs/math/build/Jamfile.v2 2015-12-23 20:41:51.707246969 +0100 +@@ -4,23 +4,17 @@ + # http://www.boost.org/LICENSE_1_0.txt. + + import testing ; +-import pch ; + + project + : requirements + intel-win:-nologo + intel-win:-nologo +- #intel-linux:off +- intel-darwin:off +- msvc-7.1:off +- gcc,windows:off + #gcc:-fvisibility=hidden + intel-linux:-fvisibility=hidden + #sun:-xldscope=hidden + [ check-target-builds ../config//has_gcc_visibility "gcc visibility" : gcc:-fvisibility=hidden : ] + ; + +-cpp-pch pch : ../src/tr1/pch.hpp : ../src/tr1 shared:BOOST_MATH_TR1_DYN_LINK=1 ; + + C99_SOURCES = acosh + asinh +@@ -80,19 +74,19 @@ + explicit long_double_check ; + + # Library targets +-lib boost_math_tr1 : ../src/tr1/$(TR1_SOURCES).cpp pch ++lib boost_math_tr1 : ../src/tr1/$(TR1_SOURCES).cpp + : + shared:BOOST_MATH_TR1_DYN_LINK=1 + ../src/tr1 + ; + +-lib boost_math_tr1f : ../src/tr1/$(TR1_SOURCES)f.cpp pch ++lib boost_math_tr1f : ../src/tr1/$(TR1_SOURCES)f.cpp + : + shared:BOOST_MATH_TR1_DYN_LINK=1 + ../src/tr1 + ; + +-lib boost_math_tr1l : ../src/tr1/$(TR1_SOURCES)l.cpp pch ++lib boost_math_tr1l : ../src/tr1/$(TR1_SOURCES)l.cpp + : + shared:BOOST_MATH_TR1_DYN_LINK=1 + ../config//has_long_double_support +@@ -100,19 +94,19 @@ + [ check-target-builds ../config//has_long_double_support "long double support" : : no ] + ; + +-lib boost_math_c99 : ../src/tr1/$(C99_SOURCES).cpp pch ++lib boost_math_c99 : ../src/tr1/$(C99_SOURCES).cpp + : + shared:BOOST_MATH_TR1_DYN_LINK=1 + ../src/tr1 + ; + +-lib boost_math_c99f : ../src/tr1/$(C99_SOURCES)f.cpp pch ++lib boost_math_c99f : ../src/tr1/$(C99_SOURCES)f.cpp + : + shared:BOOST_MATH_TR1_DYN_LINK=1 + ../src/tr1 + ; + +-lib boost_math_c99l : ../src/tr1/$(C99_SOURCES)l.cpp pch ++lib boost_math_c99l : ../src/tr1/$(C99_SOURCES)l.cpp + : + shared:BOOST_MATH_TR1_DYN_LINK=1 + ../config//has_long_double_support +Only in boost_1_60_0/libs/math/build: Jamfile.v2.orig +Only in boost_1_60_0/libs/math/build: Jamfile.v2.rej diff --git a/boost-no_segfault_in_Regex_filter.patch b/boost-no_segfault_in_Regex_filter.patch new file mode 100644 index 0000000..ee7758e --- /dev/null +++ b/boost-no_segfault_in_Regex_filter.patch @@ -0,0 +1,11 @@ +--- boost/iostreams/filter/regex.hpp ++++ boost/iostreams/filter/regex.hpp +@@ -58,7 +58,7 @@ + return; + iterator first(&src[0], &src[0] + src.size(), re_, flags_); + iterator last; +- const Ch* suffix = 0; ++ const Ch* suffix = &src[0]; + for (; first != last; ++first) { + dest.insert( dest.end(), + first->prefix().first, diff --git a/boost-no_type_punning.patch b/boost-no_type_punning.patch new file mode 100644 index 0000000..57c632b --- /dev/null +++ b/boost-no_type_punning.patch @@ -0,0 +1,144 @@ +Index: libs/python/src/dict.cpp +=================================================================== +--- libs/python/src/dict.cpp.orig 2009-10-14 00:37:59.000000000 +0200 ++++ libs/python/src/dict.cpp 2012-03-13 17:20:34.286172759 +0100 +@@ -28,9 +28,9 @@ namespace + + detail::new_reference dict_base::call(object const& arg_) + { ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyDict_Type }; + return (detail::new_reference)PyObject_CallFunction( +- (PyObject*)&PyDict_Type, const_cast("(O)"), +- arg_.ptr()); ++ pun.pop, const_cast("(O)"), arg_.ptr()); + } + + dict_base::dict_base() +Index: libs/python/src/list.cpp +=================================================================== +--- libs/python/src/list.cpp.orig 2009-10-14 00:37:59.000000000 +0200 ++++ libs/python/src/list.cpp 2012-03-13 17:20:34.286172759 +0100 +@@ -10,11 +10,11 @@ namespace boost { namespace python { nam + + detail::new_non_null_reference list_base::call(object const& arg_) + { ++ union{ PyTypeObject *ptop; PyObject *pop; }pun = { &PyList_Type }; + return (detail::new_non_null_reference) + (expect_non_null)( + PyObject_CallFunction( +- (PyObject*)&PyList_Type, const_cast("(O)"), +- arg_.ptr())); ++ pun.pop, const_cast("(O)"), arg_.ptr())); + } + + list_base::list_base() +Index: libs/python/src/long.cpp +=================================================================== +--- libs/python/src/long.cpp.orig 2009-08-17 23:01:18.000000000 +0200 ++++ libs/python/src/long.cpp 2012-03-13 17:20:34.287172735 +0100 +@@ -8,16 +8,16 @@ namespace boost { namespace python { nam + + new_non_null_reference long_base::call(object const& arg_) + { ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type }; + return (detail::new_non_null_reference)PyObject_CallFunction( +- (PyObject*)&PyLong_Type, const_cast("(O)"), +- arg_.ptr()); ++ pun.pop, const_cast("(O)"), arg_.ptr()); + } + + new_non_null_reference long_base::call(object const& arg_, object const& base) + { ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type }; + return (detail::new_non_null_reference)PyObject_CallFunction( +- (PyObject*)&PyLong_Type, const_cast("(OO)"), +- arg_.ptr(), base.ptr()); ++ pun.pop, const_cast("(OO)"), arg_.ptr(), base.ptr()); + } + + long_base::long_base() +@@ -25,7 +25,12 @@ long_base::long_base() + detail::new_reference( + PyObject_CallFunction((PyObject*)&PyLong_Type, const_cast("()"))) + ) +-{} ++{ ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type }; ++ object(detail::new_reference( ++ PyObject_CallFunction(pun.pop, const_cast("()")))); ++} ++ + + long_base::long_base(object_cref arg) + : object(long_base::call(arg)) +Index: libs/python/src/object/class.cpp +=================================================================== +--- libs/python/src/object/class.cpp.orig 2011-06-07 06:15:33.000000000 +0200 ++++ libs/python/src/object/class.cpp 2012-03-13 17:20:34.287172735 +0100 +@@ -616,9 +616,11 @@ namespace objects + void class_base::add_property( + char const* name, object const& fget, char const* docstr) + { ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyProperty_Type }; ++ + object property( + (python::detail::new_reference) +- PyObject_CallFunction((PyObject*)&PyProperty_Type, const_cast("Osss"), fget.ptr(), 0, 0, docstr)); ++ PyObject_CallFunction(pun.pop, const_cast("Osss"), fget.ptr(), 0, 0, docstr)); + + this->setattr(name, property); + } +@@ -626,9 +628,11 @@ namespace objects + void class_base::add_property( + char const* name, object const& fget, object const& fset, char const* docstr) + { ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyProperty_Type }; ++ + object property( + (python::detail::new_reference) +- PyObject_CallFunction((PyObject*)&PyProperty_Type, const_cast("OOss"), fget.ptr(), fset.ptr(), 0, docstr)); ++ PyObject_CallFunction(pun.pop, const_cast("OOss"), fget.ptr(), fset.ptr(), 0, docstr)); + + this->setattr(name, property); + } +Index: libs/python/src/str.cpp +=================================================================== +--- libs/python/src/str.cpp.orig 2009-10-14 00:37:59.000000000 +0200 ++++ libs/python/src/str.cpp 2012-03-13 17:20:34.287172735 +0100 +@@ -9,14 +9,14 @@ namespace boost { namespace python { nam + + detail::new_reference str_base::call(object const& arg_) + { +- return (detail::new_reference)PyObject_CallFunction( + #if PY_VERSION_HEX >= 0x03000000 +- (PyObject*)&PyUnicode_Type, ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyUnicode_Type }; + #else +- (PyObject*)&PyString_Type, ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyString_Type }; + #endif +- const_cast("(O)"), +- arg_.ptr()); ++ ++ return (detail::new_reference)PyObject_CallFunction( ++ pun.pop, const_cast("(O)"), arg_.ptr()); + } + + str_base::str_base() +Index: libs/python/src/tuple.cpp +=================================================================== +--- libs/python/src/tuple.cpp.orig 2009-08-17 23:01:18.000000000 +0200 ++++ libs/python/src/tuple.cpp 2012-03-13 17:20:34.287172735 +0100 +@@ -8,9 +8,10 @@ namespace boost { namespace python { nam + + detail::new_reference tuple_base::call(object const& arg_) + { ++ union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyTuple_Type }; ++ + return (detail::new_reference)PyObject_CallFunction( +- (PyObject*)&PyTuple_Type, const_cast("(O)"), +- arg_.ptr()); ++ pun.pop, const_cast("(O)"), arg_.ptr()); + } + + tuple_base::tuple_base() diff --git a/boost-pool_check_overflow.patch b/boost-pool_check_overflow.patch new file mode 100644 index 0000000..9b4a33e --- /dev/null +++ b/boost-pool_check_overflow.patch @@ -0,0 +1,36 @@ +Upstream URL: https://svn.boost.org/trac/boost/ticket/6701 + +Check that request size doesn't overflow. + +Index: boost/pool/pool.hpp +=================================================================== +--- boost/pool/pool.hpp.orig 2007-11-25 19:07:19.000000000 +0100 ++++ boost/pool/pool.hpp 2012-06-22 13:03:49.422438613 +0200 +@@ -10,6 +10,8 @@ + #define BOOST_POOL_HPP + + #include // for workarounds ++// std::numeric_limits ++#include + + // std::less, std::less_equal, std::greater + #include +@@ -793,6 +793,9 @@ void * pool::ordered_mall + //! \returns Address of chunk n if allocated ok. + //! \returns 0 if not enough memory for n chunks. + ++ if (requested_size && (n > (std::numeric_limits::max)() / requested_size)) ++ return 0; ++ + const size_type partition_size = alloc_size(); + const size_type total_req_size = n * requested_size; + const size_type num_chunks = total_req_size / partition_size + +@@ -975,6 +979,8 @@ + { + if(max_alloc_size && (n > max_alloc_size)) + return 0; ++ if(chunk_size && (n > (std::numeric_limits::max)() / chunk_size)) ++ return 0; + void* ret = (user_allocator::malloc)(chunk_size * n); + used_list.insert(ret); + return ret; diff --git a/boost-rpmlintrc b/boost-rpmlintrc new file mode 100644 index 0000000..0f4dc07 --- /dev/null +++ b/boost-rpmlintrc @@ -0,0 +1,14 @@ +# This line is mandatory to access the configuration functions +from Config import * + +addFilter("boost.* shlib-policy-nonversioned-dir") +addFilter("boost.* shlib-policy-missing-suffix") +addFilter("boost-doc.* devel-dependency") +addFilter("boost.* rpm-buildroot-usage") +addFilter("boost.* explicit-lib-dependency") +addFilter("boost.* filename-too-long-for-joliet") +addFilter("boost.* no-binary") +addFilter("boost.* static-library-without-debuginfo") +addFilter("boost.* obsolete-suse-version-check") +addFilter("boost.* shlib-unversioned-lib") +addFilter("boost.* no-dependency-on") diff --git a/boost-rpmoptflags-only.patch b/boost-rpmoptflags-only.patch new file mode 100644 index 0000000..76e58a5 --- /dev/null +++ b/boost-rpmoptflags-only.patch @@ -0,0 +1,51 @@ +Index: tools/build/src/tools/gcc.jam +=================================================================== +--- tools/build/src/tools/gcc.jam.orig ++++ tools/build/src/tools/gcc.jam +@@ -603,7 +603,7 @@ rule compile.fortran ( targets * : sourc + + actions compile.c++ bind PCH_FILE + { +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" + } + + actions compile.c bind PCH_FILE +@@ -613,7 +613,7 @@ actions compile.c bind PCH_FILE + + actions compile.c++.preprocess bind PCH_FILE + { +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" + } + + actions compile.c.preprocess bind PCH_FILE +@@ -755,17 +755,17 @@ actions compile.c.pch + ### + + # Declare flags and action for compilation. +-toolset.flags gcc.compile OPTIONS off : -O0 ; +-toolset.flags gcc.compile OPTIONS speed : -O3 ; +-toolset.flags gcc.compile OPTIONS space : -Os ; +- +-toolset.flags gcc.compile OPTIONS off : -fno-inline ; +-toolset.flags gcc.compile OPTIONS on : -Wno-inline ; +-toolset.flags gcc.compile OPTIONS full : -finline-functions -Wno-inline ; +- +-toolset.flags gcc.compile OPTIONS off : -w ; +-toolset.flags gcc.compile OPTIONS on : -Wall ; +-toolset.flags gcc.compile OPTIONS all : -Wall -pedantic ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS speed : ; ++toolset.flags gcc.compile OPTIONS space : ; ++ ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS full : ; ++ ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS all : ; + toolset.flags gcc.compile OPTIONS on : -Werror ; + + toolset.flags gcc.compile OPTIONS on : -g ; diff --git a/boost-strict_aliasing.patch b/boost-strict_aliasing.patch new file mode 100644 index 0000000..4e742af --- /dev/null +++ b/boost-strict_aliasing.patch @@ -0,0 +1,12 @@ +Index: libs/python/build/Jamfile +=================================================================== +--- libs/python/build/Jamfile.orig ++++ libs/python/build/Jamfile +@@ -110,6 +110,7 @@ rule lib_boost_python ( version ) + + -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag ++ -fno-strict-aliasing + + @python.require-py + diff --git a/boost-thread.patch b/boost-thread.patch new file mode 100644 index 0000000..80829eb --- /dev/null +++ b/boost-thread.patch @@ -0,0 +1,13 @@ +Index: boost_1_58_0/boost/config/compiler/gcc.hpp +=================================================================== +--- boost_1_58_0.orig/boost/config/compiler/gcc.hpp ++++ boost_1_58_0/boost/config/compiler/gcc.hpp +@@ -73,7 +73,7 @@ + // those platforms where we can know for sure). It will get turned off again + // later if no threading API is detected. + // +-#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__) ++#if !defined(__MINGW32__) + # define BOOST_HAS_THREADS + #endif + diff --git a/boost-use_std_xml_catalog.patch b/boost-use_std_xml_catalog.patch new file mode 100644 index 0000000..fa9f1d8 --- /dev/null +++ b/boost-use_std_xml_catalog.patch @@ -0,0 +1,46 @@ +Index: boost_1_56_0/tools/build/src/tools/boostbook.jam +=================================================================== +--- boost_1_56_0.orig/tools/build/src/tools/boostbook.jam ++++ boost_1_56_0/tools/build/src/tools/boostbook.jam +@@ -548,40 +548,7 @@ rule generate-xml-catalog ( target : sou + " " + : true ; + +- local docbook-xsl-dir = [ boostbook.docbook-xsl-dir ] ; +- if ! $(docbook-xsl-dir) +- { +- ECHO "BoostBook warning: no DocBook XSL directory specified." ; +- ECHO " If you have the DocBook XSL stylesheets installed, please " ; +- ECHO " set DOCBOOK_XSL_DIR to the stylesheet directory on either " ; +- ECHO " the command line (via -sDOCBOOK_XSL_DIR=...) or in a " ; +- ECHO " Boost.Jam configuration file. The DocBook XSL stylesheets " ; +- ECHO " are available here: http://docbook.sourceforge.net/ " ; +- ECHO " Stylesheets will be downloaded on-the-fly (very slow!) " ; +- } +- else +- { +- docbook-xsl-dir = [ format-catalog-path $(docbook-xsl-dir) ] ; +- print.text " " ; +- } +- +- local docbook-dtd-dir = [ boostbook.docbook-dtd-dir ] ; +- if ! $(docbook-dtd-dir) +- { +- ECHO "BoostBook warning: no DocBook DTD directory specified." ; +- ECHO " If you have the DocBook DTD installed, please set " ; +- ECHO " DOCBOOK_DTD_DIR to the DTD directory on either " ; +- ECHO " the command line (via -sDOCBOOK_DTD_DIR=...) or in a " ; +- ECHO " Boost.Jam configuration file. The DocBook DTD is available " ; +- ECHO " here: http://www.oasis-open.org/docbook/xml/4.2/index.shtml" ; +- ECHO " The DTD will be downloaded on-the-fly (very slow!) " ; +- } +- else +- { +- docbook-dtd-dir = [ format-catalog-path $(docbook-dtd-dir) ] ; +- print.text " " ; +- } +- ++ print.text " " ; + print.text "" ; + } + diff --git a/boost-visibility.patch b/boost-visibility.patch new file mode 100644 index 0000000..61dbf7e --- /dev/null +++ b/boost-visibility.patch @@ -0,0 +1,110 @@ +--- + boost/archive/impl/basic_xml_grammar.hpp | 16 ++++++++-------- + libs/serialization/src/basic_xml_grammar.ipp | 14 +++++++------- + 2 files changed, 15 insertions(+), 15 deletions(-) + +Index: boost/archive/impl/basic_xml_grammar.hpp +=================================================================== +--- boost/archive/impl/basic_xml_grammar.hpp.orig ++++ boost/archive/impl/basic_xml_grammar.hpp +@@ -135,7 +135,7 @@ private: + Sch, + NameChar; + +- void init_chset(); ++ BOOST_SYMBOL_VISIBLE void init_chset(); + + bool my_parse( + IStream & is, +@@ -143,7 +143,7 @@ private: + const CharType delimiter = L'>' + ) const ; + public: +- struct return_values { ++ BOOST_SYMBOL_VISIBLE struct return_values { + StringType object_name; + StringType contents; + //class_id_type class_id; +@@ -159,12 +159,12 @@ public: + tracking_level(false) + {} + } rv; +- bool parse_start_tag(IStream & is) /*const*/; +- bool parse_end_tag(IStream & is) const; +- bool parse_string(IStream & is, StringType & s) /*const*/; +- void init(IStream & is); +- bool windup(IStream & is); +- basic_xml_grammar(); ++ BOOST_SYMBOL_VISIBLE bool parse_start_tag(IStream & is) /*const*/; ++ BOOST_SYMBOL_VISIBLE bool parse_end_tag(IStream & is) const; ++ BOOST_SYMBOL_VISIBLE bool parse_string(IStream & is, StringType & s) /*const*/; ++ BOOST_SYMBOL_VISIBLE void init(IStream & is); ++ BOOST_SYMBOL_VISIBLE bool windup(IStream & is); ++ BOOST_SYMBOL_VISIBLE basic_xml_grammar(); + }; + + } // namespace archive +Index: libs/serialization/src/basic_xml_grammar.ipp +=================================================================== +--- libs/serialization/src/basic_xml_grammar.ipp.orig ++++ libs/serialization/src/basic_xml_grammar.ipp +@@ -173,7 +173,7 @@ struct append_lit { + } // namespace anonymous + + template +-bool basic_xml_grammar::my_parse( ++BOOST_SYMBOL_VISIBLE bool basic_xml_grammar::my_parse( + typename basic_xml_grammar::IStream & is, + const rule_t & rule_, + CharType delimiter +@@ -209,7 +209,7 @@ bool basic_xml_grammar::my_par + } + + template +-bool basic_xml_grammar::parse_start_tag( ++BOOST_SYMBOL_VISIBLE bool basic_xml_grammar::parse_start_tag( + typename basic_xml_grammar::IStream & is + ){ + rv.class_name.resize(0); +@@ -217,12 +217,12 @@ bool basic_xml_grammar::parse_ + } + + template +-bool basic_xml_grammar::parse_end_tag(IStream & is) const { ++BOOST_SYMBOL_VISIBLE bool basic_xml_grammar::parse_end_tag(IStream & is) const { + return my_parse(is, ETag); + } + + template +-bool basic_xml_grammar::parse_string(IStream & is, StringType & s){ ++BOOST_SYMBOL_VISIBLE bool basic_xml_grammar::parse_string(IStream & is, StringType & s){ + rv.contents.resize(0); + bool result = my_parse(is, content, '<'); + // note: unget caused a problem with dinkumware. replace with +@@ -235,7 +235,7 @@ bool basic_xml_grammar::parse_ + } + + template +-basic_xml_grammar::basic_xml_grammar(){ ++BOOST_SYMBOL_VISIBLE basic_xml_grammar::basic_xml_grammar(){ + init_chset(); + + S = +@@ -432,7 +432,7 @@ basic_xml_grammar::basic_xml_g + } + + template +-void basic_xml_grammar::init(IStream & is){ ++BOOST_SYMBOL_VISIBLE void basic_xml_grammar::init(IStream & is){ + init_chset(); + if(! my_parse(is, XMLDecl)) + boost::serialization::throw_exception( +@@ -453,7 +453,7 @@ void basic_xml_grammar::init(I + } + + template +-bool basic_xml_grammar::windup(IStream & is) { ++BOOST_SYMBOL_VISIBLE bool basic_xml_grammar::windup(IStream & is) { + return my_parse(is, ETag); + } + diff --git a/boost.changes b/boost.changes new file mode 100644 index 0000000..b0b2325 --- /dev/null +++ b/boost.changes @@ -0,0 +1,1332 @@ +* Mon Jan 10 2022 adam.majer@suse.de +- variant.patch: backport fix allowing perfect forwarding in + apply_visitor. Also fix wrong usage of boost::move (bsc#1194522) +* Thu Mar 19 2020 adam.majer@suse.de +- libreoffice_compat_backports.patch: add a backport of + Boost.Optional::has_value() for LibreOffice +* Wed Apr 4 2018 kukuk@suse.de +- Use %%license instead of %%doc [bsc#1082318] +* Fri Jan 19 2018 adam.majer@suse.de +- Multibuild requires versioned Name: tag and doesn't seem to do + this automatically. (bnc#1076640) +* Mon Dec 18 2017 adam.majer@suse.de +- Update to version 1.66.0 + + Beast: new portable HTTP, WebSocket and network operations + using Boost.Asio. Header-only library. + + Callable Traits: new library and successor to + Boost.FunctionTypes. Header-only library. + + Mp11: new metaprogramming library + + Asio: + * implemented interface changes to reflect the Networking TS + (N4656) + * functions and classes that have been superseded by + Networking TS functionality have been deprecated. + * added support for customized handler tracking + * removed previously deprecated functions + + Atomic: improved compatibility with GCC 7. 128-bit operations + on x86_64 no longer require linking with compiled library. + + DateTime: Fixed an integral overflow that could cause incorrect + results when adding or subtracting many years from a date. + + Format: New format specifiers added and volatile arguments + can not be safely used with operator%% + + Fusion: + * fix compile error with std::array + * remove circular preprocessor include + + PolyCollection: backported to GCC 4.8 and 4.9 with some + limitations + + Uuid: added RTF-4122 namespaces in boost::uuids::ns + + for complete changelog, see + http://www.boost.org/users/history/version_1_66_0.html +- refreshed patches: boost-rpmoptflags-only.patch +* Wed Nov 29 2017 adam.majer@suse.de +- re-enable Python 2 by default. It's still conditional, but + remains enabled by default. This can be disabled in project + config. +* Tue Oct 24 2017 jmatejek@suse.com +- build Python 2 conditionally +* Tue Oct 10 2017 adam.majer@suse.de +- Use multibuild setup - build no-dependency libraries in the + base package and build the rest of the compiled libraries in + the main variant. This should speed up bootstrapping. +- boost-devel not built by default anymore. +- libboost_headers-devel now provides boost-devel for legacy + dependencies. If you need compiled boost libraries depend on + the current compiled devel subpackage. +- run %%fdupes only on the header files and documentation +- drop build dependencies on gcc-fortran, chrpath. +* Mon Oct 9 2017 nmoreychaisemartin@suse.com +- Setup MPI environment prior to building boost. +- Switch to OpenMPI2 as OpenMPI1 is becoming deprecated. +* Wed Sep 20 2017 adam.majer@suse.de +- New upstream version 1.65.1 + + config, fiber - Return a continuation from functions executed + by resume_with. + + stacktrace - Change preprocessor file extensions to work with + the installation system. +- Changes in version 1.65.0 + + stacktrace - new library providing call sequence in human + readable format. + + polycollection - new library providing fast containers of + polymorphic objects, from Joaquín M López Muñoz. + + For full list of changes, see + http://www.boost.org/users/history/version_1_65_1.html +- 1d862615.patch: upstreamed and removed +- gcc_path.patch: obsolete, tr1 module is removed +- mpi_upstream.patch: upstreamed and removed +- boost-1.57.0-python-abi_letters.patch: refreshed +- python_library_name.patch: refreshed and reverted upstream + changes to mpi/build/Jamfile as we are building python2 and + python3 versions of MPI separately. +- baselibs.conf + + add libboost_stracktrace + + update to version 1.65.1 +* Tue May 9 2017 adam.majer@suse.de +- 1d862615.patch: Fix regression caused by refactoring of + serialization code (bnc#1038083) +* Mon May 8 2017 adam.majer@suse.de +- make python-numpy optional build dependency +- fix building of mpi python3 plugin +* Thu Apr 20 2017 adam.majer@suse.de +- New upstream version 1.64.0 + + process - new library providing cross platform methods to + - create child processes + - setup stream for child processes + - sync and async communication streams with children + - sync and async wait + - process termination + + geometry library had some breaking changes, + - ublas_transformer is renamed to matrix_transformer + - explicit modifier is added to constructors of rtree + index::dynamic_* parameters + - strategy::area::huiller replaced by strategy::area::spherical + + context library updates + - deprecated API:execution-context + - fixed bad assembly for fcontext on ppc64/sysv/elf + + Updated libraries: any, atomic, config, container, context, + conversion, core, coroutine2, fiber, hash, interprocess, + intrusive, lexicalcast, math, multi-index containers, + multiprecision, predef, program options, regex, smart pointers, + test ,typeindex, typetraits, unordered, variant + + for details, see + http://www.boost.org/users/history/version_1_64_0.html +- Build PyNumpy module + + add build requires on python-numpy +- test_lowcase.patch: upstreamed +- refreshed patches: boost-strict_aliasing.patch, gcc_path.patch, + python_mpi.patch +- mpi_upstream.patch: pending upstream fixes to OpenMPI build +- python_library_name.patch: we are building python versions in + different stagings so drop library renames. +- python_numpy_retfunc.patch: rpmlint fixes +* Fri Feb 10 2017 jmatejek@suse.com +- update python macros +* Fri Feb 3 2017 adam.majer@suse.de +- baselibs.conf: (re)add python 2.7 and 3.x libraries +* Wed Jan 25 2017 adam.majer@suse.de +- Fix dependency typos. +* Tue Jan 17 2017 adam.majer@suse.de +- test_lowcase.patch: downcase Boost::Test usage of uppercase + variables. VERSION was clashing with GNU Autotools define + resulting in compilation errors of various packages. +- recombine headers from various devel subpackages under the + libboost_headers-devel package. Not all usage of headers that + have compiled parts pull in their associated compiled symbols. +- general cleanup of the spec file from old, commented stuffs +* Sun Jan 15 2017 adam.majer@suse.de +- remove non-existent dependency in the boost mpi python package +* Wed Jan 4 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 + * add python_mpi.patch to allow proper compiled library loading +- dynamic_linking.patch: first attempt to remove static library + generation during build process. +* Tue Nov 8 2016 adam.majer@suse.de +- Revert upstream change that set default python version and + ignored user configuration. + python-2059618.patch (boo#1006584) +* Thu Nov 3 2016 jengelh@inai.de +- Rectify groups and description +* Fri Sep 30 2016 adam.majer@suse.de +- package boost-jam +- add missing ldconfig for libboost_type_erasure +- fix EOL encoding for documentation files +* Thu Sep 29 2016 adam.majer@suse.de +- update to version 1.62.0 + * new library: fiber: framework for userland-threads/fibers + * new library: QVM: library for working with quaternions, + vectors and matrices of static size + * see http://www.boost.org/users/history/version_1_62_0.html + for complete changelog +- remove boost-fix_include_config.patch - upstreamed +- gcc_path.patch - fix GCC search paths (bnc#996917) + Boost assumes /usr/include/c++/x.y.z/ existence for GCC 4.x + onward while our version of GCC only has /usr/include/c++/x.y + for 4.x GCC and /usr/include/c++/x/ for 5.x onward. +- migrate to using %%bcond_ instead of hardcoding macros + for different Boost features +- better way to limit max number of compilation units than + by reading /proc/meminfo and guesstimating. +* Thu Aug 18 2016 mvetter@suse.com +- Fix boo#994378, boo#994381, boo#994382 boo#994383: + Fix build issues when optional_fwd.hpp is used before + including boost/config.hpp +- Add boost-fix_include_config.patch from + gh#boostorg/optional#19 +* Fri Aug 12 2016 adrian@suse.de +- build it from "boost.spec", but create versioned "boost-1_61-devel" + packages +* Fri Jun 17 2016 adrian@suse.de +- build quickbook also in versioned package +* Tue Jun 14 2016 adrian@suse.de +- update to version 1.61.0 + Details on http://www.boost.org/users/history/version_1_61_0.html + Obsolete patches: + * boost-1.59-test-fenv.patch + * boost-deprecated-type_traits.patch +* Tue Jun 14 2016 adrian@suse.de +- rename package to boost-1_60 to allow multiple versions +* Tue Mar 29 2016 dmitry_r@opensuse.org +- Fix build on systems with GCC4 +* Sun Feb 14 2016 egeorget@openmailbox.org +- Added libboost_python3 to the dependency macro. + * boost-devel will now correctly requires libboost_python3. +* Mon Jan 18 2016 idonmez@suse.com +- Add boost-deprecated-type_traits.patch to fix deprecated + type_traits usage in boost/graph/adjacency_matrix.hpp header. +* Mon Jan 4 2016 idonmez@suse.com +- Add the following patches from Fedora to fix underlinking in + boost::python code + * boost-1.57.0-python-abi_letters.patch + * boost-1.57.0-python-libpython_dep.patch + * boost-1.55.0-python-test-PyImport_AppendInittab.patch +* Wed Dec 23 2015 fstrba@suse.com +- Updated to version 1.60.0 + * New library: VMD. + * Updated libraries: Atomic, Chrono, Container, Context, Core, + Filesystem, Flyweight, Fusion, Interprocess, Intrusive, Lexical + Cast, Locale, log, Move, Multi-index Containers, odeint, + Optional, Predef, Test, Thread, UUID + * See http://www.boost.org/users/history/version_1_60_0.html for + complete changelog. +- Modified patch: + * boost-disable-pch-on-aarch64.patch + - rediff to a new context +- Removed patch: + * boost-1.59-python-make_setter.patch + - integrated upstream +- Add libboost_type_erasure subpackage +* Sun Dec 13 2015 egeorget@openmailbox.org +- Add support to Boost:Python3 (boo#951902) + * New library: python3 +* Tue Dec 8 2015 pth@suse.de +- Add boost-visibility.patch to make members of basic_xml_grammar + visible (boo#958150). +- Fix redefinition of _docdir. +* Thu Nov 26 2015 schwab@suse.de +- coroutine2 depends on context, disable it if context is not built +* Fri Oct 23 2015 idonmez@suse.com +- Updated to version 1.59.0: + * New libraries: Convert, Coroutine2 + * Updated Libraries: Container, Context, Coroutine, Fusion, + Geometry, Interprocess, Intrusive, Lexical Cast, Log, Move, + Multi-index Containers, Predef, Program Options, Property Tree, + Boost.Test v3, TypeIndex, Variant + * See http://www.boost.org/users/history/version_1_59_0.html for + complete changelog. +- context now builds on aarch64 +- Import two patches from Fedora: boost-1.59-python-make_setter.patch, + boost-1.59-test-fenv.patch +- Drop 0001-Fix-exec_file-for-Python-3-3.4.patch, + 0002-Fix-a-regression-with-non-constexpr-types.patch, + boost-uuid-comparison.patch, boost-unrecognized-option.patch. + Fixed upstream. +* Thu Jun 11 2015 idonmez@suse.com +- Remove unneeded dependency on xorg-x11-devel +* Thu May 21 2015 schwab@suse.de +- boost-unrecognized-option.patch: remove unrecognized option -m32 +* Sat May 9 2015 dmueller@suse.com +- update to 1.58.0: + boost docs remain at 1.56 since upstream hasn't updated yet + * New Libraries: Endian, Sort. + * Updated Libraries: Asio, Chrono, Container, Context, Conversion, + DateTime, Flyweight, Function, Functional/Factory, Fusion, Geometry, + Hash, Interprocess, Intrusive, Lexical Cast, Log, Math, Move, + Multi-index Containers, Multiprecision, Optional, Phoenix, + Predef, Random, Thread, TypeErasure, TypeIndex, Units, + Unordered, Variant. + See http://www.boost.org/users/history/version_1_58_0.html +- add 0001-Fix-exec_file-for-Python-3-3.4.patch , + 0002-Fix-a-regression-with-non-constexpr-types.patch: Fixes regressions + in 1.58 +- drop bjam-alignment.patch, boost-gcc5.patch: Already fixed upstream + differently +- add boost-rpmoptflags-only.patch: Build only with optflags +- add boost-aarch64-flags.patch: Avoid using -m64 +- add boost-uuid-comparison.patch: Fix regression in UUID operator< +- add boost-disable-pch-on-aarch64.patch: Disable pch on math library + to avoid compiler segfault +* Mon Mar 9 2015 rneuhauser@suse.cz +- Add quickbook subpackage +* Mon Feb 23 2015 rguenther@suse.com +- Use $RPM_OPT_FLAGS for building, force use of the GCC toolset. + Be more verbose and fail building with the first error. +- Add boost-gcc5.patch to use -std=c++11 when building the coroutines + module which fixes build with GCC 5. +* Fri Dec 5 2014 dimstar@opensuse.org +- Revert the python3 building: it resulted in BOTH libboost_python + libraries to be using python 3 instructions, resulting in + failures of all Py2 related packages. +* Thu Oct 2 2014 michael.hamann@kit.edu +- Added boost_python3 for boost 1.56.0, config based on + https://projects.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/boost +* Sat Sep 27 2014 dmitry_r@opensuse.org +- Update documentation tarball (source was changed) +- Fix aarch64 build +* Thu Aug 14 2014 dmitry_r@opensuse.org +- Update to version 1.56.0. Major changes since 1.54.0: + New libraries: + * Predef: This library defines a set of compiler, architecture, + operating system, library, and other version numbers from the + information it can gather of C, C++, Objective C, and Objective + C++ predefined macros or those defined in generally available + headers, from Rene Rivera. + * Align: Memory alignment functions, allocators, and adaptors. + * Type_Index: Runtime/Compile time copyable type info. + For a detailed descriptions see: + http://www.boost.org/users/history/version_1_56_0.html + http://www.boost.org/users/history/version_1_55_0.html +- Rebase boost-thread.patch +- Rabase boost-use_std_xml_catalog.patch +- Rebase bjam-alignment.patch +- Remove obsolete boost-glibc-2.18.patch +- Remove obsolete boost-1.54-001-coroutine.patch +- Remove obsolete boost-1.54-002-date-time.patch +- Remove obsolete boost-1.54-003-log.patch +- Remove obsolete boost-1.54-change85160.patch +- Remove obsolete boost-1.54.0-thread-link_atomic.patch +- Remove obsolete boost-ppc64-abiv2-context.patch +- Remove obsolete boost-ppc64-abiv2-coroutine.patch +- Remove outdated man pages boost_1_54_man.tar.bz2 +* Wed Jul 30 2014 coolo@suse.com +- add baselibs.conf as source +* Tue Jul 22 2014 fcrozat@suse.com +- Ensure there is enough disk space available for build. +* Tue Jul 22 2014 fcrozat@suse.com +- use only JOBS=2 to avoid gcc being killed with OOM when memory is + between 4G and 7G. +* Tue Apr 29 2014 dvaleev@suse.com +- ppc64 ABIv2 support +- enable build_context for ppc64le +- added patches: + * boost-ppc64-abiv2-context.patch + * boost-ppc64-abiv2-coroutine.patch +* Sat Apr 19 2014 schwab@suse.de +- Fix quoting while creating shared build instructions +- Properly configure library list +- bjam-alignment.patch: fix alignment check in bjam +* Tue Apr 1 2014 coolo@suse.com +- buildignore python, python-base is enough +* Tue Mar 11 2014 Rene.vanPaassen@gmail.com +- further improved the use of supplied b2 / bootstrap.sh, + include user-config.jam, and remove superfluous python + and gcc instructions from user-config.jam +* Mon Mar 10 2014 Rene.vanPaassen@gmail.com +- fix problem with executable .pdf in doc by correcting + permissions after install (%%attr with a dir failed on + sled/sles) +- add dependency on zlib-devel and libbz2-devel and use the + supplied bootstrap.sh script in building. This adds + on-the-fly compression to boost-iostreams +* Thu Feb 27 2014 coolo@suse.com +- remove broken python module mpi.so +- trying to make the build more reliable: + * use -fno-var-tracking in cxxflags as recommended by richi + * disable parallel build on low memory +* Sat Feb 8 2014 pth@suse.de +- Add post and postun sections for libboost_graph_parallel. +* Fri Feb 7 2014 ro@suse.de +- add boost-1.54.0-thread-link_atomic.patch fixing upstream issue + https://svn.boost.org/trac/boost/ticket/9041 + (fixes compilation failure of snapper on various platforms) +* Wed Feb 5 2014 ro@suse.de +- enable build_mpi on s390/s390x +* Tue Jan 7 2014 schwab@suse.de +- Disable coroutine library together with context +* Sat Jan 4 2014 coolo@suse.com +- fix build of libzypp - patch from boost's track +- added patches: + * boost-1.54-change85160.patch +* Tue Nov 26 2013 tbehrens@suse.com +- Add boost-pool_check_overflow.patch: Prevent possible overflow when + calculating the amount to malloc (bnc#765443). + Fix from https://svn.boost.org/trac/boost/ticket/6701 +* Sun Oct 20 2013 jengelh@inai.de +- Split libboost_graph so that the MPI components are not forced +* Wed Sep 18 2013 dap.darkness@gmail.com +- Update to 1.54.0. Major changes since 1.53.0: + New libraries: + * Log: Logging library, from Andrey Semashev. + * TTI: Type Traits Introspection library, from Edward Diener. + * Type Erasure: Runtime polymorphism based on concepts. + For a detailed descriptions see + http://www.boost.org/users/history/version_1_54_0.html +- Update broken patch: + * boost-use_std_xml_catalog.patch +- Delete merged patch: + * boost-fix_ppc64_asm.patch +- Add post-release fix patches: + * boost-1.54-001-coroutine.patch + * boost-1.54-002-date-time.patch + * boost-1.54-003-log.patch +- build_pdf define was deleted as unused; + package_pdf was refactored. +- _constraints was added to request more memory to build. +* Sun Aug 18 2013 tchvatal@suse.com +- Fix build with updated glibc: + * boost-glibc-2.18.patch - taken from upstream scm +* Sat Jun 8 2013 schwab@suse.de +- Build context library only on supported architectures +- Reenable mpi on aarch64 +- Avoid duplication between %%build and %%install +* Wed Apr 3 2013 pth@suse.de +- Apply upstream patch that fixes the ppc64 code in boost::context + (boost#8374): boost-fix_ppc64_asm.patch +* Fri Mar 22 2013 idonmez@suse.com +- Rename manpages to avoid conflict with other packages +* Thu Mar 21 2013 mmeister@suse.com +- Added url as source. + Please see http://en.opensuse.org/SourceUrls +* Sat Mar 16 2013 dap.darkness@gmail.com +- Update to 1.53.0. Major changes since 1.49.0: + New libraries: + * Algorithm: A collection of useful generic algorithms. + * Context: Context switching library. + * Functional/OverloadedFunction: Overload different functions. + * LocalFunction: Program functions locally, within other functions. + * Utility/IdentityType: Wrap types within round parenthesis. + For a detailed descriptions see + http://www.boost.org/users/history/version_1_50_0.html + http://www.boost.org/users/history/version_1_51_0.html + http://www.boost.org/users/history/version_1_52_0.html +- Delete unneeded patches: + * boost-chrono_add_function_return.patch + * boost-fix_documentation.patch + * boost-time_utc.patch +* Wed Feb 27 2013 dmueller@suse.com +- build without openmpi on aarch64 for now +* Wed Jan 23 2013 BSipos@rkf-eng.com +- Require package for ICU having same minimum version that the build requires. +- Avoid obsoleting older versions of boost documentation to allow multiple boost package versions in same environment. +* Thu Jan 17 2013 opensuse@dstoecker.de +- use bzip2 instead of xz to support older SUSE releases +* Thu Sep 6 2012 cfarrell@suse.com +- license update: BSL-1.0 + Boost Software License 1.0 is available in SPDX format on + http://www.spdx.org/licenses as BSL-1.0 +* Thu Aug 2 2012 aj@suse.de +- Add patch from upstream to use TIME_UTC_ instead of TIME_UTC since + the later is part of ISO C11. +* Fri May 18 2012 aj@suse.de +- Fix timer post script, it used the comment as content. +* Fri May 11 2012 coolo@suse.com +- fixing the previous fix +* Wed May 9 2012 coolo@suse.com +- fixing baselibs.conf after version bump +* Sat Mar 17 2012 jengelh@medozas.de +- Adjust Require for new libxslt-tools +* Tue Mar 13 2012 pth@suse.de +- Update to 1.49.0. Major changes since 1.46.1: + New libraries: + * Heap. + * Container + * Locale + * Move + * Chrono + * Geometry + * Phoenix + * Ratio + For a detailed descriptions see + http://www.boost.org/users/history/version_1_47_0.html + http://www.boost.org/users/history/version_1_48_0.html + http://www.boost.org/users/history/version_1_49_0.html +- Rebuilt the man documentation with gcc 4.5 as the current gcc + segfaults when building quickbook. +- Package PDF documentation independent of whether we build it + ourselves. +- Fix missing function return in Boost::Chrono's process_cpu_clocks.hpp +* Mon Feb 13 2012 coolo@suse.com +- patch license to follow spdx.org standard +* Tue Dec 6 2011 aj@suse.de +- Do not package NEWS and LICENSE twice. +* Fri Nov 25 2011 jengelh@medozas.de +- Remove redundant/unwanted tags/section (cf. specfile guidelines) +* Thu Nov 24 2011 nadvornik@suse.com +- dropped visit_each patch (bnc#714373) +* Mon Oct 3 2011 dmueller@suse.de +- disable openmpi on %%%%arm +* Mon Apr 18 2011 ro@suse.de +- update baselibs.conf +* Mon Mar 21 2011 idoenmez@novell.com +- Fix attribute handling problem in spirit library, + See http://comments.gmane.org/gmane.comp.parsers.spirit.general/22073 +* Mon Mar 21 2011 pth@suse.de +- Prefix bug numbers. +* Fri Mar 18 2011 pth@suse.de +- Make packaging of the pdf documentation configurable. +* Fri Mar 18 2011 pth@suse.de +- Update to 1.46.1, a bugfix release: + • Asio: + - EV_ONESHOT seems to cause problems on some versions of Mac OS X, with + the io_service destructor getting stuck inside the close() system call. + Changed the kqueue backend to use EV_CLEAR instead (boost#5021). + - Fixed compile failures with some versions of g++ due to the use of + anonymous enums (boost#4883). + - Fixed a bug on kqueue-based platforms, where some system calls that + repeatedly fail with EWOULDBLOCK are not correctly re-registered with + kqueue. + - Changed asio::streambuf to ensure that its internal pointers are + updated correctly after the data has been modified using std::streambuf + member functions. + - Fixed a bug that prevented the linger socket option from working on + platforms other than Windows. + For the rest see NEWS or the boost web site http://www.boost.org +* Wed Mar 16 2011 pth@suse.de +- Remove comment chars from doc-pdf description. +* Mon Mar 14 2011 pth@suse.de +- Use xz to compress tarballs. +- Generate new man pages tarball. +- Update pdf tarball. +- Update to 1.46: + New Libraries + Icl: Interval Container Library, interval sets and maps and + aggregation of associated values, from Joachim Faulhaber. + For the rest of the changes see NEWS in the package documentation + directory or see http://www.boost.org/users/news/version_1_46_0 . +* Thu Nov 25 2010 pth@suse.de +- Remove the boost specific autoconf macros now that we have the + complete autoconf archive packaged (bnc#655747). +- Move the lib64 patch over to autoconf-archive. +* Mon Oct 25 2010 jslaby@novell.com +- take care of random library (build 32bit on x86_64 and + require it in boost-devel) +* Wed Sep 29 2010 coolo@novell.com +- fix baselibs.conf +* Fri Sep 3 2010 pth@suse.de +- Shorten the list of update items. +- Fix typo in spec. +* Thu Aug 26 2010 pth@suse.de +- Redo the lib64 patch for the boost autoconf macros so that + lib64 is used on all archs that need it. +- Remove the ICU patch. +* Thu Aug 26 2010 pth@suse.de +- Update to 1.44.0: + New Libraries: + * Meta State Machine: High-performance expressive UML2 finite + state machines + * Polygon: Booleans/clipping, resizing/offsetting and more for + planar polygons with integral coordinates + Updated Libraries: + * Accumulators: + * Asio: + * Foreach: + * Fusion: + * Hash: + * Math: + * MPL: + * Multi-index Containers: + * Proto: + * Regex: + * Thread: + * Type Traits: + * uBLAS: + * Utility: + * Uuid: + * Config: + * Xpressive: + * Filesystem: + o This release contains both version 2 and version 3 of the + library. Version 3 is a major upgrade that will break some + existing user code, so version 2 is the default. Users are + encouraged to migrate to version 3. See 'Version 2' and + 'Version 3' for more information. + * Iostreams: + o Several fixes for file descriptors class, including a + breaking change to the constructors and open methods for + file_descriptor, file_descriptor_source and + file_descriptor_sink. See the documentation for details. + The old methods are still available if you define + BOOST_IOSTREAMS_USE_DEPRECATED + * Spirit: Spirit V2.4, see the 'What's New' section for details. + * System: + o Change system_category and generic_category to functions, to + conform to the C++0x FCD. This change may cause compile + errors some user code; the fix is add "()" to references to + system_category and generic_category, so that they become + function calls. + * Wave: See the Changelog for details. + Major Changes in 1.43.0: + New Libraries + * Functional/factory: Function objects for dynamic and by-value + construction + * Functional/forward: Function object adapters to address the + forwarding problem + For a complete list of changes see + http://www.boost.org/users/news/version_1_43_0 and + http://www.boost.org/users/news/version_1_44_0. +* Fri Jul 9 2010 pth@suse.de +- Rename patch to be identical to the one checked in for 11.3. + The patch adds an explicite specialization to the call to prevent + unwanted temporary instantiations. +* Fri Jul 9 2010 lnussel@suse.de +- fix bug that shows with gcc 4.5 (bnc#621140) +* Wed Jun 16 2010 pth@suse.de +- Noarch sub packages only doable from 11.2 on up. +* Thu Jun 10 2010 wittemar@googlemail.com +- build 32bit-packages +* Mon May 24 2010 bg@novell.com +- disable long double support for hppa +* Thu May 20 2010 bg@novell.com +- openmpi does not build on hppa +* Thu Apr 29 2010 pth@novell.com +- Move provides/obsoletes for boost-license to the right section + (bnc#544958). +* Mon Apr 26 2010 pth@novell.com +- Delete unneeded patches. +* Wed Apr 14 2010 pth@suse.de +- Readd those patches that are still needed. +- Try to fix an aliasing bug in function_base.hpp +- Build man pages locally and only include them as a tarball. +- Split documentation in in format specific packages. +* Fri Apr 2 2010 freespacer@gmx.de +- update to 1.42.0: + New Libraries + * Uuid: A universally unique identifier, from Andy Tompkins. + Updated Libraries (see README for details) + * Asio: + * Circular Buffer: + * Fusion: + * Graph: + * Integer: + * Iostreams: + * Program.Options: + * PropertyMap: + * Proto: + * Regex: + * Spirit: + * Unordered: + * Xpressive: +- update to 1.41.0: + New Libraries + * Property Tree: A tree data structure especially suited to storing + configuration data, from Marcin Kalicinski and Sebastian Redl. + Updated Libraries (see README for details) + * DateTime: + * Filesystem: + * Iostreams: + * Math: + * Multi-index Containers: + * Proto: + * Regex: + * Spirit: + * System: + * Thread: + * Unordered: + * Utility: + * Wave: + * Xpressive: +- update to 1.40.0: + Updated Libraries (see README for details) + * Accumulators: + * Asio: + * Circular Buffer: + * Foreach: + * Function: + * Fusion: + * Graph: + * Hash: + * Interprocess: + * Intrusive: + * MPL: + * Program.Options: + * Property Map: + * Proto: + * Random: + * Serialization: + * Unordered: + * Xpressive: +- removed patches no longer needed +* Wed Jan 6 2010 jengelh@medozas.de +- documentation change needed to be done in boost.spec.in + (not boost.spec) +- openmpi change was missing too; add it now +* Tue Dec 15 2009 jengelh@medozas.de +- add baselibs for SPARC +- add baselibs.conf as a source +- deactivate use of openmpi on SPARC, as compat-dapl is not + available +- package documentation as noarch +* Mon Oct 19 2009 pth@suse.de +- Provide/Obsolete boost-license (bnc#544958) +* Thu Aug 6 2009 pth@suse.de +- Add a fix from boost bugtracker that fixes the hash resizing + (boost#54376) +- Add a test for cancelling deadline timers from the same changeset. +* Tue Aug 4 2009 pth@suse.de +- Readd the patch to fix the misplaced ifdef in + template_function.hpp:move_assign. +* Tue Jul 28 2009 coolo@novell.com +- update to 1.39.0: + New Libraries + * Signals2: Managed signals & slots callback implementation (thread-safe version 2), + from Frank Mori Hess. + Updated Libraries (see README for details) + * Asio: + * Flyweight: + * Foreach: + * Hash: + * Interprocess: + * Intrusive: + * Program.Options: + * Proto: + * PtrContainer: + * Range: + * Unordered: + * Xpressive: +- removed patches no longer needed (hoping the best for ppc asm) +* Thu Apr 16 2009 crrodriguez@suse.de +- as agreed with maintainer, get rid of static libraries +* Wed Apr 15 2009 ro@suse.de +- buildfix: fix typo in specfile +* Mon Mar 16 2009 pth@suse.de +- Don't rely on system default mpi implementation being set. This + fixes building boost on systems before openSUSE 11.0. +* Tue Mar 3 2009 pth@suse.de +- Fix misplaced ifdef in template_function.hpp:move_assign. Fixes + building software that defines BOOST_NO_EXCEPTION (bnc#479659). +* Wed Feb 25 2009 pth@suse.de +- Fix packaging of the documentation. +* Sun Feb 22 2009 pth@suse.de +- Fix the line in the spec that copies the documentation. +* Fri Feb 20 2009 pth@suse.de +- Put the license in a versioned package. This allows installing + libraries in parallel (bnc#477603). +* Fri Feb 13 2009 pth@suse.de +- Fix spec file (remove patches). +* Wed Feb 11 2009 pth@suse.de +- Add boost autoconf macros from the autoconf archive to the + - devel package. +- Update to 1.38.0: + New Libraries + * Flyweight: + o Design pattern to manage large quantities of highly redundant + objects, from Joaquín M López Muñoz. + * ScopeExit: + o Execute arbitrary code at scope exit, from Alexander Nasonov. + * Swap: + o Enhanced generic swap function, from Joseph Gauterin. + Updated Libraries + * Accumulators: + o Add rolling_sum, rolling_count and rolling_mean accumulators. + * Any: + o Use a by-value argument for operator= (#2311). + * Asio: + o Improved compatibility with some Windows firewall software. + o Ensured arguments to windows::overlapped_ptr::complete() are + correctly passed to the completion handler (#2614). + o Drop back to using a pipe for notification if eventfd is not + available at runtime on Linux (#2683). + o Various minor bug and documentation fixes (#2534, #2541, + [#2607], #2617, #2619) + * Config: + o Add new macros BOOST_NO_STD_UNORDERED and + BOOST_NO_INITIALIZER_LISTS. + o Added Codegear compiler support. + o Added Dragonfly to the BSD family of configs. + o Recognise latest compilers from MS and Intel. + * Date_Time: + o Added support for formatting and reading time durations longer + than 24 hours with new formatter: %%0. + o Removed the testfrmwk.hpp file from the public include directory. + o Fixed several bugs and compile errors. + o For full details see the change history + * Exception: + o Improved and more customizable diagnostic_information output. + * Filesystem: + o Fix native(name) test failures on POSIX-like systems. + o Several bugfixes (#2543, #2224, #2531, #1840, #2542). + * Graph: + o Added a new algorithms for Travelling Salesman Problem + approximation (metric_tsp_approx) and resource-constrained + Shortest Paths (r_c_shortest_paths). + o Support for named vertices in adjacency_list. + o A number of bugfixes ( #416, #1622, #1700, #2209, #2392, + [#2460], and #2550) + * Hash: + o boost/functional/detail/container_fwd.hpp has been moved to + boost/detail/container_fwd.hpp. The current location is + deprecated. + o For more detail, see the library changelog. + * Interprocess: + o Updated documentation to show rvalue-references functions + instead of emulation functions. + o More non-copyable classes are now movable. + o Move-constructor and assignments now leave moved object in + default-constructed state instead of just swapping contents. + o Several bugfixes (#2391, #2431, #1390, #2570, #2528). + * Intrusive: + o New treap-based containers: treap, treap_set, treap_multiset. + o Corrected compilation bug for Windows-based 64 bit compilers. + o Corrected exception-safety bugs in container constructors. + o Updated documentation to show rvalue-references functions + instead of emulation functions. + * Lexical Cast: + o Changed to work without RTTI when BOOST_NO_TYPEID is defined + (#1220). + * Math: + o Added Johan Råde's optimised floating point classification routines. + o Fixed code so that it compiles in GCC's -pedantic mode (bug report #1451). + * Multi-index Containers: + o Some redundant type definitions have been deprecated. Consult the + library release notes for further information. + * Proto: + o Fix problem with SFINAE of binary operators (Bug 2407). + o Fix proto::call transform for callable transforms with >3 arguments. + o result_of::value changed behavior for array-by-value terminals. + o unpack_expr requires only Forward Sequences rather than Random Access + Sequences. + o Deprecate legacy undocumented BOOST_PROTO_DEFINE_(VARARG_)FUNCTION_TEMPLATE + macros. + o Add BOOST_PROTO_REPEAT and BOOST_PROTO_LOCAL_ITERATE macros to help with + repetitive code generation + o Support for nullary expressions with tag types other than + proto::tag::terminal + o Allow 0- and 1-argument variants of proto::or_ and proto::and_ + * Regex: + o Breaking change: empty expressions, and empty alternatives are + now allowed when using the Perl regular expression syntax. + This change has been added for Perl compatibility, when the + new syntax_option_type no_empty_expressions is set then the + old behaviour is preserved and empty expressions are + prohibited. This is issue #1081. + o Added support for Perl style ${n} expressions in format strings + (issue #2556). + o Added support for accessing the location of sub-expressions + within the regular expression string (issue #2269). + o Fixed compiler compatibility issues #2244, #2514, and #2458. + * Thread: + o No longer catches unhandled exceptions in threads as this debuggers + couldn't identify the cause of unhandled exceptions in threads. An + unhandled exception will still cause the application to terminate. + * TR1: + o Added support for the TR1 math functions and the unordered + containers. + * Type Traits: + o Added support for Codegear intrinsics. + o Minor tweaks to warning suppression and alignment_of code. + * Unordered: + o Use boost::swap. + o Use a larger prime number list for selecting the number of buckets. + o Use aligned storage to store the types. + o Add support for C++0x initializer lists where they're available. + o For more detail, see the library changelog. + * Xpressive: + o basic_regex gets nested syntax_option_flags and value_type typedef, + for compatibility with std::basic_regex + o Ported to Proto v4; Proto v2 at boost/xpressive/proto has been + removed. + o regex_error inherits from boost::exception + Other Changes + * Experimental support for building Boost with CMake has been introduced in + this version. For more details see the wiki, Discussion is taking place + on the Boost-cmake mailing list. + * Fixed subversion properties for several files. Most notably, unix shell + scripts should always have unix line endings, even in the windows + packages. +* Fri Jan 9 2009 pth@suse.de +- Apply patch in boost.spec.in +* Thu Jan 8 2009 pth@suse.de +- Actually use the patch. +* Wed Jan 7 2009 pth@suse.de +- Initialize all data passed in the syscall to keep valgrind + happy (bnc#461372). +* Thu Dec 11 2008 ro@suse.de +- fix baselibs.conf (no requirement for boost-xxbit) + (bnc#457699) +* Thu Nov 27 2008 ro@suse.de +- update baselibs.conf +- package mpi.so only in mpi package, not in devel +* Wed Nov 19 2008 jjolly@suse.de +- Made the use of the mpi-selector conditional for mpi-enabled + platforms. +* Tue Nov 11 2008 ro@suse.de +- SLE-11 uses PPC64 instead of PPC, adapt baselibs.conf +* Fri Oct 31 2008 pth@suse.de +- Fix the bug that made boost.monitor mix up uid and pib and + also make boost.monitor not special-case SIGCLD (bnc#439805) +- Fix generation of default extension in boost.filesystem. +- Make boost recommend library subpackages instead of requiring + them to allow removal of unwanted libraries after update. +- Run mkspec explicitely in a shell so that mkspec.sh doesn't + need to be executable. +- Disable deletion of full-name symlinks in boost.spec.in. +- Make boost-devel directly require all library subpackages. +- boost.rpm isn't needed, even for updates, so don't build it and + remove the README file needeed only for this package. +- Make debug package require all library subpackages. +- Add pre_checkin.sh to ensure that boost.spec is regenerated + at check-in time. +- Make boost.build use sane library names. Only the multi-threaded + libraries are built and these have no -mt in their name. + Symlinks for convenience are spupplied. +- Use -fno-strict-aliasing only for boost.python, where it's needed. +- Don't use configure and make (only convenience wrappers) but + call bjam directly. +* Mon Oct 27 2008 ro@suse.de +- do not remove full-name symlinks for shared libs +* Thu Oct 23 2008 pth@suse.de +- Use a script and a Makefile to generate boost.spec. +- Pull in all libraries on update. +- Modify README to apply to both openSUSE and SLE. +* Thu Oct 23 2008 ro@suse.de +- fix regexp for short symlinks +- hook all mpi related parts to build_mpi macro +- disable build_mpi on ia64 s390 s390x for the moment +* Fri Oct 17 2008 pth@suse.de +- Using a rpm macros in package name doesn't work with autobuild. +* Wed Oct 15 2008 pth@suse.de +- Fix naming of library packages to match the horribly broken + sonames of the boost libraries. +- Add post/postun for all library packages. +- Stop rpmlint warning about explicit library dependencies + needed to pull in all library subpackages during updates. +* Tue Oct 14 2008 pth@suse.de +- Fix build failure (README not in build directory). +* Tue Sep 2 2008 pth@suse.de +- Split off runtime libraries into their own packages. +- Update to 1.36.0: + New Libraries + * Accumulators: Framework for incremental calculation, and + collection of statistical accumulators. + * Exception: A library for transporting of arbitrary data in + exception objects, and transporting of exceptions + between threads. + * Units: Zero-overhead dimensional analysis and unit/quantity + manipulation and conversion. + * Unordered: Unordered associative containers. + Updated Libraries + * Asio: + o Added support for serial ports. + o Added support for UNIX domain sockets. + o Added support for raw sockets and ICMP. + o Added wrappers for POSIX stream-oriented file descriptors + (excluding regular files). + o Added support for reactor-style operations using a new + null_buffers type. + o Added an iterator type for bytewise traversal of buffer + sequences. + o Added new read_until() and async_read_until() overloads that + take a user-defined function object for locating message + boundaries. + o Added an experimental two-lock queue (enabled by defining + BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE) that may provide better + io_service scalability across many processors. + o Various fixes, performance improvements, and more complete + coverage of the custom memory allocation support. + * Assign:list_of() (and its variants) now has overloaded comparison + operators. This allows you to write test code such as + BOOST_CHECK_EQUAL(my_container,list_of(2)(3)(4)(5));. + * Foreach:BOOST_FOREACH macro for easily iterating over the elements + of a sequence. + o New BOOST_REVERSE_FOREACH macro for iterating over a sequence + in reverse. + * Function: + o Improved allocator support. + * Hash: Minor updates and fixes, for more info see the change log. + * Interprocess: + o Added anonymous shared memory for UNIX systems. + o Fixed missing move semantics on managed memory classes. + o Added copy_on_write and open_read_only options for shared + memory and mapped file managed classes. + o shared_ptr is movable and supports aliasing. + * Intrusive: + o Added linear<> and cache_last<> options to singly linked lists. + o Added optimize_multikey<> option to unordered container hooks. + o Optimized unordered containers when store_hash option is used + in the hook. + o Implementation changed to avoid explicit use of try-catch + blocks and be compilable with exceptions disabled. + * Math: + o Added new non-central Chi-Square, Beta, F and T distributions. + o Added Exponential Integral and Zeta special functions. + o Added Rounding, Truncation, and Unit-in-the-last-place + functions. + o Added support for compile time powers of a runtime base. + o Added a few SSE2 based optimisations for the Lanczos + approximations. + * MPI: + o Added support for non-blocking operations in Python + o Added support for graph topologies. + * Multi-index Containers: Minor additions and maintenance fixes. + Consult the library release notes for + further information. + * PtrContainer: Support for a few more containers, and addition + of insert iterators. For details see upgrading + details. + * Spirit: Integrated the "Classic" Spirit V1.8.x code base with + Spirit V2, "The New Generation". See Change Log. + * Thread: + o New generic lock and try_lock functions for locking multiple + mutexes at once. + o Rvalue reference support for move semantics where the + compilers supports it. + o A few bugs fixed and missing functions added (including + the serious win32 condition variable bug). + o scoped_try_lock types are now backwards-compatible with + Boost 1.34.0 and previous releases. + o Support for passing function arguments to the thread + function by supplying additional arguments to the thread + constructor. + o Backwards-compatibility overloads added for timed_lock and + timed_wait functions to allow use of xtime for timeouts. + * Wave: + o Wave V2.0 is a new major release introducing some breaking + API changes, preventing it to be used with Boost versions + earlier than V1.36.0. Mainly, the API and hook interface + have been streamlined for more consistency. + o Fixed a couple of bugs, improved regression test system to + include testing of the preporcessing hooks interface + (for details see: Changelog). + * Xpressive: + o Regular expressions that can be written as strings or as + expression templates, and that can refer to each other and + themselves recursively with the power of context-free + grammars. + o skip() for specifying which parts of the input sequence + to ignore when matching it against a regex. + o regex_replace() accepts formatter objects and formatter + expressions in addition to format strings. + o Range-based regex_replace() algorithm. + o Fix crash when semantic actions are placed in look-aheads, + look-behinds or independent sub-expressions. +* Mon Jun 23 2008 pth@suse.de +- Qualify name to avoid clash (bnc#401964) +* Fri Jun 20 2008 schwab@suse.de +- Fix ppc atomic ops. +* Thu Apr 10 2008 ro@suse.de +- added baselibs.conf file to build xxbit packages + for multilib support +* Mon Jan 28 2008 schwab@suse.de +- Remove obsolete patch again. +* Fri Jan 18 2008 pth@suse.de +- Fix CVE-2008-0171 and CVE-2008-0171 (bugzilla #353180) +- Qualify special_values_parser (bugzilla #353897) +* Thu Jan 17 2008 schwab@suse.de +- Remove obsolete patch. +* Mon Jan 14 2008 pth@suse.de +- Move 1.34.1 from BS to Autobuild +- Add patch for critical bug in Boost.Function. +- Include C headers where necessary. +- Make the tests for ULONG_MAX more readable 64. +* Wed Oct 24 2007 rguenther@suse.de +- Use -fpermissive in addition to -O2 for building. +- Add patch to enable building wave with GCC 4.3. +* Mon Aug 20 2007 pth@suse.de +- Only use fdupes from 10.3 onwards. +* Sat Aug 11 2007 aj@suse.de +- Fix spec file to build again. +* Thu Aug 9 2007 pth@suse.de +- Add man pages (made for 1.33.1). +- Package html documentation differently. +- Check all links and add missing files that do exist. +- Use %%%%fdupes +- Add patch by rschiele@gmail.com to pass compiler flags into + Boost.build. +- Update to 1.34.1 and use .spec file from bkoz@redhat.com as + a basis. + Changes 1.33.1 -> 1.34.0: + New Libraries: + * Foreach Library: BOOST_FOREACH macro for easily iterating over + the elements of a sequence, + * Statechart Library: Arbitrarily complex finite state machines + can be implemented in easily readable and + maintainable C++ code, + * TR1 Library: An implementation of the C++ Technical Report on Standard + Library Extensions, from John Maddock. This library does + not itself implement the TR1 components, rather it's a + thin wrapper that will include your standard library's + TR1 implementation (if it has one), otherwise it will + include the Boost Library equivalents, and import them + into namespace std::tr1. Highlights include: Reference + Wrappers, Smart Pointers, result_of, Function Object + Binders, Polymorphic function wrappers, Type Traits, + Random Number Generators and Distributions, Tuples, Fixed + Size Array, Hash Function Objects, Regular Expressions, + and Complex Number Additional Algorithms. + * Typeof Library: Typeof operator emulation, from Arkadiy Vertleyb + and Peder Holt. + * Xpressive Library: Regular expressions that can be written as strings + or as expression templates, and that can refer to + each other and themselves recursively with the + power of context-free grammars, from Eric Niebler. + Updated Libraries: + * Assign Library: + o Support for ptr_map via the new function ptr_map_insert() + o Support for initialization of Pointer Containers when the + containers hold pointers to an abstract base class. + * Date_time library: + o Support for new US/Canada timezone rules and other bug fixes. + See Change History for details. + * Filesystem Library: Major upgrade in preparation for submission to the + C++ Standards Committee for TR2. Changes include: + o Internationalization, provided by class templates basic_path, + basic_filesystem_error, basic_directory_iterator, and + basic_directory_entry. + o Simplification of the path interface by eliminating special + constructors to identify native formats. + o Rationalization of predicate function design, including the + addition of several new functions. + o Clearer specification by reference to POSIX, the ISO/IEEE Single + Unix Standard, with provisions for Windows and other operating + systems. + o Preservation of existing user code whenever possible. + o More efficient directory iteration. + o Addition of a recursive directory iterator. + * Function Library: Boost.Function now implements a small buffer + optimization, which can drastically improve the + performance when copying or constructing + Boost.Function objects storing small function + objects. For instance, bind(&X:foo, &x, _1, _2) + requires no heap allocation when placed into a + Boost.Function object. + * Functional/Hash Library + o Use declarations for standard classes, so that the library + doesn't need to include all of their headers + o Deprecated the headers. + o Add support for the BOOST_HASH_NO_EXTENSIONS macro, which + disables the extensions to TR1 + o Minor improvements to the hash functions for floating point numbers. + * Graph Library: + o edmonds_maximum_cardinality_matching, + o lengauer_tarjan_dominator_tree, + o compressed_sparse_row_graph, + o sorted_erdos_renyi_iterator, + o biconnected_components now supports a visitor and named + parameters, + o adjacency_matrix now models the Bidirectional Graph concept. + o dijkstra_shortest_paths now calls vis.initialize_vertex for each + vertex during initialization. + o Note: the name of the compiled library for the GraphViz reader has + changed to boost_graph (from bgl-viz) to match Boost conventions. + o See the complete revision history for more information. + * MultiArray Library: Boost.MultiArray now by default provides + range-checking for operator[]. Range checking can + be disabled by defining the macro + BOOST_DISABLE_ASSERTS before including + multi_array.hpp. A bug in multi_array::resize() + related to storage orders was fixed. + * Multi-index Containers Library: + o New random access indices. + o Non key-based indices feature new rearrange facilities. + o This version also includes a number of optimizations and usage + improvements. For a complete list of changes, see the library + release notes. + * Optional Library: + o boost::none_t and boost::none now added to Optional's + documentation + o Relational operators now directly support arguments of type + 'T' and 'none_t' + o operator->() now also works with reference types. + o Helper functions make_optional(val), make_optional(cond,val) + and get_optional_value_or(opt,alternative_value) added. + o Constructor taking a boolean condition (as well as a value) + added. + o Member function get_value_or(alternative_value) added. + o Incompatbility bug with mpl::apply<> fixed. + o Converting assignment bug with uninitialized lvalues fixed. + * Parameter Library: + o Every ArgumentPack is now a valid MPL Forward Sequence. + o Support for unnamed arguments (those whose keyword is + deduced from their types) is added. + o Support for named and unnamed template arguments is added. + o New overload generation macros solve the forwarding problem + directly. + o See also the Python library changes, below. + * Pointer Container Library: + o Support for serialization via Boost.Serialization. + o Exceptions can be disabled by defining the macro + BOOST_PTR_CONTAINER_NO_EXCEPTIONS before including any header. + This macro is defined by default if BOOST_NO_EXCEPTIONS is defined. + o Additional std::auto_ptr overloads added s.t. one can also + pass std::auto_ptr instead of only T* arguments to member + functions. + o transfer() now has weaker requirements s.t. one can transfer + objects from ptr_container to ptr_container, + * Python Library: + o Boost.Python now automatically appends C++ signatures to + docstrings. The new docstring_options.hpp header is available to + control the content of docstrings. + o stl_input_iterator, for turning a Python iterable object into an + STL input iterator, from Eric Niebler. + o Support for void* conversions is added. + o Integrated support for wrapping C++ functions built with the + parameter library; keyword names are automatically known to + docsstrings. + o Enhancements to the API for better embedding support + (boost::python::import(), boost::python::exec(), and + boost::python::exec_file()). + * Signals Library: More improvements to signal invocation performance. + * Smart Pointers Library: + o Allocator support as proposed in N1851 (162 Kb PDF). + o pointer_cast and pointer_to_other utilities to allow + pointer-independent code, + * String Algorithm Library: + o lexicographical_compare + o join + o New comparison predicates is_less, is_not_greater. + o Negative indexes support (like Perl) in various algorihtms + (*_head/tail, *_nth). + * Wave Library: + o Wave now correctly recognizes pp-number tokens as mandated by + the C++ Standard, which are converted to C++ tokens right before + they are returned from the library. + o Several new preprocessing hooks have been added. For a complete + description please refer to the related documentation page: The + Context Policy. + o Shared library (dll) support has been added for the generated + Wave libraries. + o The overall error handling has been improved. It is now possible + to recover and continue after an error or a warning was issued. + o Support for optional comment and/or full whitespace + preservation in the generated output stream has been added. + o The Wave library now performs automatic include guard + detection to avoid accessing header files more than once, if + appropriate. + o Full interactive mode has been added to the Wave tool. Now the + Wave tool can be used just like Python or Perl for instance to + interactively try out your BOOST_PP macros. Additionally it is + now possible to load and save the current state of an + interactive session (macro tables et.al.). + o The overall performance has been improved by upto 40-60%%, + depending on the concrete files to process. + o Support for new pragmas has been added allowing to control + certain library features from inside the preprocessed sources + (partial output redirection, control of generated whitespace + and #line directives). + o Optional support for #pragma message "..." has been added. + o This version also includes a number of bug fixes and usage + improvements. For a complete list of changes, see the + libraries change log. + Fixes in 1.34.1: + * Fixes for build on IBM pSeries for AIX and Linux + * gcc-4.2 atomicity.h location fixed + * [iostreams] zlib_compressor memory leaks in 1.34.0 + * filtering ostream problem... pushing zlib_compressor works in 1_33, + dies in 1_34 + * [doc] The "Getting Started" page mentions incorrect library names + * [filesystem] missing documentation or bad links + * add missing docs for boost.python API enhancements. + * Entire iostreams library outdated in 1.34.0 + * numeric_limits specializations in limits.hpp are incorrect + * Updated ICU support in Boost.Regex + * Make boost.python compatible with python 2.5 + * ::boost::detail::empty_base improved + * Fix failing uild of libs/python/example/quickstart. + * Fix problems when building Python modules on boost 1.34.0 + * Patches to allow boost 1.34.0 to compile with stricter warning + checking under mac OS and gcc + * Unable to compile Python example, tutorial, or quickstart with + Boost 1_34_0 + * Improper overflow handling in shortest paths algorithms + * Multiple include paths for Python + * Add documentation for the iter_find/split algorithms + * regex_token_iterator crashes + * regex_error exception when quantifying some non-capturing groups + * read_write_mutex docs don't clearly specify that the functionality + is not present +- Remove patches not needed anymore. +- Replace file dupes by symlinks. +- Add rpmlintrc to suppress rpmlint warnings for things that won't be + changed. +* Sun Jul 15 2007 schwab@suse.de +- Fix reference to atomicity.h. +* Sat Mar 24 2007 aj@suse.de +- Add libbz2-devel to BuildRequires. +* Fri Sep 22 2006 pth@suse.de +- Apply patch from community to build with Python 2.5 +* Fri Jul 14 2006 sf@suse.de +- fixed wrong usage of visit_each() (Bug #192116 ) +* Thu Jul 13 2006 sf@suse.de +- fixed link creation to libboost_thread.so, using %%_lib instead + of lib +* Mon Jun 19 2006 jw@suse.de +- added a libboost_thread.so as a symlink to libboost_thread-mt.so +* Tue Apr 4 2006 pth@suse.de +- Add libboost_wave.a to file list +* Tue Apr 4 2006 pth@suse.de +- Use explicit file names instead of wildcards to detect libraries + that weren't built. +* Wed Feb 8 2006 schwab@suse.de +- Fix broken assembler constraints [#148429]. +* Wed Jan 25 2006 mls@suse.de +- converted neededforbuild to BuildRequires +* Tue Jan 17 2006 schwab@suse.de +- Don't strip binaries. +* Wed Dec 7 2005 pth@suse.de +- Fix cases of type-punning in boost::python +- Compile without -fno-strict-aliasing again. +- Remove unnecessary type attributes in forward declarations. +* Tue Dec 6 2005 pth@suse.de +- Update to 1.33.1. +- Fix use of uninitialized variable. +- Compile with -fno-strict-aliasing. +- Update NEWS file +* Thu Aug 25 2005 pth@suse.de +- Incorporate fixes that are bound to be in 1.33.1 +- Build boost.regex with unicode support. +* Fri Aug 19 2005 pth@suse.de +- Add a NEWS file. +* Thu Aug 18 2005 pth@suse.de +- Update to 1.33.0 with 5 new libraries. See NEWS for specifics. +- Fix use of uninitialized class member (matz@suse.de) +- Compile with -O2 instead of -O3 +- Make build process use %%optflags +* Thu Mar 10 2005 pth@suse.de +- Update to 1.32.0 +* Fri May 7 2004 pth@suse.de +- Add convenience symlinks (#38491) +* Sun Apr 25 2004 coolo@suse.de +- build with several jobs +* Fri Mar 5 2004 pth@suse.de +- Update to 1.31.0. +- Make building boost work on Linux platforms where gcc does not + define _REENTRANT when passed -pthread. Patch was done by + Robert Schiele. +* Sat Jan 10 2004 adrian@suse.de +- add %%run_ldconfig +* Wed Aug 20 2003 pthomas@suse.de +- Update to 1.30.2, a bugfix release +* Wed Jul 23 2003 pthomas@suse.de +- Initial package, based on the work by Robert Schiele. +- Fix building with Python 2.3 diff --git a/boost.spec b/boost.spec new file mode 100644 index 0000000..db3dba4 --- /dev/null +++ b/boost.spec @@ -0,0 +1,1919 @@ +# +# spec file for package boost-base +# +# Copyright (c) 2022-2023 ZhuningOS +# + + +%define ver 1.66.0 +%define file_version 1_66_0 +%define docs_version 1.56.0 +%define short_version 1_56 +%define lib_appendix 1_66_0 +%bcond_with build_docs +%bcond_without package_pdf +%bcond_without build_quickbook +%bcond_with boost_devel +%define my_docdir %{_docdir}/boost-%{version} + +%if "base" == "base" +%define build_base 1 +%define name_suffix -base +%else +%define build_base 0 +%define name_suffix %nil +%endif + +# Build with OpenMPI +%if 0%{?suse_version} >= 1330 + # OpenMPI >= 2 is not available on ppc64be + %ifarch ppc64 + %define mpi_implem openmpi + %else + %define mpi_implem openmpi2 + %endif +%else + # Keep OpenMPI1 for older releases where OpenMPI2 is not available + %define mpi_implem openmpi +%endif + +%ifarch ia64 hppa +%bcond_with build_mpi +%else +%bcond_without build_mpi +%endif + +%bcond_without python3 +%bcond_without python2 + +# Python NumPy library is only available on Leap 42.1 OpenSUSE onward +# and is not availble in SLE +%if 0%{?suse_version} >= 1330 || 0%{?is_opensuse} +%bcond_without python_numpy +%else +%bcond_with python_numpy +%endif + +# context hasn't been ported to most architectures yet +%ifarch %ix86 x86_64 %arm aarch64 mips ppc ppc64 ppc64le +%bcond_without build_context +%else +%bcond_with build_context +%endif + +# needs newer *default* GCC to compile runtime +%if %{with build_context} && 0%{?suse_version} > 1320 +%bcond_without boost_fiber +%else +%bcond_with boost_fiber +%endif + +Name: boost%name_suffix +%define package_name boost_1_66 +Version: 1.66.0 +Release: 12.3.1 +Summary: Boost C++ Libraries +License: BSL-1.0 +Group: Development/Libraries/C and C++ +Url: http://www.boost.org +Source0: http://downloads.sourceforge.net/project/boost/boost/%{version}/boost_%{file_version}.tar.bz2 +Source1: boost-rpmlintrc +Source3: http://downloads.sourceforge.net/project/boost/boost-docs/%{docs_version}/boost_%{short_version}_pdf.tar.bz2 +Source4: existing_extra_docs +#Source5: NEWS +Source10: exception.objdump +Source11: __init__.py +Source100: baselibs.conf +Source101: symbol_diff.sh +Source102: README.boost-devel +Patch1: boost-thread.patch +Patch2: boost-no_type_punning.patch +Patch3: boost-no_segfault_in_Regex_filter.patch +Patch4: boost-pool_check_overflow.patch +Patch5: boost-strict_aliasing.patch +Patch6: boost-use_std_xml_catalog.patch +Patch7: boost-rpmoptflags-only.patch +Patch9: boost-aarch64-flags.patch +Patch10: boost-disable-pch-on-aarch64.patch +Patch13: boost-visibility.patch +Patch14: boost-1.57.0-python-libpython_dep.patch +Patch15: boost-1.57.0-python-abi_letters.patch +Patch16: boost-1.55.0-python-test-PyImport_AppendInittab.patch +Patch17: python_mpi.patch +Patch18: dynamic_linking.patch +Patch20: python_library_name.patch +Patch21: python_numpy_retfunc.patch +Patch22: libreoffice_compat_backports.patch +Patch23: variant.patch +BuildRequires: fdupes +BuildRequires: libbz2-devel +BuildRequires: libexpat-devel +BuildRequires: libicu-devel +BuildRequires: zlib-devel +%if %{with boost_fiber} +BuildRequires: gcc-c++ > 5 +%else +BuildRequires: gcc-c++ +%endif +%if ! %build_base +BuildRequires: dos2unix +%if %{with python2} +BuildRequires: python2-devel +%if %{with python_numpy} +BuildRequires: python2-numpy-devel +%endif # numpy2 +%endif # python2 +%if %{with python3} +BuildRequires: python3-devel +%if %{with python_numpy} +BuildRequires: python3-numpy-devel +%endif # numpy3 +%endif # python3 +%if %{with build_mpi} +BuildRequires: %{mpi_implem}-devel +%endif +%if %{with build_docs} +BuildRequires: docbook +BuildRequires: docbook-xsl-stylesheets +BuildRequires: doxygen +BuildRequires: libxslt-tools +BuildRequires: texlive-latex +%endif +%endif # ! build_base +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +Boost provides free peer-reviewed portable C++ source libraries. The +emphasis is on libraries that work well with the C++ Standard Library. +One goal is to establish "existing practice" and provide reference +implementations so that the Boost libraries are suitable for eventual +standardization. Some of the libraries have already been proposed for +inclusion in the C++ Standards Committee's upcoming C++ Standard +Library Technical Report. + +Although Boost was begun by members of the C++ Standards Committee +Library Working Group, membership has expanded to include nearly two +thousand members of the C++ community at large. + +# %%if %%build_base +%package -n libboost_headers%{lib_appendix}-devel +Summary: Development headers for Boost +Group: Development/Libraries/C and C++ +Requires: boost-license%{lib_appendix} +Requires: libstdc++-devel +Provides: libboost_headers-devel = %{version} +%if %{without boost_devel} +Provides: boost-devel = %{version} +%endif +Conflicts: otherproviders(libboost_headers-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_headers%{lib_appendix}-devel +A collection of header-only libraries for Boost. + +%package -n boost-license%{lib_appendix} +Summary: Boost License +Group: Development/Libraries/C and C++ +Provides: boost-license = %{version}-%{release} +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description -n boost-license%{lib_appendix} +This package contains the license boost is provided under. + +%if %{with boost_devel} +%package -n %{package_name}-devel +Summary: Development package for Boost C++ +Group: Development/Libraries/C and C++ +Requires: libboost_atomic%{lib_appendix}-devel +Requires: libboost_chrono%{lib_appendix}-devel +Requires: libboost_container%{lib_appendix}-devel +%if %{with build_context} +Requires: libboost_context%{lib_appendix}-devel +Requires: libboost_coroutine%{lib_appendix}-devel +%endif +Requires: libboost_date_time%{lib_appendix}-devel +%if %{with boost_fiber} +Requires: libboost_fiber%{lib_appendix}-devel +%endif +Requires: libboost_filesystem%{lib_appendix}-devel +Requires: libboost_graph%{lib_appendix}-devel +Requires: libboost_iostreams%{lib_appendix}-devel +Requires: libboost_locale%{lib_appendix}-devel +Requires: libboost_log%{lib_appendix}-devel +Requires: libboost_math%{lib_appendix}-devel +%if %{with build_mpi} +Requires: libboost_graph_parallel%{lib_appendix}-devel +Requires: libboost_mpi%{lib_appendix}-devel +%endif +Requires: libboost_program_options%{lib_appendix}-devel +%if %{with python2} +Requires: libboost_python-py2_7-%{lib_appendix}-devel +%endif +%if %{with python3} +Requires: libboost_python-py3-%{lib_appendix}-devel +%endif +Requires: libboost_random%{lib_appendix}-devel +Requires: libboost_regex%{lib_appendix}-devel +Requires: libboost_serialization%{lib_appendix}-devel +Requires: libboost_signals%{lib_appendix}-devel +Requires: libboost_system%{lib_appendix}-devel +Requires: libboost_test%{lib_appendix}-devel +Requires: libboost_thread%{lib_appendix}-devel +Requires: libboost_timer%{lib_appendix}-devel +Requires: libboost_type_erasure%{lib_appendix}-devel +Requires: libboost_wave%{lib_appendix}-devel +Requires: libstdc++-devel +Provides: boost-devel = %version +Conflicts: otherproviders(boost-devel) + +%description -n %{package_name}-devel +This package contains all that is needed to develop/compile +applications that use the Boost C++ libraries. For documentation see +the documentation packages (html, man or pdf). +%endif # with boost_devel + +%package -n %{package_name}-jam +Summary: A Boost Make Replacement +Group: Development/Tools/Building +Provides: boost-jam +Conflicts: otherproviders(boost-jam) + +%description -n %{package_name}-jam +Boost Jam is a build tool based on FTJam, which in turn is based on +Perforce Jam. It contains significant improvements made to facilitate +its use in the Boost Build System. + +%package -n %{package_name}-doc-html +Summary: HTML documentation for the Boost C++ Libraries +Group: Development/Libraries/C and C++ +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description -n %{package_name}-doc-html +This package contains the documentation of the boost dynamic libraries +in HTML format. + +%if %{with build_docs} +%package doc-man +Summary: Man documentation for the Boost C++ Libraries +Group: Development/Libraries/C and C++ +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description doc-man +This package contains the documentation of the boost dynamic libraries +as man pages. +%endif + +%if %{with package_pdf} +%package -n %{package_name}-doc-pdf +Summary: PDF documentation for the Boost C++ Libraries +Group: Development/Libraries/C and C++ +%if 0%{?suse_version} >= 1120 +BuildArch: noarch +%endif + +%description -n %{package_name}-doc-pdf +This package contains the documentation of the boost dynamic libraries +in PDF format. +%endif + +%package -n libboost_atomic%{lib_appendix} +Summary: Boost.Atomic runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_atomic%{lib_appendix} +Run-Time support for Boost.Atomic, a library that provides atomic data types +and operations on these data types, as well as memory ordering constraints +required for coordinating multiple threads through atomic variables. + +%package -n libboost_atomic%{lib_appendix}-devel +Summary: Development headers for Boost.Atomic +Group: Development/Libraries/C and C++ +Requires: libboost_atomic%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_atomic-devel = %{version} +Conflicts: otherproviders(libboost_atomic-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_atomic%{lib_appendix}-devel +Development support for Boost.Atomic, a library that provides atomic +data types and operations on these data types, as well as memory +ordering constraints required for coordinating multiple threads through +atomic variables. + +%package -n libboost_container%{lib_appendix} +Summary: Boost.Container runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_container%{lib_appendix} +This package contains the Boost.Container runtime library. + +%package -n libboost_container%{lib_appendix}-devel +Summary: Development headers for Boost.Container +Group: Development/Libraries/C and C++ +Requires: libboost_container%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_container-devel = %{version} +Conflicts: otherproviders(libboost_container-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_container%{lib_appendix}-devel +Development header files and libraries for Boost.Container. +Boost.Container library implements several well-known containers, +including STL containers. The aim of the library is to offers advanced +features not present in standard containers or to offer the latest +standard draft features for compilers that don't comply with the latest +C++ standard. + +%package -n libboost_context%{lib_appendix} +Summary: Boost.Context runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_context%{lib_appendix} +Runtime support for Boost.Context, a library that providing cooperative +multitasking support. + +%package -n libboost_context%{lib_appendix}-devel +Summary: Development headers for Boost.Context +Group: Development/Libraries/C and C++ +Requires: libboost_context%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_context-devel = %{version} +Conflicts: otherproviders(libboost_context-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_context%{lib_appendix}-devel +Development headers and libraries for Boost.Context, a library that +providing cooperative multitasking support. + +%package -n libboost_coroutine%{lib_appendix} +Summary: Boost::Coroutine runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_coroutine%{lib_appendix} +This package contains the Boost Coroutine runtime library. + +%package -n libboost_coroutine%{lib_appendix}-devel +Summary: Development headers for Boost.Coroutine +Group: Development/Libraries/C and C++ +Requires: libboost_context%{lib_appendix}-devel = %{version} +Requires: libboost_coroutine%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_coroutine-devel = %{version} +Conflicts: otherproviders(libboost_coroutine-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_coroutine%{lib_appendix}-devel +This package provides headers for Boost.Coroutine libraries. +Boost.Coroutine2 provides templates for generalized subroutines which +allow suspending and resuming execution at certain locations. + +%package -n libboost_date_time%{lib_appendix} +Summary: Boost.DateTime runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_date_time%{lib_appendix} +This package contains the Boost Date.DateTime runtime libraries. + +%package -n libboost_date_time%{lib_appendix}-devel +Summary: Development headers for Boost.DateTime library +Group: Development/Libraries/C and C++ +Requires: libboost_date_time%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Recommends: libboost_serialization%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_date_time-devel = %{version} +Conflicts: otherproviders(libboost_date_time-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_date_time%{lib_appendix}-devel +This package contains development header files and libraries for +Boost.DateTime library. + +%package -n libboost_fiber%{lib_appendix} +Summary: Boost.Fiber runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_fiber%{lib_appendix} +This package contains Boost.Fiber runtime library. + +%package -n libboost_fiber%{lib_appendix}-devel +Summary: Development headers for Boost.Fiber library +Group: Development/Libraries/C and C++ +Requires: libboost_context%{lib_appendix}-devel = %{version} +Requires: libboost_fiber%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_fiber-devel = %{version} +Conflicts: otherproviders(libboost_fiber-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_fiber%{lib_appendix}-devel +This package contains development header files and libraries for +Boost.Fiber library. Boost.Fiber is a cooperative multi-tasking +userland threading library. + +%package -n libboost_filesystem%{lib_appendix} +Summary: Boost.Filesystem Runtime Libraries +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_filesystem%{lib_appendix} +This package contains the Boost.Filesystem library. + +%package -n libboost_filesystem%{lib_appendix}-devel +Summary: Development headers for Boost.Filesystem library +Group: Development/Libraries/C and C++ +Requires: libboost_filesystem%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_system%{lib_appendix}-devel = %{version} +Requires: libstdc++-devel +Provides: libboost_filesystem-devel = %{version} +Conflicts: otherproviders(libboost_filesystem-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_filesystem%{lib_appendix}-devel +Development headers for Boost.Filesystem library, a library providing +facilities to manipulate files and directories, and the paths that +identify them. + +%package -n libboost_graph%{lib_appendix} +Summary: Boost.Graph runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_graph%{lib_appendix} +This package contains the Boost.Graph runtime library. + +%package -n libboost_graph%{lib_appendix}-devel +Summary: Development headers for Boost.Graph library +Group: Development/Libraries/C and C++ +Requires: libboost_graph%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +## FIXME:!!!! need better list of requirements here +Requires: libstdc++-devel +Provides: libboost_graph-devel = %{version} +Conflicts: otherproviders(libboost_graph-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_graph%{lib_appendix}-devel +Development headers for Boost.Graph library. The BGL algorithms consist +of a core set of algorithm patterns and a larger set of graph +algorithms. The core algorithm patterns are Breadth First Search, Depth +First Search, and Uniform Cost Search. + + +%package -n libboost_iostreams%{lib_appendix} +Summary: Boost.IOStreams Runtime Libraries +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_iostreams%{lib_appendix} +This package contains the Boost.IOStreams Runtime libraries. + +%package -n libboost_iostreams%{lib_appendix}-devel +Summary: Development headers for Boost.IOStreans library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_iostreams%{lib_appendix} = %{version} +Provides: libboost_iostreams-devel = %{version} +Conflicts: otherproviders(libboost_iostreams-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_iostreams%{lib_appendix}-devel +Boost.IOStreams provides a framework for defining streams, stream +buffers and IO filters + +%package -n libboost_log%{lib_appendix} +Summary: Boost.Log runtime Run-Time library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_log%{lib_appendix} +This package contains runtime library for Boost.Log. + +%package -n libboost_log%{lib_appendix}-devel +Summary: Development headers for Boost.Log library +Group: Development/Libraries/C and C++ +Requires: libboost_date_time%{lib_appendix}-devel = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_log%{lib_appendix} = %{version} +Requires: libboost_system%{lib_appendix} = %{version} +Requires: libboost_thread%{lib_appendix} = %{version} +Provides: libboost_log-devel = %{version} +Conflicts: otherproviders(libboost_log-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_log%{lib_appendix}-devel +Development headers for Boost.Log library which aims to make logging +significantly easier for the application developer. It provides a wide +range of out-of-the-box tools along with public interfaces for extending +the library. + +%package -n libboost_math%{lib_appendix} +Summary: Boost.Math runtime libraries +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_math%{lib_appendix} +This package contains the Boost.Math Runtime libraries. + +%package -n libboost_math%{lib_appendix}-devel +Summary: Development headers for Boost.Math libraries +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_math%{lib_appendix} = %{version} +Provides: libboost_math-devel = %{version} +Conflicts: otherproviders(libboost_math-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_math%{lib_appendix}-devel +Development headers for Boost.Math* boost libraries. + +%if %{with build_mpi} +%package -n libboost_mpi%{lib_appendix} +Summary: Boost.MPI runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_mpi%{lib_appendix} +This package contains the Boost.MPI runtime library. + +%package -n libboost_mpi%{lib_appendix}-devel +Summary: Development headers for Boost.MPI library +Group: Development/Libraries/C and C++ +Requires: libboost_graph%{lib_appendix}-devel +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +%if %{with python2} +Requires: libboost_python-py2_7-%{lib_appendix}-devel +%endif +%if %{with python3} +Requires: libboost_python-py3-%{lib_appendix}-devel +%endif +Requires: %{mpi_implem}-devel +Requires: libboost_mpi%{lib_appendix} = %{version} +Requires: libboost_serialization%{lib_appendix}-devel +Provides: libboost_mpi-devel = %{version} +Conflicts: otherproviders(libboost_mpi-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_mpi%{lib_appendix}-devel +Development headers for Boost.MPI boost library + +%package -n libboost_graph_parallel%{lib_appendix} +Summary: Boost.Graph.Distributed runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_graph_parallel%{lib_appendix} +This package contains the Boost.Graph parallel runtime library + +%package -n libboost_graph_parallel%{lib_appendix}-devel +Summary: Development headers for Boost.Graph parallel library +Group: Development/Libraries/C and C++ +Requires: libboost_graph_parallel%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_mpi%{lib_appendix}-devel = %{version} +Provides: libboost_graph_parallel-devel = %{version} +Conflicts: otherproviders(libboost_graph_parallel-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_graph_parallel%{lib_appendix}-devel +Development headers for Boost.Graph parallel boost library. + +%if %{with python2} +%package -n libboost_mpi_python-py2_7-%{lib_appendix} +Summary: Boost.MPI Python serialization library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_mpi_python-py2_7-%{lib_appendix} +This package contains the Boost.MPI Python 2.7 serialization library + +%package -n libboost_mpi_python-py2_7-%{lib_appendix}-devel +Summary: Development library for Boost.MPI Python 2.7 serialization +Group: Development/Libraries/C and C++ +Requires: libboost_mpi%{lib_appendix}-devel = %{version} +Requires: libboost_mpi_python-py2_7-%{lib_appendix} = %{version} +Requires: libboost_python-py2_7-%{lib_appendix} = %{version} +Provides: libboost_mpi_python-devel = %{version} +Conflicts: otherproviders(libboost_mpi_python-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_mpi_python-py2_7-%{lib_appendix}-devel +This package contains the Boost.MPI development library for Python 2.7 +serialization interface. + + +%package -n python2-boost_parallel_mpi%{lib_appendix} +Summary: Python 2.7 bindings for Boost.Parallel.MPI library +Group: Development/Languages/Python +Provides: python-boost_parallel_mpi = %{version} +Provides: python-boost_parallel_mpi%{lib_appendix} = %{version} +Conflicts: otherproviders(python-boost_parallel_mpi) + +%description -n python2-boost_parallel_mpi%{lib_appendix} +This package contains the Boost.Parallel.MPI bindings for Python 2.7 + +%endif # python2 + +%if %{with python3} + +%package -n libboost_mpi_python-py3-%{lib_appendix} +Summary: Boost.MPI Python 3.x serialization library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_mpi_python-py3-%{lib_appendix} +This package contains the Boost.MPI Python 3.x serialization +inteface. + +%package -n libboost_mpi_python-py3-%{lib_appendix}-devel +Summary: Development library for Boost.MPI Python 3.x serialization +Group: Development/Libraries/C and C++ +Requires: libboost_mpi%{lib_appendix}-devel = %{version} +Requires: libboost_mpi_python-py3-%{lib_appendix} = %{version} +Requires: libboost_python-py3-%{lib_appendix} = %{version} +Provides: libboost_mpi_python3-devel = %{version} +Conflicts: otherproviders(libboost_mpi_python3-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_mpi_python-py3-%{lib_appendix}-devel +This package contains the Boost.MPI development library for Python 3.x +serialization interface + +%package -n python3-boost_parallel_mpi%{lib_appendix} +Summary: Python 3.x bindings for Boost.Parallel.MPI library +Group: Development/Languages/Python +Provides: python3-boost_parallel_mpi = %{version} +Conflicts: otherproviders(python3-boost_parallel_mpi) + +%description -n python3-boost_parallel_mpi%{lib_appendix} +This package contains the Boost.Parallel.MPI bindings for Python 3.x + +%endif # python3 +%endif # mpi + +%package -n libboost_test%{lib_appendix} +Summary: Boost.Test runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_test%{lib_appendix} +This package contains the BoosttTest runtime library. + +%package -n libboost_test%{lib_appendix}-devel +Summary: Development headers for Boost.Test library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_test%{lib_appendix} = %{version} +Provides: libboost_test-devel = %{version} +Conflicts: otherproviders(libboost_test-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_test%{lib_appendix}-devel +Development headers for Boost.Test library. Boost.Test supports for +simple program testing, full unit testing, and for program execution +monitoring. + +%package -n libboost_program_options%{lib_appendix} +Summary: Boost.ProgramOptions runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_program_options%{lib_appendix} +This package contains the Boost.ProgramOptions runtime library. + +%package -n libboost_program_options%{lib_appendix}-devel +Summary: Development headers for Boost.ProgramOptions library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_program_options%{lib_appendix} = %{version} +Provides: libboost_program_options-devel = %{version} +Conflicts: otherproviders(libboost_program_options-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_program_options%{lib_appendix}-devel +This package contains development headers for Boost.ProgramOptions +library. + +%if %{with python2} +%package -n libboost_python-py2_7-%{lib_appendix} +Summary: Boost.Python runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_python-py2_7-%{lib_appendix} +This package contains the Boost::Python runtime library for default +version of python. + +%package -n libboost_python-py2_7-%{lib_appendix}-devel +Summary: Development headers for Boost.Python library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_python-py2_7-%{lib_appendix} = %{version} +Provides: libboost_python-devel = %{version} +Conflicts: otherproviders(libboost_python-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_python-py2_7-%{lib_appendix}-devel +Development headers for Boost::Python library for the default version of +python. + +%if %{with python_numpy} +%package -n libboost_numpy-py2_7-%{lib_appendix} +Summary: Boost.Python.NumPy runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_numpy-py2_7-%{lib_appendix} +This package contains the Boost::Python::NumPy runtime library for default +version of python. + +%package -n libboost_numpy-py2_7-%{lib_appendix}-devel +Summary: Development headers for Boost.Python.NumPy library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_numpy-py2_7-%{lib_appendix} = %{version} +Provides: libboost_numpy-devel = %{version} +Conflicts: otherproviders(libboost_numpy-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_numpy-py2_7-%{lib_appendix}-devel +Development headers for Boost::Python::NumPy library for the default version of +python. +%endif # with numpy +%endif # with python2 + +%if %{with python3} +%package -n libboost_python-py3-%{lib_appendix} +Summary: Boost.Python runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_python-py3-%{lib_appendix} +This package contains the Boost.Python runtime libraries for python3 +bindings. + +%package -n libboost_python-py3-%{lib_appendix}-devel +Summary: Development headers for Boost.Python library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_python-py3-%{lib_appendix} = %{version} +Provides: libboost_python3-devel = %{version} +Conflicts: otherproviders(libboost_python3-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_python-py3-%{lib_appendix}-devel +Development headers for Boost.Python library. This package contains +library for python3 development for boost. + +%if %{with python_numpy} +%package -n libboost_numpy-py3-%{lib_appendix} +Summary: Boost.Python.NumPy runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_numpy-py3-%{lib_appendix} +This package contains the Boost.Python.NumPy runtime libraries for python3 +bindings. + +%package -n libboost_numpy-py3-%{lib_appendix}-devel +Summary: Development headers for Boost.Python.NumPy library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_numpy-py3-%{lib_appendix} = %{version} +Provides: libboost_numpy3-devel = %{version} +Conflicts: otherproviders(libboost_numpy3-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_numpy-py3-%{lib_appendix}-devel +Development headers for Boost.Python.NumPy library. This package contains +library for python3 development for boost. +%endif # with numpy + +%endif # with python3 + +%package -n libboost_serialization%{lib_appendix} +Summary: Boost.Serialization runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_serialization%{lib_appendix} +This package contains the Boost.Serialization runtime library. + +%package -n libboost_serialization%{lib_appendix}-devel +Summary: Development headers for Boost.Serialization library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_serialization%{lib_appendix} = %{version} +Provides: libboost_serialization-devel = %{version} +Conflicts: otherproviders(libboost_serialization-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_serialization%{lib_appendix}-devel +This package contains development headers for Boost.Serialization +library. + +%package -n libboost_signals%{lib_appendix} +Summary: Boost.Signals runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_signals%{lib_appendix} +This package contains the Boost::Signals Runtime library. + +%package -n libboost_signals%{lib_appendix}-devel +Summary: Development headers for Boost.Signals library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_signals%{lib_appendix} = %{version} +Provides: libboost_signals-devel = %{version} +Conflicts: otherproviders(libboost_signals-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_signals%{lib_appendix}-devel +This package contains development headers for Boost.Signals library. +Boost.Signals is deprecated in favour of Boost.Signals2, a header-only +library and part of libboost_headers-devel. + +%package -n libboost_stacktrace%{lib_appendix} +Summary: Boost.Stacktrace runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_stacktrace%{lib_appendix} +This package contains the Boost.Stacktrace runtime library. + +%package -n libboost_stacktrace%{lib_appendix}-devel +Summary: Development headers for Boost.Stacktrace library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_stacktrace%{lib_appendix} = %{version} +Provides: libboost_stacktrace-devel = %{version} +Conflicts: otherproviders(libboost_stacktrace-devel) + +%description -n libboost_stacktrace%{lib_appendix}-devel +This package contains development headers for Boost.Stacktrace library. +Boost.Stacktrace is a simple C++03 library that provide information +about call sequence in a human-readable form. + +%package -n libboost_system%{lib_appendix} +Summary: Boost.System runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_system%{lib_appendix} +This package contains the Boost.System runtime library. + +%package -n libboost_system%{lib_appendix}-devel +Summary: Development headers for Boost.System library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_system%{lib_appendix} = %{version} +Provides: libboost_system-devel = %{version} +Conflicts: otherproviders(libboost_system-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_system%{lib_appendix}-devel +This package contains development headers for Boost.System library. + +%package -n libboost_thread%{lib_appendix} +Summary: Boost.Thread runtime libraries +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_thread%{lib_appendix} +This package contains the Boost.Thread runtime library. + +%package -n libboost_thread%{lib_appendix}-devel +Summary: Development headers for Boost.Thread library +Group: Development/Libraries/C and C++ +Requires: libboost_chrono%{lib_appendix}-devel = %{version} +Requires: libboost_date_time%{lib_appendix}-devel = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_thread%{lib_appendix} = %{version} +Provides: libboost_thread-devel = %{version} +Conflicts: otherproviders(libboost_thread-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_thread%{lib_appendix}-devel +This package contains development headers for Boost.Thread library. + +%package -n libboost_wave%{lib_appendix} +Summary: Boost.Wave runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_wave%{lib_appendix} +This package contains the Boost::Wave runtime library. + +%package -n libboost_wave%{lib_appendix}-devel +Summary: Development headers for Boost.Wave library +Group: Development/Libraries/C and C++ +Requires: libboost_filesystem%{lib_appendix}-devel = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_serialization%{lib_appendix}-devel = %{version} +Requires: libboost_wave%{lib_appendix} = %{version} +Provides: libboost_wave-devel = %{version} +Conflicts: otherproviders(libboost_wave-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_wave%{lib_appendix}-devel +This package contains development headers for Boost.Wave library. + +%package -n libboost_regex%{lib_appendix} +Summary: Boost.Regex runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_regex%{lib_appendix} +This package contains the Boost.Regex runtime library. + +%package -n libboost_regex%{lib_appendix}-devel +Summary: Development headers for Boost.Regex library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_regex%{lib_appendix} = %{version} +Provides: libboost_regex-devel = %{version} +Conflicts: otherproviders(libboost_regex-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_regex%{lib_appendix}-devel +This package contains development headers for Boost.Regex library. + +%package -n libboost_random%{lib_appendix} +Summary: Boost.Random runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_random%{lib_appendix} +This package contains the Boost.Random runtime library. + +%package -n libboost_random%{lib_appendix}-devel +Summary: Development headers for Boost.Random library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_random%{lib_appendix} = %{version} +Provides: libboost_random-devel = %{version} +Conflicts: otherproviders(libboost_random-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_random%{lib_appendix}-devel +This package contains Boost.Random development headers. + +%package -n libboost_chrono%{lib_appendix} +Summary: The Boost::Chrono runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_chrono%{lib_appendix} +This package contains the Boost::Chrono runtime library. + +%package -n libboost_chrono%{lib_appendix}-devel +Summary: Development headers for Boost.Chrono library +Group: Development/Libraries/C and C++ +Requires: libboost_chrono%{lib_appendix} = %{version} +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Provides: libboost_chrono-devel = %{version} +Conflicts: otherproviders(libboost_chrono-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_chrono%{lib_appendix}-devel +This package contains Boost.Chrono development headers. + +%package -n libboost_locale%{lib_appendix} +Summary: Boost::Locale runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_locale%{lib_appendix} +This package contains Boost::Locale runtime library. + +%package -n libboost_locale%{lib_appendix}-devel +Summary: Development headers for Boost.Locale library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_locale%{lib_appendix} = %{version} +Provides: libboost_locale-devel = %{version} +Conflicts: otherproviders(libboost_locale-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_locale%{lib_appendix}-devel +This package contains development headers for Boost.Locale library. + +%package -n libboost_timer%{lib_appendix} +Summary: Boost.Timer runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_timer%{lib_appendix} +This package contains Boost.Timer runtime library. + +%package -n libboost_timer%{lib_appendix}-devel +Summary: Development headers for Boost.Timer library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_system%{lib_appendix}-devel = %{version} +Requires: libboost_timer%{lib_appendix} = %{version} +Provides: libboost_timer-devel = %{version} +Conflicts: otherproviders(libboost_timer-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_timer%{lib_appendix}-devel +This package contains development headers for Boost.Timer library. + +%package -n libboost_type_erasure%{lib_appendix} +Summary: Boost.TypeErasure runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_type_erasure%{lib_appendix} +This package contains Boost::TypeErasure runtime library. + +%package -n libboost_type_erasure%{lib_appendix}-devel +Summary: Development headers for Boost.TypeErasure library +Group: Development/Libraries/C and C++ +PreReq: libboost_headers%{lib_appendix}-devel = %{version} +Requires: libboost_type_erasure%{lib_appendix} = %{version} +Provides: libboost_type_erasure-devel = %{version} +Conflicts: otherproviders(libboost_type_erasure-devel) +Conflicts: boost-devel < 1.63 + +%description -n libboost_type_erasure%{lib_appendix}-devel +This package contains development headers for Boost.TypeErasure library. + +%if %{with build_quickbook} +%package -n %{package_name}-quickbook +Summary: Documentation tool geared towards C++ +Group: Development/Tools/Doc Generators +Requires: boost-license%{lib_appendix} +Provides: quickbook = %version +Conflicts: otherproviders(quickbook) + +%description -n %{package_name}-quickbook +QuickBook is a WikiWiki style documentation tool geared towards C++ +documentation using simple rules and markup for simple formatting +tasks. +%endif + +%prep +%setup -q -n boost_%{lib_appendix} -b 3 +#everything in the tarball has the executable flag set ... +find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} + +%patch1 -p1 +%patch2 +%patch3 +%patch4 +%patch5 +%patch6 -p1 +%patch7 +%patch9 -p1 +%patch10 -p1 +%patch13 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 +%patch17 -p1 +%patch18 -p1 +%patch20 -p1 +%patch21 -p1 +%patch22 -p1 +%patch23 -p1 + +%build +find . -type f -exec chmod u+w {} + + +# General case +cat << EOF >user-config.jam +import os ; +local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; +using gcc : : : \$(RPM_OPT_FLAGS) ; +project user-config ; +EOF + +%if %build_base +cat << \EOF >.build +export LIBRARIES_FLAGS="--without-mpi --without-python" +%if ! %{with build_context} +# coroutine depends on context +LIBRARIES_FLAGS+=" --without-context --without-coroutine" +%endif + +%if ! %{with boost_fiber} +LIBRARIES_FLAGS+=" --without-fiber" +%endif +EOF + +%else # ! build_base + +# Since boost build system is broken and incable of handling multiple python versions, +# we need to build boost piece by piece. First time to build all the non-python bits, +# then we build MPI and/or PYTHON modules for two python versions we need. +# MPI builds a python module. +cat << \EOF >.build +export PY_LIBRARIES_FLAGS="--with-python" +%if %{with build_mpi} +PY_LIBRARIES_FLAGS+=" --with-mpi" +%endif + +# Dummy entry to make sure we don't build everything +export LIBRARIES_FLAGS="--with-system" + +# Dummy entry replaced with real libraries, if we build something +%if %{with build_mpi} +LIBRARIES_FLAGS=" --with-graph_parallel" +%endif + +EOF + +%if %{with build_mpi} +# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi +. %{_libdir}/mpi/gcc/%{mpi_implem}/bin/mpivars.sh +%endif + +# Need specific Boost Jam config files. +# 1. one all "normal" libraries +# 2. one for each python version for for python/mpi libraries +# use staging directories for MPI/PYTHON combinations. + +# General case +cat << EOF >user-config.jam +alias boost_python_alias : : /boost/python//boost_python ; +EOF +%endif # ! build_base + +# bootstrap b2 +./bootstrap.sh \ + --prefix=%{_prefix} --exec-prefix=%{_bindir} \ + --libdir=%{_libdir} --includedir=%{_includedir} \ + --with-toolset=gcc + +# Read shared build instructions +. ./.build + +%if ! %build_base + +# Build boost base PYTHON and MPI, installed in python staging +cp user-config.jam user-config-py.jam +cat << EOF >> user-config-py.jam +using python + : %{py_ver} + : %{_bindir}/python2 + : %{_includedir}/python%{py_ver} + : %{_libdir}/python%{py_ver} + : + : + ; +%if %{with build_mpi} +using mpi ; +%endif +EOF + +%if %{with python2} +./b2 -d+2 -q --user-config=./user-config-py.jam \ + --build-type=minimal --build-dir=./python-build \ + --python-buildid=py2.7 \ + --stagedir=./python-stage %{?_smp_mflags} \ + $PY_LIBRARIES_FLAGS \ + threading=multi link=shared runtime-link=shared stage +%endif # with python2 + +# Build boost python3 and MPI, installed in python3 staging +%if %{with python3} +cp user-config.jam user-config-py3.jam +# sed -i -e 's#//boost_python#//boost_python3#' ./user-config-py3.jam +%{?!py3_abiflags: %define py3_abiflags m} +%{?!python3_version: %define python3_version %py3_ver } + +cat << EOF >> user-config-py3.jam +using python + : %{python3_version} + : %{_bindir}/python3 + : %{_includedir}/python%{python3_version}%{py3_abiflags} + : + : + : .%{py3_soflags} + : %{py3_abiflags} + ; +%if %{with build_mpi} +using mpi ; +%endif +EOF + +./b2 -d+2 -q --user-config=./user-config-py3.jam \ + --build-type=minimal --build-dir=./python3-build \ + --python-buildid=py3 \ + --stagedir=./python3-stage %{?_smp_mflags} \ + $PY_LIBRARIES_FLAGS \ + threading=multi link=shared runtime-link=shared stage +%endif # python3 + +%if %{with build_docs} +cat << EOF >>user-config.jam +using xsltproc ; + +using boostbook + : %{_datadir}/xml/docbook/stylesheet/nwalsh/current + : %{_datadir}/xml/docbook/schema/dtd/4.2 + ; + +using doxygen ; +EOF +%endif + +# needed to get graph_parallel built +%if %{with build_mpi} +echo 'using mpi ;' >> ./user-config.jam +%endif + +%endif # ! build_base + +# This is run for both mini and non-mini build +./b2 -d+2 -q --user-config=./user-config.jam \ + --build-type=minimal --build-dir=./build \ + --stagedir=./stage %{?_smp_mflags} \ + $LIBRARIES_FLAGS \ + threading=multi link=shared runtime-link=shared stage + +%if ! %build_base + +# Verify that all symbols built in different stages are interchangeable. +# Can't be too careful! +cp %{SOURCE101} . +chmod +x symbol_diff.sh +%if %{with python3} +./symbol_diff.sh python3-stage/lib/libboost_mpi.so stage/lib/libboost_mpi.so +./symbol_diff.sh python3-stage/lib/libboost_serialization.so stage/lib/libboost_serialization.so +%endif +%if %{with python2} +./symbol_diff.sh python-stage/lib/libboost_serialization.so stage/lib/libboost_serialization.so +./symbol_diff.sh python-stage/lib/libboost_mpi.so stage/lib/libboost_mpi.so +%endif +#./symbol_diff.sh python-stage/lib/libboost_serialization.so stage/lib/libboost_serialization.so +#./symbol_diff.sh python-stage/lib/libboost_mpi.so stage/lib/libboost_mpi.so + +# Build documentation +%if %{with build_quickbook} +pushd tools/quickbook +../../b2 --user-config=../../user-config.jam --v2 dist-bin %{?_smp_mflags} +popd +%endif + +%if %{with build_docs} +cd doc +./b2 --user-config=../user-config.jam --v2 man %{?_smp_mflags} +%endif + +%endif # ! build_base + +%install + +# Read shared build instructions +. ./.build + +%if ! %build_base + +%if %{with build_mpi} +# Set PATH, MANPATH and LD_LIBRARY_PATH for mpi +. %{_libdir}/mpi/gcc/%{mpi_implem}/bin/mpivars.sh +%endif + +%if %{with python3} +./b2 -d+2 -q --user-config=./user-config-py3.jam \ + --build-type=minimal --build-dir=./python3-build \ + --python-buildid=py3 \ + --prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \ + --libdir=%{buildroot}%{_libdir} --includedir=%{buildroot}%{_includedir} \ + --stagedir=./python3-stage %{?_smp_mflags} \ + $PY_LIBRARIES_FLAGS \ + threading=multi link=shared runtime-link=shared install +%endif + +%if %{with python2} +./b2 -d+2 -q --user-config=./user-config-py.jam \ + --build-type=minimal --build-dir=./python-build \ + --python-buildid=py2.7 \ + --prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \ + --libdir=%{buildroot}%{_libdir} --includedir=%{buildroot}%{_includedir} \ + --stagedir=./python-stage %{?_smp_mflags} \ + $PY_LIBRARIES_FLAGS \ + threading=multi link=shared runtime-link=shared install +%endif + +%endif # ! build_base + +# Generic install +./b2 -d+2 -q \ + --build-type=minimal --build-dir=./build --stagedir=./stage \ + --prefix=%{buildroot}%{_prefix} --exec-prefix=%{buildroot}%{_bindir} \ + --libdir=%{buildroot}%{_libdir} --includedir=%{buildroot}%{_includedir} \ + --user-config=./user-config.jam \ + $LIBRARIES_FLAGS \ + threading=multi link=shared runtime-link=shared install + +# No python dependencies in the main tree + +! $(ldd %{buildroot}%{_libdir}/*.so* | grep python\\.) + +%if ! %build_base +%if %{with python2} +ln -s libboost_mpi_python-py2_7.so %{buildroot}%{_libdir}/libboost_mpi_python.so +ln -s libboost_python-py2_7.so %{buildroot}%{_libdir}/libboost_python.so +%endif + +%if %{with python3} +! $(ldd %{buildroot}%{_libdir}/*.so* | grep python3-\\.) +ln -s libboost_python-py3.so %{buildroot}%{_libdir}/libboost_python3.so +%endif + +# Move Python libraries over to proper places +%if %{with python2} +mkdir -p %{buildroot}%{python2_sitearch}/boost/parallel/mpi/ +mv %{buildroot}/%{_libdir}/mpi.so %{buildroot}%{python2_sitearch}/boost/parallel/mpi/ +install -m 0644 libs/mpi/build/__init__.py %{buildroot}%{python2_sitearch}/boost/parallel/mpi/ +install -m 0644 %{SOURCE11} %{buildroot}%{python2_sitearch}/boost/parallel +install -m 0644 %{SOURCE11} %{buildroot}%{python2_sitearch}/boost +%endif + +%if %{with python3} +mkdir -p %{buildroot}%{python3_sitearch}/boost/parallel/mpi/ +mv %{buildroot}/%{_libdir}/mpi.*so %{buildroot}%{python3_sitearch}/boost/parallel/mpi/mpi.%{py3_soflags}.so +install -m 0644 libs/mpi/build/__init__.py %{buildroot}%{python3_sitearch}/boost/parallel/mpi/ +install -m 0644 %{SOURCE11} %{buildroot}%{python3_sitearch}/boost/parallel +install -m 0644 %{SOURCE11} %{buildroot}%{python3_sitearch}/boost +%endif + +#install doc files +mkdir -p %{buildroot}%{my_docdir} +%if %{with boost_devel} +install -m 0644 %{SOURCE102} %{buildroot}%{my_docdir} +%endif +find libs/ -name \*.htm\* -o -name \*.css -o -name \*.js | xargs dos2unix +find . -name \*.htm\* -o -name \*.gif -o -name \*.css -o -name \*.jpg -o -name \*.png -o -name \*.ico | \ + tar --files-from=%{SOURCE4} -cf - --files-from=- | tar -C %{buildroot}%{my_docdir} -xf - +rm -rf %{buildroot}%{my_docdir}/boost +#ln -s %%{_includedir}/boost %%{buildroot}%%{my_docdir} +#ln -s ../LICENSE_1_0.txt %%{buildroot}%%{my_docdir}/libs +find %{buildroot}%{my_docdir} -name \*.py -exec chmod -x {} + +chmod -x ../boost_%{short_version}_pdf/*.pdf + +%if %{with build_quickbook} +mkdir -p %{buildroot}%{_bindir} +install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook +%endif + +%endif # ! build_base + +%if %build_base +mkdir -p %{buildroot}%{_bindir} +install -m 755 bjam %{buildroot}%{_bindir} +ln -s bjam %{buildroot}%{_bindir}/jam + +# Remove exception library, but only if the symbols are not +# actually used. For now, the only symbol that is linked is +# should never be used as it's only available on Windows. So, +# verify that here. +objdump -Ctj .text -Ctj .text %{buildroot}%{_libdir}/libboost_exception.so | \ + grep '^[0-9a-f]\+[[:space:]]\+g[[:space:]]\+F' | \ + sed -e 's#[0-9a-f]\+[[:space:]]\+g[[:space:]]\+F[[:space:]]\+\.text[[:space:]]\+[0-9a-f]\+[[:space:]]\+##' | \ + diff %{SOURCE10} - || echo "WARNING: libexception symbol change?" +rm %{buildroot}%{_libdir}/libboost_exception.so +rm %{buildroot}%{_libdir}/libboost_exception.so.%{version} + +%fdupes %{buildroot}%{_includedir}/boost +mkdir -p %{buildroot}%{my_docdir} +%else # ! build_base +rm -r %{buildroot}%{_includedir}/boost +rm %{buildroot}%{_libdir}/libboost_serialization* +rmdir --ignore-fail-on-non-empty %{buildroot}%{_libdir} +%fdupes %{buildroot}%{my_docdir} +%endif + +%if %build_base +%post -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_container%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_context%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_fiber%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_log%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_test%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig + +%post -n libboost_regex%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_signals%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_thread%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_type_erasure%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_math%{lib_appendix} -p /sbin/ldconfig + +%post -n libboost_graph%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_stacktrace%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_system%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_wave%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_random%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_locale%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_timer%{lib_appendix} -p /sbin/ldconfig + +%else # ! build_base + +%if %{with python2} +%post -n libboost_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%post -n libboost_numpy-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with python3} +%post -n libboost_python-py3-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%post -n libboost_numpy-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with build_mpi} +%post -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig +%post -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig +%if %{with python2} +%post -n libboost_mpi_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%if %{with python3} +%post -n libboost_mpi_python-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%endif # ! build_base + +%if %build_base +%postun -n libboost_atomic%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_container%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_context%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_coroutine%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_date_time%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_fiber%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_filesystem%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_iostreams%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_log%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_test%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_program_options%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_regex%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_serialization%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_signals%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_thread%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_type_erasure%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_math%{lib_appendix} -p /sbin/ldconfig + +%postun -n libboost_graph%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_stacktrace%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_system%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_wave%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_random%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_chrono%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_locale%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_timer%{lib_appendix} -p /sbin/ldconfig + +%else # ! build_base + +%if %{with python2} +%postun -n libboost_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%postun -n libboost_numpy-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with python3} +%postun -n libboost_python-py3-%{lib_appendix} -p /sbin/ldconfig +%if %{with python_numpy} +%postun -n libboost_numpy-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%if %{with build_mpi} +%postun -n libboost_mpi%{lib_appendix} -p /sbin/ldconfig +%postun -n libboost_graph_parallel%{lib_appendix} -p /sbin/ldconfig +%if %{with python2} +%postun -n libboost_mpi_python-py2_7-%{lib_appendix} -p /sbin/ldconfig +%endif +%if %{with python3} +%postun -n libboost_mpi_python-py3-%{lib_appendix} -p /sbin/ldconfig +%endif +%endif + +%endif # build_base + +%if %{build_base} +%files -n %{package_name}-jam +%defattr(-, root, root, -) +%{_bindir}/bjam +%{_bindir}/jam + +%files -n libboost_atomic%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_atomic.so.%{version} + +%files -n libboost_atomic%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_atomic.so + +%files -n libboost_container%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_container.so.%{version} + +%files -n libboost_container%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_container.so + +%if %{with build_context} + +%files -n libboost_context%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_context.so.%{version} + +%files -n libboost_context%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_context.so + +%files -n libboost_coroutine%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_coroutine.so.%{version} + +%files -n libboost_coroutine%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_coroutine.so + +%endif # if with build_context + +%files -n libboost_date_time%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_date_time.so.%{version} + +%files -n libboost_date_time%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_date_time.so + +%if %{with boost_fiber} + +%files -n libboost_fiber%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_fiber.so.%{version} + +%files -n libboost_fiber%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_fiber.so + +%endif # with boost_fiber + +%files -n libboost_filesystem%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_filesystem.so.%{version} + +%files -n libboost_filesystem%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_filesystem.so + +%files -n libboost_graph%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_graph.so.%{version} + +%files -n libboost_graph%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_graph.so + +%files -n libboost_iostreams%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_iostreams.so.%{version} + +%files -n libboost_iostreams%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_iostreams.so + +%files -n libboost_log%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_log.so.%{version} +%{_libdir}/libboost_log_setup.so.%{version} + +%files -n libboost_log%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_log.so +%{_libdir}/libboost_log_setup.so + +%files -n libboost_math%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_math_c99f.so.%{version} +%{_libdir}/libboost_math_c99l.so.%{version} +%{_libdir}/libboost_math_c99.so.%{version} +%{_libdir}/libboost_math_tr1f.so.%{version} +%{_libdir}/libboost_math_tr1l.so.%{version} +%{_libdir}/libboost_math_tr1.so.%{version} + +%files -n libboost_math%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_math_c99f.so +%{_libdir}/libboost_math_c99l.so +%{_libdir}/libboost_math_c99.so +%{_libdir}/libboost_math_tr1f.so +%{_libdir}/libboost_math_tr1l.so +%{_libdir}/libboost_math_tr1.so + +%files -n libboost_test%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_prg_exec_monitor.so.%{version} +%{_libdir}/libboost_test_exec_monitor.so.%{version} +%{_libdir}/libboost_unit_test_framework.so.%{version} + +%files -n libboost_test%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_prg_exec_monitor.so +%{_libdir}/libboost_test_exec_monitor.so +%{_libdir}/libboost_unit_test_framework.so + +%files -n libboost_program_options%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_program_options.so.%{version} + +%files -n libboost_program_options%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_program_options.so +%endif # build_base + +%if ! %build_base + +%if %{with build_mpi} +%files -n libboost_mpi%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_mpi.so.%{version} + +%files -n libboost_mpi%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_mpi.so + +%files -n libboost_graph_parallel%{lib_appendix} +%defattr(-,root,root) +%{_libdir}/libboost_graph_parallel.so.%{version} + +%files -n libboost_graph_parallel%{lib_appendix}-devel +%defattr(-,root,root) +%{_libdir}/libboost_graph_parallel.so + +%if %{with python2} +%files -n libboost_mpi_python-py2_7-%{lib_appendix} +%defattr(-,root,root) +%{_libdir}/libboost_mpi_python-py2_7.so.%{version} + +%files -n libboost_mpi_python-py2_7-%{lib_appendix}-devel +%defattr(-,root,root) +%{_libdir}/libboost_mpi_python-py2_7.so +%{_libdir}/libboost_mpi_python.so + +%files -n python2-boost_parallel_mpi%{lib_appendix} +%defattr(-, root, root, -) +%dir %{python2_sitearch}/boost +%dir %{python2_sitearch}/boost/parallel +%dir %{python2_sitearch}/boost/parallel/mpi +%{python2_sitearch}/boost/__init__.py +%{python2_sitearch}/boost/parallel/__init__.py +%{python2_sitearch}/boost/parallel/mpi/__init__.py +%{python2_sitearch}/boost/parallel/mpi/mpi.so +%endif # with python2 + +%if %{with python3} +%files -n libboost_mpi_python-py3-%{lib_appendix} +%defattr(-,root,root) +%{_libdir}/libboost_mpi_python-py3.so.%{version} + +%files -n libboost_mpi_python-py3-%{lib_appendix}-devel +%defattr(-,root,root) +%{_libdir}/libboost_mpi_python-py3.so + +%files -n python3-boost_parallel_mpi%{lib_appendix} +%defattr(-, root, root, -) +%dir %{python3_sitearch}/boost +%dir %{python3_sitearch}/boost/parallel +%dir %{python3_sitearch}/boost/parallel/mpi +%{python3_sitearch}/boost/__init__.py +%{python3_sitearch}/boost/parallel/__init__.py +%{python3_sitearch}/boost/parallel/mpi/__init__.py +%{python3_sitearch}/boost/parallel/mpi/mpi.%{py3_soflags}.so + +%endif # with python3 +%endif # with build_mpi + +%if %{with python2} +%files -n libboost_python-py2_7-%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_python-py2_7.so.%{version} + +%files -n libboost_python-py2_7-%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_python.so +%{_libdir}/libboost_python-py2_7.so + +%if %{with python_numpy} +%files -n libboost_numpy-py2_7-%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_numpy-py2_7.so.%{version} + +%files -n libboost_numpy-py2_7-%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_numpy-py2_7.so + +%endif # with numpy +%endif # with python2 + +%if %{with python3} +%files -n libboost_python-py3-%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_python-py3.so.%{version} + +%files -n libboost_python-py3-%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_python3.so +%{_libdir}/libboost_python-py3.so + +%if %{with python_numpy} +%files -n libboost_numpy-py3-%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_numpy-py3.so.%{version} + +%files -n libboost_numpy-py3-%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_numpy-py3.so + +%endif # with numpy +%endif # with python3 +%endif # ! build_base + +%if %build_base +%files -n libboost_serialization%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_serialization.so.%{version} +%{_libdir}/libboost_wserialization.so.%{version} + +%files -n libboost_serialization%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_serialization.so +%{_libdir}/libboost_wserialization.so + +%files -n libboost_signals%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_signals.so.%{version} + +%files -n libboost_signals%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_signals.so + +%files -n libboost_stacktrace%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_stacktrace_addr2line.so.%{version} +%{_libdir}/libboost_stacktrace_basic.so.%{version} +%{_libdir}/libboost_stacktrace_noop.so.%{version} + +%files -n libboost_stacktrace%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_stacktrace_addr2line.so +%{_libdir}/libboost_stacktrace_basic.so +%{_libdir}/libboost_stacktrace_noop.so + +%files -n libboost_system%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_system.so.%{version} + +%files -n libboost_system%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_system.so + +%files -n libboost_thread%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_thread.so.%{version} + +%files -n libboost_thread%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_thread.so + +%files -n libboost_wave%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_wave.so.%{version} + +%files -n libboost_wave%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_wave.so + +%files -n libboost_regex%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_regex.so.%{version} + +%files -n libboost_regex%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_regex.so + +%files -n libboost_random%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_random.so.%{version} + +%files -n libboost_random%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_random.so + +%files -n libboost_chrono%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_chrono.so.%{version} + +%files -n libboost_chrono%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_chrono.so + +%files -n libboost_locale%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_locale.so.%{version} + +%files -n libboost_locale%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_locale.so + +%files -n libboost_timer%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_timer.so.%{version} + +%files -n libboost_timer%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_timer.so + +%files -n libboost_type_erasure%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_type_erasure.so.%{version} + +%files -n libboost_type_erasure%{lib_appendix}-devel +%defattr(-, root, root, -) +%{_libdir}/libboost_type_erasure.so +%endif # if build_base + +%if ! %build_base +%if %{with boost_devel} +%files -n %{package_name}-devel +%defattr(-, root, root, -) +%dir %{my_docdir} +%{my_docdir}/README.boost-devel +%endif + +%files -n %{package_name}-doc-html +%defattr(-, root, root, -) +%dir %{my_docdir} +%doc %{my_docdir}/* +# %%exclude %%{my_docdir}/LICENSE_1_0.txt +%if %{with boost_devel} +%exclude %{my_docdir}/README.boost-devel +%endif + +%if %{with build_docs} +%files doc-man +%defattr(-, root, root, -) +%doc %{_mandir}/man3/*.3.gz +%doc %{_mandir}/man7/*.7.gz +%doc %{_mandir}/man9/*.9.gz +%endif + +%if %{with package_pdf} +%files -n %{package_name}-doc-pdf +%defattr(-, root, root, -) +%doc ../boost_%{short_version}_pdf/*.pdf +%endif + +%if %{with build_quickbook} +%files -n %{package_name}-quickbook +%defattr(-, root, root, -) +%{_bindir}/quickbook +%endif +%endif # ! build_base + +%if %build_base +%files -n libboost_headers%{lib_appendix}-devel +%defattr(-, root, root, -) +%dir %{_includedir}/boost +%{_includedir}/boost/* + +%files -n boost-license%{lib_appendix} +%defattr(-, root, root, -) +%license LICENSE_1_0.txt + +%endif + +%changelog diff --git a/dynamic_linking.patch b/dynamic_linking.patch new file mode 100644 index 0000000..5df4dea --- /dev/null +++ b/dynamic_linking.patch @@ -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 +- static ++ # static + : # default build + : # usage-requirements + shared: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 static ++ : # requirements 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 + + BOOST_SYSTEM_NO_DEPRECATED + shared:BOOST_CHRONO_DYN_LINK=1 +- static:BOOST_CHRONO_STATIC_LINK=1 ++ # static:BOOST_CHRONO_STATIC_LINK=1 + gcc-3.4.4:--enable-auto-import + gcc-4.3.4:--enable-auto-import + gcc-4.4.0,windows:--enable-auto-import +@@ -113,6 +113,6 @@ lib boost_chrono + : $(SOURCES).cpp + : + shared:BOOST_ALL_DYN_LINK=1 # tell source we're building dll's +- static:BOOST_All_STATIC_LINK=1 # tell source we're building static lib's ++ # static: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) + shared:BOOST_SYSTEM_DYN_LINK=1 +- static:BOOST_SYSTEM_STATIC_LINK=1 ++# static:BOOST_SYSTEM_STATIC_LINK=1 + ; + + SOURCES = error_code ; +@@ -19,7 +19,7 @@ SOURCES = error_code ; + lib boost_system + : $(SOURCES).cpp + : shared:BOOST_SYSTEM_DYN_LINK=1 +- static:BOOST_SYSTEM_STATIC_LINK=1 ++# static: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 + /boost/system//boost_system + : usage-requirements # pass these requirement to dependants (i.e. users) + shared:BOOST_TIMER_DYN_LINK=1 +- static:BOOST_TIMER_STATIC_LINK=1 ++# static: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 + : shared:BOOST_TIMER_DYN_LINK=1 +- static:BOOST_TIMER_STATIC_LINK=1 ++# static: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) + shared:BOOST_FILESYSTEM_DYN_LINK=1 +- static:BOOST_FILESYSTEM_STATIC_LINK=1 ++# static:BOOST_FILESYSTEM_STATIC_LINK=1 + ; + + SOURCES = +@@ -28,7 +28,7 @@ SOURCES = + lib boost_filesystem + : $(SOURCES).cpp ../../system/build//boost_system + : shared:BOOST_FILESYSTEM_DYN_LINK=1 +- static:BOOST_FILESYSTEM_STATIC_LINK=1 ++# static: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 diff --git a/exception.objdump b/exception.objdump new file mode 100644 index 0000000..4d03ed3 --- /dev/null +++ b/exception.objdump @@ -0,0 +1 @@ +boost::exception_detail::clone_current_exception_non_intrusive(boost::exception_detail::clone_base const*&) diff --git a/existing_extra_docs b/existing_extra_docs new file mode 100644 index 0000000..773c668 --- /dev/null +++ b/existing_extra_docs @@ -0,0 +1,470 @@ +libs/algorithm/minmax/example/minmax_ex.cpp +libs/algorithm/minmax/example/minmax_timer.cpp +libs/assign/test/array.cpp +libs/assign/test/list_inserter.cpp +libs/assign/test/list_of.cpp +libs/assign/test/list_of_workaround.cpp +libs/assign/test/std.cpp +libs/bind/bind_as_compose.cpp +libs/bind/bind_visitor.cpp +libs/bind/test/bind_fastcall_mf_test.cpp +libs/bind/test/bind_fastcall_test.cpp +libs/bind/test/bind_stdcall_mf_test.cpp +libs/bind/test/bind_stdcall_test.cpp +libs/bind/test/bind_test.cpp +libs/bind/test/mem_fn_derived_test.cpp +libs/bind/test/mem_fn_fastcall_test.cpp +libs/bind/test/mem_fn_stdcall_test.cpp +libs/bind/test/mem_fn_test.cpp +libs/bind/test/mem_fn_void_test.cpp +libs/compatibility/generate_cpp_c_headers.py +libs/concept_check/bad_error_eg.cpp +libs/concept_check/stl_concept_check.cpp +libs/concept_check/stl_concept_covering.cpp +libs/config/test/limits_test.cpp +libs/config/tools/configure.in +libs/conversion/cast_test.cpp +libs/conversion/lexical_cast_test.cpp +libs/crc/crc_example.cpp +libs/filesystem/build/Jamfile.v2 +libs/filesystem/example/simple_ls.cpp +libs/filesystem/test/fstream_test.cpp +libs/filesystem/test/operations_test.cpp +libs/filesystem/test/path_test.cpp +libs/filesystem/test/wide_test.cpp +libs/format/example/sample_advanced.cpp +libs/format/example/sample_formats.cpp +libs/format/example/sample_new_features.cpp +libs/format/example/sample_userType.cpp +libs/functional/hash/examples/books.cpp +libs/functional/hash/examples/point.cpp +libs/functional/hash/examples/portable.cpp +libs/function/test/allocator_test.cpp +libs/function/test/contains_test.cpp +libs/function/test/function_30.cpp +libs/function/test/function_arith_cxx98.cpp +libs/function/test/function_arith_portable.cpp +libs/function/test/function_n_test.cpp +libs/function/test/function_ref_cxx98.cpp +libs/function/test/function_ref_portable.cpp +libs/function/test/function_test.cpp +libs/function/test/function_test_fail1.cpp +libs/function/test/function_test_fail2.cpp +libs/function/test/lambda_test.cpp +libs/function/test/mem_fun_cxx98.cpp +libs/function/test/mem_fun_portable.cpp +libs/function/test/stateless_test.cpp +libs/function/test/std_bind_cxx98.cpp +libs/function/test/std_bind_portable.cpp +libs/function/test/sum_avg_cxx98.cpp +libs/function/test/sum_avg_portable.cpp +libs/graph/doc/iscope99.pdf +libs/graph/doc/isomorphism-impl.pdf +libs/graph/example/bfs.cpp +libs/graph/example/bfs-example2.cpp +libs/graph/example/bfs-example.cpp +libs/graph/example/biconnected_components.cpp +libs/graph/example/city_visitor.cpp +libs/graph/example/connected_components.cpp +libs/graph/example/csr-example.cpp +libs/graph/example/cuthill_mckee_ordering.cpp +libs/graph/example/dave.cpp +libs/graph/example/dfs-example.cpp +libs/graph/example/dfs_parenthesis.cpp +libs/graph/example/dijkstra-example.cpp +libs/graph/example/family-tree-eg.cpp +libs/graph/example/file_dependencies.cpp +libs/graph/example/fr_layout.cpp +libs/graph/example/girth.cpp +libs/graph/example/graphviz.cpp +libs/graph/example/incremental_components.cpp +libs/graph/example/isomorphism.cpp +libs/graph/example/johnson-eg.cpp +libs/graph/example/kevin-bacon.cpp +libs/graph/example/king_ordering.cpp +libs/graph/example/kruskal-example.cpp +libs/graph/example/matching_example.cpp +libs/graph/example/max_flow.cpp +libs/graph/example/miles_span.cpp +libs/graph/example/minimum_degree_ordering.cpp +libs/graph/example/ordered_out_edges.cpp +libs/graph/example/quick_tour.cpp +libs/graph/example/reverse-graph-eg.cpp +libs/graph/example/roget_components.cpp +libs/graph/example/sloan_ordering.cpp +libs/graph/example/strong_components.cpp +libs/graph/example/transitive_closure.cpp +libs/graph/example/transpose-example.cpp +libs/graph/example/undirected.cpp +libs/graph/example/undirected_dfs.cpp +libs/graph/test/dominator_tree_test.cpp +libs/graph/test/graph.cpp +libs/integer/test/integer_mask_test.cpp +libs/integer/test/static_log2_test.cpp +libs/integer/test/static_min_max_test.cpp +libs/iostreams/doc/tree/tree.js +libs/iostreams/example/container_device.hpp +libs/iostreams/example/dictionary_filter.hpp +libs/iostreams/example/finite_state_filter.hpp +libs/iostreams/example/line_wrapping_filter.hpp +libs/iostreams/example/shell_comments_filter.hpp +libs/iostreams/example/tab_expanding_filter.hpp +libs/iostreams/example/unix2dos_filter.hpp +libs/iostreams/src/bzip2.cpp +libs/iostreams/src/file_descriptor.cpp +libs/iostreams/src/mapped_file.cpp +libs/iostreams/src/zlib.cpp +libs/iostreams/test/bzip2_test.cpp +libs/iostreams/test/file_descriptor_test.cpp +libs/iostreams/test/finite_state_filter_test.cpp +libs/iostreams/test/mapped_file_test.cpp +libs/iostreams/test/seekable_file_test.cpp +libs/io/test/ios_state_test.cpp +libs/iterator/doc/BidirectionalTraversal.rst +libs/iterator/doc/counting_iterator.pdf +libs/iterator/doc/counting_iterator.rst +libs/iterator/doc/facade-and-adaptor.pdf +libs/iterator/doc/facade-and-adaptor.rst +libs/iterator/doc/filter_iterator.pdf +libs/iterator/doc/filter_iterator.rst +libs/iterator/doc/ForwardTraversal.rst +libs/iterator/doc/function_output_iterator.pdf +libs/iterator/doc/function_output_iterator.rst +libs/iterator/doc/IncrementableIterator.rst +libs/iterator/doc/index.rst +libs/iterator/doc/indirect_iterator.pdf +libs/iterator/doc/indirect_iterator.rst +libs/iterator/doc/iterator_adaptor.pdf +libs/iterator/doc/iterator_adaptor.rst +libs/iterator/doc/iterator_archetypes.pdf +libs/iterator/doc/iterator_archetypes.rst +libs/iterator/doc/iterator_concepts.pdf +libs/iterator/doc/iterator_concepts.rst +libs/iterator/doc/iterator_facade.pdf +libs/iterator/doc/iterator_facade.rst +libs/iterator/doc/iterator_traits.pdf +libs/iterator/doc/iterator_traits.rst +libs/iterator/doc/LvalueIterator.rst +libs/iterator/doc/new-iter-concepts.pdf +libs/iterator/doc/new-iter-concepts.rst +libs/iterator/doc/permutation_iterator.pdf +libs/iterator/doc/permutation_iterator.rst +libs/iterator/doc/pointee.pdf +libs/iterator/doc/pointee.rst +libs/iterator/doc/RandomAccessTraversal.rst +libs/iterator/doc/ReadableIterator.rst +libs/iterator/doc/reverse_iterator.pdf +libs/iterator/doc/reverse_iterator.rst +libs/iterator/doc/SinglePassIterator.rst +libs/iterator/doc/SwappableIterator.rst +libs/iterator/doc/transform_iterator.pdf +libs/iterator/doc/transform_iterator.rst +libs/iterator/doc/WritableIterator.rst +libs/iterator/doc/zip_iterator.pdf +libs/iterator/doc/zip_iterator.rst +libs/iterator/example/counting_iterator_example.cpp +libs/iterator/example/filter_iterator_example.cpp +libs/iterator/example/indirect_iterator_example.cpp +libs/iterator/example/node_iterator1.cpp +libs/iterator/example/node_iterator2.cpp +libs/iterator/example/node_iterator2.hpp +libs/iterator/example/node_iterator3.cpp +libs/iterator/example/permutation_iter_example.cpp +libs/iterator/example/reverse_iterator_example.cpp +libs/iterator/example/transform_iterator_example.cpp +libs/logic/test/tribool_io_test.cpp +libs/logic/test/tribool_rename_test.cpp +libs/logic/test/tribool_test.cpp +libs/math/octonion/graphics/octonion_blurb17.jpeg +libs/math/octonion/octonion_test.cpp +libs/math/octonion/output_more.txt +libs/math/octonion/output.txt +libs/math/quaternion/HSO3.hpp +libs/math/quaternion/HSO3SO4.cpp +libs/math/quaternion/HSO4.hpp +libs/math/quaternion/output_more.txt +libs/math/quaternion/output.txt +libs/math/quaternion/quaternion_test.cpp +libs/math/quaternion/TQE_EA.pdf +libs/math/quaternion/TQE.pdf +libs/math/special_functions/graphics/special_functions_blurb15.jpeg +libs/math/special_functions/graphics/special_functions_blurb17.jpeg +libs/math/special_functions/graphics/special_functions_blurb18.jpeg +libs/math/special_functions/graphics/special_functions_blurb1.jpeg +libs/math/special_functions/graphics/special_functions_blurb20.jpeg +libs/math/special_functions/graphics/special_functions_blurb22.jpeg +libs/math/special_functions/graphics/special_functions_blurb5.jpeg +libs/math/special_functions/graphics/special_functions_blurb6.jpeg +libs/math/special_functions/graphics/special_functions_blurb7.jpeg +libs/math/special_functions/output_more.txt +libs/math/special_functions/output.txt +libs/math/special_functions/special_functions_test.cpp +libs/math/test/common_factor_test.cpp +libs/math/test/log1p_expm1_test.cpp +libs/mpl/doc/refmanual.pdf +libs/mpl/example/fsm/player1.cpp +libs/multi_array/test/access.cpp +libs/multi_array/test/assign.cpp +libs/multi_array/test/assign_to_array.cpp +libs/multi_array/test/compare.cpp +libs/multi_array/test/concept_checks.cpp +libs/multi_array/test/constructors.cpp +libs/multi_array/test/fail_cbracket.cpp +libs/multi_array/test/fail_cdata.cpp +libs/multi_array/test/fail_citerator.cpp +libs/multi_array/test/fail_cparen.cpp +libs/multi_array/test/fail_criterator.cpp +libs/multi_array/test/fail_csubarray2.cpp +libs/multi_array/test/fail_csubarray3.cpp +libs/multi_array/test/fail_csubarray.cpp +libs/multi_array/test/fail_cview2.cpp +libs/multi_array/test/fail_cview3.cpp +libs/multi_array/test/fail_cview.cpp +libs/multi_array/test/fail_ref_cbracket.cpp +libs/multi_array/test/fail_ref_cdata.cpp +libs/multi_array/test/fail_ref_citerator.cpp +libs/multi_array/test/fail_ref_cparen.cpp +libs/multi_array/test/fail_ref_criterator.cpp +libs/multi_array/test/fail_ref_csubarray2.cpp +libs/multi_array/test/fail_ref_csubarray3.cpp +libs/multi_array/test/fail_ref_csubarray.cpp +libs/multi_array/test/fail_ref_cview2.cpp +libs/multi_array/test/fail_ref_cview3.cpp +libs/multi_array/test/fail_ref_cview.cpp +libs/multi_array/test/generative_tests.hpp +libs/multi_array/test/idxgen1.cpp +libs/multi_array/test/index_bases.cpp +libs/multi_array/test/iterators.cpp +libs/multi_array/test/range1.cpp +libs/multi_array/test/reshape.cpp +libs/multi_array/test/resize.cpp +libs/multi_array/test/slice.cpp +libs/multi_array/test/stl_interaction.cpp +libs/multi_array/test/storage_order.cpp +libs/multi_index/example/basic.cpp +libs/multi_index/example/bimap.cpp +libs/multi_index/example/complex_structs.cpp +libs/multi_index/example/composite_keys.cpp +libs/multi_index/example/hashed.cpp +libs/multi_index/example/non_default_ctor.cpp +libs/multi_index/example/random_access.cpp +libs/multi_index/example/rearrange.cpp +libs/multi_index/example/sequenced.cpp +libs/multi_index/example/serialization.cpp +libs/multi_index/perf/test_perf.cpp +libs/multi_index/test/test_basic.cpp +libs/multi_index/test/test_capacity.cpp +libs/multi_index/test/test_comparison.cpp +libs/multi_index/test/test_composite_key.cpp +libs/multi_index/test/test_conv_iterators.cpp +libs/multi_index/test/test_copy_assignment.cpp +libs/multi_index/test/test_hash_ops.cpp +libs/multi_index/test/test_iterators.cpp +libs/multi_index/test/test_key_extractors.cpp +libs/multi_index/test/test_list_ops.cpp +libs/multi_index/test/test_modifiers.cpp +libs/multi_index/test/test_mpl_ops.cpp +libs/multi_index/test/test_observers.cpp +libs/multi_index/test/test_projection.cpp +libs/multi_index/test/test_range.cpp +libs/multi_index/test/test_rearrange.cpp +libs/multi_index/test/test_safe_mode.cpp +libs/multi_index/test/test_serialization1.cpp +libs/multi_index/test/test_serialization2.cpp +libs/multi_index/test/test_set_ops.cpp +libs/multi_index/test/test_special_set_ops.cpp +libs/multi_index/test/test_update.cpp +libs/preprocessor/doc/examples/array_arithmetic.c +libs/preprocessor/doc/examples/catch_builtin.cpp +libs/preprocessor/doc/examples/delay.c +libs/preprocessor/doc/examples/duffs_device.c +libs/preprocessor/doc/examples/is_integral.cpp +libs/preprocessor/doc/examples/linear_fib.c +libs/ptr_container/test/incomplete_type_test.cpp +libs/ptr_container/test/ptr_array.cpp +libs/ptr_container/test/simple_test.cpp +libs/ptr_container/test/tree_test.cpp +libs/ptr_container/test/view_example.cpp +libs/python/doc/building.rst +libs/python/doc/internals.rst +libs/python/doc/PyConDC_2003/bpl.pdf +libs/python/doc/v2/callbacks.txt +libs/python/example/quickstart/boost-build.jam +libs/python/example/quickstart/extending.cpp +libs/python/example/quickstart/Jamroot +libs/python/example/tutorial/Jamroot +libs/python/test/input_iterator.cpp +libs/python/test/iterator.cpp +libs/python/test/iterator.py +libs/python/test/map_indexing_suite.cpp +libs/python/test/map_indexing_suite.py +libs/python/test/pickle1.cpp +libs/python/test/pickle2.cpp +libs/python/test/pickle3.cpp +libs/python/test/pickle4.cpp +libs/python/test/vector_indexing_suite.cpp +libs/python/test/vector_indexing_suite.py +libs/random/nondet_random_speed.cpp +libs/random/random_demo.cpp +libs/random/random_speed.cpp +libs/random/random_test.cpp +libs/range/test/algorithm_example.cpp +libs/range/test/array.cpp +libs/range/test/iterator_pair.cpp +libs/range/test/iterator_range.cpp +libs/range/test/reversible_range.cpp +libs/range/test/std_container.cpp +libs/range/test/string.cpp +libs/range/test/sub_range.cpp +libs/regex/build/generic.mak +libs/regex/example/grep/grep.cpp +libs/regex/example/snippets/captures_example.cpp +libs/regex/example/snippets/credit_card_example.cpp +libs/regex/example/snippets/partial_regex_grep.cpp +libs/regex/example/snippets/partial_regex_match.cpp +libs/regex/example/snippets/regex_grep_example_1.cpp +libs/regex/example/snippets/regex_grep_example_2.cpp +libs/regex/example/snippets/regex_grep_example_3.cpp +libs/regex/example/snippets/regex_grep_example_4.cpp +libs/regex/example/snippets/regex_iterator_example.cpp +libs/regex/example/snippets/regex_match_example.cpp +libs/regex/example/snippets/regex_merge_example.cpp +libs/regex/example/snippets/regex_replace_example.cpp +libs/regex/example/snippets/regex_search_example.cpp +libs/regex/example/snippets/regex_split_example_1.cpp +libs/regex/example/snippets/regex_split_example_2.cpp +libs/regex/example/snippets/regex_token_iterator_eg_1.cpp +libs/regex/example/snippets/regex_token_iterator_eg_2.cpp +libs/regex/example/timer/regex_timer.cpp +libs/regex/test/captures/captures_test.cpp +libs/regex/test/concepts/concept_check.cpp +libs/regex/test/pathology/bad_expression_test.cpp +libs/regex/test/pathology/recursion_test.cpp +libs/regex/test/regress/basic_tests.cpp +libs/regex/test/regress/main.cpp +libs/regex/test/regress/test_deprecated.cpp +libs/serialization/example/demo_auto_ptr.cpp +libs/serialization/example/demo.cpp +libs/serialization/example/demo_exception.cpp +libs/serialization/example/demo_fast_archive.cpp +libs/serialization/example/demofile.txt +libs/serialization/example/demo_output.txt +libs/serialization/example/demo_pimpl_A.cpp +libs/serialization/example/demo_pimpl.cpp +libs/serialization/example/demo_polymorphic_A.cpp +libs/serialization/example/demo_polymorphic_A.hpp +libs/serialization/example/demo_polymorphic.cpp +libs/serialization/example/demo_portable_archive.cpp +libs/serialization/example/demo_save.xml +libs/serialization/example/demo_shared_ptr.cpp +libs/serialization/example/demo_xml.cpp +libs/serialization/example/demo_xml.hpp +libs/serialization/example/demo_xml_load.cpp +libs/serialization/example/demo_xml_save.cpp +libs/serialization/test/test_delete_pointer.cpp +libs/serialization/test/test_diamond.cpp +libs/serialization/test/test_no_rtti.cpp +libs/signals/example/doc_view.cpp +libs/signals/test/dead_slot_test.cpp +libs/signals/test/deletion_test.cpp +libs/signals/test/ordering_test.cpp +libs/signals/test/signal_n_test.cpp +libs/signals/test/signal_test.cpp +libs/signals/test/trackable_test.cpp +libs/smart_ptr/example/scoped_ptr_example.cpp +libs/smart_ptr/example/scoped_ptr_example.hpp +libs/smart_ptr/example/scoped_ptr_example_test.cpp +libs/smart_ptr/example/shared_ptr_example2.cpp +libs/smart_ptr/example/shared_ptr_example2.hpp +libs/smart_ptr/example/shared_ptr_example2_test.cpp +libs/smart_ptr/example/shared_ptr_example.cpp +libs/smart_ptr/smarttest.zip +libs/smart_ptr/test/pointer_cast_test.cpp +libs/smart_ptr/test/pointer_to_other_test.cpp +libs/smart_ptr/test/smart_ptr_test.cpp +libs/statechart/doc/rationale.pdf +libs/statechart/doc/reference.pdf +libs/statechart/doc/tutorial.pdf +libs/statechart/test/TuTest.cpp +libs/statechart/test/TuTest.hpp +libs/statechart/test/TuTestMain.cpp +libs/static_assert/static_assert_example_1.cpp +libs/static_assert/static_assert_example_2.cpp +libs/static_assert/static_assert_example_3.cpp +libs/static_assert/static_assert_test.cpp +libs/static_assert/static_assert_test_fail_1.cpp +libs/static_assert/static_assert_test_fail_2.cpp +libs/static_assert/static_assert_test_fail_3.cpp +libs/static_assert/static_assert_test_fail_4.cpp +libs/static_assert/static_assert_test_fail_5.cpp +libs/static_assert/static_assert_test_fail_6.cpp +libs/static_assert/static_assert_test_fail_7.cpp +libs/static_assert/static_assert_test_fail_8.cpp +libs/static_assert/static_assert_test_fail_9.cpp +libs/test/example/exec_mon_example.cpp +libs/test/example/prg_exec_example.cpp +libs/test/example/test_case_template_example.cpp +libs/test/example/unit_test_example_01.cpp +libs/test/example/unit_test_example_02.cpp +libs/test/example/unit_test_example_03.cpp +libs/test/example/unit_test_example_04.cpp +libs/test/example/unit_test_example_05.cpp +libs/test/src/compiler_log_formatter.cpp +libs/test/src/cpp_main.cpp +libs/test/src/exception_safety.cpp +libs/test/src/execution_monitor.cpp +libs/test/src/framework.cpp +libs/test/src/interaction_based.cpp +libs/test/src/logged_expectations.cpp +libs/test/src/plain_report_formatter.cpp +libs/test/src/progress_monitor.cpp +libs/test/src/results_collector.cpp +libs/test/src/results_reporter.cpp +libs/test/src/test_tools.cpp +libs/test/src/unit_test_log.cpp +libs/test/src/unit_test_main.cpp +libs/test/src/unit_test_monitor.cpp +libs/test/src/unit_test_parameters.cpp +libs/test/src/unit_test_suite.cpp +libs/test/src/xml_log_formatter.cpp +libs/test/src/xml_report_formatter.cpp +libs/test/test/custom_exception_test.cpp +libs/test/test/errors_handling_test.cpp +libs/test/test/minimal_test.cpp +libs/test/test/online_test.cpp +libs/test/test/output_test_stream_test.cpp +libs/test/test/parameterized_test_test.cpp +libs/test/test/prg_exec_fail1.cpp +libs/test/test/prg_exec_fail2.cpp +libs/test/test/prg_exec_fail3.cpp +libs/test/test/prg_exec_fail4.cpp +libs/test/test/result_report_test.cpp +libs/test/test/test_case_template_test.cpp +libs/test/test/test_files/errors_handling_test.pattern +libs/test/test/test_files/result_report_test.pattern +libs/test/test/test_fp_comparisons.cpp +libs/test/test/test_tools_test.cpp +libs/type_traits/examples/copy_example.cpp +libs/type_traits/examples/fill_example.cpp +libs/type_traits/examples/iter_swap_example.cpp +libs/type_traits/examples/trivial_destructor_example.cpp +libs/utility/addressof_test.cpp +libs/utility/base_from_member_test.cpp +libs/utility/call_traits_test.cpp +libs/utility/iterators_test.cpp +libs/utility/noncopyable_test.cpp +libs/utility/operators_test.cpp +libs/utility/shared_iterator_example1.cpp +libs/utility/shared_iterator_example2.cpp +libs/utility/shared_iterator_example3.cpp +libs/wave/ChangeLog +more/blanket-permission.txt +tools/build/v2/hacking.txt +tools/inspect/build/Jamfile.v2 +tools/inspect/inspect.cpp +tools/inspect/inspector.hpp +tools/inspect/link_check.cpp +tools/inspect/link_check.hpp +tools/inspect/tab_check.cpp +tools/inspect/tab_check.hpp +tools/quickbook/doc/quickbook.qbk diff --git a/libreoffice_compat_backports.patch b/libreoffice_compat_backports.patch new file mode 100644 index 0000000..502eb86 --- /dev/null +++ b/libreoffice_compat_backports.patch @@ -0,0 +1,17 @@ +Backport Boost::Optional::has_value() from +https://github.com/boostorg/optional/commit/5182f7f30fad87023ae5e5a4e1f660fb513fb469 +needed by LibreOffice 6.4.2 + + +Index: boost_1_66_0/boost/optional/optional.hpp +=================================================================== +--- boost_1_66_0.orig/boost/optional/optional.hpp ++++ boost_1_66_0/boost/optional/optional.hpp +@@ -1334,6 +1334,7 @@ class optional + #endif + + bool operator!() const BOOST_NOEXCEPT { return !this->is_initialized() ; } ++ bool has_value() const BOOST_NOEXCEPT { return this->is_initialized() ; } + + BOOST_EXPLICIT_OPERATOR_BOOL_NOEXCEPT() + } ; diff --git a/python_library_name.patch b/python_library_name.patch new file mode 100644 index 0000000..f3da6cd --- /dev/null +++ b/python_library_name.patch @@ -0,0 +1,176 @@ +Python module needs to be built without these extra renames. +MPI module needs to reference correct python + +~Index: boost_1_64_0/libs/mpi/build/Jamfile.v2 +~=================================================================== +~--- boost_1_64_0.orig/libs/mpi/build/Jamfile.v2 +~+++ boost_1_64_0/libs/mpi/build/Jamfile.v2 +~@@ -61,10 +61,10 @@ libraries += boost_mpi ; +~ lib boost_mpi_python +~ : # Sources +~ python/serialize.cpp +~+ /user-config//boost_python_alias +~ : # Requirements +~ boost_mpi +~ /mpi//mpi [ mpi.extra-requirements ] +~- /boost/python//boost_python +~ shared:BOOST_MPI_DYN_LINK=1 +~ shared:BOOST_MPI_PYTHON_DYN_LINK=1 +~ shared:BOOST_PYTHON_DYN_LINK=1 +~@@ -92,8 +92,8 @@ libraries += boost_mpi ; +~ python/skeleton_and_content.cpp +~ python/status.cpp +~ python/py_timer.cpp +~+ /user-config//boost_python_alias +~ : # Requirements +~- /boost/python//boost_python +~ boost_mpi_python +~ boost_mpi +~ /mpi//mpi [ mpi.extra-requirements ] +Index: boost_1_65_0/libs/python/build/Jamfile +=================================================================== +--- boost_1_65_0.orig/libs/python/build/Jamfile ++++ boost_1_65_0/libs/python/build/Jamfile +@@ -42,15 +42,15 @@ rule cond ( test ? : yes * : no * ) { if + rule unless ( test ? : yes * : no * ) { if ! $(test) { return $(yes) ; } else { return $(no) ; } } + local rule eq ( a : b ) { if $(a) = $(b) { return 1 ; } } + +-lib_boost_python(2) = boost_python ; +-lib_boost_python(3) = boost_python3 ; ++#lib_boost_python(2) = boost_python ; ++#lib_boost_python(3) = boost_python3 ; + +-lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ; +-lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ; ++#lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ; ++#lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ; + + rule lib_boost_python ( version ) + { +- lib $(lib_boost_python($(version))) ++ lib boost_python #$(lib_boost_python($(version))) + : # sources + list.cpp + long.cpp +@@ -121,16 +121,16 @@ rule lib_boost_python ( version ) + ; + } + +-lib_boost_numpy(2) = boost_numpy ; +-lib_boost_numpy(3) = boost_numpy3 ; ++#lib_boost_numpy(2) = boost_numpy ; ++#lib_boost_numpy(3) = boost_numpy3 ; + +-lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ; +-lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ; ++#lib_boost_numpy($(py2-version)) = $(lib_boost_numpy(2)) ; ++#lib_boost_numpy($(py3-version)) = $(lib_boost_numpy(3)) ; + + rule lib_boost_numpy ( version ) + { + numpy-include = [ python.numpy-include ] ; +- lib $(lib_boost_numpy($(version))) ++ lib boost_numpy #$(lib_boost_numpy($(version))) + : # sources + numpy/dtype.cpp + numpy/matrix.cpp +@@ -172,7 +172,7 @@ for local N in 2 3 + } + else + { +- alias $(lib_boost_python($(N))) ; ++ #alias $(lib_boost_python($(N))) ; + } + if $(py$(N)-version) && [ python.numpy ] + { +@@ -181,7 +181,7 @@ for local N in 2 3 + } + else + { +- alias $(lib_boost_numpy($(N))) ; ++ #alias $(lib_boost_numpy($(N))) ; + } + } + +Index: boost_1_65_0/libs/mpi/build/Jamfile.v2 +=================================================================== +--- boost_1_65_0.orig/libs/mpi/build/Jamfile.v2 ++++ boost_1_65_0/libs/mpi/build/Jamfile.v2 +@@ -58,33 +58,13 @@ libraries += boost_mpi ; + + if [ python.configured ] + { +- py2-version = [ py-version 2 ] ; +- py3-version = [ py-version 3 ] ; +- +- # These library names are synchronized with those defined by Boost.Python, see libs/python/build/Jamfile. +- lib_boost_python(2) = boost_python ; +- lib_boost_python(3) = boost_python3 ; +- +- lib_boost_python($(py2-version)) = $(lib_boost_python(2)) ; +- lib_boost_python($(py3-version)) = $(lib_boost_python(3)) ; +- +- lib_boost_mpi_python(2) = boost_mpi_python ; +- lib_boost_mpi_python(3) = boost_mpi_python3 ; +- +- lib_boost_mpi_python($(py2-version)) = $(lib_boost_mpi_python(2)) ; +- lib_boost_mpi_python($(py3-version)) = $(lib_boost_mpi_python(3)) ; +- +- for local N in 2 3 +- { +- if $(py$(N)-version) +- { +- lib $(lib_boost_mpi_python($(py$(N)-version))) ++ lib boost_mpi_python + : # Sources + python/serialize.cpp + : # Requirements + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] +- /boost/python//$(lib_boost_python($(py$(N)-version))) ++ /boost/python//boost_python + shared:BOOST_MPI_DYN_LINK=1 + shared:BOOST_MPI_PYTHON_DYN_LINK=1 + shared:BOOST_PYTHON_DYN_LINK=1 +@@ -92,12 +72,12 @@ libraries += boost_mpi ; + -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag + @$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).python-tag + on:BOOST_DEBUG_PYTHON +- $(py$(N)-version) + : # Default build + shared + : # Usage requirements + /mpi//mpi [ mpi.extra-requirements ] + ; ++ libraries += boost_mpi_python ; + + python-extension mpi + : # Sources +@@ -114,8 +94,8 @@ libraries += boost_mpi ; + python/status.cpp + python/py_timer.cpp + : # Requirements +- /boost/python//$(lib_boost_python($(py$(N)-version))) +- $(lib_boost_mpi_python($(py$(N)-version))) ++ /boost/python//boost_python ++ boost_mpi_python + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] + shared:BOOST_MPI_DYN_LINK=1 +@@ -123,16 +103,7 @@ libraries += boost_mpi ; + shared:BOOST_PYTHON_DYN_LINK=1 + shared shared + on:BOOST_DEBUG_PYTHON +- $(py$(N)-version) + ; +- +- libraries += $(lib_boost_mpi_python($(py$(N)-version))) ; +- } +- else +- { +- alias $(lib_boost_mpi_python($(N))) ; +- } +- } + } + } + else if ! ( --without-mpi in [ modules.peek : ARGV ] ) diff --git a/python_mpi.patch b/python_mpi.patch new file mode 100644 index 0000000..e0d7d70 --- /dev/null +++ b/python_mpi.patch @@ -0,0 +1,27 @@ +Author: Adam Majer +Summary: Fix MPI module loading + +MPI requires dl.RTLD_NOW|dl.RTLD_GLOBAL flags to load +properly. + + +Index: boost_1_64_0/libs/mpi/build/__init__.py +=================================================================== +--- boost_1_64_0.orig/libs/mpi/build/__init__.py ++++ boost_1_64_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) + diff --git a/python_numpy_retfunc.patch b/python_numpy_retfunc.patch new file mode 100644 index 0000000..763fa04 --- /dev/null +++ b/python_numpy_retfunc.patch @@ -0,0 +1,22 @@ +Author: Adam Majer +Date: Tue Apr 4 10:18:49 CEST 2017 +Summary: rpmlint fixes? + +After build, the following errors were returned. + +[ 110s] libs/python/src/numpy/numpy.cpp: In function 'void* boost::python::numpy::wrap_import_array()': +[ 110s] libs/python/src/numpy/numpy.cpp:22:1: warning: control reaches end of non-void function [-Wreturn-type] +[ 110s] } + +Index: boost_1_64_0/libs/python/src/numpy/numpy.cpp +=================================================================== +--- boost_1_64_0.orig/libs/python/src/numpy/numpy.cpp ++++ boost_1_64_0/libs/python/src/numpy/numpy.cpp +@@ -19,6 +19,7 @@ static void wrap_import_array() + static void * wrap_import_array() + { + import_array(); ++ return NULL; // import_array no longer auto-returns? + } + #endif + diff --git a/symbol_diff.sh b/symbol_diff.sh new file mode 100644 index 0000000..e65be58 --- /dev/null +++ b/symbol_diff.sh @@ -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 diff --git a/variant.patch b/variant.patch new file mode 100644 index 0000000..7693b60 --- /dev/null +++ b/variant.patch @@ -0,0 +1,102 @@ +commit 33784034b70a6607c9413633375e84912213a123 +Author: Pawel Dac +Date: Tue Nov 7 17:49:15 2017 +0100 + + Perfect forwarding for passing visitor in apply_visitor. + + Allows to catch Visitor&&, Visitor& and const Visitor&. + + Removed apply_visitor with const Visitor& since it was catching inlined Visitors&&. + Passing const Visitor to result_wrapper resulted in compilation error when Visitor was mutable. + +commit 03035b2f6b5d48d82270725f6eb52968180a2c64 +Author: Antony Polukhin +Date: Thu Jul 23 15:28:07 2020 +0300 + + Fix wrong usage of boost::move (fixes #53, #82) + +Index: boost_1_66_0/boost/variant/detail/apply_visitor_unary.hpp +=================================================================== +--- boost_1_66_0.orig/boost/variant/detail/apply_visitor_unary.hpp ++++ boost_1_66_0/boost/variant/detail/apply_visitor_unary.hpp +@@ -155,9 +155,9 @@ struct result_wrapper1 + { + typedef decltype(result_multideduce1::deduce()) result_type; + +- Visitor& visitor_; +- explicit result_wrapper1(Visitor& visitor) BOOST_NOEXCEPT +- : visitor_(visitor) ++ Visitor&& visitor_; ++ explicit result_wrapper1(Visitor&& visitor) BOOST_NOEXCEPT ++ : visitor_(::boost::forward(visitor)) + {} + + template +@@ -169,26 +169,15 @@ struct result_wrapper1 + }} // namespace detail::variant + + template +-inline decltype(auto) apply_visitor(Visitor& visitor, Visitable&& visitable, ++inline decltype(auto) apply_visitor(Visitor&& visitor, Visitable&& visitable, + typename boost::disable_if< + boost::detail::variant::has_result_type + >::type* = 0) + { +- boost::detail::variant::result_wrapper1::type> cpp14_vis(visitor); ++ boost::detail::variant::result_wrapper1::type> cpp14_vis(::boost::forward(visitor)); + return ::boost::forward(visitable).apply_visitor(cpp14_vis); + } + +-template +-inline decltype(auto) apply_visitor(const Visitor& visitor, Visitable&& visitable, +- typename boost::disable_if< +- boost::detail::variant::has_result_type +- >::type* = 0) +-{ +- boost::detail::variant::result_wrapper1::type> cpp14_vis(visitor); +- return ::boost::forward(visitable).apply_visitor(cpp14_vis); +-} +- +- + #endif // !defined(BOOST_NO_CXX14_DECLTYPE_AUTO) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276) + + } // namespace boost +Index: boost_1_66_0/libs/variant/test/const_ref_apply_visitor.cpp +=================================================================== +--- boost_1_66_0.orig/libs/variant/test/const_ref_apply_visitor.cpp ++++ boost_1_66_0/libs/variant/test/const_ref_apply_visitor.cpp +@@ -190,6 +190,13 @@ void test_cpp14_visitor(const variant_ty + BOOST_CHECK(boost::apply_visitor([](auto&& v) { return lvalue_rvalue_detector()(FORWARD(v)); }, test_var) == "lvalue reference"); + } + ++void test_cpp14_mutable_visitor(const variant_type& test_var) ++{ ++ std::cout << "Testing const lvalue visitable for c++14 with inline mutable lambda\n"; ++ ++ BOOST_CHECK(boost::apply_visitor([](auto&& v) mutable -> auto { return lvalue_rvalue_detector()(FORWARD(v)); }, test_var) == "lvalue reference"); ++} ++ + void test_cpp14_visitor(const variant_type& test_var, const variant_type& test_var2) + { + std::cout << "Testing const lvalue visitable for c++14\n"; +@@ -329,6 +336,7 @@ void run_cpp14_tests() + variant_type v1(10), v2(20), v3(30); + + test_cpp14_visitor(v1); ++ test_cpp14_mutable_visitor(v1); + test_cpp14_visitor(v2, v3); + test_cpp14_visitor(v1, v2, v3); + +Index: boost_1_66_0/boost/variant/variant.hpp +=================================================================== +--- boost_1_66_0.orig/boost/variant/variant.hpp ++++ boost_1_66_0/boost/variant/variant.hpp +@@ -1048,7 +1048,7 @@ public: // internal visitor interfaces + template + typename enable_if_c::value, result_type>::type internal_visit(T&& operand, int) + { +- return visitor_(::boost::move(operand)); ++ return visitor_(::boost::move(operand)); + } + + //using workaround with is_same to prenvent compilation error, because we need to use T in enable_if to make SFINAE work