From 1edcfb5aae327e57d8ed108d27c86d524321508fdc0b664e035fe85a335424ac Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Wed, 16 Dec 2020 21:50:50 +0000 Subject: [PATCH] Accepting request 856565 from home:adamm:boost_test - update to 1.75.0: * new library: + Boost.JSON - JSON parsing library + Boost.LEAF - error handling library + Boost.PFR - basic reflection without macros or boilderplate code * for details on all changes see, https://www.boost.org/users/history/version_1_75_0.html - package boost's jam files so the Boost.Build is more usable - python_library_name.patch: update it to remove python version suffix and keep old sonames. We only support one python3 version at a time. - refreshed patches: boost-no_type_punning.patch boost-strict_aliasing.patch python_library_name.patch - serialization_missing_includes.patch: upstreamed - baselibs.conf: updated to new version OBS-URL: https://build.opensuse.org/request/show/856565 OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/boost?expand=0&rev=269 --- baselibs.conf | 51 +++++++++-------- boost-no_type_punning.patch | 8 +-- boost-strict_aliasing.patch | 4 +- boost.changes | 21 +++++++ boost.spec | 86 ++++++++++++++++++++-------- boost_1_74_0.tar.bz2 | 3 - boost_1_75_0.tar.bz2 | 3 + python_library_name.patch | 53 +++++++++-------- serialization_missing_includes.patch | 36 ------------ 9 files changed, 144 insertions(+), 121 deletions(-) delete mode 100644 boost_1_74_0.tar.bz2 create mode 100644 boost_1_75_0.tar.bz2 delete mode 100644 serialization_missing_includes.patch diff --git a/baselibs.conf b/baselibs.conf index 85db975..966cf22 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,25 +1,26 @@ -libboost_atomic1_74_0 -libboost_container1_74_0 -libboost_context1_74_0 -libboost_coroutine1_74_0 -libboost_date_time1_74_0 -libboost_fiber1_74_0 -libboost_filesystem1_74_0 -libboost_graph1_74_0 -libboost_graph_parallel1_74_0 -libboost_iostreams1_74_0 -libboost_locale1_74_0 -libboost_math1_74_0 -libboost_mpi1_74_0 -libboost_nowide1_74_0 -libboost_test1_74_0 -libboost_program_options1_74_0 -libboost_python-py3-1_74_0 -libboost_random1_74_0 -libboost_serialization1_74_0 -libboost_stacktrace1_74_0 -libboost_system1_74_0 -libboost_thread1_74_0 -libboost_type_erasure1_74_0 -libboost_wave1_74_0 -libboost_regex1_74_0 +libboost_atomic1_75_0 +libboost_container1_75_0 +libboost_context1_75_0 +libboost_coroutine1_75_0 +libboost_date_time1_75_0 +libboost_fiber1_75_0 +libboost_filesystem1_75_0 +libboost_graph1_75_0 +libboost_graph_parallel1_75_0 +libboost_iostreams1_75_0 +libboost_locale1_75_0 +libboost_math1_75_0 +libboost_mpi1_75_0 +libboost_nowide1_75_0 +libboost_test1_75_0 +libboost_program_options1_75_0 +libboost_python-py3-1_75_0 +libboost_random1_75_0 +libboost_serialization1_75_0 +libboost_stacktrace1_75_0 +libboost_system1_75_0 +libboost_thread1_75_0 +libboost_type_erasure1_75_0 +libboost_wave1_75_0 +libboost_regex1_75_0 +libboost_json1_75_0 diff --git a/boost-no_type_punning.patch b/boost-no_type_punning.patch index 2681e3b..3c984f8 100644 --- a/boost-no_type_punning.patch +++ b/boost-no_type_punning.patch @@ -38,19 +38,19 @@ Index: libs/python/src/long.cpp +++ libs/python/src/long.cpp @@ -8,16 +8,16 @@ namespace boost { namespace python { nam - new_non_null_reference long_base::call(object const& arg_) + new_reference long_base::call(object const& arg_) { + union { PyTypeObject *ptop; PyObject *pop; }pun = { &PyLong_Type }; - return (detail::new_non_null_reference)PyObject_CallFunction( + return (detail::new_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) + new_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( + return (detail::new_reference)PyObject_CallFunction( - (PyObject*)&PyLong_Type, const_cast("(OO)"), - arg_.ptr(), base.ptr()); + pun.pop, const_cast("(OO)"), arg_.ptr(), base.ptr()); diff --git a/boost-strict_aliasing.patch b/boost-strict_aliasing.patch index eabefb9..15d64cb 100644 --- a/boost-strict_aliasing.patch +++ b/boost-strict_aliasing.patch @@ -2,10 +2,10 @@ Index: libs/python/build/Jamfile =================================================================== --- libs/python/build/Jamfile.orig +++ libs/python/build/Jamfile -@@ -96,6 +96,7 @@ lib boost_python +@@ -94,6 +94,7 @@ lib boost_python on:BOOST_DEBUG_PYTHON -@$(BOOST_JAMROOT_MODULE)%$(BOOST_JAMROOT_MODULE).tag - @$(__name__).python-tag + @python-tag + -fno-strict-aliasing @python.require-py diff --git a/boost.changes b/boost.changes index bac9a8e..2f183ad 100644 --- a/boost.changes +++ b/boost.changes @@ -1,3 +1,24 @@ +------------------------------------------------------------------- +Mon Dec 14 15:14:58 UTC 2020 - Adam Majer + +- update to 1.75.0: + * new library: + + Boost.JSON - JSON parsing library + + Boost.LEAF - error handling library + + Boost.PFR - basic reflection without macros or boilderplate code + * for details on all changes see, + https://www.boost.org/users/history/version_1_75_0.html + +- package boost's jam files so the Boost.Build is more usable +- python_library_name.patch: update it to remove python version + suffix and keep old sonames. We only support one python3 version + at a time. + +- refreshed patches: boost-no_type_punning.patch + boost-strict_aliasing.patch python_library_name.patch +- serialization_missing_includes.patch: upstreamed +- baselibs.conf: updated to new version + ------------------------------------------------------------------- Tue Sep 29 12:20:56 UTC 2020 - Adam Majer diff --git a/boost.spec b/boost.spec index c164c6c..e2af794 100644 --- a/boost.spec +++ b/boost.spec @@ -16,14 +16,13 @@ # -%define ver 1.74.0 -%define _ver 1_74_0 -%define package_version 1_74_0 +%define ver 1.75.0 +%define _ver 1_75_0 +%define package_version 1_75_0 %define file_version %_ver %define lib_appendix %_ver %define docs_version 1.56.0 %define short_version 1_56 -%define python3X python38 %define pname boost %bcond_with build_docs %bcond_without package_pdf @@ -154,6 +153,7 @@ ExcludeArch: s390x %{ix86} ppc64 ppc64le %define package_libdir %{hpc_libdir} %define package_bindir %{hpc_bindir} %define package_includedir %{hpc_includedir} +%define package_datadir %{hpc_datadir} %define base_name %{hpc_package_name %_ver} %define package_name %{hpc_package_name %_ver} %define package_python3_sitearch %{_hpc_python_sysconfig_path /usr/bin/python3 platlib %{?hpc_prefix}} @@ -162,6 +162,7 @@ ExcludeArch: s390x %{ix86} ppc64 ppc64le %define package_bindir %{_bindir} %define package_libdir %{_libdir} %define package_includedir %{_includedir} +%define package_datadir %{_datadir} %define base_name boost%{name_suffix} %define package_python3_sitearch %python3_sitearch %endif @@ -174,9 +175,9 @@ ExcludeArch: s390x %{ix86} ppc64 ppc64le %endif Name: %{base_name} -Version: 1.74.0 +Version: 1.75.0 Release: 0 -%define library_version 1_74_0 +%define library_version 1_75_0 Summary: Boost C++ Libraries License: BSL-1.0 @@ -205,7 +206,6 @@ Patch17: python_mpi.patch Patch18: dynamic_linking.patch Patch20: python_library_name.patch Patch21: boost-remove-cmakedir.patch -Patch22: serialization_missing_includes.patch BuildRequires: fdupes BuildRequires: gmp-devel BuildRequires: libbz2-devel @@ -738,26 +738,26 @@ Obsoletes: boost-nowide-devel < 10.0.2.1 %description -n libboost_nowide%{library_version}-devel Development headers for Boost.Nowide* boost libraries. -%package -n libboost_mpi_%{python3X}-py3-%{library_version} +%package -n libboost_mpi_python-py3-%{library_version} Summary: Boost.MPI Python 3.x serialization library Group: System/Libraries Requires: boost-license%{library_version} -%description -n libboost_mpi_%{python3X}-py3-%{library_version} +%description -n libboost_mpi_python-py3-%{library_version} This package contains the Boost.MPI Python 3.x serialization inteface. -%package -n libboost_mpi_%{python3X}-py3-%{library_version}-devel +%package -n libboost_mpi_python-py3-%{library_version}-devel Summary: Development library for Boost.MPI Python 3.x serialization Group: Development/Libraries/C and C++ Requires: libboost_mpi%{library_version}-devel = %{version} -Requires: libboost_mpi_%{python3X}-py3-%{library_version} = %{version} +Requires: libboost_mpi_python-py3-%{library_version} = %{version} Requires: libboost_python-py3-%{library_version} = %{version} Conflicts: boost-devel < 1.63 Conflicts: libboost_mpi_python3-devel-impl Provides: libboost_mpi_python3-devel-impl = %{version} -%description -n libboost_mpi_%{python3X}-py3-%{library_version}-devel +%description -n libboost_mpi_python-py3-%{library_version}-devel This package contains the Boost.MPI development library for Python 3.x serialization interface @@ -980,6 +980,7 @@ Summary: Development headers for Boost.Regex library Group: Development/Libraries/C and C++ Requires: libboost_headers%{library_version}-devel = %{version} Requires: libboost_regex%{library_version} = %{version} +Requires: libicu-devel Conflicts: boost-devel < 1.63 Conflicts: libboost_regex-devel-impl Provides: libboost_regex-devel-impl = %{version} @@ -1044,6 +1045,7 @@ Requires: libboost_headers%{library_version}-devel = %{version} Requires: libboost_locale%{library_version} = %{version} Requires: libboost_system%{library_version}-devel = %{version} Requires: libboost_thread%{library_version}-devel = %{version} +Requires: libicu-devel Conflicts: boost-devel < 1.63 Conflicts: libboost_locale-devel-impl Provides: libboost_locale-devel-impl = %{version} @@ -1095,6 +1097,24 @@ Provides: libboost_type_erasure-devel-impl = %{version} %description -n libboost_type_erasure%{library_version}-devel This package contains development headers for Boost.TypeErasure library. +%package -n libboost_json%{library_version} +Summary: Boost.JSON runtime library +Group: System/Libraries +Requires: boost-license%{library_version} + +%description -n libboost_json%{library_version} +This package contains Boost::JSON runtime library. + +%package -n libboost_json%{library_version}-devel +Summary: Development headers for Boost.JSON library +Group: Development/Libraries/C and C++ +Requires: libboost_json%{library_version} = %{version} +Conflicts: libboost_json-devel-impl +Provides: libboost_json-devel-impl = %{version} + +%description -n libboost_json%{library_version}-devel +This package contains development headers for Boost.JSON library. + %package -n %{package_name}-quickbook Summary: Documentation tool geared towards C++ Group: Development/Tools/Doc Generators @@ -1133,7 +1153,6 @@ find -type f ! \( -name \*.sh -o -name \*.py -o -name \*.pl \) -exec chmod -x {} %patch18 -p1 %patch20 -p1 %patch21 -p1 -%patch22 -p1 %build find . -type f -exec chmod u+w {} + @@ -1338,7 +1357,7 @@ module load gnu %mpi_flavor %if %{with python3} ! $(ldd %{buildroot}%{package_libdir}/*.so* | grep python3-\\.) -ln -s libboost_python-py3.so %{buildroot}%{package_libdir}/libboost_python3.so +ln -s libboost_python-py3.so %{buildroot}%{package_libdir}/libboost_python3.so %endif %if %{with python3} @@ -1374,14 +1393,21 @@ install -m 0755 dist/bin/quickbook %{buildroot}%{package_bindir}/quickbook %endif %endif -%if %{build_base} || %{with hpc} -mkdir -p %{buildroot}%{package_bindir} +%if %{build_base} + %if %{without hpc} +mkdir -p %{buildroot}%{package_bindir} install -m 755 b2 %{buildroot}%{package_bindir}/bjam ln -s bjam %{buildroot}%{package_bindir}/jam + +# install boost-build jam files +mkdir -p %{buildroot}%{package_datadir}/boost-build/ +cp -r tools/build/src/* %{buildroot}%{package_datadir}/boost-build/ +rm -r %{buildroot}%{package_datadir}/boost-build/engine +find %{buildroot}%{package_datadir}/boost-build/ -type f \! -name \*.py \! -name \*.jam -delete +find %{buildroot}%{package_datadir}/boost-build/ -type f -exec chmod 644 {} + %endif -%if %{build_base} # 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, @@ -1397,7 +1423,6 @@ rm %{buildroot}%{package_libdir}/libboost_exception.so.%{version} rm -r %{buildroot}%{package_libdir}/cmake/boost_stacktrace_{backtrace,windbg}* rm -r %{buildroot}%{package_libdir}/cmake/boost_exception-* rm -r %{buildroot}%{package_libdir}/cmake/boost_graph_parallel-%{version} -%endif %fdupes %{buildroot}%{package_includedir}/boost mkdir -p %{buildroot}%{my_docdir} @@ -1477,6 +1502,7 @@ EOF %post -n libboost_serialization%{library_version} -p /sbin/ldconfig %post -n libboost_thread%{library_version} -p /sbin/ldconfig %post -n libboost_type_erasure%{library_version} -p /sbin/ldconfig +%post -n libboost_json%{library_version} -p /sbin/ldconfig %post -n libboost_math%{library_version} -p /sbin/ldconfig %post -n libboost_nowide%{library_version} -p /sbin/ldconfig %post -n libboost_graph%{library_version} -p /sbin/ldconfig @@ -1501,7 +1527,7 @@ EOF %post -n libboost_graph_parallel%{library_version} -p /sbin/ldconfig %if %{with python3} -%post -n libboost_mpi_%{python3X}-py3-%{library_version} -p /sbin/ldconfig +%post -n libboost_mpi_python-py3-%{library_version} -p /sbin/ldconfig %endif %endif @@ -1527,6 +1553,7 @@ EOF %postun -n libboost_serialization%{library_version} -p /sbin/ldconfig %postun -n libboost_thread%{library_version} -p /sbin/ldconfig %postun -n libboost_type_erasure%{library_version} -p /sbin/ldconfig +%postun -n libboost_json%{library_version} -p /sbin/ldconfig %postun -n libboost_math%{library_version} -p /sbin/ldconfig %postun -n libboost_nowide%{library_version} -p /sbin/ldconfig %postun -n libboost_graph%{library_version} -p /sbin/ldconfig @@ -1551,7 +1578,7 @@ EOF %postun -n libboost_graph_parallel%{library_version} -p /sbin/ldconfig %if %{with python3} -%postun -n libboost_mpi_%{python3X}-py3-%{library_version} -p /sbin/ldconfig +%postun -n libboost_mpi_python-py3-%{library_version} -p /sbin/ldconfig %endif %endif @@ -1587,6 +1614,8 @@ EOF %files -n boost%{library_version}-jam %{package_bindir}/bjam %{package_bindir}/jam +%dir %{package_datadir}/boost-build +%{package_datadir}/boost-build/* %files -n libboost_atomic%{library_version} %{package_libdir}/libboost_atomic.so.%{version} @@ -1765,14 +1794,14 @@ EOF %{package_libdir}/libboost_graph_parallel.so %if %{with python3} -%files -n libboost_mpi_%{python3X}-py3-%{library_version} -%{package_libdir}/libboost_mpi_%{python3X}-py3.so.%{version} +%files -n libboost_mpi_python-py3-%{library_version} +%{package_libdir}/libboost_mpi_python-py3.so.%{version} -%files -n libboost_mpi_%{python3X}-py3-%{library_version}-devel +%files -n libboost_mpi_python-py3-%{library_version}-devel %dir %{package_libdir}/cmake/boost_mpi_python-%{version} %{package_libdir}/cmake/boost_mpi_python-%{version}/* %endif -%{package_libdir}/libboost_mpi_%{python3X}-py3.so +%{package_libdir}/libboost_mpi_python-py3.so %files -n python3-boost_parallel_mpi%{library_version} %dir %{package_python3_sitearch}/boost @@ -1909,6 +1938,15 @@ EOF %dir %{package_libdir}/cmake/boost_type_erasure-%{version} %{package_libdir}/cmake/boost_type_erasure-%{version}/* %{package_libdir}/libboost_type_erasure.so + +%files -n libboost_json%{library_version} +%{package_libdir}/libboost_json.so.%{version} + +%files -n libboost_json%{library_version}-devel +%dir %{package_libdir}/cmake/boost_json-%{version} +%{package_libdir}/cmake/boost_json-%{version}/* +%{package_libdir}/libboost_json.so + %endif %if ! %{build_base} diff --git a/boost_1_74_0.tar.bz2 b/boost_1_74_0.tar.bz2 deleted file mode 100644 index 8a710e9..0000000 --- a/boost_1_74_0.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1 -size 109600630 diff --git a/boost_1_75_0.tar.bz2 b/boost_1_75_0.tar.bz2 new file mode 100644 index 0000000..264f57c --- /dev/null +++ b/boost_1_75_0.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb +size 121849575 diff --git a/python_library_name.patch b/python_library_name.patch index a358c7e..6269c04 100644 --- a/python_library_name.patch +++ b/python_library_name.patch @@ -27,33 +27,32 @@ MPI module needs to reference correct python ~ boost_mpi_python ~ boost_mpi ~ /mpi//mpi [ mpi.extra-requirements ] -Index: boost_1_74_0/libs/python/Jamfile +Index: boost_1_75_0/boostcpp.jam =================================================================== ---- boost_1_74_0.orig/libs/python/Jamfile -+++ boost_1_74_0/libs/python/Jamfile -@@ -36,9 +36,10 @@ local rule split-version ( version ) - # For example, Boost.Python built for Python 2.7 uses the suffix "27" - rule version-suffix ( version ) - { -- local major-minor = [ split-version $(version) ] ; -- local suffix = $(major-minor:J="") ; -- return $(suffix) ; -+ # local major-minor = [ split-version $(version) ] ; -+ # local suffix = $(major-minor:J="") ; -+ # return $(suffix) ; -+ return "" ; - } +--- boost_1_75_0.orig/boostcpp.jam ++++ boost_1_75_0/boostcpp.jam +@@ -227,15 +227,15 @@ rule python-tag ( name : type ? : proper + { + # Add Python version suffix +- local version = [ $(property-set).get ] ; +- +- local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)" : $(version) ] ; +- local suffix = $(major-minor:J="") ; +- +- if $(suffix) +- { +- result = $(result)$(suffix) ; +- } ++ # local version = [ $(property-set).get ] ; ++ # ++ # local major-minor = [ MATCH "^([0-9]+)\.([0-9]+)" : $(version) ] ; ++ # local suffix = $(major-minor:J="") ; ++ # ++ # if $(suffix) ++ # { ++ # result = $(result)$(suffix) ; ++ # } + + # Add PYTHON_ID if supplied -Index: boost_1_74_0/tools/build/src/tools/python.jam -=================================================================== ---- boost_1_74_0.orig/tools/build/src/tools/python.jam -+++ boost_1_74_0/tools/build/src/tools/python.jam -@@ -664,6 +664,7 @@ local rule system-library-dependencies ( - # For example, Boost.Python built for Python 2.7 uses the suffix "27" - rule version-suffix ( version ) - { -+ return "" ; - local major-minor = [ split-version $(version) ] ; - local suffix = $(major-minor:J="") ; - return $(suffix) ; diff --git a/serialization_missing_includes.patch b/serialization_missing_includes.patch deleted file mode 100644 index 0341f91..0000000 --- a/serialization_missing_includes.patch +++ /dev/null @@ -1,36 +0,0 @@ -Index: boost_1_74_0/boost/serialization/set.hpp -=================================================================== ---- boost_1_74_0.orig/boost/serialization/set.hpp -+++ boost_1_74_0/boost/serialization/set.hpp -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #include - #include -Index: boost_1_74_0/boost/serialization/unordered_map.hpp -=================================================================== ---- boost_1_74_0.orig/boost/serialization/unordered_map.hpp -+++ boost_1_74_0/boost/serialization/unordered_map.hpp -@@ -22,6 +22,7 @@ - - #include - -+#include - #include - #include - #include -Index: boost_1_74_0/boost/serialization/list.hpp -=================================================================== ---- boost_1_74_0.orig/boost/serialization/list.hpp -+++ boost_1_74_0/boost/serialization/list.hpp -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - namespace boost { - namespace serialization {