diff --git a/baselibs.conf b/baselibs.conf index 8b02943..ba3e3fa 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,23 +1,24 @@ boost-devel requires -boost- -libboost_atomic1_59_0 -libboost_container1_59_0 -libboost_context1_59_0 -libboost_coroutine1_59_0 -libboost_date_time1_59_0 -libboost_filesystem1_59_0 -libboost_graph1_59_0 -libboost_graph_parallel1_59_0 -libboost_iostreams1_59_0 -libboost_math1_59_0 -libboost_mpi1_59_0 -libboost_test1_59_0 -libboost_program_options1_59_0 -libboost_python1_59_0 -libboost_random1_59_0 -libboost_serialization1_59_0 -libboost_signals1_59_0 -libboost_system1_59_0 -libboost_thread1_59_0 -libboost_wave1_59_0 -libboost_regex1_59_0 +libboost_atomic1_60_0 +libboost_container1_60_0 +libboost_context1_60_0 +libboost_coroutine1_60_0 +libboost_date_time1_60_0 +libboost_filesystem1_60_0 +libboost_graph1_60_0 +libboost_graph_parallel1_60_0 +libboost_iostreams1_60_0 +libboost_math1_60_0 +libboost_mpi1_60_0 +libboost_test1_60_0 +libboost_program_options1_60_0 +libboost_python1_60_0 +libboost_random1_60_0 +libboost_serialization1_60_0 +libboost_signals1_60_0 +libboost_system1_60_0 +libboost_thread1_60_0 +libboost_type_erasure1_60_0 +libboost_wave1_60_0 +libboost_regex1_60_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..0858fe4 --- /dev/null +++ b/boost-1.55.0-python-test-PyImport_AppendInittab.patch @@ -0,0 +1,98 @@ +diff -up boost_1_55_0/libs/python/test/exec.cpp\~ boost_1_55_0/libs/python/test/exec.cpp +--- boost_1_55_0/libs/python/test/exec.cpp~ 2010-07-05 00:38:38.000000000 +0200 ++++ boost_1_55_0/libs/python/test/exec.cpp 2015-01-09 21:31:12.903218280 +0100 +@@ -56,6 +56,20 @@ void eval_test() + 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() + { + // Register the module with the interpreter +@@ -68,6 +82,8 @@ void exec_test() + ) == -1) + throw std::runtime_error("Failed to add embedded_hello to the interpreter's " + "builtin modules"); ++ ++ PyCtx ctx; + // Retrieve the main module + python::object main = python::import("__main__"); + +@@ -148,41 +164,43 @@ void check_pyerr(bool pyerr_expected=fal + } + } + ++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); + std::string script = argv[1]; +- // Initialize the interpreter +- Py_Initialize(); + +- if (python::handle_exception(eval_test)) { +- check_pyerr(); +- } +- else if(python::handle_exception(exec_test)) { +- check_pyerr(); +- } +- else if (python::handle_exception(boost::bind(exec_file_test, script))) { ++ // N.B. exec_test mustn't be called through run_and_handle_exception ++ // as it needs to handles the python context by itself. ++ if (run_and_handle_exception(eval_test) ++ || python::handle_exception(exec_test)) + check_pyerr(); +- } +- +- 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. + exercise_embedding_html(); + } + +- // Boost.Python doesn't support Py_Finalize yet. +- // Py_Finalize(); + return boost::report_errors(); + } + + +Diff finished. Fri Jan 9 21:31:13 2015 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..741d1f2 --- /dev/null +++ b/boost-1.57.0-python-abi_letters.patch @@ -0,0 +1,62 @@ +--- boost_1_57_0/tools/build/src/tools/python.jam 2013-05-21 06:14:18.000000000 +0200 ++++ boost_1_55_0/tools/build/src/tools/python.jam 2014-05-29 19:09:12.115413877 +0200 +@@ -94,7 +94,7 @@ feature.feature pythonpath : : free opti + # 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) ; + +@@ -107,7 +107,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 ; + } +@@ -653,7 +653,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. +@@ -677,13 +677,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 ; +@@ -699,6 +699,7 @@ local rule configure ( version ? : cmd-o + extension-suffix ?= _d ; + } + extension-suffix ?= "" ; ++ abi-letters ?= "" ; + + # Normalize and dissect any version number. + local major-minor ; +@@ -922,7 +923,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..bd14b54 --- /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-1.59-python-make_setter.patch b/boost-1.59-python-make_setter.patch deleted file mode 100644 index 6609dd2..0000000 --- a/boost-1.59-python-make_setter.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f410fbd64d887e2a8824f968b0533588489b5430 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Wed, 2 Sep 2015 13:02:12 +0100 -Subject: [PATCH] Python: Fix condition for make_setter overload. - -This fixes the regression caused by 42e7d7b. - -Fixes #39 ---- - include/boost/python/data_members.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/python/data_members.hpp b/include/boost/python/data_members.hpp -index 139bde3..5d3309c 100644 ---- a/boost/python/data_members.hpp -+++ b/boost/python/data_members.hpp -@@ -305,7 +305,7 @@ inline object make_setter(D& x) - return detail::make_setter(x, default_call_policies(), is_member_pointer(), 0); - } - --# if BOOST_WORKAROUND(__EDG_VERSION__, <= 238) -+# if !BOOST_WORKAROUND(__EDG_VERSION__, <= 238) - template - inline object make_setter(D const& x) - { diff --git a/boost-disable-pch-on-aarch64.patch b/boost-disable-pch-on-aarch64.patch index f9d38d7..4fa8ecb 100644 --- a/boost-disable-pch-on-aarch64.patch +++ b/boost-disable-pch-on-aarch64.patch @@ -1,7 +1,6 @@ -Index: boost_1_58_0/libs/math/build/Jamfile.v2 -=================================================================== ---- boost_1_58_0.orig/libs/math/build/Jamfile.v2 -+++ boost_1_58_0/libs/math/build/Jamfile.v2 +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. @@ -18,7 +17,7 @@ Index: boost_1_58_0/libs/math/build/Jamfile.v2 - gcc,windows:off #gcc:-fvisibility=hidden intel-linux:-fvisibility=hidden - sun:-xldscope=hidden + #sun:-xldscope=hidden [ check-target-builds ../config//has_gcc_visibility "gcc visibility" : gcc:-fvisibility=hidden : ] ; @@ -26,7 +25,7 @@ Index: boost_1_58_0/libs/math/build/Jamfile.v2 C99_SOURCES = acosh asinh -@@ -80,19 +74,19 @@ obj long_double_check : ../config/has_lo +@@ -80,19 +74,19 @@ explicit long_double_check ; # Library targets @@ -49,7 +48,7 @@ Index: boost_1_58_0/libs/math/build/Jamfile.v2 : shared:BOOST_MATH_TR1_DYN_LINK=1 ../config//has_long_double_support -@@ -100,19 +94,19 @@ lib boost_math_tr1l : ../src/tr1/$(TR1_S +@@ -100,19 +94,19 @@ [ check-target-builds ../config//has_long_double_support "long double support" : : no ] ; @@ -72,3 +71,5 @@ Index: boost_1_58_0/libs/math/build/Jamfile.v2 : 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.changes b/boost.changes index 6ac4380..385626b 100644 --- a/boost.changes +++ b/boost.changes @@ -1,8 +1,36 @@ +------------------------------------------------------------------- +Mon Jan 4 13:28:22 UTC 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 21:37:07 UTC 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 15:31:10 UTC 2015 - egeorget@openmailbox.org - Add support to Boost:Python3 (boo#951902) - * New library: python3 + * New library: python3 ------------------------------------------------------------------- Tue Dec 8 15:52:49 CET 2015 - pth@suse.de diff --git a/boost.spec b/boost.spec index 3f68522..20de1bb 100644 --- a/boost.spec +++ b/boost.spec @@ -1,7 +1,7 @@ # # spec file for package boost # -# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,11 +16,11 @@ # -%define ver 1.59.0 -%define file_version 1_59_0 +%define ver 1.60.0 +%define file_version 1_60_0 %define docs_version 1.56.0 %define short_version 1_56 -%define lib_appendix 1_59_0 +%define lib_appendix 1_60_0 #Only define to 1 to generate the man pages %define build_docs 0 #Define to 0 to not package the pdf documentation @@ -62,7 +62,7 @@ %define all_libs %{most_libs} %endif Name: boost -Version: 1.59.0 +Version: 1.60.0 Release: 0 Summary: Boost C++ Libraries License: BSL-1.0 @@ -83,9 +83,12 @@ Patch6: boost-use_std_xml_catalog.patch Patch7: boost-rpmoptflags-only.patch Patch9: boost-aarch64-flags.patch Patch10: boost-disable-pch-on-aarch64.patch -Patch11: boost-1.59-python-make_setter.patch Patch12: boost-1.59-test-fenv.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 + BuildRequires: chrpath BuildRequires: dos2unix BuildRequires: fdupes @@ -94,7 +97,7 @@ BuildRequires: libbz2-devel BuildRequires: libexpat-devel BuildRequires: libicu-devel >= 4.4 BuildRequires: python-devel -BuildRequires: python3-devel +BuildRequires: python3-devel #!BuildIgnore: python BuildRequires: zlib-devel Recommends: %{all_libs} @@ -400,6 +403,14 @@ Requires: boost-license%{lib_appendix} %description -n libboost_timer%{lib_appendix} This package contains the Boost::Timer runtime library. +%package -n libboost_type_erasure%{lib_appendix} +Summary: The Boost::TypeErasure runtime library +Group: System/Libraries +Requires: boost-license%{lib_appendix} + +%description -n libboost_type_erasure%{lib_appendix} +This package contains the Boost::TypeErasure runtime library. + %if %{build_quickbook} %package -n quickbook Summary: Documentation tool geared towards C++ @@ -426,9 +437,11 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} %patch7 %patch9 -p1 %patch10 -p1 -%patch11 -p1 %patch12 -p1 %patch13 +%patch14 -p1 +%patch15 -p1 +%patch16 -p1 #stupid build machinery copies .orig files find . -name \*.orig -exec rm {} + @@ -468,11 +481,9 @@ export LONG_DOUBLE_FLAGS="--disable-long-double" BJAM_CONFIG="-d2 -j$JOBS -sICU_PATH=%{_prefix}" PYTHON_VERSION=$(python -c 'import sys; print sys.version[:3]') PYTHON3_VERSION=$(python3 -c 'import sys; print (sys.version[:3])') -PYTHON3_INCLUDE=m -PYTHON_FLAGS="--with-python-root=%{_prefix} --with-python-version=$PYTHON_VERSION" +PYTHON3_ABIFLAGS=m export REGEX_FLAGS="--with-icu" export EXPAT_INCLUDE=%{_includedir} EXPAT_LIBPATH=%{_libdir} -export PYTHON_FLAGS LIBRARIES_FLAGS=--with-libraries=all %if !%{build_context} # coroutine/coroutine2 depend on context @@ -500,15 +511,27 @@ local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; using gcc : : : \$(RPM_OPT_FLAGS) ; +using python + : $PYTHON_VERSION + : /usr/bin/python2 + : /usr/include/python$PYTHON_VERSION + : + : + : + : + ; + using python : $PYTHON3_VERSION : /usr/bin/python$PYTHON3_VERSION - : /usr/include/python$PYTHON3_VERSION$PYTHON3_INCLUDE + : /usr/include/python$PYTHON3_VERSION$PYTHON3_ABIFLAGS : /usr/lib/python$PYTHON3_VERSION : - : + : + : + $PYTHON3_ABIFLAGS ; - + EOF %if %{build_docs} @@ -830,6 +853,10 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{_bindir}/quickbook %defattr(-, root, root, -) %{_libdir}/libboost_timer*.so.* +%files -n libboost_type_erasure%{lib_appendix} +%defattr(-, root, root, -) +%{_libdir}/libboost_type_erasure*.so.* + %files devel %defattr(-, root, root, -) %{_includedir}/boost diff --git a/boost_1_59_0.tar.bz2 b/boost_1_59_0.tar.bz2 deleted file mode 100644 index 7a7a0c9..0000000 --- a/boost_1_59_0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:727a932322d94287b62abb1bd2d41723eec4356a7728909e38adb65ca25241ca -size 70389425 diff --git a/boost_1_60_0.tar.bz2 b/boost_1_60_0.tar.bz2 new file mode 100644 index 0000000..365bf7d --- /dev/null +++ b/boost_1_60_0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b +size 76553944