From 59415588c85ee41a0ae7e7e90858651de533b241 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 5 Apr 2017 17:12:22 +0100 Subject: [PATCH 001/203] Patch boost::function to fix strict aliasing problem (#1422456) Per packaging guidelines don't clean buildroot in %%install and %%clean. --- boost-1.63.0-function-may-alias.patch | 11 +++++++++++ boost.spec | 13 ++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 boost-1.63.0-function-may-alias.patch diff --git a/boost-1.63.0-function-may-alias.patch b/boost-1.63.0-function-may-alias.patch new file mode 100644 index 0000000..62b9f6e --- /dev/null +++ b/boost-1.63.0-function-may-alias.patch @@ -0,0 +1,11 @@ +--- boost_1_63_0/boost/function/function_template.hpp.alias 2017-03-24 12:17:21.560125198 +0000 ++++ boost_1_63_0/boost/function/function_template.hpp 2017-03-24 13:07:24.971891166 +0000 +@@ -994,7 +994,7 @@ + if (!f.empty()) { + this->vtable = f.vtable; + if (this->has_trivial_copy_and_destroy()) +- this->functor = f.functor; ++ __builtin_memcpy(&this->functor, &f.functor, sizeof(f.functor)); + else + get_vtable()->base.manager(f.functor, this->functor, + boost::detail::function::move_functor_tag); diff --git a/boost.spec b/boost.spec index 0f48a47..66f752c 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -130,6 +130,8 @@ Patch82: boost-1.60.0-no-rpath.patch # https://github.com/boostorg/build/issues/163 Patch83: boost-1.63.0-dual-python-build.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1422456 +Patch84: boost-1.63.0-function-may-alias.patch %bcond_with tests %bcond_with docs_generated @@ -651,6 +653,7 @@ a number of significant features and is now developed independently %patch68 -p1 %patch82 -p0 %patch83 -p1 +%patch84 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -764,7 +767,6 @@ echo ============================= build Boost.Build ================== %install -rm -rf $RPM_BUILD_ROOT cd %{_builddir}/%{toplev_dirname} %if %{with openmpi} || %{with mpich} @@ -914,9 +916,6 @@ rm -f tmp-doc-files-to-be-installed rm -f tmp-doc-directories %{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt -%clean -rm -rf $RPM_BUILD_ROOT - # MPI subpackages don't need the ldconfig magic. They are hidden by # default, in MPI back-end-specific directory, and only show to the @@ -1296,6 +1295,10 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Apr 05 2017 Jonathan Wakely - 1.63.0-6 +- Patch boost::function to fix strict aliasing problem (#1422456) +- Per packaging guidelines don't clean buildroot in %%install and %%clean. + * Sun Mar 12 2017 Peter Robinson 1.63.0-5 - Enable OpenMPI/mpich on ppc64le and s390x now they have support From 218cc61036396130018aee81ebefe627d18b9cdb Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 25 Apr 2017 10:46:17 +0100 Subject: [PATCH 002/203] Rebuild for rpm-mpi-hooks fix (#1435690) --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 66f752c..d1369ba 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1295,6 +1295,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Apr 25 2017 Jonathan Wakely - 1.63.0-7 +- Rebuild for rpm-mpi-hooks fix (#1435690) + * Wed Apr 05 2017 Jonathan Wakely - 1.63.0-6 - Patch boost::function to fix strict aliasing problem (#1422456) - Per packaging guidelines don't clean buildroot in %%install and %%clean. From 7ace5f0128a64217a162ec5d31b7bb908e72d178 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 1 Jul 2017 12:08:54 +0100 Subject: [PATCH 003/203] Remove patch for boost::function strict aliasing problem (#1422456) --- boost-1.63.0-function-may-alias.patch | 11 ----------- boost.spec | 9 ++++----- 2 files changed, 4 insertions(+), 16 deletions(-) delete mode 100644 boost-1.63.0-function-may-alias.patch diff --git a/boost-1.63.0-function-may-alias.patch b/boost-1.63.0-function-may-alias.patch deleted file mode 100644 index 62b9f6e..0000000 --- a/boost-1.63.0-function-may-alias.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- boost_1_63_0/boost/function/function_template.hpp.alias 2017-03-24 12:17:21.560125198 +0000 -+++ boost_1_63_0/boost/function/function_template.hpp 2017-03-24 13:07:24.971891166 +0000 -@@ -994,7 +994,7 @@ - if (!f.empty()) { - this->vtable = f.vtable; - if (this->has_trivial_copy_and_destroy()) -- this->functor = f.functor; -+ __builtin_memcpy(&this->functor, &f.functor, sizeof(f.functor)); - else - get_vtable()->base.manager(f.functor, this->functor, - boost::detail::function::move_functor_tag); diff --git a/boost.spec b/boost.spec index d1369ba..b4de9a6 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -130,9 +130,6 @@ Patch82: boost-1.60.0-no-rpath.patch # https://github.com/boostorg/build/issues/163 Patch83: boost-1.63.0-dual-python-build.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1422456 -Patch84: boost-1.63.0-function-may-alias.patch - %bcond_with tests %bcond_with docs_generated @@ -653,7 +650,6 @@ a number of significant features and is now developed independently %patch68 -p1 %patch82 -p0 %patch83 -p1 -%patch84 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1295,6 +1291,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sat Jul 01 2017 Jonathan Wakely - 1.63.0-8 +- Remove patch for boost::function strict aliasing problem (#1422456) + * Tue Apr 25 2017 Jonathan Wakely - 1.63.0-7 - Rebuild for rpm-mpi-hooks fix (#1435690) From a919cdd969baea630179b96609f0204b48ecc174 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 1 Jul 2017 13:14:36 +0100 Subject: [PATCH 004/203] Add numpy and numpy3 packages (#1451982) --- boost-1.63.0-dual-python-build-v2.patch | 129 +++++++++++ boost-1.63.0-dual-python-build.patch | 46 ---- boost.spec | 292 ++++++++++++++++++++++-- 3 files changed, 401 insertions(+), 66 deletions(-) create mode 100644 boost-1.63.0-dual-python-build-v2.patch delete mode 100644 boost-1.63.0-dual-python-build.patch diff --git a/boost-1.63.0-dual-python-build-v2.patch b/boost-1.63.0-dual-python-build-v2.patch new file mode 100644 index 0000000..dfb6ee1 --- /dev/null +++ b/boost-1.63.0-dual-python-build-v2.patch @@ -0,0 +1,129 @@ +--- boost_1_63_0/libs/mpi/build/Jamfile.v2 2016-12-22 06:33:17.000000000 -0600 ++++ boost_1_63_0/libs/mpi/build/Jamfile.v2 2017-05-19 01:45:05.485563800 -0500 +@@ -11,6 +11,7 @@ + import mpi ; + import indirect ; + import python ; ++import feature ; + + libraries = ; + +@@ -53,18 +54,38 @@ lib boost_mpi + ../../serialization/build//boost_serialization + /mpi//mpi [ mpi.extra-requirements ] + ; ++ ++rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } } + + libraries += boost_mpi ; ++rule find-py3-version ++{ ++ local versions = [ feature.values python ] ; ++ local py3ver ; ++ for local v in $(versions) ++ { ++ if $(v) >= 3.0 ++ { ++ py3ver = $(v) ; ++ } ++ } ++ return $(py3ver) ; ++} ++ ++py3-version = [ find-py3-version ] ; + + if [ python.configured ] + { +- lib boost_mpi_python ++ ++ rule lib_boost_mpi_python ( is-py3 ? ) { ++ ++ lib [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ] + : # Sources + python/serialize.cpp + : # Requirements + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] +- /boost/python//boost_python ++ [ cond $(is-py3) : /boost/python//boost_python3 : /boost/python//boost_python ] + shared:BOOST_MPI_DYN_LINK=1 + shared:BOOST_MPI_PYTHON_DYN_LINK=1 + shared:BOOST_PYTHON_DYN_LINK=1 +@@ -76,7 +97,6 @@ libraries += boost_mpi ; + : # Usage requirements + /mpi//mpi [ mpi.extra-requirements ] + ; +- libraries += boost_mpi_python ; + + python-extension mpi + : # Sources +@@ -93,8 +113,8 @@ libraries += boost_mpi ; + python/status.cpp + python/py_timer.cpp + : # Requirements +- /boost/python//boost_python +- boost_mpi_python ++ [ cond $(is-py3) : /boost/python//boost_python3 : /boost/python//boost_python ] ++ [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ] + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] + shared:BOOST_MPI_DYN_LINK=1 +@@ -102,6 +122,16 @@ libraries += boost_mpi ; + shared:BOOST_PYTHON_DYN_LINK=1 + shared shared + ; ++ } ++ ++ if $(py3-version) { ++ lib_boost_mpi_python yes ; ++ libraries += boost_mpi_python3 ; ++ } else { ++ lib_boost_mpi_python ; ++ libraries += boost_mpi_python ; ++ } ++ + } + } + else if ! ( --without-mpi in [ modules.peek : ARGV ] ) +--- boost_1_63_0/libs/python/build/Jamfile 2017-05-19 02:33:53.600132400 -0500 ++++ boost_1_63_0/libs/python/build/Jamfile 2017-05-19 01:50:43.746550000 -0500 +@@ -140,7 +140,7 @@ rule lib_boost_numpy ( is-py3 ? ) + [ cond [ python.numpy ] : /python//python_for_extensions ] + [ unless [ python.numpy ] : no ] + $(numpy-include) +- boost_python ++ [ cond $(is-py3) : boost_python3 : boost_python ] + on:BOOST_DEBUG_PYTHON + [ cond $(is-py3) : $(py3-version) ] + +@@ -154,22 +154,25 @@ rule lib_boost_numpy ( is-py3 ? ) + ; + } + +-libraries = boost_python ; ++libraries2 = boost_python ; + libraries3 = boost_python3 ; + if [ python.numpy ] + { +- libraries += boost_numpy ; ++ libraries2 += boost_numpy ; + libraries3 += boost_numpy3 ; + } + +-lib_boost_python ; +-lib_boost_numpy ; +- + if $(py3-version) + { + lib_boost_python yes ; + lib_boost_numpy yes ; + libraries += $(libraries3) ; + } ++else ++{ ++ lib_boost_python ; ++ lib_boost_numpy ; ++ libraries += $(libraries2) ; ++} + + boost-install $(libraries) ; diff --git a/boost-1.63.0-dual-python-build.patch b/boost-1.63.0-dual-python-build.patch deleted file mode 100644 index d20b262..0000000 --- a/boost-1.63.0-dual-python-build.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- boost_1_63_0/tools/build/src/tools/python.jam.orig 2017-02-16 18:51:14.005483084 +0000 -+++ boost_1_63_0/tools/build/src/tools/python.jam 2017-02-16 18:51:24.912497496 +0000 -@@ -926,27 +926,27 @@ - # for a particular target OS as the default. This makes it so that we can - # select a python interpreter with only knowledge of the target OS. And hence - # can configure different Pythons based on the target OS only. -- local toolset-requirements = [ toolset.requirements ] ; -- local toolset-target-os-requirements -- = [ property.evaluate-conditionals-in-context -- [ $(toolset-requirements).raw ] : $(target-os) ] ; -- if ! in $(toolset-target-os-requirements:G) -- { -- toolset.add-requirements $(target-os):$(version:E=default) ; -- } -+ #local toolset-requirements = [ toolset.requirements ] ; -+ #local toolset-target-os-requirements -+ # = [ property.evaluate-conditionals-in-context -+ # [ $(toolset-requirements).raw ] : $(target-os) ] ; -+ #if ! in $(toolset-target-os-requirements:G) -+ #{ -+ # toolset.add-requirements $(target-os):$(version:E=default) ; -+ #} - - # We also set a default requirement that assigns the first python configured - # for a particular target OS as the default. This makes it so that we can - # select a python interpreter with only knowledge of the target OS. And hence - # can configure different Pythons based on the target OS only. -- local toolset-requirements = [ toolset.requirements ] ; -- local toolset-target-os-requirements -- = [ property.evaluate-conditionals-in-context -- [ $(toolset-requirements).raw ] : $(target-os) ] ; -- if ! in $(toolset-target-os-requirements:G) -- { -- toolset.add-requirements $(target-os):$(version:E=default) ; -- } -+ #local toolset-requirements = [ toolset.requirements ] ; -+ #local toolset-target-os-requirements -+ # = [ property.evaluate-conditionals-in-context -+ # [ $(toolset-requirements).raw ] : $(target-os) ] ; -+ #if ! in $(toolset-target-os-requirements:G) -+ #{ -+ # toolset.add-requirements $(target-os):$(version:E=default) ; -+ #} - - # Register the right suffix for extensions. - register-extension-suffix $(extension-suffix) : $(target-requirements) ; diff --git a/boost.spec b/boost.spec index b4de9a6..a5a467d 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -70,6 +70,7 @@ Requires: boost-iostreams%{?_isa} = %{version}-%{release} Requires: boost-locale%{?_isa} = %{version}-%{release} Requires: boost-log%{?_isa} = %{version}-%{release} Requires: boost-math%{?_isa} = %{version}-%{release} +Requires: boost-numpy%{?_isa} = %{version}-%{release} Requires: boost-program-options%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-random%{?_isa} = %{version}-%{release} @@ -88,8 +89,10 @@ BuildRequires: libstdc++-devel BuildRequires: bzip2-devel BuildRequires: zlib-devel BuildRequires: python-devel +BuildRequires: python2-numpy %if %{with python3} BuildRequires: python3-devel +BuildRequires: python3-numpy %endif BuildRequires: libicu-devel %if %{with quadmath} @@ -127,8 +130,8 @@ Patch68: boost-1.58.0-address-model.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.60.0-no-rpath.patch -# https://github.com/boostorg/build/issues/163 -Patch83: boost-1.63.0-dual-python-build.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1451982 +Patch83: boost-1.63.0-dual-python-build-v2.patch %bcond_with tests %bcond_with docs_generated @@ -280,6 +283,38 @@ Requires: libquadmath%{?_isa} Run-time support for C99 and C++ TR1 C-style Functions from the math portion of Boost.TR1. +%package numpy +Summary: Run-time component of boost python numpy extension +Group: System Environment/Libraries +Requires: boost-python%{?_isa} = %{version}-%{release} +Requires: python2-numpy + +%description numpy + +The Boost Python Library is a framework for interfacing Python and +C++. It allows you to quickly and seamlessly expose C++ classes, +functions and objects to Python, and vice versa, using no special +tools -- just your C++ compiler. This package contains run-time +support for the NumPy extension of the Boost Python Library. + +%if %{with python3} + +%package numpy3 +Summary: Run-time component of boost numpy library for Python 3 +Group: System Environment/Libraries +Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: python3-numpy + +%description numpy3 + +The Boost Python Library is a framework for interfacing Python and +C++. It allows you to quickly and seamlessly expose C++ classes, +functions and objects to Python, and vice versa, using no special +tools -- just your C++ compiler. This package contains run-time +support for the NumPy extension of the Boost Python Library for Python 3. + +%endif + %package program-options Summary: Run-time component of boost program_options library Group: System Environment/Libraries @@ -319,6 +354,7 @@ support for Boost Python Library compiled for Python 3. %package python3-devel Summary: Shared object symbolic links for Boost.Python 3 Group: System Environment/Libraries +Requires: boost-numpy3%{?_isa} = %{version}-%{release} Requires: boost-python3%{?_isa} = %{version}-%{release} Requires: boost-devel%{?_isa} = %{version}-%{release} @@ -520,12 +556,43 @@ Group: System Environment/Libraries Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: python2-openmpi%{?_isa} %description openmpi-python Python support for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. +%if %{with python3} + +%package openmpi-python3 +Summary: Python 3 run-time component of Boost.MPI library +Group: System Environment/Libraries +Requires: boost-openmpi%{?_isa} = %{version}-%{release} +Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: python3-openmpi%{?_isa} + +%description openmpi-python3 + +Python 3 support for Boost.MPI-OpenMPI, a library providing a clean C++ +API over the OpenMPI implementation of MPI. + +%package openmpi-python3-devel +Summary: Shared library symbolic links for Boost.MPI Python 3 component +Group: System Environment/Libraries +Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: boost-python3-devel%{?_isa} = %{version}-%{release} +Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} +Requires: boost-openmpi-python3%{?_isa} = %{version}-%{release} + +%description openmpi-python3-devel + +Devel package for the Python 3 interface of Boost.MPI-OpenMPI, a library +providing a clean C++ API over the OpenMPI implementation of MPI. + +%endif + %package graph-openmpi Summary: Run-time component of parallel boost graph library Group: System Environment/Libraries @@ -580,12 +647,43 @@ Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Provides: boost-mpich2-python = %{version}-%{release} Obsoletes: boost-mpich2-python < 1.53.0-9 +Requires: python2-mpich%{?_isa} %description mpich-python Python support for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. +%if %{with python3} + +%package mpich-python3 +Summary: Python 3 run-time component of Boost.MPI library +Group: System Environment/Libraries +Requires: boost-mpich%{?_isa} = %{version}-%{release} +Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: python3-mpich%{?_isa} + +%description mpich-python3 + +Python 3 support for Boost.MPI-MPICH, a library providing a clean C++ +API over the MPICH implementation of MPI. + +%package mpich-python3-devel +Summary: Shared library symbolic links for Boost.MPI Python 3 component +Group: System Environment/Libraries +Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: boost-python3-devel%{?_isa} = %{version}-%{release} +Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} +Requires: boost-mpich-python3%{?_isa} = %{version}-%{release} + +%description mpich-python3-devel + +Devel package for the Python 3 interface of Boost.MPI-MPICH, a library +providing a clean C++ API over the MPICH implementation of MPI. + +%endif + %package graph-mpich Summary: Run-time component of parallel boost graph library Group: System Environment/Libraries @@ -679,10 +777,7 @@ using gcc : : : $(RPM_OPT_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif -%if %{with python3} using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ; -using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ; -%endif EOF ./bootstrap.sh --with-toolset=gcc --with-icu @@ -691,13 +786,6 @@ EOF # library in particular) end up being built second time during # installation. Unsure why that is, but all sub-builds need to be # built with pch=off to avoid this. -# -# The "python=2.*" bit tells jam that we want to _also_ build 2.*, not -# just 3.*. When omitted, it just builds for python 3 twice, once -# calling the library libboost_python and once libboost_python3. I -# assume this is for backward compatibility for apps that are used to -# linking against -lboost_python, for when 2->3 transition is -# eventually done. echo ============================= build serial ================== ./b2 -d+2 -q %{?_smp_mflags} \ @@ -720,6 +808,33 @@ fi m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ %{SOURCE2} > $(basename %{SOURCE2}) +%if %{with python3} + +# Previously, we built python 2.x and 3.x interfaces simultaneously. +# However, this doesn't work once trying to build other Python components +# such as libboost_numpy. Therefore, we build for each separately, while +# minimizing duplicate compilation as much as possible. + +cat > python3-config.jam << "EOF" +import os ; +local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; + +using gcc : : : $(RPM_OPT_FLAGS) ; +%if %{with openmpi} || %{with mpich} +using mpi ; +%endif +using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ; +EOF + +echo ============================= build serial-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-python --build-dir=serial-py3 \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage + +%endif + # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} @@ -728,9 +843,6 @@ m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ module purge ||: %endif -# N.B. python=2.* here behaves differently: it exactly selects a -# version that we want to build against. Boost MPI is not portable to -# Python 3 due to API changes in Python, so this suits us. %if %{with openmpi} %{_openmpi_load} echo ============================= build $MPI_COMPILER ================== @@ -738,6 +850,16 @@ echo ============================= build $MPI_COMPILER ================== --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage + +%if %{with python3} +echo ============================= build $MPI_COMPILER-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage +%endif + %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -750,6 +872,16 @@ echo ============================= build $MPI_COMPILER ================== --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage + +%if %{with python3} +echo ============================= build $MPI_COMPILER-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage +%endif + %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -782,6 +914,28 @@ echo ============================= install $MPI_COMPILER ================== variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost +touch ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/ + +%if %{with python3} +echo ============================= install $MPI_COMPILER-py3 ================== +./b2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage + +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost +touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ +%endif + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* @@ -798,6 +952,28 @@ echo ============================= install $MPI_COMPILER ================== variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost +touch ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/ + +%if %{with python3} +echo ============================= install $MPI_COMPILER-py3 ================== +./b2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage + +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost +touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ +%endif + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* @@ -823,6 +999,18 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_libdir}/ +%if %{with python3} +echo ============================= install serial-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=python3-config.jam \ + --with-python --build-dir=serial-py3 \ + --prefix=$RPM_BUILD_ROOT%{_prefix} \ + --libdir=$RPM_BUILD_ROOT%{_libdir} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} install + +%endif + echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install @@ -974,6 +1162,16 @@ rm -f tmp-doc-directories %postun math -p /sbin/ldconfig +%post numpy -p /sbin/ldconfig + +%postun numpy -p /sbin/ldconfig + +%if %{with python3} +%post numpy3 -p /sbin/ldconfig + +%postun numpy3 -p /sbin/ldconfig +%endif + %post program-options -p /sbin/ldconfig %postun program-options -p /sbin/ldconfig @@ -982,6 +1180,12 @@ rm -f tmp-doc-directories %postun python -p /sbin/ldconfig +%if %{with python3} +%post python3 -p /sbin/ldconfig + +%postun python3 -p /sbin/ldconfig +%endif + %post random -p /sbin/ldconfig %postun random -p /sbin/ldconfig @@ -1115,6 +1319,16 @@ fi %{_libdir}/libboost_math_tr1f.so.%{sonamever} %{_libdir}/libboost_math_tr1l.so.%{sonamever} +%files numpy +%license LICENSE_1_0.txt +%{_libdir}/libboost_numpy.so.%{sonamever} + +%if %{with python3} +%files numpy3 +%license LICENSE_1_0.txt +%{_libdir}/libboost_numpy3.so.%{sonamever} +%endif + %files test %license LICENSE_1_0.txt %{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} @@ -1135,6 +1349,7 @@ fi %files python3-devel %license LICENSE_1_0.txt +%{_libdir}/libboost_numpy3.so %{_libdir}/libboost_python3.so %endif @@ -1207,6 +1422,7 @@ fi %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so %{_libdir}/libboost_math_c99l.so +%{_libdir}/libboost_numpy.so %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so @@ -1241,12 +1457,27 @@ fi %files openmpi-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_*.so +%{_libdir}/openmpi/lib/libboost_mpi.so +%{_libdir}/openmpi/lib/libboost_mpi_python.so +%{_libdir}/openmpi/lib/libboost_graph_parallel.so %files openmpi-python %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} -%{_libdir}/openmpi/lib/mpi.so +%{python2_sitearch}/openmpi/boost/ + +%if %{with python3} + +%files openmpi-python3 +%license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_mpi_python3.so.%{sonamever} +%{python3_sitearch}/openmpi/boost/ + +%files openmpi-python3-devel +%license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_mpi_python3.so + +%endif %files graph-openmpi %license LICENSE_1_0.txt @@ -1263,12 +1494,27 @@ fi %files mpich-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_*.so +%{_libdir}/mpich/lib/libboost_mpi.so +%{_libdir}/mpich/lib/libboost_mpi_python.so +%{_libdir}/mpich/lib/libboost_graph_parallel.so %files mpich-python %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python.so.%{sonamever} -%{_libdir}/mpich/lib/mpi.so +%{python2_sitearch}/mpich/boost/ + +%if %{with python3} + +%files mpich-python3 +%license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_mpi_python3.so.%{sonamever} +%{python3_sitearch}/mpich/boost/ + +%files mpich-python3-devel +%license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_mpi_python3.so + +%endif %files graph-mpich %license LICENSE_1_0.txt @@ -1291,6 +1537,12 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sat Jul 01 2017 Yaakov Selkowitz - 1.63.0-9 +- Add numpy and numpy3 packages (#1451982) +- Fix location of openmpi-python and mpich-python modules +- Add openmpi-python3 and mpich-python3 packages +- Add missing ldconfig post/postun for python3 package + * Sat Jul 01 2017 Jonathan Wakely - 1.63.0-8 - Remove patch for boost::function strict aliasing problem (#1422456) From 30150eaf4953db449269f9b3ea61a5b1f5d32ed3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 1 Jul 2017 12:08:54 +0100 Subject: [PATCH 005/203] Rebase to 1.64.0 --- boost-1.63.0-dual-python-build-v2.patch | 42 --------- boost-1.64.0-dual-python-build.patch | 25 +++++ boost-1.64.0-mpi-get_data.patch | 119 ++++++++++++++++++++++++ boost-1.64.0-mpi-make_array.patch | 21 +++++ boost.spec | 16 +++- 5 files changed, 178 insertions(+), 45 deletions(-) create mode 100644 boost-1.64.0-dual-python-build.patch create mode 100644 boost-1.64.0-mpi-get_data.patch create mode 100644 boost-1.64.0-mpi-make_array.patch diff --git a/boost-1.63.0-dual-python-build-v2.patch b/boost-1.63.0-dual-python-build-v2.patch index dfb6ee1..2baf69c 100644 --- a/boost-1.63.0-dual-python-build-v2.patch +++ b/boost-1.63.0-dual-python-build-v2.patch @@ -85,45 +85,3 @@ } } else if ! ( --without-mpi in [ modules.peek : ARGV ] ) ---- boost_1_63_0/libs/python/build/Jamfile 2017-05-19 02:33:53.600132400 -0500 -+++ boost_1_63_0/libs/python/build/Jamfile 2017-05-19 01:50:43.746550000 -0500 -@@ -140,7 +140,7 @@ rule lib_boost_numpy ( is-py3 ? ) - [ cond [ python.numpy ] : /python//python_for_extensions ] - [ unless [ python.numpy ] : no ] - $(numpy-include) -- boost_python -+ [ cond $(is-py3) : boost_python3 : boost_python ] - on:BOOST_DEBUG_PYTHON - [ cond $(is-py3) : $(py3-version) ] - -@@ -154,22 +154,25 @@ rule lib_boost_numpy ( is-py3 ? ) - ; - } - --libraries = boost_python ; -+libraries2 = boost_python ; - libraries3 = boost_python3 ; - if [ python.numpy ] - { -- libraries += boost_numpy ; -+ libraries2 += boost_numpy ; - libraries3 += boost_numpy3 ; - } - --lib_boost_python ; --lib_boost_numpy ; -- - if $(py3-version) - { - lib_boost_python yes ; - lib_boost_numpy yes ; - libraries += $(libraries3) ; - } -+else -+{ -+ lib_boost_python ; -+ lib_boost_numpy ; -+ libraries += $(libraries2) ; -+} - - boost-install $(libraries) ; diff --git a/boost-1.64.0-dual-python-build.patch b/boost-1.64.0-dual-python-build.patch new file mode 100644 index 0000000..2934475 --- /dev/null +++ b/boost-1.64.0-dual-python-build.patch @@ -0,0 +1,25 @@ +--- boost_1_64_0/tools/build/src/tools/python.jam ++++ boost_1_64_0/tools/build/src/tools/python.jam +@@ -939,14 +939,14 @@ + # for a particular target OS as the default. This makes it so that we can + # select a python interpreter with only knowledge of the target OS. And hence + # can configure different Pythons based on the target OS only. +- local toolset-requirements = [ toolset.requirements ] ; +- local toolset-target-os-requirements +- = [ property.evaluate-conditionals-in-context +- [ $(toolset-requirements).raw ] : $(target-os) ] ; +- if ! in $(toolset-target-os-requirements:G) +- { +- toolset.add-requirements $(target-os):$(version:E=default) ; +- } ++ #local toolset-requirements = [ toolset.requirements ] ; ++ #local toolset-target-os-requirements ++ # = [ property.evaluate-conditionals-in-context ++ # [ $(toolset-requirements).raw ] : $(target-os) ] ; ++ #if ! in $(toolset-target-os-requirements:G) ++ #{ ++ # toolset.add-requirements $(target-os):$(version:E=default) ; ++ #} + + # Register the right suffix for extensions. + register-extension-suffix $(extension-suffix) : $(target-requirements) ; diff --git a/boost-1.64.0-mpi-get_data.patch b/boost-1.64.0-mpi-get_data.patch new file mode 100644 index 0000000..a51bd83 --- /dev/null +++ b/boost-1.64.0-mpi-get_data.patch @@ -0,0 +1,119 @@ +From babaa35f51d8b009eba762bc50a5290906b4b0ca Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Thu, 26 Jan 2017 20:15:19 +0000 +Subject: [PATCH] Replace boost::serialization::detail::get_data function. + +--- + include/boost/mpi/detail/mpi_datatype_primitive.hpp | 19 ++++++++++++------- + include/boost/mpi/detail/packed_iprimitive.hpp | 8 ++++++-- + include/boost/mpi/detail/packed_oprimitive.hpp | 8 ++++++-- + 3 files changed, 24 insertions(+), 11 deletions(-) + +diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp +index c230055..b95fc38 100644 +--- a/include/boost/mpi/detail/mpi_datatype_primitive.hpp ++++ b/include/boost/mpi/detail/mpi_datatype_primitive.hpp +@@ -25,7 +25,6 @@ namespace std{ + #include + #include + #include +-#include + #include + #include + #include +@@ -80,18 +79,18 @@ class mpi_datatype_primitive + BOOST_MPI_CHECK_RESULT(MPI_Type_create_struct, + ( + addresses.size(), +- boost::serialization::detail::get_data(lengths), +- boost::serialization::detail::get_data(addresses), +- boost::serialization::detail::get_data(types), ++ get_data(lengths), ++ get_data(addresses), ++ get_data(types), + &datatype_ + )); + #else + BOOST_MPI_CHECK_RESULT(MPI_Type_struct, + ( + addresses.size(), +- boost::serialization::detail::get_data(lengths), +- boost::serialization::detail::get_data(addresses), +- boost::serialization::detail::get_data(types), ++ get_data(lengths), ++ get_data(addresses), ++ get_data(types), + &datatype_ + )); + #endif +@@ -129,6 +128,12 @@ class mpi_datatype_primitive + lengths.push_back(l); + } + ++ template ++ static T* get_data(std::vector& v) ++ { ++ return v.empty() ? 0 : &(v[0]); ++ } ++ + std::vector addresses; + std::vector types; + std::vector lengths; +diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp +index 7080cbf..227dc8e 100644 +--- a/include/boost/mpi/detail/packed_iprimitive.hpp ++++ b/include/boost/mpi/detail/packed_iprimitive.hpp +@@ -16,7 +16,6 @@ + #include + #include + #include +-#include + #include + #include + +@@ -104,7 +103,12 @@ class BOOST_MPI_DECL packed_iprimitive + void load_impl(void * p, MPI_Datatype t, int l) + { + BOOST_MPI_CHECK_RESULT(MPI_Unpack, +- (const_cast(boost::serialization::detail::get_data(buffer_)), buffer_.size(), &position, p, l, t, comm)); ++ (get_data(buffer_), buffer_.size(), &position, p, l, t, comm)); ++ } ++ ++ static buffer_type::value_type* get_data(buffer_type& b) ++ { ++ return b.empty() ? 0 : &(b[0]); + } + + buffer_type & buffer_; +diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp +index fbcde9a..3c81a70 100644 +--- a/include/boost/mpi/detail/packed_oprimitive.hpp ++++ b/include/boost/mpi/detail/packed_oprimitive.hpp +@@ -15,7 +15,6 @@ + + #include + #include +-#include + #include + #include + #include +@@ -103,13 +102,18 @@ class BOOST_MPI_DECL packed_oprimitive + + // pack the data into the buffer + BOOST_MPI_CHECK_RESULT(MPI_Pack, +- (const_cast(p), l, t, boost::serialization::detail::get_data(buffer_), buffer_.size(), &position, comm)); ++ (const_cast(p), l, t, get_data(buffer_), buffer_.size(), &position, comm)); + // reduce the buffer size if needed + BOOST_ASSERT(std::size_t(position) <= buffer_.size()); + if (std::size_t(position) < buffer_.size()) + buffer_.resize(position); + } + ++ static buffer_type::value_type* get_data(buffer_type& b) ++ { ++ return b.empty() ? 0 : &(b[0]); ++ } ++ + buffer_type& buffer_; + mutable std::size_t size_; + MPI_Comm comm; diff --git a/boost-1.64.0-mpi-make_array.patch b/boost-1.64.0-mpi-make_array.patch new file mode 100644 index 0000000..7ac800c --- /dev/null +++ b/boost-1.64.0-mpi-make_array.patch @@ -0,0 +1,21 @@ +From ab924bb5abfa4c00ad11c21632adf97c002ac481 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Thu, 26 Jan 2017 21:52:37 +0000 +Subject: [PATCH] Add header for serialization::make_array + +--- + include/boost/mpi/python/serialize.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/boost/mpi/python/serialize.hpp b/include/boost/mpi/python/serialize.hpp +index 5f9136b..8933b34 100644 +--- a/include/boost/mpi/python/serialize.hpp ++++ b/include/boost/mpi/python/serialize.hpp +@@ -36,6 +36,7 @@ + + #include + #include ++#include + + #include + diff --git a/boost.spec b/boost.spec index a5a467d..b929271 100644 --- a/boost.spec +++ b/boost.spec @@ -33,9 +33,9 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.63.0 -%global version_enc 1_63_0 -Release: 9%{?dist} +Version: 1.64.0 +%global version_enc 1_64_0 +Release: 0.1%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -133,6 +133,11 @@ Patch82: boost-1.60.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1451982 Patch83: boost-1.63.0-dual-python-build-v2.patch +# https://github.com/boostorg/mpi/pull/39 +Patch84: boost-1.64.0-mpi-get_data.patch +# https://github.com/boostorg/mpi/pull/40 +Patch85: boost-1.64.0-mpi-make_array.patch + %bcond_with tests %bcond_with docs_generated @@ -748,6 +753,8 @@ a number of significant features and is now developed independently %patch68 -p1 %patch82 -p0 %patch83 -p1 +%patch84 -p2 +%patch85 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1537,6 +1544,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sat Jul 01 2017 Jonathan Wakely - 1.64.0-0.1 +- Rebase to 1.64.0 + * Sat Jul 01 2017 Yaakov Selkowitz - 1.63.0-9 - Add numpy and numpy3 packages (#1451982) - Fix location of openmpi-python and mpich-python modules From a4b6003a945d5d71f154633d059b8aa669f8326f Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 17 Jul 2017 15:45:49 +0100 Subject: [PATCH 006/203] Update sources file --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index fae53ce..08f6e08 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_63_0.tar.bz2) = c915c5f5778dee49b8e9d0a40f37f90f56fb1fdb1d8ce92d97bf48bc7bc462212487badfe4bbe30b06196d1149cfb221da12ac54e97499b0d4cb6466813bb4ad +SHA512 (boost_1_64_0.tar.bz2) = 68477f148f61be617552ef48559c5c2cb90d42264cabd6d5e87215d0d5024b48fca27c4afcfc1f77e490c6220d44fb1abdf0a53703867a2e4132c2857f69fedf From 91387222f5823279132e46a94b4e99868c1d4bce Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Fri, 21 Jul 2017 10:18:02 +0200 Subject: [PATCH 007/203] Rebuild for std::__once_functor linking issue on ppc64le (#1470692) This should hopefully fix linking with boost_context, which currently fails on ppc64le with: /usr/lib/gcc/ppc64le-redhat-linux/7/../../../../lib64/libboost_context.so: undefined reference to `std::__once_functor@GLIBCXX_3.4.11' --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index b929271..b3e43c1 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.1%{?dist} +Release: 0.2%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1544,6 +1544,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Jul 21 2017 Kalev Lember - 1.64.0-0.2 +- Rebuild for std::__once_functor linking issue on ppc64le (#1470692) + * Sat Jul 01 2017 Jonathan Wakely - 1.64.0-0.1 - Rebase to 1.64.0 From c54b0a0c9e363a4520c67e1258003bb9eeacc1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 24 Jul 2017 12:27:21 +0200 Subject: [PATCH 008/203] Add patch to fix make_array in serialization --- boost-1.64.0-serialization-make_array.patch | 23 +++++++++++++++++++++ boost.spec | 10 ++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 boost-1.64.0-serialization-make_array.patch diff --git a/boost-1.64.0-serialization-make_array.patch b/boost-1.64.0-serialization-make_array.patch new file mode 100644 index 0000000..b8129dd --- /dev/null +++ b/boost-1.64.0-serialization-make_array.patch @@ -0,0 +1,23 @@ +From 1d86261581230e2dc5d617a9b16287d326f3e229 Mon Sep 17 00:00:00 2001 +From: Robert Ramey +Date: Wed, 1 Feb 2017 16:43:59 -0800 +Subject: [PATCH] correct error which appeared when compiling non c++ compliant + code for arrays + +--- + include/boost/serialization/array.hpp | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/boost/serialization/array.hpp b/include/boost/serialization/array.hpp +index 61708b307..612d1a619 100644 +--- a/include/boost/serialization/array.hpp ++++ b/include/boost/serialization/array.hpp +@@ -23,6 +23,8 @@ namespace std{ + } // namespace std + #endif + ++#include ++ + #ifndef BOOST_NO_CXX11_HDR_ARRAY + + #include diff --git a/boost.spec b/boost.spec index b3e43c1..6160a95 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.2%{?dist} +Release: 0.3%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -138,6 +138,10 @@ Patch84: boost-1.64.0-mpi-get_data.patch # https://github.com/boostorg/mpi/pull/40 Patch85: boost-1.64.0-mpi-make_array.patch +# https://svn.boost.org/trac10/ticket/12516 +# https://github.com/boostorg/serialization/commit/1d86261581230e2dc5d617a9b16287d326f3e229 +Patch86: boost-1.64.0-serialization-make_array.patch + %bcond_with tests %bcond_with docs_generated @@ -755,6 +759,7 @@ a number of significant features and is now developed independently %patch83 -p1 %patch84 -p2 %patch85 -p2 +%patch86 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1544,6 +1549,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Jul 24 2017 Björn Esser - 1.64.0-0.3 +- Add patch to fix make_array in serialization + * Fri Jul 21 2017 Kalev Lember - 1.64.0-0.2 - Rebuild for std::__once_functor linking issue on ppc64le (#1470692) From 6e3f05c5ded21d0154f03f56414b9f0853e2a5b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Mon, 24 Jul 2017 13:05:34 +0200 Subject: [PATCH 009/203] Drop obsolete patch for mpi serialization make_array Purge unused patches from repo --- boost-1.50.0-long-double-1.patch | 12 --- boost-1.53.0-context.patch | 57 -------------- boost-1.59-python-make_setter.patch | 25 ------- boost-1.59.0-log.patch | 106 --------------------------- boost-1.64.0-dual-python-build.patch | 25 ------- boost-1.64.0-mpi-make_array.patch | 21 ------ boost.spec | 11 +-- 7 files changed, 6 insertions(+), 251 deletions(-) delete mode 100644 boost-1.50.0-long-double-1.patch delete mode 100644 boost-1.53.0-context.patch delete mode 100644 boost-1.59-python-make_setter.patch delete mode 100644 boost-1.59.0-log.patch delete mode 100644 boost-1.64.0-dual-python-build.patch delete mode 100644 boost-1.64.0-mpi-make_array.patch diff --git a/boost-1.50.0-long-double-1.patch b/boost-1.50.0-long-double-1.patch deleted file mode 100644 index 2574539..0000000 --- a/boost-1.50.0-long-double-1.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/libs/math/config/has_long_double_support.cpp b/libs/math/config/has_long_double_support.cpp -index d314cf3..9022408 100644 ---- a/libs/math/config/has_long_double_support.cpp -+++ b/libs/math/config/has_long_double_support.cpp -@@ -8,3 +8,7 @@ - #ifdef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS - #error "long double support is not supported by Boost.Math on this Plaform: the long double version of the TR1 library will not be built." - #endif -+ -+int main(int argc, char *argv[]) { -+ return 0; -+} diff --git a/boost-1.53.0-context.patch b/boost-1.53.0-context.patch deleted file mode 100644 index 3cc1cf0..0000000 --- a/boost-1.53.0-context.patch +++ /dev/null @@ -1,57 +0,0 @@ ---- boost_1_53_0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S.orig 2013-02-11 14:03:46.631005713 -0600 -+++ boost_1_53_0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S 2013-02-11 14:06:52.704815403 -0600 -@@ -87,12 +87,10 @@ - subi %r0, %r3, 64 # reserve 64 bytes (linkage + parameter area), R4 % 16 == 0 - stw %r0, 76(%r3) # save address in R3 as stack pointer for context function - -- mflr %r0 # load LR - bl 1f # jump to label 1 - 1: - mflr %r4 # load LR into R4 - addi %r4, %r4, finish - 1b # compute abs address of label finish -- mtlr %r0 # restore LR - stw %r4, 84(%r3) # save address of finish as return address for context function - # entered after context function returns - -@@ -108,4 +106,5 @@ - - li %r3, 0 # exit code is zero - bl _exit@plt # exit application -+ .long 0 # We should never get here, so SIGILL if we do - .size make_fcontext, .-make_fcontext - ---- boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S.orig 2013-02-11 14:03:43.726849715 -0600 -+++ boost_1_53_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-02-11 14:22:48.202839078 -0600 -@@ -99,21 +99,19 @@ - - # call align_stack, R3 contains address at 16 byte boundary after return - # == pointer to fcontext_t and address of context stack -- rlwinm %r3, %r3, 0, 0, 59 -+ clrrdi %r3, %r3, 4 - - std %r0, 184(%r3) # save address of context stack (base) in fcontext_t - std %r4, 192(%r3) # save context stack size in fcontext_t - std %r5, 176(%r3) # save address of context function in fcontext_t - -- subf %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers) -+ subi %r0, %r3, 64 # 64 bytes on stack for parameter area (== 8 registers) - std %r0, 152(%r3) # save the stack base - -- mflr %r0 # load LR - bl 1f # jump to label 1 - 1: - mflr %r4 # load LR into R4 - addi %r4, %r4, finish - 1b # compute abs address of label finish -- mtlr %r0 # restore LR - std %r4, 168(%r3) # save address of finish as return address for context function - # entered after context function returns - -@@ -128,5 +126,7 @@ - stwu %r1, -32(%r1) # allocate stack space, SP % 16 == 0 - - li %r3, 0 # set return value to zero -- bl _exit@plt # exit application -+ bl _exit # exit application -+ nop # nop is required by the linker -+ .long 0 # We should never get here, so SIGILL if we do - .size .make_fcontext, .-.make_fcontext diff --git a/boost-1.59-python-make_setter.patch b/boost-1.59-python-make_setter.patch deleted file mode 100644 index 6c00658..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/include/boost/python/data_members.hpp -+++ b/include/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-1.59.0-log.patch b/boost-1.59.0-log.patch deleted file mode 100644 index 844b3ff..0000000 --- a/boost-1.59.0-log.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 7da193fde1a9c1bc925ee980339f4df2e1a66fa7 Mon Sep 17 00:00:00 2001 -From: Andrey Semashev -Date: Sun, 23 Aug 2015 17:27:20 +0300 -Subject: [PATCH] Fixed compilation of operator<< into a record ostream, when - the operator right hand argument is not directly supported by - formatting_ostream. Fixed #11549. - ---- - -diff --git a/include/boost/log/sources/record_ostream.hpp b/include/boost/log/sources/record_ostream.hpp -index b3c58e2..c1e8059 100644 ---- a/include/boost/log/sources/record_ostream.hpp -+++ b/include/boost/log/sources/record_ostream.hpp -@@ -39,6 +39,18 @@ namespace boost { - - BOOST_LOG_OPEN_NAMESPACE - -+template< typename CharT > -+class basic_record_ostream; -+ -+namespace aux { -+ -+template< typename StreamT, typename R > -+struct enable_if_record_ostream {}; -+template< typename CharT, typename R > -+struct enable_if_record_ostream< basic_record_ostream< CharT >, R > { typedef R type; }; -+ -+} // namespace aux -+ - /*! - * \brief Logging record adapter with a streaming capability - * -@@ -174,6 +186,55 @@ typedef basic_record_ostream< char > record_ostream; //!< Convenience typ - typedef basic_record_ostream< wchar_t > wrecord_ostream; //!< Convenience typedef for wide-character logging - #endif - -+// Implementation note: these operators below should be the least attractive for the compiler -+// so that user's overloads are chosen, when present. We use function template partial ordering for this purpose. -+// We also don't use perfect forwarding for the right hand argument because in ths case the generic overload -+// would be more preferred than the typical one written by users: -+// -+// record_ostream& operator<< (record_ostream& strm, my_type const& arg); -+// -+// This is because my_type rvalues require adding const to the type, which counts as a conversion that is not required -+// if there is a perfect forwarding overload. -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT& strm, T const& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT& strm, T& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -+ -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT&& strm, T const& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+template< typename StreamT, typename T > -+inline typename boost::log::aux::enable_if_record_ostream< StreamT, StreamT& >::type -+operator<< (StreamT&& strm, T& value) -+{ -+ typedef basic_formatting_ostream< typename StreamT::char_type > formatting_ostream_type; -+ static_cast< formatting_ostream_type& >(strm) << value; -+ return strm; -+} -+ -+#endif // !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) -+ - namespace aux { - - //! Internal class that provides formatting streams for record pumps -diff --git a/include/boost/log/utility/formatting_ostream.hpp b/include/boost/log/utility/formatting_ostream.hpp -index 4345206..744acc0 100644 ---- a/include/boost/log/utility/formatting_ostream.hpp -+++ b/include/boost/log/utility/formatting_ostream.hpp -@@ -779,6 +779,13 @@ void basic_formatting_ostream< CharT, TraitsT, AllocatorT >::aligned_write(const - - // Implementation note: these operators below should be the least attractive for the compiler - // so that user's overloads are chosen, when present. We use function template partial ordering for this purpose. -+// We also don't use perfect forwarding for the right hand argument because in ths case the generic overload -+// would be more preferred than the typical one written by users: -+// -+// formatting_ostream& operator<< (formatting_ostream& strm, my_type const& arg); -+// -+// This is because my_type rvalues require adding const to the type, which counts as a conversion that is not required -+// if there is a perfect forwarding overload. - template< typename StreamT, typename T > - inline typename boost::log::aux::enable_if_formatting_ostream< StreamT, StreamT& >::type - operator<< (StreamT& strm, T const& value) diff --git a/boost-1.64.0-dual-python-build.patch b/boost-1.64.0-dual-python-build.patch deleted file mode 100644 index 2934475..0000000 --- a/boost-1.64.0-dual-python-build.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- boost_1_64_0/tools/build/src/tools/python.jam -+++ boost_1_64_0/tools/build/src/tools/python.jam -@@ -939,14 +939,14 @@ - # for a particular target OS as the default. This makes it so that we can - # select a python interpreter with only knowledge of the target OS. And hence - # can configure different Pythons based on the target OS only. -- local toolset-requirements = [ toolset.requirements ] ; -- local toolset-target-os-requirements -- = [ property.evaluate-conditionals-in-context -- [ $(toolset-requirements).raw ] : $(target-os) ] ; -- if ! in $(toolset-target-os-requirements:G) -- { -- toolset.add-requirements $(target-os):$(version:E=default) ; -- } -+ #local toolset-requirements = [ toolset.requirements ] ; -+ #local toolset-target-os-requirements -+ # = [ property.evaluate-conditionals-in-context -+ # [ $(toolset-requirements).raw ] : $(target-os) ] ; -+ #if ! in $(toolset-target-os-requirements:G) -+ #{ -+ # toolset.add-requirements $(target-os):$(version:E=default) ; -+ #} - - # Register the right suffix for extensions. - register-extension-suffix $(extension-suffix) : $(target-requirements) ; diff --git a/boost-1.64.0-mpi-make_array.patch b/boost-1.64.0-mpi-make_array.patch deleted file mode 100644 index 7ac800c..0000000 --- a/boost-1.64.0-mpi-make_array.patch +++ /dev/null @@ -1,21 +0,0 @@ -From ab924bb5abfa4c00ad11c21632adf97c002ac481 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Thu, 26 Jan 2017 21:52:37 +0000 -Subject: [PATCH] Add header for serialization::make_array - ---- - include/boost/mpi/python/serialize.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/boost/mpi/python/serialize.hpp b/include/boost/mpi/python/serialize.hpp -index 5f9136b..8933b34 100644 ---- a/include/boost/mpi/python/serialize.hpp -+++ b/include/boost/mpi/python/serialize.hpp -@@ -36,6 +36,7 @@ - - #include - #include -+#include - - #include - diff --git a/boost.spec b/boost.spec index 6160a95..874667d 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.3%{?dist} +Release: 0.4%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -135,12 +135,10 @@ Patch83: boost-1.63.0-dual-python-build-v2.patch # https://github.com/boostorg/mpi/pull/39 Patch84: boost-1.64.0-mpi-get_data.patch -# https://github.com/boostorg/mpi/pull/40 -Patch85: boost-1.64.0-mpi-make_array.patch # https://svn.boost.org/trac10/ticket/12516 # https://github.com/boostorg/serialization/commit/1d86261581230e2dc5d617a9b16287d326f3e229 -Patch86: boost-1.64.0-serialization-make_array.patch +Patch85: boost-1.64.0-serialization-make_array.patch %bcond_with tests %bcond_with docs_generated @@ -759,7 +757,6 @@ a number of significant features and is now developed independently %patch83 -p1 %patch84 -p2 %patch85 -p2 -%patch86 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1549,6 +1546,10 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Jul 24 2017 Björn Esser - 1.64.0-0.4 +- Drop obsolete patch for mpi serialization make_array +- Purge unused patches from repo + * Mon Jul 24 2017 Björn Esser - 1.64.0-0.3 - Add patch to fix make_array in serialization From efff732f4f7123c53d901177bf1b78477c6bcdc8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 26 Jul 2017 04:10:16 +0000 Subject: [PATCH 010/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 874667d..ba0f40b 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.4%{?dist} +Release: 0.5%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1546,6 +1546,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Jul 26 2017 Fedora Release Engineering - 1.64.0-0.5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + * Mon Jul 24 2017 Björn Esser - 1.64.0-0.4 - Drop obsolete patch for mpi serialization make_array - Purge unused patches from repo From d185c08009ed82c2cc9a05b737b2098e0b4e4e54 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 2 Aug 2017 18:23:30 +0000 Subject: [PATCH 011/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index ba0f40b..d0cf43d 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.5%{?dist} +Release: 0.6%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1546,6 +1546,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Aug 02 2017 Fedora Release Engineering - 1.64.0-0.6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + * Wed Jul 26 2017 Fedora Release Engineering - 1.64.0-0.5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild From 7f11a73455a2ae3e48914a7acf3b381ffc6b4912 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 9 Aug 2017 18:49:32 +0100 Subject: [PATCH 012/203] Rename VERSION variable to avoid clashing with autotools macro (#1478329) --- boost-1.63.0-VERSION-parameter.patch | 33 ++++++++++++++++++++++++++++ boost.spec | 8 ++++++- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 boost-1.63.0-VERSION-parameter.patch diff --git a/boost-1.63.0-VERSION-parameter.patch b/boost-1.63.0-VERSION-parameter.patch new file mode 100644 index 0000000..9017dbd --- /dev/null +++ b/boost-1.63.0-VERSION-parameter.patch @@ -0,0 +1,33 @@ +--- boost_1_63_0/boost/test/impl/unit_test_parameters.ipp.orig 2017-08-09 18:45:45.223055629 +0100 ++++ boost_1_63_0/boost/test/impl/unit_test_parameters.ipp 2017-08-09 18:45:48.815050508 +0100 +@@ -99,7 +99,7 @@ + + std::string HELP = "help"; + std::string USAGE = "usage"; +-std::string VERSION = "version"; ++std::string btrt_VERSION = "version"; + + //____________________________________________________________________________// + +@@ -638,10 +638,10 @@ + + /////////////////////////////////////////////// + +- rt::option version( VERSION, ( ++ rt::option version( btrt_VERSION, ( + rt::description = "Prints Boost.Test version and exits." + )); +- version.add_cla_id( "--", VERSION, " " ); ++ version.add_cla_id( "--", btrt_VERSION, " " ); + store.add( version ); + } + +@@ -676,7 +676,7 @@ + rt::finalize_arguments( s_parameters_store, s_arguments_store ); + + // Report help if requested +- if( runtime_config::get( VERSION ) ) { ++ if( runtime_config::get( btrt_VERSION ) ) { + parser->version( std::cerr ); + BOOST_TEST_I_THROW( framework::nothing_to_test( boost::exit_success ) ); + } diff --git a/boost.spec b/boost.spec index 0f48a47..c8bf3eb 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -130,6 +130,8 @@ Patch82: boost-1.60.0-no-rpath.patch # https://github.com/boostorg/build/issues/163 Patch83: boost-1.63.0-dual-python-build.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1478329 +Patch84: boost-1.63.0-VERSION-parameter.patch %bcond_with tests %bcond_with docs_generated @@ -651,6 +653,7 @@ a number of significant features and is now developed independently %patch68 -p1 %patch82 -p0 %patch83 -p1 +%patch84 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1296,6 +1299,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Aug 09 2017 Jonathan Wakely - 1.63.0-6 +- Rename VERSION variable to avoid clashing with autotools macro (#1478329) + * Sun Mar 12 2017 Peter Robinson 1.63.0-5 - Enable OpenMPI/mpich on ppc64le and s390x now they have support From d04833457bf31f69e8aebf20dcbb09082cfd68c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sat, 19 Aug 2017 09:38:07 -0400 Subject: [PATCH 013/203] Python 2 binary package renamed to python2-boost --- boost.spec | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/boost.spec b/boost.spec index d0cf43d..6186d3c 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.6%{?dist} +Release: 0.7%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -332,11 +332,15 @@ Run-time support of boost program options library, which allows program developers to obtain (name, value) pairs from the user, via conventional methods such as command-line and configuration file. -%package python +%package -n python2-boost +%{?python_provide:%python_provide python2-boost} +# Remove before F30 +Provides: %{name}-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-python < %{version}-%{release} Summary: Run-time component of boost python library Group: System Environment/Libraries -%description python +%description -n python2-boost The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, @@ -1185,9 +1189,9 @@ rm -f tmp-doc-directories %postun program-options -p /sbin/ldconfig -%post python -p /sbin/ldconfig +%post -n python2-boost -p /sbin/ldconfig -%postun python -p /sbin/ldconfig +%postun -n python2-boost -p /sbin/ldconfig %if %{with python3} %post python3 -p /sbin/ldconfig @@ -1347,7 +1351,7 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_program_options.so.%{sonamever} -%files python +%files -n python2-boost %license LICENSE_1_0.txt %{_libdir}/libboost_python.so.%{sonamever} @@ -1546,6 +1550,10 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1.64.0-0.7 +- Python 2 binary package renamed to python2-boost + See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 + * Wed Aug 02 2017 Fedora Release Engineering - 1.64.0-0.6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild From 83bcf8daf27b72b73a67801c6ea0bcb8ddd8e9e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 20 Aug 2017 09:18:07 -0400 Subject: [PATCH 014/203] Add Provides for the old name without %_isa --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 6186d3c..9bdd58c 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.7%{?dist} +Release: 0.8%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -335,6 +335,7 @@ conventional methods such as command-line and configuration file. %package -n python2-boost %{?python_provide:%python_provide python2-boost} # Remove before F30 +Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} Summary: Run-time component of boost python library @@ -1550,6 +1551,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 1.64.0-0.8 +- Add Provides for the old name without %%_isa + * Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek - 1.64.0-0.7 - Python 2 binary package renamed to python2-boost See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3 From 91d3fad8f33fe06838ba1df3c77ca6131b4df6e6 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 6 Sep 2017 16:26:17 +0100 Subject: [PATCH 015/203] Fix descriptions --- boost.spec | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/boost.spec b/boost.spec index 9bdd58c..18400dd 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 0.8%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -180,7 +180,7 @@ Group: System Environment/Libraries %description container Boost.Container library implements several well-known containers, -including STL containers. The aim of the library is to offers advanced +including STL containers. The aim of the library is to offer advanced features not present in standard containers or to offer the latest standard draft features for compilers that comply with C++03. @@ -244,7 +244,7 @@ Requires: boost-regex%{?_isa} = %{version}-%{release} %description graph Run-time support for the BGL graph library. BGL interface and graph -components are generic, in the same sense as the the Standard Template +components are generic, in the same sense as the Standard Template Library (STL). %package iostreams @@ -253,7 +253,7 @@ Group: System Environment/Libraries %description iostreams -Run-time support for Boost.IOStreams, a framework for defining streams, +Run-time support for Boost.Iostreams, a framework for defining streams, stream buffers and i/o filters. %package locale @@ -302,7 +302,7 @@ The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time -support for the NumPy extension of the Boost Python Library. +support for the NumPy extension of the Boost Python Library for Python 2. %if %{with python3} @@ -347,7 +347,7 @@ The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time -support for Boost Python Library. +support for the Boost Python Library compiled for Python 2. %if %{with python3} @@ -361,7 +361,7 @@ The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time -support for Boost Python Library compiled for Python 3. +support for the Boost Python Library compiled for Python 3. %package python3-devel Summary: Shared object symbolic links for Boost.Python 3 @@ -522,7 +522,7 @@ Obsoletes: odeint-doc < 2.2-5 %description doc This package contains the documentation in the HTML format of the Boost C++ libraries. The documentation provides the same content as that on the Boost -web page (http://www.boost.org/doc/libs/1_40_0). +web page (http://www.boost.org/doc/libs/%{version_enc}). %package examples Summary: Source examples for the Boost C++ libraries @@ -572,7 +572,7 @@ Requires: python2-openmpi%{?_isa} %description openmpi-python -Python support for Boost.MPI-OpenMPI, a library providing a clean C++ +Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. %if %{with python3} @@ -614,7 +614,7 @@ Requires: boost-serialization%{?_isa} = %{version}-%{release} %description graph-openmpi Run-time support for the Parallel BGL graph library. The interface and -graph components are generic, in the same sense as the the Standard +graph components are generic, in the same sense as the Standard Template Library (STL). This libraries in this package use OpenMPI back-end to do the parallel work. @@ -663,7 +663,7 @@ Requires: python2-mpich%{?_isa} %description mpich-python -Python support for Boost.MPI-MPICH, a library providing a clean C++ +Python 2 support for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. %if %{with python3} @@ -707,7 +707,7 @@ Obsoletes: boost-graph-mpich2 < 1.53.0-9 %description graph-mpich Run-time support for the Parallel BGL graph library. The interface and -graph components are generic, in the same sense as the the Standard +graph components are generic, in the same sense as the Standard Template Library (STL). This libraries in this package use MPICH back-end to do the parallel work. @@ -1551,6 +1551,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Sep 06 2017 Jonathan Wakely - 1.64.0-1 +- Fix descriptions + * Sun Aug 20 2017 Zbigniew Jędrzejewski-Szmek - 1.64.0-0.8 - Add Provides for the old name without %%_isa From b9e2eb12e9994fe8ec90017fcf913be2827741f6 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 12 Sep 2017 17:46:27 +0100 Subject: [PATCH 016/203] Patch to fix #1485641 --- boost-1.64.0-icl-ttp-matching.patch | 37 +++++++++++++++++++++++++++++ boost.spec | 10 +++++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 boost-1.64.0-icl-ttp-matching.patch diff --git a/boost-1.64.0-icl-ttp-matching.patch b/boost-1.64.0-icl-ttp-matching.patch new file mode 100644 index 0000000..bcda940 --- /dev/null +++ b/boost-1.64.0-icl-ttp-matching.patch @@ -0,0 +1,37 @@ +From 32178e147a976419b9ac846d3c40c3ab4d1e0ff6 Mon Sep 17 00:00:00 2001 +From: Mathias Gaunard +Date: Thu, 4 May 2017 17:18:22 +0100 +Subject: [PATCH] Compatibility with GCC 7.1 + +The libstdc++ shipped with GCC 7.1 uses a unary class template for std::string. +type_to_string needs to be adapted to deal with this properly. +--- + include/boost/icl/type_traits/type_to_string.hpp | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/include/boost/icl/type_traits/type_to_string.hpp b/include/boost/icl/type_traits/type_to_string.hpp +index 80c473a..994711b 100644 +--- a/include/boost/icl/type_traits/type_to_string.hpp ++++ b/include/boost/icl/type_traits/type_to_string.hpp +@@ -43,7 +43,6 @@ namespace boost{ namespace icl + + template<>inline std::string type_to_string::apply() { return "flt"; } + template<>inline std::string type_to_string::apply() { return "dbl"; } +- template<>inline std::string type_to_string::apply() { return "string"; } + + //------------------------------------------------------------------------- + template class Templ> +@@ -78,6 +77,13 @@ namespace boost{ namespace icl + } + }; + ++ // --------------------------------------------------------------------------- ++ template<> ++ struct type_to_string ++ { ++ static std::string apply() { return "string"; } ++ }; ++ + }} // namespace boost icl + + #endif diff --git a/boost.spec b/boost.spec index 18400dd..41ef9b0 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -140,6 +140,10 @@ Patch84: boost-1.64.0-mpi-get_data.patch # https://github.com/boostorg/serialization/commit/1d86261581230e2dc5d617a9b16287d326f3e229 Patch85: boost-1.64.0-serialization-make_array.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1485641 +# https://github.com/boostorg/icl/pull/9 +Patch86: boost-1.64.0-icl-ttp-matching.patch + %bcond_with tests %bcond_with docs_generated @@ -762,6 +766,7 @@ a number of significant features and is now developed independently %patch83 -p1 %patch84 -p2 %patch85 -p2 +%patch86 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1551,6 +1556,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Sep 12 2017 Jonathan Wakely - 1.64.0-2 +- Patch to fix #1485641 + * Wed Sep 06 2017 Jonathan Wakely - 1.64.0-1 - Fix descriptions From c993c3c511b7e686a5c709bbb3fffe9d8476a4f9 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 6 Sep 2017 16:26:17 +0100 Subject: [PATCH 017/203] Fix descriptions --- boost.spec | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/boost.spec b/boost.spec index c8bf3eb..769f134 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -173,7 +173,7 @@ Group: System Environment/Libraries %description container Boost.Container library implements several well-known containers, -including STL containers. The aim of the library is to offers advanced +including STL containers. The aim of the library is to offer advanced features not present in standard containers or to offer the latest standard draft features for compilers that comply with C++03. @@ -237,7 +237,7 @@ Requires: boost-regex%{?_isa} = %{version}-%{release} %description graph Run-time support for the BGL graph library. BGL interface and graph -components are generic, in the same sense as the the Standard Template +components are generic, in the same sense as the Standard Template Library (STL). %package iostreams @@ -246,7 +246,7 @@ Group: System Environment/Libraries %description iostreams -Run-time support for Boost.IOStreams, a framework for defining streams, +Run-time support for Boost.Iostreams, a framework for defining streams, stream buffers and i/o filters. %package locale @@ -303,7 +303,7 @@ The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time -support for Boost Python Library. +support for the Boost Python Library compiled for Python 2. %if %{with python3} @@ -317,7 +317,7 @@ The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time -support for Boost Python Library compiled for Python 3. +support for the Boost Python Library compiled for Python 3. %package python3-devel Summary: Shared object symbolic links for Boost.Python 3 @@ -477,7 +477,7 @@ Obsoletes: odeint-doc < 2.2-5 %description doc This package contains the documentation in the HTML format of the Boost C++ libraries. The documentation provides the same content as that on the Boost -web page (http://www.boost.org/doc/libs/1_40_0). +web page (http://www.boost.org/doc/libs/%{version_enc}). %package examples Summary: Source examples for the Boost C++ libraries @@ -526,7 +526,7 @@ Requires: boost-serialization%{?_isa} = %{version}-%{release} %description openmpi-python -Python support for Boost.MPI-OpenMPI, a library providing a clean C++ +Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. %package graph-openmpi @@ -538,7 +538,7 @@ Requires: boost-serialization%{?_isa} = %{version}-%{release} %description graph-openmpi Run-time support for the Parallel BGL graph library. The interface and -graph components are generic, in the same sense as the the Standard +graph components are generic, in the same sense as the Standard Template Library (STL). This libraries in this package use OpenMPI back-end to do the parallel work. @@ -586,7 +586,7 @@ Obsoletes: boost-mpich2-python < 1.53.0-9 %description mpich-python -Python support for Boost.MPI-MPICH, a library providing a clean C++ +Python 2 support for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. %package graph-mpich @@ -600,7 +600,7 @@ Obsoletes: boost-graph-mpich2 < 1.53.0-9 %description graph-mpich Run-time support for the Parallel BGL graph library. The interface and -graph components are generic, in the same sense as the the Standard +graph components are generic, in the same sense as the Standard Template Library (STL). This libraries in this package use MPICH back-end to do the parallel work. @@ -1299,6 +1299,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Sep 12 2017 Jonathan Wakely - 1.63.0-7 +- Fix descriptions + * Wed Aug 09 2017 Jonathan Wakely - 1.63.0-6 - Rename VERSION variable to avoid clashing with autotools macro (#1478329) From 70802cf016b9eb845c798f8bbf21ba2dfafb9552 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 12 Sep 2017 17:46:27 +0100 Subject: [PATCH 018/203] Patch to fix #1485641 --- boost-1.63.0-icl-ttp-matching.patch | 37 +++++++++++++++++++++++++++++ boost.spec | 6 +++++ 2 files changed, 43 insertions(+) create mode 100644 boost-1.63.0-icl-ttp-matching.patch diff --git a/boost-1.63.0-icl-ttp-matching.patch b/boost-1.63.0-icl-ttp-matching.patch new file mode 100644 index 0000000..bcda940 --- /dev/null +++ b/boost-1.63.0-icl-ttp-matching.patch @@ -0,0 +1,37 @@ +From 32178e147a976419b9ac846d3c40c3ab4d1e0ff6 Mon Sep 17 00:00:00 2001 +From: Mathias Gaunard +Date: Thu, 4 May 2017 17:18:22 +0100 +Subject: [PATCH] Compatibility with GCC 7.1 + +The libstdc++ shipped with GCC 7.1 uses a unary class template for std::string. +type_to_string needs to be adapted to deal with this properly. +--- + include/boost/icl/type_traits/type_to_string.hpp | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/include/boost/icl/type_traits/type_to_string.hpp b/include/boost/icl/type_traits/type_to_string.hpp +index 80c473a..994711b 100644 +--- a/include/boost/icl/type_traits/type_to_string.hpp ++++ b/include/boost/icl/type_traits/type_to_string.hpp +@@ -43,7 +43,6 @@ namespace boost{ namespace icl + + template<>inline std::string type_to_string::apply() { return "flt"; } + template<>inline std::string type_to_string::apply() { return "dbl"; } +- template<>inline std::string type_to_string::apply() { return "string"; } + + //------------------------------------------------------------------------- + template class Templ> +@@ -78,6 +77,13 @@ namespace boost{ namespace icl + } + }; + ++ // --------------------------------------------------------------------------- ++ template<> ++ struct type_to_string ++ { ++ static std::string apply() { return "string"; } ++ }; ++ + }} // namespace boost icl + + #endif diff --git a/boost.spec b/boost.spec index 769f134..3a3c484 100644 --- a/boost.spec +++ b/boost.spec @@ -133,6 +133,10 @@ Patch83: boost-1.63.0-dual-python-build.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1478329 Patch84: boost-1.63.0-VERSION-parameter.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1485641 +# https://github.com/boostorg/icl/pull/9 +Patch86: boost-1.63.0-icl-ttp-matching.patch + %bcond_with tests %bcond_with docs_generated @@ -654,6 +658,7 @@ a number of significant features and is now developed independently %patch82 -p0 %patch83 -p1 %patch84 -p1 +%patch86 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1301,6 +1306,7 @@ fi %changelog * Tue Sep 12 2017 Jonathan Wakely - 1.63.0-7 - Fix descriptions +- Patch to fix #1485641 * Wed Aug 09 2017 Jonathan Wakely - 1.63.0-6 - Rename VERSION variable to avoid clashing with autotools macro (#1478329) From cc95da10da1db93c1166b1cb3b634cf2777e4fde Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 13 Sep 2017 08:20:07 +0100 Subject: [PATCH 019/203] Rename python2-boost to boost-python2 --- boost.spec | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/boost.spec b/boost.spec index 41ef9b0..5f82051 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -336,16 +336,15 @@ Run-time support of boost program options library, which allows program developers to obtain (name, value) pairs from the user, via conventional methods such as command-line and configuration file. -%package -n python2-boost -%{?python_provide:%python_provide python2-boost} +%package python2 # Remove before F30 -Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} +Obsoletes: python2-%{name} < %{version}-%{release} Summary: Run-time component of boost python library Group: System Environment/Libraries -%description -n python2-boost +%description python2 The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, @@ -1195,9 +1194,9 @@ rm -f tmp-doc-directories %postun program-options -p /sbin/ldconfig -%post -n python2-boost -p /sbin/ldconfig +%post python2 -p /sbin/ldconfig -%postun -n python2-boost -p /sbin/ldconfig +%postun python2 -p /sbin/ldconfig %if %{with python3} %post python3 -p /sbin/ldconfig @@ -1357,7 +1356,7 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_program_options.so.%{sonamever} -%files -n python2-boost +%files python2 %license LICENSE_1_0.txt %{_libdir}/libboost_python.so.%{sonamever} @@ -1556,6 +1555,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Sep 13 2017 Jonathan Wakely - 1.64.0-3 +- Rename python2-boost to boost-python2 + * Tue Sep 12 2017 Jonathan Wakely - 1.64.0-2 - Patch to fix #1485641 From 0985802cd59c445821ed1544f756960f3b423313 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 22 Sep 2017 14:41:01 +0100 Subject: [PATCH 020/203] Add numpy and numpy3 packages (#1451982) - Fix location of openmpi-python and mpich-python modules - Add openmpi-python3 and mpich-python3 packages - Add missing ldconfig post/postun for python3 package --- boost-1.63.0-dual-python-build-v2.patch | 129 +++++++++++ boost-1.63.0-dual-python-build.patch | 46 ---- boost.spec | 292 ++++++++++++++++++++++-- 3 files changed, 401 insertions(+), 66 deletions(-) create mode 100644 boost-1.63.0-dual-python-build-v2.patch delete mode 100644 boost-1.63.0-dual-python-build.patch diff --git a/boost-1.63.0-dual-python-build-v2.patch b/boost-1.63.0-dual-python-build-v2.patch new file mode 100644 index 0000000..dfb6ee1 --- /dev/null +++ b/boost-1.63.0-dual-python-build-v2.patch @@ -0,0 +1,129 @@ +--- boost_1_63_0/libs/mpi/build/Jamfile.v2 2016-12-22 06:33:17.000000000 -0600 ++++ boost_1_63_0/libs/mpi/build/Jamfile.v2 2017-05-19 01:45:05.485563800 -0500 +@@ -11,6 +11,7 @@ + import mpi ; + import indirect ; + import python ; ++import feature ; + + libraries = ; + +@@ -53,18 +54,38 @@ lib boost_mpi + ../../serialization/build//boost_serialization + /mpi//mpi [ mpi.extra-requirements ] + ; ++ ++rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } } + + libraries += boost_mpi ; ++rule find-py3-version ++{ ++ local versions = [ feature.values python ] ; ++ local py3ver ; ++ for local v in $(versions) ++ { ++ if $(v) >= 3.0 ++ { ++ py3ver = $(v) ; ++ } ++ } ++ return $(py3ver) ; ++} ++ ++py3-version = [ find-py3-version ] ; + + if [ python.configured ] + { +- lib boost_mpi_python ++ ++ rule lib_boost_mpi_python ( is-py3 ? ) { ++ ++ lib [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ] + : # Sources + python/serialize.cpp + : # Requirements + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] +- /boost/python//boost_python ++ [ cond $(is-py3) : /boost/python//boost_python3 : /boost/python//boost_python ] + shared:BOOST_MPI_DYN_LINK=1 + shared:BOOST_MPI_PYTHON_DYN_LINK=1 + shared:BOOST_PYTHON_DYN_LINK=1 +@@ -76,7 +97,6 @@ libraries += boost_mpi ; + : # Usage requirements + /mpi//mpi [ mpi.extra-requirements ] + ; +- libraries += boost_mpi_python ; + + python-extension mpi + : # Sources +@@ -93,8 +113,8 @@ libraries += boost_mpi ; + python/status.cpp + python/py_timer.cpp + : # Requirements +- /boost/python//boost_python +- boost_mpi_python ++ [ cond $(is-py3) : /boost/python//boost_python3 : /boost/python//boost_python ] ++ [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ] + boost_mpi + /mpi//mpi [ mpi.extra-requirements ] + shared:BOOST_MPI_DYN_LINK=1 +@@ -102,6 +122,16 @@ libraries += boost_mpi ; + shared:BOOST_PYTHON_DYN_LINK=1 + shared shared + ; ++ } ++ ++ if $(py3-version) { ++ lib_boost_mpi_python yes ; ++ libraries += boost_mpi_python3 ; ++ } else { ++ lib_boost_mpi_python ; ++ libraries += boost_mpi_python ; ++ } ++ + } + } + else if ! ( --without-mpi in [ modules.peek : ARGV ] ) +--- boost_1_63_0/libs/python/build/Jamfile 2017-05-19 02:33:53.600132400 -0500 ++++ boost_1_63_0/libs/python/build/Jamfile 2017-05-19 01:50:43.746550000 -0500 +@@ -140,7 +140,7 @@ rule lib_boost_numpy ( is-py3 ? ) + [ cond [ python.numpy ] : /python//python_for_extensions ] + [ unless [ python.numpy ] : no ] + $(numpy-include) +- boost_python ++ [ cond $(is-py3) : boost_python3 : boost_python ] + on:BOOST_DEBUG_PYTHON + [ cond $(is-py3) : $(py3-version) ] + +@@ -154,22 +154,25 @@ rule lib_boost_numpy ( is-py3 ? ) + ; + } + +-libraries = boost_python ; ++libraries2 = boost_python ; + libraries3 = boost_python3 ; + if [ python.numpy ] + { +- libraries += boost_numpy ; ++ libraries2 += boost_numpy ; + libraries3 += boost_numpy3 ; + } + +-lib_boost_python ; +-lib_boost_numpy ; +- + if $(py3-version) + { + lib_boost_python yes ; + lib_boost_numpy yes ; + libraries += $(libraries3) ; + } ++else ++{ ++ lib_boost_python ; ++ lib_boost_numpy ; ++ libraries += $(libraries2) ; ++} + + boost-install $(libraries) ; diff --git a/boost-1.63.0-dual-python-build.patch b/boost-1.63.0-dual-python-build.patch deleted file mode 100644 index d20b262..0000000 --- a/boost-1.63.0-dual-python-build.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- boost_1_63_0/tools/build/src/tools/python.jam.orig 2017-02-16 18:51:14.005483084 +0000 -+++ boost_1_63_0/tools/build/src/tools/python.jam 2017-02-16 18:51:24.912497496 +0000 -@@ -926,27 +926,27 @@ - # for a particular target OS as the default. This makes it so that we can - # select a python interpreter with only knowledge of the target OS. And hence - # can configure different Pythons based on the target OS only. -- local toolset-requirements = [ toolset.requirements ] ; -- local toolset-target-os-requirements -- = [ property.evaluate-conditionals-in-context -- [ $(toolset-requirements).raw ] : $(target-os) ] ; -- if ! in $(toolset-target-os-requirements:G) -- { -- toolset.add-requirements $(target-os):$(version:E=default) ; -- } -+ #local toolset-requirements = [ toolset.requirements ] ; -+ #local toolset-target-os-requirements -+ # = [ property.evaluate-conditionals-in-context -+ # [ $(toolset-requirements).raw ] : $(target-os) ] ; -+ #if ! in $(toolset-target-os-requirements:G) -+ #{ -+ # toolset.add-requirements $(target-os):$(version:E=default) ; -+ #} - - # We also set a default requirement that assigns the first python configured - # for a particular target OS as the default. This makes it so that we can - # select a python interpreter with only knowledge of the target OS. And hence - # can configure different Pythons based on the target OS only. -- local toolset-requirements = [ toolset.requirements ] ; -- local toolset-target-os-requirements -- = [ property.evaluate-conditionals-in-context -- [ $(toolset-requirements).raw ] : $(target-os) ] ; -- if ! in $(toolset-target-os-requirements:G) -- { -- toolset.add-requirements $(target-os):$(version:E=default) ; -- } -+ #local toolset-requirements = [ toolset.requirements ] ; -+ #local toolset-target-os-requirements -+ # = [ property.evaluate-conditionals-in-context -+ # [ $(toolset-requirements).raw ] : $(target-os) ] ; -+ #if ! in $(toolset-target-os-requirements:G) -+ #{ -+ # toolset.add-requirements $(target-os):$(version:E=default) ; -+ #} - - # Register the right suffix for extensions. - register-extension-suffix $(extension-suffix) : $(target-requirements) ; diff --git a/boost.spec b/boost.spec index 3a3c484..acba59b 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -70,6 +70,7 @@ Requires: boost-iostreams%{?_isa} = %{version}-%{release} Requires: boost-locale%{?_isa} = %{version}-%{release} Requires: boost-log%{?_isa} = %{version}-%{release} Requires: boost-math%{?_isa} = %{version}-%{release} +Requires: boost-numpy%{?_isa} = %{version}-%{release} Requires: boost-program-options%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-random%{?_isa} = %{version}-%{release} @@ -88,8 +89,10 @@ BuildRequires: libstdc++-devel BuildRequires: bzip2-devel BuildRequires: zlib-devel BuildRequires: python-devel +BuildRequires: python2-numpy %if %{with python3} BuildRequires: python3-devel +BuildRequires: python3-numpy %endif BuildRequires: libicu-devel %if %{with quadmath} @@ -127,8 +130,8 @@ Patch68: boost-1.58.0-address-model.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.60.0-no-rpath.patch -# https://github.com/boostorg/build/issues/163 -Patch83: boost-1.63.0-dual-python-build.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1451982 +Patch83: boost-1.63.0-dual-python-build-v2.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1478329 Patch84: boost-1.63.0-VERSION-parameter.patch @@ -287,6 +290,38 @@ Requires: libquadmath%{?_isa} Run-time support for C99 and C++ TR1 C-style Functions from the math portion of Boost.TR1. +%package numpy +Summary: Run-time component of boost python numpy extension +Group: System Environment/Libraries +Requires: boost-python%{?_isa} = %{version}-%{release} +Requires: python2-numpy + +%description numpy + +The Boost Python Library is a framework for interfacing Python and +C++. It allows you to quickly and seamlessly expose C++ classes, +functions and objects to Python, and vice versa, using no special +tools -- just your C++ compiler. This package contains run-time +support for the NumPy extension of the Boost Python Library. + +%if %{with python3} + +%package numpy3 +Summary: Run-time component of boost numpy library for Python 3 +Group: System Environment/Libraries +Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: python3-numpy + +%description numpy3 + +The Boost Python Library is a framework for interfacing Python and +C++. It allows you to quickly and seamlessly expose C++ classes, +functions and objects to Python, and vice versa, using no special +tools -- just your C++ compiler. This package contains run-time +support for the NumPy extension of the Boost Python Library for Python 3. + +%endif + %package program-options Summary: Run-time component of boost program_options library Group: System Environment/Libraries @@ -326,6 +361,7 @@ support for the Boost Python Library compiled for Python 3. %package python3-devel Summary: Shared object symbolic links for Boost.Python 3 Group: System Environment/Libraries +Requires: boost-numpy3%{?_isa} = %{version}-%{release} Requires: boost-python3%{?_isa} = %{version}-%{release} Requires: boost-devel%{?_isa} = %{version}-%{release} @@ -527,12 +563,43 @@ Group: System Environment/Libraries Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: python2-openmpi%{?_isa} %description openmpi-python Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. +%if %{with python3} + +%package openmpi-python3 +Summary: Python 3 run-time component of Boost.MPI library +Group: System Environment/Libraries +Requires: boost-openmpi%{?_isa} = %{version}-%{release} +Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: python3-openmpi%{?_isa} + +%description openmpi-python3 + +Python 3 support for Boost.MPI-OpenMPI, a library providing a clean C++ +API over the OpenMPI implementation of MPI. + +%package openmpi-python3-devel +Summary: Shared library symbolic links for Boost.MPI Python 3 component +Group: System Environment/Libraries +Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: boost-python3-devel%{?_isa} = %{version}-%{release} +Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} +Requires: boost-openmpi-python3%{?_isa} = %{version}-%{release} + +%description openmpi-python3-devel + +Devel package for the Python 3 interface of Boost.MPI-OpenMPI, a library +providing a clean C++ API over the OpenMPI implementation of MPI. + +%endif + %package graph-openmpi Summary: Run-time component of parallel boost graph library Group: System Environment/Libraries @@ -587,12 +654,43 @@ Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Provides: boost-mpich2-python = %{version}-%{release} Obsoletes: boost-mpich2-python < 1.53.0-9 +Requires: python2-mpich%{?_isa} %description mpich-python Python 2 support for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. +%if %{with python3} + +%package mpich-python3 +Summary: Python 3 run-time component of Boost.MPI library +Group: System Environment/Libraries +Requires: boost-mpich%{?_isa} = %{version}-%{release} +Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: python3-mpich%{?_isa} + +%description mpich-python3 + +Python 3 support for Boost.MPI-MPICH, a library providing a clean C++ +API over the MPICH implementation of MPI. + +%package mpich-python3-devel +Summary: Shared library symbolic links for Boost.MPI Python 3 component +Group: System Environment/Libraries +Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: boost-python3-devel%{?_isa} = %{version}-%{release} +Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} +Requires: boost-mpich-python3%{?_isa} = %{version}-%{release} + +%description mpich-python3-devel + +Devel package for the Python 3 interface of Boost.MPI-MPICH, a library +providing a clean C++ API over the MPICH implementation of MPI. + +%endif + %package graph-mpich Summary: Run-time component of parallel boost graph library Group: System Environment/Libraries @@ -688,10 +786,7 @@ using gcc : : : $(RPM_OPT_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif -%if %{with python3} using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ; -using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ; -%endif EOF ./bootstrap.sh --with-toolset=gcc --with-icu @@ -700,13 +795,6 @@ EOF # library in particular) end up being built second time during # installation. Unsure why that is, but all sub-builds need to be # built with pch=off to avoid this. -# -# The "python=2.*" bit tells jam that we want to _also_ build 2.*, not -# just 3.*. When omitted, it just builds for python 3 twice, once -# calling the library libboost_python and once libboost_python3. I -# assume this is for backward compatibility for apps that are used to -# linking against -lboost_python, for when 2->3 transition is -# eventually done. echo ============================= build serial ================== ./b2 -d+2 -q %{?_smp_mflags} \ @@ -729,6 +817,33 @@ fi m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ %{SOURCE2} > $(basename %{SOURCE2}) +%if %{with python3} + +# Previously, we built python 2.x and 3.x interfaces simultaneously. +# However, this doesn't work once trying to build other Python components +# such as libboost_numpy. Therefore, we build for each separately, while +# minimizing duplicate compilation as much as possible. + +cat > python3-config.jam << "EOF" +import os ; +local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; + +using gcc : : : $(RPM_OPT_FLAGS) ; +%if %{with openmpi} || %{with mpich} +using mpi ; +%endif +using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ; +EOF + +echo ============================= build serial-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-python --build-dir=serial-py3 \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage + +%endif + # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} @@ -737,9 +852,6 @@ m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ module purge ||: %endif -# N.B. python=2.* here behaves differently: it exactly selects a -# version that we want to build against. Boost MPI is not portable to -# Python 3 due to API changes in Python, so this suits us. %if %{with openmpi} %{_openmpi_load} echo ============================= build $MPI_COMPILER ================== @@ -747,6 +859,16 @@ echo ============================= build $MPI_COMPILER ================== --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage + +%if %{with python3} +echo ============================= build $MPI_COMPILER-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage +%endif + %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -759,6 +881,16 @@ echo ============================= build $MPI_COMPILER ================== --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage + +%if %{with python3} +echo ============================= build $MPI_COMPILER-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage +%endif + %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -792,6 +924,28 @@ echo ============================= install $MPI_COMPILER ================== variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost +touch ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/ + +%if %{with python3} +echo ============================= install $MPI_COMPILER-py3 ================== +./b2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage + +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost +touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ +%endif + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* @@ -808,6 +962,28 @@ echo ============================= install $MPI_COMPILER ================== variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost +touch ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/ + +%if %{with python3} +echo ============================= install $MPI_COMPILER-py3 ================== +./b2 -q %{?_smp_mflags} \ + --user-config=./python3-config.jam \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} stage + +# Move Python module to proper location for automatic loading +mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost +touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ + ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ +%endif + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* @@ -833,6 +1009,18 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_libdir}/ +%if %{with python3} +echo ============================= install serial-py3 ================== +./b2 -d+2 -q %{?_smp_mflags} \ + --user-config=python3-config.jam \ + --with-python --build-dir=serial-py3 \ + --prefix=$RPM_BUILD_ROOT%{_prefix} \ + --libdir=$RPM_BUILD_ROOT%{_libdir} \ + variant=release threading=multi debug-symbols=on pch=off \ + python=%{python3_version} install + +%endif + echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install @@ -987,6 +1175,16 @@ rm -rf $RPM_BUILD_ROOT %postun math -p /sbin/ldconfig +%post numpy -p /sbin/ldconfig + +%postun numpy -p /sbin/ldconfig + +%if %{with python3} +%post numpy3 -p /sbin/ldconfig + +%postun numpy3 -p /sbin/ldconfig +%endif + %post program-options -p /sbin/ldconfig %postun program-options -p /sbin/ldconfig @@ -995,6 +1193,12 @@ rm -rf $RPM_BUILD_ROOT %postun python -p /sbin/ldconfig +%if %{with python3} +%post python3 -p /sbin/ldconfig + +%postun python3 -p /sbin/ldconfig +%endif + %post random -p /sbin/ldconfig %postun random -p /sbin/ldconfig @@ -1128,6 +1332,16 @@ fi %{_libdir}/libboost_math_tr1f.so.%{sonamever} %{_libdir}/libboost_math_tr1l.so.%{sonamever} +%files numpy +%license LICENSE_1_0.txt +%{_libdir}/libboost_numpy.so.%{sonamever} + +%if %{with python3} +%files numpy3 +%license LICENSE_1_0.txt +%{_libdir}/libboost_numpy3.so.%{sonamever} +%endif + %files test %license LICENSE_1_0.txt %{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} @@ -1148,6 +1362,7 @@ fi %files python3-devel %license LICENSE_1_0.txt +%{_libdir}/libboost_numpy3.so %{_libdir}/libboost_python3.so %endif @@ -1220,6 +1435,7 @@ fi %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so %{_libdir}/libboost_math_c99l.so +%{_libdir}/libboost_numpy.so %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so @@ -1254,12 +1470,27 @@ fi %files openmpi-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_*.so +%{_libdir}/openmpi/lib/libboost_mpi.so +%{_libdir}/openmpi/lib/libboost_mpi_python.so +%{_libdir}/openmpi/lib/libboost_graph_parallel.so %files openmpi-python %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} -%{_libdir}/openmpi/lib/mpi.so +%{python2_sitearch}/openmpi/boost/ + +%if %{with python3} + +%files openmpi-python3 +%license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_mpi_python3.so.%{sonamever} +%{python3_sitearch}/openmpi/boost/ + +%files openmpi-python3-devel +%license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_mpi_python3.so + +%endif %files graph-openmpi %license LICENSE_1_0.txt @@ -1276,12 +1507,27 @@ fi %files mpich-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_*.so +%{_libdir}/mpich/lib/libboost_mpi.so +%{_libdir}/mpich/lib/libboost_mpi_python.so +%{_libdir}/mpich/lib/libboost_graph_parallel.so %files mpich-python %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python.so.%{sonamever} -%{_libdir}/mpich/lib/mpi.so +%{python2_sitearch}/mpich/boost/ + +%if %{with python3} + +%files mpich-python3 +%license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_mpi_python3.so.%{sonamever} +%{python3_sitearch}/mpich/boost/ + +%files mpich-python3-devel +%license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_mpi_python3.so + +%endif %files graph-mpich %license LICENSE_1_0.txt @@ -1304,6 +1550,12 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Sep 22 2017 Yaakov Selkowitz - 1.63.0-8 +- Add numpy and numpy3 packages (#1451982) +- Fix location of openmpi-python and mpich-python modules +- Add openmpi-python3 and mpich-python3 packages +- Add missing ldconfig post/postun for python3 package + * Tue Sep 12 2017 Jonathan Wakely - 1.63.0-7 - Fix descriptions - Patch to fix #1485641 From b634b3b0c88876cfb1c819db607cd95e8333fa6a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 25 Sep 2017 14:14:02 +0100 Subject: [PATCH 021/203] Fix some rpmlint issues - Remove Requires for libquadmath (explicit-lib-dependency) - Remove executable bits on header files (spurious-executable-perm) - Adjust boost.wave %%description (spelling-error) --- boost.spec | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/boost.spec b/boost.spec index 5f82051..13a9ff6 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -285,9 +285,6 @@ tools along with public interfaces for extending the library. %package math Summary: Math functions for boost TR1 library Group: System Environment/Libraries -%if %{with quadmath} -Requires: libquadmath%{?_isa} -%endif %description math @@ -477,7 +474,7 @@ Requires: boost-thread%{?_isa} = %{version}-%{release} Run-time support for the Boost.Wave library, a Standards conforming, and highly configurable implementation of the mandated C99/C++ -pre-processor functionality. +preprocessor functionality. %package devel Summary: The Boost C++ headers and shared development libraries @@ -747,10 +744,11 @@ Group: Development/Tools %description jam Boost.Jam (BJam) is the low-level build engine tool for Boost.Build. Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown -a number of significant features and is now developed independently +a number of significant features and is now developed independently. %prep %setup -q -n %{toplev_dirname} +find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch4 -p1 %patch5 -p1 @@ -1555,6 +1553,12 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Sep 25 2017 Jonathan Wakely - 1.64.0-4 +- Fix some rpmlint issues +- Remove Requires for libquadmath (explicit-lib-dependency) +- Remove executable bits on header files (spurious-executable-perm) +- Adjust boost.wave %%description (spelling-error) + * Wed Sep 13 2017 Jonathan Wakely - 1.64.0-3 - Rename python2-boost to boost-python2 From fe6c381304035a6f0af089a3e62ab8ff40ee74a6 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 25 Sep 2017 11:18:05 +0100 Subject: [PATCH 022/203] Patch asio so header is self-contained (#1421784) Fix some rpmlint issues: - Remove executable bits on header files (spurious-executable-perm) - Adjust boost.wave %%description (spelling-error) --- boost-1.63.0-asio-ssl.patch | 25 +++++++++++++++++++++++++ boost.spec | 19 +++++++++++++++---- 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 boost-1.63.0-asio-ssl.patch diff --git a/boost-1.63.0-asio-ssl.patch b/boost-1.63.0-asio-ssl.patch new file mode 100644 index 0000000..4abed3d --- /dev/null +++ b/boost-1.63.0-asio-ssl.patch @@ -0,0 +1,25 @@ +From 2b6230aef8c819a2118196861c46a9011cfaf46e Mon Sep 17 00:00:00 2001 +From: Christopher Kohlhoff +Date: Sun, 5 Mar 2017 22:58:18 +1100 +Subject: [PATCH] Make sure asio/ssl/error.hpp is self-contained. + +--- + include/boost/asio/ssl/error.hpp | 1 + + test/ssl/Jamfile | 1 + + test/ssl/Jamfile.v2 | 2 ++ + test/ssl/error.cpp | 25 +++++++++++++++++++++++++ + 4 files changed, 29 insertions(+) + create mode 100644 test/ssl/error.cpp + +diff --git a/include/boost/asio/ssl/error.hpp b/include/boost/asio/ssl/error.hpp +index c7825e64..968902c5 100644 +--- a/include/boost/asio/ssl/error.hpp ++++ b/include/boost/asio/ssl/error.hpp +@@ -17,6 +17,7 @@ + + #include + #include ++#include + + #include + diff --git a/boost.spec b/boost.spec index acba59b..a406e66 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -140,6 +140,9 @@ Patch84: boost-1.63.0-VERSION-parameter.patch # https://github.com/boostorg/icl/pull/9 Patch86: boost-1.63.0-icl-ttp-matching.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1421784 +Patch87: boost-1.63.0-asio-ssl.patch + %bcond_with tests %bcond_with docs_generated @@ -457,7 +460,7 @@ The Boost.TypeErasure library provides runtime polymorphism in C++ that is more flexible than that provided by the core language. %package wave -Summary: Run-time component of boost C99/C++ pre-processing library +Summary: Run-time component of boost C99/C++ preprocessing library Group: System Environment/Libraries Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-date-time%{?_isa} = %{version}-%{release} @@ -469,7 +472,7 @@ Requires: boost-thread%{?_isa} = %{version}-%{release} Run-time support for the Boost.Wave library, a Standards conforming, and highly configurable implementation of the mandated C99/C++ -pre-processor functionality. +preprocessor functionality. %package devel Summary: The Boost C++ headers and shared development libraries @@ -739,10 +742,11 @@ Group: Development/Tools %description jam Boost.Jam (BJam) is the low-level build engine tool for Boost.Build. Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown -a number of significant features and is now developed independently +a number of significant features and is now developed independently. %prep %setup -q -n %{toplev_dirname} +find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch4 -p1 %patch5 -p1 @@ -757,6 +761,7 @@ a number of significant features and is now developed independently %patch83 -p1 %patch84 -p1 %patch86 -p2 +%patch87 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1550,6 +1555,12 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Sep 25 2017 Jonathan Wakely - 1.63.0-9 +- Patch asio so header is self-contained (#1421784) +- Fix some rpmlint issues: +- Remove executable bits on header files (spurious-executable-perm) +- Adjust boost.wave %%description (spelling-error) + * Fri Sep 22 2017 Yaakov Selkowitz - 1.63.0-8 - Add numpy and numpy3 packages (#1451982) - Fix location of openmpi-python and mpich-python modules From 4c79bb2181093337608078b1123c0dfe21eb7962 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 25 Sep 2017 16:07:49 +0100 Subject: [PATCH 023/203] Fix spelling in boost-wave summary --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 13a9ff6..fae6616 100644 --- a/boost.spec +++ b/boost.spec @@ -462,7 +462,7 @@ The Boost.TypeErasure library provides runtime polymorphism in C++ that is more flexible than that provided by the core language. %package wave -Summary: Run-time component of boost C99/C++ pre-processing library +Summary: Run-time component of boost C99/C++ preprocessing library Group: System Environment/Libraries Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-date-time%{?_isa} = %{version}-%{release} From 9497c27f10df70a2bd9571f321968bebf8227277 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Thu, 30 Nov 2017 20:19:32 +0000 Subject: [PATCH 024/203] Rebuild for ICU 60.1 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index fae6616..6a4fc93 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1553,6 +1553,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Nov 30 2017 Pete Walter - 1.64.0-5 +- Rebuild for ICU 60.1 + * Mon Sep 25 2017 Jonathan Wakely - 1.64.0-4 - Fix some rpmlint issues - Remove Requires for libquadmath (explicit-lib-dependency) From 5c4a0e07d3976b8dbabe0902eeb8231f6b712948 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 7 Dec 2017 14:37:10 +0000 Subject: [PATCH 025/203] Patch to fix #1516837 --- boost-1.64.0-icl-undefined-shift.patch | 28 ++++++++++++++++++++++++++ boost.spec | 10 ++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 boost-1.64.0-icl-undefined-shift.patch diff --git a/boost-1.64.0-icl-undefined-shift.patch b/boost-1.64.0-icl-undefined-shift.patch new file mode 100644 index 0000000..88441a1 --- /dev/null +++ b/boost-1.64.0-icl-undefined-shift.patch @@ -0,0 +1,28 @@ +From 9687dea689e58cd1f67440fa529cb5c9692e9858 Mon Sep 17 00:00:00 2001 +From: Avi Kivity +Date: Sun, 2 Jul 2017 12:56:35 +0300 +Subject: [PATCH] Fix undefined behavior in interval_bounds::reverse_right() + +The ~ operator converts _bits from unsigned char to int, and makes it +negative to boot. Shifting left a negative number is undefined behavior. + +Cast it back to unsigned char to prevent undefined behavior. +--- + include/boost/icl/interval_bounds.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/boost/icl/interval_bounds.hpp b/include/boost/icl/interval_bounds.hpp +index edf16d0..f917cb6 100644 +--- a/include/boost/icl/interval_bounds.hpp ++++ b/include/boost/icl/interval_bounds.hpp +@@ -41,8 +41,8 @@ class interval_bounds + interval_bounds all ()const { return interval_bounds(_bits & _all ); } + interval_bounds left ()const { return interval_bounds(_bits & _left ); } + interval_bounds right()const { return interval_bounds(_bits & _right); } +- interval_bounds reverse_left ()const { return interval_bounds((~_bits>>1) & _right); } +- interval_bounds reverse_right()const { return interval_bounds((~_bits<<1) & _left ); } ++ interval_bounds reverse_left ()const { return interval_bounds((bound_type(~_bits)>>1) & _right); } ++ interval_bounds reverse_right()const { return interval_bounds((bound_type(~_bits)<<1) & _left ); } + + bound_type bits()const{ return _bits; } + diff --git a/boost.spec b/boost.spec index 6a4fc93..7d84acc 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -144,6 +144,10 @@ Patch85: boost-1.64.0-serialization-make_array.patch # https://github.com/boostorg/icl/pull/9 Patch86: boost-1.64.0-icl-ttp-matching.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1516837 +# https://github.com/boostorg/icl/pull/11 +Patch87: boost-1.64.0-icl-undefined-shift.patch + %bcond_with tests %bcond_with docs_generated @@ -764,6 +768,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch84 -p2 %patch85 -p2 %patch86 -p2 +%patch87 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1553,6 +1558,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Dec 07 2017 Jonathan Wakely - 1.64.0-6 +- Patch to fix #1516837 + * Thu Nov 30 2017 Pete Walter - 1.64.0-5 - Rebuild for ICU 60.1 From b7843aa77e63b55d390a3374e5d43d1749cdcb98 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 7 Dec 2017 14:37:10 +0000 Subject: [PATCH 026/203] Patch to fix #1516837 --- boost-1.64.0-icl-undefined-shift.patch | 28 ++++++++++++++++++++++++++ boost.spec | 11 ++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 boost-1.64.0-icl-undefined-shift.patch diff --git a/boost-1.64.0-icl-undefined-shift.patch b/boost-1.64.0-icl-undefined-shift.patch new file mode 100644 index 0000000..88441a1 --- /dev/null +++ b/boost-1.64.0-icl-undefined-shift.patch @@ -0,0 +1,28 @@ +From 9687dea689e58cd1f67440fa529cb5c9692e9858 Mon Sep 17 00:00:00 2001 +From: Avi Kivity +Date: Sun, 2 Jul 2017 12:56:35 +0300 +Subject: [PATCH] Fix undefined behavior in interval_bounds::reverse_right() + +The ~ operator converts _bits from unsigned char to int, and makes it +negative to boot. Shifting left a negative number is undefined behavior. + +Cast it back to unsigned char to prevent undefined behavior. +--- + include/boost/icl/interval_bounds.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/boost/icl/interval_bounds.hpp b/include/boost/icl/interval_bounds.hpp +index edf16d0..f917cb6 100644 +--- a/include/boost/icl/interval_bounds.hpp ++++ b/include/boost/icl/interval_bounds.hpp +@@ -41,8 +41,8 @@ class interval_bounds + interval_bounds all ()const { return interval_bounds(_bits & _all ); } + interval_bounds left ()const { return interval_bounds(_bits & _left ); } + interval_bounds right()const { return interval_bounds(_bits & _right); } +- interval_bounds reverse_left ()const { return interval_bounds((~_bits>>1) & _right); } +- interval_bounds reverse_right()const { return interval_bounds((~_bits<<1) & _left ); } ++ interval_bounds reverse_left ()const { return interval_bounds((bound_type(~_bits)>>1) & _right); } ++ interval_bounds reverse_right()const { return interval_bounds((bound_type(~_bits)<<1) & _left ); } + + bound_type bits()const{ return _bits; } + diff --git a/boost.spec b/boost.spec index a406e66..955b3b6 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -143,6 +143,10 @@ Patch86: boost-1.63.0-icl-ttp-matching.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1421784 Patch87: boost-1.63.0-asio-ssl.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1516837 +# https://github.com/boostorg/icl/pull/11 +Patch88: boost-1.64.0-icl-undefined-shift.patch + %bcond_with tests %bcond_with docs_generated @@ -761,7 +765,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch83 -p1 %patch84 -p1 %patch86 -p2 -%patch87 -p2 +%patch88 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1555,6 +1559,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Dec 07 2017 Jonathan Wakely - 1.63.0-10 +- Patch to fix #1516837 + * Mon Sep 25 2017 Jonathan Wakely - 1.63.0-9 - Patch asio so header is self-contained (#1421784) - Fix some rpmlint issues: From 1885d22687f0f7cad0ddb963a496235a1e8515d8 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 17 Jan 2018 11:55:29 +0000 Subject: [PATCH 027/203] Restore "Provides: boost-python" for boost-python2 --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 7d84acc..e8526c1 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.64.0 %global version_enc 1_64_0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -339,6 +339,7 @@ conventional methods such as command-line and configuration file. %package python2 # Remove before F30 +Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} Obsoletes: python2-%{name} < %{version}-%{release} @@ -1558,6 +1559,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Jan 17 2018 Jonathan Wakely - 1.64.0-7 +- Restore "Provides: boost-python" for boost-python2 + * Thu Dec 07 2017 Jonathan Wakely - 1.64.0-6 - Patch to fix #1516837 From 747d6e8fe254930fb7876e679d0c6f80974f5364 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 23 Jan 2018 15:33:35 +0000 Subject: [PATCH 028/203] Rebase to 1.66.0 - Drop patches: boost-1.63.0-dual-python-build-v2.patch boost-1.64.0-mpi-get_data.patch boost-1.64.0-serialization-make_array.patch boost-1.64.0-icl-ttp-matching.patch boost-1.64.0-icl-undefined-shift.patch --- boost-1.64.0-icl-ttp-matching.patch | 37 ------ boost-1.64.0-icl-undefined-shift.patch | 28 ----- boost-1.64.0-mpi-get_data.patch | 119 ------------------ boost-1.64.0-serialization-make_array.patch | 23 ---- ....patch => boost-1.66.0-address-model.patch | 6 +- ...patch => boost-1.66.0-build-optflags.patch | 61 ++++----- ...rpath.patch => boost-1.66.0-no-rpath.patch | 13 +- ...h => boost-1.66.0-python-abi_letters.patch | 4 +- boost.spec | 69 +++++----- 9 files changed, 80 insertions(+), 280 deletions(-) delete mode 100644 boost-1.64.0-icl-ttp-matching.patch delete mode 100644 boost-1.64.0-icl-undefined-shift.patch delete mode 100644 boost-1.64.0-mpi-get_data.patch delete mode 100644 boost-1.64.0-serialization-make_array.patch rename boost-1.58.0-address-model.patch => boost-1.66.0-address-model.patch (56%) rename boost-1.57.0-build-optflags.patch => boost-1.66.0-build-optflags.patch (86%) rename boost-1.60.0-no-rpath.patch => boost-1.66.0-no-rpath.patch (75%) rename boost-1.57.0-python-abi_letters.patch => boost-1.66.0-python-abi_letters.patch (96%) diff --git a/boost-1.64.0-icl-ttp-matching.patch b/boost-1.64.0-icl-ttp-matching.patch deleted file mode 100644 index bcda940..0000000 --- a/boost-1.64.0-icl-ttp-matching.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 32178e147a976419b9ac846d3c40c3ab4d1e0ff6 Mon Sep 17 00:00:00 2001 -From: Mathias Gaunard -Date: Thu, 4 May 2017 17:18:22 +0100 -Subject: [PATCH] Compatibility with GCC 7.1 - -The libstdc++ shipped with GCC 7.1 uses a unary class template for std::string. -type_to_string needs to be adapted to deal with this properly. ---- - include/boost/icl/type_traits/type_to_string.hpp | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - -diff --git a/include/boost/icl/type_traits/type_to_string.hpp b/include/boost/icl/type_traits/type_to_string.hpp -index 80c473a..994711b 100644 ---- a/include/boost/icl/type_traits/type_to_string.hpp -+++ b/include/boost/icl/type_traits/type_to_string.hpp -@@ -43,7 +43,6 @@ namespace boost{ namespace icl - - template<>inline std::string type_to_string::apply() { return "flt"; } - template<>inline std::string type_to_string::apply() { return "dbl"; } -- template<>inline std::string type_to_string::apply() { return "string"; } - - //------------------------------------------------------------------------- - template class Templ> -@@ -78,6 +77,13 @@ namespace boost{ namespace icl - } - }; - -+ // --------------------------------------------------------------------------- -+ template<> -+ struct type_to_string -+ { -+ static std::string apply() { return "string"; } -+ }; -+ - }} // namespace boost icl - - #endif diff --git a/boost-1.64.0-icl-undefined-shift.patch b/boost-1.64.0-icl-undefined-shift.patch deleted file mode 100644 index 88441a1..0000000 --- a/boost-1.64.0-icl-undefined-shift.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 9687dea689e58cd1f67440fa529cb5c9692e9858 Mon Sep 17 00:00:00 2001 -From: Avi Kivity -Date: Sun, 2 Jul 2017 12:56:35 +0300 -Subject: [PATCH] Fix undefined behavior in interval_bounds::reverse_right() - -The ~ operator converts _bits from unsigned char to int, and makes it -negative to boot. Shifting left a negative number is undefined behavior. - -Cast it back to unsigned char to prevent undefined behavior. ---- - include/boost/icl/interval_bounds.hpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/boost/icl/interval_bounds.hpp b/include/boost/icl/interval_bounds.hpp -index edf16d0..f917cb6 100644 ---- a/include/boost/icl/interval_bounds.hpp -+++ b/include/boost/icl/interval_bounds.hpp -@@ -41,8 +41,8 @@ class interval_bounds - interval_bounds all ()const { return interval_bounds(_bits & _all ); } - interval_bounds left ()const { return interval_bounds(_bits & _left ); } - interval_bounds right()const { return interval_bounds(_bits & _right); } -- interval_bounds reverse_left ()const { return interval_bounds((~_bits>>1) & _right); } -- interval_bounds reverse_right()const { return interval_bounds((~_bits<<1) & _left ); } -+ interval_bounds reverse_left ()const { return interval_bounds((bound_type(~_bits)>>1) & _right); } -+ interval_bounds reverse_right()const { return interval_bounds((bound_type(~_bits)<<1) & _left ); } - - bound_type bits()const{ return _bits; } - diff --git a/boost-1.64.0-mpi-get_data.patch b/boost-1.64.0-mpi-get_data.patch deleted file mode 100644 index a51bd83..0000000 --- a/boost-1.64.0-mpi-get_data.patch +++ /dev/null @@ -1,119 +0,0 @@ -From babaa35f51d8b009eba762bc50a5290906b4b0ca Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Thu, 26 Jan 2017 20:15:19 +0000 -Subject: [PATCH] Replace boost::serialization::detail::get_data function. - ---- - include/boost/mpi/detail/mpi_datatype_primitive.hpp | 19 ++++++++++++------- - include/boost/mpi/detail/packed_iprimitive.hpp | 8 ++++++-- - include/boost/mpi/detail/packed_oprimitive.hpp | 8 ++++++-- - 3 files changed, 24 insertions(+), 11 deletions(-) - -diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp -index c230055..b95fc38 100644 ---- a/include/boost/mpi/detail/mpi_datatype_primitive.hpp -+++ b/include/boost/mpi/detail/mpi_datatype_primitive.hpp -@@ -25,7 +25,6 @@ namespace std{ - #include - #include - #include --#include - #include - #include - #include -@@ -80,18 +79,18 @@ class mpi_datatype_primitive - BOOST_MPI_CHECK_RESULT(MPI_Type_create_struct, - ( - addresses.size(), -- boost::serialization::detail::get_data(lengths), -- boost::serialization::detail::get_data(addresses), -- boost::serialization::detail::get_data(types), -+ get_data(lengths), -+ get_data(addresses), -+ get_data(types), - &datatype_ - )); - #else - BOOST_MPI_CHECK_RESULT(MPI_Type_struct, - ( - addresses.size(), -- boost::serialization::detail::get_data(lengths), -- boost::serialization::detail::get_data(addresses), -- boost::serialization::detail::get_data(types), -+ get_data(lengths), -+ get_data(addresses), -+ get_data(types), - &datatype_ - )); - #endif -@@ -129,6 +128,12 @@ class mpi_datatype_primitive - lengths.push_back(l); - } - -+ template -+ static T* get_data(std::vector& v) -+ { -+ return v.empty() ? 0 : &(v[0]); -+ } -+ - std::vector addresses; - std::vector types; - std::vector lengths; -diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp -index 7080cbf..227dc8e 100644 ---- a/include/boost/mpi/detail/packed_iprimitive.hpp -+++ b/include/boost/mpi/detail/packed_iprimitive.hpp -@@ -16,7 +16,6 @@ - #include - #include - #include --#include - #include - #include - -@@ -104,7 +103,12 @@ class BOOST_MPI_DECL packed_iprimitive - void load_impl(void * p, MPI_Datatype t, int l) - { - BOOST_MPI_CHECK_RESULT(MPI_Unpack, -- (const_cast(boost::serialization::detail::get_data(buffer_)), buffer_.size(), &position, p, l, t, comm)); -+ (get_data(buffer_), buffer_.size(), &position, p, l, t, comm)); -+ } -+ -+ static buffer_type::value_type* get_data(buffer_type& b) -+ { -+ return b.empty() ? 0 : &(b[0]); - } - - buffer_type & buffer_; -diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp -index fbcde9a..3c81a70 100644 ---- a/include/boost/mpi/detail/packed_oprimitive.hpp -+++ b/include/boost/mpi/detail/packed_oprimitive.hpp -@@ -15,7 +15,6 @@ - - #include - #include --#include - #include - #include - #include -@@ -103,13 +102,18 @@ class BOOST_MPI_DECL packed_oprimitive - - // pack the data into the buffer - BOOST_MPI_CHECK_RESULT(MPI_Pack, -- (const_cast(p), l, t, boost::serialization::detail::get_data(buffer_), buffer_.size(), &position, comm)); -+ (const_cast(p), l, t, get_data(buffer_), buffer_.size(), &position, comm)); - // reduce the buffer size if needed - BOOST_ASSERT(std::size_t(position) <= buffer_.size()); - if (std::size_t(position) < buffer_.size()) - buffer_.resize(position); - } - -+ static buffer_type::value_type* get_data(buffer_type& b) -+ { -+ return b.empty() ? 0 : &(b[0]); -+ } -+ - buffer_type& buffer_; - mutable std::size_t size_; - MPI_Comm comm; diff --git a/boost-1.64.0-serialization-make_array.patch b/boost-1.64.0-serialization-make_array.patch deleted file mode 100644 index b8129dd..0000000 --- a/boost-1.64.0-serialization-make_array.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 1d86261581230e2dc5d617a9b16287d326f3e229 Mon Sep 17 00:00:00 2001 -From: Robert Ramey -Date: Wed, 1 Feb 2017 16:43:59 -0800 -Subject: [PATCH] correct error which appeared when compiling non c++ compliant - code for arrays - ---- - include/boost/serialization/array.hpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/include/boost/serialization/array.hpp b/include/boost/serialization/array.hpp -index 61708b307..612d1a619 100644 ---- a/include/boost/serialization/array.hpp -+++ b/include/boost/serialization/array.hpp -@@ -23,6 +23,8 @@ namespace std{ - } // namespace std - #endif - -+#include -+ - #ifndef BOOST_NO_CXX11_HDR_ARRAY - - #include diff --git a/boost-1.58.0-address-model.patch b/boost-1.66.0-address-model.patch similarity index 56% rename from boost-1.58.0-address-model.patch rename to boost-1.66.0-address-model.patch index 3582737..603aa72 100644 --- a/boost-1.58.0-address-model.patch +++ b/boost-1.66.0-address-model.patch @@ -1,8 +1,8 @@ ---- boost_1_58_0/tools/build/src/tools/gcc.jam~ 2015-07-17 15:14:57.381636224 +0100 -+++ boost_1_58_0/tools/build/src/tools/gcc.jam 2015-07-27 17:35:29.122264048 +0100 +--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:09:56.041685502 +0000 ++++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:09:56.042685500 +0000 @@ -421,7 +421,9 @@ - rule setup-address-model ( targets * : sources * : properties * ) + rule set-address-model-options ( targets * : sources * : properties * ) { - local model = [ feature.get-values address-model : $(properties) ] ; + # For RPM builds the address model flag is passed in %{optflags}. diff --git a/boost-1.57.0-build-optflags.patch b/boost-1.66.0-build-optflags.patch similarity index 86% rename from boost-1.57.0-build-optflags.patch rename to boost-1.66.0-build-optflags.patch index d0b925f..8855b40 100644 --- a/boost-1.57.0-build-optflags.patch +++ b/boost-1.66.0-build-optflags.patch @@ -1,33 +1,5 @@ -diff -up ./tools/build/src/tools/gcc.jam~ ./tools/build/src/tools/gcc.jam ---- ./tools/build/src/tools/gcc.jam~ 2015-02-09 15:01:04.850331626 +0100 -+++ ./tools/build/src/tools/gcc.jam 2015-02-09 15:44:29.122307134 +0100 -@@ -366,17 +366,17 @@ generators.override gcc.compile.c++.pch - toolset.flags gcc.compile PCH_FILE on : ; - - # 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 : ; -+toolset.flags gcc.compile OPTIONS speed : ; -+toolset.flags gcc.compile OPTIONS space : ; - --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 : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS full : ; - --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 on : ; -+toolset.flags gcc.compile OPTIONS all : ; - toolset.flags gcc.compile OPTIONS on : -Werror ; - - toolset.flags gcc.compile OPTIONS on : -g ; +--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2017-12-13 23:56:50.000000000 +0000 ++++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 12:48:26.264755316 +0000 @@ -603,7 +603,7 @@ rule compile.fortran ( targets * : sourc actions compile.c++ bind PCH_FILE @@ -46,3 +18,32 @@ diff -up ./tools/build/src/tools/gcc.jam~ ./tools/build/src/tools/gcc.jam } 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-1.60.0-no-rpath.patch b/boost-1.66.0-no-rpath.patch similarity index 75% rename from boost-1.60.0-no-rpath.patch rename to boost-1.66.0-no-rpath.patch index eed65c2..e69e0b4 100644 --- a/boost-1.60.0-no-rpath.patch +++ b/boost-1.66.0-no-rpath.patch @@ -1,7 +1,6 @@ -diff -up tools/build/src/tools/gcc.jam.rpath tools/build/src/tools/gcc.jam ---- tools/build/src/tools/gcc.jam.rpath 2016-05-27 13:30:01.092192721 -0500 -+++ tools/build/src/tools/gcc.jam 2016-05-27 13:30:46.686987585 -0500 -@@ -952,7 +952,7 @@ rule link ( targets * : sources * : prop +--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:23:45.361330881 +0000 ++++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:23:45.362330880 +0000 +@@ -1191,7 +1191,7 @@ rule link ( targets * : sources * : prop actions link bind LIBRARIES { @@ -9,8 +8,8 @@ diff -up tools/build/src/tools/gcc.jam.rpath tools/build/src/tools/gcc.jam + "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } - -@@ -1018,7 +1018,7 @@ rule link.dll ( targets * : sources * : + rule link.dll ( targets * : sources * : properties * ) +@@ -1204,7 +1204,7 @@ rule link.dll ( targets * : sources * : # Differs from 'link' above only by -shared. actions link.dll bind LIBRARIES { @@ -18,4 +17,4 @@ diff -up tools/build/src/tools/gcc.jam.rpath tools/build/src/tools/gcc.jam + "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } - rule setup-threading ( targets * : sources * : properties * ) + ### diff --git a/boost-1.57.0-python-abi_letters.patch b/boost-1.66.0-python-abi_letters.patch similarity index 96% rename from boost-1.57.0-python-abi_letters.patch rename to boost-1.66.0-python-abi_letters.patch index 7df3ee7..a421a75 100644 --- a/boost-1.57.0-python-abi_letters.patch +++ b/boost-1.66.0-python-abi_letters.patch @@ -49,8 +49,8 @@ extension-suffix ?= "" ; + abi-letters ?= "" ; - # Normalize and dissect any version number. - local major-minor ; + local cmds-to-try ; + @@ -922,7 +923,7 @@ local rule configure ( version ? : cmd-o } else diff --git a/boost.spec b/boost.spec index e8526c1..4dbbdb0 100644 --- a/boost.spec +++ b/boost.spec @@ -33,9 +33,9 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.64.0 -%global version_enc 1_64_0 -Release: 7%{?dist} +Version: 1.66.0 +%global version_enc 1_66_0 +Release: 0.1%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -119,34 +119,16 @@ Patch51: boost-1.58.0-pool-test_linking.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1102667 Patch61: boost-1.57.0-python-libpython_dep.patch -Patch62: boost-1.57.0-python-abi_letters.patch +Patch62: boost-1.66.0-python-abi_letters.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1190039 -Patch65: boost-1.57.0-build-optflags.patch +Patch65: boost-1.66.0-build-optflags.patch # Prevent gcc.jam from setting -m32 or -m64. -Patch68: boost-1.58.0-address-model.patch +Patch68: boost-1.66.0-address-model.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch82: boost-1.60.0-no-rpath.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1451982 -Patch83: boost-1.63.0-dual-python-build-v2.patch - -# https://github.com/boostorg/mpi/pull/39 -Patch84: boost-1.64.0-mpi-get_data.patch - -# https://svn.boost.org/trac10/ticket/12516 -# https://github.com/boostorg/serialization/commit/1d86261581230e2dc5d617a9b16287d326f3e229 -Patch85: boost-1.64.0-serialization-make_array.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1485641 -# https://github.com/boostorg/icl/pull/9 -Patch86: boost-1.64.0-icl-ttp-matching.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1516837 -# https://github.com/boostorg/icl/pull/11 -Patch87: boost-1.64.0-icl-undefined-shift.patch +Patch82: boost-1.66.0-no-rpath.patch %bcond_with tests %bcond_with docs_generated @@ -413,6 +395,14 @@ Group: System Environment/Libraries Run-time support for managed signals & slots callback implementation. +%package stacktrace +Summary: Run-time component of boost stacktrace library +Group: System Environment/Libraries + +%description stacktrace + +Run-time component of the Boost stacktrace library. + %package system Summary: Run-time component of boost system support library Group: System Environment/Libraries @@ -764,12 +754,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch62 -p1 %patch65 -p1 %patch68 -p1 -%patch82 -p0 -%patch83 -p1 -%patch84 -p2 -%patch85 -p2 -%patch86 -p2 -%patch87 -p2 +%patch82 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1224,6 +1209,10 @@ rm -f tmp-doc-directories %postun signals -p /sbin/ldconfig +%post stacktrace -p /sbin/ldconfig + +%postun stacktrace -p /sbin/ldconfig + %post system -p /sbin/ldconfig %postun system -p /sbin/ldconfig @@ -1392,6 +1381,12 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_signals.so.%{sonamever} +%files stacktrace +%license LICENSE_1_0.txt +%{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} +%{_libdir}/libboost_stacktrace_basic.so.%{sonamever} +%{_libdir}/libboost_stacktrace_noop.so.%{sonamever} + %files system %license LICENSE_1_0.txt %{_libdir}/libboost_system.so.%{sonamever} @@ -1454,6 +1449,9 @@ fi %{_libdir}/libboost_serialization.so %{_libdir}/libboost_wserialization.so %{_libdir}/libboost_signals.so +%{_libdir}/libboost_stacktrace_addr2line.so +%{_libdir}/libboost_stacktrace_basic.so +%{_libdir}/libboost_stacktrace_noop.so %{_libdir}/libboost_system.so %{_libdir}/libboost_thread.so %{_libdir}/libboost_timer.so @@ -1559,6 +1557,15 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Jan 19 2018 Jonathan Wakely - 1.66.0-0.1 +- Rebase to 1.66.0 + - Drop patches: + boost-1.63.0-dual-python-build-v2.patch + boost-1.64.0-mpi-get_data.patch + boost-1.64.0-serialization-make_array.patch + boost-1.64.0-icl-ttp-matching.patch + boost-1.64.0-icl-undefined-shift.patch + * Wed Jan 17 2018 Jonathan Wakely - 1.64.0-7 - Restore "Provides: boost-python" for boost-python2 From 90138276af28cce411497a2834fac808f75d4fd2 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 23 Jan 2018 18:17:18 +0000 Subject: [PATCH 029/203] Add new sources --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 08f6e08..a40bdd9 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_64_0.tar.bz2) = 68477f148f61be617552ef48559c5c2cb90d42264cabd6d5e87215d0d5024b48fca27c4afcfc1f77e490c6220d44fb1abdf0a53703867a2e4132c2857f69fedf +SHA512 (boost_1_66_0.tar.bz2) = 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b From 7387f7d55f18eea598778baca3e21b61738f25cf Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 23 Jan 2018 20:38:59 +0000 Subject: [PATCH 030/203] Do not pass --without-coroutine2 to b2 --- boost.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 4dbbdb0..ef1918d 100644 --- a/boost.spec +++ b/boost.spec @@ -798,7 +798,7 @@ echo ============================= build serial ================== ./b2 -d+2 -q %{?_smp_mflags} \ --without-mpi --without-graph_parallel --build-dir=serial \ %if !%{with context} - --without-context --without-coroutine --without-coroutine2 \ + --without-context --without-coroutine \ --without-fiber \ %endif variant=release threading=multi debug-symbols=on pch=off \ @@ -992,7 +992,7 @@ echo ============================= install serial ================== ./b2 -d+2 -q %{?_smp_mflags} \ --without-mpi --without-graph_parallel --build-dir=serial \ %if !%{with context} - --without-context --without-coroutine --without-coroutine2 \ + --without-context --without-coroutine \ --without-fiber \ %endif --prefix=$RPM_BUILD_ROOT%{_prefix} \ @@ -1559,6 +1559,7 @@ fi %changelog * Fri Jan 19 2018 Jonathan Wakely - 1.66.0-0.1 - Rebase to 1.66.0 + - Do not pass --without-coroutine2 to b2 - Drop patches: boost-1.63.0-dual-python-build-v2.patch boost-1.64.0-mpi-get_data.patch From d50c552e84d20b4f3f7e9cc86c5841aa865085cc Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 5 Feb 2018 17:53:53 +0000 Subject: [PATCH 031/203] Add RPM_LD_FLAGS to Jamfile and patch build.sh to use RPM flags (#1541035) --- boost-1.66.0-bjam-build-flags.patch | 11 +++++++++++ boost.spec | 16 +++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 boost-1.66.0-bjam-build-flags.patch diff --git a/boost-1.66.0-bjam-build-flags.patch b/boost-1.66.0-bjam-build-flags.patch new file mode 100644 index 0000000..e40b328 --- /dev/null +++ b/boost-1.66.0-bjam-build-flags.patch @@ -0,0 +1,11 @@ +--- boost_1_66_0/tools/build/src/engine/build.sh~ 2018-02-01 17:16:31.543526531 +0000 ++++ boost_1_66_0/tools/build/src/engine/build.sh 2018-02-01 17:16:45.034507965 +0000 +@@ -149,7 +149,7 @@ + ;; + + *) +- BOOST_JAM_CC=gcc ++ BOOST_JAM_CC="gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS" + esac + ;; + diff --git a/boost.spec b/boost.spec index ef1918d..f555dae 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 0.1%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -130,6 +130,9 @@ Patch68: boost-1.66.0-address-model.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.66.0-no-rpath.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 +Patch83: boost-1.66.0-bjam-build-flags.patch + %bcond_with tests %bcond_with docs_generated @@ -755,6 +758,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch65 -p1 %patch68 -p1 %patch82 -p1 +%patch83 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -775,12 +779,14 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x # through them all at this time. # There are also lots of noisy but harmless unused local typedef warnings. export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing -Wno-unused-local-typedefs -Wno-deprecated-declarations" +export RPM_LD_FLAGS cat > ./tools/build/src/user-config.jam << "EOF" import os ; local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; +local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; -using gcc : : : $(RPM_OPT_FLAGS) ; +using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif @@ -825,8 +831,9 @@ m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ cat > python3-config.jam << "EOF" import os ; local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; +local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; -using gcc : : : $(RPM_OPT_FLAGS) ; +using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif @@ -1557,6 +1564,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Feb 05 2018 Jonathan Wakely - 1.66.0-1 +- Add RPM_LD_FLAGS to Jamfile and patch build.sh to use RPM flags (#1541035). + * Fri Jan 19 2018 Jonathan Wakely - 1.66.0-0.1 - Rebase to 1.66.0 - Do not pass --without-coroutine2 to b2 From 47b8c9cad13f576db507dc72d19343cd1c20d8eb Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 7 Feb 2018 21:57:41 +0000 Subject: [PATCH 032/203] Add RPM_OPT_FLAGS and RPM_LD_FLAGS to build flags for bjam (#1541035) --- boost-1.66.0-bjam-build-flags.patch | 35 ++++++++++++++++++++--------- boost.spec | 5 ++++- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/boost-1.66.0-bjam-build-flags.patch b/boost-1.66.0-bjam-build-flags.patch index e40b328..34ee6ca 100644 --- a/boost-1.66.0-bjam-build-flags.patch +++ b/boost-1.66.0-bjam-build-flags.patch @@ -1,11 +1,26 @@ ---- boost_1_66_0/tools/build/src/engine/build.sh~ 2018-02-01 17:16:31.543526531 +0000 -+++ boost_1_66_0/tools/build/src/engine/build.sh 2018-02-01 17:16:45.034507965 +0000 -@@ -149,7 +149,7 @@ - ;; - - *) -- BOOST_JAM_CC=gcc -+ BOOST_JAM_CC="gcc $RPM_OPT_FLAGS $RPM_LD_FLAGS" - esac - ;; +--- boost_1_66_0/tools/build/src/engine/build.jam~ 2018-02-07 21:36:14.552201421 +0000 ++++ boost_1_66_0/tools/build/src/engine/build.jam 2018-02-07 21:36:29.014173266 +0000 +@@ -4,7 +4,7 @@ + #~ http://www.boost.org/LICENSE_1_0.txt) + # Clean env vars of any "extra" empty values. +-for local v in ARGV CC CFLAGS LIBS ++for local v in ARGV CC CFLAGS LIBS RPM_OPT_FLAGS RPM_LD_FLAGS + { + local values ; + for local x in $($(v)) +@@ -215,12 +215,12 @@ + : -L$(--python-lib[1]) -l$(--python-lib[2]) ; + ## GCC 2.x, 3.x, 4.x + toolset gcc gcc : "-o " : -D +- : -pedantic -fno-strict-aliasing ++ : -pedantic -fno-strict-aliasing $(RPM_OPT_FLAGS) + [ opt --release : [ opt --symbols : -g : -s ] -O3 ] + [ opt --debug : -g -O0 -fno-inline ] + [ opt --profile : -O3 -g -pg ] + -I$(--python-include) -I$(--extra-include) -Wno-long-long +- : -L$(--python-lib[1]) -l$(--python-lib[2]) ; ++ : -L$(--python-lib[1]) -l$(--python-lib[2]) $(RPM_LD_FLAGS) ; + ## GCC 2.x, 3.x on CYGWIN but without cygwin1.dll + toolset gcc-nocygwin gcc : "-o " : -D + : -s -O3 -mno-cygwin diff --git a/boost.spec b/boost.spec index f555dae..f9ebfa1 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1564,6 +1564,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Feb 07 2018 Jonathan Wakely - 1.66.0-2 +- Add RPM_OPT_FLAGS and RPM_LD_FLAGS to build flags for bjam (#1541035). + * Mon Feb 05 2018 Jonathan Wakely - 1.66.0-1 - Add RPM_LD_FLAGS to Jamfile and patch build.sh to use RPM flags (#1541035). From 4c456d525c8779b5ea8ef8b2031ad4eab6b66c61 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 15 Feb 2018 21:28:55 +0000 Subject: [PATCH 033/203] Remove unnecessary Group tags and post/postun ldconfig scriptlets The Group tag is not used by RPM. In F28 the ldconfig %post and %postun scriptlets are done automatically and so don't need to be explicit in the spec file. --- boost.spec | 184 ++--------------------------------------------------- 1 file changed, 4 insertions(+), 180 deletions(-) diff --git a/boost.spec b/boost.spec index f9ebfa1..0fc32dc 100644 --- a/boost.spec +++ b/boost.spec @@ -35,12 +35,11 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} URL: http://www.boost.org -Group: System Environment/Libraries Source0: https://sourceforge.net/projects/boost/files/boost/%{version}/%{toplev_dirname}.tar.bz2 Source1: ver.py @@ -148,7 +147,6 @@ in future standards.) %package atomic Summary: Run-time component of boost atomic library -Group: System Environment/Libraries %description atomic @@ -159,7 +157,6 @@ variables. %package chrono Summary: Run-time component of boost chrono library -Group: System Environment/Libraries Requires: boost-system%{?_isa} = %{version}-%{release} %description chrono @@ -168,7 +165,6 @@ Run-time support for Boost.Chrono, a set of useful time utilities. %package container Summary: Run-time component of boost container library -Group: System Environment/Libraries %description container @@ -180,7 +176,6 @@ standard draft features for compilers that comply with C++03. %if %{with context} %package context Summary: Run-time component of boost context switching library -Group: System Environment/Libraries %description context @@ -189,7 +184,6 @@ provides a sort of cooperative multitasking on a single thread. %package coroutine Summary: Run-time component of boost coroutine library -Group: System Environment/Libraries %description coroutine Run-time support for Boost.Coroutine, a library that provides @@ -200,7 +194,6 @@ suspending and resuming execution. %package date-time Summary: Run-time component of boost date-time library -Group: System Environment/Libraries %description date-time @@ -210,7 +203,6 @@ on generic programming concepts. %if %{with context} %package fiber Summary: Run-time component of boost fiber library -Group: System Environment/Libraries %description fiber @@ -220,7 +212,6 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library -Group: System Environment/Libraries Requires: boost-system%{?_isa} = %{version}-%{release} %description filesystem @@ -231,7 +222,6 @@ directories. %package graph Summary: Run-time component of boost graph library -Group: System Environment/Libraries Requires: boost-regex%{?_isa} = %{version}-%{release} %description graph @@ -242,7 +232,6 @@ Library (STL). %package iostreams Summary: Run-time component of boost iostreams library -Group: System Environment/Libraries %description iostreams @@ -251,7 +240,6 @@ stream buffers and i/o filters. %package locale Summary: Run-time component of boost locale library -Group: System Environment/Libraries Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-system%{?_isa} = %{version}-%{release} Requires: boost-thread%{?_isa} = %{version}-%{release} @@ -263,7 +251,6 @@ handling tools. %package log Summary: Run-time component of boost logging library -Group: System Environment/Libraries %description log @@ -273,7 +260,6 @@ tools along with public interfaces for extending the library. %package math Summary: Math functions for boost TR1 library -Group: System Environment/Libraries %description math @@ -282,7 +268,6 @@ portion of Boost.TR1. %package numpy Summary: Run-time component of boost python numpy extension -Group: System Environment/Libraries Requires: boost-python%{?_isa} = %{version}-%{release} Requires: python2-numpy @@ -298,7 +283,6 @@ support for the NumPy extension of the Boost Python Library for Python 2. %package numpy3 Summary: Run-time component of boost numpy library for Python 3 -Group: System Environment/Libraries Requires: boost-python3%{?_isa} = %{version}-%{release} Requires: python3-numpy @@ -314,7 +298,6 @@ support for the NumPy extension of the Boost Python Library for Python 3. %package program-options Summary: Run-time component of boost program_options library -Group: System Environment/Libraries %description program-options @@ -329,7 +312,6 @@ Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} Obsoletes: python2-%{name} < %{version}-%{release} Summary: Run-time component of boost python library -Group: System Environment/Libraries %description python2 @@ -343,7 +325,6 @@ support for the Boost Python Library compiled for Python 2. %package python3 Summary: Run-time component of boost python library for Python 3 -Group: System Environment/Libraries %description python3 @@ -355,7 +336,6 @@ support for the Boost Python Library compiled for Python 3. %package python3-devel Summary: Shared object symbolic links for Boost.Python 3 -Group: System Environment/Libraries Requires: boost-numpy3%{?_isa} = %{version}-%{release} Requires: boost-python3%{?_isa} = %{version}-%{release} Requires: boost-devel%{?_isa} = %{version}-%{release} @@ -368,7 +348,6 @@ Shared object symbolic links for Python 3 variant of Boost.Python. %package random Summary: Run-time component of boost random library -Group: System Environment/Libraries %description random @@ -376,7 +355,6 @@ Run-time support for boost random library. %package regex Summary: Run-time component of boost regular expression library -Group: System Environment/Libraries %description regex @@ -384,7 +362,6 @@ Run-time support for boost regular expression library. %package serialization Summary: Run-time component of boost serialization library -Group: System Environment/Libraries %description serialization @@ -392,7 +369,6 @@ Run-time support for serialization for persistence and marshaling. %package signals Summary: Run-time component of boost signals and slots library -Group: System Environment/Libraries %description signals @@ -400,7 +376,6 @@ Run-time support for managed signals & slots callback implementation. %package stacktrace Summary: Run-time component of boost stacktrace library -Group: System Environment/Libraries %description stacktrace @@ -408,7 +383,6 @@ Run-time component of the Boost stacktrace library. %package system Summary: Run-time component of boost system support library -Group: System Environment/Libraries %description system @@ -417,7 +391,6 @@ the diagnostics support that is part of the C++11 standard library. %package test Summary: Run-time component of boost test library -Group: System Environment/Libraries %description test @@ -426,7 +399,6 @@ program execution monitoring. %package thread Summary: Run-time component of boost thread library -Group: System Environment/Libraries Requires: boost-system%{?_isa} = %{version}-%{release} %description thread @@ -438,7 +410,6 @@ data specific to individual threads. %package timer Summary: Run-time component of boost timer library -Group: System Environment/Libraries Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-system%{?_isa} = %{version}-%{release} @@ -450,7 +421,6 @@ with as little as one #include and one additional line of code. %package type_erasure Summary: Run-time component of boost type erasure library -Group: System Environment/Libraries Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-system%{?_isa} = %{version}-%{release} @@ -461,7 +431,6 @@ that is more flexible than that provided by the core language. %package wave Summary: Run-time component of boost C99/C++ preprocessing library -Group: System Environment/Libraries Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-date-time%{?_isa} = %{version}-%{release} Requires: boost-filesystem%{?_isa} = %{version}-%{release} @@ -476,7 +445,6 @@ preprocessor functionality. %package devel Summary: The Boost C++ headers and shared development libraries -Group: Development/Libraries Requires: boost%{?_isa} = %{version}-%{release} Provides: boost-python-devel Requires: libicu-devel%{?_isa} @@ -497,7 +465,6 @@ Headers and shared object symbolic links for the Boost C++ libraries. %package static Summary: The Boost C++ static development libraries -Group: Development/Libraries Requires: boost-devel%{?_isa} = %{version}-%{release} Obsoletes: boost-devel-static < 1.34.1-14 Provides: boost-devel-static = %{version}-%{release} @@ -507,7 +474,6 @@ Static Boost C++ libraries. %package doc Summary: HTML documentation for the Boost C++ libraries -Group: Documentation %if 0%{?rhel} >= 6 BuildArch: noarch %endif @@ -524,7 +490,6 @@ web page (http://www.boost.org/doc/libs/%{version_enc}). %package examples Summary: Source examples for the Boost C++ libraries -Group: Documentation %if 0%{?rhel} >= 6 BuildArch: noarch %endif @@ -538,7 +503,6 @@ This package contains example source files distributed with boost. %package openmpi Summary: Run-time component of Boost.MPI library -Group: System Environment/Libraries BuildRequires: openmpi-devel Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -549,7 +513,6 @@ API over the OpenMPI implementation of MPI. %package openmpi-devel Summary: Shared library symbolic links for Boost.MPI -Group: System Environment/Libraries Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-openmpi-python%{?_isa} = %{version}-%{release} @@ -562,7 +525,6 @@ API over the OpenMPI implementation of MPI. %package openmpi-python Summary: Python run-time component of Boost.MPI library -Group: System Environment/Libraries Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -577,7 +539,6 @@ API over the OpenMPI implementation of MPI. %package openmpi-python3 Summary: Python 3 run-time component of Boost.MPI library -Group: System Environment/Libraries Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-python3%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -590,7 +551,6 @@ API over the OpenMPI implementation of MPI. %package openmpi-python3-devel Summary: Shared library symbolic links for Boost.MPI Python 3 component -Group: System Environment/Libraries Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-python3-devel%{?_isa} = %{version}-%{release} Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} @@ -605,7 +565,6 @@ providing a clean C++ API over the OpenMPI implementation of MPI. %package graph-openmpi Summary: Run-time component of parallel boost graph library -Group: System Environment/Libraries Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -623,7 +582,6 @@ back-end to do the parallel work. %package mpich Summary: Run-time component of Boost.MPI library -Group: System Environment/Libraries BuildRequires: mpich-devel Requires: boost-serialization%{?_isa} = %{version}-%{release} Provides: boost-mpich2 = %{version}-%{release} @@ -636,7 +594,6 @@ API over the MPICH implementation of MPI. %package mpich-devel Summary: Shared library symbolic links for Boost.MPI -Group: System Environment/Libraries Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-mpich-python%{?_isa} = %{version}-%{release} @@ -651,7 +608,6 @@ API over the MPICH implementation of MPI. %package mpich-python Summary: Python run-time component of Boost.MPI library -Group: System Environment/Libraries Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -668,7 +624,6 @@ API over the MPICH implementation of MPI. %package mpich-python3 Summary: Python 3 run-time component of Boost.MPI library -Group: System Environment/Libraries Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-python3%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -681,7 +636,6 @@ API over the MPICH implementation of MPI. %package mpich-python3-devel Summary: Shared library symbolic links for Boost.MPI Python 3 component -Group: System Environment/Libraries Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-python3-devel%{?_isa} = %{version}-%{release} Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} @@ -696,7 +650,6 @@ providing a clean C++ API over the MPICH implementation of MPI. %package graph-mpich Summary: Run-time component of parallel boost graph library -Group: System Environment/Libraries Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Provides: boost-graph-mpich2 = %{version}-%{release} @@ -713,7 +666,6 @@ back-end to do the parallel work. %package build Summary: Cross platform build system for C++ projects -Group: Development/Tools Requires: boost-jam BuildArch: noarch @@ -727,7 +679,6 @@ C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems. %package doctools Summary: Tools for working with Boost documentation -Group: Applications/Publishing Requires: docbook-dtds Requires: docbook-style-xsl @@ -737,7 +688,6 @@ Tools for working with Boost documentation in BoostBook or QuickBook format. %package jam Summary: A low-level build tool -Group: Development/Tools %description jam Boost.Jam (BJam) is the low-level build engine tool for Boost.Build. @@ -1115,135 +1065,6 @@ rm -f tmp-doc-directories %{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt -# MPI subpackages don't need the ldconfig magic. They are hidden by -# default, in MPI back-end-specific directory, and only show to the -# user after the relevant environment module has been loaded. -# rpmlint will report that as errors, but it is fine. - -%post atomic -p /sbin/ldconfig - -%postun atomic -p /sbin/ldconfig - -%post chrono -p /sbin/ldconfig - -%postun chrono -p /sbin/ldconfig - -%post container -p /sbin/ldconfig - -%postun container -p /sbin/ldconfig - -%if %{with context} -%post context -p /sbin/ldconfig - -%postun context -p /sbin/ldconfig - -%post coroutine -p /sbin/ldconfig - -%postun coroutine -p /sbin/ldconfig -%endif - -%post date-time -p /sbin/ldconfig - -%postun date-time -p /sbin/ldconfig - -%if %{with context} -%post fiber -p /sbin/ldconfig - -%postun fiber -p /sbin/ldconfig -%endif - -%post filesystem -p /sbin/ldconfig - -%postun filesystem -p /sbin/ldconfig - -%post graph -p /sbin/ldconfig - -%postun graph -p /sbin/ldconfig - -%post iostreams -p /sbin/ldconfig - -%postun iostreams -p /sbin/ldconfig - -%post locale -p /sbin/ldconfig - -%postun locale -p /sbin/ldconfig - -%post log -p /sbin/ldconfig - -%postun log -p /sbin/ldconfig - -%post math -p /sbin/ldconfig - -%postun math -p /sbin/ldconfig - -%post numpy -p /sbin/ldconfig - -%postun numpy -p /sbin/ldconfig - -%if %{with python3} -%post numpy3 -p /sbin/ldconfig - -%postun numpy3 -p /sbin/ldconfig -%endif - -%post program-options -p /sbin/ldconfig - -%postun program-options -p /sbin/ldconfig - -%post python2 -p /sbin/ldconfig - -%postun python2 -p /sbin/ldconfig - -%if %{with python3} -%post python3 -p /sbin/ldconfig - -%postun python3 -p /sbin/ldconfig -%endif - -%post random -p /sbin/ldconfig - -%postun random -p /sbin/ldconfig - -%post regex -p /sbin/ldconfig - -%postun regex -p /sbin/ldconfig - -%post serialization -p /sbin/ldconfig - -%postun serialization -p /sbin/ldconfig - -%post signals -p /sbin/ldconfig - -%postun signals -p /sbin/ldconfig - -%post stacktrace -p /sbin/ldconfig - -%postun stacktrace -p /sbin/ldconfig - -%post system -p /sbin/ldconfig - -%postun system -p /sbin/ldconfig - -%post test -p /sbin/ldconfig - -%postun test -p /sbin/ldconfig - -%post thread -p /sbin/ldconfig - -%postun thread -p /sbin/ldconfig - -%post timer -p /sbin/ldconfig - -%postun timer -p /sbin/ldconfig - -%post type_erasure -p /sbin/ldconfig - -%postun type_erasure -p /sbin/ldconfig - -%post wave -p /sbin/ldconfig - -%postun wave -p /sbin/ldconfig - %post doctools CATALOG=%{_sysconfdir}/xml/catalog %{_bindir}/xmlcatalog --noout --add "rewriteSystem" \ @@ -1564,6 +1385,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Feb 15 2018 Jonathan Wakely - 1.66.0-3 +- Remove unnecessary Group tags and post/postun scriptlets running ldconfig + * Wed Feb 07 2018 Jonathan Wakely - 1.66.0-2 - Add RPM_OPT_FLAGS and RPM_LD_FLAGS to build flags for bjam (#1541035). From b59c4b66665991e63b1eaa2b616187ebd3776505 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 23 Feb 2018 17:02:02 +0000 Subject: [PATCH 034/203] Add patch to fix integer overflow in Boost.Spirit absolute_value (#1545092) --- boost.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 0fc32dc..6b90a65 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -132,6 +132,9 @@ Patch82: boost-1.66.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch83: boost-1.66.0-bjam-build-flags.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1545092 +Patch84: boost-1.66.0-spirit-abs-overflow.patch + %bcond_with tests %bcond_with docs_generated @@ -709,6 +712,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch68 -p1 %patch82 -p1 %patch83 -p1 +%patch84 -p1 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1385,6 +1389,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Feb 23 2018 Jonathan Wakely - 1.66.0-4 +- Add patch to fix integer overflow in Boost.Spirit absolute_value (#1545092) + * Thu Feb 15 2018 Jonathan Wakely - 1.66.0-3 - Remove unnecessary Group tags and post/postun scriptlets running ldconfig From dc827b0935b13dfc34735043d3ebc98fa0e04ab0 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 24 Feb 2018 20:11:16 +0000 Subject: [PATCH 035/203] Add boost-1.66.0-spirit-abs-overflow.patch file --- boost-1.66.0-spirit-abs-overflow.patch | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 boost-1.66.0-spirit-abs-overflow.patch diff --git a/boost-1.66.0-spirit-abs-overflow.patch b/boost-1.66.0-spirit-abs-overflow.patch new file mode 100644 index 0000000..d98ab4e --- /dev/null +++ b/boost-1.66.0-spirit-abs-overflow.patch @@ -0,0 +1,15 @@ +--- boost_1_66_0/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp~ 2018-02-23 16:59:53.785141676 +0000 ++++ boost_1_66_0/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp 2018-02-23 17:00:16.838092946 +0000 +@@ -68,7 +68,11 @@ + typedef unsignedtype type; \ + static type call(signedtype n) \ + { \ +- return static_cast((n >= 0) ? n : -n); \ ++ if (n >= 0) \ ++ return n; \ ++ if (n == std::numeric_limits::min()) \ ++ return (unsignedtype)n; \ ++ return (unsignedtype)(-n); \ + } \ + } \ + /**/ From 3946a4a4b03c4182eb1d6527112b853afd91a679 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 27 Feb 2018 16:44:05 +0000 Subject: [PATCH 036/203] Ensure boost metapackage installs boost-container and boost-stacktrace. --- boost.spec | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 6b90a65..0fa3950 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -49,13 +49,16 @@ Source2: libboost_thread.so # equal to the Boost version (e.g., 1.41.0). %global sonamever %{version} -# boost is an "umbrella" package that pulls in all other boost +# boost is an "umbrella" package that pulls in all boost shared library # components, except for MPI and Python 3 sub-packages. Those are # special in that they are rarely necessary, and it's not a big burden # to have interested parties install them explicitly. +# The subpackages that don't install shared libraries are also not pulled in +# (doc, doctools, examples, jam, static). Requires: boost-atomic%{?_isa} = %{version}-%{release} Requires: boost-chrono%{?_isa} = %{version}-%{release} %if %{with context} +Requires: boost-container%{?_isa} = %{version}-%{release} Requires: boost-context%{?_isa} = %{version}-%{release} Requires: boost-coroutine%{?_isa} = %{version}-%{release} %endif @@ -76,6 +79,7 @@ Requires: boost-random%{?_isa} = %{version}-%{release} Requires: boost-regex%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Requires: boost-signals%{?_isa} = %{version}-%{release} +Requires: boost-stacktrace%{?_isa} = %{version}-%{release} Requires: boost-system%{?_isa} = %{version}-%{release} Requires: boost-test%{?_isa} = %{version}-%{release} Requires: boost-thread%{?_isa} = %{version}-%{release} @@ -1389,6 +1393,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Feb 27 2018 Jonathan Wakely - 1.66.0-5 +- Ensure boost metapackage installs boost-container and boost-stacktrace. + * Fri Feb 23 2018 Jonathan Wakely - 1.66.0-4 - Add patch to fix integer overflow in Boost.Spirit absolute_value (#1545092) From d2d8b8a7f3abfce4683900a3a8de1784fdd13ddc Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 27 Feb 2018 16:47:06 +0000 Subject: [PATCH 037/203] Ensure boost metapackage installs boost-container --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 955b3b6..f633214 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -56,6 +56,7 @@ Source2: libboost_thread.so # to have interested parties install them explicitly. Requires: boost-atomic%{?_isa} = %{version}-%{release} Requires: boost-chrono%{?_isa} = %{version}-%{release} +Requires: boost-container%{?_isa} = %{version}-%{release} %if %{with context} Requires: boost-context%{?_isa} = %{version}-%{release} Requires: boost-coroutine%{?_isa} = %{version}-%{release} @@ -1559,6 +1560,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Feb 28 2018 Jonathan Wakely - 1.63.0-11 +- Ensure boost metapackage installs boost-container + * Thu Dec 07 2017 Jonathan Wakely - 1.63.0-10 - Patch to fix #1516837 From 6aa7147c5a98832c70465115499352c13c15197b Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 18 Apr 2018 18:46:36 +0100 Subject: [PATCH 038/203] Add patch for Boost.Regex integer overflow (#1564252) --- boost-1.64.0-regex-overflow.patch | 26 ++++++++++++++++++++++++++ boost.spec | 10 +++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 boost-1.64.0-regex-overflow.patch diff --git a/boost-1.64.0-regex-overflow.patch b/boost-1.64.0-regex-overflow.patch new file mode 100644 index 0000000..220b877 --- /dev/null +++ b/boost-1.64.0-regex-overflow.patch @@ -0,0 +1,26 @@ +From bc9b25b5d3c3784543158510c6087d41739ab64a Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Mon, 31 Jul 2017 19:18:10 +0100 +Subject: [PATCH] Fix potential overflow in max_state_count calculation. Fixes: + https://svn.boost.org/trac10/ticket/13036. + +--- + include/boost/regex/v4/perl_matcher_common.hpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/include/boost/regex/v4/perl_matcher_common.hpp b/include/boost/regex/v4/perl_matcher_common.hpp +index 7974e7483..f08e9d434 100644 +--- a/include/boost/regex/v4/perl_matcher_common.hpp ++++ b/include/boost/regex/v4/perl_matcher_common.hpp +@@ -113,6 +113,11 @@ void perl_matcher::estimate_max_state_count(std + std::ptrdiff_t states = re.size(); + if(states == 0) + states = 1; ++ if ((std::numeric_limits::max)() / states < states) ++ { ++ max_state_count = (std::min)((std::ptrdiff_t)BOOST_REGEX_MAX_STATE_COUNT, (std::numeric_limits::max)() - 2); ++ return; ++ } + states *= states; + if((std::numeric_limits::max)() / dist < states) + { diff --git a/boost.spec b/boost.spec index f633214..3e2c561 100644 --- a/boost.spec +++ b/boost.spec @@ -35,7 +35,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.63.0 %global version_enc 1_63_0 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -148,6 +148,10 @@ Patch87: boost-1.63.0-asio-ssl.patch # https://github.com/boostorg/icl/pull/11 Patch88: boost-1.64.0-icl-undefined-shift.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1564252 +# https://svn.boost.org/trac10/ticket/13036 +Patch90: boost-1.64.0-regex-overflow.patch + %bcond_with tests %bcond_with docs_generated @@ -767,6 +771,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch84 -p1 %patch86 -p2 %patch88 -p2 +%patch90 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1560,6 +1565,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Apr 18 2018 Jonathan Wakely - 1.63.0-12 +- Add patch for Boost.Regex integer overflow (#1564252) + * Wed Feb 28 2018 Jonathan Wakely - 1.63.0-11 - Ensure boost metapackage installs boost-container From 5e1299aeffeb39ff572d76a8aeb7d14814f23115 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 18 Apr 2018 18:49:28 +0100 Subject: [PATCH 039/203] Add patch for CUDA version macro changes (#1530828) --- boost-1.63.0-config-cuda-version.patch | 86 ++++++++++++++++++++++++++ boost.spec | 6 ++ 2 files changed, 92 insertions(+) create mode 100644 boost-1.63.0-config-cuda-version.patch diff --git a/boost-1.63.0-config-cuda-version.patch b/boost-1.63.0-config-cuda-version.patch new file mode 100644 index 0000000..bf91c4b --- /dev/null +++ b/boost-1.63.0-config-cuda-version.patch @@ -0,0 +1,86 @@ +From 17a4997aaa05ce92237c73c82e6d8fb475a0abaf Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Fri, 11 Aug 2017 19:38:00 +0100 +Subject: [PATCH 1/2] Update for CUDA version macro changes. + +--- + include/boost/config/compiler/nvcc.hpp | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/include/boost/config/compiler/nvcc.hpp b/include/boost/config/compiler/nvcc.hpp +index 43039b5c2..907eade96 100644 +--- a/include/boost/config/compiler/nvcc.hpp ++++ b/include/boost/config/compiler/nvcc.hpp +@@ -11,6 +11,15 @@ + # define BOOST_COMPILER "NVIDIA CUDA C++ Compiler" + #endif + ++#if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__) ++# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 10000 + __CUDACC_VER_MINOR__ * 100 + __CUDACC_VER_BUILD__ ++#elif defined(__CUDACC_VER__) ++ define BOOST_CUDA_VERSION __CUDACC_VER__ ++#else ++// We don't really know what the CUDA version is, but it's definitely before 7.5: ++# define BOOST_CUDA_VERSION 70000 ++#endif ++ + // NVIDIA Specific support + // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device + #define BOOST_GPU_ENABLED __host__ __device__ +@@ -19,11 +28,11 @@ + // https://svn.boost.org/trac/boost/ticket/11897 + // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance + // check is enough to detect versions < 7.5 +-#if !defined(__CUDACC_VER__) || (__CUDACC_VER__ < 70500) ++#if BOOST_CUDA_VERSION < 70500 + # define BOOST_NO_CXX11_VARIADIC_TEMPLATES + #endif + // The same bug is back again in 8.0: +-#if (__CUDACC_VER__ > 80000) && (__CUDACC_VER__ < 80100) ++#if (BOOST_CUDA_VERSION > 80000) && (BOOST_CUDA_VERSION < 80100) + # define BOOST_NO_CXX11_VARIADIC_TEMPLATES + #endif + // Most recent CUDA (8.0) has no constexpr support in msvc mode: + +From 593389dc4b4dae14e6d38bb1c81b7bf70ec21f26 Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Fri, 18 Aug 2017 18:13:38 +0100 +Subject: [PATCH 2/2] Update nvcc.hpp + +--- + include/boost/config/compiler/nvcc.hpp | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/include/boost/config/compiler/nvcc.hpp b/include/boost/config/compiler/nvcc.hpp +index 907eade96..f21b9b54f 100644 +--- a/include/boost/config/compiler/nvcc.hpp ++++ b/include/boost/config/compiler/nvcc.hpp +@@ -12,12 +12,10 @@ + #endif + + #if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__) +-# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 10000 + __CUDACC_VER_MINOR__ * 100 + __CUDACC_VER_BUILD__ +-#elif defined(__CUDACC_VER__) +- define BOOST_CUDA_VERSION __CUDACC_VER__ ++# define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__ + #else + // We don't really know what the CUDA version is, but it's definitely before 7.5: +-# define BOOST_CUDA_VERSION 70000 ++# define BOOST_CUDA_VERSION 7000000 + #endif + + // NVIDIA Specific support +@@ -28,11 +26,11 @@ + // https://svn.boost.org/trac/boost/ticket/11897 + // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance + // check is enough to detect versions < 7.5 +-#if BOOST_CUDA_VERSION < 70500 ++#if BOOST_CUDA_VERSION < 7050000 + # define BOOST_NO_CXX11_VARIADIC_TEMPLATES + #endif + // The same bug is back again in 8.0: +-#if (BOOST_CUDA_VERSION > 80000) && (BOOST_CUDA_VERSION < 80100) ++#if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000) + # define BOOST_NO_CXX11_VARIADIC_TEMPLATES + #endif + // Most recent CUDA (8.0) has no constexpr support in msvc mode: diff --git a/boost.spec b/boost.spec index 3e2c561..dd6ad82 100644 --- a/boost.spec +++ b/boost.spec @@ -152,6 +152,10 @@ Patch88: boost-1.64.0-icl-undefined-shift.patch # https://svn.boost.org/trac10/ticket/13036 Patch90: boost-1.64.0-regex-overflow.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1530828 +# https://github.com/boostorg/config/pull/175 +Patch91: boost-1.63.0-config-cuda-version.patch + %bcond_with tests %bcond_with docs_generated @@ -772,6 +776,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch86 -p2 %patch88 -p2 %patch90 -p2 +%patch91 -p2 # At least python2_version needs to be a macro so that it's visible in # %%install as well. @@ -1567,6 +1572,7 @@ fi %changelog * Wed Apr 18 2018 Jonathan Wakely - 1.63.0-12 - Add patch for Boost.Regex integer overflow (#1564252) +- Add patch for CUDA version macro changes (#1530828) * Wed Feb 28 2018 Jonathan Wakely - 1.63.0-11 - Ensure boost metapackage installs boost-container From b4c96119f12d1df982a3c5e2e2597005941de835 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 26 Apr 2018 17:41:54 +0100 Subject: [PATCH 040/203] Remove main package dependency on boost-python and boost-numpy (#1569483) Rename all subpackages using python2 from boost-xxx to boost-xxx2. Split new subpackage boost-python2-devel out of boost-devel. Split new subpackage boost-openmpi-python2-devel out of boost-openmpi-devel. Split new subpackage boost-mpich-python2-devel out of boost-mpich-devel. Enable conditional build for python2 packages. --- boost.spec | 160 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 131 insertions(+), 29 deletions(-) diff --git a/boost.spec b/boost.spec index 0fa3950..b7fc98f 100644 --- a/boost.spec +++ b/boost.spec @@ -23,6 +23,7 @@ %bcond_without context %endif +%bcond_without python2 %bcond_without python3 %ifnarch %{ix86} x86_64 @@ -35,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -50,8 +51,9 @@ Source2: libboost_thread.so %global sonamever %{version} # boost is an "umbrella" package that pulls in all boost shared library -# components, except for MPI and Python 3 sub-packages. Those are -# special in that they are rarely necessary, and it's not a big burden +# components, except for MPI and Python sub-packages. Those are special +# in that there are alternative implementations to choose from +# (Open MPI and MPICH, and Python 2 and 3), and it's not a big burden # to have interested parties install them explicitly. # The subpackages that don't install shared libraries are also not pulled in # (doc, doctools, examples, jam, static). @@ -72,9 +74,7 @@ Requires: boost-iostreams%{?_isa} = %{version}-%{release} Requires: boost-locale%{?_isa} = %{version}-%{release} Requires: boost-log%{?_isa} = %{version}-%{release} Requires: boost-math%{?_isa} = %{version}-%{release} -Requires: boost-numpy%{?_isa} = %{version}-%{release} Requires: boost-program-options%{?_isa} = %{version}-%{release} -Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-random%{?_isa} = %{version}-%{release} Requires: boost-regex%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} @@ -91,8 +91,10 @@ BuildRequires: m4 BuildRequires: libstdc++-devel BuildRequires: bzip2-devel BuildRequires: zlib-devel -BuildRequires: python-devel +%if %{with python2} +BuildRequires: python2-devel BuildRequires: python2-numpy +%endif %if %{with python3} BuildRequires: python3-devel BuildRequires: python3-numpy @@ -273,12 +275,14 @@ Summary: Math functions for boost TR1 library Run-time support for C99 and C++ TR1 C-style Functions from the math portion of Boost.TR1. -%package numpy -Summary: Run-time component of boost python numpy extension -Requires: boost-python%{?_isa} = %{version}-%{release} +%if %{with python2} + +%package numpy2 +Summary: Run-time component of boost numpy library for Python 2 +Requires: boost-python2%{?_isa} = %{version}-%{release} Requires: python2-numpy -%description numpy +%description numpy2 The Boost Python Library is a framework for interfacing Python and C++. It allows you to quickly and seamlessly expose C++ classes, @@ -286,6 +290,8 @@ functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time support for the NumPy extension of the Boost Python Library for Python 2. +%endif + %if %{with python3} %package numpy3 @@ -312,13 +318,15 @@ Run-time support of boost program options library, which allows program developers to obtain (name, value) pairs from the user, via conventional methods such as command-line and configuration file. +%if %{with python2} + %package python2 # Remove before F30 Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} Obsoletes: python2-%{name} < %{version}-%{release} -Summary: Run-time component of boost python library +Summary: Run-time component of boost python library for Python 2 %description python2 @@ -328,6 +336,18 @@ functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time support for the Boost Python Library compiled for Python 2. +%package python2-devel +Summary: Shared object symbolic links for Boost.Python 2 +Requires: boost-numpy2%{?_isa} = %{version}-%{release} +Requires: boost-python2%{?_isa} = %{version}-%{release} +Requires: boost-devel%{?_isa} = %{version}-%{release} + +%description python2-devel + +Shared object symbolic links for Python 2 variant of Boost.Python. + +%endif + %if %{with python3} %package python3 @@ -530,18 +550,33 @@ Requires: boost-graph-openmpi%{?_isa} = %{version}-%{release} Devel package for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. -%package openmpi-python -Summary: Python run-time component of Boost.MPI library +%if %{with python2} + +%package openmpi-python2 +Summary: Python 2 run-time component of Boost.MPI library Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Requires: python2-openmpi%{?_isa} -%description openmpi-python +%description openmpi-python2 Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. +%package openmpi-python2-devel +Summary: Shared library symbolic links for Boost.MPI Python 2 component +Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} +Requires: boost-openmpi-python2%{?_isa} = %{version}-%{release} + +%description openmpi-python2-devel + +Devel package for the Python 2 interface of Boost.MPI-OpenMPI, a library +providing a clean C++ API over the OpenMPI implementation of MPI. + +%endif + %if %{with python3} %package openmpi-python3 @@ -603,7 +638,6 @@ API over the MPICH implementation of MPI. Summary: Shared library symbolic links for Boost.MPI Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-mpich-python%{?_isa} = %{version}-%{release} Requires: boost-graph-mpich%{?_isa} = %{version}-%{release} Provides: boost-mpich2-devel = %{version}-%{release} Obsoletes: boost-mpich2-devel < 1.53.0-9 @@ -613,20 +647,35 @@ Obsoletes: boost-mpich2-devel < 1.53.0-9 Devel package for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. -%package mpich-python +%if %{with python2} + +%package mpich-python2 Summary: Python run-time component of Boost.MPI library Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-python%{?_isa} = %{version}-%{release} +Requires: boost-python2%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Provides: boost-mpich2-python = %{version}-%{release} Obsoletes: boost-mpich2-python < 1.53.0-9 Requires: python2-mpich%{?_isa} -%description mpich-python +%description mpich-python2 Python 2 support for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. +%package mpich-python2-devel +Summary: Shared library symbolic links for Boost.MPI Python 2 component +Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} +Requires: boost-mpich-python2%{?_isa} = %{version}-%{release} + +%description mpich-python2-devel + +Devel package for the Python 2 interface of Boost.MPI-MPICH, a library +providing a clean C++ API over the MPICH implementation of MPI. + +%endif + %if %{with python3} %package mpich-python3 @@ -718,16 +767,18 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch83 -p1 %patch84 -p1 -# At least python2_version needs to be a macro so that it's visible in -# %%install as well. +%if %{with python2} %global python2_version %(/usr/bin/python2 %{SOURCE1}) +%endif %if %{with python3} %global python3_version %(/usr/bin/python3 %{SOURCE1}) %global python3_abiflags %(/usr/bin/python3-config --abiflags) %endif %build +%if %{with python2} : PYTHON2_VERSION=%{python2_version} +%endif %if %{with python3} : PYTHON3_VERSION=%{python3_version} : PYTHON3_ABIFLAGS=%{python3_abiflags} @@ -748,7 +799,9 @@ using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif +%if %{with python2} using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ; +%endif EOF ./bootstrap.sh --with-toolset=gcc --with-icu @@ -764,9 +817,15 @@ echo ============================= build serial ================== %if !%{with context} --without-context --without-coroutine \ --without-fiber \ +%endif +%if !%{with python2} + --without-python \ %endif variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} stage +%if %{with python2} + python=%{python2_version} \ +%endif + stage # See libs/thread/build/Jamfile.v2 for where this file comes from. if [ $(find serial -type f -name has_atomic_flag_lockfree \ @@ -817,11 +876,13 @@ module purge ||: %if %{with openmpi} %{_openmpi_load} +%if %{with python2} echo ============================= build $MPI_COMPILER ================== ./b2 -d+2 -q %{?_smp_mflags} \ --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage +%endif %if %{with python3} echo ============================= build $MPI_COMPILER-py3 ================== @@ -839,11 +900,13 @@ export PATH=/bin${PATH:+:}$PATH # Build MPI parts of Boost with MPICH support %if %{with mpich} %{_mpich_load} +%if %{with python2} echo ============================= build $MPI_COMPILER ================== ./b2 -d+2 -q %{?_smp_mflags} \ --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python2_version} stage +%endif %if %{with python3} echo ============================= build $MPI_COMPILER-py3 ================== @@ -879,6 +942,7 @@ module purge ||: %{_openmpi_load} # XXX We want to extract this from RPM flags # b2 instruction-set=i686 etc. +%if %{with python2} echo ============================= install $MPI_COMPILER ================== ./b2 -q %{?_smp_mflags} \ --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ @@ -891,6 +955,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost touch ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/__init__.py mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/ +%endif %if %{with python3} echo ============================= install $MPI_COMPILER-py3 ================== @@ -917,6 +982,7 @@ export PATH=/bin${PATH:+:}$PATH %if %{with mpich} %{_mpich_load} +%if %{with python2} echo ============================= install $MPI_COMPILER ================== ./b2 -q %{?_smp_mflags} \ --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ @@ -929,6 +995,7 @@ mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost touch ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/__init__.py mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/ +%endif %if %{with python3} echo ============================= install $MPI_COMPILER-py3 ================== @@ -959,11 +1026,17 @@ echo ============================= install serial ================== %if !%{with context} --without-context --without-coroutine \ --without-fiber \ +%endif +%if !%{with python2} + --without-python \ %endif --prefix=$RPM_BUILD_ROOT%{_prefix} \ --libdir=$RPM_BUILD_ROOT%{_libdir} \ variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} install +%if %{with python2} + python=%{python2_version} \ +%endif + install # Override DSO symlink with a linker script. See the linker script # itself for details of why we need to do this. @@ -1166,9 +1239,11 @@ fi %{_libdir}/libboost_math_tr1f.so.%{sonamever} %{_libdir}/libboost_math_tr1l.so.%{sonamever} -%files numpy +%if %{with python2} +%files numpy2 %license LICENSE_1_0.txt %{_libdir}/libboost_numpy.so.%{sonamever} +%endif %if %{with python3} %files numpy3 @@ -1185,10 +1260,17 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_program_options.so.%{sonamever} +%if %{with python2} %files python2 %license LICENSE_1_0.txt %{_libdir}/libboost_python.so.%{sonamever} +%files python2-devel +%license LICENSE_1_0.txt +%{_libdir}/libboost_numpy.so +%{_libdir}/libboost_python.so +%endif + %if %{with python3} %files python3 %license LICENSE_1_0.txt @@ -1275,11 +1357,9 @@ fi %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so %{_libdir}/libboost_math_c99l.so -%{_libdir}/libboost_numpy.so %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so -%{_libdir}/libboost_python.so %{_libdir}/libboost_random.so %{_libdir}/libboost_regex.so %{_libdir}/libboost_serialization.so @@ -1314,14 +1394,21 @@ fi %files openmpi-devel %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/libboost_mpi.so -%{_libdir}/openmpi/lib/libboost_mpi_python.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so -%files openmpi-python +%if %{with python2} + +%files openmpi-python2 %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} %{python2_sitearch}/openmpi/boost/ +%files openmpi-python2-devel +%license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_mpi_python.so + +%endif + %if %{with python3} %files openmpi-python3 @@ -1351,14 +1438,21 @@ fi %files mpich-devel %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi.so -%{_libdir}/mpich/lib/libboost_mpi_python.so %{_libdir}/mpich/lib/libboost_graph_parallel.so -%files mpich-python +%if %{with python2} + +%files mpich-python2 %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python.so.%{sonamever} %{python2_sitearch}/mpich/boost/ +%files mpich-python2-devel +%license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_mpi_python.so + +%endif + %if %{with python3} %files mpich-python3 @@ -1393,6 +1487,14 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Apr 26 2018 Jonathan Wakely - 1.66.0-6 +- Remove main package dependency on boost-python and boost-numpy (#1569483) +- Rename all subpackages using python2 from boost-xxx to boost-xxx2. +- Split new subpackage boost-python2-devel out of boost-devel. +- Split new subpackage boost-openmpi-python2-devel out of boost-openmpi-devel. +- Split new subpackage boost-mpich-python2-devel out of boost-mpich-devel. +- Enable conditional build for python2 packages. + * Tue Feb 27 2018 Jonathan Wakely - 1.66.0-5 - Ensure boost metapackage installs boost-container and boost-stacktrace. From 9aae0c8a003f689d5c219582c2d9628653f60b1c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 26 Apr 2018 17:42:30 +0100 Subject: [PATCH 041/203] Drop ver.py source file and use python version macros The %{python2_version} and %{python3_version} macros are pre-defined, so we don't need to use ver.py to find the versions. Use shell variable for Python 3 ABI flags instead of global macro. This avoids errors when creating SRPMs or running rpmlint, because by delaying the command until the %build stage we can rely on python3-devel being installed. --- boost.spec | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/boost.spec b/boost.spec index b7fc98f..6da93db 100644 --- a/boost.spec +++ b/boost.spec @@ -43,8 +43,7 @@ License: Boost and MIT and Python URL: http://www.boost.org Source0: https://sourceforge.net/projects/boost/files/boost/%{version}/%{toplev_dirname}.tar.bz2 -Source1: ver.py -Source2: libboost_thread.so +Source1: libboost_thread.so # Since Fedora 13, the Boost libraries are delivered with sonames # equal to the Boost version (e.g., 1.41.0). @@ -767,21 +766,15 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch83 -p1 %patch84 -p1 -%if %{with python2} -%global python2_version %(/usr/bin/python2 %{SOURCE1}) -%endif -%if %{with python3} -%global python3_version %(/usr/bin/python3 %{SOURCE1}) -%global python3_abiflags %(/usr/bin/python3-config --abiflags) -%endif - %build +# Dump the versions being used into the build logs. %if %{with python2} : PYTHON2_VERSION=%{python2_version} %endif %if %{with python3} +PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags) : PYTHON3_VERSION=%{python3_version} -: PYTHON3_ABIFLAGS=%{python3_abiflags} +: PYTHON3_ABIFLAGS=${PYTHON3_ABIFLAGS} %endif # There are many strict aliasing warnings, and it's not feasible to go @@ -836,7 +829,7 @@ else fi m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ - %{SOURCE2} > $(basename %{SOURCE2}) + %{SOURCE1} > $(basename %{SOURCE1}) %if %{with python3} @@ -854,7 +847,10 @@ using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif -using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}%{python3_abiflags} : : : : %{python3_abiflags} ; +EOF + +cat >> python3-config.jam << EOF +using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : : ${PYTHON3_ABIFLAGS} ; EOF echo ============================= build serial-py3 ================== @@ -1042,7 +1038,7 @@ echo ============================= install serial ================== # itself for details of why we need to do this. [ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so -install -p -m 644 $(basename %{SOURCE2}) $RPM_BUILD_ROOT%{_libdir}/ +install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ %if %{with python3} echo ============================= install serial-py3 ================== @@ -1494,6 +1490,8 @@ fi - Split new subpackage boost-openmpi-python2-devel out of boost-openmpi-devel. - Split new subpackage boost-mpich-python2-devel out of boost-mpich-devel. - Enable conditional build for python2 packages. +- Drop ver.py source file and use python2_version and python3_version macros. +- Use shell variable for Python 3 ABI flags instead of global macro. * Tue Feb 27 2018 Jonathan Wakely - 1.66.0-5 - Ensure boost metapackage installs boost-container and boost-stacktrace. From 1a524340e6908c193db0dde8b6a919a7a033ce64 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Apr 2018 10:40:41 +0100 Subject: [PATCH 042/203] Remove Requires: boost-openmpi-python from boost-openmpi-devel --- boost.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 6da93db..81f4c2b 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -541,7 +541,6 @@ API over the OpenMPI implementation of MPI. Summary: Shared library symbolic links for Boost.MPI Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-openmpi%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-python%{?_isa} = %{version}-%{release} Requires: boost-graph-openmpi%{?_isa} = %{version}-%{release} %description openmpi-devel @@ -1483,6 +1482,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Apr 27 2018 Jonathan Wakely - 1.66.0-7 +- Remove Requires: boost-openmpi-python from boost-openmpi-devel + * Thu Apr 26 2018 Jonathan Wakely - 1.66.0-6 - Remove main package dependency on boost-python and boost-numpy (#1569483) - Rename all subpackages using python2 from boost-xxx to boost-xxx2. From e556fceb05be90bc78c9cc43b260c102bc744d63 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Mon, 30 Apr 2018 09:45:38 +0100 Subject: [PATCH 043/203] Rebuild for ICU 61.1 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 81f4c2b..58af555 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1482,6 +1482,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Apr 30 2018 Pete Walter - 1.66.0-8 +- Rebuild for ICU 61.1 + * Fri Apr 27 2018 Jonathan Wakely - 1.66.0-7 - Remove Requires: boost-openmpi-python from boost-openmpi-devel From a4629aecca7e09ddc85f187262f88b0e8e0abbfe Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Apr 2018 14:53:34 +0100 Subject: [PATCH 044/203] Fix Provides: and Obsoletes: tags for renamed python2 subpackages --- boost.spec | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index 58af555..3002c43 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -280,6 +280,9 @@ portion of Boost.TR1. Summary: Run-time component of boost numpy library for Python 2 Requires: boost-python2%{?_isa} = %{version}-%{release} Requires: python2-numpy +# Added for F29, remove for F31: +Provides: boost-numpy%{?_isa} = %{version}-%{release} +Obsoletes: boost-numpy < %{version}-%{release} %description numpy2 @@ -320,7 +323,7 @@ conventional methods such as command-line and configuration file. %if %{with python2} %package python2 -# Remove before F30 +# These Provides: and Obsoletes: were added for F28, remove for F30 Provides: %{name}-python = %{version}-%{release} Provides: %{name}-python%{?_isa} = %{version}-%{release} Obsoletes: %{name}-python < %{version}-%{release} @@ -340,6 +343,9 @@ Summary: Shared object symbolic links for Boost.Python 2 Requires: boost-numpy2%{?_isa} = %{version}-%{release} Requires: boost-python2%{?_isa} = %{version}-%{release} Requires: boost-devel%{?_isa} = %{version}-%{release} +# These Provides: and Obsoletes: were added for F28, remove them for F30 +Provides: boost-python-devel%{?_isa} = %{version}-%{release} +Obsoletes: boost-python-devel < %{version}-%{release} %description python2-devel @@ -472,7 +478,6 @@ preprocessor functionality. %package devel Summary: The Boost C++ headers and shared development libraries Requires: boost%{?_isa} = %{version}-%{release} -Provides: boost-python-devel Requires: libicu-devel%{?_isa} %if %{with quadmath} Requires: libquadmath-devel%{?_isa} @@ -556,6 +561,9 @@ Requires: boost-openmpi%{?_isa} = %{version}-%{release} Requires: boost-python%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} Requires: python2-openmpi%{?_isa} +# Added for F29, remove for F31: +Provides: boost-openmpi-python%{?_isa} = %{version}-%{release} +Obsoletes: boost-openmpi-python < %{version}-%{release} %description openmpi-python2 @@ -655,6 +663,9 @@ Requires: boost-serialization%{?_isa} = %{version}-%{release} Provides: boost-mpich2-python = %{version}-%{release} Obsoletes: boost-mpich2-python < 1.53.0-9 Requires: python2-mpich%{?_isa} +# Added for F29, remove for F31: +Provides: boost-mpich-python%{?_isa} = %{version}-%{release} +Obsoletes: boost-mpich-python < %{version}-%{release} %description mpich-python2 @@ -1482,6 +1493,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue May 01 2018 Jonathan Wakely - 1.66.0-9 +- Fix Provides: and Obsoletes: tags for renamed python2 subpackages + * Mon Apr 30 2018 Pete Walter - 1.66.0-8 - Rebuild for ICU 61.1 From 32555bac588625eafc73520906abd2535af55d1a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Apr 2018 14:56:42 +0100 Subject: [PATCH 045/203] Remove old Provides: and Obsoletes: tags for odeint packages --- boost.spec | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/boost.spec b/boost.spec index 3002c43..55d44b7 100644 --- a/boost.spec +++ b/boost.spec @@ -483,14 +483,6 @@ Requires: libicu-devel%{?_isa} Requires: libquadmath-devel%{?_isa} %endif -# Odeint was shipped in Fedora 18, but later became part of Boost. -# Note we also obsolete odeint-doc down there. -# https://bugzilla.redhat.com/show_bug.cgi?id=892850 -Provides: odeint = 2.2-5 -Obsoletes: odeint < 2.2-5 -Provides: odeint-devel = 2.2-5 -Obsoletes: odeint-devel < 2.2-5 - %description devel Headers and shared object symbolic links for the Boost C++ libraries. @@ -508,11 +500,6 @@ Summary: HTML documentation for the Boost C++ libraries %if 0%{?rhel} >= 6 BuildArch: noarch %endif -Provides: boost-python-docs = %{version}-%{release} - -# See the description above. -Provides: odeint-doc = 2.2-5 -Obsoletes: odeint-doc < 2.2-5 %description doc This package contains the documentation in the HTML format of the Boost C++ @@ -1495,6 +1482,7 @@ fi %changelog * Tue May 01 2018 Jonathan Wakely - 1.66.0-9 - Fix Provides: and Obsoletes: tags for renamed python2 subpackages +- Remove old Provides: and Obsoletes: tags for odeint packages * Mon Apr 30 2018 Pete Walter - 1.66.0-8 - Rebuild for ICU 61.1 From 299d009cc0c369da98bf0af8ecb7f6411078768d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Apr 2018 14:57:43 +0100 Subject: [PATCH 046/203] Remove old Provides: and Obsoletes: tags for mpich2 packages --- boost.spec | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/boost.spec b/boost.spec index 55d44b7..2b6d00a 100644 --- a/boost.spec +++ b/boost.spec @@ -619,8 +619,6 @@ back-end to do the parallel work. Summary: Run-time component of Boost.MPI library BuildRequires: mpich-devel Requires: boost-serialization%{?_isa} = %{version}-%{release} -Provides: boost-mpich2 = %{version}-%{release} -Obsoletes: boost-mpich2 < 1.53.0-9 %description mpich @@ -632,8 +630,6 @@ Summary: Shared library symbolic links for Boost.MPI Requires: boost-devel%{?_isa} = %{version}-%{release} Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-graph-mpich%{?_isa} = %{version}-%{release} -Provides: boost-mpich2-devel = %{version}-%{release} -Obsoletes: boost-mpich2-devel < 1.53.0-9 %description mpich-devel @@ -647,8 +643,6 @@ Summary: Python run-time component of Boost.MPI library Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-python2%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} -Provides: boost-mpich2-python = %{version}-%{release} -Obsoletes: boost-mpich2-python < 1.53.0-9 Requires: python2-mpich%{?_isa} # Added for F29, remove for F31: Provides: boost-mpich-python%{?_isa} = %{version}-%{release} @@ -704,8 +698,6 @@ providing a clean C++ API over the MPICH implementation of MPI. Summary: Run-time component of parallel boost graph library Requires: boost-mpich%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} -Provides: boost-graph-mpich2 = %{version}-%{release} -Obsoletes: boost-graph-mpich2 < 1.53.0-9 %description graph-mpich @@ -1483,6 +1475,7 @@ fi * Tue May 01 2018 Jonathan Wakely - 1.66.0-9 - Fix Provides: and Obsoletes: tags for renamed python2 subpackages - Remove old Provides: and Obsoletes: tags for odeint packages +- Remove old Provides: and Obsoletes: tags for mpich2 packages * Mon Apr 30 2018 Pete Walter - 1.66.0-8 - Rebuild for ICU 61.1 From af66f9c00c6918624dd71f6ac920a5e9a073a932 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Apr 2018 14:58:15 +0100 Subject: [PATCH 047/203] Remove old Provides: and Obsoletes: tags for boost-devel-static --- boost.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 2b6d00a..eb7a8a6 100644 --- a/boost.spec +++ b/boost.spec @@ -489,8 +489,6 @@ Headers and shared object symbolic links for the Boost C++ libraries. %package static Summary: The Boost C++ static development libraries Requires: boost-devel%{?_isa} = %{version}-%{release} -Obsoletes: boost-devel-static < 1.34.1-14 -Provides: boost-devel-static = %{version}-%{release} %description static Static Boost C++ libraries. @@ -1476,6 +1474,7 @@ fi - Fix Provides: and Obsoletes: tags for renamed python2 subpackages - Remove old Provides: and Obsoletes: tags for odeint packages - Remove old Provides: and Obsoletes: tags for mpich2 packages +- Remove old Provides: and Obsoletes: tags for boost-devel-static * Mon Apr 30 2018 Pete Walter - 1.66.0-8 - Rebuild for ICU 61.1 From 3cee16030b9291d69ce348ba164ad52000f45c50 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 27 Apr 2018 15:03:07 +0100 Subject: [PATCH 048/203] Make Requires: for boost-container unconditional --- boost.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index eb7a8a6..d8becae 100644 --- a/boost.spec +++ b/boost.spec @@ -58,8 +58,8 @@ Source1: libboost_thread.so # (doc, doctools, examples, jam, static). Requires: boost-atomic%{?_isa} = %{version}-%{release} Requires: boost-chrono%{?_isa} = %{version}-%{release} -%if %{with context} Requires: boost-container%{?_isa} = %{version}-%{release} +%if %{with context} Requires: boost-context%{?_isa} = %{version}-%{release} Requires: boost-coroutine%{?_isa} = %{version}-%{release} %endif @@ -1475,6 +1475,7 @@ fi - Remove old Provides: and Obsoletes: tags for odeint packages - Remove old Provides: and Obsoletes: tags for mpich2 packages - Remove old Provides: and Obsoletes: tags for boost-devel-static +- Make Requires: for boost-container unconditional * Mon Apr 30 2018 Pete Walter - 1.66.0-8 - Rebuild for ICU 61.1 From 6534bae05f6d7d66c6df68dc1027a9940d530e93 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 4 Jun 2018 20:19:41 +0100 Subject: [PATCH 049/203] Add patch for Boost.Compute (#1585515) --- boost-1.66.0-compute.patch | 23 +++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 boost-1.66.0-compute.patch diff --git a/boost-1.66.0-compute.patch b/boost-1.66.0-compute.patch new file mode 100644 index 0000000..2bd2b4a --- /dev/null +++ b/boost-1.66.0-compute.patch @@ -0,0 +1,23 @@ +From fdbdb94db64e888fce90fe519be23c2a4396a82e Mon Sep 17 00:00:00 2001 +From: pradeep +Date: Tue, 8 May 2018 14:53:38 +0530 +Subject: [PATCH 1/2] Fix return var qualifier in svm_ptr::get_context + +Lack of `const` qualifier is throwing errors with GCC 8.1 +--- + include/boost/compute/memory/svm_ptr.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/compute/memory/svm_ptr.hpp b/include/boost/compute/memory/svm_ptr.hpp +index c8753f5b..56cf1268 100644 +--- a/include/boost/compute/memory/svm_ptr.hpp ++++ b/include/boost/compute/memory/svm_ptr.hpp +@@ -126,7 +126,7 @@ class svm_ptr + return m_ptr - other.m_ptr; + } + +- context& get_context() const ++ const context& get_context() const + { + return m_context; + } diff --git a/boost.spec b/boost.spec index d8becae..2a82092 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -140,6 +140,9 @@ Patch83: boost-1.66.0-bjam-build-flags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1545092 Patch84: boost-1.66.0-spirit-abs-overflow.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1585515 +Patch85: boost-1.66.0-compute.patch + %bcond_with tests %bcond_with docs_generated @@ -752,6 +755,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch82 -p1 %patch83 -p1 %patch84 -p1 +%patch85 -p2 %build # Dump the versions being used into the build logs. @@ -1470,6 +1474,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Jun 04 2018 Jonathan Wakely - 1.66.0-10 +- Add patch for Boost.Compute (#1585515) + * Tue May 01 2018 Jonathan Wakely - 1.66.0-9 - Fix Provides: and Obsoletes: tags for renamed python2 subpackages - Remove old Provides: and Obsoletes: tags for odeint packages From 1499fdf9722bef7f31f3da9881267a4429fa0988 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Tue, 19 Jun 2018 10:40:35 +0200 Subject: [PATCH 050/203] Rebuilt for Python 3.7 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 2a82092..fcc8645 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1474,6 +1474,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Jun 19 2018 Miro Hrončok - 1.66.0-11 +- Rebuilt for Python 3.7 + * Mon Jun 04 2018 Jonathan Wakely - 1.66.0-10 - Add patch for Boost.Compute (#1585515) From 139c6b50e6c773a0ada765db81001e8e1f8d3d8a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 19 Jun 2018 17:52:31 +0100 Subject: [PATCH 051/203] Remove ver.py file that was removed from sources recently --- ver.py | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 ver.py diff --git a/ver.py b/ver.py deleted file mode 100644 index ef88aea..0000000 --- a/ver.py +++ /dev/null @@ -1,5 +0,0 @@ -import platform -import sys - -sys.stdout.write (".".join (platform.python_version_tuple ()[:2])) -sys.stdout.write ("\n") From c6c9a85f21a4d0519ee57fa5c90322cc42111cd3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 19 Jun 2018 18:15:55 +0100 Subject: [PATCH 052/203] Add patch to fix build with Python 3.7 --- boost-1.66.0-python37.patch | 39 +++++++++++++++++++++++++++++++++++++ boost.spec | 7 +++++++ 2 files changed, 46 insertions(+) create mode 100644 boost-1.66.0-python37.patch diff --git a/boost-1.66.0-python37.patch b/boost-1.66.0-python37.patch new file mode 100644 index 0000000..9577f21 --- /dev/null +++ b/boost-1.66.0-python37.patch @@ -0,0 +1,39 @@ +From 660487c43fde76f3e64f1cb2e644500da92fe582 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= +Date: Fri, 9 Feb 2018 18:20:30 +0100 +Subject: [PATCH] Fix build with Python 3.7 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Python 3.7 changes the return type of _PyUnicode_AsString() +from void* to const char* -- causing the build of boost-python +to fail. + +Signed-off-by: Bernhard Rosenkränzer +--- + src/converter/builtin_converters.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/src/converter/builtin_converters.cpp b/src/converter/builtin_converters.cpp +index 1c28af7fc..ee2d5b479 100644 +--- a/libs/python/src/converter/builtin_converters.cpp ++++ b/libs/python/src/converter/builtin_converters.cpp +@@ -45,11 +45,16 @@ namespace + { + return PyString_Check(obj) ? PyString_AsString(obj) : 0; + } +-#else ++#elif PY_VERSION_HEX < 0x03070000 + void* convert_to_cstring(PyObject* obj) + { + return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0; + } ++#else ++ void* convert_to_cstring(PyObject* obj) ++ { ++ return PyUnicode_Check(obj) ? const_cast(reinterpret_cast(_PyUnicode_AsString(obj))) : 0; ++ } + #endif + + // Given a target type and a SlotPolicy describing how to perform a diff --git a/boost.spec b/boost.spec index fcc8645..b641336 100644 --- a/boost.spec +++ b/boost.spec @@ -143,6 +143,9 @@ Patch84: boost-1.66.0-spirit-abs-overflow.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1585515 Patch85: boost-1.66.0-compute.patch +# https://github.com/boostorg/python/pull/186 +Patch86: boost-1.66.0-python37.patch + %bcond_with tests %bcond_with docs_generated @@ -756,6 +759,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch83 -p1 %patch84 -p1 %patch85 -p2 +%patch86 -p1 %build # Dump the versions being used into the build logs. @@ -1474,6 +1478,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Jun 19 2018 Jonathan Wakely - 1.66.0-11 +- Add patch to fix build with Python 3.7 + * Tue Jun 19 2018 Miro Hrončok - 1.66.0-11 - Rebuilt for Python 3.7 From 557e21db147113c6fa6d64d412759ca61705682a Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Tue, 10 Jul 2018 18:19:21 +0100 Subject: [PATCH 053/203] Add missing BuildRequires: gcc-c++ --- boost.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/boost.spec b/boost.spec index b641336..396264a 100644 --- a/boost.spec +++ b/boost.spec @@ -86,6 +86,7 @@ Requires: boost-timer%{?_isa} = %{version}-%{release} Requires: boost-type_erasure%{?_isa} = %{version}-%{release} Requires: boost-wave%{?_isa} = %{version}-%{release} +BuildRequires: gcc-c++ BuildRequires: m4 BuildRequires: libstdc++-devel BuildRequires: bzip2-devel From 061d021ce1f038a590d46bb93e62d7403250a8dc Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Tue, 10 Jul 2018 18:40:19 +0100 Subject: [PATCH 054/203] Rebuild for ICU 62 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 396264a..6a8e7fc 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1479,6 +1479,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Jul 10 2018 Pete Walter - 1.66.0-12 +- Rebuild for ICU 62 + * Tue Jun 19 2018 Jonathan Wakely - 1.66.0-11 - Add patch to fix build with Python 3.7 From ae9f023f8912ac48890ac3e1a06d0f82b084b247 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 12 Jul 2018 21:16:10 +0000 Subject: [PATCH 055/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 6a8e7fc..f281496 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 12%{?dist} +Release: 13%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1479,6 +1479,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Jul 12 2018 Fedora Release Engineering - 1.66.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + * Tue Jul 10 2018 Pete Walter - 1.66.0-12 - Rebuild for ICU 62 From 015b3a9f0ac1716953b65b932fe86c1f27fe6a91 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 18 Jul 2018 17:20:03 +0100 Subject: [PATCH 056/203] Patch numpy for Python 3 (#1596468) --- boost-1.66.0-numpy3.patch | 29 +++++++++++++++++++++++++++++ boost.spec | 10 +++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 boost-1.66.0-numpy3.patch diff --git a/boost-1.66.0-numpy3.patch b/boost-1.66.0-numpy3.patch new file mode 100644 index 0000000..27add8c --- /dev/null +++ b/boost-1.66.0-numpy3.patch @@ -0,0 +1,29 @@ +From 0fce0e589353d772ceda4d493b147138406b22fd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Moritz=20Wanzenb=C3=B6ck?= +Date: Wed, 11 Jul 2018 11:57:46 +0200 +Subject: [PATCH] Add missing return statement in numpy import + +This adds a missing return statement in the python3 specific +import logic of boost.python.numpy. + +For python3 wrap_import_array() needs to return a pointer value. +The import_array() macro only returns NULL in case of error. The +missing return statement is UB, so the compiler can assume it does +not happen. This means the compiler can assume the error branch +is always taken, so import_array must always fail. +--- + src/numpy/numpy.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/numpy/numpy.cpp b/src/numpy/numpy.cpp +index 8e259bc75..3ae2295e3 100644 +--- a/libs/python/src/numpy/numpy.cpp ++++ b/libs/python/src/numpy/numpy.cpp +@@ -19,6 +19,7 @@ static void wrap_import_array() + static void * wrap_import_array() + { + import_array(); ++ return NULL; + } + #endif + diff --git a/boost.spec b/boost.spec index f281496..c072602 100644 --- a/boost.spec +++ b/boost.spec @@ -36,7 +36,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 13%{?dist} +Release: 14%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -147,6 +147,10 @@ Patch85: boost-1.66.0-compute.patch # https://github.com/boostorg/python/pull/186 Patch86: boost-1.66.0-python37.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1596468 +# https://github.com/boostorg/python/pull/218 +Patch87: boost-1.66.0-numpy3.patch + %bcond_with tests %bcond_with docs_generated @@ -761,6 +765,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch84 -p1 %patch85 -p2 %patch86 -p1 +%patch87 -p1 %build # Dump the versions being used into the build logs. @@ -1479,6 +1484,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Jul 18 2018 Jonathan Wakely - 1.66.0-14 +- Patch numpy for Python 3 (#1596468) + * Thu Jul 12 2018 Fedora Release Engineering - 1.66.0-13 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild From 166218aed3be3b671c54e0ee89abbd9c53177030 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 23 Aug 2018 12:04:40 +0100 Subject: [PATCH 057/203] Fix permissions and python shebang of Boost.Build files --- boost.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/boost.spec b/boost.spec index c072602..4cc7ab5 100644 --- a/boost.spec +++ b/boost.spec @@ -1058,7 +1058,11 @@ echo ============================= install Boost.Build ================== ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install # Fix some permissions chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py + chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/kernel/boost-build.jam + chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/options/help.jam chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py + # Fix shebang using unversioned python + sed -i '1s@^#!/usr/bin.python$@&3@' $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # We don't want to distribute this rm -f $RPM_BUILD_ROOT%{_bindir}/b2 # Not a real file @@ -1484,6 +1488,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Aug 23 2018 Jonathan Wakely - 1.66.0-14 +- Fix permissions and python shebang of Boost.Build files + * Wed Jul 18 2018 Jonathan Wakely - 1.66.0-14 - Patch numpy for Python 3 (#1596468) From 811a3a332966d36a92b8c0e3e78d65e62ad0b010 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Thu, 27 Sep 2018 12:05:10 -0400 Subject: [PATCH 058/203] Disable openmpi and mpich for Flatpak-bundled builds The Fedora OpenMPI and MPICH Flatpaks pose considerable challenges for rebuilding to use in Flaptaks with prefix=/app - in particular because of their use of environment-modules. An analysis of all graphical applications in Fedora that we might want to create Flatpak containers of shows no apps that use the OpenMPI and MPICH subpackages of boost, though many other boost packages are used. So simply disabling openmpi and mpich for Flatpak rebuilds is the simplest approach. --- boost.spec | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 4cc7ab5..5e70431 100644 --- a/boost.spec +++ b/boost.spec @@ -7,6 +7,12 @@ %global boost_docdir __tmp_docdir %global boost_examplesdir __tmp_examplesdir +%if 0%{?flatpak} +# For bundling in Flatpak, currently build without mpich and openmpi, +# which aren't needed and cause prefix=/app errors. +%bcond_with mpich +%bcond_with openmpi +%else # All arches have mpich %bcond_without mpich @@ -16,6 +22,7 @@ %else %bcond_without openmpi %endif +%endif %ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 %bcond_with context @@ -36,7 +43,7 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.66.0 %global version_enc 1_66_0 -Release: 14%{?dist} +Release: 15%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1488,6 +1495,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Sep 27 2018 Owen Taylor - 1.66.0-15 +- Disable openmpi and mpich for Flatpak-bundled builds + * Thu Aug 23 2018 Jonathan Wakely - 1.66.0-14 - Fix permissions and python shebang of Boost.Build files From a07a46867a06fd06318683d504fa82243ce0d215 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 1 Dec 2018 15:16:03 +0000 Subject: [PATCH 059/203] On the way to Boost 1.68 (but not working yet) --- boost-1.50.0-fix-non-utf8-files.patch | 6 +++--- boost.spec | 9 ++++++--- sources | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/boost-1.50.0-fix-non-utf8-files.patch b/boost-1.50.0-fix-non-utf8-files.patch index b60a3ac..469b35d 100644 --- a/boost-1.50.0-fix-non-utf8-files.patch +++ b/boost-1.50.0-fix-non-utf8-files.patch @@ -5,9 +5,9 @@ index 8b2bc43..d04f2fe 100644 @@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit { - static const char* name() { return("EUR"); } -- static const char* symbol() { return(""); } -+ static const char* symbol() { return("€"); } + static constexpr const char* name() { return("EUR"); } +- static constexpr const char* symbol() { return(""); } ++ static constexpr const char* symbol() { return("€"); } }; int main() diff --git a/boost.spec b/boost.spec index 5e70431..97383ee 100644 --- a/boost.spec +++ b/boost.spec @@ -41,9 +41,9 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.66.0 -%global version_enc 1_66_0 -Release: 15%{?dist} +Version: 1.68.0 +%global version_enc 1_68_0 +Release: 1%{?dist} License: Boost and MIT and Python %global toplev_dirname %{name}_%{version_enc} @@ -1495,6 +1495,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sun Nov 25 2018 Denis Arnaud - 1.68.0-1 +- Rebase to 1.68.0 + * Thu Sep 27 2018 Owen Taylor - 1.66.0-15 - Disable openmpi and mpich for Flatpak-bundled builds diff --git a/sources b/sources index a40bdd9..42e1f9a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_66_0.tar.bz2) = 0f34075d35391d66876e5189a01a11880a79428e1b267456348ee148dba9dc3abdc74d568f1853be631d20b584b1c804b42443c266f7622164acfc10be3dab8b +SHA512 (boost_1_68_0.tar.bz2) = f5ca2e0425af40eca7722712b985b863c88780e5be5ac24c78bcfdc63651bb67a39605d4f84089d76cab344fd34113fcb7befaa9a90481b381f6c53e9612b5f9 From 5fb7b5da8bafbdfcbd39a480852862afbc3b9839 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 1 Dec 2018 17:37:21 +0000 Subject: [PATCH 060/203] Fixed the Boost.Pool Jamfile patch --- boost-1.58.0-pool-test_linking.patch | 55 ++++++++++++++-------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/boost-1.58.0-pool-test_linking.patch b/boost-1.58.0-pool-test_linking.patch index a381370..b57e6d0 100644 --- a/boost-1.58.0-pool-test_linking.patch +++ b/boost-1.58.0-pool-test_linking.patch @@ -1,31 +1,30 @@ -diff -up boost_1_58_0/libs/pool/test/Jamfile.v2\~ boost_1_58_0/libs/pool/test/Jamfile.v2 ---- boost_1_57_0/libs/pool/test/Jamfile.v2~ 2015-07-17 11:36:16.362519826 +0100 -+++ boost_1_57_0/libs/pool/test/Jamfile.v2 2015-07-17 11:37:38.858847388 +0100 -@@ -28,17 +28,17 @@ - local Werr = gcc:on msvc:on ; +--- boost_1_68_0/libs/pool/test/Jamfile.v2.orig 2018-08-01 20:50:52.000000000 +0000 ++++ boost_1_68_0/libs/pool/test/Jamfile.v2 2018-12-01 17:29:33.322195409 +0000 +@@ -22,18 +22,18 @@ + import testing ; test-suite pool : -- [ run test_simple_seg_storage.cpp : : : $(Werr) msvc:-wd4267 ] -- [ run test_pool_alloc.cpp : : : $(Werr) ] -- [ run pool_msvc_compiler_bug_test.cpp : : : $(Werr) msvc:-wd4512 ] -- [ run test_msvc_mem_leak_detect.cpp : : : $(Werr) ] -- [ run test_bug_3349.cpp : : : $(Werr) ] -- [ run test_bug_4960.cpp : : : $(Werr) ] -- [ run test_bug_1252.cpp : : : $(Werr) ] -- [ run test_bug_2696.cpp : : : $(Werr) ] -- [ run test_bug_5526.cpp : : : $(Werr) ] -+ [ run test_simple_seg_storage.cpp : : : $(Werr) msvc:-wd4267 /boost/system//boost_system ] -+ [ run test_pool_alloc.cpp : : : $(Werr) /boost/system//boost_system ] -+ [ run pool_msvc_compiler_bug_test.cpp : : : $(Werr) msvc:-wd4512 /boost/system//boost_system ] -+ [ run test_msvc_mem_leak_detect.cpp : : : $(Werr) /boost/system//boost_system ] -+ [ run test_bug_3349.cpp : : : $(Werr) /boost/system//boost_system ] -+ [ run test_bug_4960.cpp : : : $(Werr) /boost/system//boost_system ] -+ [ run test_bug_1252.cpp : : : $(Werr) /boost/system//boost_system ] -+ [ run test_bug_2696.cpp : : : $(Werr) /boost/system//boost_system ] -+ [ run test_bug_5526.cpp : : : $(Werr) /boost/system//boost_system ] +- [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 ] +- [ run test_pool_alloc.cpp ] +- [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 ] +- [ run test_msvc_mem_leak_detect.cpp ] +- [ run test_bug_3349.cpp ] +- [ run test_bug_4960.cpp ] ++ [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 /boost/system//boost_system ] ++ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] ++ [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 /boost/system//boost_system ] ++ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] + [ run test_bug_1252.cpp : : : + clang:-Wno-c++11-long-long + gcc:-Wno-long-long +- pathscale:-Wno-long-long ] +- [ run test_bug_2696.cpp ] +- [ run test_bug_5526.cpp ] ++ pathscale:-Wno-long-long /boost/system//boost_system ] ++ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] ++ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] [ run test_threading.cpp : : : multi /boost/thread//boost_thread ] -- [ run ../example/time_pool_alloc.cpp : : : $(Werr) ] -+ [ run ../example/time_pool_alloc.cpp : : : $(Werr) /boost/system//boost_system ] - [ compile test_poisoned_macros.cpp : $(Werr) ] - - # + [ compile test_poisoned_macros.cpp ] + ; From dad36c9161ed172f9d1ae7df377ef3aa72df8d01 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 1 Dec 2018 17:44:47 +0000 Subject: [PATCH 061/203] Suppressed patch nb 68 (no longer applicable) --- boost.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 97383ee..09c8c2b 100644 --- a/boost.spec +++ b/boost.spec @@ -137,7 +137,7 @@ Patch62: boost-1.66.0-python-abi_letters.patch Patch65: boost-1.66.0-build-optflags.patch # Prevent gcc.jam from setting -m32 or -m64. -Patch68: boost-1.66.0-address-model.patch +#Patch68: boost-1.66.0-address-model.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.66.0-no-rpath.patch @@ -766,7 +766,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch61 -p1 %patch62 -p1 %patch65 -p1 -%patch68 -p1 %patch82 -p1 %patch83 -p1 %patch84 -p1 From 8e25e3cb3f55be493e8aaaf52f47b2f30b57e7c5 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 1 Dec 2018 17:56:48 +0000 Subject: [PATCH 062/203] Suppressed patches nb 84 and 85 (no longer applicable) --- boost.spec | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/boost.spec b/boost.spec index 09c8c2b..d71cf80 100644 --- a/boost.spec +++ b/boost.spec @@ -136,21 +136,12 @@ Patch62: boost-1.66.0-python-abi_letters.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1190039 Patch65: boost-1.66.0-build-optflags.patch -# Prevent gcc.jam from setting -m32 or -m64. -#Patch68: boost-1.66.0-address-model.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.66.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch83: boost-1.66.0-bjam-build-flags.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1545092 -Patch84: boost-1.66.0-spirit-abs-overflow.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1585515 -Patch85: boost-1.66.0-compute.patch - # https://github.com/boostorg/python/pull/186 Patch86: boost-1.66.0-python37.patch @@ -768,8 +759,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch65 -p1 %patch82 -p1 %patch83 -p1 -%patch84 -p1 -%patch85 -p2 %patch86 -p1 %patch87 -p1 From bf8dec78ccbc6edf84e9d34dfdd6d9106e98a275 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 1 Dec 2018 18:04:19 +0000 Subject: [PATCH 063/203] Suppressed patches nb 86 and 87 (no longer applicable) --- boost.spec | 9 --------- 1 file changed, 9 deletions(-) diff --git a/boost.spec b/boost.spec index d71cf80..b236aec 100644 --- a/boost.spec +++ b/boost.spec @@ -142,13 +142,6 @@ Patch82: boost-1.66.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch83: boost-1.66.0-bjam-build-flags.patch -# https://github.com/boostorg/python/pull/186 -Patch86: boost-1.66.0-python37.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1596468 -# https://github.com/boostorg/python/pull/218 -Patch87: boost-1.66.0-numpy3.patch - %bcond_with tests %bcond_with docs_generated @@ -759,8 +752,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch65 -p1 %patch82 -p1 %patch83 -p1 -%patch86 -p1 -%patch87 -p1 %build # Dump the versions being used into the build logs. From 15eed9824241f8b84ecdbb952c75e8eda4cda9da Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 1 Dec 2018 21:20:17 +0000 Subject: [PATCH 064/203] Rebase to 1.68.0 New library: Boost.Contract The Python-related shared libraries now carry the full Python version, eg _python27.so and _python37.so Drop patches: deleted: boost-1.66.0-address-model.patch deleted: boost-1.66.0-compute.patch deleted: boost-1.66.0-numpy3.patch deleted: boost-1.66.0-python37.patch deleted: boost-1.66.0-spirit-abs-overflow.patch --- boost-1.66.0-address-model.patch | 13 ------- boost-1.66.0-compute.patch | 23 ----------- boost-1.66.0-numpy3.patch | 29 -------------- boost-1.66.0-python37.patch | 39 ------------------- boost-1.66.0-spirit-abs-overflow.patch | 15 -------- boost.spec | 53 +++++++++++++++++++------- 6 files changed, 40 insertions(+), 132 deletions(-) delete mode 100644 boost-1.66.0-address-model.patch delete mode 100644 boost-1.66.0-compute.patch delete mode 100644 boost-1.66.0-numpy3.patch delete mode 100644 boost-1.66.0-python37.patch delete mode 100644 boost-1.66.0-spirit-abs-overflow.patch diff --git a/boost-1.66.0-address-model.patch b/boost-1.66.0-address-model.patch deleted file mode 100644 index 603aa72..0000000 --- a/boost-1.66.0-address-model.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:09:56.041685502 +0000 -+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:09:56.042685500 +0000 -@@ -421,7 +421,9 @@ - - rule set-address-model-options ( targets * : sources * : properties * ) - { -- local model = [ feature.get-values address-model : $(properties) ] ; -+ # For RPM builds the address model flag is passed in %{optflags}. -+ # local model = [ feature.get-values address-model : $(properties) ] ; -+ local model ; - if $(model) - { - local option ; diff --git a/boost-1.66.0-compute.patch b/boost-1.66.0-compute.patch deleted file mode 100644 index 2bd2b4a..0000000 --- a/boost-1.66.0-compute.patch +++ /dev/null @@ -1,23 +0,0 @@ -From fdbdb94db64e888fce90fe519be23c2a4396a82e Mon Sep 17 00:00:00 2001 -From: pradeep -Date: Tue, 8 May 2018 14:53:38 +0530 -Subject: [PATCH 1/2] Fix return var qualifier in svm_ptr::get_context - -Lack of `const` qualifier is throwing errors with GCC 8.1 ---- - include/boost/compute/memory/svm_ptr.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/compute/memory/svm_ptr.hpp b/include/boost/compute/memory/svm_ptr.hpp -index c8753f5b..56cf1268 100644 ---- a/include/boost/compute/memory/svm_ptr.hpp -+++ b/include/boost/compute/memory/svm_ptr.hpp -@@ -126,7 +126,7 @@ class svm_ptr - return m_ptr - other.m_ptr; - } - -- context& get_context() const -+ const context& get_context() const - { - return m_context; - } diff --git a/boost-1.66.0-numpy3.patch b/boost-1.66.0-numpy3.patch deleted file mode 100644 index 27add8c..0000000 --- a/boost-1.66.0-numpy3.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0fce0e589353d772ceda4d493b147138406b22fd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Moritz=20Wanzenb=C3=B6ck?= -Date: Wed, 11 Jul 2018 11:57:46 +0200 -Subject: [PATCH] Add missing return statement in numpy import - -This adds a missing return statement in the python3 specific -import logic of boost.python.numpy. - -For python3 wrap_import_array() needs to return a pointer value. -The import_array() macro only returns NULL in case of error. The -missing return statement is UB, so the compiler can assume it does -not happen. This means the compiler can assume the error branch -is always taken, so import_array must always fail. ---- - src/numpy/numpy.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/numpy/numpy.cpp b/src/numpy/numpy.cpp -index 8e259bc75..3ae2295e3 100644 ---- a/libs/python/src/numpy/numpy.cpp -+++ b/libs/python/src/numpy/numpy.cpp -@@ -19,6 +19,7 @@ static void wrap_import_array() - static void * wrap_import_array() - { - import_array(); -+ return NULL; - } - #endif - diff --git a/boost-1.66.0-python37.patch b/boost-1.66.0-python37.patch deleted file mode 100644 index 9577f21..0000000 --- a/boost-1.66.0-python37.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 660487c43fde76f3e64f1cb2e644500da92fe582 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Bernhard=20Rosenkr=C3=A4nzer?= -Date: Fri, 9 Feb 2018 18:20:30 +0100 -Subject: [PATCH] Fix build with Python 3.7 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Python 3.7 changes the return type of _PyUnicode_AsString() -from void* to const char* -- causing the build of boost-python -to fail. - -Signed-off-by: Bernhard Rosenkränzer ---- - src/converter/builtin_converters.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/converter/builtin_converters.cpp b/src/converter/builtin_converters.cpp -index 1c28af7fc..ee2d5b479 100644 ---- a/libs/python/src/converter/builtin_converters.cpp -+++ b/libs/python/src/converter/builtin_converters.cpp -@@ -45,11 +45,16 @@ namespace - { - return PyString_Check(obj) ? PyString_AsString(obj) : 0; - } --#else -+#elif PY_VERSION_HEX < 0x03070000 - void* convert_to_cstring(PyObject* obj) - { - return PyUnicode_Check(obj) ? _PyUnicode_AsString(obj) : 0; - } -+#else -+ void* convert_to_cstring(PyObject* obj) -+ { -+ return PyUnicode_Check(obj) ? const_cast(reinterpret_cast(_PyUnicode_AsString(obj))) : 0; -+ } - #endif - - // Given a target type and a SlotPolicy describing how to perform a diff --git a/boost-1.66.0-spirit-abs-overflow.patch b/boost-1.66.0-spirit-abs-overflow.patch deleted file mode 100644 index d98ab4e..0000000 --- a/boost-1.66.0-spirit-abs-overflow.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- boost_1_66_0/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp~ 2018-02-23 16:59:53.785141676 +0000 -+++ boost_1_66_0/boost/spirit/home/karma/numeric/detail/numeric_utils.hpp 2018-02-23 17:00:16.838092946 +0000 -@@ -68,7 +68,11 @@ - typedef unsignedtype type; \ - static type call(signedtype n) \ - { \ -- return static_cast((n >= 0) ? n : -n); \ -+ if (n >= 0) \ -+ return n; \ -+ if (n == std::numeric_limits::min()) \ -+ return (unsignedtype)n; \ -+ return (unsignedtype)(-n); \ - } \ - } \ - /**/ diff --git a/boost.spec b/boost.spec index b236aec..43da498 100644 --- a/boost.spec +++ b/boost.spec @@ -66,6 +66,7 @@ Source1: libboost_thread.so Requires: boost-atomic%{?_isa} = %{version}-%{release} Requires: boost-chrono%{?_isa} = %{version}-%{release} Requires: boost-container%{?_isa} = %{version}-%{release} +Requires: boost-contract%{?_isa} = %{version}-%{release} %if %{with context} Requires: boost-context%{?_isa} = %{version}-%{release} Requires: boost-coroutine%{?_isa} = %{version}-%{release} @@ -183,6 +184,18 @@ including STL containers. The aim of the library is to offer advanced features not present in standard containers or to offer the latest standard draft features for compilers that comply with C++03. +%package contract +Summary: Run-time component of boost contract library + +%description contract + +Run-time support for boost contract library. +Contract programming for C++. All contract programming features are supported: +Subcontracting, class invariants, postconditions (with old and return values), +preconditions, customizable actions on assertion failure (e.g., terminate +or throw), optional compilation and checking of assertions, etc, +from Lorenzo Caminiti. + %if %{with context} %package context Summary: Run-time component of boost context switching library @@ -1229,13 +1242,13 @@ fi %if %{with python2} %files numpy2 %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy.so.%{sonamever} +%{_libdir}/libboost_numpy27.so.%{sonamever} %endif %if %{with python3} %files numpy3 %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy3.so.%{sonamever} +%{_libdir}/libboost_numpy37.so.%{sonamever} %endif %files test @@ -1250,23 +1263,23 @@ fi %if %{with python2} %files python2 %license LICENSE_1_0.txt -%{_libdir}/libboost_python.so.%{sonamever} +%{_libdir}/libboost_python27.so.%{sonamever} %files python2-devel %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy.so -%{_libdir}/libboost_python.so +%{_libdir}/libboost_numpy27.so +%{_libdir}/libboost_python27.so %endif %if %{with python3} %files python3 %license LICENSE_1_0.txt -%{_libdir}/libboost_python3.so.%{sonamever} +%{_libdir}/libboost_python37.so.%{sonamever} %files python3-devel %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy3.so -%{_libdir}/libboost_python3.so +%{_libdir}/libboost_numpy37.so +%{_libdir}/libboost_python37.so %endif %files random @@ -1312,6 +1325,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_wave.so.%{sonamever} +%files contract +%license LICENSE_1_0.txt +%{_libdir}/libboost_contract.so.%{sonamever} + %files doc %doc %{boost_docdir}/* @@ -1324,6 +1341,7 @@ fi %{_libdir}/libboost_atomic.so %{_libdir}/libboost_chrono.so %{_libdir}/libboost_container.so +%{_libdir}/libboost_contract.so %if %{with context} %{_libdir}/libboost_context.so %{_libdir}/libboost_coroutine.so @@ -1400,12 +1418,12 @@ fi %files openmpi-python3 %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python3.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} %{python3_sitearch}/openmpi/boost/ %files openmpi-python3-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python3.so +%{_libdir}/openmpi/lib/libboost_mpi_python.so %endif @@ -1444,12 +1462,12 @@ fi %files mpich-python3 %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python3.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_mpi_python.so.%{sonamever} %{python3_sitearch}/mpich/boost/ %files mpich-python3-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python3.so +%{_libdir}/mpich/lib/libboost_mpi_python.so %endif @@ -1474,8 +1492,17 @@ fi %{_mandir}/man1/bjam.1* %changelog -* Sun Nov 25 2018 Denis Arnaud - 1.68.0-1 +* Sat Dec 01 2018 Denis Arnaud - 1.68.0-1 - Rebase to 1.68.0 +- New library: Boost.Contract +- The Python-related shared libraries now carry the full Python version, + eg _python27.so and _python37.so +- Drop patches: + deleted: boost-1.66.0-address-model.patch + deleted: boost-1.66.0-compute.patch + deleted: boost-1.66.0-numpy3.patch + deleted: boost-1.66.0-python37.patch + deleted: boost-1.66.0-spirit-abs-overflow.patch * Thu Sep 27 2018 Owen Taylor - 1.66.0-15 - Disable openmpi and mpich for Flatpak-bundled builds From 90fdd43d4d59b04455bc08aac0a8b1a3344722af Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Fri, 14 Dec 2018 23:00:28 +0000 Subject: [PATCH 065/203] Rebase to 1.69.0 Dropped library: Boost.Signals (now replaced by header-only Boost.Signlas2) --- boost.spec | 37 ++++++++++++++----------------------- sources | 2 +- 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/boost.spec b/boost.spec index 43da498..784b87b 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.68.0 -%global version_enc 1_68_0 +Version: 1.69.0 +%global version_enc 1_69_0 Release: 1%{?dist} License: Boost and MIT and Python @@ -85,7 +85,6 @@ Requires: boost-program-options%{?_isa} = %{version}-%{release} Requires: boost-random%{?_isa} = %{version}-%{release} Requires: boost-regex%{?_isa} = %{version}-%{release} Requires: boost-serialization%{?_isa} = %{version}-%{release} -Requires: boost-signals%{?_isa} = %{version}-%{release} Requires: boost-stacktrace%{?_isa} = %{version}-%{release} Requires: boost-system%{?_isa} = %{version}-%{release} Requires: boost-test%{?_isa} = %{version}-%{release} @@ -414,13 +413,6 @@ Summary: Run-time component of boost serialization library Run-time support for serialization for persistence and marshaling. -%package signals -Summary: Run-time component of boost signals and slots library - -%description signals - -Run-time support for managed signals & slots callback implementation. - %package stacktrace Summary: Run-time component of boost stacktrace library @@ -1295,10 +1287,6 @@ fi %{_libdir}/libboost_serialization.so.%{sonamever} %{_libdir}/libboost_wserialization.so.%{sonamever} -%files signals -%license LICENSE_1_0.txt -%{_libdir}/libboost_signals.so.%{sonamever} - %files stacktrace %license LICENSE_1_0.txt %{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} @@ -1369,7 +1357,6 @@ fi %{_libdir}/libboost_regex.so %{_libdir}/libboost_serialization.so %{_libdir}/libboost_wserialization.so -%{_libdir}/libboost_signals.so %{_libdir}/libboost_stacktrace_addr2line.so %{_libdir}/libboost_stacktrace_basic.so %{_libdir}/libboost_stacktrace_noop.so @@ -1405,12 +1392,12 @@ fi %files openmpi-python2 %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_mpi_python27.so.%{sonamever} %{python2_sitearch}/openmpi/boost/ %files openmpi-python2-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python.so +%{_libdir}/openmpi/lib/libboost_mpi_python27.so %endif @@ -1418,12 +1405,12 @@ fi %files openmpi-python3 %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_mpi_python37.so.%{sonamever} %{python3_sitearch}/openmpi/boost/ %files openmpi-python3-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python.so +%{_libdir}/openmpi/lib/libboost_mpi_python37.so %endif @@ -1449,12 +1436,12 @@ fi %files mpich-python2 %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_mpi_python27.so.%{sonamever} %{python2_sitearch}/mpich/boost/ %files mpich-python2-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python.so +%{_libdir}/mpich/lib/libboost_mpi_python27.so %endif @@ -1462,12 +1449,12 @@ fi %files mpich-python3 %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_mpi_python37.so.%{sonamever} %{python3_sitearch}/mpich/boost/ %files mpich-python3-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python.so +%{_libdir}/mpich/lib/libboost_mpi_python37.so %endif @@ -1492,6 +1479,10 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sat Dec 15 2018 Denis Arnaud - 1.69.0-1 +- Rebase to 1.69.0 +- Dropped library: Boost.Signals (now replaced by header-only Boost.Signlas2) + * Sat Dec 01 2018 Denis Arnaud - 1.68.0-1 - Rebase to 1.68.0 - New library: Boost.Contract diff --git a/sources b/sources index 42e1f9a..cead2dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_68_0.tar.bz2) = f5ca2e0425af40eca7722712b985b863c88780e5be5ac24c78bcfdc63651bb67a39605d4f84089d76cab344fd34113fcb7befaa9a90481b381f6c53e9612b5f9 +SHA512 (boost_1_69_0.tar.bz2) = d0e9bb858c44880d56c0291afef6a1b011a62f659a2d8f58dcb6147ea0899f9157bd8db3097896618fee0116847ebeac78b6d0f0fec8a92c3469500828bbe552 From aca49b692395f569ead45a50bfb2962e23977189 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 19 Jan 2019 19:56:18 +0000 Subject: [PATCH 066/203] Make use of %{name} rather than boost so as to be compatible with boost1xx spec files (on EPEL) --- boost.spec | 195 ++++++++++++++++++++++++++--------------------------- 1 file changed, 94 insertions(+), 101 deletions(-) diff --git a/boost.spec b/boost.spec index 784b87b..de2ee5a 100644 --- a/boost.spec +++ b/boost.spec @@ -63,35 +63,36 @@ Source1: libboost_thread.so # to have interested parties install them explicitly. # The subpackages that don't install shared libraries are also not pulled in # (doc, doctools, examples, jam, static). -Requires: boost-atomic%{?_isa} = %{version}-%{release} -Requires: boost-chrono%{?_isa} = %{version}-%{release} -Requires: boost-container%{?_isa} = %{version}-%{release} -Requires: boost-contract%{?_isa} = %{version}-%{release} +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-container%{?_isa} = %{version}-%{release} +Requires: %{name}-contract%{?_isa} = %{version}-%{release} %if %{with context} -Requires: boost-context%{?_isa} = %{version}-%{release} -Requires: boost-coroutine%{?_isa} = %{version}-%{release} +Requires: %{name}-context%{?_isa} = %{version}-%{release} +Requires: %{name}-coroutine%{?_isa} = %{version}-%{release} %endif -Requires: boost-date-time%{?_isa} = %{version}-%{release} +Requires: %{name}-date-time%{?_isa} = %{version}-%{release} %if %{with context} -Requires: boost-fiber%{?_isa} = %{version}-%{release} +Requires: %{name}-fiber%{?_isa} = %{version}-%{release} %endif -Requires: boost-filesystem%{?_isa} = %{version}-%{release} -Requires: boost-graph%{?_isa} = %{version}-%{release} -Requires: boost-iostreams%{?_isa} = %{version}-%{release} -Requires: boost-locale%{?_isa} = %{version}-%{release} -Requires: boost-log%{?_isa} = %{version}-%{release} -Requires: boost-math%{?_isa} = %{version}-%{release} -Requires: boost-program-options%{?_isa} = %{version}-%{release} -Requires: boost-random%{?_isa} = %{version}-%{release} -Requires: boost-regex%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} -Requires: boost-stacktrace%{?_isa} = %{version}-%{release} -Requires: boost-system%{?_isa} = %{version}-%{release} -Requires: boost-test%{?_isa} = %{version}-%{release} -Requires: boost-thread%{?_isa} = %{version}-%{release} -Requires: boost-timer%{?_isa} = %{version}-%{release} -Requires: boost-type_erasure%{?_isa} = %{version}-%{release} -Requires: boost-wave%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} +Requires: %{name}-graph%{?_isa} = %{version}-%{release} +Requires: %{name}-iostreams%{?_isa} = %{version}-%{release} +Requires: %{name}-locale%{?_isa} = %{version}-%{release} +Requires: %{name}-log%{?_isa} = %{version}-%{release} +Requires: %{name}-math%{?_isa} = %{version}-%{release} +Requires: %{name}-program-options%{?_isa} = %{version}-%{release} +Requires: %{name}-python%{?_isa} = %{version}-%{release} +Requires: %{name}-random%{?_isa} = %{version}-%{release} +Requires: %{name}-regex%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-stacktrace%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-test%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Requires: %{name}-timer%{?_isa} = %{version}-%{release} +Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} +Requires: %{name}-wave%{?_isa} = %{version}-%{release} BuildRequires: gcc-c++ BuildRequires: m4 @@ -292,11 +293,11 @@ portion of Boost.TR1. %package numpy2 Summary: Run-time component of boost numpy library for Python 2 -Requires: boost-python2%{?_isa} = %{version}-%{release} +Requires: %{name}-python2%{?_isa} = %{version}-%{release} Requires: python2-numpy # Added for F29, remove for F31: -Provides: boost-numpy%{?_isa} = %{version}-%{release} -Obsoletes: boost-numpy < %{version}-%{release} +Provides: %{name}-numpy%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-numpy < %{version}-%{release} %description numpy2 @@ -312,7 +313,7 @@ support for the NumPy extension of the Boost Python Library for Python 2. %package numpy3 Summary: Run-time component of boost numpy library for Python 3 -Requires: boost-python3%{?_isa} = %{version}-%{release} +Requires: %{name}-python3%{?_isa} = %{version}-%{release} Requires: python3-numpy %description numpy3 @@ -337,11 +338,6 @@ conventional methods such as command-line and configuration file. %if %{with python2} %package python2 -# These Provides: and Obsoletes: were added for F28, remove for F30 -Provides: %{name}-python = %{version}-%{release} -Provides: %{name}-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-python < %{version}-%{release} -Obsoletes: python2-%{name} < %{version}-%{release} Summary: Run-time component of boost python library for Python 2 %description python2 @@ -354,12 +350,9 @@ support for the Boost Python Library compiled for Python 2. %package python2-devel Summary: Shared object symbolic links for Boost.Python 2 -Requires: boost-numpy2%{?_isa} = %{version}-%{release} -Requires: boost-python2%{?_isa} = %{version}-%{release} -Requires: boost-devel%{?_isa} = %{version}-%{release} -# These Provides: and Obsoletes: were added for F28, remove them for F30 -Provides: boost-python-devel%{?_isa} = %{version}-%{release} -Obsoletes: boost-python-devel < %{version}-%{release} +Requires: %{name}-numpy2%{?_isa} = %{version}-%{release} +Requires: %{name}-python2%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description python2-devel @@ -382,9 +375,9 @@ support for the Boost Python Library compiled for Python 3. %package python3-devel Summary: Shared object symbolic links for Boost.Python 3 -Requires: boost-numpy3%{?_isa} = %{version}-%{release} -Requires: boost-python3%{?_isa} = %{version}-%{release} -Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} +Requires: %{name}-python3%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description python3-devel @@ -438,7 +431,7 @@ program execution monitoring. %package thread Summary: Run-time component of boost thread library -Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description thread @@ -449,8 +442,8 @@ data specific to individual threads. %package timer Summary: Run-time component of boost timer library -Requires: boost-chrono%{?_isa} = %{version}-%{release} -Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description timer @@ -460,8 +453,8 @@ with as little as one #include and one additional line of code. %package type_erasure Summary: Run-time component of boost type erasure library -Requires: boost-chrono%{?_isa} = %{version}-%{release} -Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description type_erasure @@ -470,11 +463,11 @@ that is more flexible than that provided by the core language. %package wave Summary: Run-time component of boost C99/C++ preprocessing library -Requires: boost-chrono%{?_isa} = %{version}-%{release} -Requires: boost-date-time%{?_isa} = %{version}-%{release} -Requires: boost-filesystem%{?_isa} = %{version}-%{release} -Requires: boost-system%{?_isa} = %{version}-%{release} -Requires: boost-thread%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-date-time%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description wave @@ -484,7 +477,7 @@ preprocessor functionality. %package devel Summary: The Boost C++ headers and shared development libraries -Requires: boost%{?_isa} = %{version}-%{release} +Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libicu-devel%{?_isa} %if %{with quadmath} Requires: libquadmath-devel%{?_isa} @@ -495,7 +488,7 @@ Headers and shared object symbolic links for the Boost C++ libraries. %package static Summary: The Boost C++ static development libraries -Requires: boost-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} %description static Static Boost C++ libraries. @@ -516,7 +509,7 @@ Summary: Source examples for the Boost C++ libraries %if 0%{?rhel} >= 6 BuildArch: noarch %endif -Requires: boost-devel = %{version}-%{release} +Requires: %{name}-devel = %{version}-%{release} %description examples This package contains example source files distributed with boost. @@ -527,7 +520,7 @@ This package contains example source files distributed with boost. %package openmpi Summary: Run-time component of Boost.MPI library BuildRequires: openmpi-devel -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} %description openmpi @@ -536,9 +529,9 @@ API over the OpenMPI implementation of MPI. %package openmpi-devel Summary: Shared library symbolic links for Boost.MPI -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi%{?_isa} = %{version}-%{release} -Requires: boost-graph-openmpi%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} +Requires: %{name}-graph-openmpi%{?_isa} = %{version}-%{release} %description openmpi-devel @@ -549,13 +542,13 @@ API over the OpenMPI implementation of MPI. %package openmpi-python2 Summary: Python 2 run-time component of Boost.MPI library -Requires: boost-openmpi%{?_isa} = %{version}-%{release} -Requires: boost-python%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} +Requires: %{name}-python%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: python2-openmpi%{?_isa} # Added for F29, remove for F31: -Provides: boost-openmpi-python%{?_isa} = %{version}-%{release} -Obsoletes: boost-openmpi-python < %{version}-%{release} +Provides: %{name}-openmpi-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-openmpi-python < %{version}-%{release} %description openmpi-python2 @@ -564,9 +557,9 @@ API over the OpenMPI implementation of MPI. %package openmpi-python2-devel Summary: Shared library symbolic links for Boost.MPI Python 2 component -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-python2%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi-python2%{?_isa} = %{version}-%{release} %description openmpi-python2-devel @@ -579,9 +572,9 @@ providing a clean C++ API over the OpenMPI implementation of MPI. %package openmpi-python3 Summary: Python 3 run-time component of Boost.MPI library -Requires: boost-openmpi%{?_isa} = %{version}-%{release} -Requires: boost-python3%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} +Requires: %{name}-python3%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: python3-openmpi%{?_isa} %description openmpi-python3 @@ -591,10 +584,10 @@ API over the OpenMPI implementation of MPI. %package openmpi-python3-devel Summary: Shared library symbolic links for Boost.MPI Python 3 component -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-python3-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-devel%{?_isa} = %{version}-%{release} -Requires: boost-openmpi-python3%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-python3-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi-python3%{?_isa} = %{version}-%{release} %description openmpi-python3-devel @@ -605,8 +598,8 @@ providing a clean C++ API over the OpenMPI implementation of MPI. %package graph-openmpi Summary: Run-time component of parallel boost graph library -Requires: boost-openmpi%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} %description graph-openmpi @@ -623,7 +616,7 @@ back-end to do the parallel work. %package mpich Summary: Run-time component of Boost.MPI library BuildRequires: mpich-devel -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} %description mpich @@ -632,9 +625,9 @@ API over the MPICH implementation of MPI. %package mpich-devel Summary: Shared library symbolic links for Boost.MPI -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-graph-mpich%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich%{?_isa} = %{version}-%{release} +Requires: %{name}-graph-mpich%{?_isa} = %{version}-%{release} %description mpich-devel @@ -645,13 +638,13 @@ API over the MPICH implementation of MPI. %package mpich-python2 Summary: Python run-time component of Boost.MPI library -Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-python2%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich%{?_isa} = %{version}-%{release} +Requires: %{name}-python2%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: python2-mpich%{?_isa} # Added for F29, remove for F31: -Provides: boost-mpich-python%{?_isa} = %{version}-%{release} -Obsoletes: boost-mpich-python < %{version}-%{release} +Provides: %{name}-mpich-python%{?_isa} = %{version}-%{release} +Obsoletes: %{name}-mpich-python < %{version}-%{release} %description mpich-python2 @@ -660,9 +653,9 @@ API over the MPICH implementation of MPI. %package mpich-python2-devel Summary: Shared library symbolic links for Boost.MPI Python 2 component -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich-python2%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich-python2%{?_isa} = %{version}-%{release} %description mpich-python2-devel @@ -675,9 +668,9 @@ providing a clean C++ API over the MPICH implementation of MPI. %package mpich-python3 Summary: Python 3 run-time component of Boost.MPI library -Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-python3%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich%{?_isa} = %{version}-%{release} +Requires: %{name}-python3%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: python3-mpich%{?_isa} %description mpich-python3 @@ -687,10 +680,10 @@ API over the MPICH implementation of MPI. %package mpich-python3-devel Summary: Shared library symbolic links for Boost.MPI Python 3 component -Requires: boost-devel%{?_isa} = %{version}-%{release} -Requires: boost-python3-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich-devel%{?_isa} = %{version}-%{release} -Requires: boost-mpich-python3%{?_isa} = %{version}-%{release} +Requires: %{name}-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-python3-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich-devel%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich-python3%{?_isa} = %{version}-%{release} %description mpich-python3-devel @@ -701,8 +694,8 @@ providing a clean C++ API over the MPICH implementation of MPI. %package graph-mpich Summary: Run-time component of parallel boost graph library -Requires: boost-mpich%{?_isa} = %{version}-%{release} -Requires: boost-serialization%{?_isa} = %{version}-%{release} +Requires: %{name}-mpich%{?_isa} = %{version}-%{release} +Requires: %{name}-serialization%{?_isa} = %{version}-%{release} %description graph-mpich @@ -715,7 +708,7 @@ back-end to do the parallel work. %package build Summary: Cross platform build system for C++ projects -Requires: boost-jam +Requires: %{name}-jam BuildArch: noarch %description build @@ -723,7 +716,7 @@ Boost.Build is an easy way to build C++ projects, everywhere. You name your pieces of executable and libraries and list their sources. Boost.Build takes care about compiling your sources with the right options, creating static and shared libraries, making pieces of executable, and other -chores -- whether you're using GCC, MSVC, or a dozen more supported +chores -- whether you are using GCC, MSVC, or a dozen more supported C++ compilers -- on Windows, OSX, Linux and commercial UNIX systems. %package doctools @@ -1466,7 +1459,7 @@ fi %files build %license LICENSE_1_0.txt -%{_datadir}/boost-build/ +%{_datadir}/%{name}-build/ %files doctools %license LICENSE_1_0.txt From 094f7ed60fc551bba7d2f9df39cab49a13499152 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 19 Jan 2019 21:55:50 +0000 Subject: [PATCH 067/203] Make use of %{name} rather than boost so as to be compatible with boost1xx spec files (on EPEL) --- boost.spec | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/boost.spec b/boost.spec index de2ee5a..52bb5db 100644 --- a/boost.spec +++ b/boost.spec @@ -40,16 +40,18 @@ %endif Name: boost +%global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 +%global version_suffix 169 Release: 1%{?dist} License: Boost and MIT and Python -%global toplev_dirname %{name}_%{version_enc} +%global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://sourceforge.net/projects/boost/files/boost/%{version}/%{toplev_dirname}.tar.bz2 +Source0: https://sourceforge.net/projects/boost/files/%{real_name}/%{version}/%{toplev_dirname}.tar.bz2 Source1: libboost_thread.so # Since Fedora 13, the Boost libraries are delivered with sonames @@ -168,7 +170,7 @@ variables. %package chrono Summary: Run-time component of boost chrono library -Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description chrono @@ -235,7 +237,7 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library -Requires: boost-system%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description filesystem @@ -245,7 +247,7 @@ directories. %package graph Summary: Run-time component of boost graph library -Requires: boost-regex%{?_isa} = %{version}-%{release} +Requires: %{name}-regex%{?_isa} = %{version}-%{release} %description graph @@ -263,9 +265,9 @@ stream buffers and i/o filters. %package locale Summary: Run-time component of boost locale library -Requires: boost-chrono%{?_isa} = %{version}-%{release} -Requires: boost-system%{?_isa} = %{version}-%{release} -Requires: boost-thread%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description locale @@ -738,7 +740,7 @@ a number of significant features and is now developed independently. %prep %setup -q -n %{toplev_dirname} -find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x +find ./%{name} -name '*.hpp' -perm /111 | xargs chmod a-x %patch4 -p1 %patch5 -p1 @@ -819,7 +821,7 @@ m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ %if %{with python3} # Previously, we built python 2.x and 3.x interfaces simultaneously. -# However, this doesn't work once trying to build other Python components +# However, this does not work once trying to build other Python components # such as libboost_numpy. Therefore, we build for each separately, while # minimizing duplicate compilation as much as possible. @@ -850,7 +852,7 @@ echo ============================= build serial-py3 ================== # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} -# First, purge all modules so that user environment doesn't conflict +# First, purge all modules so that user environment does not conflict # with the build. module purge ||: %endif @@ -914,7 +916,7 @@ echo ============================= build Boost.Build ================== cd %{_builddir}/%{toplev_dirname} %if %{with openmpi} || %{with mpich} -# First, purge all modules so that user environment doesn't conflict +# First, purge all modules so that user environment does not conflict # with the build. module purge ||: %endif @@ -1881,7 +1883,7 @@ fi - Enable MPICH and OpenMPI support on ARM as it's long had them both * Fri Dec 13 2013 Petr Machata - 1.54.0-8 -- Add aarch64 into the list of arches that OpenMPI doesn't support. +- Add aarch64 into the list of arches that OpenMPI does not support. * Sun Dec 1 2013 Petr Machata - 1.54.0-7 - Fix shameful blunders in implementation of the previous fix: don't @@ -2038,7 +2040,7 @@ fi * Tue Aug 7 2012 Petr Machata - 1.50.0-2 - Enable Python 3 builds. This is still disabled in Boost MPI, which - doesn't seem to support Python 3 + does not seem to support Python 3 * Thu Jul 26 2012 Petr Machata - 1.50.0-1 - Upstream 1.50 @@ -2264,7 +2266,7 @@ fi * Fri Jun 4 2010 Petr Machata - 1.41.0-12 - Turn on mpich2 on s390. Add arm to the list of arches that openmpi - doesn't support. + does not support. * Fri Jun 4 2010 Petr Machata - 1.41.0-12 - Don't distribute cmake support files. @@ -2290,10 +2292,10 @@ fi * Tue Feb 2 2010 Petr Machata - 1.41.0-6 - More subpackage interdependency adjustments - - boost doesn't bring in the MPI stuff. Instead, $MPI-devel does. + - boost does not bring in the MPI stuff. Instead, $MPI-devel does. It needs to, so that the symbolic links don't dangle. - boost-graph-$MPI depends on boost-$MPI so that boost-mpich2 - doesn't satisfy the SONAME dependency of boost-graph-openmpi. + does not satisfy the SONAME dependency of boost-graph-openmpi. - Resolves: #559009 * Mon Feb 1 2010 Denis Arnaud - 1.41.0-5 From f158da30f8d9275969716491300650895f2d68b2 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sat, 19 Jan 2019 22:08:09 +0000 Subject: [PATCH 068/203] Fixed a typo with %{name} --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 52bb5db..d857d5e 100644 --- a/boost.spec +++ b/boost.spec @@ -740,7 +740,7 @@ a number of significant features and is now developed independently. %prep %setup -q -n %{toplev_dirname} -find ./%{name} -name '*.hpp' -perm /111 | xargs chmod a-x +find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch4 -p1 %patch5 -p1 From 777ed71df53d9a3aac93bdd639e82a15caa5296b Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Sun, 20 Jan 2019 23:39:05 +0100 Subject: [PATCH 069/203] The Boost umbrella package no longer requires Python sub-packages --- boost.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/boost.spec b/boost.spec index d857d5e..11f97a2 100644 --- a/boost.spec +++ b/boost.spec @@ -84,7 +84,6 @@ Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} Requires: %{name}-program-options%{?_isa} = %{version}-%{release} -Requires: %{name}-python%{?_isa} = %{version}-%{release} Requires: %{name}-random%{?_isa} = %{version}-%{release} Requires: %{name}-regex%{?_isa} = %{version}-%{release} Requires: %{name}-serialization%{?_isa} = %{version}-%{release} From c424db88344b8ba070fa73fc870f15c21671cee4 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Mon, 21 Jan 2019 00:48:53 +0100 Subject: [PATCH 070/203] Fixed a typo with %{name}-python (the 2 was missing) --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 11f97a2..4a5593f 100644 --- a/boost.spec +++ b/boost.spec @@ -544,7 +544,7 @@ API over the OpenMPI implementation of MPI. %package openmpi-python2 Summary: Python 2 run-time component of Boost.MPI library Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} -Requires: %{name}-python%{?_isa} = %{version}-%{release} +Requires: %{name}-python2%{?_isa} = %{version}-%{release} Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: python2-openmpi%{?_isa} # Added for F29, remove for F31: From 419c3aba6530c1418ed0484a8ad45d592f3554c7 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 23 Jan 2019 21:50:21 +0000 Subject: [PATCH 071/203] Rebuild for ICU 63 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 4a5593f..fb7d4d5 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1473,6 +1473,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Jan 23 2019 Pete Walter - 1.69.0-2 +- Rebuild for ICU 63 + * Sat Dec 15 2018 Denis Arnaud - 1.69.0-1 - Rebase to 1.69.0 - Dropped library: Boost.Signals (now replaced by header-only Boost.Signlas2) From 081b85cab46ab965c655cde37fcbea88b87bc599 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 31 Jan 2019 14:50:34 +0000 Subject: [PATCH 072/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index fb7d4d5..733300f 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1473,6 +1473,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Jan 31 2019 Fedora Release Engineering - 1.69.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + * Wed Jan 23 2019 Pete Walter - 1.69.0-2 - Rebuild for ICU 63 From 575500ddcb43ebdb2f12f48a8d8c4110bc6bb7d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 4 Feb 2019 11:41:12 +0100 Subject: [PATCH 073/203] Use Python version macros instead of hardcoded numbers This should make it easier when we rebase python to 3.8. There will be no 2.8, but for consistency, I've updated 27 as well. --- boost.spec | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/boost.spec b/boost.spec index 733300f..12e55f1 100644 --- a/boost.spec +++ b/boost.spec @@ -1228,13 +1228,13 @@ fi %if %{with python2} %files numpy2 %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy27.so.%{sonamever} +%{_libdir}/libboost_numpy%{python2_version_nodots}.so.%{sonamever} %endif %if %{with python3} %files numpy3 %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy37.so.%{sonamever} +%{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{sonamever} %endif %files test @@ -1249,23 +1249,23 @@ fi %if %{with python2} %files python2 %license LICENSE_1_0.txt -%{_libdir}/libboost_python27.so.%{sonamever} +%{_libdir}/libboost_python%{python2_version_nodots}.so.%{sonamever} %files python2-devel %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy27.so -%{_libdir}/libboost_python27.so +%{_libdir}/libboost_numpy%{python2_version_nodots}.so +%{_libdir}/libboost_python%{python2_version_nodots}.so %endif %if %{with python3} %files python3 %license LICENSE_1_0.txt -%{_libdir}/libboost_python37.so.%{sonamever} +%{_libdir}/libboost_python%{python3_version_nodots}.so.%{sonamever} %files python3-devel %license LICENSE_1_0.txt -%{_libdir}/libboost_numpy37.so -%{_libdir}/libboost_python37.so +%{_libdir}/libboost_numpy%{python3_version_nodots}.so +%{_libdir}/libboost_python%{python3_version_nodots}.so %endif %files random @@ -1386,12 +1386,12 @@ fi %files openmpi-python2 %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python27.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_mpi_python%{python2_version_nodots}.so.%{sonamever} %{python2_sitearch}/openmpi/boost/ %files openmpi-python2-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python27.so +%{_libdir}/openmpi/lib/libboost_mpi_python%{python2_version_nodots}.so %endif @@ -1399,12 +1399,12 @@ fi %files openmpi-python3 %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python37.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_mpi_python%{python3_version_nodots}.so.%{sonamever} %{python3_sitearch}/openmpi/boost/ %files openmpi-python3-devel %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python37.so +%{_libdir}/openmpi/lib/libboost_mpi_python%{python3_version_nodots}.so %endif @@ -1430,12 +1430,12 @@ fi %files mpich-python2 %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python27.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_mpi_python%{python2_version_nodots}.so.%{sonamever} %{python2_sitearch}/mpich/boost/ %files mpich-python2-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python27.so +%{_libdir}/mpich/lib/libboost_mpi_python%{python2_version_nodots}.so %endif @@ -1443,12 +1443,12 @@ fi %files mpich-python3 %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python37.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so.%{sonamever} %{python3_sitearch}/mpich/boost/ %files mpich-python3-devel %license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python37.so +%{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so %endif From e7f763888a4c28d0c8cfecf95487f48f0c7a3b6d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 12 Feb 2019 23:18:43 +0000 Subject: [PATCH 074/203] Patch Boost.Random to fix warning (#1673669) --- boost-1.69-random.patch | 22 ++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 boost-1.69-random.patch diff --git a/boost-1.69-random.patch b/boost-1.69-random.patch new file mode 100644 index 0000000..0a1d286 --- /dev/null +++ b/boost-1.69-random.patch @@ -0,0 +1,22 @@ +From 1be44d405e48a42a63bd8d2dae739560b486a55c Mon Sep 17 00:00:00 2001 +From: Nick Thompson +Date: Sun, 11 Feb 2018 15:02:43 -0600 +Subject: [PATCH] [ci skip] Remove deprecated header. + +--- + include/boost/random/detail/integer_log2.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/random/detail/integer_log2.hpp b/include/boost/random/detail/integer_log2.hpp +index 248243a4b..2e49f281f 100644 +--- a/include/boost/random/detail/integer_log2.hpp ++++ b/include/boost/random/detail/integer_log2.hpp +@@ -16,7 +16,7 @@ + + #include + #include +-#include ++#include + + namespace boost { + namespace random { diff --git a/boost.spec b/boost.spec index 12e55f1..9ffacba 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -144,6 +144,9 @@ Patch82: boost-1.66.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch83: boost-1.66.0-bjam-build-flags.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1673669 +Patch84: boost-1.69-random.patch + %bcond_with tests %bcond_with docs_generated @@ -751,6 +754,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch65 -p1 %patch82 -p1 %patch83 -p1 +%patch84 -p2 %build # Dump the versions being used into the build logs. @@ -1473,6 +1477,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Feb 12 2019 Jonathan Wakely - 1.69.0-4 +- Patch Boost.Random to fix warning (#1673669) + * Thu Jan 31 2019 Fedora Release Engineering - 1.69.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild From 8e32c40a85c38f0de08ef86336656c746e7c54c1 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Wed, 13 Feb 2019 19:39:13 -0700 Subject: [PATCH 075/203] Rebuild for openmpi 3.1.3 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 9ffacba..8eae8c7 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1477,6 +1477,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Feb 14 2019 Orion Poplawski - 1.69.0-5 +- Rebuild for openmpi 3.1.3 + * Tue Feb 12 2019 Jonathan Wakely - 1.69.0-4 - Patch Boost.Random to fix warning (#1673669) From 0f9795fc5c163da080677858f3514ffbea0f0937 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 14 Feb 2019 15:24:04 +0000 Subject: [PATCH 076/203] Add patch for out-of-bounds vector access in Boost.MPI --- boost-1.69-mpi-c_data.patch | 27 +++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 boost-1.69-mpi-c_data.patch diff --git a/boost-1.69-mpi-c_data.patch b/boost-1.69-mpi-c_data.patch new file mode 100644 index 0000000..857cca2 --- /dev/null +++ b/boost-1.69-mpi-c_data.patch @@ -0,0 +1,27 @@ +From dc708430bf5fd31d29da2e7e6b5fd20fe593e106 Mon Sep 17 00:00:00 2001 +From: Michael Kuron +Date: Thu, 14 Feb 2019 15:55:31 +0100 +Subject: [PATCH] mpi::detail::c_data needs to check for empty vectors + +If the standard library is configured to do range checks (-D _GLIBCXX_ASSERTIONS), accessing the zeroth element of a vector to get its address triggers an assertion. +--- + include/boost/mpi/detail/antiques.hpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/include/boost/mpi/detail/antiques.hpp b/include/boost/mpi/detail/antiques.hpp +index 0bd235b2..93b8efe9 100644 +--- a/include/boost/mpi/detail/antiques.hpp ++++ b/include/boost/mpi/detail/antiques.hpp +@@ -19,10 +19,10 @@ namespace detail { + // serve as an incentive to get rid of this when those compilers + // are dropped. + template +- T* c_data(std::vector& v) { return &(v[0]); } ++ T* c_data(std::vector& v) { if (v.empty()) return NULL; return &(v[0]); } + + template +- T const* c_data(std::vector const& v) { return &(v[0]); } ++ T const* c_data(std::vector const& v) { if (v.empty()) return NULL; return &(v[0]); } + + // Some old MPI implementation (OpenMPI 1.6 for example) have non + // conforming API w.r.t. constness. diff --git a/boost.spec b/boost.spec index 8eae8c7..3c47952 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -147,6 +147,9 @@ Patch83: boost-1.66.0-bjam-build-flags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1673669 Patch84: boost-1.69-random.patch +# https://github.com/boostorg/mpi/pull/81 +Patch85: boost-1.69-mpi-c_data.patch + %bcond_with tests %bcond_with docs_generated @@ -755,6 +758,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch82 -p1 %patch83 -p1 %patch84 -p2 +%patch85 -p2 %build # Dump the versions being used into the build logs. @@ -1477,6 +1481,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Feb 14 2019 Jonathan Wakely - 1.69.0-6 +- Add patch for out-of-bounds vector access in Boost.MPI + * Thu Feb 14 2019 Orion Poplawski - 1.69.0-5 - Rebuild for openmpi 3.1.3 From 5f1c9ef7fabc74315e22edb7a6ee7898cd83ac6d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 7 May 2019 10:59:35 +0100 Subject: [PATCH 077/203] Make main package obsolete old boost-signals subpackage (#1706079) --- boost.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 3c47952..80951ed 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -94,6 +94,8 @@ Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} +# Added for F30, remove for F32 +Obsoletes: %{name}-signals%{?_isa} < 1.69.0 BuildRequires: gcc-c++ BuildRequires: m4 @@ -1481,6 +1483,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue May 07 2019 Jonathan Wakely - 1.69.0-7 +- Make main package obsolete old boost-signals subpackage (#1706079) + * Thu Feb 14 2019 Jonathan Wakely - 1.69.0-6 - Add patch for out-of-bounds vector access in Boost.MPI From 0666fd79bad20373f176534aa717f6bb9d4f2b7b Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 10 May 2019 10:04:32 +0100 Subject: [PATCH 078/203] Fix Obsoletes tag to remove _isa (#1706079) --- boost.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 80951ed..89a554e 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -95,7 +95,7 @@ Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} # Added for F30, remove for F32 -Obsoletes: %{name}-signals%{?_isa} < 1.69.0 +Obsoletes: %{name}-signals < 1.69.0 BuildRequires: gcc-c++ BuildRequires: m4 @@ -1483,6 +1483,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri May 10 2019 Jonathan Wakely - 1.69.0-8 +- Fix Obsoletes tag to remove _isa (#1706079) + * Tue May 07 2019 Jonathan Wakely - 1.69.0-7 - Make main package obsolete old boost-signals subpackage (#1706079) From f5c0d413a7827d1531ae8b80f6fa30bb79813f39 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 24 Jul 2019 19:30:18 +0000 Subject: [PATCH 079/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 89a554e..a519689 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1483,6 +1483,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Wed Jul 24 2019 Fedora Release Engineering - 1.69.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + * Fri May 10 2019 Jonathan Wakely - 1.69.0-8 - Fix Obsoletes tag to remove _isa (#1706079) From 8aafa09ef70043474f8f4751fe7d64a2925891f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Sun, 18 Aug 2019 23:51:56 +0200 Subject: [PATCH 080/203] Rebuilt for Python 3.8 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index a519689..c2140a1 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1483,6 +1483,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sun Aug 18 2019 Miro Hrončok - 1.69.0-10 +- Rebuilt for Python 3.8 + * Wed Jul 24 2019 Fedora Release Engineering - 1.69.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild From 3458dcd53aa6a559bee254d70606c9d88f657c2e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Thu, 3 Oct 2019 13:51:17 +0200 Subject: [PATCH 081/203] Rebuilt for Python 3.8.0rc1 (#1748018) --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index c2140a1..5de6163 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1483,6 +1483,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Oct 03 2019 Miro Hrončok - 1.69.0-11 +- Rebuilt for Python 3.8.0rc1 (#1748018) + * Sun Aug 18 2019 Miro Hrončok - 1.69.0-10 - Rebuilt for Python 3.8 From b9f2e3cc4a80265a928918202d76e666795135d4 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Fri, 1 Nov 2019 15:56:05 +0000 Subject: [PATCH 082/203] Rebuild for ICU 65 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 5de6163..9f45593 100644 --- a/boost.spec +++ b/boost.spec @@ -45,7 +45,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1483,6 +1483,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Nov 01 2019 Pete Walter - 1.69.0-12 +- Rebuild for ICU 65 + * Thu Oct 03 2019 Miro Hrončok - 1.69.0-11 - Rebuilt for Python 3.8.0rc1 (#1748018) From 56941f6dac53d07dd3b5fcc29bc6ba1371cfd357 Mon Sep 17 00:00:00 2001 From: Denis Arnaud Date: Fri, 15 Nov 2019 20:04:20 +0100 Subject: [PATCH 083/203] Removed the Python2 sub-packages --- boost.spec | 225 ++--------------------------------------------------- 1 file changed, 7 insertions(+), 218 deletions(-) diff --git a/boost.spec b/boost.spec index 5de6163..05e1a2d 100644 --- a/boost.spec +++ b/boost.spec @@ -30,7 +30,6 @@ %bcond_without context %endif -%bcond_without python2 %bcond_without python3 %ifnarch %{ix86} x86_64 @@ -45,13 +44,14 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://sourceforge.net/projects/boost/files/%{real_name}/%{version}/%{toplev_dirname}.tar.bz2 +Source0: https://sourceforge.net/projects/%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2 +#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}-snapshot.tar.gz Source1: libboost_thread.so # Since Fedora 13, the Boost libraries are delivered with sonames @@ -94,18 +94,12 @@ Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} -# Added for F30, remove for F32 -Obsoletes: %{name}-signals < 1.69.0 BuildRequires: gcc-c++ BuildRequires: m4 BuildRequires: libstdc++-devel BuildRequires: bzip2-devel BuildRequires: zlib-devel -%if %{with python2} -BuildRequires: python2-devel -BuildRequires: python2-numpy -%endif %if %{with python3} BuildRequires: python3-devel BuildRequires: python3-numpy @@ -298,26 +292,6 @@ Summary: Math functions for boost TR1 library Run-time support for C99 and C++ TR1 C-style Functions from the math portion of Boost.TR1. -%if %{with python2} - -%package numpy2 -Summary: Run-time component of boost numpy library for Python 2 -Requires: %{name}-python2%{?_isa} = %{version}-%{release} -Requires: python2-numpy -# Added for F29, remove for F31: -Provides: %{name}-numpy%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-numpy < %{version}-%{release} - -%description numpy2 - -The Boost Python Library is a framework for interfacing Python and -C++. It allows you to quickly and seamlessly expose C++ classes, -functions and objects to Python, and vice versa, using no special -tools -- just your C++ compiler. This package contains run-time -support for the NumPy extension of the Boost Python Library for Python 2. - -%endif - %if %{with python3} %package numpy3 @@ -344,31 +318,6 @@ Run-time support of boost program options library, which allows program developers to obtain (name, value) pairs from the user, via conventional methods such as command-line and configuration file. -%if %{with python2} - -%package python2 -Summary: Run-time component of boost python library for Python 2 - -%description python2 - -The Boost Python Library is a framework for interfacing Python and -C++. It allows you to quickly and seamlessly expose C++ classes, -functions and objects to Python, and vice versa, using no special -tools -- just your C++ compiler. This package contains run-time -support for the Boost Python Library compiled for Python 2. - -%package python2-devel -Summary: Shared object symbolic links for Boost.Python 2 -Requires: %{name}-numpy2%{?_isa} = %{version}-%{release} -Requires: %{name}-python2%{?_isa} = %{version}-%{release} -Requires: %{name}-devel%{?_isa} = %{version}-%{release} - -%description python2-devel - -Shared object symbolic links for Python 2 variant of Boost.Python. - -%endif - %if %{with python3} %package python3 @@ -547,36 +496,6 @@ Requires: %{name}-graph-openmpi%{?_isa} = %{version}-%{release} Devel package for Boost.MPI-OpenMPI, a library providing a clean C++ API over the OpenMPI implementation of MPI. -%if %{with python2} - -%package openmpi-python2 -Summary: Python 2 run-time component of Boost.MPI library -Requires: %{name}-openmpi%{?_isa} = %{version}-%{release} -Requires: %{name}-python2%{?_isa} = %{version}-%{release} -Requires: %{name}-serialization%{?_isa} = %{version}-%{release} -Requires: python2-openmpi%{?_isa} -# Added for F29, remove for F31: -Provides: %{name}-openmpi-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-openmpi-python < %{version}-%{release} - -%description openmpi-python2 - -Python 2 support for Boost.MPI-OpenMPI, a library providing a clean C++ -API over the OpenMPI implementation of MPI. - -%package openmpi-python2-devel -Summary: Shared library symbolic links for Boost.MPI Python 2 component -Requires: %{name}-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-openmpi-python2%{?_isa} = %{version}-%{release} - -%description openmpi-python2-devel - -Devel package for the Python 2 interface of Boost.MPI-OpenMPI, a library -providing a clean C++ API over the OpenMPI implementation of MPI. - -%endif - %if %{with python3} %package openmpi-python3 @@ -643,36 +562,6 @@ Requires: %{name}-graph-mpich%{?_isa} = %{version}-%{release} Devel package for Boost.MPI-MPICH, a library providing a clean C++ API over the MPICH implementation of MPI. -%if %{with python2} - -%package mpich-python2 -Summary: Python run-time component of Boost.MPI library -Requires: %{name}-mpich%{?_isa} = %{version}-%{release} -Requires: %{name}-python2%{?_isa} = %{version}-%{release} -Requires: %{name}-serialization%{?_isa} = %{version}-%{release} -Requires: python2-mpich%{?_isa} -# Added for F29, remove for F31: -Provides: %{name}-mpich-python%{?_isa} = %{version}-%{release} -Obsoletes: %{name}-mpich-python < %{version}-%{release} - -%description mpich-python2 - -Python 2 support for Boost.MPI-MPICH, a library providing a clean C++ -API over the MPICH implementation of MPI. - -%package mpich-python2-devel -Summary: Shared library symbolic links for Boost.MPI Python 2 component -Requires: %{name}-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-mpich-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-mpich-python2%{?_isa} = %{version}-%{release} - -%description mpich-python2-devel - -Devel package for the Python 2 interface of Boost.MPI-MPICH, a library -providing a clean C++ API over the MPICH implementation of MPI. - -%endif - %if %{with python3} %package mpich-python3 @@ -764,9 +653,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %build # Dump the versions being used into the build logs. -%if %{with python2} -: PYTHON2_VERSION=%{python2_version} -%endif %if %{with python3} PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags) : PYTHON3_VERSION=%{python3_version} @@ -788,9 +674,6 @@ using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif -%if %{with python2} -using python : %{python2_version} : /usr/bin/python2 : /usr/include/python%{python2_version} : : : : ; -%endif EOF ./bootstrap.sh --with-toolset=gcc --with-icu @@ -806,14 +689,8 @@ echo ============================= build serial ================== %if !%{with context} --without-context --without-coroutine \ --without-fiber \ -%endif -%if !%{with python2} - --without-python \ %endif variant=release threading=multi debug-symbols=on pch=off \ -%if %{with python2} - python=%{python2_version} \ -%endif stage # See libs/thread/build/Jamfile.v2 for where this file comes from. @@ -868,13 +745,6 @@ module purge ||: %if %{with openmpi} %{_openmpi_load} -%if %{with python2} -echo ============================= build $MPI_COMPILER ================== -./b2 -d+2 -q %{?_smp_mflags} \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} stage -%endif %if %{with python3} echo ============================= build $MPI_COMPILER-py3 ================== @@ -892,13 +762,6 @@ export PATH=/bin${PATH:+:}$PATH # Build MPI parts of Boost with MPICH support %if %{with mpich} %{_mpich_load} -%if %{with python2} -echo ============================= build $MPI_COMPILER ================== -./b2 -d+2 -q %{?_smp_mflags} \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} stage -%endif %if %{with python3} echo ============================= build $MPI_COMPILER-py3 ================== @@ -934,20 +797,6 @@ module purge ||: %{_openmpi_load} # XXX We want to extract this from RPM flags # b2 instruction-set=i686 etc. -%if %{with python2} -echo ============================= install $MPI_COMPILER ================== -./b2 -q %{?_smp_mflags} \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ - --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} stage - -# Move Python module to proper location for automatic loading -mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost -touch ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ - ${RPM_BUILD_ROOT}%{python2_sitearch}/openmpi/boost/ -%endif %if %{with python3} echo ============================= install $MPI_COMPILER-py3 ================== @@ -974,20 +823,6 @@ export PATH=/bin${PATH:+:}$PATH %if %{with mpich} %{_mpich_load} -%if %{with python2} -echo ============================= install $MPI_COMPILER ================== -./b2 -q %{?_smp_mflags} \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ - --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python2_version} stage - -# Move Python module to proper location for automatic loading -mkdir -p ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost -touch ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ - ${RPM_BUILD_ROOT}%{python2_sitearch}/mpich/boost/ -%endif %if %{with python3} echo ============================= install $MPI_COMPILER-py3 ================== @@ -1018,16 +853,10 @@ echo ============================= install serial ================== %if !%{with context} --without-context --without-coroutine \ --without-fiber \ -%endif -%if !%{with python2} - --without-python \ %endif --prefix=$RPM_BUILD_ROOT%{_prefix} \ --libdir=$RPM_BUILD_ROOT%{_libdir} \ variant=release threading=multi debug-symbols=on pch=off \ -%if %{with python2} - python=%{python2_version} \ -%endif install # Override DSO symlink with a linker script. See the linker script @@ -1235,12 +1064,6 @@ fi %{_libdir}/libboost_math_tr1f.so.%{sonamever} %{_libdir}/libboost_math_tr1l.so.%{sonamever} -%if %{with python2} -%files numpy2 -%license LICENSE_1_0.txt -%{_libdir}/libboost_numpy%{python2_version_nodots}.so.%{sonamever} -%endif - %if %{with python3} %files numpy3 %license LICENSE_1_0.txt @@ -1256,17 +1079,6 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_program_options.so.%{sonamever} -%if %{with python2} -%files python2 -%license LICENSE_1_0.txt -%{_libdir}/libboost_python%{python2_version_nodots}.so.%{sonamever} - -%files python2-devel -%license LICENSE_1_0.txt -%{_libdir}/libboost_numpy%{python2_version_nodots}.so -%{_libdir}/libboost_python%{python2_version_nodots}.so -%endif - %if %{with python3} %files python3 %license LICENSE_1_0.txt @@ -1392,19 +1204,6 @@ fi %{_libdir}/openmpi/lib/libboost_mpi.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so -%if %{with python2} - -%files openmpi-python2 -%license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python%{python2_version_nodots}.so.%{sonamever} -%{python2_sitearch}/openmpi/boost/ - -%files openmpi-python2-devel -%license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_mpi_python%{python2_version_nodots}.so - -%endif - %if %{with python3} %files openmpi-python3 @@ -1436,19 +1235,6 @@ fi %{_libdir}/mpich/lib/libboost_mpi.so %{_libdir}/mpich/lib/libboost_graph_parallel.so -%if %{with python2} - -%files mpich-python2 -%license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python%{python2_version_nodots}.so.%{sonamever} -%{python2_sitearch}/mpich/boost/ - -%files mpich-python2-devel -%license LICENSE_1_0.txt -%{_libdir}/mpich/lib/libboost_mpi_python%{python2_version_nodots}.so - -%endif - %if %{with python3} %files mpich-python3 @@ -1483,6 +1269,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri Nov 15 2019 Denis Arnaud - 1.69.0-12 +- Removed the Python2 sub-packages + * Thu Oct 03 2019 Miro Hrončok - 1.69.0-11 - Rebuilt for Python 3.8.0rc1 (#1748018) @@ -1515,7 +1304,7 @@ fi * Sat Dec 15 2018 Denis Arnaud - 1.69.0-1 - Rebase to 1.69.0 -- Dropped library: Boost.Signals (now replaced by header-only Boost.Signlas2) +- Dropped library: Boost.Signals (now replaced by header-only Boost.Signals2) * Sat Dec 01 2018 Denis Arnaud - 1.68.0-1 - Rebase to 1.68.0 From 1ab43be260ad88e304f88b5a114dee9357fae6f3 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 28 Jan 2020 13:12:30 +0000 Subject: [PATCH 084/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index e202833..45962b2 100644 --- a/boost.spec +++ b/boost.spec @@ -44,7 +44,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 13%{?dist} +Release: 14%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -1269,6 +1269,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue Jan 28 2020 Fedora Release Engineering - 1.69.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + * Fri Nov 15 2019 Denis Arnaud - 1.69.0-13 - Removed the Python2 sub-packages From 193ea1c20725126f99d669169348360b6a6eb44d Mon Sep 17 00:00:00 2001 From: "Kaleb S. KEITHLEY" Date: Fri, 14 Feb 2020 15:13:08 +0000 Subject: [PATCH 085/203] Update boost.spec for f33/rawhide ceph-15, landing in needs libboost-context seems to build okay. see scratch build at https://koji.fedoraproject.org/koji/taskinfo?taskID=41495195 --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 45962b2..8924579 100644 --- a/boost.spec +++ b/boost.spec @@ -24,7 +24,7 @@ %endif %endif -%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 +%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x %bcond_with context %else %bcond_without context From d5a194094a1c648cd991ae3a490b9ab70e6fa6a3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 30 Mar 2020 15:22:56 +0100 Subject: [PATCH 086/203] Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) --- boost-1.69-format-allocator.patch | 28 ++++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 boost-1.69-format-allocator.patch diff --git a/boost-1.69-format-allocator.patch b/boost-1.69-format-allocator.patch new file mode 100644 index 0000000..28c43a8 --- /dev/null +++ b/boost-1.69-format-allocator.patch @@ -0,0 +1,28 @@ +--- boost_1_69_0/boost/format/alt_sstream_impl.hpp~ 2020-03-30 15:20:18.565658757 +0100 ++++ boost_1_69_0/boost/format/alt_sstream_impl.hpp 2020-03-30 15:20:33.768636162 +0100 +@@ -40,8 +40,11 @@ + #ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC + void *vd_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0); + Ch *new_ptr = static_cast(vd_ptr); +-#else ++#elif defined BOOST_NO_CXX11_ALLOCATOR + Ch *new_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0); ++#else ++ Ch *new_ptr = std::allocator_traits::allocate(alloc_, ++ sz, is_allocated_? eback() : 0); + #endif + // if this didnt throw, we're safe, update the buffer + dealloc(); +@@ -257,8 +260,11 @@ + #ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC + void *vdptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); + newptr = static_cast(vdptr); +-#else ++#elif defined BOOST_NO_CXX11_ALLOCATOR + newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); ++#else ++ newptr = std::allocator_traits::allocate(alloc_, ++ new_size, is_allocated_? oldptr : 0); + #endif + } + diff --git a/boost.spec b/boost.spec index 8924579..c8c5960 100644 --- a/boost.spec +++ b/boost.spec @@ -44,7 +44,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 14%{?dist} +Release: 15%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -146,6 +146,9 @@ Patch84: boost-1.69-random.patch # https://github.com/boostorg/mpi/pull/81 Patch85: boost-1.69-mpi-c_data.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1818723 +Patch86: boost-1.69-format-allocator.patch + %bcond_with tests %bcond_with docs_generated @@ -650,6 +653,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch83 -p1 %patch84 -p2 %patch85 -p2 +%patch86 -p1 %build # Dump the versions being used into the build logs. @@ -1269,6 +1273,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Mar 30 2020 Jonathan Wakely - 1.69.0-15 +- Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) + * Tue Jan 28 2020 Fedora Release Engineering - 1.69.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild From eefba7967274ed2bee2b74909f8c96874a9d4c27 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 2 Apr 2020 17:13:53 +0100 Subject: [PATCH 087/203] Drop boost-1.57.0-mpl-print.patch patch that doesn't work This patch is supposed to make boost::mpl::print issue a warning with GCC, but actually it prevents it from warning, whereas the upstream code does warn. --- boost-1.57.0-mpl-print.patch | 31 ------------------------------- boost.spec | 9 ++++----- 2 files changed, 4 insertions(+), 36 deletions(-) delete mode 100644 boost-1.57.0-mpl-print.patch diff --git a/boost-1.57.0-mpl-print.patch b/boost-1.57.0-mpl-print.patch deleted file mode 100644 index 561cef1..0000000 --- a/boost-1.57.0-mpl-print.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff -up boost_1_57_0/boost/mpl/print.hpp\~ boost_1_57_0/boost/mpl/print.hpp ---- boost_1_57_0/boost/mpl/print.hpp~ 2014-07-09 23:12:31.000000000 +0200 -+++ boost_1_57_0/boost/mpl/print.hpp 2015-01-20 12:44:59.621400948 +0100 -@@ -52,16 +52,15 @@ struct print - enum { n = sizeof(T) + -1 }; - #elif defined(__MWERKS__) - void f(int); --#else -- enum { -- n = --# if defined(__EDG_VERSION__) -- aux::dependent_unsigned::value > -1 --# else -- sizeof(T) > -1 --# endif -- }; --#endif -+#elif defined(__EDG_VERSION__) -+ enum { n = aux::dependent_unsigned::value > -1 }; -+#elif defined(BOOST_GCC) -+ enum { n1 }; -+ enum { n2 }; -+ enum { n = n1 != n2 }; -+#else -+ enum { n = sizeof(T) > -1 }; -+#endif - }; - - #if defined(BOOST_MSVC) - -Diff finished. Tue Jan 20 12:45:03 2015 diff --git a/boost.spec b/boost.spec index c8c5960..74c122c 100644 --- a/boost.spec +++ b/boost.spec @@ -44,7 +44,7 @@ Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 %global version_enc 1_69_0 %global version_suffix 169 -Release: 15%{?dist} +Release: 16%{?dist} License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} @@ -121,9 +121,6 @@ Patch5: boost-1.48.0-add-bjam-man-page.patch # https://svn.boost.org/trac/boost/ticket/6701 Patch15: boost-1.58.0-pool.patch -# https://svn.boost.org/trac/boost/ticket/5637 -Patch25: boost-1.57.0-mpl-print.patch - # https://svn.boost.org/trac/boost/ticket/9038 Patch51: boost-1.58.0-pool-test_linking.patch @@ -644,7 +641,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch4 -p1 %patch5 -p1 %patch15 -p0 -%patch25 -p1 %patch51 -p1 %patch61 -p1 %patch62 -p1 @@ -1273,6 +1269,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Thu Apr 02 2020 Jonathan Wakely - 1.69.0-16 +- Drop boost-1.57.0-mpl-print.patch patch that doesn't work + * Mon Mar 30 2020 Jonathan Wakely - 1.69.0-15 - Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) From c808f656254f333fe5adfd64d08ca926afa94c7c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 2 Apr 2020 17:44:21 +0100 Subject: [PATCH 088/203] Remove unused patches from the repo The spec file stopped using these patches years ago. --- boost-1.53.0-fpclassify-unused_typedef.patch | 80 ----------- boost-1.53.0-graph-unused_typedef.patch | 130 ------------------ ...t-1.53.0-lexical_cast-unused_typedef.patch | 13 -- boost-1.53.0-math-unused_typedef-3.patch | 46 ------- boost-1.53.0-regex-unused_typedef.patch | 65 --------- ...-1.53.0-static_assert-unused_typedef.patch | 30 ---- boost-1.53.0-thread-unused_typedef.patch | 26 ---- boost-1.54.0-locale-unused_typedef.patch | 11 -- boost-1.54.0-random-unused_typedef.patch | 24 ---- 9 files changed, 425 deletions(-) delete mode 100644 boost-1.53.0-fpclassify-unused_typedef.patch delete mode 100644 boost-1.53.0-graph-unused_typedef.patch delete mode 100644 boost-1.53.0-lexical_cast-unused_typedef.patch delete mode 100644 boost-1.53.0-math-unused_typedef-3.patch delete mode 100644 boost-1.53.0-regex-unused_typedef.patch delete mode 100644 boost-1.53.0-static_assert-unused_typedef.patch delete mode 100644 boost-1.53.0-thread-unused_typedef.patch delete mode 100644 boost-1.54.0-locale-unused_typedef.patch delete mode 100644 boost-1.54.0-random-unused_typedef.patch diff --git a/boost-1.53.0-fpclassify-unused_typedef.patch b/boost-1.53.0-fpclassify-unused_typedef.patch deleted file mode 100644 index dddd3a8..0000000 --- a/boost-1.53.0-fpclassify-unused_typedef.patch +++ /dev/null @@ -1,80 +0,0 @@ -diff -up boost_1_53_0/boost/math/special_functions/sign.hpp\~ boost_1_53_0/boost/math/special_functions/sign.hpp ---- boost_1_53_0/boost/math/special_functions/sign.hpp~ 2011-05-17 14:19:17.000000000 +0200 -+++ boost_1_53_0/boost/math/special_functions/sign.hpp 2013-07-22 23:24:39.751342557 +0200 -@@ -110,7 +110,6 @@ template int (signbit)(T x) - { - typedef typename detail::fp_traits::type traits; - typedef typename traits::method method; -- typedef typename boost::is_floating_point::type fp_tag; - return detail::signbit_impl(x, method()); - } - -@@ -124,7 +123,6 @@ template T (changesign)(const T - { //!< \brief return unchanged binary pattern of x, except for change of sign bit. - typedef typename detail::fp_traits::sign_change_type traits; - typedef typename traits::method method; -- typedef typename boost::is_floating_point::type fp_tag; - - return detail::changesign_impl(x, method()); - } -diff -up boost_1_53_0/boost/math/special_functions/fpclassify.hpp~ boost_1_53_0/boost/math/special_functions/fpclassify.hpp ---- boost_1_53_0/boost/math/special_functions/fpclassify.hpp~ 2012-12-12 19:17:22.000000000 +0100 -+++ boost_1_53_0/boost/math/special_functions/fpclassify.hpp 2013-07-22 12:07:59.478713488 +0200 -@@ -327,7 +327,6 @@ inline bool (isfinite)(T x) - { //!< \brief return true if floating-point type t is finite. - typedef typename detail::fp_traits::type traits; - typedef typename traits::method method; -- typedef typename boost::is_floating_point::type fp_tag; - typedef typename tools::promote_args::type value_type; - return detail::isfinite_impl(static_cast(x), method()); - } -@@ -338,7 +338,6 @@ inline bool (isfinite)(long double x) - { //!< \brief return true if floating-point type t is finite. - typedef detail::fp_traits::type traits; - typedef traits::method method; -- typedef boost::is_floating_point::type fp_tag; - typedef long double value_type; - return detail::isfinite_impl(static_cast(x), method()); - } -@@ -398,7 +397,6 @@ inline bool (isnormal)(T x) - { - typedef typename detail::fp_traits::type traits; - typedef typename traits::method method; -- typedef typename boost::is_floating_point::type fp_tag; - typedef typename tools::promote_args::type value_type; - return detail::isnormal_impl(static_cast(x), method()); - } -@@ -409,7 +408,6 @@ inline bool (isnormal)(long double x) - { - typedef detail::fp_traits::type traits; - typedef traits::method method; -- typedef boost::is_floating_point::type fp_tag; - typedef long double value_type; - return detail::isnormal_impl(static_cast(x), method()); - } -@@ -487,7 +485,6 @@ inline bool (isinf)(T x) - { - typedef typename detail::fp_traits::type traits; - typedef typename traits::method method; -- typedef typename boost::is_floating_point::type fp_tag; - typedef typename tools::promote_args::type value_type; - return detail::isinf_impl(static_cast(x), method()); - } -@@ -498,7 +496,6 @@ inline bool (isinf)(long double x) - { - typedef detail::fp_traits::type traits; - typedef traits::method method; -- typedef boost::is_floating_point::type fp_tag; - typedef long double value_type; - return detail::isinf_impl(static_cast(x), method()); - } -@@ -570,7 +567,6 @@ inline bool (isnan)(T x) - { //!< \brief return true if floating-point type t is NaN (Not A Number). - typedef typename detail::fp_traits::type traits; - typedef typename traits::method method; -- typedef typename boost::is_floating_point::type fp_tag; - return detail::isnan_impl(x, method()); - } - - -Diff finished. Mon Jul 22 12:09:24 2013 diff --git a/boost-1.53.0-graph-unused_typedef.patch b/boost-1.53.0-graph-unused_typedef.patch deleted file mode 100644 index 697714f..0000000 --- a/boost-1.53.0-graph-unused_typedef.patch +++ /dev/null @@ -1,130 +0,0 @@ -diff -urp boost_1_54_0-orig/boost/graph/breadth_first_search.hpp boost_1_54_0/boost/graph/breadth_first_search.hpp ---- boost_1_54_0-orig/boost/graph/breadth_first_search.hpp 2013-07-23 00:47:43.418886551 +0200 -+++ boost_1_54_0/boost/graph/breadth_first_search.hpp 2013-07-23 00:50:40.339958756 +0200 -@@ -64,7 +64,6 @@ namespace boost { - BOOST_CONCEPT_ASSERT(( IncidenceGraphConcept )); - typedef graph_traits GTraits; - typedef typename GTraits::vertex_descriptor Vertex; -- typedef typename GTraits::edge_descriptor Edge; - BOOST_CONCEPT_ASSERT(( BFSVisitorConcept )); - BOOST_CONCEPT_ASSERT(( ReadWritePropertyMapConcept )); - typedef typename property_traits::value_type ColorValue; -diff -urp boost_1_53_0-orig/boost/graph/compressed_sparse_row_graph.hpp boost_1_53_0/boost/graph/compressed_sparse_row_graph.hpp ---- boost_1_53_0-orig/boost/graph/compressed_sparse_row_graph.hpp 2013-07-23 01:32:19.273266030 +0200 -+++ boost_1_53_0/boost/graph/compressed_sparse_row_graph.hpp 2013-07-23 01:34:15.202970721 +0200 -@@ -642,8 +642,6 @@ class compressed_sparse_row_graph::vertex_descriptor vertex_t; -- typedef typename boost::graph_traits::vertices_size_type vertex_num; -- typedef typename boost::graph_traits::edges_size_type edge_num; - typedef std::vector > edge_vector_t; - edge_vector_t new_edges(first, last); - if (new_edges.empty()) return; -@@ -666,8 +664,6 @@ class compressed_sparse_row_graph::vertex_descriptor vertex_t; -- typedef typename boost::graph_traits::vertices_size_type vertex_num; -- typedef typename boost::graph_traits::edges_size_type edge_num; - typedef std::pair vertex_pair; - typedef std::vector< - boost::tuple - in_edges(Vertex v, const BOOST_BIDIR_CSR_GRAPH_TYPE& g) - { -- typedef typename BOOST_BIDIR_CSR_GRAPH_TYPE::edge_descriptor ed; - typedef typename BOOST_BIDIR_CSR_GRAPH_TYPE::in_edge_iterator it; - EdgeIndex v_row_start = g.m_backward.m_rowstart[v]; - EdgeIndex next_row_start = g.m_backward.m_rowstart[v + 1]; -@@ -1368,7 +1363,6 @@ put(Tag tag, - typename property_map::key_type k, - typename lookup_one_property::plist_type, Tag>::type val) { - typedef typename property_map::all_tag all_tag; -- typedef typename property_map::type outer_pm; - lookup_one_property::plist_type, Tag>::lookup(get(all_tag(), g, k), tag) = val; - } - -diff -urp boost_1_53_0-orig/boost/graph/detail/adjacency_list.hpp boost_1_53_0/boost/graph/detail/adjacency_list.hpp ---- boost_1_53_0-orig/boost/graph/detail/adjacency_list.hpp 2013-07-23 01:32:19.390266741 +0200 -+++ boost_1_53_0/boost/graph/detail/adjacency_list.hpp 2013-07-23 01:34:15.275971164 +0200 -@@ -634,7 +634,6 @@ namespace boost { - directed_graph_helper& g_) - { - typedef typename Config::graph_type graph_type; -- typedef typename Config::edge_parallel_category Cat; - graph_type& g = static_cast(g_); - g.out_edge_list(u).clear(); - // clear() should be a req of Sequence and AssociativeContainer, -@@ -781,7 +780,6 @@ namespace boost { - typedef typename Graph::global_edgelist_selector EdgeListS; - BOOST_STATIC_ASSERT((!is_same::value)); - -- typedef typename EdgeList::value_type StoredEdge; - typename EdgeList::iterator i = el.begin(), end = el.end(); - for (; i != end; ++i) { - if ((*i).get_target() == v) { -@@ -986,7 +984,6 @@ namespace boost { - BOOST_STATIC_ASSERT((!is_same::value)); - - typedef typename Config::graph_type graph_type; -- typedef typename Config::edge_parallel_category Cat; - graph_type& g = static_cast(g_); - while (true) { - typename Config::out_edge_iterator ei, ei_end; -@@ -1588,7 +1585,6 @@ namespace boost { - typedef typename Config::graph_type Graph; - typedef typename Config::StoredEdge StoredEdge; - const Graph& cg = static_cast(g_); -- typedef typename Config::out_edge_iterator out_edge_iterator; - const typename Config::OutEdgeList& el = cg.out_edge_list(u); - typename Config::OutEdgeList::const_iterator it = graph_detail:: - find(el, StoredEdge(v)); -diff -urp boost_1_53_0-orig/boost/graph/detail/compressed_sparse_row_struct.hpp boost_1_53_0/boost/graph/detail/compressed_sparse_row_struct.hpp ---- boost_1_53_0-orig/boost/graph/detail/compressed_sparse_row_struct.hpp 2013-07-23 01:32:19.395266772 +0200 -+++ boost_1_53_0/boost/graph/detail/compressed_sparse_row_struct.hpp 2013-07-23 01:34:15.278971182 +0200 -@@ -218,8 +218,6 @@ namespace detail { - // the user has supplied the number of edges. - edges_size_type numedges = numedges_or_zero; - if (numedges == 0) { -- typedef typename std::iterator_traits::iterator_category -- category; - numedges = boost::graph::detail::reserve_count_for_single_pass(edge_begin, edge_end); - } - m_column.clear(); -@@ -313,7 +311,6 @@ namespace detail { - inherited_edge_properties::resize(numedges); - EdgeIndex current_edge = 0; - typedef typename boost::graph_traits::vertex_descriptor g_vertex; -- typedef typename boost::graph_traits::edge_descriptor g_edge; - typedef typename boost::graph_traits::out_edge_iterator - g_out_edge_iter; - -@@ -347,7 +344,6 @@ namespace detail { - // Flip sequence - BidirectionalIterator first(last_sorted); - BidirectionalIterator last(first_sorted); -- typedef Vertex vertex_t; - typedef Vertex vertex_num; - typedef EdgeIndex edge_num; - edge_num new_edge_count = std::distance(first, last); -diff -urp boost_1_53_0-orig/boost/graph/detail/histogram_sort.hpp boost_1_53_0/boost/graph/detail/histogram_sort.hpp ---- boost_1_53_0-orig/boost/graph/detail/histogram_sort.hpp 2013-07-23 01:32:19.364266583 +0200 -+++ boost_1_53_0/boost/graph/detail/histogram_sort.hpp 2013-07-23 01:34:15.279971188 +0200 -@@ -159,7 +159,6 @@ histogram_sort_inplace(KeyIterator key_b - Value1Iter values1, - KeyTransform key_transform) { - -- typedef NumKeys vertices_size_type; - typedef typename std::iterator_traits::value_type EdgeIndex; - - // 1. Copy m_rowstart (except last element) to get insert positions -@@ -194,7 +193,6 @@ histogram_sort_inplace(KeyIterator key_b - Value2Iter values2, - KeyTransform key_transform) { - -- typedef NumKeys vertices_size_type; - typedef typename std::iterator_traits::value_type EdgeIndex; - - // 1. Copy m_rowstart (except last element) to get insert positions diff --git a/boost-1.53.0-lexical_cast-unused_typedef.patch b/boost-1.53.0-lexical_cast-unused_typedef.patch deleted file mode 100644 index a93c0ee..0000000 --- a/boost-1.53.0-lexical_cast-unused_typedef.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff -up boost_1_53_0/boost/lexical_cast.hpp\~ boost_1_53_0/boost/lexical_cast.hpp ---- boost_1_53_0/boost/lexical_cast.hpp~ 2012-12-29 15:41:23.000000000 +0100 -+++ boost_1_53_0/boost/lexical_cast.hpp 2013-07-22 23:27:48.841566845 +0200 -@@ -865,7 +865,6 @@ namespace boost { - #ifndef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS - BOOST_STATIC_ASSERT(!std::numeric_limits::is_signed); - #endif -- typedef typename Traits::int_type int_type; - CharT const czero = lcast_char_constants::zero; - --end; - value = 0; - -Diff finished. Mon Jul 22 23:28:02 2013 diff --git a/boost-1.53.0-math-unused_typedef-3.patch b/boost-1.53.0-math-unused_typedef-3.patch deleted file mode 100644 index f8b4854..0000000 --- a/boost-1.53.0-math-unused_typedef-3.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff -urp boost_1_53_0-orig/boost/math/special_functions/detail/igamma_inverse.hpp boost_1_53_0/boost/math/special_functions/detail/igamma_inverse.hpp ---- boost_1_53_0-orig/boost/math/special_functions/detail/igamma_inverse.hpp 2013-07-23 01:32:21.874281840 +0200 -+++ boost_1_53_0/boost/math/special_functions/detail/igamma_inverse.hpp 2013-07-23 01:34:15.291971260 +0200 -@@ -341,7 +341,6 @@ struct gamma_p_inverse_func - // flag is set, then Q(x) - q and it's derivatives. - // - typedef typename policies::evaluation::type value_type; -- typedef typename lanczos::lanczos::type evaluation_type; - typedef typename policies::normalise< - Policy, - policies::promote_float, -diff -urp boost_1_53_0-orig/boost/math/special_functions/gamma.hpp boost_1_53_0/boost/math/special_functions/gamma.hpp ---- boost_1_53_0-orig/boost/math/special_functions/gamma.hpp 2013-07-23 01:32:21.824281537 +0200 -+++ boost_1_53_0/boost/math/special_functions/gamma.hpp 2013-07-23 01:34:15.322971451 +0200 -@@ -1360,7 +1360,6 @@ inline typename tools::promote_args::type result_type; - typedef typename policies::evaluation::type value_type; -- typedef typename lanczos::lanczos::type evaluation_type; - typedef typename policies::normalise< - Policy, - policies::promote_float, -@@ -1489,7 +1488,6 @@ inline typename tools::promote_args::type result_type; - typedef typename policies::evaluation::type value_type; -- typedef typename lanczos::lanczos::type evaluation_type; - typedef typename policies::normalise< - Policy, - policies::promote_float, -@@ -1520,7 +1518,6 @@ inline typename tools::promote_args::type result_type; - typedef typename policies::evaluation::type value_type; -- typedef typename lanczos::lanczos::type evaluation_type; - typedef typename policies::normalise< - Policy, - policies::promote_float, -@@ -1551,7 +1548,6 @@ inline typename tools::promote_args::type result_type; - typedef typename policies::evaluation::type value_type; -- typedef typename lanczos::lanczos::type evaluation_type; - typedef typename policies::normalise< - Policy, - policies::promote_float, diff --git a/boost-1.53.0-regex-unused_typedef.patch b/boost-1.53.0-regex-unused_typedef.patch deleted file mode 100644 index d10b476..0000000 --- a/boost-1.53.0-regex-unused_typedef.patch +++ /dev/null @@ -1,65 +0,0 @@ -diff -up ./boost/regex/icu.hpp~ ./boost/regex/icu.hpp ---- ./boost/regex/icu.hpp~ 2011-10-16 14:19:37.000000000 +0200 -+++ ./boost/regex/icu.hpp 2013-07-22 23:32:44.346321967 +0200 -@@ -423,7 +423,6 @@ bool do_regex_match(BidiIterator first, - { - typedef u16_to_u32_iterator conv_type; - typedef match_results match_type; -- typedef typename match_type::allocator_type alloc_type; - match_type what; - bool result = ::boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); - // copy results across to m: -@@ -439,7 +438,6 @@ bool do_regex_match(BidiIterator first, - { - typedef u8_to_u32_iterator conv_type; - typedef match_results match_type; -- typedef typename match_type::allocator_type alloc_type; - match_type what; - bool result = ::boost::regex_match(conv_type(first, first, last), conv_type(last, first, last), what, e, flags); - // copy results across to m: -@@ -598,7 +596,6 @@ bool do_regex_search(BidiIterator first, - { - typedef u16_to_u32_iterator conv_type; - typedef match_results match_type; -- typedef typename match_type::allocator_type alloc_type; - match_type what; - bool result = ::boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); - // copy results across to m: -@@ -615,7 +612,6 @@ bool do_regex_search(BidiIterator first, - { - typedef u8_to_u32_iterator conv_type; - typedef match_results match_type; -- typedef typename match_type::allocator_type alloc_type; - match_type what; - bool result = ::boost::regex_search(conv_type(first, first, last), conv_type(last, first, last), what, e, flags, conv_type(base)); - // copy results across to m: -diff -up ./boost/regex/v4/regex_format.hpp~ ./boost/regex/v4/regex_format.hpp ---- ./boost/regex/v4/regex_format.hpp~ 2012-05-24 12:03:48.000000000 +0200 -+++ ./boost/regex/v4/regex_format.hpp 2013-07-22 23:31:06.466740621 +0200 -@@ -1064,7 +1064,6 @@ struct format_functor_c_string - template - OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits& t = Traits()) - { -- typedef typename Match::char_type char_type; - const charT* end = func; - while(*end) ++end; - return regex_format_imp(i, m, func, end, f, t); -@@ -1083,7 +1082,6 @@ struct format_functor_container - template - OutputIter operator()(const Match& m, OutputIter i, boost::regex_constants::match_flag_type f, const Traits& t = Traits()) - { -- typedef typename Match::char_type char_type; - return re_detail::regex_format_imp(i, m, func.begin(), func.end(), f, t); - } - private: -diff -up ./boost/regex/v4/regex_split.hpp~ ./boost/regex/v4/regex_split.hpp ---- ./boost/regex/v4/regex_split.hpp~ 2007-11-25 19:07:19.000000000 +0100 -+++ ./boost/regex/v4/regex_split.hpp 2013-07-22 23:31:29.098875039 +0200 -@@ -107,7 +107,6 @@ std::size_t regex_split(OutputIterator o - std::size_t max_split) - { - typedef typename std::basic_string::const_iterator ci_t; -- typedef typename match_results::allocator_type match_allocator; - ci_t last = s.begin(); - std::size_t init_size = max_split; - re_detail::split_pred pred(&last, &out, &max_split); diff --git a/boost-1.53.0-static_assert-unused_typedef.patch b/boost-1.53.0-static_assert-unused_typedef.patch deleted file mode 100644 index c4157d1..0000000 --- a/boost-1.53.0-static_assert-unused_typedef.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff -up boost_1_53_0/boost/static_assert.hpp\~ boost_1_53_0/boost/static_assert.hpp ---- boost_1_53_0/boost/static_assert.hpp~ 2012-12-11 15:42:26.000000000 +0100 -+++ boost_1_53_0/boost/static_assert.hpp 2013-07-19 14:15:59.504039071 +0200 -@@ -43,6 +43,14 @@ - #else - # define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x) - #endif -+// -+// If the compiler warns about unused typedefs then enable this: -+// -+#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7))) -+# define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused)) -+#else -+# define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE -+#endif - - #ifndef BOOST_NO_CXX11_STATIC_ASSERT - # define BOOST_STATIC_ASSERT( B ) static_assert(B, #B) -@@ -122,7 +130,8 @@ template struct static_assert_tes - #define BOOST_STATIC_ASSERT( B ) \ - typedef ::boost::static_assert_test<\ - sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\ -- BOOST_JOIN(boost_static_assert_typedef_, __LINE__) -+ BOOST_JOIN(boost_static_assert_typedef_, __LINE__) \ -+ BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE - #endif - - #else - -Diff finished. Fri Jul 19 14:16:04 2013 diff --git a/boost-1.53.0-thread-unused_typedef.patch b/boost-1.53.0-thread-unused_typedef.patch deleted file mode 100644 index 3fd12c2..0000000 --- a/boost-1.53.0-thread-unused_typedef.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -up boost_1_53_0/boost/thread/future.hpp\~ boost_1_53_0/boost/thread/future.hpp ---- boost_1_53_0/boost/thread/future.hpp~ 2012-12-16 20:01:45.000000000 +0100 -+++ boost_1_53_0/boost/thread/future.hpp 2013-07-23 16:50:27.044995968 +0200 -@@ -2911,10 +2913,6 @@ namespace boost - { - typedef typename boost::result_of::type()>::type R; - typedef packaged_task packaged_task_type; -- -- typedef detail::async_func::type> BF; -- typedef typename BF::result_type Rp; -- - #endif - #else - template -@@ -2925,9 +2924,6 @@ namespace boost - { - typedef typename boost::result_of::type()>::type R; - typedef packaged_task packaged_task_type; -- -- typedef detail::async_func::type> BF; -- typedef typename BF::result_type Rp; - #endif - - if (int(policy) & int(launch::async)) - -Diff finished. Tue Jul 23 16:50:30 2013 diff --git a/boost-1.54.0-locale-unused_typedef.patch b/boost-1.54.0-locale-unused_typedef.patch deleted file mode 100644 index b7c9128..0000000 --- a/boost-1.54.0-locale-unused_typedef.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -urp boost_1_54_0-orig/boost/locale/boundary/segment.hpp boost_1_54_0/boost/locale/boundary/segment.hpp ---- boost_1_54_0-orig/boost/locale/boundary/segment.hpp 2013-07-23 00:47:27.020787174 +0200 -+++ boost_1_54_0/boost/locale/boundary/segment.hpp 2013-07-23 00:50:40.382959016 +0200 -@@ -27,7 +27,6 @@ namespace boundary { - int compare_text(LeftIterator l_begin,LeftIterator l_end,RightIterator r_begin,RightIterator r_end) - { - typedef LeftIterator left_iterator; -- typedef RightIterator right_iterator; - typedef typename std::iterator_traits::value_type char_type; - typedef std::char_traits traits; - while(l_begin!=l_end && r_begin!=r_end) { diff --git a/boost-1.54.0-random-unused_typedef.patch b/boost-1.54.0-random-unused_typedef.patch deleted file mode 100644 index fff4226..0000000 --- a/boost-1.54.0-random-unused_typedef.patch +++ /dev/null @@ -1,24 +0,0 @@ -Index: boost/random/generate_canonical.hpp -=================================================================== ---- boost/random/generate_canonical.hpp (revision 85073) -+++ boost/random/generate_canonical.hpp (working copy) -@@ -54,7 +54,6 @@ - using std::floor; - BOOST_ASSERT((g.min)() == 0); - BOOST_ASSERT((g.max)() == 1); -- typedef typename URNG::result_type base_result; - std::size_t digits = std::numeric_limits::digits; - std::size_t engine_bits = detail::generator_bits::value(); - std::size_t b = (std::min)(bits, digits); -Index: boost/random/uniform_real_distribution.hpp -=================================================================== ---- boost/random/uniform_real_distribution.hpp (revision 85073) -+++ boost/random/uniform_real_distribution.hpp (working copy) -@@ -36,7 +36,6 @@ - { - for(;;) { - typedef T result_type; -- typedef typename Engine::result_type base_result; - result_type numerator = static_cast(eng() - (eng.min)()); - result_type divisor = static_cast((eng.max)() - (eng.min)()); - BOOST_ASSERT(divisor > 0); From a0e9e6a602783f74a9187bfcf4b885ff27c434bd Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 2 Apr 2020 17:54:14 +0100 Subject: [PATCH 089/203] Remove vestigial parts of separate python2/python3 build The %build and %install steps still build the py3 pieces separately, which is no longer necessary now that we don't build both py2 and py3 subpackages. --- boost.spec | 75 +++++++++++++++--------------------------------------- 1 file changed, 21 insertions(+), 54 deletions(-) diff --git a/boost.spec b/boost.spec index 74c122c..0f73794 100644 --- a/boost.spec +++ b/boost.spec @@ -676,6 +676,12 @@ using mpi ; %endif EOF +%if %{with python3} +cat >> ./tools/build/src/user-config.jam << EOF +using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : : ${PYTHON3_ABIFLAGS} ; +EOF +%endif + ./bootstrap.sh --with-toolset=gcc --with-icu # N.B. When we build the following with PCH, parts of boost (math @@ -691,6 +697,9 @@ echo ============================= build serial ================== --without-fiber \ %endif variant=release threading=multi debug-symbols=on pch=off \ +%if %{with python3} + python=%{python3_version} \ +%endif stage # See libs/thread/build/Jamfile.v2 for where this file comes from. @@ -704,37 +713,6 @@ fi m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ %{SOURCE1} > $(basename %{SOURCE1}) -%if %{with python3} - -# Previously, we built python 2.x and 3.x interfaces simultaneously. -# However, this does not work once trying to build other Python components -# such as libboost_numpy. Therefore, we build for each separately, while -# minimizing duplicate compilation as much as possible. - -cat > python3-config.jam << "EOF" -import os ; -local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; -local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; - -using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; -%if %{with openmpi} || %{with mpich} -using mpi ; -%endif -EOF - -cat >> python3-config.jam << EOF -using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : : ${PYTHON3_ABIFLAGS} ; -EOF - -echo ============================= build serial-py3 ================== -./b2 -d+2 -q %{?_smp_mflags} \ - --user-config=./python3-config.jam \ - --with-python --build-dir=serial-py3 \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python3_version} stage - -%endif - # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} @@ -747,10 +725,9 @@ module purge ||: %{_openmpi_load} %if %{with python3} -echo ============================= build $MPI_COMPILER-py3 ================== +echo ============================= build $MPI_COMPILER ================== ./b2 -d+2 -q %{?_smp_mflags} \ - --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python3_version} stage %endif @@ -764,10 +741,9 @@ export PATH=/bin${PATH:+:}$PATH %{_mpich_load} %if %{with python3} -echo ============================= build $MPI_COMPILER-py3 ================== +echo ============================= build $MPI_COMPILER ================== ./b2 -d+2 -q %{?_smp_mflags} \ - --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python3_version} stage %endif @@ -799,10 +775,9 @@ module purge ||: # b2 instruction-set=i686 etc. %if %{with python3} -echo ============================= install $MPI_COMPILER-py3 ================== +echo ============================= install $MPI_COMPILER ================== ./b2 -q %{?_smp_mflags} \ - --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python3_version} stage @@ -825,10 +800,9 @@ export PATH=/bin${PATH:+:}$PATH %{_mpich_load} %if %{with python3} -echo ============================= install $MPI_COMPILER-py3 ================== +echo ============================= install $MPI_COMPILER ================== ./b2 -q %{?_smp_mflags} \ - --user-config=./python3-config.jam \ - --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER-py3 \ + --with-mpi --with-graph_parallel --build-dir=$MPI_COMPILER \ --stagedir=${RPM_BUILD_ROOT}${MPI_HOME} \ variant=release threading=multi debug-symbols=on pch=off \ python=%{python3_version} stage @@ -857,6 +831,9 @@ echo ============================= install serial ================== --prefix=$RPM_BUILD_ROOT%{_prefix} \ --libdir=$RPM_BUILD_ROOT%{_libdir} \ variant=release threading=multi debug-symbols=on pch=off \ +%if %{with python3} + python=%{python3_version} \ +%endif install # Override DSO symlink with a linker script. See the linker script @@ -865,17 +842,6 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ -%if %{with python3} -echo ============================= install serial-py3 ================== -./b2 -d+2 -q %{?_smp_mflags} \ - --user-config=python3-config.jam \ - --with-python --build-dir=serial-py3 \ - --prefix=$RPM_BUILD_ROOT%{_prefix} \ - --libdir=$RPM_BUILD_ROOT%{_libdir} \ - variant=release threading=multi debug-symbols=on pch=off \ - python=%{python3_version} install - -%endif echo ============================= install Boost.Build ================== (cd tools/build @@ -1271,6 +1237,7 @@ fi %changelog * Thu Apr 02 2020 Jonathan Wakely - 1.69.0-16 - Drop boost-1.57.0-mpl-print.patch patch that doesn't work +- Remove vestigial parts of separate python2/python3 build * Mon Mar 30 2020 Jonathan Wakely - 1.69.0-15 - Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) From 0e0b60eac1f132718a7d6d45bbbe0be40055eb65 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 31 Mar 2020 17:55:51 +0100 Subject: [PATCH 090/203] Generate version_enc automatically from version and drop version_suffix --- boost.spec | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 0f73794..33b835c 100644 --- a/boost.spec +++ b/boost.spec @@ -42,11 +42,15 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -%global version_enc 1_69_0 -%global version_suffix 169 Release: 16%{?dist} License: Boost and MIT and Python +# Replace each . with _ in %%{version} +%global version_enc %{lua: + local ver = rpm.expand("%{version}") + ver = ver:gsub("%.", "_") + print(ver) +} %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org @@ -1238,6 +1242,7 @@ fi * Thu Apr 02 2020 Jonathan Wakely - 1.69.0-16 - Drop boost-1.57.0-mpl-print.patch patch that doesn't work - Remove vestigial parts of separate python2/python3 build +- Generate version_enc automatically from version and drop version_suffix * Mon Mar 30 2020 Jonathan Wakely - 1.69.0-15 - Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) From 1a2264a2221e79e22c5cc351ab2fb278bb2d4169 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 3 Apr 2020 16:26:34 +0100 Subject: [PATCH 091/203] Remove unused patch from the repo The spec file stopped using this patch some time ago. --- boost-1.63.0-dual-python-build-v2.patch | 87 ------------------------- 1 file changed, 87 deletions(-) delete mode 100644 boost-1.63.0-dual-python-build-v2.patch diff --git a/boost-1.63.0-dual-python-build-v2.patch b/boost-1.63.0-dual-python-build-v2.patch deleted file mode 100644 index 2baf69c..0000000 --- a/boost-1.63.0-dual-python-build-v2.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- boost_1_63_0/libs/mpi/build/Jamfile.v2 2016-12-22 06:33:17.000000000 -0600 -+++ boost_1_63_0/libs/mpi/build/Jamfile.v2 2017-05-19 01:45:05.485563800 -0500 -@@ -11,6 +11,7 @@ - import mpi ; - import indirect ; - import python ; -+import feature ; - - libraries = ; - -@@ -53,18 +54,38 @@ lib boost_mpi - ../../serialization/build//boost_serialization - /mpi//mpi [ mpi.extra-requirements ] - ; -+ -+rule cond ( test ? : yes * : no * ) { if $(test) { return $(yes) ; } else { return $(no) ; } } - - libraries += boost_mpi ; -+rule find-py3-version -+{ -+ local versions = [ feature.values python ] ; -+ local py3ver ; -+ for local v in $(versions) -+ { -+ if $(v) >= 3.0 -+ { -+ py3ver = $(v) ; -+ } -+ } -+ return $(py3ver) ; -+} -+ -+py3-version = [ find-py3-version ] ; - - if [ python.configured ] - { -- lib boost_mpi_python -+ -+ rule lib_boost_mpi_python ( is-py3 ? ) { -+ -+ lib [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ] - : # Sources - python/serialize.cpp - : # Requirements - boost_mpi - /mpi//mpi [ mpi.extra-requirements ] -- /boost/python//boost_python -+ [ cond $(is-py3) : /boost/python//boost_python3 : /boost/python//boost_python ] - shared:BOOST_MPI_DYN_LINK=1 - shared:BOOST_MPI_PYTHON_DYN_LINK=1 - shared:BOOST_PYTHON_DYN_LINK=1 -@@ -76,7 +97,6 @@ libraries += boost_mpi ; - : # Usage requirements - /mpi//mpi [ mpi.extra-requirements ] - ; -- libraries += boost_mpi_python ; - - python-extension mpi - : # Sources -@@ -93,8 +113,8 @@ libraries += boost_mpi ; - python/status.cpp - python/py_timer.cpp - : # Requirements -- /boost/python//boost_python -- boost_mpi_python -+ [ cond $(is-py3) : /boost/python//boost_python3 : /boost/python//boost_python ] -+ [ cond $(is-py3) : boost_mpi_python3 : boost_mpi_python ] - boost_mpi - /mpi//mpi [ mpi.extra-requirements ] - shared:BOOST_MPI_DYN_LINK=1 -@@ -102,6 +122,16 @@ libraries += boost_mpi ; - shared:BOOST_PYTHON_DYN_LINK=1 - shared shared - ; -+ } -+ -+ if $(py3-version) { -+ lib_boost_mpi_python yes ; -+ libraries += boost_mpi_python3 ; -+ } else { -+ lib_boost_mpi_python ; -+ libraries += boost_mpi_python ; -+ } -+ - } - } - else if ! ( --without-mpi in [ modules.peek : ARGV ] ) From 434963c709096b501f2d0de3077f8fcaca99615f Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 25 Apr 2020 20:22:35 +0100 Subject: [PATCH 092/203] Remove unused patch from the repo The spec file stopped using this patch some time ago. --- boost-1.50.0-foreach.patch | 60 -------------------------------------- 1 file changed, 60 deletions(-) delete mode 100644 boost-1.50.0-foreach.patch diff --git a/boost-1.50.0-foreach.patch b/boost-1.50.0-foreach.patch deleted file mode 100644 index dc8cd71..0000000 --- a/boost-1.50.0-foreach.patch +++ /dev/null @@ -1,60 +0,0 @@ -Index: /trunk/boost/foreach_fwd.hpp -=================================================================== ---- /trunk/boost/foreach_fwd.hpp (revision 62661) -+++ /trunk/boost/foreach_fwd.hpp (revision 75540) -@@ -15,4 +15,6 @@ - #define BOOST_FOREACH_FWD_HPP - -+#include // for std::pair -+ - // This must be at global scope, hence the uglified name - enum boost_foreach_argument_dependent_lookup_hack -@@ -26,4 +28,7 @@ - namespace foreach - { -+ template -+ std::pair in_range(T begin, T end); -+ - /////////////////////////////////////////////////////////////////////////////// - // boost::foreach::tag -@@ -47,4 +52,22 @@ - } // namespace foreach - -+// Workaround for unfortunate https://svn.boost.org/trac/boost/ticket/6131 -+namespace BOOST_FOREACH -+{ -+ using foreach::in_range; -+ using foreach::tag; -+ -+ template -+ struct is_lightweight_proxy -+ : foreach::is_lightweight_proxy -+ {}; -+ -+ template -+ struct is_noncopyable -+ : foreach::is_noncopyable -+ {}; -+ -+} // namespace BOOST_FOREACH -+ - } // namespace boost - -Index: /trunk/boost/foreach.hpp -=================================================================== ---- /trunk/boost/foreach.hpp (revision 75077) -+++ /trunk/boost/foreach.hpp (revision 75540) -@@ -166,5 +166,5 @@ - // at the global namespace for your type. - template --inline boost::foreach::is_lightweight_proxy * -+inline boost::BOOST_FOREACH::is_lightweight_proxy * - boost_foreach_is_lightweight_proxy(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } - -@@ -191,5 +191,5 @@ - // at the global namespace for your type. - template --inline boost::foreach::is_noncopyable * -+inline boost::BOOST_FOREACH::is_noncopyable * - boost_foreach_is_noncopyable(T *&, BOOST_FOREACH_TAG_DEFAULT) { return 0; } - From 5d6038484f939f74a53b0ac3a447b8d31b4c711e Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 11 May 2020 13:03:48 +0100 Subject: [PATCH 093/203] Add patch for C++20 compatibility in Boost.Test (#1832639) --- boost-1.69.0-test-cxx20.patch | 50 +++++++++++++++++++++++++++++++++++ boost.spec | 9 ++++++- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 boost-1.69.0-test-cxx20.patch diff --git a/boost-1.69.0-test-cxx20.patch b/boost-1.69.0-test-cxx20.patch new file mode 100644 index 0000000..c9b0e67 --- /dev/null +++ b/boost-1.69.0-test-cxx20.patch @@ -0,0 +1,50 @@ +From 8ac88c62dcc809d42daf8b6bef10f7adecc46dd1 Mon Sep 17 00:00:00 2001 +From: Laurent Stacul +Date: Mon, 17 Feb 2020 08:57:49 +0000 +Subject: [PATCH] Fix compilation issue due to deleted + std::basic_ostream::operator<< overload + +--- + include/boost/test/impl/test_tools.ipp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp +index 40f24e6399..e4d61660b8 100644 +--- a/include/boost/test/impl/test_tools.ipp ++++ b/include/boost/test/impl/test_tools.ipp +@@ -124,7 +124,7 @@ print_log_value::operator()( std::ostream& ostr, char const* t ) + void + print_log_value::operator()( std::ostream& ostr, wchar_t const* t ) + { +- ostr << ( t ? t : L"null string" ); ++ ostr << ( t ? reinterpret_cast(t) : "null string" ); + } + + //____________________________________________________________________________// +From db6b98c72783351e0acd3c558691323a7a103ba9 Mon Sep 17 00:00:00 2001 +From: Raffi Enficiaud +Date: Sat, 9 May 2020 10:42:38 +0200 +Subject: [PATCH] Fixing cast issue when logging wchar_t + +--- + include/boost/test/impl/test_tools.ipp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp +index 025cd1a92a..bbee21fbbc 100644 +--- a/include/boost/test/impl/test_tools.ipp ++++ b/include/boost/test/impl/test_tools.ipp +@@ -124,7 +124,12 @@ print_log_value::operator()( std::ostream& ostr, char const* t ) + void + print_log_value::operator()( std::ostream& ostr, wchar_t const* t ) + { +- ostr << ( t ? reinterpret_cast(t) : "null string" ); ++ if(t) { ++ ostr << static_cast(t); ++ } ++ else { ++ ostr << "null w-string"; ++ } + } + + //____________________________________________________________________________// diff --git a/boost.spec b/boost.spec index 33b835c..f7d7100 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -Release: 16%{?dist} +Release: 17%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -150,6 +150,9 @@ Patch85: boost-1.69-mpi-c_data.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1818723 Patch86: boost-1.69-format-allocator.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1832639 +Patch87: boost-1.69.0-test-cxx20.patch + %bcond_with tests %bcond_with docs_generated @@ -654,6 +657,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch84 -p2 %patch85 -p2 %patch86 -p1 +%patch87 -p2 %build # Dump the versions being used into the build logs. @@ -1239,6 +1243,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon May 11 2020 Jonathan Wakely - 1.69.0-17 +- Add patch for C++20 compatibility in Boost.Test (#1832639) + * Thu Apr 02 2020 Jonathan Wakely - 1.69.0-16 - Drop boost-1.57.0-mpl-print.patch patch that doesn't work - Remove vestigial parts of separate python2/python3 build From ab7eefd18e4a59c498aa57356117f53cdb80662e Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 12 May 2020 14:39:35 +0300 Subject: [PATCH 094/203] Fix Boost.Signals2 C++20 compatibility (#1834764) --- auto_buffer-C-20-compatibility.patch | 34 ++++++++++++++++++++++++++++ boost.spec | 9 +++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 auto_buffer-C-20-compatibility.patch diff --git a/auto_buffer-C-20-compatibility.patch b/auto_buffer-C-20-compatibility.patch new file mode 100644 index 0000000..6e4a95c --- /dev/null +++ b/auto_buffer-C-20-compatibility.patch @@ -0,0 +1,34 @@ +From 675ea3ddf714e2594393ed935f64dce99721b7d7 Mon Sep 17 00:00:00 2001 +From: Avi Kivity +Date: Tue, 12 May 2020 14:29:56 +0300 +Subject: [PATCH] auto_buffer: C++20 compatibility + +C++20's std::allocator does not define the pointer member type, +use std::allocator_traits instead. +--- + include/boost/signals2/detail/auto_buffer.hpp | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/include/boost/signals2/detail/auto_buffer.hpp b/include/boost/signals2/detail/auto_buffer.hpp +index 5ff8dd2..ed62152 100644 +--- a/include/boost/signals2/detail/auto_buffer.hpp ++++ b/include/boost/signals2/detail/auto_buffer.hpp +@@ -140,11 +140,15 @@ namespace detail + typedef Allocator allocator_type; + typedef T value_type; + typedef typename Allocator::size_type size_type; + typedef typename Allocator::difference_type difference_type; + typedef T* pointer; ++#if __cplusplus <= 201703L + typedef typename Allocator::pointer allocator_pointer; ++#else ++ typedef typename std::allocator_traits::pointer allocator_pointer; ++#endif + typedef const T* const_pointer; + typedef T& reference; + typedef const T& const_reference; + typedef pointer iterator; + typedef const_pointer const_iterator; +-- +2.26.2 + diff --git a/boost.spec b/boost.spec index f7d7100..90f5916 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -Release: 17%{?dist} +Release: 18%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -153,6 +153,9 @@ Patch86: boost-1.69-format-allocator.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1832639 Patch87: boost-1.69.0-test-cxx20.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1834764 +Patch88: auto_buffer-C-20-compatibility.patch + %bcond_with tests %bcond_with docs_generated @@ -658,6 +661,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch85 -p2 %patch86 -p1 %patch87 -p2 +%patch88 -p2 %build # Dump the versions being used into the build logs. @@ -1243,6 +1247,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue May 12 2020 Avi Kivity - 1.69.0-18 +- Add patch for C++20 compatibility in Boost.Signals2 (#1834764) + * Mon May 11 2020 Jonathan Wakely - 1.69.0-17 - Add patch for C++20 compatibility in Boost.Test (#1832639) From b93614e90695cf932d7cc01cfd1d80cc791bc2e7 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Fri, 15 May 2020 13:53:18 +0100 Subject: [PATCH 095/203] Rebuild for ICU 67 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 90f5916..6be5b20 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -Release: 18%{?dist} +Release: 19%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1247,6 +1247,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri May 15 2020 Pete Walter - 1.69.0-19 +- Rebuild for ICU 67 + * Tue May 12 2020 Avi Kivity - 1.69.0-18 - Add patch for C++20 compatibility in Boost.Signals2 (#1834764) From 1f2e448e099a867f9da62b9da009d3dec5e1ad64 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 22 May 2020 14:33:14 +0100 Subject: [PATCH 096/203] Require boost-python3 for boost, fold boost-python3-devel into boost-devel Now that we only build Boost.Python for one version of Python there is no benefit to keeping `boost-python3` and `boost-python3-devel` separate from the main `boost` and `boost-devel` packages. This change makes `boost` install `boost-python3` (and recommend `boost-numpy3` if `python3-numpy` is already installed). The `boost-python3-devel` subpackage is dropped and its contents added to the main `boost-devel` subpackage instead. --- boost.spec | 52 +++++++++++++++++++++++++++------------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/boost.spec b/boost.spec index 6be5b20..9eee060 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -Release: 19%{?dist} +Release: 20%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -63,12 +63,11 @@ Source1: libboost_thread.so %global sonamever %{version} # boost is an "umbrella" package that pulls in all boost shared library -# components, except for MPI and Python sub-packages. Those are special -# in that there are alternative implementations to choose from -# (Open MPI and MPICH, and Python 2 and 3), and it's not a big burden -# to have interested parties install them explicitly. +# components, except for MPI sub-packages. Those are special in that +# there are alternative implementations to choose from (Open MPI and MPICH), +# and it's not a big burden to have interested parties install them explicitly. # The subpackages that don't install shared libraries are also not pulled in -# (doc, doctools, examples, jam, static). +# (build, doc, doctools, examples, jam, static). Requires: %{name}-atomic%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} @@ -88,6 +87,9 @@ Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} Requires: %{name}-program-options%{?_isa} = %{version}-%{release} +%if %{with python3} +Requires: %{name}-python3%{?_isa} = %{version}-%{release} +%endif Requires: %{name}-random%{?_isa} = %{version}-%{release} Requires: %{name}-regex%{?_isa} = %{version}-%{release} Requires: %{name}-serialization%{?_isa} = %{version}-%{release} @@ -99,6 +101,10 @@ Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} +%if %{with python3} +Recommends: (boost-numpy3 if python3-numpy) +%endif + BuildRequires: gcc-c++ BuildRequires: m4 BuildRequires: libstdc++-devel @@ -329,7 +335,6 @@ developers to obtain (name, value) pairs from the user, via conventional methods such as command-line and configuration file. %if %{with python3} - %package python3 Summary: Run-time component of boost python library for Python 3 @@ -340,17 +345,6 @@ C++. It allows you to quickly and seamlessly expose C++ classes, functions and objects to Python, and vice versa, using no special tools -- just your C++ compiler. This package contains run-time support for the Boost Python Library compiled for Python 3. - -%package python3-devel -Summary: Shared object symbolic links for Boost.Python 3 -Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} -Requires: %{name}-python3%{?_isa} = %{version}-%{release} -Requires: %{name}-devel%{?_isa} = %{version}-%{release} - -%description python3-devel - -Shared object symbolic links for Python 3 variant of Boost.Python. - %endif %package random @@ -450,6 +444,12 @@ Requires: libicu-devel%{?_isa} %if %{with quadmath} Requires: libquadmath-devel%{?_isa} %endif +%if %{with python3} +# Require boost-numpy3 here, because main boost metapackage only Recommends: it +Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} +# Added for F33, remove for F35: +Obsoletes: %{name}-python3-devel < 1.69.0-20 +%endif %description devel Headers and shared object symbolic links for the Boost C++ libraries. @@ -523,7 +523,6 @@ API over the OpenMPI implementation of MPI. %package openmpi-python3-devel Summary: Shared library symbolic links for Boost.MPI Python 3 component Requires: %{name}-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-python3-devel%{?_isa} = %{version}-%{release} Requires: %{name}-openmpi-devel%{?_isa} = %{version}-%{release} Requires: %{name}-openmpi-python3%{?_isa} = %{version}-%{release} @@ -589,7 +588,6 @@ API over the MPICH implementation of MPI. %package mpich-python3-devel Summary: Shared library symbolic links for Boost.MPI Python 3 component Requires: %{name}-devel%{?_isa} = %{version}-%{release} -Requires: %{name}-python3-devel%{?_isa} = %{version}-%{release} Requires: %{name}-mpich-devel%{?_isa} = %{version}-%{release} Requires: %{name}-mpich-python3%{?_isa} = %{version}-%{release} @@ -1061,11 +1059,6 @@ fi %files python3 %license LICENSE_1_0.txt %{_libdir}/libboost_python%{python3_version_nodots}.so.%{sonamever} - -%files python3-devel -%license LICENSE_1_0.txt -%{_libdir}/libboost_numpy%{python3_version_nodots}.so -%{_libdir}/libboost_python%{python3_version_nodots}.so %endif %files random @@ -1144,9 +1137,15 @@ fi %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so %{_libdir}/libboost_math_c99l.so +%if %{with python3} +%{_libdir}/libboost_numpy%{python3_version_nodots}.so +%endif %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so +%if %{with python3} +%{_libdir}/libboost_python%{python3_version_nodots}.so +%endif %{_libdir}/libboost_random.so %{_libdir}/libboost_regex.so %{_libdir}/libboost_serialization.so @@ -1247,6 +1246,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Fri May 22 2020 Jonathan Wakely - 1.69.0-20 +- Require boost-python3 for boost, fold boost-python3-devel into boost-devel + * Fri May 15 2020 Pete Walter - 1.69.0-19 - Rebuild for ICU 67 From fb6db033ed4fc205071c4fd024162be5866d8d42 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 22 May 2020 16:37:20 +0100 Subject: [PATCH 097/203] Do not link Python extensions to libpython Boost upstream does not link Boost.Python libraries to libpython, which matches the advice from Python upstream as well. Drop the Fedora patches which cause libpython to be linked to. Those patches have been causing problems for a while anyway. --- boost-1.57.0-python-libpython_dep.patch | 13 ------ boost-1.66.0-python-abi_letters.patch | 62 ------------------------- boost.spec | 9 +--- 3 files changed, 2 insertions(+), 82 deletions(-) delete mode 100644 boost-1.57.0-python-libpython_dep.patch delete mode 100644 boost-1.66.0-python-abi_letters.patch diff --git a/boost-1.57.0-python-libpython_dep.patch b/boost-1.57.0-python-libpython_dep.patch deleted file mode 100644 index 57bfc26..0000000 --- a/boost-1.57.0-python-libpython_dep.patch +++ /dev/null @@ -1,13 +0,0 @@ -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.66.0-python-abi_letters.patch b/boost-1.66.0-python-abi_letters.patch deleted file mode 100644 index a421a75..0000000 --- a/boost-1.66.0-python-abi_letters.patch +++ /dev/null @@ -1,62 +0,0 @@ ---- 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 ?= "" ; - - local cmds-to-try ; - -@@ -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.spec b/boost.spec index 9eee060..5145f8a 100644 --- a/boost.spec +++ b/boost.spec @@ -134,10 +134,6 @@ Patch15: boost-1.58.0-pool.patch # https://svn.boost.org/trac/boost/ticket/9038 Patch51: boost-1.58.0-pool-test_linking.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1102667 -Patch61: boost-1.57.0-python-libpython_dep.patch -Patch62: boost-1.66.0-python-abi_letters.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1190039 Patch65: boost-1.66.0-build-optflags.patch @@ -650,8 +646,6 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch5 -p1 %patch15 -p0 %patch51 -p1 -%patch61 -p1 -%patch62 -p1 %patch65 -p1 %patch82 -p1 %patch83 -p1 @@ -688,7 +682,7 @@ EOF %if %{with python3} cat >> ./tools/build/src/user-config.jam << EOF -using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : : ${PYTHON3_ABIFLAGS} ; +using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{python3_version}${PYTHON3_ABIFLAGS} : : : ; EOF %endif @@ -1248,6 +1242,7 @@ fi %changelog * Fri May 22 2020 Jonathan Wakely - 1.69.0-20 - Require boost-python3 for boost, fold boost-python3-devel into boost-devel +- Do not link Python extensions to libpython * Fri May 15 2020 Pete Walter - 1.69.0-19 - Rebuild for ICU 67 From 9e763536889d7bed90bef20b1dfc96f9d7d4c4f9 Mon Sep 17 00:00:00 2001 From: Igor Raits Date: Sat, 23 May 2020 21:29:19 +0200 Subject: [PATCH 098/203] Add Provides for boost-python3-devel Otherwise it is breaking some dependencies. Signed-off-by: Igor Raits --- boost.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 5145f8a..2d84e1f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -Release: 20%{?dist} +Release: 21%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -445,6 +445,8 @@ Requires: libquadmath-devel%{?_isa} Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} # Added for F33, remove for F35: Obsoletes: %{name}-python3-devel < 1.69.0-20 +Provides: %{name}-python3-devel = %{version}-%{release} +Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release} %endif %description devel @@ -1240,6 +1242,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Sat May 23 2020 Igor Raits - 1.69.0-21 +- Add Provides for boost-python3-devel + * Fri May 22 2020 Jonathan Wakely - 1.69.0-20 - Require boost-python3 for boost, fold boost-python3-devel into boost-devel - Do not link Python extensions to libpython From 66b109b6e1a39206f258b99c510e106055666aa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Mon, 25 May 2020 12:59:31 +0200 Subject: [PATCH 099/203] Rebuilt for Python 3.9 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 2d84e1f..de042b3 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.69.0 -Release: 21%{?dist} +Release: 22%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1242,6 +1242,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon May 25 2020 Miro Hrončok - 1.69.0-22 +- Rebuilt for Python 3.9 + * Sat May 23 2020 Igor Raits - 1.69.0-21 - Add Provides for boost-python3-devel From 378d8d7e423a29950076c893862036802a783994 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 28 May 2020 08:44:23 +0100 Subject: [PATCH 100/203] Rebase to 1.73.0 Replace boost-jam and bjam with boost-b2 and b2 Add boost-nowide subpackage --- auto_buffer-C-20-compatibility.patch | 34 ---- b2.1 | 144 +++++++++++++++++ boost-1.48.0-add-bjam-man-page.patch | 150 ------------------ boost-1.66.0-bjam-build-flags.patch | 26 --- boost-1.69-mpi-c_data.patch | 27 ---- boost-1.69-random.patch | 22 --- boost-1.69.0-test-cxx20.patch | 23 --- boost-1.73.0-b2-build-flags.patch | 11 ++ ...patch => boost-1.73.0-build-optflags.patch | 20 ++- boost-1.73.0-cmakedir.patch | 28 ++++ boost-1.73.0-outcome-assert.patch | 24 +++ boost.spec | 124 ++++++++++----- sources | 2 +- 13 files changed, 304 insertions(+), 331 deletions(-) delete mode 100644 auto_buffer-C-20-compatibility.patch create mode 100644 b2.1 delete mode 100644 boost-1.48.0-add-bjam-man-page.patch delete mode 100644 boost-1.66.0-bjam-build-flags.patch delete mode 100644 boost-1.69-mpi-c_data.patch delete mode 100644 boost-1.69-random.patch create mode 100644 boost-1.73.0-b2-build-flags.patch rename boost-1.66.0-build-optflags.patch => boost-1.73.0-build-optflags.patch (72%) create mode 100644 boost-1.73.0-cmakedir.patch create mode 100644 boost-1.73.0-outcome-assert.patch diff --git a/auto_buffer-C-20-compatibility.patch b/auto_buffer-C-20-compatibility.patch deleted file mode 100644 index 6e4a95c..0000000 --- a/auto_buffer-C-20-compatibility.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 675ea3ddf714e2594393ed935f64dce99721b7d7 Mon Sep 17 00:00:00 2001 -From: Avi Kivity -Date: Tue, 12 May 2020 14:29:56 +0300 -Subject: [PATCH] auto_buffer: C++20 compatibility - -C++20's std::allocator does not define the pointer member type, -use std::allocator_traits instead. ---- - include/boost/signals2/detail/auto_buffer.hpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/include/boost/signals2/detail/auto_buffer.hpp b/include/boost/signals2/detail/auto_buffer.hpp -index 5ff8dd2..ed62152 100644 ---- a/include/boost/signals2/detail/auto_buffer.hpp -+++ b/include/boost/signals2/detail/auto_buffer.hpp -@@ -140,11 +140,15 @@ namespace detail - typedef Allocator allocator_type; - typedef T value_type; - typedef typename Allocator::size_type size_type; - typedef typename Allocator::difference_type difference_type; - typedef T* pointer; -+#if __cplusplus <= 201703L - typedef typename Allocator::pointer allocator_pointer; -+#else -+ typedef typename std::allocator_traits::pointer allocator_pointer; -+#endif - typedef const T* const_pointer; - typedef T& reference; - typedef const T& const_reference; - typedef pointer iterator; - typedef const_pointer const_iterator; --- -2.26.2 - diff --git a/b2.1 b/b2.1 new file mode 100644 index 0000000..130814b --- /dev/null +++ b/b2.1 @@ -0,0 +1,144 @@ +.TH "b2" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*- +.ad l +.nh +.SH NAME +b2 \- Command-line utility to build Boost-related C++ projects with Boost\&.Build +.SH "SYNOPSIS" +.PP +\fBb2\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-tx] [-v] [--x]\fP +.PP +\fIb2\fP accepts the following options: +.PP +\fB-a\fP +.br + Build all targets, even if they are current +.PP +\fB-dx\fP +.br + Set the debug level to x (0-9) +.PP +\fB-fx\fP +.br + Read x instead of Jambase +.PP +\fB-jx\fP +.br + Run up to x shell commands concurrently +.PP +\fB-lx\fP +.br + Limit actions to x number of seconds after which they are stopped +.PP +\fB-n\fP +.br + Don't actually execute the updating actions +.PP +\fB-ox\fP +.br + Write the updating actions to file x +.PP +\fB-px\fP +.br + x=0, pipes action stdout and stderr merged into action output +.PP +\fB-q\fP +.br + Quit quickly as soon as a target fails +.PP +\fB-sx=y\fP +.br + Set variable x=y, overriding environment +.PP +\fB-tx\fP +.br + Rebuild x, even if it is up-to-date +.PP +\fB-v\fP +.br + Print the version of b2 and exit +.PP +\fB--x\fP +.br + Option is ignored +.SH "DESCRIPTION" +.PP +This section provides the information necessary to create your own projects using \fIBoost\&.Build\fP The information provided here is relatively high-level, and Chapter 6, Reference as well as the on-line help system must be used to obtain low-level documentation (see --help) +.PP +\fIBoost\&.Build\fP actually consists of two parts - \fIBoost\&.Jam\fP, a build engine with its own interpreted language, and \fIBoost\&.Build\fP itself, implemented in \fIBoost\&.Jam's\fP language\&. The chain of events when you type b2 on the command line is as follows: +.IP "\(bu" 2 +\fIBoost\&.Jam\fP tries to find \fIBoost\&.Build\fP and loads the top-level module\&. The exact process is described in the section called “Initialization” +.PP +.PP +.IP "\(bu" 2 +The top-level module loads user-defined configuration files, \fIuser-config\&.jam\fP and \fIsite-config\&.jam\fP, which define available toolsets +.PP +.PP +.IP "\(bu" 2 +The \fIJamfile\fP in the current directory is read That in turn might cause reading of further Jamfiles\&. As a result, a tree of projects is created, with targets inside projects +.PP +.PP +.IP "\(bu" 2 +Finally, using the build request specified on the command line, \fIBoost\&.Build\fP decides which targets should be built and how\&. That information is passed back to \fIBoost\&.Jam\fP, which takes care of actually running the scheduled build action commands +.PP +.PP +So, to be able to successfully use \fIBoost\&.Build\fP, you need to know only four things: +.IP "\(bu" 2 +How to configure \fIBoost\&.Build\fP (http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html) +.IP "\(bu" 2 +How to declare targets in Jamfiles (http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html) +.IP "\(bu" 2 +How the build process works (http://www.boost.org/boost-build2/doc/html/bbv2/overview/build_process.html) +.PP +.PP +Some Basics about the \fIBoost\&.Jam\fP language\&. See the section called “Boost\&.Jam Language” (http://www.boost.org/boost-build2/doc/html/bbv2/overview/jam_language.html) +.SH "CONCEPTS" +.PP +\fIBoost\&.Build\fP has a few unique concepts that are introduced in this section\&. The best way to explain the concepts is by comparison with more classical build tools +.PP +When using any flavour of make, you directly specify targets and commands that are used to create them from other target\&. The below example creates a\&.o from a\&.c using a hardcoded compiler invocation command +.PP +a\&.o: a\&.c +.br + g++ -o a\&.o -g a\&.c +.PP +This is rather low-level description mechanism and it is hard to adjust commands, options, and sets of created targets depending on the used compiler and operating system\&. +.PP +To improve portability, most modern build system provide a set of higher-level functions that can be used in build description files\&. Consider this example: +.PP +add_program ('a', 'a\&.c') +.br +.PP +This is a function call that creates targets necessary to create executable file from source file a\&.c\&. Depending on configured properties, different commands line may be used\&. However, \fIadd_program\fP is higher-level, but rather thin level All targets are created immediately when build description is parsed, which makes it impossible to perform multi-variant builds\&. Often, change in any build property requires complete reconfiguration of the build tree +.PP +In order to support true multivariant builds, Boost\&.Build introduces the concept of metatarget—object that is created when build description is parsed and can be later called with specific build properties to generate actual targets +.PP +Consider an example: +.PP +exe a : a\&.cpp ; +.br +.PP +When this declaration is parsed, \fIBoost\&.Build\fP creates a metatarget, but does not yet decides what files must be created, or what commands must be used\&. After all build files are parsed, Boost\&.Build considers properties requested on the command line\&. Supposed you have invoked \fIBoost\&.Build\fP with: +.PP +\fIb2\fP toolset=gcc toolset=msvc +.br +.PP +In that case, the metatarget will be called twice, once with toolset=gcc and once with toolset=msvc\&. Both invocations will produce concrete targets, that will have different extensions and use different command lines\&. Another key concept is build property\&. Build property is a variable that affects the build process\&. It can be specified on the command line, and is passed when calling a metatarget +.PP +While all build tools have a similar mechanism, \fIBoost\&.Build\fP differs by requiring that all build properties are declared in advance, and providing a large set of properties with portable semantics +.PP +The final concept is property propagation\&. Boost\&.Build does not require that every metatarget is called with the same properties\&. Instead, the 'top-level' metatargets are called with the properties specified on the command line Each metatarget can elect to augment or override some properties (in particular, using the requirements mechanism, see the section called “Requirements”: http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html#bbv2.overview.targets.requirements) Then, the dependency metatargets are called with modified properties and produce concrete targets that are then used in build process Of course, dependency metatargets maybe in turn modify build properties and have dependencies of their own\&. +.PP +For more in-depth treatment of the requirements and concepts, you may refer to SYRCoSE 2009 Boost\&.Build article (http://syrcose.ispras.ru/2009/files/04_paper.pdf)\&. +.SH "SEE ALSO" +.PP +\fBboost-libraries\fP(3) +.SH "SUPPORT" +.PP +Please report any bugs to https://svn.boost.org/trac/boost/ +.SH "COPYRIGHT" +.PP +Boost Software License - Version 1\&.0 - August 17th, 2003 +.PP +See the LICENSE_1_0\&.txt file for more information on that license, or directly on Internet: +.br + http://www.boost.org/LICENSE_1_0.txt diff --git a/boost-1.48.0-add-bjam-man-page.patch b/boost-1.48.0-add-bjam-man-page.patch deleted file mode 100644 index ea3f19f..0000000 --- a/boost-1.48.0-add-bjam-man-page.patch +++ /dev/null @@ -1,150 +0,0 @@ -diff --git a/tools/build/v2/doc/bjam.1 b/tools/build/v2/doc/bjam.1 -new file mode 100644 -index 0000000..8a44af6 ---- /dev/null -+++ b/tools/build/v2/doc/bjam.1 -@@ -0,0 +1,144 @@ -+.TH "bjam" 1 "Sat Nov 19 2011" "Doxygen" \" -*- nroff -*- -+.ad l -+.nh -+.SH NAME -+bjam \- Command-line utility to build Boost-related C++ projects with Boost\&.Build -+.SH "SYNOPSIS" -+.PP -+\fBbjam\fP \fC[-a] [-dx] [-fx] [-jx] [-lx] [-n] [-ox] [-px] [-q] [-sx=y] [-tx] [-v] [--x]\fP -+.PP -+\fIbjam\fP accepts the following options: -+.PP -+\fB-a\fP -+.br -+ Build all targets, even if they are current -+.PP -+\fB-dx\fP -+.br -+ Set the debug level to x (0-9) -+.PP -+\fB-fx\fP -+.br -+ Read x instead of Jambase -+.PP -+\fB-jx\fP -+.br -+ Run up to x shell commands concurrently -+.PP -+\fB-lx\fP -+.br -+ Limit actions to x number of seconds after which they are stopped -+.PP -+\fB-n\fP -+.br -+ Don't actually execute the updating actions -+.PP -+\fB-ox\fP -+.br -+ Write the updating actions to file x -+.PP -+\fB-px\fP -+.br -+ x=0, pipes action stdout and stderr merged into action output -+.PP -+\fB-q\fP -+.br -+ Quit quickly as soon as a target fails -+.PP -+\fB-sx=y\fP -+.br -+ Set variable x=y, overriding environment -+.PP -+\fB-tx\fP -+.br -+ Rebuild x, even if it is up-to-date -+.PP -+\fB-v\fP -+.br -+ Print the version of jam and exit -+.PP -+\fB--x\fP -+.br -+ Option is ignored -+.SH "DESCRIPTION" -+.PP -+This section provides the information necessary to create your own projects using \fIBoost\&.Build\fP The information provided here is relatively high-level, and Chapter 6, Reference as well as the on-line help system must be used to obtain low-level documentation (see --help) -+.PP -+\fIBoost\&.Build\fP actually consists of two parts - \fIBoost\&.Jam\fP, a build engine with its own interpreted language, and \fIBoost\&.Build\fP itself, implemented in \fIBoost\&.Jam's\fP language\&. The chain of events when you type bjam on the command line is as follows: -+.IP "\(bu" 2 -+\fIBoost\&.Jam\fP tries to find \fIBoost\&.Build\fP and loads the top-level module\&. The exact process is described in the section called “Initialization” -+.PP -+.PP -+.IP "\(bu" 2 -+The top-level module loads user-defined configuration files, \fIuser-config\&.jam\fP and \fIsite-config\&.jam\fP, which define available toolsets -+.PP -+.PP -+.IP "\(bu" 2 -+The \fIJamfile\fP in the current directory is read That in turn might cause reading of further Jamfiles\&. As a result, a tree of projects is created, with targets inside projects -+.PP -+.PP -+.IP "\(bu" 2 -+Finally, using the build request specified on the command line, \fIBoost\&.Build\fP decides which targets should be built and how\&. That information is passed back to \fIBoost\&.Jam\fP, which takes care of actually running the scheduled build action commands -+.PP -+.PP -+So, to be able to successfully use \fIBoost\&.Build\fP, you need to know only four things: -+.IP "\(bu" 2 -+How to configure \fIBoost\&.Build\fP (http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html) -+.IP "\(bu" 2 -+How to declare targets in Jamfiles (http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html) -+.IP "\(bu" 2 -+How the build process works (http://www.boost.org/boost-build2/doc/html/bbv2/overview/build_process.html) -+.PP -+.PP -+Some Basics about the \fIBoost\&.Jam\fP language\&. See the section called “Boost\&.Jam Language” (http://www.boost.org/boost-build2/doc/html/bbv2/overview/jam_language.html) -+.SH "CONCEPTS" -+.PP -+\fIBoost\&.Build\fP has a few unique concepts that are introduced in this section\&. The best way to explain the concepts is by comparison with more classical build tools -+.PP -+When using any flavour of make, you directly specify targets and commands that are used to create them from other target\&. The below example creates a\&.o from a\&.c using a hardcoded compiler invocation command -+.PP -+a\&.o: a\&.c -+.br -+ g++ -o a\&.o -g a\&.c -+.PP -+This is rather low-level description mechanism and it is hard to adjust commands, options, and sets of created targets depending on the used compiler and operating system\&. -+.PP -+To improve portability, most modern build system provide a set of higher-level functions that can be used in build description files\&. Consider this example: -+.PP -+add_program ('a', 'a\&.c') -+.br -+.PP -+This is a function call that creates targets necessary to create executable file from source file a\&.c\&. Depending on configured properties, different commands line may be used\&. However, \fIadd_program\fP is higher-level, but rather thin level All targets are created immediately when build description is parsed, which makes it impossible to perform multi-variant builds\&. Often, change in any build property requires complete reconfiguration of the build tree -+.PP -+In order to support true multivariant builds, Boost\&.Build introduces the concept of metatarget—object that is created when build description is parsed and can be later called with specific build properties to generate actual targets -+.PP -+Consider an example: -+.PP -+exe a : a\&.cpp ; -+.br -+.PP -+When this declaration is parsed, \fIBoost\&.Build\fP creates a metatarget, but does not yet decides what files must be created, or what commands must be used\&. After all build files are parsed, Boost\&.Build considers properties requested on the command line\&. Supposed you have invoked \fIBoost\&.Build\fP with: -+.PP -+\fIbjam\fP toolset=gcc toolset=msvc -+.br -+.PP -+In that case, the metatarget will be called twice, once with toolset=gcc and once with toolset=msvc\&. Both invocations will produce concrete targets, that will have different extensions and use different command lines\&. Another key concept is build property\&. Build property is a variable that affects the build process\&. It can be specified on the command line, and is passed when calling a metatarget -+.PP -+While all build tools have a similar mechanism, \fIBoost\&.Build\fP differs by requiring that all build properties are declared in advance, and providing a large set of properties with portable semantics -+.PP -+The final concept is property propagation\&. Boost\&.Build does not require that every metatarget is called with the same properties\&. Instead, the 'top-level' metatargets are called with the properties specified on the command line Each metatarget can elect to augment or override some properties (in particular, using the requirements mechanism, see the section called “Requirements”: http://www.boost.org/boost-build2/doc/html/bbv2/overview/targets.html#bbv2.overview.targets.requirements) Then, the dependency metatargets are called with modified properties and produce concrete targets that are then used in build process Of course, dependency metatargets maybe in turn modify build properties and have dependencies of their own\&. -+.PP -+For more in-depth treatment of the requirements and concepts, you may refer to SYRCoSE 2009 Boost\&.Build article (http://syrcose.ispras.ru/2009/files/04_paper.pdf)\&. -+.SH "SEE ALSO" -+.PP -+\fBboost-libraries\fP(3) -+.SH "SUPPORT" -+.PP -+Please report any bugs to https://svn.boost.org/trac/boost/ -+.SH "COPYRIGHT" -+.PP -+Boost Software License - Version 1\&.0 - August 17th, 2003 -+.PP -+See the LICENSE_1_0\&.txt file for more information on that license, or directly on Internet: -+.br -+ http://www.boost.org/LICENSE_1_0.txt diff --git a/boost-1.66.0-bjam-build-flags.patch b/boost-1.66.0-bjam-build-flags.patch deleted file mode 100644 index 34ee6ca..0000000 --- a/boost-1.66.0-bjam-build-flags.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- boost_1_66_0/tools/build/src/engine/build.jam~ 2018-02-07 21:36:14.552201421 +0000 -+++ boost_1_66_0/tools/build/src/engine/build.jam 2018-02-07 21:36:29.014173266 +0000 -@@ -4,7 +4,7 @@ - #~ http://www.boost.org/LICENSE_1_0.txt) - - # Clean env vars of any "extra" empty values. --for local v in ARGV CC CFLAGS LIBS -+for local v in ARGV CC CFLAGS LIBS RPM_OPT_FLAGS RPM_LD_FLAGS - { - local values ; - for local x in $($(v)) -@@ -215,12 +215,12 @@ - : -L$(--python-lib[1]) -l$(--python-lib[2]) ; - ## GCC 2.x, 3.x, 4.x - toolset gcc gcc : "-o " : -D -- : -pedantic -fno-strict-aliasing -+ : -pedantic -fno-strict-aliasing $(RPM_OPT_FLAGS) - [ opt --release : [ opt --symbols : -g : -s ] -O3 ] - [ opt --debug : -g -O0 -fno-inline ] - [ opt --profile : -O3 -g -pg ] - -I$(--python-include) -I$(--extra-include) -Wno-long-long -- : -L$(--python-lib[1]) -l$(--python-lib[2]) ; -+ : -L$(--python-lib[1]) -l$(--python-lib[2]) $(RPM_LD_FLAGS) ; - ## GCC 2.x, 3.x on CYGWIN but without cygwin1.dll - toolset gcc-nocygwin gcc : "-o " : -D - : -s -O3 -mno-cygwin diff --git a/boost-1.69-mpi-c_data.patch b/boost-1.69-mpi-c_data.patch deleted file mode 100644 index 857cca2..0000000 --- a/boost-1.69-mpi-c_data.patch +++ /dev/null @@ -1,27 +0,0 @@ -From dc708430bf5fd31d29da2e7e6b5fd20fe593e106 Mon Sep 17 00:00:00 2001 -From: Michael Kuron -Date: Thu, 14 Feb 2019 15:55:31 +0100 -Subject: [PATCH] mpi::detail::c_data needs to check for empty vectors - -If the standard library is configured to do range checks (-D _GLIBCXX_ASSERTIONS), accessing the zeroth element of a vector to get its address triggers an assertion. ---- - include/boost/mpi/detail/antiques.hpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/include/boost/mpi/detail/antiques.hpp b/include/boost/mpi/detail/antiques.hpp -index 0bd235b2..93b8efe9 100644 ---- a/include/boost/mpi/detail/antiques.hpp -+++ b/include/boost/mpi/detail/antiques.hpp -@@ -19,10 +19,10 @@ namespace detail { - // serve as an incentive to get rid of this when those compilers - // are dropped. - template -- T* c_data(std::vector& v) { return &(v[0]); } -+ T* c_data(std::vector& v) { if (v.empty()) return NULL; return &(v[0]); } - - template -- T const* c_data(std::vector const& v) { return &(v[0]); } -+ T const* c_data(std::vector const& v) { if (v.empty()) return NULL; return &(v[0]); } - - // Some old MPI implementation (OpenMPI 1.6 for example) have non - // conforming API w.r.t. constness. diff --git a/boost-1.69-random.patch b/boost-1.69-random.patch deleted file mode 100644 index 0a1d286..0000000 --- a/boost-1.69-random.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1be44d405e48a42a63bd8d2dae739560b486a55c Mon Sep 17 00:00:00 2001 -From: Nick Thompson -Date: Sun, 11 Feb 2018 15:02:43 -0600 -Subject: [PATCH] [ci skip] Remove deprecated header. - ---- - include/boost/random/detail/integer_log2.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/random/detail/integer_log2.hpp b/include/boost/random/detail/integer_log2.hpp -index 248243a4b..2e49f281f 100644 ---- a/include/boost/random/detail/integer_log2.hpp -+++ b/include/boost/random/detail/integer_log2.hpp -@@ -16,7 +16,7 @@ - - #include - #include --#include -+#include - - namespace boost { - namespace random { diff --git a/boost-1.69.0-test-cxx20.patch b/boost-1.69.0-test-cxx20.patch index c9b0e67..be1b52c 100644 --- a/boost-1.69.0-test-cxx20.patch +++ b/boost-1.69.0-test-cxx20.patch @@ -1,26 +1,3 @@ -From 8ac88c62dcc809d42daf8b6bef10f7adecc46dd1 Mon Sep 17 00:00:00 2001 -From: Laurent Stacul -Date: Mon, 17 Feb 2020 08:57:49 +0000 -Subject: [PATCH] Fix compilation issue due to deleted - std::basic_ostream::operator<< overload - ---- - include/boost/test/impl/test_tools.ipp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp -index 40f24e6399..e4d61660b8 100644 ---- a/include/boost/test/impl/test_tools.ipp -+++ b/include/boost/test/impl/test_tools.ipp -@@ -124,7 +124,7 @@ print_log_value::operator()( std::ostream& ostr, char const* t ) - void - print_log_value::operator()( std::ostream& ostr, wchar_t const* t ) - { -- ostr << ( t ? t : L"null string" ); -+ ostr << ( t ? reinterpret_cast(t) : "null string" ); - } - - //____________________________________________________________________________// From db6b98c72783351e0acd3c558691323a7a103ba9 Mon Sep 17 00:00:00 2001 From: Raffi Enficiaud Date: Sat, 9 May 2020 10:42:38 +0200 diff --git a/boost-1.73.0-b2-build-flags.patch b/boost-1.73.0-b2-build-flags.patch new file mode 100644 index 0000000..e2e2037 --- /dev/null +++ b/boost-1.73.0-b2-build-flags.patch @@ -0,0 +1,11 @@ +--- boost_1_73_0/tools/build/src/engine/build.sh~ 2020-04-25 17:09:03.159419899 +0100 ++++ boost_1_73_0/tools/build/src/engine/build.sh 2020-04-25 17:11:35.085907844 +0100 +@@ -233,7 +233,7 @@ + + *) + B2_CXX="${CXX} -x c++ -std=c++11" +- B2_CXXFLAGS_RELEASE="-O2 -s" ++ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" + B2_CXXFLAGS_DEBUG="-O0 -g" + esac + ;; diff --git a/boost-1.66.0-build-optflags.patch b/boost-1.73.0-build-optflags.patch similarity index 72% rename from boost-1.66.0-build-optflags.patch rename to boost-1.73.0-build-optflags.patch index 8855b40..a2895f6 100644 --- a/boost-1.66.0-build-optflags.patch +++ b/boost-1.73.0-build-optflags.patch @@ -1,6 +1,6 @@ ---- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2017-12-13 23:56:50.000000000 +0000 -+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 12:48:26.264755316 +0000 -@@ -603,7 +603,7 @@ rule compile.fortran ( targets * : sourc +--- boost_1_73_0/tools/build/src/tools/gcc.jam~ 2020-03-31 21:50:30.687635266 +0100 ++++ boost_1_73_0/tools/build/src/tools/gcc.jam 2020-03-31 21:50:32.943632779 +0100 +@@ -571,7 +571,7 @@ actions compile.c++ bind PCH_FILE { @@ -9,7 +9,7 @@ } actions compile.c bind PCH_FILE -@@ -613,7 +613,7 @@ actions compile.c bind PCH_FILE +@@ -581,7 +581,7 @@ actions compile.c++.preprocess bind PCH_FILE { @@ -18,7 +18,7 @@ } actions compile.c.preprocess bind PCH_FILE -@@ -755,17 +755,17 @@ actions compile.c.pch +@@ -704,20 +704,20 @@ ### # Declare flags and action for compilation. @@ -32,7 +32,10 @@ - -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 all : -Wall ; +-toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; +-toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; +-toolset.flags gcc.compile OPTIONS on : -Werror ; +toolset.flags gcc.compile OPTIONS off : ; +toolset.flags gcc.compile OPTIONS speed : ; +toolset.flags gcc.compile OPTIONS space : ; @@ -44,6 +47,9 @@ +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 extra : ; ++toolset.flags gcc.compile OPTIONS pedantic : ; ++toolset.flags gcc.compile OPTIONS on : ; toolset.flags gcc.compile OPTIONS on : -g ; + toolset.flags gcc.compile OPTIONS on : -pg ; diff --git a/boost-1.73.0-cmakedir.patch b/boost-1.73.0-cmakedir.patch new file mode 100644 index 0000000..e47728f --- /dev/null +++ b/boost-1.73.0-cmakedir.patch @@ -0,0 +1,28 @@ +--- boost_1_73_0/tools/boost_install/boost-install.jam~ 2020-04-24 20:21:50.330267122 +0100 ++++ boost_1_73_0/tools/boost_install/boost-install.jam 2020-04-24 20:22:16.818360540 +0100 +@@ -652,25 +652,6 @@ + "get_filename_component(_BOOST_CMAKEDIR \"${CMAKE_CURRENT_LIST_DIR}/../\" REALPATH)" + : true ; + +- if [ path.is-rooted $(cmakedir) ] +- { +- local cmakedir-native = [ path-native-fwd $(cmakedir) ] ; +- +- print.text +- +- "" +- "# If the computed and the original directories are symlink-equivalent, use original" +- "if(EXISTS \"$(cmakedir-native)\")" +- " get_filename_component(_BOOST_CMAKEDIR_ORIGINAL \"$(cmakedir-native)\" REALPATH)" +- " if(_BOOST_CMAKEDIR STREQUAL _BOOST_CMAKEDIR_ORIGINAL)" +- " set(_BOOST_CMAKEDIR \"$(cmakedir-native)\")" +- " endif()" +- " unset(_BOOST_CMAKEDIR_ORIGINAL)" +- "endif()" +- "" +- : true ; +- } +- + get-dir "_BOOST_INCLUDEDIR" : $(includedir) ; + + if $(library-type) = INTERFACE diff --git a/boost-1.73.0-outcome-assert.patch b/boost-1.73.0-outcome-assert.patch new file mode 100644 index 0000000..1dfeb71 --- /dev/null +++ b/boost-1.73.0-outcome-assert.patch @@ -0,0 +1,24 @@ +From 9f414ea58264fe0a62172a06f4653adc7556c164 Mon Sep 17 00:00:00 2001 +From: "Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)" + +Date: Mon, 27 Apr 2020 12:00:22 +0100 +Subject: [PATCH] Fix https://github.com/ned14/outcome/issues/223 where in + debug builds, cloning a status_code_ptr causes a segfault. + +--- + include/status_code_ptr.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/status_code_ptr.hpp b/include/status_code_ptr.hpp +index 0f5efa1..bd5c278 100644 +--- boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp ++++ boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp +@@ -97,7 +97,7 @@ namespace detail + #endif + virtual void _do_erased_copy(status_code &dst, const status_code &src, size_t /*unused*/) const override // NOLINT + { +- assert(dst.domain() == *this); ++ // Note that dst will not have its domain set + assert(src.domain() == *this); + auto &d = static_cast<_mycode &>(dst); // NOLINT + const auto &_s = static_cast(src); // NOLINT diff --git a/boost.spec b/boost.spec index de042b3..ceb452a 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.69.0 -Release: 22%{?dist} +Version: 1.73.0 +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,9 +54,12 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://sourceforge.net/projects/%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2 -#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}-snapshot.tar.gz +Source0: https://sourceforge.net/projects/%%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2 +#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}.tar.gz Source1: libboost_thread.so +# Add a manual page for b2, based on the online documentation: +# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html +Source2: b2.1 # Since Fedora 13, the Boost libraries are delivered with sonames # equal to the Boost version (e.g., 1.41.0). @@ -67,7 +70,7 @@ Source1: libboost_thread.so # there are alternative implementations to choose from (Open MPI and MPICH), # and it's not a big burden to have interested parties install them explicitly. # The subpackages that don't install shared libraries are also not pulled in -# (build, doc, doctools, examples, jam, static). +# (b2, build, doc, doctools, examples, static). Requires: %{name}-atomic%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} @@ -86,6 +89,7 @@ Requires: %{name}-iostreams%{?_isa} = %{version}-%{release} Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} +Requires: %{name}-nowide%{?_isa} = %{version}-%{release} Requires: %{name}-program-options%{?_isa} = %{version}-%{release} %if %{with python3} Requires: %{name}-python3%{?_isa} = %{version}-%{release} @@ -118,14 +122,11 @@ BuildRequires: libicu-devel %if %{with quadmath} BuildRequires: libquadmath-devel %endif +BuildRequires: bison # https://svn.boost.org/trac/boost/ticket/6150 Patch4: boost-1.50.0-fix-non-utf8-files.patch -# Add a manual page for bjam, based on the on-line documentation: -# http://www.boost.org/boost-build2/doc/html/bbv2/overview.html -Patch5: boost-1.48.0-add-bjam-man-page.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828857 # https://svn.boost.org/trac/boost/ticket/6701 @@ -135,19 +136,13 @@ Patch15: boost-1.58.0-pool.patch Patch51: boost-1.58.0-pool-test_linking.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1190039 -Patch65: boost-1.66.0-build-optflags.patch +Patch65: boost-1.73.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch82: boost-1.66.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch83: boost-1.66.0-bjam-build-flags.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1673669 -Patch84: boost-1.69-random.patch - -# https://github.com/boostorg/mpi/pull/81 -Patch85: boost-1.69-mpi-c_data.patch +Patch83: boost-1.73.0-b2-build-flags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1818723 Patch86: boost-1.69-format-allocator.patch @@ -155,8 +150,11 @@ Patch86: boost-1.69-format-allocator.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1832639 Patch87: boost-1.69.0-test-cxx20.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1834764 -Patch88: auto_buffer-C-20-compatibility.patch +# https://lists.boost.org/Archives/boost/2020/04/248812.php +Patch88: boost-1.73.0-cmakedir.patch + +# https://github.com/ned14/outcome/issues/223 +Patch89: boost-1.73.0-outcome-assert.patch %bcond_with tests %bcond_with docs_generated @@ -304,6 +302,15 @@ Summary: Math functions for boost TR1 library Run-time support for C99 and C++ TR1 C-style Functions from the math portion of Boost.TR1. +%package nowide +Summary: Standard library functions with UTF-8 API on Windows +# Added for F33, remove for F35: +Obsoletes: boost-nowide <= 0.20190814 + +%description nowide + +Run-time support for Boost.Nowide. + %if %{with python3} %package numpy3 @@ -448,6 +455,10 @@ Obsoletes: %{name}-python3-devel < 1.69.0-20 Provides: %{name}-python3-devel = %{version}-%{release} Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release} %endif +# Added for F33, remove for F35: +Obsoletes: boost-nowide-devel <= 0.20190814 +Provides: boost-nowide-devel = %{version} +Provides: boost-nowide-devel%{?_isa} = %{version} %description devel Headers and shared object symbolic links for the Boost C++ libraries. @@ -612,7 +623,7 @@ back-end to do the parallel work. %package build Summary: Cross platform build system for C++ projects -Requires: %{name}-jam +Requires: %{name}-b2 BuildArch: noarch %description build @@ -632,12 +643,16 @@ Requires: docbook-style-xsl Tools for working with Boost documentation in BoostBook or QuickBook format. -%package jam +%package b2 Summary: A low-level build tool +# Added for F33, remove for F35: +Obsoletes: boost-jam < 1.73.0 +Provides: boost-jam = %{version} +Provides: boost-jam%{?_isa} = %{version} -%description jam -Boost.Jam (BJam) is the low-level build engine tool for Boost.Build. -Historically, Boost.Jam is based on on FTJam and on Perforce Jam but has grown +%description b2 +B2 (formerly Boost.Jam) is the low-level build engine tool for Boost.Build. +Historically, B2 was based on on FTJam and on Perforce Jam but has grown a number of significant features and is now developed independently. %prep @@ -645,17 +660,15 @@ a number of significant features and is now developed independently. find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch4 -p1 -%patch5 -p1 %patch15 -p0 %patch51 -p1 %patch65 -p1 %patch82 -p1 %patch83 -p1 -%patch84 -p2 -%patch85 -p2 %patch86 -p1 %patch87 -p2 -%patch88 -p2 +%patch88 -p1 +%patch89 -p1 %build # Dump the versions being used into the build logs. @@ -791,12 +804,21 @@ echo ============================= install $MPI_COMPILER ================== # Move Python module to proper location for automatic loading mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost touch ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ %endif # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* +rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* + +# Remove cmake files (some of these are duplicates of the generic bits anyway). +rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake + +# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks. +version=%{version} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*} %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH @@ -816,12 +838,21 @@ echo ============================= install $MPI_COMPILER ================== # Move Python module to proper location for automatic loading mkdir -p ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost touch ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/__init__.py -mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/mpi.so \ +mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ %endif # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* +rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* + +# Remove cmake files (some of these are duplicates of the generic bits anyway). +rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake + +# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks. +version=%{version} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*} +rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*} %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH @@ -848,25 +879,26 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ +# Remove cmake files until we know somebody wants them. +rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake + +# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks. +version=%{version} +rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%.*} +rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%%%.*} echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install # Fix some permissions - chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/alias.py - chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/kernel/boost-build.jam - chmod -x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/options/help.jam chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # Fix shebang using unversioned python sed -i '1s@^#!/usr/bin.python$@&3@' $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py - # We don't want to distribute this - rm -f $RPM_BUILD_ROOT%{_bindir}/b2 - # Not a real file - rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/build/project.ann.py # Empty file + rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp # Install the manual page - %{__install} -p -m 644 v2/doc/bjam.1 -D $RPM_BUILD_ROOT%{_mandir}/man1/bjam.1 + %{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 ) echo ============================= install Boost.QuickBook ================== @@ -1036,6 +1068,10 @@ fi %{_libdir}/libboost_math_tr1f.so.%{sonamever} %{_libdir}/libboost_math_tr1l.so.%{sonamever} +%files nowide +%license LICENSE_1_0.txt +%{_libdir}/libboost_nowide.so.%{sonamever} + %if %{with python3} %files numpy3 %license LICENSE_1_0.txt @@ -1133,6 +1169,7 @@ fi %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so %{_libdir}/libboost_math_c99l.so +%{_libdir}/libboost_nowide.so %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so %endif @@ -1236,12 +1273,17 @@ fi %{_bindir}/quickbook %{_datadir}/boostbook/ -%files jam +%files b2 %license LICENSE_1_0.txt -%{_bindir}/bjam -%{_mandir}/man1/bjam.1* +%{_bindir}/b2 +%{_mandir}/man1/b2.1* %changelog +* Thu May 28 2020 Jonathan Wakely - 1.73.0-1 +- Rebase to 1.73.0 +- Replace boost-jam and bjam with boost-b2 and b2 +- Add boost-nowide subpackage + * Mon May 25 2020 Miro Hrončok - 1.69.0-22 - Rebuilt for Python 3.9 diff --git a/sources b/sources index cead2dd..9bda6dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_69_0.tar.bz2) = d0e9bb858c44880d56c0291afef6a1b011a62f659a2d8f58dcb6147ea0899f9157bd8db3097896618fee0116847ebeac78b6d0f0fec8a92c3469500828bbe552 +SHA512 (boost_1_73_0.tar.bz2) = 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668 From a562db598b8e6aacc222c6add179c78f5b5eb13b Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 28 May 2020 09:03:52 +0100 Subject: [PATCH 101/203] Add patch for Boost.Beast to work with C++20 --- boost-1.73.0-beast-coroutines.patch | 1466 +++++++++++++++++++++++++++ boost.spec | 4 + 2 files changed, 1470 insertions(+) create mode 100644 boost-1.73.0-beast-coroutines.patch diff --git a/boost-1.73.0-beast-coroutines.patch b/boost-1.73.0-beast-coroutines.patch new file mode 100644 index 0000000..a95b5f3 --- /dev/null +++ b/boost-1.73.0-beast-coroutines.patch @@ -0,0 +1,1466 @@ +diff -aruN a/boost/beast/core/detail/impl/read.hpp b/boost/beast/core/detail/impl/read.hpp +--- a/boost/beast/core/detail/impl/read.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/detail/impl/read.hpp 2020-05-02 13:50:11.141761700 -0400 +@@ -214,7 +214,7 @@ + class AsyncReadStream, + class DynamicBuffer, + class CompletionCondition, +- class ReadHandler, ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler, + class> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + async_read( +diff -aruN a/boost/beast/core/detail/is_invocable.hpp b/boost/beast/core/detail/is_invocable.hpp +--- a/boost/beast/core/detail/is_invocable.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/detail/is_invocable.hpp 2020-05-02 13:50:11.141761700 -0400 +@@ -10,6 +10,8 @@ + #ifndef BOOST_BEAST_DETAIL_IS_INVOCABLE_HPP + #define BOOST_BEAST_DETAIL_IS_INVOCABLE_HPP + ++#include ++#include + #include + #include + +@@ -51,6 +53,26 @@ + }; + /** @} */ + ++template ++struct is_completion_token_for : std::false_type ++{ ++}; ++ ++struct any_initiation ++{ ++ template ++ void operator()(AnyArgs&&...); ++}; ++ ++template ++struct is_completion_token_for< ++ CompletionToken, R(Args...), boost::void_t( ++ any_initiation(), std::declval()) ++ )>> : std::true_type ++{ ++}; ++ + } // detail + } // beast + } // boost +diff -aruN a/boost/beast/core/detail/read.hpp b/boost/beast/core/detail/read.hpp +--- a/boost/beast/core/detail/read.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/detail/read.hpp 2020-05-02 13:50:11.142761711 -0400 +@@ -219,7 +219,7 @@ + class AsyncReadStream, + class DynamicBuffer, + class CompletionCondition, +- class ReadHandler ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler + #if ! BOOST_BEAST_DOXYGEN + , class = typename std::enable_if< + is_async_read_stream::value && +diff -aruN a/boost/beast/core/detect_ssl.hpp b/boost/beast/core/detect_ssl.hpp +--- a/boost/beast/core/detect_ssl.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/detect_ssl.hpp 2020-05-02 13:50:11.143761722 -0400 +@@ -374,13 +374,13 @@ + void operator()( + DetectHandler&& h, + AsyncReadStream* s, // references are passed as pointers +- DynamicBuffer& b) ++ DynamicBuffer* b) + { + detect_ssl_op< + typename std::decay::type, + AsyncReadStream, + DynamicBuffer>( +- std::forward(h), *s, b); ++ std::forward(h), *s, *b); + } + }; + +@@ -439,7 +439,7 @@ + detail::run_detect_ssl_op{}, + token, + &stream, // pass the reference by pointer +- buffer); ++ &buffer); + } + + //] +diff -aruN a/boost/beast/core/impl/basic_stream.hpp b/boost/beast/core/impl/basic_stream.hpp +--- a/boost/beast/core/impl/basic_stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/impl/basic_stream.hpp 2020-05-02 13:50:11.144761733 -0400 +@@ -776,7 +776,7 @@ + //------------------------------------------------------------------------------ + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT1(ConnectHandler) + basic_stream:: + async_connect( +@@ -795,7 +795,7 @@ + template + template< + class EndpointSequence, +- class RangeConnectHandler, ++ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler, + class> + BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void(error_code, typename Protocol::endpoint)) + basic_stream:: +@@ -817,7 +817,7 @@ + template< + class EndpointSequence, + class ConnectCondition, +- class RangeConnectHandler, ++ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler, + class> + BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void (error_code, typename Protocol::endpoint)) + basic_stream:: +@@ -839,7 +839,7 @@ + template + template< + class Iterator, +- class IteratorConnectHandler> ++ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler> + BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator)) + basic_stream:: + async_connect( +@@ -860,7 +860,7 @@ + template< + class Iterator, + class ConnectCondition, +- class IteratorConnectHandler> ++ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler> + BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator)) + basic_stream:: + async_connect( +@@ -881,7 +881,7 @@ + //------------------------------------------------------------------------------ + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + basic_stream:: + async_read_some( +@@ -901,7 +901,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + basic_stream:: + async_write_some( +diff -aruN a/boost/beast/core/impl/buffered_read_stream.hpp b/boost/beast/core/impl/buffered_read_stream.hpp +--- a/boost/beast/core/impl/buffered_read_stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/impl/buffered_read_stream.hpp 2020-05-02 13:50:11.144761733 -0400 +@@ -110,7 +110,7 @@ + operator()( + ReadHandler&& h, + buffered_read_stream* s, +- Buffers const& b) ++ Buffers const* b) + { + // If you get an error on the following line it means + // that your handler does not meet the documented type +@@ -124,7 +124,7 @@ + read_op< + Buffers, + typename std::decay::type>( +- std::forward(h), *s, b); ++ std::forward(h), *s, *b); + } + }; + +@@ -141,7 +141,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + buffered_read_stream:: + async_write_some( +@@ -153,7 +153,7 @@ + static_assert(net::is_const_buffer_sequence< + ConstBufferSequence>::value, + "ConstBufferSequence type requirements not met"); +- static_assert(detail::is_invocable::value, + "WriteHandler type requirements not met"); + return next_layer_.async_write_some(buffers, +@@ -212,7 +212,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + buffered_read_stream:: + async_read_some( +@@ -233,7 +233,7 @@ + typename ops::run_read_op{}, + handler, + this, +- buffers); ++ &buffers); + } + + } // beast +diff -aruN a/boost/beast/core/impl/flat_stream.hpp b/boost/beast/core/impl/flat_stream.hpp +--- a/boost/beast/core/impl/flat_stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/core/impl/flat_stream.hpp 2020-05-02 13:50:11.145761743 -0400 +@@ -144,7 +144,7 @@ + template + template< + class MutableBufferSequence, +- class ReadHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + flat_stream:: + async_read_some( +@@ -225,7 +225,7 @@ + template + template< + class ConstBufferSequence, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + flat_stream:: + async_write_some( +diff -aruN a/boost/beast/_experimental/http/impl/icy_stream.hpp b/boost/beast/_experimental/http/impl/icy_stream.hpp +--- a/boost/beast/_experimental/http/impl/icy_stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/_experimental/http/impl/icy_stream.hpp 2020-05-02 13:50:11.146761754 -0400 +@@ -259,7 +259,7 @@ + template + template< + class MutableBufferSequence, +- class ReadHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + icy_stream:: + async_read_some( +@@ -311,7 +311,7 @@ + template + template< + class MutableBufferSequence, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + icy_stream:: + async_write_some( +diff -aruN a/boost/beast/_experimental/test/impl/stream.hpp b/boost/beast/_experimental/test/impl/stream.hpp +--- a/boost/beast/_experimental/test/impl/stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/_experimental/test/impl/stream.hpp 2020-05-02 13:50:11.147761765 -0400 +@@ -306,7 +306,7 @@ + return 0; + } + +-template ++template + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + stream:: + async_read_some( +@@ -386,7 +386,7 @@ + return n; + } + +-template ++template + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + stream:: + async_write_some( +diff -aruN a/boost/beast/http/field.hpp b/boost/beast/http/field.hpp +--- a/boost/beast/http/field.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/http/field.hpp 2020-05-02 13:50:11.149761786 -0400 +@@ -396,12 +396,9 @@ + string_to_field(string_view s); + + /// Write the text for a field name to an output stream. +-inline ++BOOST_BEAST_DECL + std::ostream& +-operator<<(std::ostream& os, field f) +-{ +- return os << to_string(f); +-} ++operator<<(std::ostream& os, field f); + + } // http + } // beast +diff -aruN a/boost/beast/http/impl/field.ipp b/boost/beast/http/impl/field.ipp +--- a/boost/beast/http/impl/field.ipp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/http/impl/field.ipp 2020-05-02 13:50:11.150761798 -0400 +@@ -11,10 +11,12 @@ + #define BOOST_BEAST_HTTP_IMPL_FIELD_IPP + + #include ++#include + #include + #include + #include +-#include ++#include ++ + + namespace boost { + namespace beast { +@@ -565,6 +567,12 @@ + return detail::get_field_table().string_to_field(s); + } + ++std::ostream& ++operator<<(std::ostream& os, field f) ++{ ++ return os << to_string(f); ++} ++ + } // http + } // beast + } // boost +diff -aruN a/boost/beast/http/impl/file_body_win32.hpp b/boost/beast/http/impl/file_body_win32.hpp +--- a/boost/beast/http/impl/file_body_win32.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/http/impl/file_body_win32.hpp 2020-05-02 13:50:11.150761798 -0400 +@@ -597,7 +597,7 @@ + template< + class Protocol, class Executor, + bool isRequest, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write_some( + net::basic_stream_socket< +diff -aruN a/boost/beast/http/impl/read.hpp b/boost/beast/http/impl/read.hpp +--- a/boost/beast/http/impl/read.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/http/impl/read.hpp 2020-05-02 13:50:11.150761798 -0400 +@@ -304,7 +304,7 @@ + class AsyncReadStream, + class DynamicBuffer, + bool isRequest, +- class ReadHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + async_read_some( + AsyncReadStream& stream, +@@ -373,7 +373,7 @@ + class AsyncReadStream, + class DynamicBuffer, + bool isRequest, +- class ReadHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + async_read_header( + AsyncReadStream& stream, +@@ -443,7 +443,7 @@ + class AsyncReadStream, + class DynamicBuffer, + bool isRequest, +- class ReadHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + async_read( + AsyncReadStream& stream, +@@ -531,7 +531,7 @@ + class AsyncReadStream, + class DynamicBuffer, + bool isRequest, class Body, class Allocator, +- class ReadHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + async_read( + AsyncReadStream& stream, +diff -aruN a/boost/beast/http/impl/write.hpp b/boost/beast/http/impl/write.hpp +--- a/boost/beast/http/impl/write.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/http/impl/write.hpp 2020-05-02 13:50:11.150761798 -0400 +@@ -463,7 +463,7 @@ + template< + class AsyncWriteStream, + bool isRequest, class Body, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write_some_impl( + AsyncWriteStream& stream, +@@ -526,7 +526,7 @@ + template< + class AsyncWriteStream, + bool isRequest, class Body, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write_some( + AsyncWriteStream& stream, +@@ -608,7 +608,7 @@ + template< + class AsyncWriteStream, + bool isRequest, class Body, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write_header( + AsyncWriteStream& stream, +@@ -681,7 +681,7 @@ + template< + class AsyncWriteStream, + bool isRequest, class Body, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write( + AsyncWriteStream& stream, +@@ -801,7 +801,7 @@ + template< + class AsyncWriteStream, + bool isRequest, class Body, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write( + AsyncWriteStream& stream, +@@ -830,7 +830,7 @@ + template< + class AsyncWriteStream, + bool isRequest, class Body, class Fields, +- class WriteHandler> ++ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + async_write( + AsyncWriteStream& stream, +diff -aruN a/boost/beast/http/span_body.hpp b/boost/beast/http/span_body.hpp +--- a/boost/beast/http/span_body.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/http/span_body.hpp 2020-05-02 13:50:11.151761808 -0400 +@@ -36,8 +36,10 @@ + struct span_body + { + private: +- static_assert(std::is_pod::value, +- "POD requirements not met"); ++ static_assert( ++ std::is_trivial::value && ++ std::is_standard_layout::value, ++ "POD requirements not met"); + + public: + /** The type of container used for the body +diff -aruN a/boost/beast/ssl/ssl_stream.hpp b/boost/beast/ssl/ssl_stream.hpp +--- a/boost/beast/ssl/ssl_stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/ssl/ssl_stream.hpp 2020-05-02 13:50:11.151761808 -0400 +@@ -555,7 +555,7 @@ + need to ensure that all data is written before the asynchronous operation + completes. + */ +- template ++ template + BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) + async_write_some(ConstBufferSequence const& buffers, + BOOST_ASIO_MOVE_ARG(WriteHandler) handler) +@@ -636,7 +636,7 @@ + if you need to ensure that the requested amount of data is read before + the asynchronous operation completes. + */ +- template ++ template + BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t)) + async_read_some(MutableBufferSequence const& buffers, + BOOST_ASIO_MOVE_ARG(ReadHandler) handler) +diff -aruN a/boost/beast/version.hpp b/boost/beast/version.hpp +--- a/boost/beast/version.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/version.hpp 2020-05-02 13:50:11.151761808 -0400 +@@ -20,7 +20,7 @@ + This is a simple integer that is incremented by one every + time a set of code changes is merged to the develop branch. + */ +-#define BOOST_BEAST_VERSION 290 ++#define BOOST_BEAST_VERSION 292 + + #define BOOST_BEAST_VERSION_STRING "Boost.Beast/" BOOST_STRINGIZE(BOOST_BEAST_VERSION) + +diff -aruN a/boost/beast/websocket/impl/accept.hpp b/boost/beast/websocket/impl/accept.hpp +--- a/boost/beast/websocket/impl/accept.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/impl/accept.hpp 2020-05-02 13:50:11.153761830 -0400 +@@ -542,7 +542,7 @@ + + template + template< +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + stream:: + async_accept( +@@ -564,7 +564,7 @@ + template + template< + class ResponseDecorator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + stream:: + async_accept_ex( +@@ -590,7 +590,7 @@ + template + template< + class ConstBufferSequence, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + stream:: + async_accept( +@@ -621,7 +621,7 @@ + template< + class ConstBufferSequence, + class ResponseDecorator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + stream:: + async_accept_ex( +@@ -654,7 +654,7 @@ + template + template< + class Body, class Allocator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + stream:: + async_accept( +@@ -678,7 +678,7 @@ + template< + class Body, class Allocator, + class ResponseDecorator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + stream:: + async_accept_ex( +diff -aruN a/boost/beast/websocket/impl/close.hpp b/boost/beast/websocket/impl/close.hpp +--- a/boost/beast/websocket/impl/close.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/impl/close.hpp 2020-05-02 13:50:11.153761830 -0400 +@@ -382,7 +382,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT1(CloseHandler) + stream:: + async_close(close_reason const& cr, CloseHandler&& handler) +diff -aruN a/boost/beast/websocket/impl/handshake.hpp b/boost/beast/websocket/impl/handshake.hpp +--- a/boost/beast/websocket/impl/handshake.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/impl/handshake.hpp 2020-05-02 13:50:11.153761830 -0400 +@@ -268,7 +268,7 @@ + //------------------------------------------------------------------------------ + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler) + stream:: + async_handshake( +@@ -293,7 +293,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler) + stream:: + async_handshake( +diff -aruN a/boost/beast/websocket/impl/ping.hpp b/boost/beast/websocket/impl/ping.hpp +--- a/boost/beast/websocket/impl/ping.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/impl/ping.hpp 2020-05-02 13:50:11.153761830 -0400 +@@ -288,7 +288,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT1(WriteHandler) + stream:: + async_ping(ping_data const& payload, WriteHandler&& handler) +@@ -306,7 +306,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT1(WriteHandler) + stream:: + async_pong(ping_data const& payload, WriteHandler&& handler) +diff -aruN a/boost/beast/websocket/impl/read.hpp b/boost/beast/websocket/impl/read.hpp +--- a/boost/beast/websocket/impl/read.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/impl/read.hpp 2020-05-02 13:50:11.153761830 -0400 +@@ -804,7 +804,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + stream:: + async_read(DynamicBuffer& buffer, ReadHandler&& handler) +@@ -878,7 +878,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + stream:: + async_read_some( +@@ -1263,7 +1263,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(ReadHandler) + stream:: + async_read_some( +diff -aruN a/boost/beast/websocket/impl/write.hpp b/boost/beast/websocket/impl/write.hpp +--- a/boost/beast/websocket/impl/write.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/impl/write.hpp 2020-05-02 13:50:11.153761830 -0400 +@@ -700,7 +700,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + stream:: + async_write_some(bool fin, +@@ -756,7 +756,7 @@ + } + + template +-template ++template + BOOST_BEAST_ASYNC_RESULT2(WriteHandler) + stream:: + async_write( +diff -aruN a/boost/beast/websocket/stream.hpp b/boost/beast/websocket/stream.hpp +--- a/boost/beast/websocket/stream.hpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/boost/beast/websocket/stream.hpp 2020-05-02 13:50:11.154761841 -0400 +@@ -2634,7 +2634,7 @@ + + template< + class ResponseDecorator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + async_accept_ex( + ResponseDecorator const& decorator, +@@ -2643,7 +2643,7 @@ + template< + class ConstBufferSequence, + class ResponseDecorator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + async_accept_ex( + ConstBufferSequence const& buffers, +@@ -2656,7 +2656,7 @@ + template< + class Body, class Allocator, + class ResponseDecorator, +- class AcceptHandler> ++ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> + BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) + async_accept_ex( + http::request ++ template + typename net::async_result::return_type + async_read(AsyncReadStream& stream, net::mutable_buffer buffer, ReadHandler&& handler) + { +diff -aruN a/libs/beast/test/beast/core/basic_stream.cpp b/libs/beast/test/beast/core/basic_stream.cpp +--- a/libs/beast/test/beast/core/basic_stream.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/core/basic_stream.cpp 2020-05-02 13:51:02.470315892 -0400 +@@ -30,6 +30,13 @@ + #include + #include + ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#include ++#include ++#endif ++ ++ + namespace boost { + namespace beast { + +@@ -258,7 +265,7 @@ + { + string_view s_; + net::ip::tcp::socket socket_; +- ++ + public: + session( + string_view s, +@@ -1297,6 +1304,52 @@ + + //-------------------------------------------------------------------------- + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompilation( ++ basic_stream& stream, ++ net::mutable_buffer outbuf, ++ net::const_buffer inbuf, ++ net::ip::tcp::resolver::results_type resolve_results) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_read_some(outbuf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_write_some(inbuf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_connect( ++ resolve_results.begin(), ++ resolve_results.end(), ++ net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_connect( ++ resolve_results, ++ net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_connect( ++ resolve_results.begin()->endpoint(), ++ net::use_awaitable))>); ++ ++ auto comparison_function = [](error_code&, net::ip::tcp::endpoint) { return true; }; ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_connect( ++ resolve_results.begin(), ++ resolve_results.end(), ++ comparison_function, ++ net::use_awaitable))>); ++ } ++#endif ++ + void + run() + { +@@ -1307,6 +1360,11 @@ + testMembers(); + testJavadocs(); + testIssue1589(); ++ ++#if BOOST_ASIO_HAS_CO_AWAIT ++ // test for compilation success only ++ boost::ignore_unused(&basic_stream_test::testAwaitableCompilation); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/core/buffered_read_stream.cpp b/libs/beast/test/beast/core/buffered_read_stream.cpp +--- a/libs/beast/test/beast/core/buffered_read_stream.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/core/buffered_read_stream.cpp 2020-05-02 13:51:02.470315892 -0400 +@@ -21,6 +21,9 @@ + #include + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + + namespace boost { + namespace beast { +@@ -211,6 +214,22 @@ + } + }; + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ buffered_read_stream& stream, ++ net::mutable_buffer rxbuf, ++ net::const_buffer txbuf) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_read_some(rxbuf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_write_some(txbuf, net::use_awaitable))>); ++ } ++#endif ++ + void run() override + { + testSpecialMembers(); +@@ -221,6 +240,10 @@ + }); + + testAsyncLoop(); ++ ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&buffered_read_stream_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/core/detect_ssl.cpp b/libs/beast/test/beast/core/detect_ssl.cpp +--- a/libs/beast/test/beast/core/detect_ssl.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/core/detect_ssl.cpp 2020-05-02 13:51:02.470315892 -0400 +@@ -16,6 +16,11 @@ + #include + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#include ++#include ++#endif + namespace boost { + namespace beast { + +@@ -166,12 +171,25 @@ + } + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles(test::stream& stream, flat_buffer& b) ++ { ++ static_assert( ++ std::is_same_v< ++ net::awaitable, decltype( ++ async_detect_ssl(stream, b, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { + testDetect(); + testRead(); + testAsyncRead(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&detect_ssl_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/core/flat_stream.cpp b/libs/beast/test/beast/core/flat_stream.cpp +--- a/libs/beast/test/beast/core/flat_stream.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/core/flat_stream.cpp 2020-05-02 13:51:02.471315902 -0400 +@@ -17,6 +17,9 @@ + #include + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + + namespace boost { + namespace beast { +@@ -208,11 +211,30 @@ + check({1,2,3,4}, 3, 3, true); + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ flat_stream& stream, ++ net::mutable_buffer rxbuf, ++ net::const_buffer txbuf) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_read_some(rxbuf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ stream.async_write_some(txbuf, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { + testMembers(); + testSplit(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&flat_stream_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/core/stream_traits.cpp b/libs/beast/test/beast/core/stream_traits.cpp +--- a/libs/beast/test/beast/core/stream_traits.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/core/stream_traits.cpp 2020-05-02 13:51:02.471315902 -0400 +@@ -214,14 +214,14 @@ + struct async_read_stream + { + net::io_context::executor_type get_executor() noexcept; +- template ++ template + void async_read_some(MutableBufferSequence const&, ReadHandler&&); + }; + + struct async_write_stream + { + net::io_context::executor_type get_executor() noexcept; +- template ++ template + void async_write_some(ConstBufferSequence const&, WriteHandler&&); + }; + +@@ -232,9 +232,9 @@ + struct async_stream : async_read_stream, async_write_stream + { + net::io_context::executor_type get_executor() noexcept; +- template ++ template + void async_read_some(MutableBufferSequence const&, ReadHandler&&); +- template ++ template + void async_write_some(ConstBufferSequence const&, WriteHandler&&); + }; + +diff -aruN a/libs/beast/test/beast/http/CMakeLists.txt b/libs/beast/test/beast/http/CMakeLists.txt +--- a/libs/beast/test/beast/http/CMakeLists.txt 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/http/CMakeLists.txt 2020-05-02 13:51:02.472315914 -0400 +@@ -26,6 +26,7 @@ + empty_body.cpp + error.cpp + field.cpp ++ field_compiles.cpp + fields.cpp + file_body.cpp + message.cpp +diff -aruN a/libs/beast/test/beast/http/field_compiles.cpp b/libs/beast/test/beast/http/field_compiles.cpp +--- a/libs/beast/test/beast/http/field_compiles.cpp 1969-12-31 19:00:00.000000000 -0500 ++++ b/libs/beast/test/beast/http/field_compiles.cpp 2020-05-02 13:51:02.473315924 -0400 +@@ -0,0 +1,11 @@ ++// ++// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) ++// ++// Distributed under the Boost Software License, Version 1.0. (See accompanying ++// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ++// ++// Official repository: https://github.com/boostorg/beast ++// ++ ++// Test that header file is self-contained. ++#include +diff -aruN a/libs/beast/test/beast/http/Jamfile b/libs/beast/test/beast/http/Jamfile +--- a/libs/beast/test/beast/http/Jamfile 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/http/Jamfile 2020-05-02 13:51:02.472315914 -0400 +@@ -16,6 +16,7 @@ + dynamic_body.cpp + error.cpp + field.cpp ++ field_compiles.cpp + fields.cpp + file_body.cpp + message.cpp +diff -aruN a/libs/beast/test/beast/http/read.cpp b/libs/beast/test/beast/http/read.cpp +--- a/libs/beast/test/beast/http/read.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/http/read.cpp 2020-05-02 13:51:02.472315914 -0400 +@@ -25,6 +25,9 @@ + #include + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + + namespace boost { + namespace beast { +@@ -529,6 +532,49 @@ + } + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ test::stream& stream, ++ flat_buffer& dynbuf, ++ parser& request_parser, ++ request& request, ++ parser& response_parser, ++ response& response) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read(stream, dynbuf, request, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read(stream, dynbuf, request_parser, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read(stream, dynbuf, response, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read(stream, dynbuf, response_parser, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read_some(stream, dynbuf, request_parser, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read_some(stream, dynbuf, response_parser, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read_header(stream, dynbuf, request_parser, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_read_header(stream, dynbuf, response_parser, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { +@@ -552,6 +598,9 @@ + testRegression430(); + testReadGrind(); + testAsioHandlerInvoke(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&read_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/http/write.cpp b/libs/beast/test/beast/http/write.cpp +--- a/libs/beast/test/beast/http/write.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/http/write.cpp 2020-05-02 13:51:02.473315924 -0400 +@@ -26,6 +26,9 @@ + #include + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + + namespace boost { + namespace beast { +@@ -994,6 +997,59 @@ + } + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ test::stream& stream, ++ serializer& request_serializer, ++ request& req, ++ request const& creq, ++ serializer& response_serializer, ++ response& resp, ++ response const& cresp) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write(stream, request_serializer, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write(stream, response_serializer, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write(stream, req, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write(stream, creq, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write(stream, resp, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write(stream, cresp, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write_some(stream, request_serializer, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write_some(stream, response_serializer, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write_header(stream, request_serializer, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ http::async_write_header(stream, response_serializer, net::use_awaitable))>); ++ } ++#endif ++ ++ + void + run() override + { +@@ -1017,6 +1073,9 @@ + }); + testAsioHandlerInvoke(); + testBodyWriters(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&write_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/websocket/accept.cpp b/libs/beast/test/beast/websocket/accept.cpp +--- a/libs/beast/test/beast/websocket/accept.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/websocket/accept.cpp 2020-05-02 13:51:02.473315924 -0400 +@@ -14,7 +14,9 @@ + #include + #include + #include "test.hpp" +- ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + namespace boost { + namespace beast { + namespace websocket { +@@ -810,6 +812,27 @@ + } + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ stream& s, ++ http::request& req, ++ net::mutable_buffer buf ++ ) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_accept(net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_accept(req, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_accept(buf, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { +@@ -820,6 +843,9 @@ + testInvalidInputs(); + testEndOfStream(); + testAsync(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&accept_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/websocket/close.cpp b/libs/beast/test/beast/websocket/close.cpp +--- a/libs/beast/test/beast/websocket/close.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/websocket/close.cpp 2020-05-02 13:51:02.473315924 -0400 +@@ -16,6 +16,9 @@ + + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + + namespace boost { + namespace beast { +@@ -735,6 +738,15 @@ + } + }; + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles(stream& s, close_reason cr ) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_close(cr, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { +@@ -742,6 +754,9 @@ + testTimeout(); + testSuspend(); + testMoveOnly(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&close_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/websocket/handshake.cpp b/libs/beast/test/beast/websocket/handshake.cpp +--- a/libs/beast/test/beast/websocket/handshake.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/websocket/handshake.cpp 2020-05-02 13:51:02.473315924 -0400 +@@ -18,6 +18,9 @@ + #include + #include + #include ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif + + namespace boost { + namespace beast { +@@ -704,6 +707,23 @@ + } + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ stream& s, ++ std::string host, ++ std::string port, ++ response_type& resp) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_handshake(host, port, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_handshake(resp, host, port, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { +@@ -714,6 +734,9 @@ + testMoveOnly(); + testAsync(); + testIssue1460(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&handshake_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/websocket/ping.cpp b/libs/beast/test/beast/websocket/ping.cpp +--- a/libs/beast/test/beast/websocket/ping.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/websocket/ping.cpp 2020-05-02 13:51:02.474315935 -0400 +@@ -18,6 +18,10 @@ + #include + #include + ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif ++ + namespace boost { + namespace beast { + namespace websocket { +@@ -483,12 +487,30 @@ + } + }; + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ stream& s, ++ ping_data& pdat) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_ping(pdat, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_pong(pdat, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { + testPing(); + testSuspend(); + testMoveOnly(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&ping_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/websocket/read2.cpp b/libs/beast/test/beast/websocket/read2.cpp +--- a/libs/beast/test/beast/websocket/read2.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/websocket/read2.cpp 2020-05-02 13:51:02.474315935 -0400 +@@ -14,6 +14,10 @@ + + #include + ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif ++ + #include + #if BOOST_WORKAROUND(BOOST_GCC, < 80200) + #define BOOST_BEAST_SYMBOL_HIDDEN __attribute__ ((visibility("hidden"))) +@@ -673,10 +677,34 @@ + } + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ stream& s, ++ flat_buffer& dynbuf, ++ net::mutable_buffer buf, ++ std::size_t limit) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_read(dynbuf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_read_some(buf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_read_some(dynbuf, limit, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { + testRead(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&read2_test::testAwaitableCompiles); ++#endif + } + }; + +diff -aruN a/libs/beast/test/beast/websocket/write.cpp b/libs/beast/test/beast/websocket/write.cpp +--- a/libs/beast/test/beast/websocket/write.cpp 2020-04-22 09:34:50.000000000 -0400 ++++ b/libs/beast/test/beast/websocket/write.cpp 2020-05-02 13:51:02.474315935 -0400 +@@ -13,6 +13,10 @@ + #include + #include + ++#if BOOST_ASIO_HAS_CO_AWAIT ++#include ++#endif ++ + #include "test.hpp" + + namespace boost { +@@ -716,6 +720,22 @@ + BEAST_EXPECT(n1 < n0 + s.size()); + } + ++#if BOOST_ASIO_HAS_CO_AWAIT ++ void testAwaitableCompiles( ++ stream& s, ++ net::mutable_buffer buf, ++ bool fin) ++ { ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_write(buf, net::use_awaitable))>); ++ ++ static_assert(std::is_same_v< ++ net::awaitable, decltype( ++ s.async_write_some(fin, buf, net::use_awaitable))>); ++ } ++#endif ++ + void + run() override + { +@@ -726,6 +746,9 @@ + testMoveOnly(); + testIssue300(); + testIssue1666(); ++#if BOOST_ASIO_HAS_CO_AWAIT ++ boost::ignore_unused(&write_test::testAwaitableCompiles); ++#endif + } + }; + diff --git a/boost.spec b/boost.spec index ceb452a..b53598f 100644 --- a/boost.spec +++ b/boost.spec @@ -156,6 +156,9 @@ Patch88: boost-1.73.0-cmakedir.patch # https://github.com/ned14/outcome/issues/223 Patch89: boost-1.73.0-outcome-assert.patch +# https://github.com/boostorg/beast/pull/1927 +Patch90: boost-1.73.0-beast-coroutines.patch + %bcond_with tests %bcond_with docs_generated @@ -669,6 +672,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch87 -p2 %patch88 -p1 %patch89 -p1 +%patch90 -p1 %build # Dump the versions being used into the build logs. From b594da2a2822a4c7eafa8d25c7f8ff29f2d32c60 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 29 May 2020 12:05:15 +0100 Subject: [PATCH 102/203] Rebuilt for Python 3.9 The previous version of boost was already rebuilt for Python 3.9 but the new Boost version needs to be rebuilt now that python3-3.8.3-1.fc33 is in rawhide. --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index b53598f..2eef86d 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri May 29 2020 Jonathan Wakely - 1.73.0-2 +- Rebuilt for Python 3.9 + * Thu May 28 2020 Jonathan Wakely - 1.73.0-1 - Rebase to 1.73.0 - Replace boost-jam and bjam with boost-b2 and b2 From 8e6b263013cbb655a6416782d7adaf8ec01dd296 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= Date: Fri, 29 May 2020 14:30:47 +0200 Subject: [PATCH 103/203] Rebuilt for Python 3.9 (fixup) --- boost.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 2eef86d..9379234 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,7 +1283,7 @@ fi %{_mandir}/man1/b2.1* %changelog -* Fri May 29 2020 Jonathan Wakely - 1.73.0-2 +* Fri May 29 2020 Jonathan Wakely - 1.73.0-3 - Rebuilt for Python 3.9 * Thu May 28 2020 Jonathan Wakely - 1.73.0-1 From 3fcfdd32f84bdadfc8fd99d820e1199cd31934fb Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 5 Jun 2020 18:19:23 +0100 Subject: [PATCH 104/203] Add patch for Boost.Geometry issue #721 --- boost-1.73-geometry-issue721.patch | 23 +++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 boost-1.73-geometry-issue721.patch diff --git a/boost-1.73-geometry-issue721.patch b/boost-1.73-geometry-issue721.patch new file mode 100644 index 0000000..342e1ce --- /dev/null +++ b/boost-1.73-geometry-issue721.patch @@ -0,0 +1,23 @@ +From aafbceccc76dccb75963dd4f596fd1f10ee34b03 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Fri, 5 Jun 2020 19:29:27 +0100 +Subject: [PATCH] Make index::detail::rtree::visitors::insert base class public + +Fixes #721 +--- + include/boost/geometry/index/detail/rtree/visitors/insert.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp +index 2d324cb7f4..5709a930cc 100644 +--- a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp ++++ b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp +@@ -265,7 +265,7 @@ struct insert_traverse_data + // Default insert visitor + template + class insert +- : MembersHolder::visitor ++ : public MembersHolder::visitor + { + protected: + typedef typename MembersHolder::box_type box_type; diff --git a/boost.spec b/boost.spec index 9379234..ef64467 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -159,6 +159,9 @@ Patch89: boost-1.73.0-outcome-assert.patch # https://github.com/boostorg/beast/pull/1927 Patch90: boost-1.73.0-beast-coroutines.patch +# https://github.com/boostorg/geometry/issues/721 +Patch91: boost-1.73-geometry-issue721.patch + %bcond_with tests %bcond_with docs_generated @@ -673,6 +676,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch88 -p1 %patch89 -p1 %patch90 -p1 +%patch91 -p1 %build # Dump the versions being used into the build logs. @@ -1283,6 +1287,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jun 05 2020 Jonathan Wakely - 1.73.0-4 +- Add patch for Boost.Geometry issue #721 + * Fri May 29 2020 Jonathan Wakely - 1.73.0-3 - Rebuilt for Python 3.9 From ddb9ecef4e1c2fe0054193cd286505b18465f2c5 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 5 Jun 2020 19:54:43 +0100 Subject: [PATCH 105/203] Fix paths in new patch --- boost-1.73-geometry-issue721.patch | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/boost-1.73-geometry-issue721.patch b/boost-1.73-geometry-issue721.patch index 342e1ce..0e843b9 100644 --- a/boost-1.73-geometry-issue721.patch +++ b/boost-1.73-geometry-issue721.patch @@ -10,8 +10,8 @@ Fixes #721 diff --git a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp index 2d324cb7f4..5709a930cc 100644 ---- a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp -+++ b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp +--- a/boost/geometry/index/detail/rtree/visitors/insert.hpp ++++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp @@ -265,7 +265,7 @@ struct insert_traverse_data // Default insert visitor template From f1058cd9564aefc607a29ca04812d5cca280a0ca Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 11 Jun 2020 14:13:14 +0100 Subject: [PATCH 106/203] Add patch for Boost.MPI to fix espresso (#1843105) --- boost-1.73-mpi-vector-data.patch | 534 +++++++++++++++++++++++++++++++ boost.spec | 10 +- 2 files changed, 543 insertions(+), 1 deletion(-) create mode 100644 boost-1.73-mpi-vector-data.patch diff --git a/boost-1.73-mpi-vector-data.patch b/boost-1.73-mpi-vector-data.patch new file mode 100644 index 0000000..4fe162a --- /dev/null +++ b/boost-1.73-mpi-vector-data.patch @@ -0,0 +1,534 @@ +From 28a73eac54fbc7cfebfd3b2231ee607284233a00 Mon Sep 17 00:00:00 2001 +From: Florian Weik +Date: Wed, 10 Jun 2020 10:18:21 +0200 +Subject: [PATCH 1/4] fixed ub access to first element of empty vectors + +--- + include/boost/mpi/collectives/all_reduce.hpp | 2 +- + include/boost/mpi/collectives/all_to_all.hpp | 12 ++++++------ + include/boost/mpi/collectives/gatherv.hpp | 8 ++++---- + include/boost/mpi/collectives/reduce.hpp | 4 ++-- + include/boost/mpi/collectives/scatter.hpp | 2 +- + include/boost/mpi/collectives/scatterv.hpp | 4 ++-- + .../mpi/detail/binary_buffer_iprimitive.hpp | 4 ++-- + .../mpi/detail/binary_buffer_oprimitive.hpp | 2 +- + .../mpi/detail/mpi_datatype_primitive.hpp | 2 +- + include/boost/mpi/detail/packed_iprimitive.hpp | 4 ++-- + include/boost/mpi/detail/packed_oprimitive.hpp | 4 ++-- + include/boost/mpi/detail/request_handlers.hpp | 4 ++-- + include/boost/mpi/graph_communicator.hpp | 4 ++-- + include/boost/mpi/group.hpp | 9 +++++---- + include/boost/mpi/nonblocking.hpp | 18 +++++++++--------- + src/cartesian_communicator.cpp | 3 ++- + 16 files changed, 44 insertions(+), 42 deletions(-) + +diff --git a/include/boost/mpi/collectives/all_reduce.hpp b/include/boost/mpi/collectives/all_reduce.hpp +index e6ce93c8..302430ff 100644 +--- a/boost/mpi/collectives/all_reduce.hpp ++++ b/boost/mpi/collectives/all_reduce.hpp +@@ -77,7 +77,7 @@ namespace detail { + // implementation in this case. + // it's not clear how/if we can avoid the copy. + std::vector tmp_in( out_values, out_values + n); +- reduce(comm, &(tmp_in[0]), n, out_values, op, 0); ++ reduce(comm, detail::c_data(tmp_in), n, out_values, op, 0); + } else { + reduce(comm, in_values, n, out_values, op, 0); + } +diff --git a/include/boost/mpi/collectives/all_to_all.hpp b/include/boost/mpi/collectives/all_to_all.hpp +index 4f20be73..a0af5ff3 100644 +--- a/boost/mpi/collectives/all_to_all.hpp ++++ b/boost/mpi/collectives/all_to_all.hpp +@@ -91,10 +91,10 @@ namespace detail { + + // Transmit the actual data + BOOST_MPI_CHECK_RESULT(MPI_Alltoallv, +- (&outgoing[0], &send_sizes[0], +- &send_disps[0], MPI_PACKED, +- &incoming[0], &recv_sizes[0], +- &recv_disps[0], MPI_PACKED, ++ (detail::c_data(outgoing), detail::c_data(send_sizes), ++ detail::c_data(send_disps), MPI_PACKED, ++ detail::c_data(incoming), detail::c_data(recv_sizes), ++ detail::c_data(recv_disps), MPI_PACKED, + comm)); + + // Deserialize data from the iarchive +@@ -126,7 +126,7 @@ all_to_all(const communicator& comm, const std::vector& in_values, + { + BOOST_ASSERT((int)in_values.size() == comm.size()); + out_values.resize(comm.size()); +- ::boost::mpi::all_to_all(comm, &in_values[0], &out_values[0]); ++ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), detail::c_data(out_values)); + } + + template +@@ -143,7 +143,7 @@ all_to_all(const communicator& comm, const std::vector& in_values, int n, + { + BOOST_ASSERT((int)in_values.size() == comm.size() * n); + out_values.resize(comm.size() * n); +- ::boost::mpi::all_to_all(comm, &in_values[0], n, &out_values[0]); ++ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), n, detail::c_data(out_values)); + } + + } } // end namespace boost::mpi +diff --git a/include/boost/mpi/collectives/gatherv.hpp b/include/boost/mpi/collectives/gatherv.hpp +index 6b8d706f..5fae9942 100644 +--- a/boost/mpi/collectives/gatherv.hpp ++++ b/boost/mpi/collectives/gatherv.hpp +@@ -87,7 +87,7 @@ gatherv(const communicator& comm, const T* in_values, int in_size, + { + if (comm.rank() == root) + detail::gatherv_impl(comm, in_values, in_size, +- out_values, &sizes[0], &displs[0], ++ out_values, detail::c_data(sizes), detail::c_data(displs), + root, is_mpi_datatype()); + else + detail::gatherv_impl(comm, in_values, in_size, root, is_mpi_datatype()); +@@ -99,7 +99,7 @@ gatherv(const communicator& comm, const std::vector& in_values, + T* out_values, const std::vector& sizes, const std::vector& displs, + int root) + { +- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, displs, root); ++ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, displs, root); + } + + template +@@ -113,7 +113,7 @@ template + void gatherv(const communicator& comm, const std::vector& in_values, int root) + { + BOOST_ASSERT(comm.rank() != root); +- detail::gatherv_impl(comm, &in_values[0], in_values.size(), root, is_mpi_datatype()); ++ detail::gatherv_impl(comm, detail::c_data(in_values), in_values.size(), root, is_mpi_datatype()); + } + + /////////////////////// +@@ -139,7 +139,7 @@ void + gatherv(const communicator& comm, const std::vector& in_values, + T* out_values, const std::vector& sizes, int root) + { +- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, root); ++ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, root); + } + + } } // end namespace boost::mpi +diff --git a/include/boost/mpi/collectives/reduce.hpp b/include/boost/mpi/collectives/reduce.hpp +index 3248e324..76a28212 100644 +--- a/boost/mpi/collectives/reduce.hpp ++++ b/boost/mpi/collectives/reduce.hpp +@@ -335,7 +335,7 @@ void + reduce(const communicator & comm, std::vector const & in_values, Op op, + int root) + { +- reduce(comm, &in_values.front(), in_values.size(), op, root); ++ reduce(comm, detail::c_data(in_values), in_values.size(), op, root); + } + + template +@@ -344,7 +344,7 @@ reduce(const communicator & comm, std::vector const & in_values, + std::vector & out_values, Op op, int root) + { + if (root == comm.rank()) out_values.resize(in_values.size()); +- reduce(comm, &in_values.front(), in_values.size(), &out_values.front(), op, ++ reduce(comm, detail::c_data(in_values), in_values.size(), detail::c_data(out_values), op, + root); + } + +diff --git a/include/boost/mpi/collectives/scatter.hpp b/include/boost/mpi/collectives/scatter.hpp +index ae3adcbc..f967060a 100644 +--- a/boost/mpi/collectives/scatter.hpp ++++ b/boost/mpi/collectives/scatter.hpp +@@ -188,7 +188,7 @@ void + scatter(const communicator& comm, const std::vector& in_values, + T* out_values, int n, int root) + { +- ::boost::mpi::scatter(comm, &in_values[0], out_values, n, root); ++ ::boost::mpi::scatter(comm, detail::c_data(in_values), out_values, n, root); + } + + template +diff --git a/include/boost/mpi/collectives/scatterv.hpp b/include/boost/mpi/collectives/scatterv.hpp +index f53f704b..7f2fd129 100644 +--- a/boost/mpi/collectives/scatterv.hpp ++++ b/boost/mpi/collectives/scatterv.hpp +@@ -142,7 +142,7 @@ void + scatterv(const communicator& comm, const std::vector& in_values, + const std::vector& sizes, T* out_values, int root) + { +- ::boost::mpi::scatterv(comm, &in_values[0], sizes, out_values, root); ++ ::boost::mpi::scatterv(comm, detail::c_data(in_values), sizes, out_values, root); + } + + template +@@ -159,7 +159,7 @@ void + scatterv(const communicator& comm, const std::vector& in_values, + T* out_values, int out_size, int root) + { +- ::boost::mpi::scatterv(comm, &in_values[0], out_values, out_size, root); ++ ::boost::mpi::scatterv(comm, detail::c_data(in_values), out_values, out_size, root); + } + + } } // end namespace boost::mpi +diff --git a/include/boost/mpi/detail/binary_buffer_iprimitive.hpp b/include/boost/mpi/detail/binary_buffer_iprimitive.hpp +index 388cd44c..087d8529 100644 +--- a/boost/mpi/detail/binary_buffer_iprimitive.hpp ++++ b/boost/mpi/detail/binary_buffer_iprimitive.hpp +@@ -41,12 +41,12 @@ class BOOST_MPI_DECL binary_buffer_iprimitive + + void* address () + { +- return &buffer_.front(); ++ return detail::c_data(buffer_); + } + + void const* address () const + { +- return &buffer_.front(); ++ return detail::c_data(buffer_); + } + + const std::size_t& size() const +diff --git a/include/boost/mpi/detail/binary_buffer_oprimitive.hpp b/include/boost/mpi/detail/binary_buffer_oprimitive.hpp +index 313097b7..fa0645d7 100644 +--- a/boost/mpi/detail/binary_buffer_oprimitive.hpp ++++ b/boost/mpi/detail/binary_buffer_oprimitive.hpp +@@ -40,7 +40,7 @@ class BOOST_MPI_DECL binary_buffer_oprimitive + + void const * address() const + { +- return &buffer_.front(); ++ return detail::c_data(buffer_); + } + + const std::size_t& size() const +diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp +index fc05d786..5b3cdf54 100644 +--- a/boost/mpi/detail/mpi_datatype_primitive.hpp ++++ b/boost/mpi/detail/mpi_datatype_primitive.hpp +@@ -133,7 +133,7 @@ class mpi_datatype_primitive + template + static T* get_data(std::vector& v) + { +- return v.empty() ? 0 : &(v[0]); ++ return detail::c_data(v); + } + + std::vector addresses; +diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp +index 85a4010f..e402a20a 100644 +--- a/boost/mpi/detail/packed_iprimitive.hpp ++++ b/boost/mpi/detail/packed_iprimitive.hpp +@@ -39,12 +39,12 @@ class BOOST_MPI_DECL packed_iprimitive + + void* address () + { +- return &buffer_[0]; ++ return detail::c_data(buffer_); + } + + void const* address () const + { +- return &buffer_[0]; ++ return detail::c_data(buffer_); + } + + const std::size_t& size() const +diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp +index 4ca8e072..c9ce44dc 100644 +--- a/boost/mpi/detail/packed_oprimitive.hpp ++++ b/boost/mpi/detail/packed_oprimitive.hpp +@@ -38,7 +38,7 @@ class BOOST_MPI_DECL packed_oprimitive + + void const * address() const + { +- return &buffer_[0]; ++ return detail::c_data(buffer_); + } + + const std::size_t& size() const +@@ -114,7 +114,7 @@ class BOOST_MPI_DECL packed_oprimitive + + static buffer_type::value_type* get_data(buffer_type& b) + { +- return b.empty() ? 0 : &(b[0]); ++ return detail::c_data(b); + } + + buffer_type& buffer_; +diff --git a/include/boost/mpi/detail/request_handlers.hpp b/include/boost/mpi/detail/request_handlers.hpp +index 50a22ec3..8283918b 100644 +--- a/boost/mpi/detail/request_handlers.hpp ++++ b/boost/mpi/detail/request_handlers.hpp +@@ -456,7 +456,7 @@ class request::legacy_dynamic_primitive_array_handler + // Resize our buffer and get ready to receive its data + this->extra::m_values.resize(this->extra::m_count); + BOOST_MPI_CHECK_RESULT(MPI_Irecv, +- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype(), ++ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype(), + stat.source(), stat.tag(), + MPI_Comm(m_comm), m_requests + 1)); + } +@@ -478,7 +478,7 @@ class request::legacy_dynamic_primitive_array_handler + // Resize our buffer and get ready to receive its data + this->extra::m_values.resize(this->extra::m_count); + BOOST_MPI_CHECK_RESULT(MPI_Irecv, +- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype(), ++ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype(), + stat.source(), stat.tag(), + MPI_Comm(m_comm), m_requests + 1)); + } else +diff --git a/include/boost/mpi/graph_communicator.hpp b/include/boost/mpi/graph_communicator.hpp +index d49703eb..5bd1cf28 100644 +--- a/boost/mpi/graph_communicator.hpp ++++ b/boost/mpi/graph_communicator.hpp +@@ -235,8 +235,8 @@ graph_communicator::setup_graph(const communicator& comm, const Graph& graph, + BOOST_MPI_CHECK_RESULT(MPI_Graph_create, + ((MPI_Comm)comm, + nvertices, +- &indices[0], +- edges.empty()? (int*)0 : &edges[0], ++ detail::c_data(indices), ++ detail::c_data(edges), + reorder, + &newcomm)); + this->comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); +diff --git a/include/boost/mpi/group.hpp b/include/boost/mpi/group.hpp +index 103b35a1..7be24df1 100644 +--- a/boost/mpi/group.hpp ++++ b/boost/mpi/group.hpp +@@ -16,6 +16,7 @@ + #define BOOST_MPI_GROUP_HPP + + #include ++#include + #include + #include + #include +@@ -272,9 +273,9 @@ group::translate_ranks(InputIterator first, InputIterator last, + BOOST_MPI_CHECK_RESULT(MPI_Group_translate_ranks, + ((MPI_Group)*this, + in_array.size(), +- &in_array[0], ++ detail::c_data(in_array), + (MPI_Group)to_group, +- &out_array[0])); ++ detail::c_data(out_array))); + + for (std::vector::size_type i = 0, n = out_array.size(); i < n; ++i) + *out++ = out_array[i]; +@@ -300,7 +301,7 @@ group group::include(InputIterator first, InputIterator last) + std::vector ranks(first, last); + MPI_Group result; + BOOST_MPI_CHECK_RESULT(MPI_Group_incl, +- ((MPI_Group)*this, ranks.size(), &ranks[0], &result)); ++ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result)); + return group(result, /*adopt=*/true); + } + +@@ -322,7 +323,7 @@ group group::exclude(InputIterator first, InputIterator last) + std::vector ranks(first, last); + MPI_Group result; + BOOST_MPI_CHECK_RESULT(MPI_Group_excl, +- ((MPI_Group)*this, ranks.size(), &ranks[0], &result)); ++ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result)); + return group(result, /*adopt=*/true); + } + +diff --git a/include/boost/mpi/nonblocking.hpp b/include/boost/mpi/nonblocking.hpp +index fe944be8..5ffd00f7 100644 +--- a/boost/mpi/nonblocking.hpp ++++ b/boost/mpi/nonblocking.hpp +@@ -91,7 +91,7 @@ wait_any(ForwardIterator first, ForwardIterator last) + int index; + status stat; + BOOST_MPI_CHECK_RESULT(MPI_Waitany, +- (n, &requests[0], &index, &stat.m_status)); ++ (n, detail::c_data(requests), &index, &stat.m_status)); + + // We don't have a notion of empty requests or status objects, + // so this is an error. +@@ -222,8 +222,8 @@ wait_all(ForwardIterator first, ForwardIterator last, OutputIterator out) + // Let MPI wait until all of these operations completes. + std::vector stats(num_outstanding_requests); + BOOST_MPI_CHECK_RESULT(MPI_Waitall, +- (num_outstanding_requests, &requests[0], +- &stats[0])); ++ (num_outstanding_requests, detail::c_data(requests), ++ detail::c_data(stats))); + + for (std::vector::iterator i = stats.begin(); + i != stats.end(); ++i, ++out) { +@@ -289,7 +289,7 @@ wait_all(ForwardIterator first, ForwardIterator last) + + // Let MPI wait until all of these operations completes. + BOOST_MPI_CHECK_RESULT(MPI_Waitall, +- (num_outstanding_requests, &requests[0], ++ (num_outstanding_requests, detail::c_data(requests), + MPI_STATUSES_IGNORE)); + + // Signal completion +@@ -346,7 +346,7 @@ test_all(ForwardIterator first, ForwardIterator last, OutputIterator out) + int flag = 0; + int n = requests.size(); + std::vector stats(n); +- BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, &requests[0], &flag, &stats[0])); ++ BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, detail::c_data(requests), &flag, detail::c_data(stats))); + if (flag) { + for (int i = 0; i < n; ++i, ++out) { + status stat; +@@ -379,7 +379,7 @@ test_all(ForwardIterator first, ForwardIterator last) + int flag = 0; + int n = requests.size(); + BOOST_MPI_CHECK_RESULT(MPI_Testall, +- (n, &requests[0], &flag, MPI_STATUSES_IGNORE)); ++ (n, detail::c_data(requests), &flag, MPI_STATUSES_IGNORE)); + return flag != 0; + } + +@@ -483,8 +483,8 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last, + // Let MPI wait until some of these operations complete. + int num_completed; + BOOST_MPI_CHECK_RESULT(MPI_Waitsome, +- (n, &requests[0], &num_completed, &indices[0], +- &stats[0])); ++ (n, detail::c_data(requests), &num_completed, detail::c_data(indices), ++ detail::c_data(stats))); + + // Translate the index-based result of MPI_Waitsome into a + // partitioning on the requests. +@@ -591,7 +591,7 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last) + // Let MPI wait until some of these operations complete. + int num_completed; + BOOST_MPI_CHECK_RESULT(MPI_Waitsome, +- (n, &requests[0], &num_completed, &indices[0], ++ (n, detail::c_data(requests), &num_completed, detail::c_data(indices), + MPI_STATUSES_IGNORE)); + + // Translate the index-based result of MPI_Waitsome into a +diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp +index a46f0bc2..3b15eb0d 100644 +--- a/libs/mpi/src/cartesian_communicator.cpp ++++ b/libs/mpi/src/cartesian_communicator.cpp +@@ -10,12 +10,13 @@ + #include + + #include ++#include + + namespace boost { namespace mpi { + + namespace { + template +- T* c_data(std::vector& v) { return &(v[0]); } ++ T* c_data(std::vector& v) { return c_data(v); } + } + + std::ostream& + +From 5a8e9efe89ba00e32713fd777a82bc8f30a0900d Mon Sep 17 00:00:00 2001 +From: Florian Weik +Date: Wed, 10 Jun 2020 11:04:23 +0200 +Subject: [PATCH 2/4] added test with empty vector + +--- + test/block_nonblock_test.cpp | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/test/block_nonblock_test.cpp b/test/block_nonblock_test.cpp +index 3088b655..2ec02256 100644 +--- a/libs/mpi/test/block_nonblock_test.cpp ++++ b/libs/mpi/test/block_nonblock_test.cpp +@@ -82,7 +82,12 @@ BOOST_AUTO_TEST_CASE(non_blocking) + fmt << "S" << i; + strings[i] = fmt.str(); + } +- ++ ++ std::vector empty; ++ ++ BOOST_CHECK(test(world, empty, false, true)); ++ BOOST_CHECK(test(world, empty, false, false)); ++ + BOOST_CHECK(test(world, integers, true, true)); + BOOST_CHECK(test(world, integers, true, false)); + BOOST_CHECK(test(world, strings, true, true)); + +From 5e8edd184cb0d5af842392eb58dd797a23241615 Mon Sep 17 00:00:00 2001 +From: Florian Weik +Date: Thu, 11 Jun 2020 14:59:45 +0200 +Subject: [PATCH 4/4] fixed cartesian communicator + +--- + src/cartesian_communicator.cpp | 17 ++++++----------- + 1 file changed, 6 insertions(+), 11 deletions(-) + +diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp +index 3b15eb0d..946d41fd 100644 +--- a/libs/mpi/src/cartesian_communicator.cpp ++++ b/libs/mpi/src/cartesian_communicator.cpp +@@ -14,11 +14,6 @@ + + namespace boost { namespace mpi { + +-namespace { +- template +- T* c_data(std::vector& v) { return c_data(v); } +-} +- + std::ostream& + operator<<(std::ostream& out, cartesian_dimension const& d) { + out << '(' << d.size << ','; +@@ -64,7 +59,7 @@ cartesian_communicator::cartesian_communicator(const communicator& comm, + MPI_Comm newcomm; + BOOST_MPI_CHECK_RESULT(MPI_Cart_create, + ((MPI_Comm)comm, dims.size(), +- c_data(dims), c_data(periodic), ++ detail::c_data(dims), detail::c_data(periodic), + int(reorder), &newcomm)); + if(newcomm != MPI_COMM_NULL) { + comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); +@@ -86,7 +81,7 @@ cartesian_communicator::cartesian_communicator(const cartesian_communicator& com + + MPI_Comm newcomm; + BOOST_MPI_CHECK_RESULT(MPI_Cart_sub, +- ((MPI_Comm)comm, c_data(bitset), &newcomm)); ++ ((MPI_Comm)comm, detail::c_data(bitset), &newcomm)); + if(newcomm != MPI_COMM_NULL) { + comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); + } +@@ -105,7 +100,7 @@ cartesian_communicator::rank(const std::vector& coords ) const { + int r = -1; + assert(int(coords.size()) == ndims()); + BOOST_MPI_CHECK_RESULT(MPI_Cart_rank, +- (MPI_Comm(*this), c_data(const_cast&>(coords)), ++ (MPI_Comm(*this), detail::c_data(const_cast&>(coords)), + &r)); + return r; + } +@@ -123,7 +118,7 @@ std::vector + cartesian_communicator::coordinates(int rk) const { + std::vector cbuf(ndims()); + BOOST_MPI_CHECK_RESULT(MPI_Cart_coords, +- (MPI_Comm(*this), rk, cbuf.size(), c_data(cbuf) )); ++ (MPI_Comm(*this), rk, cbuf.size(), detail::c_data(cbuf) )); + return cbuf; + } + +@@ -136,7 +131,7 @@ cartesian_communicator::topology( cartesian_topology& topo, + std::vector cdims(ndims); + std::vector cperiods(ndims); + BOOST_MPI_CHECK_RESULT(MPI_Cart_get, +- (MPI_Comm(*this), ndims, c_data(cdims), c_data(cperiods), c_data(coords))); ++ (MPI_Comm(*this), ndims, detail::c_data(cdims), detail::c_data(cperiods), detail::c_data(coords))); + cartesian_topology res(cdims.begin(), cperiods.begin(), ndims); + topo.swap(res); + } +@@ -173,7 +168,7 @@ cartesian_dimensions(int sz, std::vector& dims) { + int leftover = sz % min; + + BOOST_MPI_CHECK_RESULT(MPI_Dims_create, +- (sz-leftover, dims.size(), c_data(dims))); ++ (sz-leftover, dims.size(), detail::c_data(dims))); + return dims; + } + diff --git a/boost.spec b/boost.spec index ef64467..640f956 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -162,6 +162,10 @@ Patch90: boost-1.73.0-beast-coroutines.patch # https://github.com/boostorg/geometry/issues/721 Patch91: boost-1.73-geometry-issue721.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1843105 +# https://github.com/boostorg/mpi/pull/119 +Patch92: boost-1.73-mpi-vector-data.patch + %bcond_with tests %bcond_with docs_generated @@ -677,6 +681,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch89 -p1 %patch90 -p1 %patch91 -p1 +%patch92 -p1 %build # Dump the versions being used into the build logs. @@ -1287,6 +1292,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jun 11 2020 Jonathan Wakely - 1.73.0-5 +- Add patch for Boost.MPI to fix espresso (#1843105) + * Fri Jun 05 2020 Jonathan Wakely - 1.73.0-4 - Add patch for Boost.Geometry issue #721 From 9e8114f8223757c60b340289a7d867d500c06ceb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Mon, 27 Jul 2020 13:19:20 +0000 Subject: [PATCH 107/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 640f956..747ada9 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1292,6 +1292,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Jul 27 2020 Fedora Release Engineering - 1.73.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Thu Jun 11 2020 Jonathan Wakely - 1.73.0-5 - Add patch for Boost.MPI to fix espresso (#1843105) From cdb89c50f8e1d0bce4f9e87121b5580d4e5a6bca Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 1 Aug 2020 00:15:32 +0000 Subject: [PATCH 108/203] - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 747ada9..f3ac678 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1292,6 +1292,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Aug 01 2020 Fedora Release Engineering - 1.73.0-7 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + * Mon Jul 27 2020 Fedora Release Engineering - 1.73.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From c570dcff0da5497ccdf7de88ff8a022716ab8981 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 30 Oct 2020 12:37:44 +0000 Subject: [PATCH 109/203] Build Boost.Iostreams with LZMA support (#1893060) --- boost.spec | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index f3ac678..d8ce707 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -114,6 +114,7 @@ BuildRequires: m4 BuildRequires: libstdc++-devel BuildRequires: bzip2-devel BuildRequires: zlib-devel +BuildRequires: xz-devel %if %{with python3} BuildRequires: python3-devel BuildRequires: python3-numpy @@ -278,6 +279,7 @@ Library (STL). %package iostreams Summary: Run-time component of boost iostreams library +Requires: xz%{?_isa} %description iostreams @@ -1292,6 +1294,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Oct 30 2020 Jonathan Wakely - 1.73.0-8 +- Build Boost.Iostreams with LZMA support (#1893060) + * Sat Aug 01 2020 Fedora Release Engineering - 1.73.0-7 - Second attempt - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild From 31a14064832bbd74084d959c06c81e3734699e07 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 4 Nov 2020 17:22:16 +0000 Subject: [PATCH 110/203] Remove incorrect dependency on xz, only the shared lib is needed This prevents installing the 32-bit boost-iostreams. package on 64-bit systems, because the 32-bit xz package is not available. The dependency on the shared lib will be added automatically anyway. --- boost.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index d8ce707..52a3a45 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -279,7 +279,6 @@ Library (STL). %package iostreams Summary: Run-time component of boost iostreams library -Requires: xz%{?_isa} %description iostreams @@ -1294,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Nov 04 2020 Jonathan Wakely - 1.73.0-9 +- Remove incorrect dependency on xz, only the shared lib is needed + * Fri Oct 30 2020 Jonathan Wakely - 1.73.0-8 - Build Boost.Iostreams with LZMA support (#1893060) From 820bf321370d25d29274339e01501f287eab35ba Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Sat, 14 Nov 2020 00:15:24 +0000 Subject: [PATCH 111/203] Patch Boost.Python for Python 3.10 changes (#1896382) --- boost-1.73-python3.10.patch | 108 ++++++++++++++++++++++++++++++++++++ boost.spec | 10 +++- 2 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 boost-1.73-python3.10.patch diff --git a/boost-1.73-python3.10.patch b/boost-1.73-python3.10.patch new file mode 100644 index 0000000..a6106a9 --- /dev/null +++ b/boost-1.73-python3.10.patch @@ -0,0 +1,108 @@ +--- boost_1_73_0/boost/parameter/python.hpp% 2020-11-13 23:37:19.232520985 +0000 ++++ boost_1_73_0/boost/parameter/python.hpp 2020-11-13 23:40:58.808393161 +0000 +@@ -66,7 +66,7 @@ + + if (Py_TYPE(&unspecified) == 0) + { +- Py_TYPE(&unspecified) = &PyType_Type; ++ Py_SET_TYPE(&unspecified, &PyType_Type); + PyType_Ready(&unspecified); + } + +--- boost_1_73_0/libs/python/src/object/class.cpp~ 2020-11-13 23:37:19.236520983 +0000 ++++ boost_1_73_0/libs/python/src/object/class.cpp 2020-11-13 23:40:40.233403979 +0000 +@@ -208,7 +208,7 @@ + { + if (static_data_object.tp_dict == 0) + { +- Py_TYPE(&static_data_object) = &PyType_Type; ++ Py_SET_TYPE(&static_data_object, &PyType_Type); + static_data_object.tp_base = &PyProperty_Type; + if (PyType_Ready(&static_data_object)) + return 0; +@@ -316,7 +316,7 @@ + { + if (class_metatype_object.tp_dict == 0) + { +- Py_TYPE(&class_metatype_object) = &PyType_Type; ++ Py_SET_TYPE(&class_metatype_object, &PyType_Type); + class_metatype_object.tp_base = &PyType_Type; + if (PyType_Ready(&class_metatype_object)) + return type_handle(); +@@ -375,11 +375,11 @@ + // there. A negative number indicates that the extra + // instance memory is not yet allocated to any holders. + #if PY_VERSION_HEX >= 0x02060000 +- Py_SIZE(result) = ++ Py_SET_SIZE(result, + #else +- result->ob_size = ++ result->ob_size = ( + #endif +- -(static_cast(offsetof(instance<>,storage) + instance_size)); ++ -(static_cast(offsetof(instance<>,storage) + instance_size))); + } + return (PyObject*)result; + } +@@ -470,7 +470,7 @@ + { + if (class_type_object.tp_dict == 0) + { +- Py_TYPE(&class_type_object) = incref(class_metatype().get()); ++ Py_SET_TYPE(&class_type_object, incref(class_metatype().get())); + class_type_object.tp_base = &PyBaseObject_Type; + if (PyType_Ready(&class_type_object)) + return type_handle(); +@@ -739,7 +739,7 @@ + assert(holder_offset >= offsetof(objects::instance<>,storage)); + + // Record the fact that the storage is occupied, noting where it starts +- Py_SIZE(self) = holder_offset; ++ Py_SET_SIZE(self, holder_offset); + return (char*)self + holder_offset; + } + else +--- boost_1_73_0/libs/python/src/object/life_support.cpp~ 2020-11-13 23:37:19.240520980 +0000 ++++ boost_1_73_0/libs/python/src/object/life_support.cpp 2020-11-13 23:39:37.492440504 +0000 +@@ -93,7 +93,7 @@ + + if (Py_TYPE(&life_support_type) == 0) + { +- Py_TYPE(&life_support_type) = &PyType_Type; ++ Py_SET_TYPE(&life_support_type, &PyType_Type); + PyType_Ready(&life_support_type); + } + +--- boost_1_73_0/libs/python/src/object/function.cpp~ 2020-11-13 23:37:19.244520978 +0000 ++++ boost_1_73_0/libs/python/src/object/function.cpp 2020-11-13 23:39:14.260454029 +0000 +@@ -107,7 +107,7 @@ + PyObject* p = this; + if (Py_TYPE(&function_type) == 0) + { +- Py_TYPE(&function_type) = &PyType_Type; ++ Py_SET_TYPE(&function_type, &PyType_Type); + ::PyType_Ready(&function_type); + } + +--- boost_1_73_0/libs/python/src/object/enum.cpp~ 2020-11-13 23:37:19.248520976 +0000 ++++ boost_1_73_0/libs/python/src/object/enum.cpp 2020-11-13 23:38:51.943467016 +0000 +@@ -153,7 +153,7 @@ + { + if (enum_type_object.tp_dict == 0) + { +- Py_TYPE(&enum_type_object) = incref(&PyType_Type); ++ Py_SET_TYPE(&enum_type_object, incref(&PyType_Type)); + #if PY_VERSION_HEX >= 0x03000000 + enum_type_object.tp_base = &PyLong_Type; + #else +--- boost_1_73_0/boost/python/object/make_instance.hpp~ 2020-11-14 00:26:47.356724835 +0000 ++++ boost_1_73_0/boost/python/object/make_instance.hpp 2020-11-14 00:26:49.947723159 +0000 +@@ -47,7 +47,7 @@ + + // Note the position of the internally-stored Holder, + // for the sake of destruction +- Py_SIZE(instance) = offsetof(instance_t, storage); ++ Py_SET_SIZE(instance, offsetof(instance_t, storage)); + + // Release ownership of the python object + protect.cancel(); diff --git a/boost.spec b/boost.spec index 52a3a45..f60b6b3 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -167,6 +167,10 @@ Patch91: boost-1.73-geometry-issue721.patch # https://github.com/boostorg/mpi/pull/119 Patch92: boost-1.73-mpi-vector-data.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1896382 +# https://github.com/boostorg/python/issues/325 +Patch93: boost-1.73-python3.10.patch + %bcond_with tests %bcond_with docs_generated @@ -683,6 +687,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch90 -p1 %patch91 -p1 %patch92 -p1 +%patch93 -p1 %build # Dump the versions being used into the build logs. @@ -1293,6 +1298,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Nov 13 2020 Jonathan Wakely - 1.73.0-10 +- Patch Boost.Python for Python 3.10 changes (#1896382) + * Wed Nov 04 2020 Jonathan Wakely - 1.73.0-9 - Remove incorrect dependency on xz, only the shared lib is needed From 8158d2d41c9b98b1bcfb02b524b7bbf85e320e6a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 20 Nov 2020 10:34:57 +0000 Subject: [PATCH 112/203] Patch Boost.Locale to not access empty vector (#1899888) --- boost-1.73-locale-empty-vector.patch | 37 ++++++++++++++++++++++++++++ boost.spec | 10 +++++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 boost-1.73-locale-empty-vector.patch diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch new file mode 100644 index 0000000..f5cc981 --- /dev/null +++ b/boost-1.73-locale-empty-vector.patch @@ -0,0 +1,37 @@ +From daf4ef50c88c2b9a6bf2c40b537eebc202caad6e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?S=C3=A9bastien=20Gonzalve?= + +Date: Sat, 14 Nov 2020 10:39:47 +0100 +Subject: [PATCH] Do not try to access element when vector is empty + +Trying to access tmp[0] causes a crash on Fedora when assertion on STL +are enabled. + +/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. + +This patch just passes nullptr as pointer to getSortKey() when tmp size +is 0, preventing dereferencing elements in empty vector. + +I guess that &tmp[0] should be optimized as 'no real access' when +disabling assertion, but actually leads to crash when assert are +enabled. +--- + src/icu/collator.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp +index 7f1ea6a..dc59e8c 100644 +--- a/libs/locale/src/icu/collator.cpp ++++ b/libs/locale/src/icu/collator.cpp +@@ -93,7 +93,7 @@ namespace boost { + std::vector tmp; + tmp.resize(str.length()); + icu::Collator *collate = get_collator(level); +- int len = collate->getSortKey(str,&tmp[0],tmp.size()); ++ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); + if(len > int(tmp.size())) { + tmp.resize(len); + collate->getSortKey(str,&tmp[0],tmp.size()); +-- +2.26.2 + diff --git a/boost.spec b/boost.spec index f60b6b3..bb7db15 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -171,6 +171,10 @@ Patch92: boost-1.73-mpi-vector-data.patch # https://github.com/boostorg/python/issues/325 Patch93: boost-1.73-python3.10.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1899888 +# https://github.com/boostorg/locale/issues/52 +Patch94: boost-1.73-locale-empty-vector.patch + %bcond_with tests %bcond_with docs_generated @@ -688,6 +692,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch91 -p1 %patch92 -p1 %patch93 -p1 +%patch94 -p1 %build # Dump the versions being used into the build logs. @@ -1298,6 +1303,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Nov 20 2020 Jonathan Wakely - 1.73.0-11 +- Patch Boost.Locale to not access empty vector (#1899888) + * Fri Nov 13 2020 Jonathan Wakely - 1.73.0-10 - Patch Boost.Python for Python 3.10 changes (#1896382) From 64d97f19ff55594b688ec3c875693627ee95a96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timm=20B=C3=A4der?= Date: Wed, 2 Dec 2020 16:12:37 +0100 Subject: [PATCH 113/203] spec: Don't hardcode gcc Use %set_build_flags to get the proper values for $CFLAGS, $CC, etc. and %{toolchain} to get the toolchain identifier --- boost.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index bb7db15..b2b9740 100644 --- a/boost.spec +++ b/boost.spec @@ -695,6 +695,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch94 -p1 %build +%set_build_flags # Dump the versions being used into the build logs. %if %{with python3} PYTHON3_ABIFLAGS=$(/usr/bin/python3-config --abiflags) @@ -713,7 +714,7 @@ import os ; local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; -using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; +using %{toolchain} : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif @@ -725,7 +726,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth EOF %endif -./bootstrap.sh --with-toolset=gcc --with-icu +./bootstrap.sh --with-toolset=%{toolchain} --with-icu # N.B. When we build the following with PCH, parts of boost (math # library in particular) end up being built second time during @@ -797,7 +798,7 @@ export PATH=/bin${PATH:+:}$PATH echo ============================= build Boost.Build ================== (cd tools/build - ./bootstrap.sh --with-toolset=gcc) + ./bootstrap.sh --with-toolset=%{toolchain}) %check : From ddd384021bb7c3c91086ae564899bb027d19bb65 Mon Sep 17 00:00:00 2001 From: Tomas Hrnciar Date: Fri, 8 Jan 2021 14:10:23 +0100 Subject: [PATCH 114/203] Patch Boost.Python for Python 3.10 - replace _Py_fopen() with fopen() (#1912903) --- boost-1.73-python3.10-Py_fopen.patch | 29 ++++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 boost-1.73-python3.10-Py_fopen.patch diff --git a/boost-1.73-python3.10-Py_fopen.patch b/boost-1.73-python3.10-Py_fopen.patch new file mode 100644 index 0000000..047403f --- /dev/null +++ b/boost-1.73-python3.10-Py_fopen.patch @@ -0,0 +1,29 @@ +From ba90b0adffb5fedc894889b0962c22fff5bb748d Mon Sep 17 00:00:00 2001 +From: Tomas Hrnciar +Date: Thu, 7 Jan 2021 11:46:29 +0100 +Subject: [PATCH] fix Boost with Python 3.10 + +--- + src/exec.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/exec.cpp b/src/exec.cpp +index 171c6f41..caa7d086 100644 +--- a/libs/python/src/exec.cpp ++++ b/libs/python/src/exec.cpp +@@ -106,10 +106,10 @@ object BOOST_PYTHON_DECL exec_file(char const *filename, object global, object l + char *f = const_cast(filename); + // Let python open the file to avoid potential binary incompatibilities. + #if PY_VERSION_HEX >= 0x03040000 +- FILE *fs = _Py_fopen(f, "r"); ++ FILE *fs = fopen(f, "r"); + #elif PY_VERSION_HEX >= 0x03000000 + PyObject *fo = Py_BuildValue("s", f); +- FILE *fs = _Py_fopen(fo, "r"); ++ FILE *fs = fopen(fo, "r"); + Py_DECREF(fo); + #else + PyObject *pyfile = PyFile_FromString(f, const_cast("r")); +-- +2.29.2 + diff --git a/boost.spec b/boost.spec index b2b9740..c0ffd30 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.73.0 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -175,6 +175,9 @@ Patch93: boost-1.73-python3.10.patch # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1912903 +Patch95: boost-1.73-python3.10-Py_fopen.patch + %bcond_with tests %bcond_with docs_generated @@ -693,6 +696,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch92 -p1 %patch93 -p1 %patch94 -p1 +%patch95 -p1 %build %set_build_flags @@ -1304,6 +1308,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jan 8 14:14:00 CET 2021 Tomas Hrnciar - 1.73.0-12 +- Patch Boost.Python for Python 3.10 - replace _Py_fopen() with fopen() (#1912903) + * Fri Nov 20 2020 Jonathan Wakely - 1.73.0-11 - Patch Boost.Locale to not access empty vector (#1899888) From 5c328ce476ac22eee141857a95476773645b25d2 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Wed, 13 Jan 2021 15:19:53 -0800 Subject: [PATCH 115/203] Rebase to 1.75.0 --- boost-1.50.0-fix-non-utf8-files.patch | 22 - boost-1.69-format-allocator.patch | 28 - boost-1.69.0-test-cxx20.patch | 27 - boost-1.73-geometry-issue721.patch | 23 - boost-1.73-mpi-vector-data.patch | 534 ------ boost-1.73-python3.10-Py_fopen.patch | 29 - boost-1.73.0-beast-coroutines.patch | 1466 ----------------- boost-1.73.0-outcome-assert.patch | 24 - ...patch => boost-1.75.0-build-optflags.patch | 29 +- ...rpath.patch => boost-1.75.0-no-rpath.patch | 17 +- boost-cmake-soname.patch | 19 - boost.spec | 83 +- sources | 2 +- 13 files changed, 55 insertions(+), 2248 deletions(-) delete mode 100644 boost-1.50.0-fix-non-utf8-files.patch delete mode 100644 boost-1.69-format-allocator.patch delete mode 100644 boost-1.69.0-test-cxx20.patch delete mode 100644 boost-1.73-geometry-issue721.patch delete mode 100644 boost-1.73-mpi-vector-data.patch delete mode 100644 boost-1.73-python3.10-Py_fopen.patch delete mode 100644 boost-1.73.0-beast-coroutines.patch delete mode 100644 boost-1.73.0-outcome-assert.patch rename boost-1.73.0-build-optflags.patch => boost-1.75.0-build-optflags.patch (70%) rename boost-1.66.0-no-rpath.patch => boost-1.75.0-no-rpath.patch (59%) delete mode 100644 boost-cmake-soname.patch diff --git a/boost-1.50.0-fix-non-utf8-files.patch b/boost-1.50.0-fix-non-utf8-files.patch deleted file mode 100644 index 469b35d..0000000 --- a/boost-1.50.0-fix-non-utf8-files.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/libs/units/example/autoprefixes.cpp b/libs/units/example/autoprefixes.cpp -index 8b2bc43..d04f2fe 100644 ---- a/libs/units/example/autoprefixes.cpp -+++ b/libs/units/example/autoprefixes.cpp -@@ -67,7 +67,7 @@ struct thing_base_unit : boost::units::base_unit - { - static constexpr const char* name() { return("EUR"); } -- static constexpr const char* symbol() { return(""); } -+ static constexpr const char* symbol() { return("€"); } - }; - - int main() -@@ -140,7 +140,7 @@ int main() - - quantity ce = 2048. * euro_base_unit::unit_type(); - cout << name_format << engineering_prefix << ce << endl; // 2.048 kiloEUR -- cout << symbol_format << engineering_prefix << ce << endl; // 2.048 k -+ cout << symbol_format << engineering_prefix << ce << endl; // 2.048 k€ - - - return 0; diff --git a/boost-1.69-format-allocator.patch b/boost-1.69-format-allocator.patch deleted file mode 100644 index 28c43a8..0000000 --- a/boost-1.69-format-allocator.patch +++ /dev/null @@ -1,28 +0,0 @@ ---- boost_1_69_0/boost/format/alt_sstream_impl.hpp~ 2020-03-30 15:20:18.565658757 +0100 -+++ boost_1_69_0/boost/format/alt_sstream_impl.hpp 2020-03-30 15:20:33.768636162 +0100 -@@ -40,8 +40,11 @@ - #ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC - void *vd_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0); - Ch *new_ptr = static_cast(vd_ptr); --#else -+#elif defined BOOST_NO_CXX11_ALLOCATOR - Ch *new_ptr = alloc_.allocate(sz, is_allocated_? eback() : 0); -+#else -+ Ch *new_ptr = std::allocator_traits::allocate(alloc_, -+ sz, is_allocated_? eback() : 0); - #endif - // if this didnt throw, we're safe, update the buffer - dealloc(); -@@ -257,8 +260,11 @@ - #ifdef _RWSTD_NO_CLASS_PARTIAL_SPEC - void *vdptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); - newptr = static_cast(vdptr); --#else -+#elif defined BOOST_NO_CXX11_ALLOCATOR - newptr = alloc_.allocate(new_size, is_allocated_? oldptr : 0); -+#else -+ newptr = std::allocator_traits::allocate(alloc_, -+ new_size, is_allocated_? oldptr : 0); - #endif - } - diff --git a/boost-1.69.0-test-cxx20.patch b/boost-1.69.0-test-cxx20.patch deleted file mode 100644 index be1b52c..0000000 --- a/boost-1.69.0-test-cxx20.patch +++ /dev/null @@ -1,27 +0,0 @@ -From db6b98c72783351e0acd3c558691323a7a103ba9 Mon Sep 17 00:00:00 2001 -From: Raffi Enficiaud -Date: Sat, 9 May 2020 10:42:38 +0200 -Subject: [PATCH] Fixing cast issue when logging wchar_t - ---- - include/boost/test/impl/test_tools.ipp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/include/boost/test/impl/test_tools.ipp b/include/boost/test/impl/test_tools.ipp -index 025cd1a92a..bbee21fbbc 100644 ---- a/include/boost/test/impl/test_tools.ipp -+++ b/include/boost/test/impl/test_tools.ipp -@@ -124,7 +124,12 @@ print_log_value::operator()( std::ostream& ostr, char const* t ) - void - print_log_value::operator()( std::ostream& ostr, wchar_t const* t ) - { -- ostr << ( t ? reinterpret_cast(t) : "null string" ); -+ if(t) { -+ ostr << static_cast(t); -+ } -+ else { -+ ostr << "null w-string"; -+ } - } - - //____________________________________________________________________________// diff --git a/boost-1.73-geometry-issue721.patch b/boost-1.73-geometry-issue721.patch deleted file mode 100644 index 0e843b9..0000000 --- a/boost-1.73-geometry-issue721.patch +++ /dev/null @@ -1,23 +0,0 @@ -From aafbceccc76dccb75963dd4f596fd1f10ee34b03 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Fri, 5 Jun 2020 19:29:27 +0100 -Subject: [PATCH] Make index::detail::rtree::visitors::insert base class public - -Fixes #721 ---- - include/boost/geometry/index/detail/rtree/visitors/insert.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/geometry/index/detail/rtree/visitors/insert.hpp b/include/boost/geometry/index/detail/rtree/visitors/insert.hpp -index 2d324cb7f4..5709a930cc 100644 ---- a/boost/geometry/index/detail/rtree/visitors/insert.hpp -+++ b/boost/geometry/index/detail/rtree/visitors/insert.hpp -@@ -265,7 +265,7 @@ struct insert_traverse_data - // Default insert visitor - template - class insert -- : MembersHolder::visitor -+ : public MembersHolder::visitor - { - protected: - typedef typename MembersHolder::box_type box_type; diff --git a/boost-1.73-mpi-vector-data.patch b/boost-1.73-mpi-vector-data.patch deleted file mode 100644 index 4fe162a..0000000 --- a/boost-1.73-mpi-vector-data.patch +++ /dev/null @@ -1,534 +0,0 @@ -From 28a73eac54fbc7cfebfd3b2231ee607284233a00 Mon Sep 17 00:00:00 2001 -From: Florian Weik -Date: Wed, 10 Jun 2020 10:18:21 +0200 -Subject: [PATCH 1/4] fixed ub access to first element of empty vectors - ---- - include/boost/mpi/collectives/all_reduce.hpp | 2 +- - include/boost/mpi/collectives/all_to_all.hpp | 12 ++++++------ - include/boost/mpi/collectives/gatherv.hpp | 8 ++++---- - include/boost/mpi/collectives/reduce.hpp | 4 ++-- - include/boost/mpi/collectives/scatter.hpp | 2 +- - include/boost/mpi/collectives/scatterv.hpp | 4 ++-- - .../mpi/detail/binary_buffer_iprimitive.hpp | 4 ++-- - .../mpi/detail/binary_buffer_oprimitive.hpp | 2 +- - .../mpi/detail/mpi_datatype_primitive.hpp | 2 +- - include/boost/mpi/detail/packed_iprimitive.hpp | 4 ++-- - include/boost/mpi/detail/packed_oprimitive.hpp | 4 ++-- - include/boost/mpi/detail/request_handlers.hpp | 4 ++-- - include/boost/mpi/graph_communicator.hpp | 4 ++-- - include/boost/mpi/group.hpp | 9 +++++---- - include/boost/mpi/nonblocking.hpp | 18 +++++++++--------- - src/cartesian_communicator.cpp | 3 ++- - 16 files changed, 44 insertions(+), 42 deletions(-) - -diff --git a/include/boost/mpi/collectives/all_reduce.hpp b/include/boost/mpi/collectives/all_reduce.hpp -index e6ce93c8..302430ff 100644 ---- a/boost/mpi/collectives/all_reduce.hpp -+++ b/boost/mpi/collectives/all_reduce.hpp -@@ -77,7 +77,7 @@ namespace detail { - // implementation in this case. - // it's not clear how/if we can avoid the copy. - std::vector tmp_in( out_values, out_values + n); -- reduce(comm, &(tmp_in[0]), n, out_values, op, 0); -+ reduce(comm, detail::c_data(tmp_in), n, out_values, op, 0); - } else { - reduce(comm, in_values, n, out_values, op, 0); - } -diff --git a/include/boost/mpi/collectives/all_to_all.hpp b/include/boost/mpi/collectives/all_to_all.hpp -index 4f20be73..a0af5ff3 100644 ---- a/boost/mpi/collectives/all_to_all.hpp -+++ b/boost/mpi/collectives/all_to_all.hpp -@@ -91,10 +91,10 @@ namespace detail { - - // Transmit the actual data - BOOST_MPI_CHECK_RESULT(MPI_Alltoallv, -- (&outgoing[0], &send_sizes[0], -- &send_disps[0], MPI_PACKED, -- &incoming[0], &recv_sizes[0], -- &recv_disps[0], MPI_PACKED, -+ (detail::c_data(outgoing), detail::c_data(send_sizes), -+ detail::c_data(send_disps), MPI_PACKED, -+ detail::c_data(incoming), detail::c_data(recv_sizes), -+ detail::c_data(recv_disps), MPI_PACKED, - comm)); - - // Deserialize data from the iarchive -@@ -126,7 +126,7 @@ all_to_all(const communicator& comm, const std::vector& in_values, - { - BOOST_ASSERT((int)in_values.size() == comm.size()); - out_values.resize(comm.size()); -- ::boost::mpi::all_to_all(comm, &in_values[0], &out_values[0]); -+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), detail::c_data(out_values)); - } - - template -@@ -143,7 +143,7 @@ all_to_all(const communicator& comm, const std::vector& in_values, int n, - { - BOOST_ASSERT((int)in_values.size() == comm.size() * n); - out_values.resize(comm.size() * n); -- ::boost::mpi::all_to_all(comm, &in_values[0], n, &out_values[0]); -+ ::boost::mpi::all_to_all(comm, detail::c_data(in_values), n, detail::c_data(out_values)); - } - - } } // end namespace boost::mpi -diff --git a/include/boost/mpi/collectives/gatherv.hpp b/include/boost/mpi/collectives/gatherv.hpp -index 6b8d706f..5fae9942 100644 ---- a/boost/mpi/collectives/gatherv.hpp -+++ b/boost/mpi/collectives/gatherv.hpp -@@ -87,7 +87,7 @@ gatherv(const communicator& comm, const T* in_values, int in_size, - { - if (comm.rank() == root) - detail::gatherv_impl(comm, in_values, in_size, -- out_values, &sizes[0], &displs[0], -+ out_values, detail::c_data(sizes), detail::c_data(displs), - root, is_mpi_datatype()); - else - detail::gatherv_impl(comm, in_values, in_size, root, is_mpi_datatype()); -@@ -99,7 +99,7 @@ gatherv(const communicator& comm, const std::vector& in_values, - T* out_values, const std::vector& sizes, const std::vector& displs, - int root) - { -- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, displs, root); -+ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, displs, root); - } - - template -@@ -113,7 +113,7 @@ template - void gatherv(const communicator& comm, const std::vector& in_values, int root) - { - BOOST_ASSERT(comm.rank() != root); -- detail::gatherv_impl(comm, &in_values[0], in_values.size(), root, is_mpi_datatype()); -+ detail::gatherv_impl(comm, detail::c_data(in_values), in_values.size(), root, is_mpi_datatype()); - } - - /////////////////////// -@@ -139,7 +139,7 @@ void - gatherv(const communicator& comm, const std::vector& in_values, - T* out_values, const std::vector& sizes, int root) - { -- ::boost::mpi::gatherv(comm, &in_values[0], in_values.size(), out_values, sizes, root); -+ ::boost::mpi::gatherv(comm, detail::c_data(in_values), in_values.size(), out_values, sizes, root); - } - - } } // end namespace boost::mpi -diff --git a/include/boost/mpi/collectives/reduce.hpp b/include/boost/mpi/collectives/reduce.hpp -index 3248e324..76a28212 100644 ---- a/boost/mpi/collectives/reduce.hpp -+++ b/boost/mpi/collectives/reduce.hpp -@@ -335,7 +335,7 @@ void - reduce(const communicator & comm, std::vector const & in_values, Op op, - int root) - { -- reduce(comm, &in_values.front(), in_values.size(), op, root); -+ reduce(comm, detail::c_data(in_values), in_values.size(), op, root); - } - - template -@@ -344,7 +344,7 @@ reduce(const communicator & comm, std::vector const & in_values, - std::vector & out_values, Op op, int root) - { - if (root == comm.rank()) out_values.resize(in_values.size()); -- reduce(comm, &in_values.front(), in_values.size(), &out_values.front(), op, -+ reduce(comm, detail::c_data(in_values), in_values.size(), detail::c_data(out_values), op, - root); - } - -diff --git a/include/boost/mpi/collectives/scatter.hpp b/include/boost/mpi/collectives/scatter.hpp -index ae3adcbc..f967060a 100644 ---- a/boost/mpi/collectives/scatter.hpp -+++ b/boost/mpi/collectives/scatter.hpp -@@ -188,7 +188,7 @@ void - scatter(const communicator& comm, const std::vector& in_values, - T* out_values, int n, int root) - { -- ::boost::mpi::scatter(comm, &in_values[0], out_values, n, root); -+ ::boost::mpi::scatter(comm, detail::c_data(in_values), out_values, n, root); - } - - template -diff --git a/include/boost/mpi/collectives/scatterv.hpp b/include/boost/mpi/collectives/scatterv.hpp -index f53f704b..7f2fd129 100644 ---- a/boost/mpi/collectives/scatterv.hpp -+++ b/boost/mpi/collectives/scatterv.hpp -@@ -142,7 +142,7 @@ void - scatterv(const communicator& comm, const std::vector& in_values, - const std::vector& sizes, T* out_values, int root) - { -- ::boost::mpi::scatterv(comm, &in_values[0], sizes, out_values, root); -+ ::boost::mpi::scatterv(comm, detail::c_data(in_values), sizes, out_values, root); - } - - template -@@ -159,7 +159,7 @@ void - scatterv(const communicator& comm, const std::vector& in_values, - T* out_values, int out_size, int root) - { -- ::boost::mpi::scatterv(comm, &in_values[0], out_values, out_size, root); -+ ::boost::mpi::scatterv(comm, detail::c_data(in_values), out_values, out_size, root); - } - - } } // end namespace boost::mpi -diff --git a/include/boost/mpi/detail/binary_buffer_iprimitive.hpp b/include/boost/mpi/detail/binary_buffer_iprimitive.hpp -index 388cd44c..087d8529 100644 ---- a/boost/mpi/detail/binary_buffer_iprimitive.hpp -+++ b/boost/mpi/detail/binary_buffer_iprimitive.hpp -@@ -41,12 +41,12 @@ class BOOST_MPI_DECL binary_buffer_iprimitive - - void* address () - { -- return &buffer_.front(); -+ return detail::c_data(buffer_); - } - - void const* address () const - { -- return &buffer_.front(); -+ return detail::c_data(buffer_); - } - - const std::size_t& size() const -diff --git a/include/boost/mpi/detail/binary_buffer_oprimitive.hpp b/include/boost/mpi/detail/binary_buffer_oprimitive.hpp -index 313097b7..fa0645d7 100644 ---- a/boost/mpi/detail/binary_buffer_oprimitive.hpp -+++ b/boost/mpi/detail/binary_buffer_oprimitive.hpp -@@ -40,7 +40,7 @@ class BOOST_MPI_DECL binary_buffer_oprimitive - - void const * address() const - { -- return &buffer_.front(); -+ return detail::c_data(buffer_); - } - - const std::size_t& size() const -diff --git a/include/boost/mpi/detail/mpi_datatype_primitive.hpp b/include/boost/mpi/detail/mpi_datatype_primitive.hpp -index fc05d786..5b3cdf54 100644 ---- a/boost/mpi/detail/mpi_datatype_primitive.hpp -+++ b/boost/mpi/detail/mpi_datatype_primitive.hpp -@@ -133,7 +133,7 @@ class mpi_datatype_primitive - template - static T* get_data(std::vector& v) - { -- return v.empty() ? 0 : &(v[0]); -+ return detail::c_data(v); - } - - std::vector addresses; -diff --git a/include/boost/mpi/detail/packed_iprimitive.hpp b/include/boost/mpi/detail/packed_iprimitive.hpp -index 85a4010f..e402a20a 100644 ---- a/boost/mpi/detail/packed_iprimitive.hpp -+++ b/boost/mpi/detail/packed_iprimitive.hpp -@@ -39,12 +39,12 @@ class BOOST_MPI_DECL packed_iprimitive - - void* address () - { -- return &buffer_[0]; -+ return detail::c_data(buffer_); - } - - void const* address () const - { -- return &buffer_[0]; -+ return detail::c_data(buffer_); - } - - const std::size_t& size() const -diff --git a/include/boost/mpi/detail/packed_oprimitive.hpp b/include/boost/mpi/detail/packed_oprimitive.hpp -index 4ca8e072..c9ce44dc 100644 ---- a/boost/mpi/detail/packed_oprimitive.hpp -+++ b/boost/mpi/detail/packed_oprimitive.hpp -@@ -38,7 +38,7 @@ class BOOST_MPI_DECL packed_oprimitive - - void const * address() const - { -- return &buffer_[0]; -+ return detail::c_data(buffer_); - } - - const std::size_t& size() const -@@ -114,7 +114,7 @@ class BOOST_MPI_DECL packed_oprimitive - - static buffer_type::value_type* get_data(buffer_type& b) - { -- return b.empty() ? 0 : &(b[0]); -+ return detail::c_data(b); - } - - buffer_type& buffer_; -diff --git a/include/boost/mpi/detail/request_handlers.hpp b/include/boost/mpi/detail/request_handlers.hpp -index 50a22ec3..8283918b 100644 ---- a/boost/mpi/detail/request_handlers.hpp -+++ b/boost/mpi/detail/request_handlers.hpp -@@ -456,7 +456,7 @@ class request::legacy_dynamic_primitive_array_handler - // Resize our buffer and get ready to receive its data - this->extra::m_values.resize(this->extra::m_count); - BOOST_MPI_CHECK_RESULT(MPI_Irecv, -- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype(), -+ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype(), - stat.source(), stat.tag(), - MPI_Comm(m_comm), m_requests + 1)); - } -@@ -478,7 +478,7 @@ class request::legacy_dynamic_primitive_array_handler - // Resize our buffer and get ready to receive its data - this->extra::m_values.resize(this->extra::m_count); - BOOST_MPI_CHECK_RESULT(MPI_Irecv, -- (&(this->extra::m_values[0]), this->extra::m_values.size(), get_mpi_datatype(), -+ (detail::c_data(this->extra::m_values), this->extra::m_values.size(), get_mpi_datatype(), - stat.source(), stat.tag(), - MPI_Comm(m_comm), m_requests + 1)); - } else -diff --git a/include/boost/mpi/graph_communicator.hpp b/include/boost/mpi/graph_communicator.hpp -index d49703eb..5bd1cf28 100644 ---- a/boost/mpi/graph_communicator.hpp -+++ b/boost/mpi/graph_communicator.hpp -@@ -235,8 +235,8 @@ graph_communicator::setup_graph(const communicator& comm, const Graph& graph, - BOOST_MPI_CHECK_RESULT(MPI_Graph_create, - ((MPI_Comm)comm, - nvertices, -- &indices[0], -- edges.empty()? (int*)0 : &edges[0], -+ detail::c_data(indices), -+ detail::c_data(edges), - reorder, - &newcomm)); - this->comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); -diff --git a/include/boost/mpi/group.hpp b/include/boost/mpi/group.hpp -index 103b35a1..7be24df1 100644 ---- a/boost/mpi/group.hpp -+++ b/boost/mpi/group.hpp -@@ -16,6 +16,7 @@ - #define BOOST_MPI_GROUP_HPP - - #include -+#include - #include - #include - #include -@@ -272,9 +273,9 @@ group::translate_ranks(InputIterator first, InputIterator last, - BOOST_MPI_CHECK_RESULT(MPI_Group_translate_ranks, - ((MPI_Group)*this, - in_array.size(), -- &in_array[0], -+ detail::c_data(in_array), - (MPI_Group)to_group, -- &out_array[0])); -+ detail::c_data(out_array))); - - for (std::vector::size_type i = 0, n = out_array.size(); i < n; ++i) - *out++ = out_array[i]; -@@ -300,7 +301,7 @@ group group::include(InputIterator first, InputIterator last) - std::vector ranks(first, last); - MPI_Group result; - BOOST_MPI_CHECK_RESULT(MPI_Group_incl, -- ((MPI_Group)*this, ranks.size(), &ranks[0], &result)); -+ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result)); - return group(result, /*adopt=*/true); - } - -@@ -322,7 +323,7 @@ group group::exclude(InputIterator first, InputIterator last) - std::vector ranks(first, last); - MPI_Group result; - BOOST_MPI_CHECK_RESULT(MPI_Group_excl, -- ((MPI_Group)*this, ranks.size(), &ranks[0], &result)); -+ ((MPI_Group)*this, ranks.size(), detail::c_data(ranks), &result)); - return group(result, /*adopt=*/true); - } - -diff --git a/include/boost/mpi/nonblocking.hpp b/include/boost/mpi/nonblocking.hpp -index fe944be8..5ffd00f7 100644 ---- a/boost/mpi/nonblocking.hpp -+++ b/boost/mpi/nonblocking.hpp -@@ -91,7 +91,7 @@ wait_any(ForwardIterator first, ForwardIterator last) - int index; - status stat; - BOOST_MPI_CHECK_RESULT(MPI_Waitany, -- (n, &requests[0], &index, &stat.m_status)); -+ (n, detail::c_data(requests), &index, &stat.m_status)); - - // We don't have a notion of empty requests or status objects, - // so this is an error. -@@ -222,8 +222,8 @@ wait_all(ForwardIterator first, ForwardIterator last, OutputIterator out) - // Let MPI wait until all of these operations completes. - std::vector stats(num_outstanding_requests); - BOOST_MPI_CHECK_RESULT(MPI_Waitall, -- (num_outstanding_requests, &requests[0], -- &stats[0])); -+ (num_outstanding_requests, detail::c_data(requests), -+ detail::c_data(stats))); - - for (std::vector::iterator i = stats.begin(); - i != stats.end(); ++i, ++out) { -@@ -289,7 +289,7 @@ wait_all(ForwardIterator first, ForwardIterator last) - - // Let MPI wait until all of these operations completes. - BOOST_MPI_CHECK_RESULT(MPI_Waitall, -- (num_outstanding_requests, &requests[0], -+ (num_outstanding_requests, detail::c_data(requests), - MPI_STATUSES_IGNORE)); - - // Signal completion -@@ -346,7 +346,7 @@ test_all(ForwardIterator first, ForwardIterator last, OutputIterator out) - int flag = 0; - int n = requests.size(); - std::vector stats(n); -- BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, &requests[0], &flag, &stats[0])); -+ BOOST_MPI_CHECK_RESULT(MPI_Testall, (n, detail::c_data(requests), &flag, detail::c_data(stats))); - if (flag) { - for (int i = 0; i < n; ++i, ++out) { - status stat; -@@ -379,7 +379,7 @@ test_all(ForwardIterator first, ForwardIterator last) - int flag = 0; - int n = requests.size(); - BOOST_MPI_CHECK_RESULT(MPI_Testall, -- (n, &requests[0], &flag, MPI_STATUSES_IGNORE)); -+ (n, detail::c_data(requests), &flag, MPI_STATUSES_IGNORE)); - return flag != 0; - } - -@@ -483,8 +483,8 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last, - // Let MPI wait until some of these operations complete. - int num_completed; - BOOST_MPI_CHECK_RESULT(MPI_Waitsome, -- (n, &requests[0], &num_completed, &indices[0], -- &stats[0])); -+ (n, detail::c_data(requests), &num_completed, detail::c_data(indices), -+ detail::c_data(stats))); - - // Translate the index-based result of MPI_Waitsome into a - // partitioning on the requests. -@@ -591,7 +591,7 @@ wait_some(BidirectionalIterator first, BidirectionalIterator last) - // Let MPI wait until some of these operations complete. - int num_completed; - BOOST_MPI_CHECK_RESULT(MPI_Waitsome, -- (n, &requests[0], &num_completed, &indices[0], -+ (n, detail::c_data(requests), &num_completed, detail::c_data(indices), - MPI_STATUSES_IGNORE)); - - // Translate the index-based result of MPI_Waitsome into a -diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp -index a46f0bc2..3b15eb0d 100644 ---- a/libs/mpi/src/cartesian_communicator.cpp -+++ b/libs/mpi/src/cartesian_communicator.cpp -@@ -10,12 +10,13 @@ - #include - - #include -+#include - - namespace boost { namespace mpi { - - namespace { - template -- T* c_data(std::vector& v) { return &(v[0]); } -+ T* c_data(std::vector& v) { return c_data(v); } - } - - std::ostream& - -From 5a8e9efe89ba00e32713fd777a82bc8f30a0900d Mon Sep 17 00:00:00 2001 -From: Florian Weik -Date: Wed, 10 Jun 2020 11:04:23 +0200 -Subject: [PATCH 2/4] added test with empty vector - ---- - test/block_nonblock_test.cpp | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/test/block_nonblock_test.cpp b/test/block_nonblock_test.cpp -index 3088b655..2ec02256 100644 ---- a/libs/mpi/test/block_nonblock_test.cpp -+++ b/libs/mpi/test/block_nonblock_test.cpp -@@ -82,7 +82,12 @@ BOOST_AUTO_TEST_CASE(non_blocking) - fmt << "S" << i; - strings[i] = fmt.str(); - } -- -+ -+ std::vector empty; -+ -+ BOOST_CHECK(test(world, empty, false, true)); -+ BOOST_CHECK(test(world, empty, false, false)); -+ - BOOST_CHECK(test(world, integers, true, true)); - BOOST_CHECK(test(world, integers, true, false)); - BOOST_CHECK(test(world, strings, true, true)); - -From 5e8edd184cb0d5af842392eb58dd797a23241615 Mon Sep 17 00:00:00 2001 -From: Florian Weik -Date: Thu, 11 Jun 2020 14:59:45 +0200 -Subject: [PATCH 4/4] fixed cartesian communicator - ---- - src/cartesian_communicator.cpp | 17 ++++++----------- - 1 file changed, 6 insertions(+), 11 deletions(-) - -diff --git a/src/cartesian_communicator.cpp b/src/cartesian_communicator.cpp -index 3b15eb0d..946d41fd 100644 ---- a/libs/mpi/src/cartesian_communicator.cpp -+++ b/libs/mpi/src/cartesian_communicator.cpp -@@ -14,11 +14,6 @@ - - namespace boost { namespace mpi { - --namespace { -- template -- T* c_data(std::vector& v) { return c_data(v); } --} -- - std::ostream& - operator<<(std::ostream& out, cartesian_dimension const& d) { - out << '(' << d.size << ','; -@@ -64,7 +59,7 @@ cartesian_communicator::cartesian_communicator(const communicator& comm, - MPI_Comm newcomm; - BOOST_MPI_CHECK_RESULT(MPI_Cart_create, - ((MPI_Comm)comm, dims.size(), -- c_data(dims), c_data(periodic), -+ detail::c_data(dims), detail::c_data(periodic), - int(reorder), &newcomm)); - if(newcomm != MPI_COMM_NULL) { - comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); -@@ -86,7 +81,7 @@ cartesian_communicator::cartesian_communicator(const cartesian_communicator& com - - MPI_Comm newcomm; - BOOST_MPI_CHECK_RESULT(MPI_Cart_sub, -- ((MPI_Comm)comm, c_data(bitset), &newcomm)); -+ ((MPI_Comm)comm, detail::c_data(bitset), &newcomm)); - if(newcomm != MPI_COMM_NULL) { - comm_ptr.reset(new MPI_Comm(newcomm), comm_free()); - } -@@ -105,7 +100,7 @@ cartesian_communicator::rank(const std::vector& coords ) const { - int r = -1; - assert(int(coords.size()) == ndims()); - BOOST_MPI_CHECK_RESULT(MPI_Cart_rank, -- (MPI_Comm(*this), c_data(const_cast&>(coords)), -+ (MPI_Comm(*this), detail::c_data(const_cast&>(coords)), - &r)); - return r; - } -@@ -123,7 +118,7 @@ std::vector - cartesian_communicator::coordinates(int rk) const { - std::vector cbuf(ndims()); - BOOST_MPI_CHECK_RESULT(MPI_Cart_coords, -- (MPI_Comm(*this), rk, cbuf.size(), c_data(cbuf) )); -+ (MPI_Comm(*this), rk, cbuf.size(), detail::c_data(cbuf) )); - return cbuf; - } - -@@ -136,7 +131,7 @@ cartesian_communicator::topology( cartesian_topology& topo, - std::vector cdims(ndims); - std::vector cperiods(ndims); - BOOST_MPI_CHECK_RESULT(MPI_Cart_get, -- (MPI_Comm(*this), ndims, c_data(cdims), c_data(cperiods), c_data(coords))); -+ (MPI_Comm(*this), ndims, detail::c_data(cdims), detail::c_data(cperiods), detail::c_data(coords))); - cartesian_topology res(cdims.begin(), cperiods.begin(), ndims); - topo.swap(res); - } -@@ -173,7 +168,7 @@ cartesian_dimensions(int sz, std::vector& dims) { - int leftover = sz % min; - - BOOST_MPI_CHECK_RESULT(MPI_Dims_create, -- (sz-leftover, dims.size(), c_data(dims))); -+ (sz-leftover, dims.size(), detail::c_data(dims))); - return dims; - } - diff --git a/boost-1.73-python3.10-Py_fopen.patch b/boost-1.73-python3.10-Py_fopen.patch deleted file mode 100644 index 047403f..0000000 --- a/boost-1.73-python3.10-Py_fopen.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ba90b0adffb5fedc894889b0962c22fff5bb748d Mon Sep 17 00:00:00 2001 -From: Tomas Hrnciar -Date: Thu, 7 Jan 2021 11:46:29 +0100 -Subject: [PATCH] fix Boost with Python 3.10 - ---- - src/exec.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/exec.cpp b/src/exec.cpp -index 171c6f41..caa7d086 100644 ---- a/libs/python/src/exec.cpp -+++ b/libs/python/src/exec.cpp -@@ -106,10 +106,10 @@ object BOOST_PYTHON_DECL exec_file(char const *filename, object global, object l - char *f = const_cast(filename); - // Let python open the file to avoid potential binary incompatibilities. - #if PY_VERSION_HEX >= 0x03040000 -- FILE *fs = _Py_fopen(f, "r"); -+ FILE *fs = fopen(f, "r"); - #elif PY_VERSION_HEX >= 0x03000000 - PyObject *fo = Py_BuildValue("s", f); -- FILE *fs = _Py_fopen(fo, "r"); -+ FILE *fs = fopen(fo, "r"); - Py_DECREF(fo); - #else - PyObject *pyfile = PyFile_FromString(f, const_cast("r")); --- -2.29.2 - diff --git a/boost-1.73.0-beast-coroutines.patch b/boost-1.73.0-beast-coroutines.patch deleted file mode 100644 index a95b5f3..0000000 --- a/boost-1.73.0-beast-coroutines.patch +++ /dev/null @@ -1,1466 +0,0 @@ -diff -aruN a/boost/beast/core/detail/impl/read.hpp b/boost/beast/core/detail/impl/read.hpp ---- a/boost/beast/core/detail/impl/read.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/detail/impl/read.hpp 2020-05-02 13:50:11.141761700 -0400 -@@ -214,7 +214,7 @@ - class AsyncReadStream, - class DynamicBuffer, - class CompletionCondition, -- class ReadHandler, -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler, - class> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - async_read( -diff -aruN a/boost/beast/core/detail/is_invocable.hpp b/boost/beast/core/detail/is_invocable.hpp ---- a/boost/beast/core/detail/is_invocable.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/detail/is_invocable.hpp 2020-05-02 13:50:11.141761700 -0400 -@@ -10,6 +10,8 @@ - #ifndef BOOST_BEAST_DETAIL_IS_INVOCABLE_HPP - #define BOOST_BEAST_DETAIL_IS_INVOCABLE_HPP - -+#include -+#include - #include - #include - -@@ -51,6 +53,26 @@ - }; - /** @} */ - -+template -+struct is_completion_token_for : std::false_type -+{ -+}; -+ -+struct any_initiation -+{ -+ template -+ void operator()(AnyArgs&&...); -+}; -+ -+template -+struct is_completion_token_for< -+ CompletionToken, R(Args...), boost::void_t( -+ any_initiation(), std::declval()) -+ )>> : std::true_type -+{ -+}; -+ - } // detail - } // beast - } // boost -diff -aruN a/boost/beast/core/detail/read.hpp b/boost/beast/core/detail/read.hpp ---- a/boost/beast/core/detail/read.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/detail/read.hpp 2020-05-02 13:50:11.142761711 -0400 -@@ -219,7 +219,7 @@ - class AsyncReadStream, - class DynamicBuffer, - class CompletionCondition, -- class ReadHandler -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler - #if ! BOOST_BEAST_DOXYGEN - , class = typename std::enable_if< - is_async_read_stream::value && -diff -aruN a/boost/beast/core/detect_ssl.hpp b/boost/beast/core/detect_ssl.hpp ---- a/boost/beast/core/detect_ssl.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/detect_ssl.hpp 2020-05-02 13:50:11.143761722 -0400 -@@ -374,13 +374,13 @@ - void operator()( - DetectHandler&& h, - AsyncReadStream* s, // references are passed as pointers -- DynamicBuffer& b) -+ DynamicBuffer* b) - { - detect_ssl_op< - typename std::decay::type, - AsyncReadStream, - DynamicBuffer>( -- std::forward(h), *s, b); -+ std::forward(h), *s, *b); - } - }; - -@@ -439,7 +439,7 @@ - detail::run_detect_ssl_op{}, - token, - &stream, // pass the reference by pointer -- buffer); -+ &buffer); - } - - //] -diff -aruN a/boost/beast/core/impl/basic_stream.hpp b/boost/beast/core/impl/basic_stream.hpp ---- a/boost/beast/core/impl/basic_stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/impl/basic_stream.hpp 2020-05-02 13:50:11.144761733 -0400 -@@ -776,7 +776,7 @@ - //------------------------------------------------------------------------------ - - template --template -+template - BOOST_BEAST_ASYNC_RESULT1(ConnectHandler) - basic_stream:: - async_connect( -@@ -795,7 +795,7 @@ - template - template< - class EndpointSequence, -- class RangeConnectHandler, -+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler, - class> - BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void(error_code, typename Protocol::endpoint)) - basic_stream:: -@@ -817,7 +817,7 @@ - template< - class EndpointSequence, - class ConnectCondition, -- class RangeConnectHandler, -+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, typename Protocol::endpoint)) RangeConnectHandler, - class> - BOOST_ASIO_INITFN_RESULT_TYPE(RangeConnectHandler,void (error_code, typename Protocol::endpoint)) - basic_stream:: -@@ -839,7 +839,7 @@ - template - template< - class Iterator, -- class IteratorConnectHandler> -+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler> - BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator)) - basic_stream:: - async_connect( -@@ -860,7 +860,7 @@ - template< - class Iterator, - class ConnectCondition, -- class IteratorConnectHandler> -+ BOOST_ASIO_COMPLETION_TOKEN_FOR(void(error_code, Iterator)) IteratorConnectHandler> - BOOST_ASIO_INITFN_RESULT_TYPE(IteratorConnectHandler,void (error_code, Iterator)) - basic_stream:: - async_connect( -@@ -881,7 +881,7 @@ - //------------------------------------------------------------------------------ - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - basic_stream:: - async_read_some( -@@ -901,7 +901,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - basic_stream:: - async_write_some( -diff -aruN a/boost/beast/core/impl/buffered_read_stream.hpp b/boost/beast/core/impl/buffered_read_stream.hpp ---- a/boost/beast/core/impl/buffered_read_stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/impl/buffered_read_stream.hpp 2020-05-02 13:50:11.144761733 -0400 -@@ -110,7 +110,7 @@ - operator()( - ReadHandler&& h, - buffered_read_stream* s, -- Buffers const& b) -+ Buffers const* b) - { - // If you get an error on the following line it means - // that your handler does not meet the documented type -@@ -124,7 +124,7 @@ - read_op< - Buffers, - typename std::decay::type>( -- std::forward(h), *s, b); -+ std::forward(h), *s, *b); - } - }; - -@@ -141,7 +141,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - buffered_read_stream:: - async_write_some( -@@ -153,7 +153,7 @@ - static_assert(net::is_const_buffer_sequence< - ConstBufferSequence>::value, - "ConstBufferSequence type requirements not met"); -- static_assert(detail::is_invocable::value, - "WriteHandler type requirements not met"); - return next_layer_.async_write_some(buffers, -@@ -212,7 +212,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - buffered_read_stream:: - async_read_some( -@@ -233,7 +233,7 @@ - typename ops::run_read_op{}, - handler, - this, -- buffers); -+ &buffers); - } - - } // beast -diff -aruN a/boost/beast/core/impl/flat_stream.hpp b/boost/beast/core/impl/flat_stream.hpp ---- a/boost/beast/core/impl/flat_stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/core/impl/flat_stream.hpp 2020-05-02 13:50:11.145761743 -0400 -@@ -144,7 +144,7 @@ - template - template< - class MutableBufferSequence, -- class ReadHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - flat_stream:: - async_read_some( -@@ -225,7 +225,7 @@ - template - template< - class ConstBufferSequence, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - flat_stream:: - async_write_some( -diff -aruN a/boost/beast/_experimental/http/impl/icy_stream.hpp b/boost/beast/_experimental/http/impl/icy_stream.hpp ---- a/boost/beast/_experimental/http/impl/icy_stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/_experimental/http/impl/icy_stream.hpp 2020-05-02 13:50:11.146761754 -0400 -@@ -259,7 +259,7 @@ - template - template< - class MutableBufferSequence, -- class ReadHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - icy_stream:: - async_read_some( -@@ -311,7 +311,7 @@ - template - template< - class MutableBufferSequence, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - icy_stream:: - async_write_some( -diff -aruN a/boost/beast/_experimental/test/impl/stream.hpp b/boost/beast/_experimental/test/impl/stream.hpp ---- a/boost/beast/_experimental/test/impl/stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/_experimental/test/impl/stream.hpp 2020-05-02 13:50:11.147761765 -0400 -@@ -306,7 +306,7 @@ - return 0; - } - --template -+template - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - stream:: - async_read_some( -@@ -386,7 +386,7 @@ - return n; - } - --template -+template - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - stream:: - async_write_some( -diff -aruN a/boost/beast/http/field.hpp b/boost/beast/http/field.hpp ---- a/boost/beast/http/field.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/http/field.hpp 2020-05-02 13:50:11.149761786 -0400 -@@ -396,12 +396,9 @@ - string_to_field(string_view s); - - /// Write the text for a field name to an output stream. --inline -+BOOST_BEAST_DECL - std::ostream& --operator<<(std::ostream& os, field f) --{ -- return os << to_string(f); --} -+operator<<(std::ostream& os, field f); - - } // http - } // beast -diff -aruN a/boost/beast/http/impl/field.ipp b/boost/beast/http/impl/field.ipp ---- a/boost/beast/http/impl/field.ipp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/http/impl/field.ipp 2020-05-02 13:50:11.150761798 -0400 -@@ -11,10 +11,12 @@ - #define BOOST_BEAST_HTTP_IMPL_FIELD_IPP - - #include -+#include - #include - #include - #include --#include -+#include -+ - - namespace boost { - namespace beast { -@@ -565,6 +567,12 @@ - return detail::get_field_table().string_to_field(s); - } - -+std::ostream& -+operator<<(std::ostream& os, field f) -+{ -+ return os << to_string(f); -+} -+ - } // http - } // beast - } // boost -diff -aruN a/boost/beast/http/impl/file_body_win32.hpp b/boost/beast/http/impl/file_body_win32.hpp ---- a/boost/beast/http/impl/file_body_win32.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/http/impl/file_body_win32.hpp 2020-05-02 13:50:11.150761798 -0400 -@@ -597,7 +597,7 @@ - template< - class Protocol, class Executor, - bool isRequest, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write_some( - net::basic_stream_socket< -diff -aruN a/boost/beast/http/impl/read.hpp b/boost/beast/http/impl/read.hpp ---- a/boost/beast/http/impl/read.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/http/impl/read.hpp 2020-05-02 13:50:11.150761798 -0400 -@@ -304,7 +304,7 @@ - class AsyncReadStream, - class DynamicBuffer, - bool isRequest, -- class ReadHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - async_read_some( - AsyncReadStream& stream, -@@ -373,7 +373,7 @@ - class AsyncReadStream, - class DynamicBuffer, - bool isRequest, -- class ReadHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - async_read_header( - AsyncReadStream& stream, -@@ -443,7 +443,7 @@ - class AsyncReadStream, - class DynamicBuffer, - bool isRequest, -- class ReadHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - async_read( - AsyncReadStream& stream, -@@ -531,7 +531,7 @@ - class AsyncReadStream, - class DynamicBuffer, - bool isRequest, class Body, class Allocator, -- class ReadHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 ReadHandler> - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - async_read( - AsyncReadStream& stream, -diff -aruN a/boost/beast/http/impl/write.hpp b/boost/beast/http/impl/write.hpp ---- a/boost/beast/http/impl/write.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/http/impl/write.hpp 2020-05-02 13:50:11.150761798 -0400 -@@ -463,7 +463,7 @@ - template< - class AsyncWriteStream, - bool isRequest, class Body, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write_some_impl( - AsyncWriteStream& stream, -@@ -526,7 +526,7 @@ - template< - class AsyncWriteStream, - bool isRequest, class Body, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write_some( - AsyncWriteStream& stream, -@@ -608,7 +608,7 @@ - template< - class AsyncWriteStream, - bool isRequest, class Body, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write_header( - AsyncWriteStream& stream, -@@ -681,7 +681,7 @@ - template< - class AsyncWriteStream, - bool isRequest, class Body, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write( - AsyncWriteStream& stream, -@@ -801,7 +801,7 @@ - template< - class AsyncWriteStream, - bool isRequest, class Body, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write( - AsyncWriteStream& stream, -@@ -830,7 +830,7 @@ - template< - class AsyncWriteStream, - bool isRequest, class Body, class Fields, -- class WriteHandler> -+ BOOST_BEAST_ASYNC_TPARAM2 WriteHandler> - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - async_write( - AsyncWriteStream& stream, -diff -aruN a/boost/beast/http/span_body.hpp b/boost/beast/http/span_body.hpp ---- a/boost/beast/http/span_body.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/http/span_body.hpp 2020-05-02 13:50:11.151761808 -0400 -@@ -36,8 +36,10 @@ - struct span_body - { - private: -- static_assert(std::is_pod::value, -- "POD requirements not met"); -+ static_assert( -+ std::is_trivial::value && -+ std::is_standard_layout::value, -+ "POD requirements not met"); - - public: - /** The type of container used for the body -diff -aruN a/boost/beast/ssl/ssl_stream.hpp b/boost/beast/ssl/ssl_stream.hpp ---- a/boost/beast/ssl/ssl_stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/ssl/ssl_stream.hpp 2020-05-02 13:50:11.151761808 -0400 -@@ -555,7 +555,7 @@ - need to ensure that all data is written before the asynchronous operation - completes. - */ -- template -+ template - BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler, void(boost::system::error_code, std::size_t)) - async_write_some(ConstBufferSequence const& buffers, - BOOST_ASIO_MOVE_ARG(WriteHandler) handler) -@@ -636,7 +636,7 @@ - if you need to ensure that the requested amount of data is read before - the asynchronous operation completes. - */ -- template -+ template - BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler, void(boost::system::error_code, std::size_t)) - async_read_some(MutableBufferSequence const& buffers, - BOOST_ASIO_MOVE_ARG(ReadHandler) handler) -diff -aruN a/boost/beast/version.hpp b/boost/beast/version.hpp ---- a/boost/beast/version.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/version.hpp 2020-05-02 13:50:11.151761808 -0400 -@@ -20,7 +20,7 @@ - This is a simple integer that is incremented by one every - time a set of code changes is merged to the develop branch. - */ --#define BOOST_BEAST_VERSION 290 -+#define BOOST_BEAST_VERSION 292 - - #define BOOST_BEAST_VERSION_STRING "Boost.Beast/" BOOST_STRINGIZE(BOOST_BEAST_VERSION) - -diff -aruN a/boost/beast/websocket/impl/accept.hpp b/boost/beast/websocket/impl/accept.hpp ---- a/boost/beast/websocket/impl/accept.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/impl/accept.hpp 2020-05-02 13:50:11.153761830 -0400 -@@ -542,7 +542,7 @@ - - template - template< -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - stream:: - async_accept( -@@ -564,7 +564,7 @@ - template - template< - class ResponseDecorator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - stream:: - async_accept_ex( -@@ -590,7 +590,7 @@ - template - template< - class ConstBufferSequence, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - stream:: - async_accept( -@@ -621,7 +621,7 @@ - template< - class ConstBufferSequence, - class ResponseDecorator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - stream:: - async_accept_ex( -@@ -654,7 +654,7 @@ - template - template< - class Body, class Allocator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - stream:: - async_accept( -@@ -678,7 +678,7 @@ - template< - class Body, class Allocator, - class ResponseDecorator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - stream:: - async_accept_ex( -diff -aruN a/boost/beast/websocket/impl/close.hpp b/boost/beast/websocket/impl/close.hpp ---- a/boost/beast/websocket/impl/close.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/impl/close.hpp 2020-05-02 13:50:11.153761830 -0400 -@@ -382,7 +382,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT1(CloseHandler) - stream:: - async_close(close_reason const& cr, CloseHandler&& handler) -diff -aruN a/boost/beast/websocket/impl/handshake.hpp b/boost/beast/websocket/impl/handshake.hpp ---- a/boost/beast/websocket/impl/handshake.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/impl/handshake.hpp 2020-05-02 13:50:11.153761830 -0400 -@@ -268,7 +268,7 @@ - //------------------------------------------------------------------------------ - - template --template -+template - BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler) - stream:: - async_handshake( -@@ -293,7 +293,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT1(HandshakeHandler) - stream:: - async_handshake( -diff -aruN a/boost/beast/websocket/impl/ping.hpp b/boost/beast/websocket/impl/ping.hpp ---- a/boost/beast/websocket/impl/ping.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/impl/ping.hpp 2020-05-02 13:50:11.153761830 -0400 -@@ -288,7 +288,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT1(WriteHandler) - stream:: - async_ping(ping_data const& payload, WriteHandler&& handler) -@@ -306,7 +306,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT1(WriteHandler) - stream:: - async_pong(ping_data const& payload, WriteHandler&& handler) -diff -aruN a/boost/beast/websocket/impl/read.hpp b/boost/beast/websocket/impl/read.hpp ---- a/boost/beast/websocket/impl/read.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/impl/read.hpp 2020-05-02 13:50:11.153761830 -0400 -@@ -804,7 +804,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - stream:: - async_read(DynamicBuffer& buffer, ReadHandler&& handler) -@@ -878,7 +878,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - stream:: - async_read_some( -@@ -1263,7 +1263,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(ReadHandler) - stream:: - async_read_some( -diff -aruN a/boost/beast/websocket/impl/write.hpp b/boost/beast/websocket/impl/write.hpp ---- a/boost/beast/websocket/impl/write.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/impl/write.hpp 2020-05-02 13:50:11.153761830 -0400 -@@ -700,7 +700,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - stream:: - async_write_some(bool fin, -@@ -756,7 +756,7 @@ - } - - template --template -+template - BOOST_BEAST_ASYNC_RESULT2(WriteHandler) - stream:: - async_write( -diff -aruN a/boost/beast/websocket/stream.hpp b/boost/beast/websocket/stream.hpp ---- a/boost/beast/websocket/stream.hpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/boost/beast/websocket/stream.hpp 2020-05-02 13:50:11.154761841 -0400 -@@ -2634,7 +2634,7 @@ - - template< - class ResponseDecorator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - async_accept_ex( - ResponseDecorator const& decorator, -@@ -2643,7 +2643,7 @@ - template< - class ConstBufferSequence, - class ResponseDecorator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - async_accept_ex( - ConstBufferSequence const& buffers, -@@ -2656,7 +2656,7 @@ - template< - class Body, class Allocator, - class ResponseDecorator, -- class AcceptHandler> -+ BOOST_BEAST_ASYNC_TPARAM1 AcceptHandler> - BOOST_BEAST_ASYNC_RESULT1(AcceptHandler) - async_accept_ex( - http::request -+ template - typename net::async_result::return_type - async_read(AsyncReadStream& stream, net::mutable_buffer buffer, ReadHandler&& handler) - { -diff -aruN a/libs/beast/test/beast/core/basic_stream.cpp b/libs/beast/test/beast/core/basic_stream.cpp ---- a/libs/beast/test/beast/core/basic_stream.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/core/basic_stream.cpp 2020-05-02 13:51:02.470315892 -0400 -@@ -30,6 +30,13 @@ - #include - #include - -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#include -+#include -+#endif -+ -+ - namespace boost { - namespace beast { - -@@ -258,7 +265,7 @@ - { - string_view s_; - net::ip::tcp::socket socket_; -- -+ - public: - session( - string_view s, -@@ -1297,6 +1304,52 @@ - - //-------------------------------------------------------------------------- - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompilation( -+ basic_stream& stream, -+ net::mutable_buffer outbuf, -+ net::const_buffer inbuf, -+ net::ip::tcp::resolver::results_type resolve_results) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_read_some(outbuf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_write_some(inbuf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_connect( -+ resolve_results.begin(), -+ resolve_results.end(), -+ net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_connect( -+ resolve_results, -+ net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_connect( -+ resolve_results.begin()->endpoint(), -+ net::use_awaitable))>); -+ -+ auto comparison_function = [](error_code&, net::ip::tcp::endpoint) { return true; }; -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_connect( -+ resolve_results.begin(), -+ resolve_results.end(), -+ comparison_function, -+ net::use_awaitable))>); -+ } -+#endif -+ - void - run() - { -@@ -1307,6 +1360,11 @@ - testMembers(); - testJavadocs(); - testIssue1589(); -+ -+#if BOOST_ASIO_HAS_CO_AWAIT -+ // test for compilation success only -+ boost::ignore_unused(&basic_stream_test::testAwaitableCompilation); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/core/buffered_read_stream.cpp b/libs/beast/test/beast/core/buffered_read_stream.cpp ---- a/libs/beast/test/beast/core/buffered_read_stream.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/core/buffered_read_stream.cpp 2020-05-02 13:51:02.470315892 -0400 -@@ -21,6 +21,9 @@ - #include - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - - namespace boost { - namespace beast { -@@ -211,6 +214,22 @@ - } - }; - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ buffered_read_stream& stream, -+ net::mutable_buffer rxbuf, -+ net::const_buffer txbuf) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_read_some(rxbuf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_write_some(txbuf, net::use_awaitable))>); -+ } -+#endif -+ - void run() override - { - testSpecialMembers(); -@@ -221,6 +240,10 @@ - }); - - testAsyncLoop(); -+ -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&buffered_read_stream_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/core/detect_ssl.cpp b/libs/beast/test/beast/core/detect_ssl.cpp ---- a/libs/beast/test/beast/core/detect_ssl.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/core/detect_ssl.cpp 2020-05-02 13:51:02.470315892 -0400 -@@ -16,6 +16,11 @@ - #include - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#include -+#include -+#endif - namespace boost { - namespace beast { - -@@ -166,12 +171,25 @@ - } - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles(test::stream& stream, flat_buffer& b) -+ { -+ static_assert( -+ std::is_same_v< -+ net::awaitable, decltype( -+ async_detect_ssl(stream, b, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { - testDetect(); - testRead(); - testAsyncRead(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&detect_ssl_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/core/flat_stream.cpp b/libs/beast/test/beast/core/flat_stream.cpp ---- a/libs/beast/test/beast/core/flat_stream.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/core/flat_stream.cpp 2020-05-02 13:51:02.471315902 -0400 -@@ -17,6 +17,9 @@ - #include - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - - namespace boost { - namespace beast { -@@ -208,11 +211,30 @@ - check({1,2,3,4}, 3, 3, true); - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ flat_stream& stream, -+ net::mutable_buffer rxbuf, -+ net::const_buffer txbuf) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_read_some(rxbuf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ stream.async_write_some(txbuf, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { - testMembers(); - testSplit(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&flat_stream_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/core/stream_traits.cpp b/libs/beast/test/beast/core/stream_traits.cpp ---- a/libs/beast/test/beast/core/stream_traits.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/core/stream_traits.cpp 2020-05-02 13:51:02.471315902 -0400 -@@ -214,14 +214,14 @@ - struct async_read_stream - { - net::io_context::executor_type get_executor() noexcept; -- template -+ template - void async_read_some(MutableBufferSequence const&, ReadHandler&&); - }; - - struct async_write_stream - { - net::io_context::executor_type get_executor() noexcept; -- template -+ template - void async_write_some(ConstBufferSequence const&, WriteHandler&&); - }; - -@@ -232,9 +232,9 @@ - struct async_stream : async_read_stream, async_write_stream - { - net::io_context::executor_type get_executor() noexcept; -- template -+ template - void async_read_some(MutableBufferSequence const&, ReadHandler&&); -- template -+ template - void async_write_some(ConstBufferSequence const&, WriteHandler&&); - }; - -diff -aruN a/libs/beast/test/beast/http/CMakeLists.txt b/libs/beast/test/beast/http/CMakeLists.txt ---- a/libs/beast/test/beast/http/CMakeLists.txt 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/http/CMakeLists.txt 2020-05-02 13:51:02.472315914 -0400 -@@ -26,6 +26,7 @@ - empty_body.cpp - error.cpp - field.cpp -+ field_compiles.cpp - fields.cpp - file_body.cpp - message.cpp -diff -aruN a/libs/beast/test/beast/http/field_compiles.cpp b/libs/beast/test/beast/http/field_compiles.cpp ---- a/libs/beast/test/beast/http/field_compiles.cpp 1969-12-31 19:00:00.000000000 -0500 -+++ b/libs/beast/test/beast/http/field_compiles.cpp 2020-05-02 13:51:02.473315924 -0400 -@@ -0,0 +1,11 @@ -+// -+// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com) -+// -+// Distributed under the Boost Software License, Version 1.0. (See accompanying -+// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -+// -+// Official repository: https://github.com/boostorg/beast -+// -+ -+// Test that header file is self-contained. -+#include -diff -aruN a/libs/beast/test/beast/http/Jamfile b/libs/beast/test/beast/http/Jamfile ---- a/libs/beast/test/beast/http/Jamfile 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/http/Jamfile 2020-05-02 13:51:02.472315914 -0400 -@@ -16,6 +16,7 @@ - dynamic_body.cpp - error.cpp - field.cpp -+ field_compiles.cpp - fields.cpp - file_body.cpp - message.cpp -diff -aruN a/libs/beast/test/beast/http/read.cpp b/libs/beast/test/beast/http/read.cpp ---- a/libs/beast/test/beast/http/read.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/http/read.cpp 2020-05-02 13:51:02.472315914 -0400 -@@ -25,6 +25,9 @@ - #include - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - - namespace boost { - namespace beast { -@@ -529,6 +532,49 @@ - } - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ test::stream& stream, -+ flat_buffer& dynbuf, -+ parser& request_parser, -+ request& request, -+ parser& response_parser, -+ response& response) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read(stream, dynbuf, request, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read(stream, dynbuf, request_parser, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read(stream, dynbuf, response, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read(stream, dynbuf, response_parser, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read_some(stream, dynbuf, request_parser, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read_some(stream, dynbuf, response_parser, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read_header(stream, dynbuf, request_parser, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_read_header(stream, dynbuf, response_parser, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { -@@ -552,6 +598,9 @@ - testRegression430(); - testReadGrind(); - testAsioHandlerInvoke(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&read_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/http/write.cpp b/libs/beast/test/beast/http/write.cpp ---- a/libs/beast/test/beast/http/write.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/http/write.cpp 2020-05-02 13:51:02.473315924 -0400 -@@ -26,6 +26,9 @@ - #include - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - - namespace boost { - namespace beast { -@@ -994,6 +997,59 @@ - } - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ test::stream& stream, -+ serializer& request_serializer, -+ request& req, -+ request const& creq, -+ serializer& response_serializer, -+ response& resp, -+ response const& cresp) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write(stream, request_serializer, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write(stream, response_serializer, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write(stream, req, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write(stream, creq, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write(stream, resp, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write(stream, cresp, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write_some(stream, request_serializer, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write_some(stream, response_serializer, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write_header(stream, request_serializer, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ http::async_write_header(stream, response_serializer, net::use_awaitable))>); -+ } -+#endif -+ -+ - void - run() override - { -@@ -1017,6 +1073,9 @@ - }); - testAsioHandlerInvoke(); - testBodyWriters(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&write_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/websocket/accept.cpp b/libs/beast/test/beast/websocket/accept.cpp ---- a/libs/beast/test/beast/websocket/accept.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/websocket/accept.cpp 2020-05-02 13:51:02.473315924 -0400 -@@ -14,7 +14,9 @@ - #include - #include - #include "test.hpp" -- -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - namespace boost { - namespace beast { - namespace websocket { -@@ -810,6 +812,27 @@ - } - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ stream& s, -+ http::request& req, -+ net::mutable_buffer buf -+ ) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_accept(net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_accept(req, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_accept(buf, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { -@@ -820,6 +843,9 @@ - testInvalidInputs(); - testEndOfStream(); - testAsync(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&accept_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/websocket/close.cpp b/libs/beast/test/beast/websocket/close.cpp ---- a/libs/beast/test/beast/websocket/close.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/websocket/close.cpp 2020-05-02 13:51:02.473315924 -0400 -@@ -16,6 +16,9 @@ - - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - - namespace boost { - namespace beast { -@@ -735,6 +738,15 @@ - } - }; - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles(stream& s, close_reason cr ) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_close(cr, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { -@@ -742,6 +754,9 @@ - testTimeout(); - testSuspend(); - testMoveOnly(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&close_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/websocket/handshake.cpp b/libs/beast/test/beast/websocket/handshake.cpp ---- a/libs/beast/test/beast/websocket/handshake.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/websocket/handshake.cpp 2020-05-02 13:51:02.473315924 -0400 -@@ -18,6 +18,9 @@ - #include - #include - #include -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif - - namespace boost { - namespace beast { -@@ -704,6 +707,23 @@ - } - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ stream& s, -+ std::string host, -+ std::string port, -+ response_type& resp) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_handshake(host, port, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_handshake(resp, host, port, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { -@@ -714,6 +734,9 @@ - testMoveOnly(); - testAsync(); - testIssue1460(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&handshake_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/websocket/ping.cpp b/libs/beast/test/beast/websocket/ping.cpp ---- a/libs/beast/test/beast/websocket/ping.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/websocket/ping.cpp 2020-05-02 13:51:02.474315935 -0400 -@@ -18,6 +18,10 @@ - #include - #include - -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif -+ - namespace boost { - namespace beast { - namespace websocket { -@@ -483,12 +487,30 @@ - } - }; - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ stream& s, -+ ping_data& pdat) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_ping(pdat, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_pong(pdat, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { - testPing(); - testSuspend(); - testMoveOnly(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&ping_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/websocket/read2.cpp b/libs/beast/test/beast/websocket/read2.cpp ---- a/libs/beast/test/beast/websocket/read2.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/websocket/read2.cpp 2020-05-02 13:51:02.474315935 -0400 -@@ -14,6 +14,10 @@ - - #include - -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif -+ - #include - #if BOOST_WORKAROUND(BOOST_GCC, < 80200) - #define BOOST_BEAST_SYMBOL_HIDDEN __attribute__ ((visibility("hidden"))) -@@ -673,10 +677,34 @@ - } - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ stream& s, -+ flat_buffer& dynbuf, -+ net::mutable_buffer buf, -+ std::size_t limit) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_read(dynbuf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_read_some(buf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_read_some(dynbuf, limit, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { - testRead(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&read2_test::testAwaitableCompiles); -+#endif - } - }; - -diff -aruN a/libs/beast/test/beast/websocket/write.cpp b/libs/beast/test/beast/websocket/write.cpp ---- a/libs/beast/test/beast/websocket/write.cpp 2020-04-22 09:34:50.000000000 -0400 -+++ b/libs/beast/test/beast/websocket/write.cpp 2020-05-02 13:51:02.474315935 -0400 -@@ -13,6 +13,10 @@ - #include - #include - -+#if BOOST_ASIO_HAS_CO_AWAIT -+#include -+#endif -+ - #include "test.hpp" - - namespace boost { -@@ -716,6 +720,22 @@ - BEAST_EXPECT(n1 < n0 + s.size()); - } - -+#if BOOST_ASIO_HAS_CO_AWAIT -+ void testAwaitableCompiles( -+ stream& s, -+ net::mutable_buffer buf, -+ bool fin) -+ { -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_write(buf, net::use_awaitable))>); -+ -+ static_assert(std::is_same_v< -+ net::awaitable, decltype( -+ s.async_write_some(fin, buf, net::use_awaitable))>); -+ } -+#endif -+ - void - run() override - { -@@ -726,6 +746,9 @@ - testMoveOnly(); - testIssue300(); - testIssue1666(); -+#if BOOST_ASIO_HAS_CO_AWAIT -+ boost::ignore_unused(&write_test::testAwaitableCompiles); -+#endif - } - }; - diff --git a/boost-1.73.0-outcome-assert.patch b/boost-1.73.0-outcome-assert.patch deleted file mode 100644 index 1dfeb71..0000000 --- a/boost-1.73.0-outcome-assert.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 9f414ea58264fe0a62172a06f4653adc7556c164 Mon Sep 17 00:00:00 2001 -From: "Niall Douglas (s [underscore] sourceforge {at} nedprod [dot] com)" - -Date: Mon, 27 Apr 2020 12:00:22 +0100 -Subject: [PATCH] Fix https://github.com/ned14/outcome/issues/223 where in - debug builds, cloning a status_code_ptr causes a segfault. - ---- - include/status_code_ptr.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/status_code_ptr.hpp b/include/status_code_ptr.hpp -index 0f5efa1..bd5c278 100644 ---- boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp -+++ boost_1_73_0/boost/outcome/experimental/status-code/status_code_ptr.hpp -@@ -97,7 +97,7 @@ namespace detail - #endif - virtual void _do_erased_copy(status_code &dst, const status_code &src, size_t /*unused*/) const override // NOLINT - { -- assert(dst.domain() == *this); -+ // Note that dst will not have its domain set - assert(src.domain() == *this); - auto &d = static_cast<_mycode &>(dst); // NOLINT - const auto &_s = static_cast(src); // NOLINT diff --git a/boost-1.73.0-build-optflags.patch b/boost-1.75.0-build-optflags.patch similarity index 70% rename from boost-1.73.0-build-optflags.patch rename to boost-1.75.0-build-optflags.patch index a2895f6..d9c6dd4 100644 --- a/boost-1.73.0-build-optflags.patch +++ b/boost-1.75.0-build-optflags.patch @@ -1,24 +1,26 @@ ---- boost_1_73_0/tools/build/src/tools/gcc.jam~ 2020-03-31 21:50:30.687635266 +0100 -+++ boost_1_73_0/tools/build/src/tools/gcc.jam 2020-03-31 21:50:32.943632779 +0100 -@@ -571,7 +571,7 @@ +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index ff3209f7b..1d8e7cbfe 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sources * : properties * ) 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)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" } actions compile.c bind PCH_FILE -@@ -581,7 +581,7 @@ +@@ -587,7 +587,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)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" } actions compile.c.preprocess bind PCH_FILE -@@ -704,20 +704,20 @@ +@@ -704,20 +704,20 @@ actions compile.c.pch ### # Declare flags and action for compilation. @@ -47,9 +49,12 @@ +toolset.flags gcc.compile OPTIONS off : ; +toolset.flags gcc.compile OPTIONS on : ; +toolset.flags gcc.compile OPTIONS all : ; -+toolset.flags gcc.compile OPTIONS extra : ; -+toolset.flags gcc.compile OPTIONS pedantic : ; -+toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS extra : ; ++toolset.flags gcc.compile OPTIONS pedantic : ; ++toolset.flags gcc.compile OPTIONS on : ; toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; +-- +2.26.2 + diff --git a/boost-1.66.0-no-rpath.patch b/boost-1.75.0-no-rpath.patch similarity index 59% rename from boost-1.66.0-no-rpath.patch rename to boost-1.75.0-no-rpath.patch index e69e0b4..a025241 100644 --- a/boost-1.66.0-no-rpath.patch +++ b/boost-1.75.0-no-rpath.patch @@ -1,6 +1,14 @@ ---- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:23:45.361330881 +0000 -+++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:23:45.362330880 +0000 -@@ -1191,7 +1191,7 @@ rule link ( targets * : sources * : prop +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index 02dc154cf..c076f70f4 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -1132,17 +1132,17 @@ actions link.mingw bind LIBRARIES + + actions link.dll.mingw bind LIBRARIES + { +- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS) ++ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[0])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS) + } actions link bind LIBRARIES { @@ -8,9 +16,6 @@ + "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) } - rule link.dll ( targets * : sources * : properties * ) -@@ -1204,7 +1204,7 @@ rule link.dll ( targets * : sources * : - # Differs from 'link' above only by -shared. actions link.dll bind LIBRARIES { - "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) diff --git a/boost-cmake-soname.patch b/boost-cmake-soname.patch deleted file mode 100644 index 8d732eb..0000000 --- a/boost-cmake-soname.patch +++ /dev/null @@ -1,19 +0,0 @@ -*** tools/build/CMake/BoostCore.cmake.orig 2010-01-12 20:01:46.006547352 -0800 ---- tools/build/CMake/BoostCore.cmake 2010-01-12 20:02:54.222546929 -0800 -*************** macro(boost_library_variant LIBNAME) -*** 755,761 **** - if (BUILD_SOVERSIONED) - set_target_properties(${VARIANT_LIBNAME} - PROPERTIES -! SOVERSION "${BOOST_VERSION}" - ) - endif() - endif () ---- 755,761 ---- - if (BUILD_SOVERSIONED) - set_target_properties(${VARIANT_LIBNAME} - PROPERTIES -! SOVERSION "_FEDORA_SONAME" - ) - endif() - endif () diff --git a/boost.spec b/boost.spec index c0ffd30..d6afa68 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.73.0 -Release: 12%{?dist} +Version: 1.75.0 +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,8 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://sourceforge.net/projects/%%{name}/files/%{name}/%{version}/%{toplev_dirname}.tar.bz2 -#Source0: https://dl.bintray.com/boostorg/master/%%{name}_%%{version_enc}.tar.gz +Source0: https://dl.bintray.com/boostorg/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html @@ -125,9 +124,6 @@ BuildRequires: libquadmath-devel %endif BuildRequires: bison -# https://svn.boost.org/trac/boost/ticket/6150 -Patch4: boost-1.50.0-fix-non-utf8-files.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828857 # https://svn.boost.org/trac/boost/ticket/6701 @@ -136,37 +132,18 @@ Patch15: boost-1.58.0-pool.patch # https://svn.boost.org/trac/boost/ticket/9038 Patch51: boost-1.58.0-pool-test_linking.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1190039 -Patch65: boost-1.73.0-build-optflags.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 +Patch96: boost-1.75.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch82: boost-1.66.0-no-rpath.patch +Patch97: boost-1.75.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch83: boost-1.73.0-b2-build-flags.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1818723 -Patch86: boost-1.69-format-allocator.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1832639 -Patch87: boost-1.69.0-test-cxx20.patch - # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch -# https://github.com/ned14/outcome/issues/223 -Patch89: boost-1.73.0-outcome-assert.patch - -# https://github.com/boostorg/beast/pull/1927 -Patch90: boost-1.73.0-beast-coroutines.patch - -# https://github.com/boostorg/geometry/issues/721 -Patch91: boost-1.73-geometry-issue721.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=1843105 -# https://github.com/boostorg/mpi/pull/119 -Patch92: boost-1.73-mpi-vector-data.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1896382 # https://github.com/boostorg/python/issues/325 Patch93: boost-1.73-python3.10.patch @@ -175,9 +152,6 @@ Patch93: boost-1.73-python3.10.patch # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1912903 -Patch95: boost-1.73-python3.10-Py_fopen.patch - %bcond_with tests %bcond_with docs_generated @@ -296,6 +270,15 @@ Summary: Run-time component of boost iostreams library Run-time support for Boost.Iostreams, a framework for defining streams, stream buffers and i/o filters. +%package json +Summary: Run-time component of boost json library + +%description json + +Run-time support for Boost.Json, a portable C++ library which provides +containers and algorithms that implement JavaScript Object Notation, or +simply "JSON" + %package locale Summary: Run-time component of boost locale library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} @@ -681,22 +664,14 @@ a number of significant features and is now developed independently. %setup -q -n %{toplev_dirname} find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x -%patch4 -p1 %patch15 -p0 %patch51 -p1 -%patch65 -p1 -%patch82 -p1 +%patch96 -p1 +%patch97 -p1 %patch83 -p1 -%patch86 -p1 -%patch87 -p2 %patch88 -p1 -%patch89 -p1 -%patch90 -p1 -%patch91 -p1 -%patch92 -p1 %patch93 -p1 %patch94 -p1 -%patch95 -p1 %build %set_build_flags @@ -844,11 +819,6 @@ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* # Remove cmake files (some of these are duplicates of the generic bits anyway). rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake -# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks. -version=%{version} -rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*} -rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*} - %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -878,11 +848,6 @@ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* # Remove cmake files (some of these are duplicates of the generic bits anyway). rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake -# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks. -version=%{version} -rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%.*} -rm ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_*.so.${version%%%%.*} - %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -911,11 +876,6 @@ install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ # Remove cmake files until we know somebody wants them. rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake -# Remove the useless libboost_foo.so.1.NN and libboost_foo.so.1 symlinks. -version=%{version} -rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%.*} -rm $RPM_BUILD_ROOT%{_libdir}/libboost_*.so.${version%%%%.*} - echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install @@ -1079,6 +1039,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_iostreams.so.%{sonamever} +%files json +%license LICENSE_1_0.txt +%{_libdir}/libboost_json.so.%{sonamever} + %files locale %license LICENSE_1_0.txt %{_libdir}/libboost_locale.so.%{sonamever} @@ -1189,6 +1153,7 @@ fi %{_libdir}/libboost_filesystem.so %{_libdir}/libboost_graph.so %{_libdir}/libboost_iostreams.so +%{_libdir}/libboost_json.so %{_libdir}/libboost_locale.so %{_libdir}/libboost_log.so %{_libdir}/libboost_log_setup.so @@ -1308,6 +1273,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Jan 11 2021 Thomas Rodgers - 1.75.0-1 +- Rebase to 1.75.0 +- Add boost-json subpackage + * Fri Jan 8 14:14:00 CET 2021 Tomas Hrnciar - 1.73.0-12 - Patch Boost.Python for Python 3.10 - replace _Py_fopen() with fopen() (#1912903) diff --git a/sources b/sources index 9bda6dc..784d5b3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_73_0.tar.bz2) = 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668 +SHA512 (boost_1_75_0.tar.bz2) = d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a From cb5a05db6c4a7b819a2c271761bfa81f92a8b423 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 26 Jan 2021 01:19:25 +0000 Subject: [PATCH 116/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index d6afa68..db9d121 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1273,6 +1273,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jan 26 2021 Fedora Release Engineering - 1.75.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + * Mon Jan 11 2021 Thomas Rodgers - 1.75.0-1 - Rebase to 1.75.0 - Add boost-json subpackage From 325ac22f9666a4c6b115dd23a1690106e2f445f5 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Tue, 2 Feb 2021 21:18:56 -0800 Subject: [PATCH 117/203] Patch Boost.build for https://bugzilla.redhat.com/show_bug.cgi\?id\=1923740 --- boost-1.75.0-boost-build-fix.patch | 25 +++++++++++++++++++++++++ boost.spec | 10 +++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 boost-1.75.0-boost-build-fix.patch diff --git a/boost-1.75.0-boost-build-fix.patch b/boost-1.75.0-boost-build-fix.patch new file mode 100644 index 0000000..264441b --- /dev/null +++ b/boost-1.75.0-boost-build-fix.patch @@ -0,0 +1,25 @@ +From 40e5bcd594b01f9b7091de07f9efc4567cc1ac40 Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Tue, 2 Feb 2021 18:15:30 -0800 +Subject: [PATCH] Apply post 1.75.0 change from upstream + +--- + tools/build/src/engine/startup.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/build/src/engine/startup.cpp b/tools/build/src/engine/startup.cpp +index f58625408..a7659bb50 100644 +--- a/tools/build/src/engine/startup.cpp ++++ b/tools/build/src/engine/startup.cpp +@@ -195,7 +195,7 @@ bool b2::startup::bootstrap(FRAME *frame) + { + const std::string path{ + b2::paths::normalize( +- b2_exe_path + "/../../share/boost-build/" + boost_build_jam)}; ++ b2_exe_path + "/../../share/boost-build/src/kernel/" + boost_build_jam)}; + if (b2::filesys::is_file(path)) + b2_file_path = path; + } +-- +2.26.2 + diff --git a/boost.spec b/boost.spec index db9d121..68f4160 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -152,6 +152,10 @@ Patch93: boost-1.73-python3.10.patch # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1923740 +# https://github.com/boostorg/build/issues/696 +Patch95: boost-1.75.0-boost-build-fix.patch + %bcond_with tests %bcond_with docs_generated @@ -672,6 +676,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch88 -p1 %patch93 -p1 %patch94 -p1 +%patch95 -p1 %build %set_build_flags @@ -1273,6 +1278,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 +- Patch for https://bugzilla.redhat.com/show_bug.cgi?id=1923740 + * Tue Jan 26 2021 Fedora Release Engineering - 1.75.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From 394a768911875d912a79088297d569a55540070b Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Mar 2021 12:05:16 +0000 Subject: [PATCH 118/203] Adjust Boost.Locale patch to use NULL instead of nullptr --- boost-1.73-locale-empty-vector.patch | 2 +- boost.spec | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch index f5cc981..77cc929 100644 --- a/boost-1.73-locale-empty-vector.patch +++ b/boost-1.73-locale-empty-vector.patch @@ -28,7 +28,7 @@ index 7f1ea6a..dc59e8c 100644 tmp.resize(str.length()); icu::Collator *collate = get_collator(level); - int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); ++ int len = collate->getSortKey(str,tmp.empty()?NULL:&tmp[0],tmp.size()); if(len > int(tmp.size())) { tmp.resize(len); collate->getSortKey(str,&tmp[0],tmp.size()); diff --git a/boost.spec b/boost.spec index 68f4160..381a27c 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1278,8 +1278,11 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Mar 03 2021 Jonathan Wakely - 1.75.0-4 +- Adjust Boost.Locale patch to use NULL instead of nullptr + * Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 -- Patch for https://bugzilla.redhat.com/show_bug.cgi?id=1923740 +- Patch Boost.Build to find boost-build.jam (#1923740) * Tue Jan 26 2021 Fedora Release Engineering - 1.75.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild From aa5af673c5b55a7c1f005de3e444febd79dee61c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 3 Mar 2021 12:14:40 +0000 Subject: [PATCH 119/203] Revert previous commit and un-bump %release The original patch to use nullptr was fine, because it's in a .cpp file which is built using a recent standard dialect, so nullptr is defined. --- boost-1.73-locale-empty-vector.patch | 2 +- boost.spec | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch index 77cc929..f5cc981 100644 --- a/boost-1.73-locale-empty-vector.patch +++ b/boost-1.73-locale-empty-vector.patch @@ -28,7 +28,7 @@ index 7f1ea6a..dc59e8c 100644 tmp.resize(str.length()); icu::Collator *collate = get_collator(level); - int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?NULL:&tmp[0],tmp.size()); ++ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); if(len > int(tmp.size())) { tmp.resize(len); collate->getSortKey(str,&tmp[0],tmp.size()); diff --git a/boost.spec b/boost.spec index 381a27c..0722e5f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 4%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1278,9 +1278,6 @@ fi %{_mandir}/man1/b2.1* %changelog -* Wed Mar 03 2021 Jonathan Wakely - 1.75.0-4 -- Adjust Boost.Locale patch to use NULL instead of nullptr - * Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 - Patch Boost.Build to find boost-build.jam (#1923740) From 8bed92113e5b9ac574415a37848608e56092c5c7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 30 Mar 2021 19:35:18 +0100 Subject: [PATCH 120/203] Rebuilt for removed libstdc++ symbol (#1937698) --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 0722e5f..a6af3c2 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1278,6 +1278,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Mar 30 2021 Jonathan Wakely - 1.75.0-4 +- Rebuilt for removed libstdc++ symbol (#1937698) + * Tue Feb 02 2021 Thomas Rodgers - 1.75.0-3 - Patch Boost.Build to find boost-build.jam (#1923740) From 67e502ea95d8fe0dcf11489e808389423a24611a Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Mon, 12 Apr 2021 12:12:48 +0000 Subject: [PATCH 121/203] init FMF CI gating --- .fmf/version | 1 + gating.yaml | 20 ++++++ plans/ci.fmf | 6 ++ tests/boost-testsuite-sanity/Makefile | 63 +++++++++++++++++ tests/boost-testsuite-sanity/PURPOSE | 3 + tests/boost-testsuite-sanity/main.fmf | 16 +++++ tests/boost-testsuite-sanity/runtest.sh | 90 +++++++++++++++++++++++++ tests/boost-testsuite-sanity/tests | 5 ++ 8 files changed, 204 insertions(+) create mode 100644 .fmf/version create mode 100644 gating.yaml create mode 100644 plans/ci.fmf create mode 100644 tests/boost-testsuite-sanity/Makefile create mode 100644 tests/boost-testsuite-sanity/PURPOSE create mode 100644 tests/boost-testsuite-sanity/main.fmf create mode 100755 tests/boost-testsuite-sanity/runtest.sh create mode 100644 tests/boost-testsuite-sanity/tests diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..14943f1 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,20 @@ +--- !Policy +product_versions: + - fedora-* +decision_context: bodhi_update_push_stable +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} + - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} +--- !Policy +product_versions: + - rhel-8 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional} +--- !Policy +product_versions: + - rhel-9 +decision_context: osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1-gating.functional} diff --git a/plans/ci.fmf b/plans/ci.fmf new file mode 100644 index 0000000..1ad2c12 --- /dev/null +++ b/plans/ci.fmf @@ -0,0 +1,6 @@ +summary: CI Gating Plan +discover: + how: fmf + directory: tests +execute: + how: beakerlib diff --git a/tests/boost-testsuite-sanity/Makefile b/tests/boost-testsuite-sanity/Makefile new file mode 100644 index 0000000..e1d5f40 --- /dev/null +++ b/tests/boost-testsuite-sanity/Makefile @@ -0,0 +1,63 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /tools/boost/Sanity/boost-testsuite-sanity +# Description: boost testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/tools/boost/Sanity/boost-testsuite-sanity +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE tests + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Michal Kolar " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: boost testing by upstream testsuite" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 1h" >> $(METADATA) + @echo "RunFor: boost" >> $(METADATA) + @echo "Requires: boost dnf-utils rpm-build boost-b2" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5 -RHEL6 -RHEL7 -RHEL8" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tests/boost-testsuite-sanity/PURPOSE b/tests/boost-testsuite-sanity/PURPOSE new file mode 100644 index 0000000..695d634 --- /dev/null +++ b/tests/boost-testsuite-sanity/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /tools/boost/Sanity/boost-testsuite-sanity +Description: boost testing by upstream testsuite +Author: Michal Kolar diff --git a/tests/boost-testsuite-sanity/main.fmf b/tests/boost-testsuite-sanity/main.fmf new file mode 100644 index 0000000..e751d7c --- /dev/null +++ b/tests/boost-testsuite-sanity/main.fmf @@ -0,0 +1,16 @@ +summary: boost testing by upstream testsuite +description: '' +contact: +- Michal Kolar +component: +- boost +test: ./runtest.sh +framework: beakerlib +recommend: +- boost +- dnf-utils +- rpm-build +- boost-b2 +duration: 1h +extra-summary: /tools/boost/Sanity/boost-testsuite-sanity +extra-task: /tools/boost/Sanity/boost-testsuite-sanity diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh new file mode 100755 index 0000000..98e9842 --- /dev/null +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /tools/boost/Sanity/boost-testsuite-sanity +# Description: boost testing by upstream testsuite +# Author: Michal Kolar +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2021 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be +# useful, but WITHOUT ANY WARRANTY; without even the implied +# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +# PURPOSE. See the GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +BUILD_USER=${BUILD_USER:-bstbld} +TESTS_COUNT_MIN=${TESTS_COUNT_MIN:-100} +PACKAGE="boost" +REQUIRES="$PACKAGE rpm-build boost-b2" +if rlIsFedora; then + REQUIRES="$REQUIRES dnf-utils" +else + REQUIRES="$REQUIRES yum-utils" +fi + +rlJournalStart + rlPhaseStartSetup + rlShowRunningKernel + rlAssertRpm --all + rlRun "TmpDir=`mktemp -d /home/boost.XXXXXXXXXX`" # work in /home due to high demands on disk space + rlRun "cp tests $TmpDir" + rlRun "pushd $TmpDir" + rlFetchSrcForInstalled $PACKAGE + rlRun "useradd -M -N $BUILD_USER" 0,9 + [ "$?" == "0" ] && rlRun "del=yes" + rlRun "chown -R $BUILD_USER:users $TmpDir" + rlPhaseEnd + + rlPhaseStartSetup "build boost" + rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" + rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/rpmbuild.log" + rlRun "cd $TmpDir/BUILD/boost*" + rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" + rlRun "rlFileSubmit $TmpDir/bootstrap.log" + rlPhaseEnd + + rlPhaseStartTest "run testsuite" + while read test_path; do + if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then + rlRun "cd $TmpDir/BUILD/boost*/libs/$test_path/test" + rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER" + rm -fr $TmpDir/test-build + else + rlLogInfo "$test_path/Jamfile* not found, skipping" + fi + done <$TmpDir/tests + rlRun "rlFileSubmit $TmpDir/testsuite.log" + rlPhaseEnd + + rlPhaseStartTest "evaluate results" + rlRun "cd $TmpDir" + rlRun "grep -E '\.\.\.failed .+$TmpDir/test-build' testsuite.log" 1 "There should be no failure" + rlRun "tests_count=\$(grep -E '\*\*passed\*\*.+$TmpDir/test-build' testsuite.log | wc -l)" + [ "$tests_count" -ge "$TESTS_COUNT_MIN" ] && rlLogInfo "Test counter: $tests_count" || rlFail "Test counter $tests_count should be greater than or equal to $TESTS_COUNT_MIN" + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "popd" + rlRun "rm -r $TmpDir" + [ "$del" == "yes" ] && rlRun "userdel $BUILD_USER" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/tests/boost-testsuite-sanity/tests b/tests/boost-testsuite-sanity/tests new file mode 100644 index 0000000..d360dbd --- /dev/null +++ b/tests/boost-testsuite-sanity/tests @@ -0,0 +1,5 @@ +integer +random +rational +regex +timer From 3eea468474d024a4da8a314233e2f6e63ad672ea Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Mon, 10 May 2021 10:40:07 -0700 Subject: [PATCH 122/203] Patch for https://bugzilla.redhat.com/show_bug.cgi\?id\=1958382 --- ...5.0-remove-deprecated-boost-iterator.patch | 114 ++++++++++++++++++ boost.spec | 10 +- 2 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 boost-1.75.0-remove-deprecated-boost-iterator.patch diff --git a/boost-1.75.0-remove-deprecated-boost-iterator.patch b/boost-1.75.0-remove-deprecated-boost-iterator.patch new file mode 100644 index 0000000..6341174 --- /dev/null +++ b/boost-1.75.0-remove-deprecated-boost-iterator.patch @@ -0,0 +1,114 @@ +From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Mon, 11 May 2020 19:59:23 +0300 +Subject: [PATCH] Removed usage of deprecated header boost/detail/iterator.hpp. + +The header was deprecated in favor of . It generates compiler +warnings and will be removed in a future release. +--- + boost/detail/algorithm.hpp | 2 +- + boost/graph/adjacency_iterator.hpp | 6 +++--- + boost/graph/detail/adjacency_list.hpp | 5 +++-- + boost/graph/incremental_components.hpp | 6 +++--- + 4 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/boost/detail/algorithm.hpp b/boost/detail/algorithm.hpp +index 7793fb357..9b3195cbf 100644 +--- a/boost/detail/algorithm.hpp ++++ b/boost/detail/algorithm.hpp +@@ -30,7 +30,7 @@ + + #ifndef BOOST_ALGORITHM_HPP + #define BOOST_ALGORITHM_HPP +-#include ++ + // Algorithms on sequences + // + // The functions in this file have not yet gone through formal +diff --git a/boost/graph/adjacency_iterator.hpp b/boost/graph/adjacency_iterator.hpp +index 5325e7875..4693e3a3a 100644 +--- a/boost/graph/adjacency_iterator.hpp ++++ b/boost/graph/adjacency_iterator.hpp +@@ -10,7 +10,7 @@ + #ifndef BOOST_ADJACENCY_ITERATOR_HPP + #define BOOST_ADJACENCY_ITERATOR_HPP + +-#include ++#include + #include + #include + +@@ -45,7 +45,7 @@ template < class Graph, + class adjacency_iterator_generator + { + typedef +- typename boost::detail::iterator_traits< OutEdgeIter >::difference_type ++ typename std::iterator_traits< OutEdgeIter >::difference_type + difference_type; + + public: +@@ -81,7 +81,7 @@ template < class Graph, + class inv_adjacency_iterator_generator + { + typedef +- typename boost::detail::iterator_traits< InEdgeIter >::difference_type ++ typename std::iterator_traits< InEdgeIter >::difference_type + difference_type; + + public: +diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp +index 4b11fa516..c1a2ada23 100644 +--- a/boost/graph/detail/adjacency_list.hpp ++++ b/boost/graph/detail/adjacency_list.hpp +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -2370,7 +2371,7 @@ namespace detail + typedef typename OutEdgeList::size_type degree_size_type; + typedef typename OutEdgeList::iterator OutEdgeIter; + +- typedef boost::detail::iterator_traits< OutEdgeIter > ++ typedef std::iterator_traits< OutEdgeIter > + OutEdgeIterTraits; + typedef + typename OutEdgeIterTraits::iterator_category OutEdgeIterCat; +@@ -2398,7 +2399,7 @@ namespace detail + + // Edge Iterator + +- typedef boost::detail::iterator_traits< EdgeIter > EdgeIterTraits; ++ typedef std::iterator_traits< EdgeIter > EdgeIterTraits; + typedef typename EdgeIterTraits::iterator_category EdgeIterCat; + typedef typename EdgeIterTraits::difference_type EdgeIterDiff; + +diff --git a/boost/graph/incremental_components.hpp b/boost/graph/incremental_components.hpp +index 1ad8c9403..f16882e2a 100644 +--- a/boost/graph/incremental_components.hpp ++++ b/boost/graph/incremental_components.hpp +@@ -13,10 +13,10 @@ + #ifndef BOOST_INCREMENTAL_COMPONENTS_HPP + #define BOOST_INCREMENTAL_COMPONENTS_HPP + +-#include ++#include + #include + #include +-#include ++#include + #include + #include + +@@ -69,7 +69,7 @@ void compress_components(ParentIterator first, ParentIterator last) + } + + template < class ParentIterator > +-typename boost::detail::iterator_traits< ParentIterator >::difference_type ++typename std::iterator_traits< ParentIterator >::difference_type + component_count(ParentIterator first, ParentIterator last) + { + std::ptrdiff_t count = 0; diff --git a/boost.spec b/boost.spec index a6af3c2..38e86db 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -156,6 +156,10 @@ Patch94: boost-1.73-locale-empty-vector.patch # https://github.com/boostorg/build/issues/696 Patch95: boost-1.75.0-boost-build-fix.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1958382 +# https://github.com/boostorg/graph/pull/218 +Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch + %bcond_with tests %bcond_with docs_generated @@ -677,6 +681,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch93 -p1 %patch94 -p1 %patch95 -p1 +%patch98 -p1 %build %set_build_flags @@ -1278,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri May 07 2021 Thomas Rodgers - 1.75.0-5 +- Patch to fix deprecated iterator warnings (#1958382) + * Tue Mar 30 2021 Jonathan Wakely - 1.75.0-4 - Rebuilt for removed libstdc++ symbol (#1937698) From 5f7b377f410467f8d9c45e7f84544795566ce3c3 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 19 May 2021 16:44:05 +0100 Subject: [PATCH 123/203] Rebuild for ICU 69 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 38e86db..b6ef112 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed May 19 2021 Pete Walter - 1.75.0-6 +- Rebuild for ICU 69 + * Fri May 07 2021 Thomas Rodgers - 1.75.0-5 - Patch to fix deprecated iterator warnings (#1958382) From b796f2d0eb5aa9954cc5a559db984774616e586f Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Thu, 20 May 2021 00:53:58 +0100 Subject: [PATCH 124/203] Rebuild for ICU 69 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index b6ef112..87cfca0 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed May 19 2021 Pete Walter - 1.75.0-7 +- Rebuild for ICU 69 + * Wed May 19 2021 Pete Walter - 1.75.0-6 - Rebuild for ICU 69 From 582a02c7ab6e2f145156c7ff85a39256bffe0386 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 4 Jun 2021 12:11:52 +0200 Subject: [PATCH 125/203] Rebuilt for Python 3.10 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 87cfca0..10282c1 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jun 04 2021 Python Maint - 1.75.0-8 +- Rebuilt for Python 3.10 + * Wed May 19 2021 Pete Walter - 1.75.0-7 - Rebuild for ICU 69 From 237974a0ce1b2d3a2c6fface1db482a5b92ef845 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 13:51:03 +0000 Subject: [PATCH 126/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 7fd53e56413a3e7b5ad7e1983ac0a4d6579c3185 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 21 Jul 2021 18:48:13 +0000 Subject: [PATCH 127/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 10282c1..cbc8a5b 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.75.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1283,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 21 2021 Fedora Release Engineering - 1.75.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + * Fri Jun 04 2021 Python Maint - 1.75.0-8 - Rebuilt for Python 3.10 From dd07b4b21f480f41a031ff3a352ef4e556959433 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Wed, 4 Aug 2021 13:35:00 -0700 Subject: [PATCH 128/203] Rebase to 1.75.0 See https://fedoraproject.org/wiki/Changes/F35Boost176 Drop patches: deleted: boost-1.73-python3.10.patch deleted: boost-1.73.0-b2-build-flags.patch deleted: boost-1.75.0-boost-build-fix.patch Fix include inside boost namespace in boost/math/tools/mp.hpp See https://github.com/boostorg/math/pull/670 Fix duplicate typedef in boost/math/tools/mp.hpp See https://github.com/boostorg/math/pull/671 --- boost-1.73-python3.10.patch | 108 ------------------ boost-1.73.0-b2-build-flags.patch | 11 -- boost-1.75.0-boost-build-fix.patch | 25 ---- boost-1.76.0-b2-build-flags.patch | 25 ++++ ...t-1.76.0-fix-duplicate-typedef-in-mp.patch | 27 +++++ ...0-fix-include-inside-boost-namespace.patch | 33 ++++++ boost.spec | 44 ++++--- sources | 2 +- 8 files changed, 113 insertions(+), 162 deletions(-) delete mode 100644 boost-1.73-python3.10.patch delete mode 100644 boost-1.73.0-b2-build-flags.patch delete mode 100644 boost-1.75.0-boost-build-fix.patch create mode 100644 boost-1.76.0-b2-build-flags.patch create mode 100644 boost-1.76.0-fix-duplicate-typedef-in-mp.patch create mode 100644 boost-1.76.0-fix-include-inside-boost-namespace.patch diff --git a/boost-1.73-python3.10.patch b/boost-1.73-python3.10.patch deleted file mode 100644 index a6106a9..0000000 --- a/boost-1.73-python3.10.patch +++ /dev/null @@ -1,108 +0,0 @@ ---- boost_1_73_0/boost/parameter/python.hpp% 2020-11-13 23:37:19.232520985 +0000 -+++ boost_1_73_0/boost/parameter/python.hpp 2020-11-13 23:40:58.808393161 +0000 -@@ -66,7 +66,7 @@ - - if (Py_TYPE(&unspecified) == 0) - { -- Py_TYPE(&unspecified) = &PyType_Type; -+ Py_SET_TYPE(&unspecified, &PyType_Type); - PyType_Ready(&unspecified); - } - ---- boost_1_73_0/libs/python/src/object/class.cpp~ 2020-11-13 23:37:19.236520983 +0000 -+++ boost_1_73_0/libs/python/src/object/class.cpp 2020-11-13 23:40:40.233403979 +0000 -@@ -208,7 +208,7 @@ - { - if (static_data_object.tp_dict == 0) - { -- Py_TYPE(&static_data_object) = &PyType_Type; -+ Py_SET_TYPE(&static_data_object, &PyType_Type); - static_data_object.tp_base = &PyProperty_Type; - if (PyType_Ready(&static_data_object)) - return 0; -@@ -316,7 +316,7 @@ - { - if (class_metatype_object.tp_dict == 0) - { -- Py_TYPE(&class_metatype_object) = &PyType_Type; -+ Py_SET_TYPE(&class_metatype_object, &PyType_Type); - class_metatype_object.tp_base = &PyType_Type; - if (PyType_Ready(&class_metatype_object)) - return type_handle(); -@@ -375,11 +375,11 @@ - // there. A negative number indicates that the extra - // instance memory is not yet allocated to any holders. - #if PY_VERSION_HEX >= 0x02060000 -- Py_SIZE(result) = -+ Py_SET_SIZE(result, - #else -- result->ob_size = -+ result->ob_size = ( - #endif -- -(static_cast(offsetof(instance<>,storage) + instance_size)); -+ -(static_cast(offsetof(instance<>,storage) + instance_size))); - } - return (PyObject*)result; - } -@@ -470,7 +470,7 @@ - { - if (class_type_object.tp_dict == 0) - { -- Py_TYPE(&class_type_object) = incref(class_metatype().get()); -+ Py_SET_TYPE(&class_type_object, incref(class_metatype().get())); - class_type_object.tp_base = &PyBaseObject_Type; - if (PyType_Ready(&class_type_object)) - return type_handle(); -@@ -739,7 +739,7 @@ - assert(holder_offset >= offsetof(objects::instance<>,storage)); - - // Record the fact that the storage is occupied, noting where it starts -- Py_SIZE(self) = holder_offset; -+ Py_SET_SIZE(self, holder_offset); - return (char*)self + holder_offset; - } - else ---- boost_1_73_0/libs/python/src/object/life_support.cpp~ 2020-11-13 23:37:19.240520980 +0000 -+++ boost_1_73_0/libs/python/src/object/life_support.cpp 2020-11-13 23:39:37.492440504 +0000 -@@ -93,7 +93,7 @@ - - if (Py_TYPE(&life_support_type) == 0) - { -- Py_TYPE(&life_support_type) = &PyType_Type; -+ Py_SET_TYPE(&life_support_type, &PyType_Type); - PyType_Ready(&life_support_type); - } - ---- boost_1_73_0/libs/python/src/object/function.cpp~ 2020-11-13 23:37:19.244520978 +0000 -+++ boost_1_73_0/libs/python/src/object/function.cpp 2020-11-13 23:39:14.260454029 +0000 -@@ -107,7 +107,7 @@ - PyObject* p = this; - if (Py_TYPE(&function_type) == 0) - { -- Py_TYPE(&function_type) = &PyType_Type; -+ Py_SET_TYPE(&function_type, &PyType_Type); - ::PyType_Ready(&function_type); - } - ---- boost_1_73_0/libs/python/src/object/enum.cpp~ 2020-11-13 23:37:19.248520976 +0000 -+++ boost_1_73_0/libs/python/src/object/enum.cpp 2020-11-13 23:38:51.943467016 +0000 -@@ -153,7 +153,7 @@ - { - if (enum_type_object.tp_dict == 0) - { -- Py_TYPE(&enum_type_object) = incref(&PyType_Type); -+ Py_SET_TYPE(&enum_type_object, incref(&PyType_Type)); - #if PY_VERSION_HEX >= 0x03000000 - enum_type_object.tp_base = &PyLong_Type; - #else ---- boost_1_73_0/boost/python/object/make_instance.hpp~ 2020-11-14 00:26:47.356724835 +0000 -+++ boost_1_73_0/boost/python/object/make_instance.hpp 2020-11-14 00:26:49.947723159 +0000 -@@ -47,7 +47,7 @@ - - // Note the position of the internally-stored Holder, - // for the sake of destruction -- Py_SIZE(instance) = offsetof(instance_t, storage); -+ Py_SET_SIZE(instance, offsetof(instance_t, storage)); - - // Release ownership of the python object - protect.cancel(); diff --git a/boost-1.73.0-b2-build-flags.patch b/boost-1.73.0-b2-build-flags.patch deleted file mode 100644 index e2e2037..0000000 --- a/boost-1.73.0-b2-build-flags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- boost_1_73_0/tools/build/src/engine/build.sh~ 2020-04-25 17:09:03.159419899 +0100 -+++ boost_1_73_0/tools/build/src/engine/build.sh 2020-04-25 17:11:35.085907844 +0100 -@@ -233,7 +233,7 @@ - - *) - B2_CXX="${CXX} -x c++ -std=c++11" -- B2_CXXFLAGS_RELEASE="-O2 -s" -+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" - B2_CXXFLAGS_DEBUG="-O0 -g" - esac - ;; diff --git a/boost-1.75.0-boost-build-fix.patch b/boost-1.75.0-boost-build-fix.patch deleted file mode 100644 index 264441b..0000000 --- a/boost-1.75.0-boost-build-fix.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 40e5bcd594b01f9b7091de07f9efc4567cc1ac40 Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Tue, 2 Feb 2021 18:15:30 -0800 -Subject: [PATCH] Apply post 1.75.0 change from upstream - ---- - tools/build/src/engine/startup.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/build/src/engine/startup.cpp b/tools/build/src/engine/startup.cpp -index f58625408..a7659bb50 100644 ---- a/tools/build/src/engine/startup.cpp -+++ b/tools/build/src/engine/startup.cpp -@@ -195,7 +195,7 @@ bool b2::startup::bootstrap(FRAME *frame) - { - const std::string path{ - b2::paths::normalize( -- b2_exe_path + "/../../share/boost-build/" + boost_build_jam)}; -+ b2_exe_path + "/../../share/boost-build/src/kernel/" + boost_build_jam)}; - if (b2::filesys::is_file(path)) - b2_file_path = path; - } --- -2.26.2 - diff --git a/boost-1.76.0-b2-build-flags.patch b/boost-1.76.0-b2-build-flags.patch new file mode 100644 index 0000000..3422b5d --- /dev/null +++ b/boost-1.76.0-b2-build-flags.patch @@ -0,0 +1,25 @@ +From 5dde5a5a3c12dd8f52cb61ba220ec221ecfa98f0 Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Thu, 29 Jul 2021 10:15:37 -0700 +Subject: [PATCH] Use options from RPM for release builds with GCC + +--- + tools/build/src/engine/build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index 58f41cb4a..f85040f99 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -325,7 +325,7 @@ case "${B2_TOOLSET}" in + B2_CXX="${B2_CXX} -pthread" + ;; + esac +- B2_CXXFLAGS_RELEASE="-O2 -s" ++ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" + B2_CXXFLAGS_DEBUG="-O0 -g" + ;; + +-- +2.31.1 + diff --git a/boost-1.76.0-fix-duplicate-typedef-in-mp.patch b/boost-1.76.0-fix-duplicate-typedef-in-mp.patch new file mode 100644 index 0000000..a6c3c7d --- /dev/null +++ b/boost-1.76.0-fix-duplicate-typedef-in-mp.patch @@ -0,0 +1,27 @@ +From 62fcbde69aae70af24a51cb6582a2a95f65441c2 Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Wed, 4 Aug 2021 13:22:35 -0700 +Subject: [PATCH] Fix duplicate typedef in mp.hpp [#671] + +https://github.com/boostorg/math/pull/671 +--- + boost/math/tools/mp.hpp | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp +index dc8440988..3100a0bb6 100644 +--- a/boost/math/tools/mp.hpp ++++ b/boost/math/tools/mp.hpp +@@ -426,9 +426,6 @@ struct make_integer_sequence_impl + template + using make_integer_sequence = typename detail::make_integer_sequence_impl::type; + +-template +-using index_sequence = integer_sequence; +- + template + using make_index_sequence = make_integer_sequence; + +-- +2.31.1 + diff --git a/boost-1.76.0-fix-include-inside-boost-namespace.patch b/boost-1.76.0-fix-include-inside-boost-namespace.patch new file mode 100644 index 0000000..0fd8f05 --- /dev/null +++ b/boost-1.76.0-fix-include-inside-boost-namespace.patch @@ -0,0 +1,33 @@ +From f6818a161d3f835d246aceea0804243c887ac10b Mon Sep 17 00:00:00 2001 +From: Thomas Rodgers +Date: Wed, 4 Aug 2021 13:09:57 -0700 +Subject: [PATCH] Fix include inside boost namespace [#670] + +https://github.com/boostorg/math/pull/670/commits/1ec5c98d80de97f9e962c5627e1a0e6096099894 +--- + boost/math/tools/mp.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp +index 35565646f..dc8440988 100644 +--- a/boost/math/tools/mp.hpp ++++ b/boost/math/tools/mp.hpp +@@ -13,6 +13,7 @@ + + #include + #include ++#include + + namespace boost { namespace math { namespace tools { namespace meta_programming { + +@@ -338,7 +339,6 @@ using mp_remove_if_q = mp_remove_if; + // Index sequence + // Use C++14 index sequence if available + #if defined(__cpp_lib_integer_sequence) && (__cpp_lib_integer_sequence >= 201304) +-#include + template + using index_sequence = std::index_sequence; + +-- +2.31.1 + diff --git a/boost.spec b/boost.spec index cbc8a5b..43afae3 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.75.0 -Release: 9%{?dist} +Version: 1.76.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://dl.bintray.com/boostorg/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 +Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html @@ -138,28 +138,26 @@ Patch96: boost-1.75.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch97: boost-1.75.0-no-rpath.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch83: boost-1.73.0-b2-build-flags.patch - # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1896382 -# https://github.com/boostorg/python/issues/325 -Patch93: boost-1.73-python3.10.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1899888 # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1923740 -# https://github.com/boostorg/build/issues/696 -Patch95: boost-1.75.0-boost-build-fix.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1958382 # https://github.com/boostorg/graph/pull/218 Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 +Patch99: boost-1.76.0-b2-build-flags.patch + +# https://github.com/boostorg/math/pull/670 +Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch + +# https://github.com/boostorg/math/pull/671 +Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch + %bcond_with tests %bcond_with docs_generated @@ -676,12 +674,12 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch51 -p1 %patch96 -p1 %patch97 -p1 -%patch83 -p1 +%patch99 -p1 %patch88 -p1 -%patch93 -p1 %patch94 -p1 -%patch95 -p1 %patch98 -p1 +%patch100 -p1 +%patch101 -p1 %build %set_build_flags @@ -1283,6 +1281,18 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Aug 04 2021 Thomas Rodgers - 1.76.0-1 +- Rebase to 1.75.0 + See https://fedoraproject.org/wiki/Changes/F35Boost176 +- Drop patches: + deleted: boost-1.73-python3.10.patch + deleted: boost-1.73.0-b2-build-flags.patch + deleted: boost-1.75.0-boost-build-fix.patch +- Fix include inside boost namespace in boost/math/tools/mp.hpp + See https://github.com/boostorg/math/pull/670 +- Fix duplicate typedef in boost/math/tools/mp.hpp + See https://github.com/boostorg/math/pull/671 + * Wed Jul 21 2021 Fedora Release Engineering - 1.75.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild diff --git a/sources b/sources index 784d5b3..ced7dc7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_75_0.tar.bz2) = d86f060245e98dca5c7f3f831c98ea9ccbfa8310f20830dd913d9d4c939fbe7cb94accd35f1128e7c4faf6c27adb6f4bb54e5477a6bde983dfc7aa33c4eed03a +SHA512 (boost_1_76_0.tar.bz2) = 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429 From ee1a4870ab2d9e85e5b54a464ef48457a69d0add Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Thu, 5 Aug 2021 13:49:56 -0700 Subject: [PATCH 129/203] Boost.Math does not support 'long double' of ppc64le See https://github.com/boostorg/math/pull/524 --- boost.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 43afae3..06d011f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 0%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1064,10 +1064,16 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_math_c99.so.%{sonamever} %{_libdir}/libboost_math_c99f.so.%{sonamever} +%ifnarch ppc64 ppc64le +# long double not supported for this platform %{_libdir}/libboost_math_c99l.so.%{sonamever} +%endif %{_libdir}/libboost_math_tr1.so.%{sonamever} %{_libdir}/libboost_math_tr1f.so.%{sonamever} +%ifnarch ppc64 ppc64le +# long double not supported for this platform %{_libdir}/libboost_math_tr1l.so.%{sonamever} +%endif %files nowide %license LICENSE_1_0.txt @@ -1281,6 +1287,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Aug 05 2021 Thomas Rodgers - 1.76.0-2 +- Boost.Math does not support 'long double' of ppc64le + See https://github.com/boostorg/math/pull/524 * Wed Aug 04 2021 Thomas Rodgers - 1.76.0-1 - Rebase to 1.75.0 See https://fedoraproject.org/wiki/Changes/F35Boost176 From 03817f73cbf5fce489a3ddab76d729634ce52a7b Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Thu, 5 Aug 2021 14:48:33 -0700 Subject: [PATCH 130/203] Second attempt at making the long double c99 and tr1 math libs conditional on ppc64le --- boost.spec | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/boost.spec b/boost.spec index 06d011f..3d9cd41 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 1%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1065,14 +1065,14 @@ fi %{_libdir}/libboost_math_c99.so.%{sonamever} %{_libdir}/libboost_math_c99f.so.%{sonamever} %ifnarch ppc64 ppc64le -# long double not supported for this platform -%{_libdir}/libboost_math_c99l.so.%{sonamever} + # long double not supported for this platform + %{_libdir}/libboost_math_c99l.so.%{sonamever} %endif %{_libdir}/libboost_math_tr1.so.%{sonamever} %{_libdir}/libboost_math_tr1f.so.%{sonamever} %ifnarch ppc64 ppc64le -# long double not supported for this platform -%{_libdir}/libboost_math_tr1l.so.%{sonamever} + # long double not supported for this platform + %{_libdir}/libboost_math_tr1l.so.%{sonamever} %endif %files nowide @@ -1287,6 +1287,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Aug 05 2021 Thomas Rodgers - 1.76.0-3 +- Second attempt at making the long double c99 and tr1 math libs conditional + on ppc64le * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-2 - Boost.Math does not support 'long double' of ppc64le See https://github.com/boostorg/math/pull/524 From 65b36067d52a774f4453294ed5a361a4e65255d4 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Thu, 5 Aug 2021 18:41:56 -0700 Subject: [PATCH 131/203] Third attempt at making the long double c99 and tr1 math libs conditional on ppc64le --- boost.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 3d9cd41..eeb2715 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1173,10 +1173,14 @@ fi %{_libdir}/libboost_log_setup.so %{_libdir}/libboost_math_tr1.so %{_libdir}/libboost_math_tr1f.so +%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_tr1l.so +%endif %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so +%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_c99l.so +%endif %{_libdir}/libboost_nowide.so %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so @@ -1287,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Aug 05 2021 Thomas Rodgers - 1.76.0-4 +- Third attempt at making the long double c99 and tr1 math libs conditional + on ppc64le * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-3 - Second attempt at making the long double c99 and tr1 math libs conditional on ppc64le From 6a7ecd767d4296a3d3e4786b1786b17f29569d4c Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Sun, 23 May 2021 14:00:02 +0000 Subject: [PATCH 132/203] drop unwanted scratch build rule for gating --- gating.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/gating.yaml b/gating.yaml index 14943f1..4581d72 100644 --- a/gating.yaml +++ b/gating.yaml @@ -5,7 +5,6 @@ decision_context: bodhi_update_push_stable subject_type: koji_build rules: - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} - - !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation} --- !Policy product_versions: - rhel-8 From 0fc8825319a7ff4d7a35fb5742c36ed64793ae6d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 13:23:48 +0100 Subject: [PATCH 133/203] Add whitespace between changelog entries --- boost.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/boost.spec b/boost.spec index eeb2715..dbed81a 100644 --- a/boost.spec +++ b/boost.spec @@ -1294,12 +1294,15 @@ fi * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-4 - Third attempt at making the long double c99 and tr1 math libs conditional on ppc64le + * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-3 - Second attempt at making the long double c99 and tr1 math libs conditional on ppc64le + * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-2 - Boost.Math does not support 'long double' of ppc64le See https://github.com/boostorg/math/pull/524 + * Wed Aug 04 2021 Thomas Rodgers - 1.76.0-1 - Rebase to 1.75.0 See https://fedoraproject.org/wiki/Changes/F35Boost176 From 3824fb19034c59a1dd5377abdb0719535931f51d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 13:38:22 +0100 Subject: [PATCH 134/203] Remove double % in Source0 tag --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index dbed81a..d5a50ba 100644 --- a/boost.spec +++ b/boost.spec @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%%{version_enc}.tar.bz2 +Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html From 214bbadaf6d65b9cecbf8951e258a5623c2ccdc1 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 14:13:43 +0100 Subject: [PATCH 135/203] Make boost-python3 depend on specific 3.X version (#1896713) --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index d5a50ba..81ee49f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -351,6 +351,7 @@ conventional methods such as command-line and configuration file. %if %{with python3} %package python3 Summary: Run-time component of boost python library for Python 3 +Requires: python(abi) = %{python3_version} %description python3 @@ -1291,6 +1292,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Sep 01 2021 Jonathan Wakely - 1.76.0-5 +- Make boost-python3 depend on specific 3.X version (#1896713) + * Thu Aug 05 2021 Thomas Rodgers - 1.76.0-4 - Third attempt at making the long double c99 and tr1 math libs conditional on ppc64le From bba3a6c2a04e68f2c50ec48ec20bd05c0d380493 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 1 Sep 2021 17:51:47 +0100 Subject: [PATCH 136/203] Add patch to fix CI failure --- boost-1.76.0-random-test.patch | 34 ++++++++++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-random-test.patch diff --git a/boost-1.76.0-random-test.patch b/boost-1.76.0-random-test.patch new file mode 100644 index 0000000..5ce7477 --- /dev/null +++ b/boost-1.76.0-random-test.patch @@ -0,0 +1,34 @@ +From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Tue, 16 Mar 2021 10:47:16 +0000 +Subject: [PATCH] Add missing #includes. + +--- + test/multiprecision_float_test.cpp | 1 + + test/multiprecision_int_test.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp +index 904c59d8f..bc2a9364d 100644 +--- boost_1_76_0/libs/random/test/multiprecision_float_test.cpp ++++ boost_1_76_0/libs/random/test/multiprecision_float_test.cpp +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + + +diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp +index 577e52aff..41ec229b5 100644 +--- boost_1_76_0/libs/random/test/multiprecision_int_test.cpp ++++ boost_1_76_0/libs/random/test/multiprecision_int_test.cpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + + typedef boost::mpl::list < diff --git a/boost.spec b/boost.spec index 81ee49f..fb1921b 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -158,6 +158,9 @@ Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch # https://github.com/boostorg/math/pull/671 Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch +# https://github.com/boostorg/random/issues/82 +Patch102: boost-1.76.0-random-test.patch + %bcond_with tests %bcond_with docs_generated @@ -681,6 +684,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch98 -p1 %patch100 -p1 %patch101 -p1 +%patch102 -p1 %build %set_build_flags @@ -1292,6 +1296,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Sep 01 2021 Jonathan Wakely - 1.76.0-6 +- Add patch to fix CI failure + * Wed Sep 01 2021 Jonathan Wakely - 1.76.0-5 - Make boost-python3 depend on specific 3.X version (#1896713) From 6edfd326176b2333052aae56fd6aa3209600d432 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jan 2022 22:31:40 +0000 Subject: [PATCH 137/203] - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index fb1921b..fa3e2dc 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1296,6 +1296,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jan 19 2022 Fedora Release Engineering - 1.76.0-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + * Wed Sep 01 2021 Jonathan Wakely - 1.76.0-6 - Add patch to fix CI failure From 6502666126527c7b47c4a4690e0c6d30022fe6aa Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Tue, 1 Feb 2022 15:56:55 +0100 Subject: [PATCH 138/203] Fix https://github.com/boostorg/multiprecision/issues/419 The PR https://github.com/boostorg/multiprecision/pull/421 fixes the issue, and is planned for Boost version 1.79.0. --- ...fix_multiprecision_issue_419-ppc64le.patch | 27 +++++++++++++++++++ boost.spec | 11 +++++++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch diff --git a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch new file mode 100644 index 0000000..5cd6d40 --- /dev/null +++ b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch @@ -0,0 +1,27 @@ +From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Tue, 25 Jan 2022 09:27:40 +0000 +Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes + https://github.com/boostorg/multiprecision/issues/419. + +--- + include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +index eb4624bb4..37717cd51 100644 +--- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp ++++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp +@@ -19,7 +19,11 @@ + // If this is GCC/clang, then check that the actual intrinsic exists: + // + #if defined(__has_builtin) && defined(__GNUC__) +-#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) ++#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \ ++ && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \ ++ && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\ ++ || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \ ++ || defined(_M_X64) || defined(__amd64__) || defined(_M_X64))) + #undef BOOST_MP_HAS_IMMINTRIN_H + #endif + #elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) diff --git a/boost.spec b/boost.spec index fa3e2dc..5928a44 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -161,6 +161,10 @@ Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch +# PR https://github.com/boostorg/multiprecision/pull/421 +# fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 +Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch + %bcond_with tests %bcond_with docs_generated @@ -685,6 +689,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch100 -p1 %patch101 -p1 %patch102 -p1 +%patch103 -p2 %build %set_build_flags @@ -1296,6 +1301,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Feb 1 2022 Laurent Rineau - 1.76.0-8 +- Add patch to fix Boost Multiprecision on ppc64le + https://github.com/boostorg/multiprecision/issues/419 + * Wed Jan 19 2022 Fedora Release Engineering - 1.76.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From 0e92f1aa2e2fb7863be42c60deda475d7fc2c955 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Tue, 1 Feb 2022 16:44:57 +0100 Subject: [PATCH 139/203] Restore math_c99l and math_tr1l on ppc64le --- boost.spec | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/boost.spec b/boost.spec index 5928a44..400890e 100644 --- a/boost.spec +++ b/boost.spec @@ -1074,16 +1074,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_math_c99.so.%{sonamever} %{_libdir}/libboost_math_c99f.so.%{sonamever} -%ifnarch ppc64 ppc64le - # long double not supported for this platform - %{_libdir}/libboost_math_c99l.so.%{sonamever} -%endif +%{_libdir}/libboost_math_c99l.so.%{sonamever} %{_libdir}/libboost_math_tr1.so.%{sonamever} %{_libdir}/libboost_math_tr1f.so.%{sonamever} -%ifnarch ppc64 ppc64le - # long double not supported for this platform - %{_libdir}/libboost_math_tr1l.so.%{sonamever} -%endif +%{_libdir}/libboost_math_tr1l.so.%{sonamever} %files nowide %license LICENSE_1_0.txt @@ -1183,14 +1177,10 @@ fi %{_libdir}/libboost_log_setup.so %{_libdir}/libboost_math_tr1.so %{_libdir}/libboost_math_tr1f.so -%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_tr1l.so -%endif %{_libdir}/libboost_math_c99.so %{_libdir}/libboost_math_c99f.so -%ifnarch ppc64 ppc64le %{_libdir}/libboost_math_c99l.so -%endif %{_libdir}/libboost_nowide.so %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so @@ -1304,6 +1294,7 @@ fi * Tue Feb 1 2022 Laurent Rineau - 1.76.0-8 - Add patch to fix Boost Multiprecision on ppc64le https://github.com/boostorg/multiprecision/issues/419 +- Acknowledge the change of the ABI of ppc64le with long double. * Wed Jan 19 2022 Fedora Release Engineering - 1.76.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild From bc37ceb79d4456aaa0fd5434cad1c105717af3a7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 3 Feb 2022 00:17:30 +0000 Subject: [PATCH 140/203] Add rpmlintrc file to suppress errors in Zuul checks --- boost.rpmlintrc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 boost.rpmlintrc diff --git a/boost.rpmlintrc b/boost.rpmlintrc new file mode 100644 index 0000000..c8a2596 --- /dev/null +++ b/boost.rpmlintrc @@ -0,0 +1,24 @@ +# The meta-package doesn't contain any files, this is intended. +addFilter("boost.x86_64: E: no-binary") + +# All docs are in a separate boost-doc package +addFilter("boost.*: W: no-documentation") +addFilter("boost.*: W: description-shorter-than-summary") + +# Upstream don't provide one +addFilter("boost-doctools.x86_64: W: no-manual-page-for-binary quickbook") + +# Ignore these +addFilter("boost.*: W: spelling-error %description -l en_US foundational ") +addFilter("boost.*: W: spelling-error %description -l en_US invariants ") +addFilter("boost.*: W: spelling-error %description -l en_US postconditions ") +addFilter("boost.*: W: spelling-error %description -l en_US userland ") +addFilter("boost.*: W: spelling-error Summary(en_US) numpy ") + +# The example code is useless without the headers +addFilter("boost-examples.x86_64: E: devel-dependency boost-devel") + +# These libs are statically linked +addFilter("boost-date-time.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_date_time.so.*") +addFilter("boost-system.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_system.so.*") +addFilter("boost-stacktrace.x86_64: E: shared-lib-without-dependency-information /usr/lib64/libboost_stacktrace_noop.so.*") From 9eaf760933410d1eb9fdd750275be9952bdce9aa Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Wed, 2 Feb 2022 18:36:49 -0800 Subject: [PATCH 141/203] Add patch to fix narrowing conversions on ppc64le https://github.com/boostorg/interval/issues/29 --- ....0-fix-narrowing-conversions-for-ppc.patch | 32 +++++++++++++++++++ boost.spec | 12 ++++++- 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-fix-narrowing-conversions-for-ppc.patch diff --git a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch new file mode 100644 index 0000000..42662dd --- /dev/null +++ b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch @@ -0,0 +1,32 @@ +From 0039878782516ea3313608f99f0d50e846151bc2 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Mon, 31 Jan 2022 11:37:29 +0000 +Subject: [PATCH] Fix narrowing conversions for ppc + +These constants are too large for `long long` so are unsigned, +and then cannot be narrowed to the signed type. + +Fixes #29 +--- + .../numeric/interval/detail/ppc_rounding_control.hpp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp +index 87fe8ee..99f9986 100644 +--- a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp ++++ b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp +@@ -28,10 +28,10 @@ typedef union { + double dmode; + } rounding_mode_struct; + +-static const rounding_mode_struct mode_upward = { 0xFFF8000000000002LL }; +-static const rounding_mode_struct mode_downward = { 0xFFF8000000000003LL }; +-static const rounding_mode_struct mode_to_nearest = { 0xFFF8000000000000LL }; +-static const rounding_mode_struct mode_toward_zero = { 0xFFF8000000000001LL }; ++static const rounding_mode_struct mode_upward = { (::boost::long_long_type)0xFFF8000000000002LL }; ++static const rounding_mode_struct mode_downward = { (::boost::long_long_type)0xFFF8000000000003LL }; ++static const rounding_mode_struct mode_to_nearest = { (::boost::long_long_type)0xFFF8000000000000LL }; ++static const rounding_mode_struct mode_toward_zero = { (::boost::long_long_type)0xFFF8000000000001LL }; + + struct ppc_rounding_control + { diff --git a/boost.spec b/boost.spec index 400890e..18744b5 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -165,6 +165,11 @@ Patch102: boost-1.76.0-random-test.patch # fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch +# PR https://github.com/boostorg/interval/pull/30 +# Fixes narrowing conversions for ppc - +# https://github.com/boostorg/interval/issues/29 +Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch + %bcond_with tests %bcond_with docs_generated @@ -690,6 +695,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch101 -p1 %patch102 -p1 %patch103 -p2 +%patch104 -p2 %build %set_build_flags @@ -1291,6 +1297,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Feb 2 2022 Thomas Rodgers - 1.76.0-9 +- Add patch to fix narrowing conversions on ppc64le + https://github.com/boostorg/interval/issues/29 + * Tue Feb 1 2022 Laurent Rineau - 1.76.0-8 - Add patch to fix Boost Multiprecision on ppc64le https://github.com/boostorg/multiprecision/issues/419 From 3c2829edfe0a42d456a0f571a327861f39c97af3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 31 Mar 2022 13:12:21 +0100 Subject: [PATCH 142/203] Add patch to fix XML validation errors in ptr_container docs --- boost-1.76.0-ptr_cont-xml.patch | 1263 +++++++++++++++++++++++++++++++ boost.spec | 9 +- 2 files changed, 1271 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-ptr_cont-xml.patch diff --git a/boost-1.76.0-ptr_cont-xml.patch b/boost-1.76.0-ptr_cont-xml.patch new file mode 100644 index 0000000..ed088bf --- /dev/null +++ b/boost-1.76.0-ptr_cont-xml.patch @@ -0,0 +1,1263 @@ +From adc94a80adbb7b720bd149c8b805876baa77b815 Mon Sep 17 00:00:00 2001 +From: Jonathan Wakely +Date: Wed, 5 Aug 2020 11:28:26 +0100 +Subject: [PATCH] Fix invalid XHTML markup in docs + +The reStructuredText files insert
HTML elements, which are not +valid in XHTML. + +The doc/tutorial_example.html file contains unquoted attributes and +unclosed and tags (although since that file is included +into another document, it probably shouldn't have , and + elements at all). +--- + doc/associative_ptr_container.html | 2 +- + doc/associative_ptr_container.rst | 2 +- + doc/examples.html | 2 +- + doc/examples.rst | 4 +- + doc/faq.html | 2 +- + doc/faq.rst | 2 +- + doc/guidelines.html | 4 +- + doc/guidelines.rst | 4 +- + doc/headers.html | 2 +- + doc/headers.rst | 2 +- + doc/indirect_fun.html | 2 +- + doc/indirect_fun.rst | 2 +- + doc/ptr_array.html | 2 +- + doc/ptr_array.rst | 2 +- + doc/ptr_container.html | 2 +- + doc/ptr_container.rst | 2 +- + doc/ptr_deque.html | 2 +- + doc/ptr_deque.rst | 2 +- + doc/ptr_inserter.html | 2 +- + doc/ptr_inserter.rst | 2 +- + doc/ptr_list.html | 2 +- + doc/ptr_list.rst | 2 +- + doc/ptr_map.html | 2 +- + doc/ptr_map.rst | 2 +- + doc/ptr_map_adapter.html | 2 +- + doc/ptr_map_adapter.rst | 2 +- + doc/ptr_multimap_adapter.html | 2 +- + doc/ptr_multimap_adapter.rst | 2 +- + doc/ptr_multiset.html | 2 +- + doc/ptr_multiset.rst | 2 +- + doc/ptr_multiset_adapter.html | 2 +- + doc/ptr_multiset_adapter.rst | 2 +- + doc/ptr_sequence_adapter.html | 2 +- + doc/ptr_sequence_adapter.rst | 2 +- + doc/ptr_set.html | 2 +- + doc/ptr_set.rst | 2 +- + doc/ptr_set_adapter.html | 2 +- + doc/ptr_set_adapter.rst | 2 +- + doc/ptr_vector.html | 2 +- + doc/ptr_vector.rst | 2 +- + doc/reference.html | 4 +- + doc/reference.rst | 4 +- + doc/reversible_ptr_container.html | 2 +- + doc/reversible_ptr_container.rst | 2 +- + doc/tutorial.html | 4 +- + doc/tutorial.rst | 4 +- + doc/tutorial_example.html | 384 ++++++++++++++--------------- + 47 files changed, 245 insertions(+), 245 deletions(-) + +diff --git a/doc/associative_ptr_container.html b/doc/associative_ptr_container.html +index ccc4d9fa..9467864f 100644 +--- a/libs/ptr_container/doc/associative_ptr_container.html ++++ b/libs/ptr_container/doc/associative_ptr_container.html +@@ -529,7 +529,7 @@

++
+ + + +diff --git a/doc/associative_ptr_container.rst b/doc/associative_ptr_container.rst +index b9b8d45a..6dcd0833 100644 +--- a/libs/ptr_container/doc/associative_ptr_container.rst ++++ b/libs/ptr_container/doc/associative_ptr_container.rst +@@ -216,7 +216,7 @@ Semantics: algorithms + + .. raw:: html + +-
++
+ + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/examples.html b/doc/examples.html +index 5568b323..dbc8ce2b 100644 +--- a/libs/ptr_container/doc/examples.html ++++ b/libs/ptr_container/doc/examples.html +@@ -886,7 +886,7 @@

9. A large example

+
  • home
  • +
  • reference
  • + +-
    ++
    + + + +diff --git a/doc/examples.rst b/doc/examples.rst +index 213094bf..d82f4b85 100644 +--- a/libs/ptr_container/doc/examples.rst ++++ b/libs/ptr_container/doc/examples.rst +@@ -180,7 +180,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. + + .. raw:: html + +-
    ++
    + + **Navigate:** + +@@ -189,7 +189,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/faq.html b/doc/faq.html +index f318483b..1d701131 100644 +--- a/libs/ptr_container/doc/faq.html ++++ b/libs/ptr_container/doc/faq.html +@@ -373,7 +373,7 @@

    [13] for details.

    +-

    ++
    + + + +diff --git a/doc/faq.rst b/doc/faq.rst +index 40c8eb2d..e2ead8d7 100644 +--- a/libs/ptr_container/doc/faq.rst ++++ b/libs/ptr_container/doc/faq.rst +@@ -95,7 +95,7 @@ class with dummy implementations of the virtual functions. See `[13] ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/guidelines.html b/doc/guidelines.html +index 759b6259..25d1f148 100644 +--- a/libs/ptr_container/doc/guidelines.html ++++ b/libs/ptr_container/doc/guidelines.html +@@ -414,12 +414,12 @@

    container< nullable<T> >.

    +-

    Navigate:

    ++

    Navigate:

    +
    +-

    ++
    + + + +diff --git a/doc/guidelines.rst b/doc/guidelines.rst +index 1c39c7ba..bf69dac8 100644 +--- a/libs/ptr_container/doc/guidelines.rst ++++ b/libs/ptr_container/doc/guidelines.rst +@@ -144,7 +144,7 @@ you. That is when you truly need ``container< nullable >``. + + .. raw:: html + +-
    ++
    + + **Navigate:** + +@@ -153,7 +153,7 @@ you. That is when you truly need ``container< nullable >``. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/headers.html b/doc/headers.html +index 4b040825..aa1609ab 100644 +--- a/libs/ptr_container/doc/headers.html ++++ b/libs/ptr_container/doc/headers.html +@@ -375,7 +375,7 @@

    Library headers

    +
  • home
  • +
  • reference
  • + +-
    ++
    + + + +diff --git a/doc/headers.rst b/doc/headers.rst +index befcbb55..8c8e8ded 100644 +--- a/libs/ptr_container/doc/headers.rst ++++ b/libs/ptr_container/doc/headers.rst +@@ -75,7 +75,7 @@ Library headers + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/indirect_fun.html b/doc/indirect_fun.html +index a0446472..acc13346 100644 +--- a/libs/ptr_container/doc/indirect_fun.html ++++ b/libs/ptr_container/doc/indirect_fun.html +@@ -401,7 +401,7 @@

    Indirected functions

    + + } // namespace 'boost' + +-
    ++
    + + + +diff --git a/doc/indirect_fun.rst b/doc/indirect_fun.rst +index 5fd13df2..f6583d90 100644 +--- a/libs/ptr_container/doc/indirect_fun.rst ++++ b/libs/ptr_container/doc/indirect_fun.rst +@@ -127,7 +127,7 @@ first operation is expanded inline. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_array.html b/doc/ptr_array.html +index 30da95f7..483fcfa4 100644 +--- a/libs/ptr_container/doc/ptr_array.html ++++ b/libs/ptr_container/doc/ptr_array.html +@@ -660,7 +660,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_array.rst b/doc/ptr_array.rst +index 68c2b47b..a7390236 100644 +--- a/libs/ptr_container/doc/ptr_array.rst ++++ b/libs/ptr_container/doc/ptr_array.rst +@@ -281,7 +281,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_container.html b/doc/ptr_container.html +index 5672bdfd..77a89a35 100644 +--- a/libs/ptr_container/doc/ptr_container.html ++++ b/libs/ptr_container/doc/ptr_container.html +@@ -735,7 +735,7 @@

    References

    + + +
    [13]Kevlin Henney, Null Object, 2002.
    +-
    ++
    + + + +diff --git a/doc/ptr_container.rst b/doc/ptr_container.rst +index 0436cce7..257a2fda 100644 +--- a/libs/ptr_container/doc/ptr_container.rst ++++ b/libs/ptr_container/doc/ptr_container.rst +@@ -384,7 +384,7 @@ __ http://www.two-sdg.demon.co.uk/curbralan/papers/europlop/NullObject.pdf + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. + +diff --git a/doc/ptr_deque.html b/doc/ptr_deque.html +index 5216aa0e..bc996969 100644 +--- a/libs/ptr_container/doc/ptr_deque.html ++++ b/libs/ptr_container/doc/ptr_deque.html +@@ -526,7 +526,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_deque.rst b/doc/ptr_deque.rst +index 020ba362..a2a2cc99 100644 +--- a/libs/ptr_container/doc/ptr_deque.rst ++++ b/libs/ptr_container/doc/ptr_deque.rst +@@ -170,7 +170,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_inserter.html b/doc/ptr_inserter.html +index 9fb05a8a..92e4a527 100644 +--- a/libs/ptr_container/doc/ptr_inserter.html ++++ b/libs/ptr_container/doc/ptr_inserter.html +@@ -348,7 +348,7 @@

    Insert Iterators

    + } // namespace 'ptr_container' + } // namespace 'boost' + +-
    ++
    + + + +diff --git a/doc/ptr_inserter.rst b/doc/ptr_inserter.rst +index 574bbdad..ef1c820b 100644 +--- a/libs/ptr_container/doc/ptr_inserter.rst ++++ b/libs/ptr_container/doc/ptr_inserter.rst +@@ -70,7 +70,7 @@ can be transfered as well. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2008. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_list.html b/doc/ptr_list.html +index 1a8e6798..c76aeaf9 100644 +--- a/libs/ptr_container/doc/ptr_list.html ++++ b/libs/ptr_container/doc/ptr_list.html +@@ -500,7 +500,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_list.rst b/doc/ptr_list.rst +index 302049d0..2eceb9d7 100644 +--- a/libs/ptr_container/doc/ptr_list.rst ++++ b/libs/ptr_container/doc/ptr_list.rst +@@ -146,7 +146,7 @@ Semantics: list operations + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_map.html b/doc/ptr_map.html +index e5fd2c9c..bc75e5cb 100644 +--- a/libs/ptr_container/doc/ptr_map.html ++++ b/libs/ptr_container/doc/ptr_map.html +@@ -342,7 +342,7 @@

    Class +-

    ++
    + + + +diff --git a/doc/ptr_map.rst b/doc/ptr_map.rst +index 6b50a2ba..64113937 100644 +--- a/libs/ptr_container/doc/ptr_map.rst ++++ b/libs/ptr_container/doc/ptr_map.rst +@@ -63,7 +63,7 @@ to store the pointers. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_map_adapter.html b/doc/ptr_map_adapter.html +index 2ed30539..b451914c 100644 +--- a/libs/ptr_container/doc/ptr_map_adapter.html ++++ b/libs/ptr_container/doc/ptr_map_adapter.html +@@ -556,7 +556,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_map_adapter.rst b/doc/ptr_map_adapter.rst +index 517ea7fc..aabf5c4e 100644 +--- a/libs/ptr_container/doc/ptr_map_adapter.rst ++++ b/libs/ptr_container/doc/ptr_map_adapter.rst +@@ -194,7 +194,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_multimap_adapter.html b/doc/ptr_multimap_adapter.html +index 3780ec8c..49243a16 100644 +--- a/libs/ptr_container/doc/ptr_multimap_adapter.html ++++ b/libs/ptr_container/doc/ptr_multimap_adapter.html +@@ -540,7 +540,7 @@

    Semantics: typedefs

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_multimap_adapter.rst b/doc/ptr_multimap_adapter.rst +index 3b9e9961..56d37f5d 100644 +--- a/libs/ptr_container/doc/ptr_multimap_adapter.rst ++++ b/libs/ptr_container/doc/ptr_multimap_adapter.rst +@@ -189,7 +189,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_multiset.html b/doc/ptr_multiset.html +index a82a7995..50fa9681 100644 +--- a/libs/ptr_container/doc/ptr_multiset.html ++++ b/libs/ptr_container/doc/ptr_multiset.html +@@ -349,7 +349,7 @@

    Class +
      +
    • Using nullable<T> as Key is meaningless and is not allowed
    • +
    +-

    ++
    + + + +diff --git a/doc/ptr_multiset.rst b/doc/ptr_multiset.rst +index 120891bd..3af8bef3 100644 +--- a/libs/ptr_container/doc/ptr_multiset.rst ++++ b/libs/ptr_container/doc/ptr_multiset.rst +@@ -70,7 +70,7 @@ to store the pointers. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_multiset_adapter.html b/doc/ptr_multiset_adapter.html +index 6bcfebb1..96e811d1 100644 +--- a/libs/ptr_container/doc/ptr_multiset_adapter.html ++++ b/libs/ptr_container/doc/ptr_multiset_adapter.html +@@ -491,7 +491,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_multiset_adapter.rst b/doc/ptr_multiset_adapter.rst +index eb9eafe2..8c437fb1 100644 +--- a/libs/ptr_container/doc/ptr_multiset_adapter.rst ++++ b/libs/ptr_container/doc/ptr_multiset_adapter.rst +@@ -134,7 +134,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_sequence_adapter.html b/doc/ptr_sequence_adapter.html +index aa2e7a42..9c4af800 100644 +--- a/libs/ptr_container/doc/ptr_sequence_adapter.html ++++ b/libs/ptr_container/doc/ptr_sequence_adapter.html +@@ -827,7 +827,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_sequence_adapter.rst b/doc/ptr_sequence_adapter.rst +index 5640d029..d98684c1 100644 +--- a/libs/ptr_container/doc/ptr_sequence_adapter.rst ++++ b/libs/ptr_container/doc/ptr_sequence_adapter.rst +@@ -443,7 +443,7 @@ contain any nulls*. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_set.html b/doc/ptr_set.html +index 8e66779f..1a5a37b0 100644 +--- a/libs/ptr_container/doc/ptr_set.html ++++ b/libs/ptr_container/doc/ptr_set.html +@@ -350,7 +350,7 @@

    Class +
  • Using nullable<T> as Key is meaningless and is not allowed
  • + +-

    ++
    + + + +diff --git a/doc/ptr_set.rst b/doc/ptr_set.rst +index 6679a8b2..5fb83d1e 100644 +--- a/libs/ptr_container/doc/ptr_set.rst ++++ b/libs/ptr_container/doc/ptr_set.rst +@@ -72,7 +72,7 @@ to store the pointers. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_set_adapter.html b/doc/ptr_set_adapter.html +index 12820d38..e32501da 100644 +--- a/libs/ptr_container/doc/ptr_set_adapter.html ++++ b/libs/ptr_container/doc/ptr_set_adapter.html +@@ -491,7 +491,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_set_adapter.rst b/doc/ptr_set_adapter.rst +index bb19e148..7b89c184 100644 +--- a/libs/ptr_container/doc/ptr_set_adapter.rst ++++ b/libs/ptr_container/doc/ptr_set_adapter.rst +@@ -136,7 +136,7 @@ Semantics: pointer container requirements + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/ptr_vector.html b/doc/ptr_vector.html +index def2a569..150c9a71 100644 +--- a/libs/ptr_container/doc/ptr_vector.html ++++ b/libs/ptr_container/doc/ptr_vector.html +@@ -550,7 +550,7 @@

    Semantics

    + + + +-
    ++
    + + + +diff --git a/doc/ptr_vector.rst b/doc/ptr_vector.rst +index 374166f2..575a5679 100644 +--- a/libs/ptr_container/doc/ptr_vector.rst ++++ b/libs/ptr_container/doc/ptr_vector.rst +@@ -185,7 +185,7 @@ Semantics: C-array support + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/reference.html b/doc/reference.html +index 1ae18479..653b4324 100644 +--- a/libs/ptr_container/doc/reference.html ++++ b/libs/ptr_container/doc/reference.html +@@ -797,11 +797,11 @@

    BOOST_NO_EXCEPTIONS is defined, then BOOST_PTR_CONTAINER_NO_EXCEPTIONS + is also defined.

    +-

    Navigate:

    ++

    Navigate:

    +
    +-

    ++
    + + + +diff --git a/doc/reference.rst b/doc/reference.rst +index 3dffbc68..0b827e0e 100644 +--- a/libs/ptr_container/doc/reference.rst ++++ b/libs/ptr_container/doc/reference.rst +@@ -486,7 +486,7 @@ is also defined. + + .. raw:: html + +-
    ++
    + + **Navigate:** + +@@ -494,7 +494,7 @@ is also defined. + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/reversible_ptr_container.html b/doc/reversible_ptr_container.html +index ede30c57..e45fcde8 100644 +--- a/libs/ptr_container/doc/reversible_ptr_container.html ++++ b/libs/ptr_container/doc/reversible_ptr_container.html +@@ -885,7 +885,7 @@

    Semantics

    + Boost.Serialization +
  • Exception safety: Loading gives the basic guarantee
  • + +-
    ++
    + + + +diff --git a/doc/reversible_ptr_container.rst b/doc/reversible_ptr_container.rst +index 360f7d97..4fb24163 100644 +--- a/libs/ptr_container/doc/reversible_ptr_container.rst ++++ b/libs/ptr_container/doc/reversible_ptr_container.rst +@@ -506,7 +506,7 @@ All containers can be serialized by means of + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/tutorial.html b/doc/tutorial.html +index 7c93b469..05047afd 100644 +--- a/libs/ptr_container/doc/tutorial.html ++++ b/libs/ptr_container/doc/tutorial.html +@@ -773,7 +773,7 @@

    Algorithms

    + BOOST_ASSERT( another_zoo.empty() ); + +

    That is all; now you have learned all the basics!

    +-

    See also

    ++

    See also

    + +-
    ++
    + + + +diff --git a/doc/tutorial.rst b/doc/tutorial.rst +index a7c12e20..8b84364a 100644 +--- a/libs/ptr_container/doc/tutorial.rst ++++ b/libs/ptr_container/doc/tutorial.rst +@@ -440,7 +440,7 @@ That is all; now you have learned all the basics! + + .. raw:: html + +-
    ++
    + + **See also** + +@@ -455,7 +455,7 @@ That is all; now you have learned all the basics! + + .. raw:: html + +-
    ++
    + + :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). + +diff --git a/doc/tutorial_example.html b/doc/tutorial_example.html +index 202a17bb..9ebf4a1c 100644 +--- a/libs/ptr_container/doc/tutorial_example.html ++++ b/libs/ptr_container/doc/tutorial_example.html +@@ -1,12 +1,12 @@ + + +- ++ + +- ++ + + + +-
    //
    ++    
    //
    + // Boost.Pointer Container
    + //
    + //  Copyright Thorsten Ottosen 2003-2005. Use, modification and
    +@@ -30,149 +30,149 @@
    + //
    + // First we select which container to use.
    + //
    +-#include <boost/ptr_container/ptr_deque.hpp>
    ++#include <boost/ptr_container/ptr_deque.hpp>
    + 
    +-//
    ++//
    + // we need these later in the example
    + //
    +-#include <boost/assert.hpp>
    +-#include <string>
    +-#include <exception>
    ++#include <boost/assert.hpp>
    ++#include <string>
    ++#include <exception>
    + 
    + 
    +-//
    ++//
    + // Then we define a small polymorphic class
    + // hierarchy.
    + // 
    + 
    +-class animal : boost::noncopyable
    +-{
    +-    virtual std::string do_speak() const = 0;
    +-    std::string name_;
    ++class animal : boost::noncopyable
    ++{
    ++    virtual std::string do_speak() const = 0;
    ++    std::string name_;
    + 
    +-protected:
    +-    //
    ++protected:
    ++    //
    +     // Animals cannot be copied...
    +     //
    +-    animal( const animal& r ) : name_( r.name_ )           { }
    +-    void operator=( const animal& );
    ++    animal( const animal& r ) : name_( r.name_ )           { }
    ++    void operator=( const animal& );
    + 
    +-private:
    +-    //
    ++private:
    ++    //
    +     // ...but due to advances in genetics, we can clone them!
    +     //
    + 
    +-    virtual animal* do_clone() const = 0;
    ++    virtual animal* do_clone() const = 0;
    +         
    +-public:
    +-    animal( const std::string& name ) : name_(name)        { }
    +-    virtual ~animal() throw()                              { }
    ++public:
    ++    animal( const std::string& name ) : name_(name)        { }
    ++    virtual ~animal() throw()                              { }
    +     
    +-    std::string speak() const
    +-    {
    +-        return do_speak();
    +-    }
    +-
    +-    std::string name() const
    +-    {
    +-        return name_;
    +-    }
    +-
    +-    animal* clone() const
    +-    {
    +-        return do_clone();
    +-    }
    +-};
    +-
    +-//
    ++    std::string speak() const
    ++    {
    ++        return do_speak();
    ++    }
    ++
    ++    std::string name() const
    ++    {
    ++        return name_;
    ++    }
    ++
    ++    animal* clone() const
    ++    {
    ++        return do_clone();
    ++    }
    ++};
    ++
    ++//
    + // An animal is still not Clonable. We need this last hook.
    + //
    + // Notice that we pass the animal by const reference
    + // and return by pointer.
    + //
    + 
    +-animal* new_clone( const animal& a )
    +-{
    +-    return a.clone();
    +-}
    ++animal* new_clone( const animal& a )
    ++{
    ++    return a.clone();
    ++}
    + 
    +-//
    ++//
    + // We do not need to define 'delete_clone()' since
    + // since the default is to call the default 'operator delete()'.
    + //
    + 
    +-const std::string muuuh = "Muuuh!";
    +-const std::string oiink = "Oiiink";
    +-
    +-class cow : public animal
    +-{
    +-    virtual std::string do_speak() const
    +-    {
    +-        return muuuh;
    +-    }
    +-
    +-    virtual animal* do_clone() const
    +-    {
    +-        return new cow( *this );
    +-    }
    +-
    +-public:
    +-    cow( const std::string& name ) : animal(name)          { }
    +-};
    +-
    +-class pig : public animal
    +-{
    +-    virtual std::string do_speak() const
    +-    {
    +-        return oiink;
    +-    }
    +-
    +-    virtual animal* do_clone() const
    +-    {
    +-        return new pig( *this );
    +-    }
    ++const std::string muuuh = "Muuuh!";
    ++const std::string oiink = "Oiiink";
    ++
    ++class cow : public animal
    ++{
    ++    virtual std::string do_speak() const
    ++    {
    ++        return muuuh;
    ++    }
    ++
    ++    virtual animal* do_clone() const
    ++    {
    ++        return new cow( *this );
    ++    }
    ++
    ++public:
    ++    cow( const std::string& name ) : animal(name)          { }
    ++};
    ++
    ++class pig : public animal
    ++{
    ++    virtual std::string do_speak() const
    ++    {
    ++        return oiink;
    ++    }
    ++
    ++    virtual animal* do_clone() const
    ++    {
    ++        return new pig( *this );
    ++    }
    +     
    +-public:
    +-    pig( const std::string& name ) : animal(name)          { }
    +-};
    ++public:
    ++    pig( const std::string& name ) : animal(name)          { }
    ++};
    + 
    +-//
    ++//
    + // Then we, of course, need a place to put all
    + // those animals.
    + //
    + 
    +-class farm
    +-{
    +-    //
    ++class farm
    ++{
    ++    //
    +     // This is where the smart containers are handy
    +     //
    +-    typedef boost::ptr_deque<animal> barn_type;
    +-    barn_type                        barn;
    ++    typedef boost::ptr_deque<animal> barn_type;
    ++    barn_type                        barn;
    + 
    +-    //
    ++    //
    +     // A convenience typedef for the compiler-appropriate
    +     // smart pointer used to manage barns
    +     //    
    +-    typedef compatible-smart-ptr<barn_type> raii_ptr;
    ++    typedef compatible-smart-ptr<barn_type> raii_ptr;
    + 
    +-    //
    ++    //
    +     // An error type
    +     //
    +-    struct farm_trouble : public std::exception           { };
    ++    struct farm_trouble : public std::exception           { };
    + 
    +-public:
    +-    // 
    ++public:
    ++    // 
    +     // We would like to make it possible to
    +     // iterate over the animals in the farm
    +     //
    +-    typedef barn_type::iterator  animal_iterator;
    ++    typedef barn_type::iterator  animal_iterator;
    + 
    +-    //
    ++    //
    +     // We also need to count the farm's size...
    +     //
    +-    typedef barn_type::size_type size_type;
    ++    typedef barn_type::size_type size_type;
    +     
    +-    //
    ++    //
    +     // And we also want to transfer an animal
    +     // safely around. The easiest way to think
    +     // about '::auto_type' is to imagine a simplified
    +@@ -184,100 +184,100 @@
    +     //
    +     // but not more.
    +     //
    +-    typedef barn_type::auto_type  animal_transport;
    ++    typedef barn_type::auto_type  animal_transport;
    + 
    +-    // 
    ++    // 
    +     // Create an empty farm.
    +     //
    +-    farm()                                                 { }
    ++    farm()                                                 { }
    +     
    +-    //
    ++    //
    +     // We need a constructor that can make a new
    +     // farm by cloning a range of animals.
    +     //
    +-    farm( animal_iterator begin, animal_iterator end )
    +-     : 
    +-        //
    ++    farm( animal_iterator begin, animal_iterator end )
    ++     : 
    ++        //
    +         // Objects are always cloned before insertion
    +         // unless we explicitly add a pointer or 
    +         // use 'release()'. Therefore we actually
    +         // clone all animals in the range
    +         //
    +-        barn( begin, end )                               { }
    ++        barn( begin, end )                               { }
    +     
    +-    //
    ++    //
    +     // ... so we need some other function too
    +     //
    + 
    +-    animal_iterator begin()
    +-    {
    +-        return barn.begin();
    +-    }
    ++    animal_iterator begin()
    ++    {
    ++        return barn.begin();
    ++    }
    + 
    +-    animal_iterator end()
    +-    {
    +-        return barn.end();
    +-    }
    ++    animal_iterator end()
    ++    {
    ++        return barn.end();
    ++    }
    +     
    +-    //
    ++    //
    +     // Here it is quite ok to have an 'animal*' argument.
    +     // The smart container will handle all ownership
    +     // issues.
    +     //
    +-    void buy_animal( animal* a )
    +-    {
    +-        barn.push_back( a );
    +-    }
    ++    void buy_animal( animal* a )
    ++    {
    ++        barn.push_back( a );
    ++    }
    + 
    +-    //
    ++    //
    +     // The farm can also be in economical trouble and
    +     // therefore be in the need to sell animals.
    +     //
    +-    animal_transport sell_animal( animal_iterator to_sell )
    +-    {
    +-        if( to_sell == end() )
    +-            throw farm_trouble();
    ++    animal_transport sell_animal( animal_iterator to_sell )
    ++    {
    ++        if( to_sell == end() )
    ++            throw farm_trouble();
    + 
    +-        //
    ++        //
    +         // Here we remove the animal from the barn,
    +         // but the animal is not deleted yet...it's
    +         // up to the buyer to decide what
    +         // to do with it.
    +         //
    +-        return barn.release( to_sell );
    +-    }
    ++        return barn.release( to_sell );
    ++    }
    + 
    +-    //
    ++    //
    +     // How big a farm do we have?
    +     //
    +-    size_type size() const
    +-    {
    +-        return barn.size();
    +-    }
    ++    size_type size() const
    ++    {
    ++        return barn.size();
    ++    }
    + 
    +-    //
    ++    //
    +     // If things are bad, we might choose to sell all animals :-(
    +       //
    + 
    +-    raii_ptr sell_farm()
    +-    {
    +-        return barn.release();
    +-    }
    ++    raii_ptr sell_farm()
    ++    {
    ++        return barn.release();
    ++    }
    + 
    +-    //
    ++    //
    +     // However, if things are good, we might buy somebody
    +     // else's farm :-)
    +     //
    + 
    +-    void buy_farm( raii_ptr other )
    +-    {
    +-        //
    ++    void buy_farm( raii_ptr other )
    ++    {
    ++        //
    +         // This line inserts all the animals from 'other'
    +         // and is guaranteed either to succeed or to have no
    +         // effect
    +         //
    +-        barn.transfer( barn.end(), // insert new animals at the end
    +-                         *other );     // we want to transfer all animals,
    ++        barn.transfer( barn.end(), // insert new animals at the end
    ++                         *other );     // we want to transfer all animals,
    +                                        // so we use the whole container as argument
    +         //
    +         // You might think you would have to do
    +@@ -286,86 +286,86 @@
    +         //
    +         // but '*other' is empty and can go out of scope as it wants
    +         //
    +-        BOOST_ASSERT( other->empty() );
    +-    }
    ++        BOOST_ASSERT( other->empty() );
    ++    }
    +     
    +-}; // class 'farm'.
    ++}; // class 'farm'.
    + 
    +-int main()
    +-{
    +-    //
    ++int main()
    ++{
    ++    //
    +     // First we make a farm
    +     //
    +-    farm animal_farm;
    +-    BOOST_ASSERT( animal_farm.size() == 0u );
    ++    farm animal_farm;
    ++    BOOST_ASSERT( animal_farm.size() == 0u );
    +     
    +-    animal_farm.buy_animal( new pig("Betty") );
    +-    animal_farm.buy_animal( new pig("Benny") );
    +-    animal_farm.buy_animal( new pig("Jeltzin") );
    +-    animal_farm.buy_animal( new cow("Hanz") );
    +-    animal_farm.buy_animal( new cow("Mary") );
    +-    animal_farm.buy_animal( new cow("Frederik") );
    +-    BOOST_ASSERT( animal_farm.size() == 6u );
    +-
    +-    //
    ++    animal_farm.buy_animal( new pig("Betty") );
    ++    animal_farm.buy_animal( new pig("Benny") );
    ++    animal_farm.buy_animal( new pig("Jeltzin") );
    ++    animal_farm.buy_animal( new cow("Hanz") );
    ++    animal_farm.buy_animal( new cow("Mary") );
    ++    animal_farm.buy_animal( new cow("Frederik") );
    ++    BOOST_ASSERT( animal_farm.size() == 6u );
    ++
    ++    //
    +     // Then we make another farm...it will actually contain
    +     // a clone of the other farm.
    +     //
    +-    farm new_farm( animal_farm.begin(), animal_farm.end() );
    +-    BOOST_ASSERT( new_farm.size() == 6u );
    ++    farm new_farm( animal_farm.begin(), animal_farm.end() );
    ++    BOOST_ASSERT( new_farm.size() == 6u );
    + 
    +-    //
    ++    //
    +     // Is it really clones in the new farm?
    +     //
    +-    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    ++    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    +     
    +-    //
    ++    //
    +     // Then we search for an animal, Mary (the Crown Princess of Denmark),
    +     // because we would like to buy her ...
    +     //
    +-    typedef farm::animal_iterator iterator;
    +-    iterator to_sell;
    +-    for( iterator i   = animal_farm.begin(),
    +-                  end = animal_farm.end();
    +-         i != end; ++i )
    +-    {
    +-        if( i->name() == "Mary" )
    +-        {
    +-            to_sell = i;
    +-            break;
    +-        }
    +-    }
    +-
    +-    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    +-
    +-
    +-    if( mary->speak() == muuuh )
    +-        //
    ++    typedef farm::animal_iterator iterator;
    ++    iterator to_sell;
    ++    for( iterator i   = animal_farm.begin(),
    ++                  end = animal_farm.end();
    ++         i != end; ++i )
    ++    {
    ++        if( i->name() == "Mary" )
    ++        {
    ++            to_sell = i;
    ++            break;
    ++        }
    ++    }
    ++
    ++    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    ++
    ++
    ++    if( mary->speak() == muuuh )
    ++        //
    +         // Great, Mary is a cow, and she may live longer
    +         //
    +-        new_farm.buy_animal( mary.release() );
    +-    else
    +-        //
    ++        new_farm.buy_animal( mary.release() );
    ++    else
    ++        //
    +         // Then the animal would be destroyed (!)
    +         // when we go out of scope.
    +         //
    +-        ;
    ++        ;
    + 
    +-    //
    ++    //
    +     // Now we can observe some changes to the two farms...
    +     //
    +-    BOOST_ASSERT( animal_farm.size() == 5u );
    +-    BOOST_ASSERT( new_farm.size()    == 7u );
    ++    BOOST_ASSERT( animal_farm.size() == 5u );
    ++    BOOST_ASSERT( new_farm.size()    == 7u );
    + 
    +-    //
    ++    //
    +     // The new farm has however underestimated how much
    +     // it cost to feed Mary and its owner is forced to sell the farm...
    +     //
    +-    animal_farm.buy_farm( new_farm.sell_farm() );
    ++    animal_farm.buy_farm( new_farm.sell_farm() );
    + 
    +-    BOOST_ASSERT( new_farm.size()    == 0u );
    +-    BOOST_ASSERT( animal_farm.size() == 12u );     
    +-}
    ++    BOOST_ASSERT( new_farm.size()    == 0u );
    ++    BOOST_ASSERT( animal_farm.size() == 12u );     
    ++}
    + 
    + + diff --git a/boost.spec b/boost.spec index 18744b5..243da2f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -170,6 +170,9 @@ Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch # https://github.com/boostorg/interval/issues/29 Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +# https://github.com/boostorg/ptr_container/pull/27 +Patch105: boost-1.76.0-ptr_cont-xml.patch + %bcond_with tests %bcond_with docs_generated @@ -696,6 +699,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch102 -p1 %patch103 -p2 %patch104 -p2 +%patch105 -p1 %build %set_build_flags @@ -1297,6 +1301,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 +- Add patch to fix XML validation errors in ptr_container docs + * Wed Feb 2 2022 Thomas Rodgers - 1.76.0-9 - Add patch to fix narrowing conversions on ppc64le https://github.com/boostorg/interval/issues/29 From 3bd0a83d5256fdc1c30f8e4ea7a0229fd145bf38 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Tue, 26 Apr 2022 20:53:21 -0700 Subject: [PATCH 143/203] Add BuildRequires: libstd-devel to fix (#2042336) --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 243da2f..9fe4211 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -123,6 +123,7 @@ BuildRequires: libicu-devel BuildRequires: libquadmath-devel %endif BuildRequires: bison +BuildRequires: libzstd-devel # https://bugzilla.redhat.com/show_bug.cgi?id=828856 # https://bugzilla.redhat.com/show_bug.cgi?id=828857 @@ -1301,6 +1302,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 +- Add BuildRequires: libstd-devel to fix (#2042336) + * Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 - Add patch to fix XML validation errors in ptr_container docs From 83163cb5f79721a3e37d3e36f7962fdede51afc7 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Wed, 27 Apr 2022 07:39:23 -0700 Subject: [PATCH 144/203] Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Miro Hrončok Fix enum_type_object type on Python 3.11 See https://github.com/boostorg/python/pull/385#event-6498973175 Fix previous changelog copy-pasta --- boost.spec | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 9fe4211..35434f0 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 11%{?dist} +Release: 12%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -174,6 +174,9 @@ Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/ptr_container/pull/27 Patch105: boost-1.76.0-ptr_cont-xml.patch +# https://github.com/boostorg/python/pull/385 +Patch106: boost-1.76.0-enum_type_object-type-python-3.11.patch + %bcond_with tests %bcond_with docs_generated @@ -701,6 +704,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch103 -p2 %patch104 -p2 %patch105 -p1 +%patch106 -p1 %build %set_build_flags @@ -1302,7 +1306,13 @@ fi %{_mandir}/man1/b2.1* %changelog -* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 +- Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) + Miro Hrončok - Fix enum_type_object type on Python 3.11 + See https://github.com/boostorg/python/pull/385#event-6498973175 +- Fix previous changelog copy-pasta + +* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 - Add BuildRequires: libstd-devel to fix (#2042336) * Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 From efa25cfd8109c514840be613cbd7b9b4c602a01d Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Wed, 27 Apr 2022 07:44:11 -0700 Subject: [PATCH 145/203] And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch --- ....0-enum_type_object-type-python-3.11.patch | 35 +++++++++++++++++++ boost.spec | 5 ++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 boost-1.76.0-enum_type_object-type-python-3.11.patch diff --git a/boost-1.76.0-enum_type_object-type-python-3.11.patch b/boost-1.76.0-enum_type_object-type-python-3.11.patch new file mode 100644 index 0000000..5b77498 --- /dev/null +++ b/boost-1.76.0-enum_type_object-type-python-3.11.patch @@ -0,0 +1,35 @@ +From ae5da2a7e8f1111757d8a474095486a5b22aa12d Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Mon, 25 Apr 2022 10:51:46 +0200 +Subject: [PATCH] Fix enum_type_object type on Python 3.11 + +The enum_type_object type inherits from PyLong_Type which is not tracked +by the GC. Instances doesn't have to be tracked by the GC: remove the +Py_TPFLAGS_HAVE_GC flag. + +The Python C API documentation says: + + "To create a container type, the tp_flags field of the type object + must include the Py_TPFLAGS_HAVE_GC and provide an implementation of + the tp_traverse handler." + +https://docs.python.org/dev/c-api/gcsupport.html + +The new exception was introduced in Python 3.11 by: +https://github.com/python/cpython/issues/88429 +--- + libs/python/src/object/enum.cpp | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libs/python/src/object/enum.cpp b/libs/python/src/object/enum.cpp +index 293e705899..5753b32e07 100644 +--- a/libs/python/src/object/enum.cpp ++++ b/libs/python/src/object/enum.cpp +@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = { + #if PY_VERSION_HEX < 0x03000000 + | Py_TPFLAGS_CHECKTYPES + #endif +- | Py_TPFLAGS_HAVE_GC + | Py_TPFLAGS_BASETYPE, /* tp_flags */ + 0, /* tp_doc */ + 0, /* tp_traverse */ diff --git a/boost.spec b/boost.spec index 35434f0..3ba31d7 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.76.0 -Release: 12%{?dist} +Release: 13%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1306,6 +1306,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Apr 27 2022 Thomas Rodgers - 1.76.0-12 +- And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch + * Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 - Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) Miro Hrončok - Fix enum_type_object type on Python 3.11 From 9c645e2838c5e88e8b4130bd98f81a2fe5fbd40a Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 27 Apr 2022 18:13:43 +0100 Subject: [PATCH 146/203] Tidy up %changelog --- boost.spec | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/boost.spec b/boost.spec index 3ba31d7..72ab47d 100644 --- a/boost.spec +++ b/boost.spec @@ -1306,17 +1306,14 @@ fi %{_mandir}/man1/b2.1* %changelog -* Wed Apr 27 2022 Thomas Rodgers - 1.76.0-12 -- And this time with the boost-1.76.0-enum_type_object-type-python-3.11.patch +* Wed Apr 27 2022 Thomas Rodgers - 1.76.0-13 +- Add missing boost-1.76.0-enum_type_object-type-python-3.11.patch file * Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 - Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) - Miro Hrončok - Fix enum_type_object type on Python 3.11 - See https://github.com/boostorg/python/pull/385#event-6498973175 -- Fix previous changelog copy-pasta * Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 -- Add BuildRequires: libstd-devel to fix (#2042336) +- Add BuildRequires: libzstd-devel to fix (#2042336) * Thu Mar 31 2022 Jonathan Wakely - 1.76.0-10 - Add patch to fix XML validation errors in ptr_container docs From 582765308348e8ddbca9516f9fe24a4ade1c8ce1 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Fri, 29 Apr 2022 13:37:45 -0700 Subject: [PATCH 147/203] Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 Drop patches: deleted: boost-1.75.0-build-optflags.patch deleted: boost-1.75.0-no-rpath.patch deleted: boost-1.76.0-b2-build-flags.patch deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch deleted: boost-1.76.0-fix-duplicate-typedef-in-mp.patch Fix silent dropping of some libraries See https://github.com/bfgroup/b2/pull/113 --- boost-1.76.0-b2-build-flags.patch | 25 ------- ...t-1.76.0-fix-duplicate-typedef-in-mp.patch | 27 ------- ...0-fix-include-inside-boost-namespace.patch | 33 --------- boost-1.78.0-b2-build-flags.patch | 25 +++++++ ...patch => boost-1.78.0-build-optflags.patch | 28 +++++--- boost-1.78.0-fix-b2-staging.patch | 72 +++++++++++++++++++ ...rpath.patch => boost-1.78.0-no-rpath.patch | 26 ++++--- boost.spec | 55 +++++++------- sources | 2 +- 9 files changed, 162 insertions(+), 131 deletions(-) delete mode 100644 boost-1.76.0-b2-build-flags.patch delete mode 100644 boost-1.76.0-fix-duplicate-typedef-in-mp.patch delete mode 100644 boost-1.76.0-fix-include-inside-boost-namespace.patch create mode 100644 boost-1.78.0-b2-build-flags.patch rename boost-1.75.0-build-optflags.patch => boost-1.78.0-build-optflags.patch (65%) create mode 100644 boost-1.78.0-fix-b2-staging.patch rename boost-1.75.0-no-rpath.patch => boost-1.78.0-no-rpath.patch (65%) diff --git a/boost-1.76.0-b2-build-flags.patch b/boost-1.76.0-b2-build-flags.patch deleted file mode 100644 index 3422b5d..0000000 --- a/boost-1.76.0-b2-build-flags.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5dde5a5a3c12dd8f52cb61ba220ec221ecfa98f0 Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Thu, 29 Jul 2021 10:15:37 -0700 -Subject: [PATCH] Use options from RPM for release builds with GCC - ---- - tools/build/src/engine/build.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh -index 58f41cb4a..f85040f99 100755 ---- a/tools/build/src/engine/build.sh -+++ b/tools/build/src/engine/build.sh -@@ -325,7 +325,7 @@ case "${B2_TOOLSET}" in - B2_CXX="${B2_CXX} -pthread" - ;; - esac -- B2_CXXFLAGS_RELEASE="-O2 -s" -+ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" - B2_CXXFLAGS_DEBUG="-O0 -g" - ;; - --- -2.31.1 - diff --git a/boost-1.76.0-fix-duplicate-typedef-in-mp.patch b/boost-1.76.0-fix-duplicate-typedef-in-mp.patch deleted file mode 100644 index a6c3c7d..0000000 --- a/boost-1.76.0-fix-duplicate-typedef-in-mp.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 62fcbde69aae70af24a51cb6582a2a95f65441c2 Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Wed, 4 Aug 2021 13:22:35 -0700 -Subject: [PATCH] Fix duplicate typedef in mp.hpp [#671] - -https://github.com/boostorg/math/pull/671 ---- - boost/math/tools/mp.hpp | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp -index dc8440988..3100a0bb6 100644 ---- a/boost/math/tools/mp.hpp -+++ b/boost/math/tools/mp.hpp -@@ -426,9 +426,6 @@ struct make_integer_sequence_impl - template - using make_integer_sequence = typename detail::make_integer_sequence_impl::type; - --template --using index_sequence = integer_sequence; -- - template - using make_index_sequence = make_integer_sequence; - --- -2.31.1 - diff --git a/boost-1.76.0-fix-include-inside-boost-namespace.patch b/boost-1.76.0-fix-include-inside-boost-namespace.patch deleted file mode 100644 index 0fd8f05..0000000 --- a/boost-1.76.0-fix-include-inside-boost-namespace.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f6818a161d3f835d246aceea0804243c887ac10b Mon Sep 17 00:00:00 2001 -From: Thomas Rodgers -Date: Wed, 4 Aug 2021 13:09:57 -0700 -Subject: [PATCH] Fix include inside boost namespace [#670] - -https://github.com/boostorg/math/pull/670/commits/1ec5c98d80de97f9e962c5627e1a0e6096099894 ---- - boost/math/tools/mp.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/boost/math/tools/mp.hpp b/boost/math/tools/mp.hpp -index 35565646f..dc8440988 100644 ---- a/boost/math/tools/mp.hpp -+++ b/boost/math/tools/mp.hpp -@@ -13,6 +13,7 @@ - - #include - #include -+#include - - namespace boost { namespace math { namespace tools { namespace meta_programming { - -@@ -338,7 +339,6 @@ using mp_remove_if_q = mp_remove_if; - // Index sequence - // Use C++14 index sequence if available - #if defined(__cpp_lib_integer_sequence) && (__cpp_lib_integer_sequence >= 201304) --#include - template - using index_sequence = std::index_sequence; - --- -2.31.1 - diff --git a/boost-1.78.0-b2-build-flags.patch b/boost-1.78.0-b2-build-flags.patch new file mode 100644 index 0000000..512f109 --- /dev/null +++ b/boost-1.78.0-b2-build-flags.patch @@ -0,0 +1,25 @@ +From 1ded9b9c219542442b3c10af815e5413a2a89c75 Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Tue, 1 Mar 2022 10:03:34 -0800 +Subject: [PATCH] Adjust b2 build flags for Fedora Packaging + +--- + src/engine/build.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/build/src/engine/build.sh b/tools/build/src/engine/build.sh +index f1ad08cb..ab58deba 100755 +--- a/tools/build/src/engine/build.sh ++++ b/tools/build/src/engine/build.sh +@@ -323,7 +323,7 @@ case "${B2_TOOLSET}" in + + gcc|gcc-*) + CXX_VERSION_OPT=${CXX_VERSION_OPT:---version} +- B2_CXXFLAGS_RELEASE="-O2 -s" ++ B2_CXXFLAGS_RELEASE="${RPM_OPT_FLAGS} ${RPM_LD_FLAGS}" + B2_CXXFLAGS_DEBUG="-O0 -g" + ;; + +-- +2.35.1 + diff --git a/boost-1.75.0-build-optflags.patch b/boost-1.78.0-build-optflags.patch similarity index 65% rename from boost-1.75.0-build-optflags.patch rename to boost-1.78.0-build-optflags.patch index d9c6dd4..47578a6 100644 --- a/boost-1.75.0-build-optflags.patch +++ b/boost-1.78.0-build-optflags.patch @@ -1,26 +1,34 @@ +From 739edb2889cb63c281a3597e712988a40bc82829 Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Mon, 28 Feb 2022 20:55:14 -0800 +Subject: [PATCH 1/3] Adjust options for Fedora package build + +--- + src/tools/gcc.jam | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index ff3209f7b..1d8e7cbfe 100644 +index 47a11322..543cfd84 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -577,7 +577,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -510,7 +510,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" } actions compile.c bind PCH_FILE -@@ -587,7 +587,7 @@ actions compile.c bind PCH_FILE - +@@ -521,6 +521,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)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" + "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" } actions compile.c.preprocess bind PCH_FILE -@@ -704,20 +704,20 @@ actions compile.c.pch +@@ -623,20 +624,20 @@ actions compile.c.pch ### # Declare flags and action for compilation. @@ -56,5 +64,5 @@ index ff3209f7b..1d8e7cbfe 100644 toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.26.2 +2.35.1 diff --git a/boost-1.78.0-fix-b2-staging.patch b/boost-1.78.0-fix-b2-staging.patch new file mode 100644 index 0000000..fa0e212 --- /dev/null +++ b/boost-1.78.0-fix-b2-staging.patch @@ -0,0 +1,72 @@ +From 78fd284a42caabe8815cb0870b46e5567872e75b Mon Sep 17 00:00:00 2001 +From: Dmitry +Date: Sat, 11 Dec 2021 16:58:23 +0300 +Subject: [PATCH] Don't skip install targets if there's no in ureqs + (#113) + +--- + src/tools/stage.jam | 4 ++++ + test/install_build_no.py | 26 ++++++++++++++++++++++++++ + test/test_all.py | 1 + + 3 files changed, 31 insertions(+) + create mode 100755 test/install_build_no.py + +diff --git a/tools/build/src/tools/stage.jam b/tools/build/src/tools/stage.jam +index c5f02e3ba4..325129dc81 100644 +--- a/tools/build/src/tools/stage.jam ++++ b/tools/build/src/tools/stage.jam +@@ -478,6 +478,10 @@ class install-target-class : basic-target + return [ sequence.unique $(result2) ] ; + } + ++ rule skip-from-usage-requirements ( ) ++ { ++ } ++ + # Returns true iff 'type' is subtype of some element of 'types-to-include'. + # + local rule include-type ( type : types-to-include * ) +diff --git a/tools/build/test/install_build_no.py b/tools/build/test/install_build_no.py +new file mode 100755 +index 0000000000..0ccf3c5cc6 +--- /dev/null ++++ b/tools/build/test/install_build_no.py +@@ -0,0 +1,26 @@ ++#!/usr/bin/python ++ ++# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com) ++# Distributed under the Boost Software License, Version 1.0. ++# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) ++ ++# Check that no in usage-requirements of dependencies does not affect ++# install rule, i.e. a skipped installed target does not affect insallation of ++# other targets. ++ ++import BoostBuild ++ ++t = BoostBuild.Tester() ++ ++t.write("a.cpp", "int main() {}\n") ++ ++t.write("jamroot.jam", """ ++make x : : maker : no ; ++exe a : a.cpp ; ++install install : x a ; ++""") ++ ++t.run_build_system() ++t.expect_addition("install/a.exe") ++ ++t.cleanup() +diff --git a/tools/build/test/test_all.py b/tools/build/test/test_all.py +index b7ef5ad701..9ed729d017 100644 +--- a/tools/build/test/test_all.py ++++ b/tools/build/test/test_all.py +@@ -250,6 +250,7 @@ def reorder_tests(tests, first_test): + "inherit_toolset", + "inherited_dependency", + "inline", ++ "install_build_no", + "libjpeg", + "liblzma", + "libpng", diff --git a/boost-1.75.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch similarity index 65% rename from boost-1.75.0-no-rpath.patch rename to boost-1.78.0-no-rpath.patch index a025241..f5c6c47 100644 --- a/boost-1.75.0-no-rpath.patch +++ b/boost-1.78.0-no-rpath.patch @@ -1,20 +1,23 @@ +From 25e4220a4564a3f8ec22607fcdbee90c81f040d6 Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Mon, 28 Feb 2022 21:24:07 -0800 +Subject: [PATCH 2/3] Adjust options to remove RPATH for Fedora package builds + +--- + src/tools/gcc.jam | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 02dc154cf..c076f70f4 100644 +index 543cfd84..fd213ccb 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -1132,17 +1132,17 @@ actions link.mingw bind LIBRARIES - - actions link.dll.mingw bind LIBRARIES - { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[0])" -o "$(<[-1])" -shared @"@($(<[-1]:T).rsp:E=$(START-GROUP) "$(>:T)" "$(LIBRARIES:T)" $(FINDLIBS-ST-PFX:T) -l$(FINDLIBS-ST:T) $(FINDLIBS-SA-PFX:T) -l$(FINDLIBS-SA:T) $(END-GROUP))" $(OPTIONS) $(USER_OPTIONS) - } +@@ -1045,12 +1045,11 @@ actions link.dll.mingw bind LIBRARIES actions link bind LIBRARIES { - "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) - } +-} ++ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)} actions link.dll bind LIBRARIES { @@ -23,3 +26,6 @@ index 02dc154cf..c076f70f4 100644 } ### +-- +2.35.1 + diff --git a/boost.spec b/boost.spec index 72ab47d..3e60d65 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.76.0 -Release: 13%{?dist} +Version: 1.78.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,6 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org +# https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -134,10 +135,10 @@ Patch15: boost-1.58.0-pool.patch Patch51: boost-1.58.0-pool-test_linking.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch96: boost-1.75.0-build-optflags.patch +Patch105: boost-1.78.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch97: boost-1.75.0-no-rpath.patch +Patch106: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch @@ -146,18 +147,8 @@ Patch88: boost-1.73.0-cmakedir.patch # https://github.com/boostorg/locale/issues/52 Patch94: boost-1.73-locale-empty-vector.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1958382 -# https://github.com/boostorg/graph/pull/218 -Patch98: boost-1.75.0-remove-deprecated-boost-iterator.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch99: boost-1.76.0-b2-build-flags.patch - -# https://github.com/boostorg/math/pull/670 -Patch100: boost-1.76.0-fix-include-inside-boost-namespace.patch - -# https://github.com/boostorg/math/pull/671 -Patch101: boost-1.76.0-fix-duplicate-typedef-in-mp.patch +Patch107: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch @@ -172,10 +163,14 @@ Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/ptr_container/pull/27 -Patch105: boost-1.76.0-ptr_cont-xml.patch +Patch108: boost-1.76.0-ptr_cont-xml.patch + +# Fixes missing libboost_fiber.so +# https://github.com/boostorg/boost/issues/632 +Patch109: boost-1.78.0-fix-b2-staging.patch # https://github.com/boostorg/python/pull/385 -Patch106: boost-1.76.0-enum_type_object-type-python-3.11.patch +Patch110: boost-1.76.0-enum_type_object-type-python-3.11.patch %bcond_with tests %bcond_with docs_generated @@ -692,19 +687,17 @@ find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x %patch15 -p0 %patch51 -p1 -%patch96 -p1 -%patch97 -p1 -%patch99 -p1 +%patch105 -p1 +%patch106 -p1 +%patch107 -p1 %patch88 -p1 %patch94 -p1 -%patch98 -p1 -%patch100 -p1 -%patch101 -p1 %patch102 -p1 %patch103 -p2 %patch104 -p2 -%patch105 -p1 -%patch106 -p1 +%patch108 -p1 +%patch109 -p1 +%patch110 -p1 %build %set_build_flags @@ -1306,6 +1299,18 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Apr 29 2022 Thomas Rodgers - 1.78.0-0 +- Rebase to 1.78.0 + See https://fedoraproject.org/wiki/Changes/F37Boost178 +- Drop patches: + deleted: boost-1.75.0-build-optflags.patch + deleted: boost-1.75.0-no-rpath.patch + deleted: boost-1.76.0-b2-build-flags.patch + deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch + deleted: boost-1.76.0-fix-duplicate-typedef-in-mp.patch +- Fix silent dropping of some libraries + See https://github.com/bfgroup/b2/pull/113 + * Wed Apr 27 2022 Thomas Rodgers - 1.76.0-13 - Add missing boost-1.76.0-enum_type_object-type-python-3.11.patch file diff --git a/sources b/sources index ced7dc7..84ff6c3 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_76_0.tar.bz2) = 5d68bed98c57e03b4cb2420d9b856e5f0669561a6142a4b0c9c8a58dc5b6b28e16ccbb16ac559c3a3198c45769a246bf996b96cb7b6a019dd15f05c2270e9429 +SHA512 (boost_1_78_0.tar.bz2) = 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf From 36115b3780b25c24da042bfb368a87e96d7bc26d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 13 Jun 2022 18:55:42 +0200 Subject: [PATCH 148/203] Rebuilt for Python 3.11 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 3e60d65..fc3837a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 0%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1299,6 +1299,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Jun 13 2022 Python Maint - 1.78.0-1 +- Rebuilt for Python 3.11 + * Fri Apr 29 2022 Thomas Rodgers - 1.78.0-0 - Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 From 19a004c283d3d087e7cafc37d4ed36e381f389de Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Fri, 10 Jun 2022 16:10:42 +0200 Subject: [PATCH 149/203] Re-add CMake file Fixes rhbz#1898979 --- boost.spec | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/boost.spec b/boost.spec index fc3837a..8d5a639 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -842,9 +842,6 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* -# Remove cmake files (some of these are duplicates of the generic bits anyway). -rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake - %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -871,9 +868,6 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* -# Remove cmake files (some of these are duplicates of the generic bits anyway). -rm -r ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake - %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH %endif @@ -899,9 +893,6 @@ echo ============================= install serial ================== rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ -# Remove cmake files until we know somebody wants them. -rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake - echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install @@ -1164,6 +1155,7 @@ fi %files devel %license LICENSE_1_0.txt %{_includedir}/%{name} +%{_libdir}/cmake %{_libdir}/libboost_atomic.so %{_libdir}/libboost_chrono.so %{_libdir}/libboost_container.so @@ -1231,6 +1223,7 @@ fi %files openmpi-devel %license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/cmake %{_libdir}/openmpi/lib/libboost_mpi.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so @@ -1262,6 +1255,7 @@ fi %files mpich-devel %license LICENSE_1_0.txt +%{_libdir}/mpich/lib/cmake %{_libdir}/mpich/lib/libboost_mpi.so %{_libdir}/mpich/lib/libboost_graph_parallel.so @@ -1299,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 14 2022 Laurent Rineau - 1.78.0-2 +- Re-add the CMake config file provided by Boost + * Mon Jun 13 2022 Python Maint - 1.78.0-1 - Rebuilt for Python 3.11 From 12bd4872acfcafe9328d19882652f7a8ebd1bdd7 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 14 Jun 2022 17:28:28 +0200 Subject: [PATCH 150/203] Rebuilt for Python 3.11 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 8d5a639..fc4e83a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 14 2022 Python Maint - 1.78.0-3 +- Rebuilt for Python 3.11 + * Tue Jun 14 2022 Laurent Rineau - 1.78.0-2 - Re-add the CMake config file provided by Boost From b96dcf38c8f469b41edcc3e6f72ecb059cc171e3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 21 Jun 2022 21:18:29 +0100 Subject: [PATCH 151/203] Remove old Obsoletes tags --- boost.spec | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/boost.spec b/boost.spec index fc4e83a..602c9c4 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 3%{?dist} +Release: 4%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -329,8 +329,6 @@ portion of Boost.TR1. %package nowide Summary: Standard library functions with UTF-8 API on Windows -# Added for F33, remove for F35: -Obsoletes: boost-nowide <= 0.20190814 %description nowide @@ -476,15 +474,7 @@ Requires: libquadmath-devel%{?_isa} %if %{with python3} # Require boost-numpy3 here, because main boost metapackage only Recommends: it Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} -# Added for F33, remove for F35: -Obsoletes: %{name}-python3-devel < 1.69.0-20 -Provides: %{name}-python3-devel = %{version}-%{release} -Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release} %endif -# Added for F33, remove for F35: -Obsoletes: boost-nowide-devel <= 0.20190814 -Provides: boost-nowide-devel = %{version} -Provides: boost-nowide-devel%{?_isa} = %{version} %description devel Headers and shared object symbolic links for the Boost C++ libraries. @@ -671,10 +661,6 @@ Tools for working with Boost documentation in BoostBook or QuickBook format. %package b2 Summary: A low-level build tool -# Added for F33, remove for F35: -Obsoletes: boost-jam < 1.73.0 -Provides: boost-jam = %{version} -Provides: boost-jam%{?_isa} = %{version} %description b2 B2 (formerly Boost.Jam) is the low-level build engine tool for Boost.Build. @@ -1293,6 +1279,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 21 2022 Jonathan Wakely - 1.78.0-4 +- Remove old Obsoletes tags + * Tue Jun 14 2022 Python Maint - 1.78.0-3 - Rebuilt for Python 3.11 From 2888982c2808dbde3756c1044c37bf1059656051 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Thu, 23 Jun 2022 11:30:01 +0100 Subject: [PATCH 152/203] Fix the CMake config file for openmpi and mpich --- boost.spec | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 602c9c4..afc01ed 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 4%{?dist} +Release: 5%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -824,9 +824,14 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ ${RPM_BUILD_ROOT}%{python3_sitearch}/openmpi/boost/ %endif +# Using 'b2 stage' does not fix the paths in these files, so do it manually +sed -i -e 's|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/.*"|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../../../include"|' ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/*/*-config.cmake + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_{python,{w,}serialization}* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_numpy* %{_openmpi_unload} export PATH=/bin${PATH:+:}$PATH @@ -850,9 +855,14 @@ mv ${RPM_BUILD_ROOT}${MPI_HOME}/lib/boost-python%{python3_version}/mpi.so \ ${RPM_BUILD_ROOT}%{python3_sitearch}/mpich/boost/ %endif +# Using 'b2 stage' does not fix the paths in these files, so do it manually +sed -i -e 's|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/.*"|get_filename_component(_BOOST_INCLUDEDIR "${_BOOST_CMAKEDIR}/../../../../include"|' ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/*/*-config.cmake + # Remove generic parts of boost that were built for dependencies. rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_{python,{w,}serialization}* rm -f ${RPM_BUILD_ROOT}${MPI_HOME}/lib/libboost_numpy* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_{python,{w,}serialization}* +rm -rf ${RPM_BUILD_ROOT}${MPI_HOME}/lib/cmake/boost_numpy* %{_mpich_unload} export PATH=/bin${PATH:+:}$PATH @@ -1279,6 +1289,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jun 22 2022 Laurent Rineau - 1.78.0-5 +- Fix the CMake config file for openmpi and mpich + * Tue Jun 21 2022 Jonathan Wakely - 1.78.0-4 - Remove old Obsoletes tags From 6585f3fb6e5e46a9d295d494726e3a6e777a00aa Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Fri, 24 Jun 2022 10:41:39 +0100 Subject: [PATCH 153/203] Restore Provides for boost-python3-devel (#2100748) This doesn't restore the Provides: boost-nowide-devel as that is only used in one package, which is already changing. The Provides: boost-jam isn't needed either. --- boost.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index afc01ed..da8514a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 5%{?dist} +Release: 6%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -474,6 +474,9 @@ Requires: libquadmath-devel%{?_isa} %if %{with python3} # Require boost-numpy3 here, because main boost metapackage only Recommends: it Requires: %{name}-numpy3%{?_isa} = %{version}-%{release} +# Old Provides: for compatibility with packages that still require it. +Provides: %{name}-python3-devel = %{version}-%{release} +Provides: %{name}-python3-devel%{?_isa} = %{version}-%{release} %endif %description devel @@ -1289,6 +1292,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jun 24 2022 Jonathan Wakely - 1.78.0-6 +- Restore Provides for boost-python3-devel (#2100748) + * Wed Jun 22 2022 Laurent Rineau - 1.78.0-5 - Fix the CMake config file for openmpi and mpich From af99b5250178d9b922db1774ae69c155a738c46c Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 14 Jul 2022 13:35:31 +0100 Subject: [PATCH 154/203] Add boost-json to umbrella package --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index da8514a..79b56ad 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 6%{?dist} +Release: 7%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -86,6 +86,7 @@ Requires: %{name}-fiber%{?_isa} = %{version}-%{release} Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} Requires: %{name}-graph%{?_isa} = %{version}-%{release} Requires: %{name}-iostreams%{?_isa} = %{version}-%{release} +Requires: %{name}-json%{?_isa} = %{version}-%{release} Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} @@ -1292,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jul 14 2022 Jonathan Wakely - 1.78.0-7 +- Add boost-json to umbrella package + * Fri Jun 24 2022 Jonathan Wakely - 1.78.0-6 - Restore Provides for boost-python3-devel (#2100748) From bea3cff9aebdc4f45da1f8f883df092d60b9eeba Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 20 Jul 2022 22:11:12 +0000 Subject: [PATCH 155/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 79b56ad..5d989a1 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 7%{?dist} +Release: 8%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 20 2022 Fedora Release Engineering - 1.78.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + * Thu Jul 14 2022 Jonathan Wakely - 1.78.0-7 - Add boost-json to umbrella package From e938c8d9b3d81414f313826113169222ed6159ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Mon, 1 Aug 2022 15:02:21 +0200 Subject: [PATCH 156/203] Rebuilt for ICU 71.1 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 5d989a1..d545fe8 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 8%{?dist} +Release: 9%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Aug 01 2022 Frantisek Zatloukal - 1.78.0-9 +- Rebuilt for ICU 71.1 + * Wed Jul 20 2022 Fedora Release Engineering - 1.78.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 1c4335a6e00e2020baaa1af4d4c032fcc31e87d7 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 14 Dec 2022 17:47:54 +0000 Subject: [PATCH 157/203] Use xargs --no-run-if-empty to avoid error Recent Boost releases seem to have no executable headers, so the find command returns no results. --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index d545fe8..e4287d8 100644 --- a/boost.spec +++ b/boost.spec @@ -673,7 +673,7 @@ a number of significant features and is now developed independently. %prep %setup -q -n %{toplev_dirname} -find ./boost -name '*.hpp' -perm /111 | xargs chmod a-x +find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x %patch15 -p0 %patch51 -p1 From 8576ab076fdb98d3208f9ad17b28778b0443b538 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sat, 31 Dec 2022 02:19:50 +0000 Subject: [PATCH 158/203] Rebuild for ICU 72 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index e4287d8..73cf5e2 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 9%{?dist} +Release: 10%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Dec 31 2022 Pete Walter - 1.78.0-10 +- Rebuild for ICU 72 + * Mon Aug 01 2022 Frantisek Zatloukal - 1.78.0-9 - Rebuilt for ICU 71.1 From 571ebc8df11139da25447f39af305b647c3fec8b Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 18 Jan 2023 23:05:04 +0000 Subject: [PATCH 159/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 73cf5e2..151e133 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.78.0 -Release: 10%{?dist} +Release: 11%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1293,6 +1293,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Sat Dec 31 2022 Pete Walter - 1.78.0-10 - Rebuild for ICU 72 From 3420df724444633aee5b0cc5dd9f02add05066b9 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Thu, 12 Jan 2023 18:48:17 -0800 Subject: [PATCH 160/203] Rebase to 1.81.0 See https://fedoraproject.org/wiki/Changes/F38Boost181 Drop patches: deleted: boost-1.58.0-pool.patch deleted: boost-1.58.0-pool-test_linking.patch deleted: boost-1.78.0-build-optflags.patch deleted: boost-1.73-locale-empty-vector.patch deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted: boost-1.76.0-ptr_cont-xml.patch deleted: boost-1.78.0-fix-b2-staging.patch deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch - New Boost.URL runtime component - boost_build directory is now b2 in upstream, renamte to boost_build on install --- boost-1.58.0-pool-test_linking.patch | 30 - boost-1.58.0-pool.patch | 120 -- boost-1.73-locale-empty-vector.patch | 37 - ....0-enum_type_object-type-python-3.11.patch | 35 - boost-1.76.0-ptr_cont-xml.patch | 1263 ----------------- ...patch => boost-1.81.0-build-optflags.patch | 55 +- boost.spec | 83 +- sources | 2 +- 8 files changed, 72 insertions(+), 1553 deletions(-) delete mode 100644 boost-1.58.0-pool-test_linking.patch delete mode 100644 boost-1.58.0-pool.patch delete mode 100644 boost-1.73-locale-empty-vector.patch delete mode 100644 boost-1.76.0-enum_type_object-type-python-3.11.patch delete mode 100644 boost-1.76.0-ptr_cont-xml.patch rename boost-1.78.0-build-optflags.patch => boost-1.81.0-build-optflags.patch (51%) diff --git a/boost-1.58.0-pool-test_linking.patch b/boost-1.58.0-pool-test_linking.patch deleted file mode 100644 index b57e6d0..0000000 --- a/boost-1.58.0-pool-test_linking.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- boost_1_68_0/libs/pool/test/Jamfile.v2.orig 2018-08-01 20:50:52.000000000 +0000 -+++ boost_1_68_0/libs/pool/test/Jamfile.v2 2018-12-01 17:29:33.322195409 +0000 -@@ -22,18 +22,18 @@ - import testing ; - - test-suite pool : -- [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 ] -- [ run test_pool_alloc.cpp ] -- [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 ] -- [ run test_msvc_mem_leak_detect.cpp ] -- [ run test_bug_3349.cpp ] -- [ run test_bug_4960.cpp ] -+ [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 /boost/system//boost_system ] -+ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] -+ [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 /boost/system//boost_system ] -+ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] - [ run test_bug_1252.cpp : : : - clang:-Wno-c++11-long-long - gcc:-Wno-long-long -- pathscale:-Wno-long-long ] -- [ run test_bug_2696.cpp ] -- [ run test_bug_5526.cpp ] -+ pathscale:-Wno-long-long /boost/system//boost_system ] -+ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] - [ run test_threading.cpp : : : multi /boost/thread//boost_thread ] - [ compile test_poisoned_macros.cpp ] - ; diff --git a/boost-1.58.0-pool.patch b/boost-1.58.0-pool.patch deleted file mode 100644 index ed8449e..0000000 --- a/boost-1.58.0-pool.patch +++ /dev/null @@ -1,120 +0,0 @@ -Index: boost/pool/pool.hpp -=================================================================== ---- boost/pool/pool.hpp (revision 78317) -+++ boost/pool/pool.hpp (revision 78326) -@@ -27,4 +27,6 @@ - #include - -+// std::numeric_limits -+#include - // boost::integer::static_lcm - #include -@@ -358,4 +360,11 @@ - } - -+ size_type max_chunks() const -+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. -+ size_type partition_size = alloc_size(); -+ size_type POD_size = integer::static_lcm::value + sizeof(size_type); -+ return (std::numeric_limits::max() - POD_size) / alloc_size(); -+ } -+ - static void * & nextof(void * const ptr) - { //! \returns Pointer dereferenced. -@@ -377,5 +388,7 @@ - //! the first time that object needs to allocate system memory. - //! The default is 32. This parameter may not be 0. -- //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ set_next_size(nnext_size); -+ set_max_size(nmax_size); - } - -@@ -400,7 +413,7 @@ - } - void set_next_size(const size_type nnext_size) -- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -- //! \returns nnext_size. -- next_size = start_size = nnext_size; -+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -+ BOOST_USING_STD_MIN(); -+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks()); - } - size_type get_max_size() const -@@ -410,5 +423,6 @@ - void set_max_size(const size_type nmax_size) - { //! Set max_size. -- max_size = nmax_size; -+ BOOST_USING_STD_MIN(); -+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks()); - } - size_type get_requested_size() const -@@ -713,7 +727,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -753,7 +767,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -797,4 +811,6 @@ - //! \returns Address of chunk n if allocated ok. - //! \returns 0 if not enough memory for n chunks. -+ if (n > max_chunks()) -+ return 0; - - const size_type partition_size = alloc_size(); -@@ -845,7 +861,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // insert it into the list, -Index: libs/pool/test/test_bug_6701.cpp -=================================================================== ---- libs/pool/test/test_bug_6701.cpp (revision 78326) -+++ libs/pool/test/test_bug_6701.cpp (revision 78326) -@@ -0,0 +1,27 @@ -+/* Copyright (C) 2012 Étienne Dupuis -+* -+* Use, modification and distribution is subject to the -+* Boost Software License, Version 1.0. (See accompanying -+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -+*/ -+ -+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701) -+ -+#include -+#include -+ -+int main() -+{ -+ boost::pool<> p(1024, std::numeric_limits::max() / 768); -+ -+ void *x = p.malloc(); -+ BOOST_ASSERT(!x); -+ -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_next_size()); -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_max_size()); -+ -+ void *y = p.ordered_malloc(std::numeric_limits::max() / 768); -+ BOOST_ASSERT(!y); -+ -+ return 0; -+} diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch deleted file mode 100644 index f5cc981..0000000 --- a/boost-1.73-locale-empty-vector.patch +++ /dev/null @@ -1,37 +0,0 @@ -From daf4ef50c88c2b9a6bf2c40b537eebc202caad6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Gonzalve?= - -Date: Sat, 14 Nov 2020 10:39:47 +0100 -Subject: [PATCH] Do not try to access element when vector is empty - -Trying to access tmp[0] causes a crash on Fedora when assertion on STL -are enabled. - -/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. - -This patch just passes nullptr as pointer to getSortKey() when tmp size -is 0, preventing dereferencing elements in empty vector. - -I guess that &tmp[0] should be optimized as 'no real access' when -disabling assertion, but actually leads to crash when assert are -enabled. ---- - src/icu/collator.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp -index 7f1ea6a..dc59e8c 100644 ---- a/libs/locale/src/icu/collator.cpp -+++ b/libs/locale/src/icu/collator.cpp -@@ -93,7 +93,7 @@ namespace boost { - std::vector tmp; - tmp.resize(str.length()); - icu::Collator *collate = get_collator(level); -- int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); - if(len > int(tmp.size())) { - tmp.resize(len); - collate->getSortKey(str,&tmp[0],tmp.size()); --- -2.26.2 - diff --git a/boost-1.76.0-enum_type_object-type-python-3.11.patch b/boost-1.76.0-enum_type_object-type-python-3.11.patch deleted file mode 100644 index 5b77498..0000000 --- a/boost-1.76.0-enum_type_object-type-python-3.11.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ae5da2a7e8f1111757d8a474095486a5b22aa12d Mon Sep 17 00:00:00 2001 -From: Victor Stinner -Date: Mon, 25 Apr 2022 10:51:46 +0200 -Subject: [PATCH] Fix enum_type_object type on Python 3.11 - -The enum_type_object type inherits from PyLong_Type which is not tracked -by the GC. Instances doesn't have to be tracked by the GC: remove the -Py_TPFLAGS_HAVE_GC flag. - -The Python C API documentation says: - - "To create a container type, the tp_flags field of the type object - must include the Py_TPFLAGS_HAVE_GC and provide an implementation of - the tp_traverse handler." - -https://docs.python.org/dev/c-api/gcsupport.html - -The new exception was introduced in Python 3.11 by: -https://github.com/python/cpython/issues/88429 ---- - libs/python/src/object/enum.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/libs/python/src/object/enum.cpp b/libs/python/src/object/enum.cpp -index 293e705899..5753b32e07 100644 ---- a/libs/python/src/object/enum.cpp -+++ b/libs/python/src/object/enum.cpp -@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = { - #if PY_VERSION_HEX < 0x03000000 - | Py_TPFLAGS_CHECKTYPES - #endif -- | Py_TPFLAGS_HAVE_GC - | Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /* tp_doc */ - 0, /* tp_traverse */ diff --git a/boost-1.76.0-ptr_cont-xml.patch b/boost-1.76.0-ptr_cont-xml.patch deleted file mode 100644 index ed088bf..0000000 --- a/boost-1.76.0-ptr_cont-xml.patch +++ /dev/null @@ -1,1263 +0,0 @@ -From adc94a80adbb7b720bd149c8b805876baa77b815 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Wed, 5 Aug 2020 11:28:26 +0100 -Subject: [PATCH] Fix invalid XHTML markup in docs - -The reStructuredText files insert
    HTML elements, which are not -valid in XHTML. - -The doc/tutorial_example.html file contains unquoted attributes and -unclosed and tags (although since that file is included -into another document, it probably shouldn't have , and - elements at all). ---- - doc/associative_ptr_container.html | 2 +- - doc/associative_ptr_container.rst | 2 +- - doc/examples.html | 2 +- - doc/examples.rst | 4 +- - doc/faq.html | 2 +- - doc/faq.rst | 2 +- - doc/guidelines.html | 4 +- - doc/guidelines.rst | 4 +- - doc/headers.html | 2 +- - doc/headers.rst | 2 +- - doc/indirect_fun.html | 2 +- - doc/indirect_fun.rst | 2 +- - doc/ptr_array.html | 2 +- - doc/ptr_array.rst | 2 +- - doc/ptr_container.html | 2 +- - doc/ptr_container.rst | 2 +- - doc/ptr_deque.html | 2 +- - doc/ptr_deque.rst | 2 +- - doc/ptr_inserter.html | 2 +- - doc/ptr_inserter.rst | 2 +- - doc/ptr_list.html | 2 +- - doc/ptr_list.rst | 2 +- - doc/ptr_map.html | 2 +- - doc/ptr_map.rst | 2 +- - doc/ptr_map_adapter.html | 2 +- - doc/ptr_map_adapter.rst | 2 +- - doc/ptr_multimap_adapter.html | 2 +- - doc/ptr_multimap_adapter.rst | 2 +- - doc/ptr_multiset.html | 2 +- - doc/ptr_multiset.rst | 2 +- - doc/ptr_multiset_adapter.html | 2 +- - doc/ptr_multiset_adapter.rst | 2 +- - doc/ptr_sequence_adapter.html | 2 +- - doc/ptr_sequence_adapter.rst | 2 +- - doc/ptr_set.html | 2 +- - doc/ptr_set.rst | 2 +- - doc/ptr_set_adapter.html | 2 +- - doc/ptr_set_adapter.rst | 2 +- - doc/ptr_vector.html | 2 +- - doc/ptr_vector.rst | 2 +- - doc/reference.html | 4 +- - doc/reference.rst | 4 +- - doc/reversible_ptr_container.html | 2 +- - doc/reversible_ptr_container.rst | 2 +- - doc/tutorial.html | 4 +- - doc/tutorial.rst | 4 +- - doc/tutorial_example.html | 384 ++++++++++++++--------------- - 47 files changed, 245 insertions(+), 245 deletions(-) - -diff --git a/doc/associative_ptr_container.html b/doc/associative_ptr_container.html -index ccc4d9fa..9467864f 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.html -+++ b/libs/ptr_container/doc/associative_ptr_container.html -@@ -529,7 +529,7 @@

    -+

    - - - -diff --git a/doc/associative_ptr_container.rst b/doc/associative_ptr_container.rst -index b9b8d45a..6dcd0833 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.rst -+++ b/libs/ptr_container/doc/associative_ptr_container.rst -@@ -216,7 +216,7 @@ Semantics: algorithms - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/examples.html b/doc/examples.html -index 5568b323..dbc8ce2b 100644 ---- a/libs/ptr_container/doc/examples.html -+++ b/libs/ptr_container/doc/examples.html -@@ -886,7 +886,7 @@

    9. A large example

    -
  • home
  • -
  • reference
  • - --
    -+
    - - - -diff --git a/doc/examples.rst b/doc/examples.rst -index 213094bf..d82f4b85 100644 ---- a/libs/ptr_container/doc/examples.rst -+++ b/libs/ptr_container/doc/examples.rst -@@ -180,7 +180,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -189,7 +189,7 @@ The source code can also be found `here <../test/tut1.cpp>`_. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/faq.html b/doc/faq.html -index f318483b..1d701131 100644 ---- a/libs/ptr_container/doc/faq.html -+++ b/libs/ptr_container/doc/faq.html -@@ -373,7 +373,7 @@

    [13] for details.

    --

    -+
    - - - -diff --git a/doc/faq.rst b/doc/faq.rst -index 40c8eb2d..e2ead8d7 100644 ---- a/libs/ptr_container/doc/faq.rst -+++ b/libs/ptr_container/doc/faq.rst -@@ -95,7 +95,7 @@ class with dummy implementations of the virtual functions. See `[13] -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/guidelines.html b/doc/guidelines.html -index 759b6259..25d1f148 100644 ---- a/libs/ptr_container/doc/guidelines.html -+++ b/libs/ptr_container/doc/guidelines.html -@@ -414,12 +414,12 @@

    container< nullable<T> >.

    --

    Navigate:

    -+

    Navigate:

    -
    --

    -+
    - - - -diff --git a/doc/guidelines.rst b/doc/guidelines.rst -index 1c39c7ba..bf69dac8 100644 ---- a/libs/ptr_container/doc/guidelines.rst -+++ b/libs/ptr_container/doc/guidelines.rst -@@ -144,7 +144,7 @@ you. That is when you truly need ``container< nullable >``. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -153,7 +153,7 @@ you. That is when you truly need ``container< nullable >``. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/headers.html b/doc/headers.html -index 4b040825..aa1609ab 100644 ---- a/libs/ptr_container/doc/headers.html -+++ b/libs/ptr_container/doc/headers.html -@@ -375,7 +375,7 @@

    Library headers

    -
  • home
  • -
  • reference
  • - --
    -+
    - - - -diff --git a/doc/headers.rst b/doc/headers.rst -index befcbb55..8c8e8ded 100644 ---- a/libs/ptr_container/doc/headers.rst -+++ b/libs/ptr_container/doc/headers.rst -@@ -75,7 +75,7 @@ Library headers - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/indirect_fun.html b/doc/indirect_fun.html -index a0446472..acc13346 100644 ---- a/libs/ptr_container/doc/indirect_fun.html -+++ b/libs/ptr_container/doc/indirect_fun.html -@@ -401,7 +401,7 @@

    Indirected functions

    - - } // namespace 'boost' - --
    -+
    - - - -diff --git a/doc/indirect_fun.rst b/doc/indirect_fun.rst -index 5fd13df2..f6583d90 100644 ---- a/libs/ptr_container/doc/indirect_fun.rst -+++ b/libs/ptr_container/doc/indirect_fun.rst -@@ -127,7 +127,7 @@ first operation is expanded inline. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_array.html b/doc/ptr_array.html -index 30da95f7..483fcfa4 100644 ---- a/libs/ptr_container/doc/ptr_array.html -+++ b/libs/ptr_container/doc/ptr_array.html -@@ -660,7 +660,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_array.rst b/doc/ptr_array.rst -index 68c2b47b..a7390236 100644 ---- a/libs/ptr_container/doc/ptr_array.rst -+++ b/libs/ptr_container/doc/ptr_array.rst -@@ -281,7 +281,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_container.html b/doc/ptr_container.html -index 5672bdfd..77a89a35 100644 ---- a/libs/ptr_container/doc/ptr_container.html -+++ b/libs/ptr_container/doc/ptr_container.html -@@ -735,7 +735,7 @@

    References

    - - -
    [13]Kevlin Henney, Null Object, 2002.
    --
    -+
    - - - -diff --git a/doc/ptr_container.rst b/doc/ptr_container.rst -index 0436cce7..257a2fda 100644 ---- a/libs/ptr_container/doc/ptr_container.rst -+++ b/libs/ptr_container/doc/ptr_container.rst -@@ -384,7 +384,7 @@ __ http://www.two-sdg.demon.co.uk/curbralan/papers/europlop/NullObject.pdf - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. - -diff --git a/doc/ptr_deque.html b/doc/ptr_deque.html -index 5216aa0e..bc996969 100644 ---- a/libs/ptr_container/doc/ptr_deque.html -+++ b/libs/ptr_container/doc/ptr_deque.html -@@ -526,7 +526,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_deque.rst b/doc/ptr_deque.rst -index 020ba362..a2a2cc99 100644 ---- a/libs/ptr_container/doc/ptr_deque.rst -+++ b/libs/ptr_container/doc/ptr_deque.rst -@@ -170,7 +170,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_inserter.html b/doc/ptr_inserter.html -index 9fb05a8a..92e4a527 100644 ---- a/libs/ptr_container/doc/ptr_inserter.html -+++ b/libs/ptr_container/doc/ptr_inserter.html -@@ -348,7 +348,7 @@

    Insert Iterators

    - } // namespace 'ptr_container' - } // namespace 'boost' - --
    -+
    - - - -diff --git a/doc/ptr_inserter.rst b/doc/ptr_inserter.rst -index 574bbdad..ef1c820b 100644 ---- a/libs/ptr_container/doc/ptr_inserter.rst -+++ b/libs/ptr_container/doc/ptr_inserter.rst -@@ -70,7 +70,7 @@ can be transfered as well. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2008. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_list.html b/doc/ptr_list.html -index 1a8e6798..c76aeaf9 100644 ---- a/libs/ptr_container/doc/ptr_list.html -+++ b/libs/ptr_container/doc/ptr_list.html -@@ -500,7 +500,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_list.rst b/doc/ptr_list.rst -index 302049d0..2eceb9d7 100644 ---- a/libs/ptr_container/doc/ptr_list.rst -+++ b/libs/ptr_container/doc/ptr_list.rst -@@ -146,7 +146,7 @@ Semantics: list operations - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_map.html b/doc/ptr_map.html -index e5fd2c9c..bc75e5cb 100644 ---- a/libs/ptr_container/doc/ptr_map.html -+++ b/libs/ptr_container/doc/ptr_map.html -@@ -342,7 +342,7 @@

    Class --

    -+
    - - - -diff --git a/doc/ptr_map.rst b/doc/ptr_map.rst -index 6b50a2ba..64113937 100644 ---- a/libs/ptr_container/doc/ptr_map.rst -+++ b/libs/ptr_container/doc/ptr_map.rst -@@ -63,7 +63,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_map_adapter.html b/doc/ptr_map_adapter.html -index 2ed30539..b451914c 100644 ---- a/libs/ptr_container/doc/ptr_map_adapter.html -+++ b/libs/ptr_container/doc/ptr_map_adapter.html -@@ -556,7 +556,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_map_adapter.rst b/doc/ptr_map_adapter.rst -index 517ea7fc..aabf5c4e 100644 ---- a/libs/ptr_container/doc/ptr_map_adapter.rst -+++ b/libs/ptr_container/doc/ptr_map_adapter.rst -@@ -194,7 +194,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multimap_adapter.html b/doc/ptr_multimap_adapter.html -index 3780ec8c..49243a16 100644 ---- a/libs/ptr_container/doc/ptr_multimap_adapter.html -+++ b/libs/ptr_container/doc/ptr_multimap_adapter.html -@@ -540,7 +540,7 @@

    Semantics: typedefs

    - - - --
    -+
    - - - -diff --git a/doc/ptr_multimap_adapter.rst b/doc/ptr_multimap_adapter.rst -index 3b9e9961..56d37f5d 100644 ---- a/libs/ptr_container/doc/ptr_multimap_adapter.rst -+++ b/libs/ptr_container/doc/ptr_multimap_adapter.rst -@@ -189,7 +189,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multiset.html b/doc/ptr_multiset.html -index a82a7995..50fa9681 100644 ---- a/libs/ptr_container/doc/ptr_multiset.html -+++ b/libs/ptr_container/doc/ptr_multiset.html -@@ -349,7 +349,7 @@

    Class -
      -
    • Using nullable<T> as Key is meaningless and is not allowed
    • -
    --

    -+
    - - - -diff --git a/doc/ptr_multiset.rst b/doc/ptr_multiset.rst -index 120891bd..3af8bef3 100644 ---- a/libs/ptr_container/doc/ptr_multiset.rst -+++ b/libs/ptr_container/doc/ptr_multiset.rst -@@ -70,7 +70,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_multiset_adapter.html b/doc/ptr_multiset_adapter.html -index 6bcfebb1..96e811d1 100644 ---- a/libs/ptr_container/doc/ptr_multiset_adapter.html -+++ b/libs/ptr_container/doc/ptr_multiset_adapter.html -@@ -491,7 +491,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_multiset_adapter.rst b/doc/ptr_multiset_adapter.rst -index eb9eafe2..8c437fb1 100644 ---- a/libs/ptr_container/doc/ptr_multiset_adapter.rst -+++ b/libs/ptr_container/doc/ptr_multiset_adapter.rst -@@ -134,7 +134,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_sequence_adapter.html b/doc/ptr_sequence_adapter.html -index aa2e7a42..9c4af800 100644 ---- a/libs/ptr_container/doc/ptr_sequence_adapter.html -+++ b/libs/ptr_container/doc/ptr_sequence_adapter.html -@@ -827,7 +827,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_sequence_adapter.rst b/doc/ptr_sequence_adapter.rst -index 5640d029..d98684c1 100644 ---- a/libs/ptr_container/doc/ptr_sequence_adapter.rst -+++ b/libs/ptr_container/doc/ptr_sequence_adapter.rst -@@ -443,7 +443,7 @@ contain any nulls*. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_set.html b/doc/ptr_set.html -index 8e66779f..1a5a37b0 100644 ---- a/libs/ptr_container/doc/ptr_set.html -+++ b/libs/ptr_container/doc/ptr_set.html -@@ -350,7 +350,7 @@

    Class -
  • Using nullable<T> as Key is meaningless and is not allowed
  • - --

    -+
    - - - -diff --git a/doc/ptr_set.rst b/doc/ptr_set.rst -index 6679a8b2..5fb83d1e 100644 ---- a/libs/ptr_container/doc/ptr_set.rst -+++ b/libs/ptr_container/doc/ptr_set.rst -@@ -72,7 +72,7 @@ to store the pointers. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_set_adapter.html b/doc/ptr_set_adapter.html -index 12820d38..e32501da 100644 ---- a/libs/ptr_container/doc/ptr_set_adapter.html -+++ b/libs/ptr_container/doc/ptr_set_adapter.html -@@ -491,7 +491,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_set_adapter.rst b/doc/ptr_set_adapter.rst -index bb19e148..7b89c184 100644 ---- a/libs/ptr_container/doc/ptr_set_adapter.rst -+++ b/libs/ptr_container/doc/ptr_set_adapter.rst -@@ -136,7 +136,7 @@ Semantics: pointer container requirements - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/ptr_vector.html b/doc/ptr_vector.html -index def2a569..150c9a71 100644 ---- a/libs/ptr_container/doc/ptr_vector.html -+++ b/libs/ptr_container/doc/ptr_vector.html -@@ -550,7 +550,7 @@

    Semantics

    - - - --
    -+
    - - - -diff --git a/doc/ptr_vector.rst b/doc/ptr_vector.rst -index 374166f2..575a5679 100644 ---- a/libs/ptr_container/doc/ptr_vector.rst -+++ b/libs/ptr_container/doc/ptr_vector.rst -@@ -185,7 +185,7 @@ Semantics: C-array support - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/reference.html b/doc/reference.html -index 1ae18479..653b4324 100644 ---- a/libs/ptr_container/doc/reference.html -+++ b/libs/ptr_container/doc/reference.html -@@ -797,11 +797,11 @@

    BOOST_NO_EXCEPTIONS is defined, then BOOST_PTR_CONTAINER_NO_EXCEPTIONS - is also defined.

    --

    Navigate:

    -+

    Navigate:

    -
    --

    -+
    - - - -diff --git a/doc/reference.rst b/doc/reference.rst -index 3dffbc68..0b827e0e 100644 ---- a/libs/ptr_container/doc/reference.rst -+++ b/libs/ptr_container/doc/reference.rst -@@ -486,7 +486,7 @@ is also defined. - - .. raw:: html - --
    -+
    - - **Navigate:** - -@@ -494,7 +494,7 @@ is also defined. - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/reversible_ptr_container.html b/doc/reversible_ptr_container.html -index ede30c57..e45fcde8 100644 ---- a/libs/ptr_container/doc/reversible_ptr_container.html -+++ b/libs/ptr_container/doc/reversible_ptr_container.html -@@ -885,7 +885,7 @@

    Semantics

    - Boost.Serialization -
  • Exception safety: Loading gives the basic guarantee
  • - --
    -+
    - - - -diff --git a/doc/reversible_ptr_container.rst b/doc/reversible_ptr_container.rst -index 360f7d97..4fb24163 100644 ---- a/libs/ptr_container/doc/reversible_ptr_container.rst -+++ b/libs/ptr_container/doc/reversible_ptr_container.rst -@@ -506,7 +506,7 @@ All containers can be serialized by means of - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2007. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/tutorial.html b/doc/tutorial.html -index 7c93b469..05047afd 100644 ---- a/libs/ptr_container/doc/tutorial.html -+++ b/libs/ptr_container/doc/tutorial.html -@@ -773,7 +773,7 @@

    Algorithms

    - BOOST_ASSERT( another_zoo.empty() ); - -

    That is all; now you have learned all the basics!

    --

    See also

    -+

    See also

    - --
    -+
    - - - -diff --git a/doc/tutorial.rst b/doc/tutorial.rst -index a7c12e20..8b84364a 100644 ---- a/libs/ptr_container/doc/tutorial.rst -+++ b/libs/ptr_container/doc/tutorial.rst -@@ -440,7 +440,7 @@ That is all; now you have learned all the basics! - - .. raw:: html - --
    -+
    - - **See also** - -@@ -455,7 +455,7 @@ That is all; now you have learned all the basics! - - .. raw:: html - --
    -+
    - - :Copyright: Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__). - -diff --git a/doc/tutorial_example.html b/doc/tutorial_example.html -index 202a17bb..9ebf4a1c 100644 ---- a/libs/ptr_container/doc/tutorial_example.html -+++ b/libs/ptr_container/doc/tutorial_example.html -@@ -1,12 +1,12 @@ - - -- -+ - -- -+ - - - --
    //
    -+    
    //
    - // Boost.Pointer Container
    - //
    - //  Copyright Thorsten Ottosen 2003-2005. Use, modification and
    -@@ -30,149 +30,149 @@
    - //
    - // First we select which container to use.
    - //
    --#include <boost/ptr_container/ptr_deque.hpp>
    -+#include <boost/ptr_container/ptr_deque.hpp>
    - 
    --//
    -+//
    - // we need these later in the example
    - //
    --#include <boost/assert.hpp>
    --#include <string>
    --#include <exception>
    -+#include <boost/assert.hpp>
    -+#include <string>
    -+#include <exception>
    - 
    - 
    --//
    -+//
    - // Then we define a small polymorphic class
    - // hierarchy.
    - // 
    - 
    --class animal : boost::noncopyable
    --{
    --    virtual std::string do_speak() const = 0;
    --    std::string name_;
    -+class animal : boost::noncopyable
    -+{
    -+    virtual std::string do_speak() const = 0;
    -+    std::string name_;
    - 
    --protected:
    --    //
    -+protected:
    -+    //
    -     // Animals cannot be copied...
    -     //
    --    animal( const animal& r ) : name_( r.name_ )           { }
    --    void operator=( const animal& );
    -+    animal( const animal& r ) : name_( r.name_ )           { }
    -+    void operator=( const animal& );
    - 
    --private:
    --    //
    -+private:
    -+    //
    -     // ...but due to advances in genetics, we can clone them!
    -     //
    - 
    --    virtual animal* do_clone() const = 0;
    -+    virtual animal* do_clone() const = 0;
    -         
    --public:
    --    animal( const std::string& name ) : name_(name)        { }
    --    virtual ~animal() throw()                              { }
    -+public:
    -+    animal( const std::string& name ) : name_(name)        { }
    -+    virtual ~animal() throw()                              { }
    -     
    --    std::string speak() const
    --    {
    --        return do_speak();
    --    }
    --
    --    std::string name() const
    --    {
    --        return name_;
    --    }
    --
    --    animal* clone() const
    --    {
    --        return do_clone();
    --    }
    --};
    --
    --//
    -+    std::string speak() const
    -+    {
    -+        return do_speak();
    -+    }
    -+
    -+    std::string name() const
    -+    {
    -+        return name_;
    -+    }
    -+
    -+    animal* clone() const
    -+    {
    -+        return do_clone();
    -+    }
    -+};
    -+
    -+//
    - // An animal is still not Clonable. We need this last hook.
    - //
    - // Notice that we pass the animal by const reference
    - // and return by pointer.
    - //
    - 
    --animal* new_clone( const animal& a )
    --{
    --    return a.clone();
    --}
    -+animal* new_clone( const animal& a )
    -+{
    -+    return a.clone();
    -+}
    - 
    --//
    -+//
    - // We do not need to define 'delete_clone()' since
    - // since the default is to call the default 'operator delete()'.
    - //
    - 
    --const std::string muuuh = "Muuuh!";
    --const std::string oiink = "Oiiink";
    --
    --class cow : public animal
    --{
    --    virtual std::string do_speak() const
    --    {
    --        return muuuh;
    --    }
    --
    --    virtual animal* do_clone() const
    --    {
    --        return new cow( *this );
    --    }
    --
    --public:
    --    cow( const std::string& name ) : animal(name)          { }
    --};
    --
    --class pig : public animal
    --{
    --    virtual std::string do_speak() const
    --    {
    --        return oiink;
    --    }
    --
    --    virtual animal* do_clone() const
    --    {
    --        return new pig( *this );
    --    }
    -+const std::string muuuh = "Muuuh!";
    -+const std::string oiink = "Oiiink";
    -+
    -+class cow : public animal
    -+{
    -+    virtual std::string do_speak() const
    -+    {
    -+        return muuuh;
    -+    }
    -+
    -+    virtual animal* do_clone() const
    -+    {
    -+        return new cow( *this );
    -+    }
    -+
    -+public:
    -+    cow( const std::string& name ) : animal(name)          { }
    -+};
    -+
    -+class pig : public animal
    -+{
    -+    virtual std::string do_speak() const
    -+    {
    -+        return oiink;
    -+    }
    -+
    -+    virtual animal* do_clone() const
    -+    {
    -+        return new pig( *this );
    -+    }
    -     
    --public:
    --    pig( const std::string& name ) : animal(name)          { }
    --};
    -+public:
    -+    pig( const std::string& name ) : animal(name)          { }
    -+};
    - 
    --//
    -+//
    - // Then we, of course, need a place to put all
    - // those animals.
    - //
    - 
    --class farm
    --{
    --    //
    -+class farm
    -+{
    -+    //
    -     // This is where the smart containers are handy
    -     //
    --    typedef boost::ptr_deque<animal> barn_type;
    --    barn_type                        barn;
    -+    typedef boost::ptr_deque<animal> barn_type;
    -+    barn_type                        barn;
    - 
    --    //
    -+    //
    -     // A convenience typedef for the compiler-appropriate
    -     // smart pointer used to manage barns
    -     //    
    --    typedef compatible-smart-ptr<barn_type> raii_ptr;
    -+    typedef compatible-smart-ptr<barn_type> raii_ptr;
    - 
    --    //
    -+    //
    -     // An error type
    -     //
    --    struct farm_trouble : public std::exception           { };
    -+    struct farm_trouble : public std::exception           { };
    - 
    --public:
    --    // 
    -+public:
    -+    // 
    -     // We would like to make it possible to
    -     // iterate over the animals in the farm
    -     //
    --    typedef barn_type::iterator  animal_iterator;
    -+    typedef barn_type::iterator  animal_iterator;
    - 
    --    //
    -+    //
    -     // We also need to count the farm's size...
    -     //
    --    typedef barn_type::size_type size_type;
    -+    typedef barn_type::size_type size_type;
    -     
    --    //
    -+    //
    -     // And we also want to transfer an animal
    -     // safely around. The easiest way to think
    -     // about '::auto_type' is to imagine a simplified
    -@@ -184,100 +184,100 @@
    -     //
    -     // but not more.
    -     //
    --    typedef barn_type::auto_type  animal_transport;
    -+    typedef barn_type::auto_type  animal_transport;
    - 
    --    // 
    -+    // 
    -     // Create an empty farm.
    -     //
    --    farm()                                                 { }
    -+    farm()                                                 { }
    -     
    --    //
    -+    //
    -     // We need a constructor that can make a new
    -     // farm by cloning a range of animals.
    -     //
    --    farm( animal_iterator begin, animal_iterator end )
    --     : 
    --        //
    -+    farm( animal_iterator begin, animal_iterator end )
    -+     : 
    -+        //
    -         // Objects are always cloned before insertion
    -         // unless we explicitly add a pointer or 
    -         // use 'release()'. Therefore we actually
    -         // clone all animals in the range
    -         //
    --        barn( begin, end )                               { }
    -+        barn( begin, end )                               { }
    -     
    --    //
    -+    //
    -     // ... so we need some other function too
    -     //
    - 
    --    animal_iterator begin()
    --    {
    --        return barn.begin();
    --    }
    -+    animal_iterator begin()
    -+    {
    -+        return barn.begin();
    -+    }
    - 
    --    animal_iterator end()
    --    {
    --        return barn.end();
    --    }
    -+    animal_iterator end()
    -+    {
    -+        return barn.end();
    -+    }
    -     
    --    //
    -+    //
    -     // Here it is quite ok to have an 'animal*' argument.
    -     // The smart container will handle all ownership
    -     // issues.
    -     //
    --    void buy_animal( animal* a )
    --    {
    --        barn.push_back( a );
    --    }
    -+    void buy_animal( animal* a )
    -+    {
    -+        barn.push_back( a );
    -+    }
    - 
    --    //
    -+    //
    -     // The farm can also be in economical trouble and
    -     // therefore be in the need to sell animals.
    -     //
    --    animal_transport sell_animal( animal_iterator to_sell )
    --    {
    --        if( to_sell == end() )
    --            throw farm_trouble();
    -+    animal_transport sell_animal( animal_iterator to_sell )
    -+    {
    -+        if( to_sell == end() )
    -+            throw farm_trouble();
    - 
    --        //
    -+        //
    -         // Here we remove the animal from the barn,
    -         // but the animal is not deleted yet...it's
    -         // up to the buyer to decide what
    -         // to do with it.
    -         //
    --        return barn.release( to_sell );
    --    }
    -+        return barn.release( to_sell );
    -+    }
    - 
    --    //
    -+    //
    -     // How big a farm do we have?
    -     //
    --    size_type size() const
    --    {
    --        return barn.size();
    --    }
    -+    size_type size() const
    -+    {
    -+        return barn.size();
    -+    }
    - 
    --    //
    -+    //
    -     // If things are bad, we might choose to sell all animals :-(
    -       //
    - 
    --    raii_ptr sell_farm()
    --    {
    --        return barn.release();
    --    }
    -+    raii_ptr sell_farm()
    -+    {
    -+        return barn.release();
    -+    }
    - 
    --    //
    -+    //
    -     // However, if things are good, we might buy somebody
    -     // else's farm :-)
    -     //
    - 
    --    void buy_farm( raii_ptr other )
    --    {
    --        //
    -+    void buy_farm( raii_ptr other )
    -+    {
    -+        //
    -         // This line inserts all the animals from 'other'
    -         // and is guaranteed either to succeed or to have no
    -         // effect
    -         //
    --        barn.transfer( barn.end(), // insert new animals at the end
    --                         *other );     // we want to transfer all animals,
    -+        barn.transfer( barn.end(), // insert new animals at the end
    -+                         *other );     // we want to transfer all animals,
    -                                        // so we use the whole container as argument
    -         //
    -         // You might think you would have to do
    -@@ -286,86 +286,86 @@
    -         //
    -         // but '*other' is empty and can go out of scope as it wants
    -         //
    --        BOOST_ASSERT( other->empty() );
    --    }
    -+        BOOST_ASSERT( other->empty() );
    -+    }
    -     
    --}; // class 'farm'.
    -+}; // class 'farm'.
    - 
    --int main()
    --{
    --    //
    -+int main()
    -+{
    -+    //
    -     // First we make a farm
    -     //
    --    farm animal_farm;
    --    BOOST_ASSERT( animal_farm.size() == 0u );
    -+    farm animal_farm;
    -+    BOOST_ASSERT( animal_farm.size() == 0u );
    -     
    --    animal_farm.buy_animal( new pig("Betty") );
    --    animal_farm.buy_animal( new pig("Benny") );
    --    animal_farm.buy_animal( new pig("Jeltzin") );
    --    animal_farm.buy_animal( new cow("Hanz") );
    --    animal_farm.buy_animal( new cow("Mary") );
    --    animal_farm.buy_animal( new cow("Frederik") );
    --    BOOST_ASSERT( animal_farm.size() == 6u );
    --
    --    //
    -+    animal_farm.buy_animal( new pig("Betty") );
    -+    animal_farm.buy_animal( new pig("Benny") );
    -+    animal_farm.buy_animal( new pig("Jeltzin") );
    -+    animal_farm.buy_animal( new cow("Hanz") );
    -+    animal_farm.buy_animal( new cow("Mary") );
    -+    animal_farm.buy_animal( new cow("Frederik") );
    -+    BOOST_ASSERT( animal_farm.size() == 6u );
    -+
    -+    //
    -     // Then we make another farm...it will actually contain
    -     // a clone of the other farm.
    -     //
    --    farm new_farm( animal_farm.begin(), animal_farm.end() );
    --    BOOST_ASSERT( new_farm.size() == 6u );
    -+    farm new_farm( animal_farm.begin(), animal_farm.end() );
    -+    BOOST_ASSERT( new_farm.size() == 6u );
    - 
    --    //
    -+    //
    -     // Is it really clones in the new farm?
    -     //
    --    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    -+    BOOST_ASSERT( new_farm.begin()->name() == "Betty" );
    -     
    --    //
    -+    //
    -     // Then we search for an animal, Mary (the Crown Princess of Denmark),
    -     // because we would like to buy her ...
    -     //
    --    typedef farm::animal_iterator iterator;
    --    iterator to_sell;
    --    for( iterator i   = animal_farm.begin(),
    --                  end = animal_farm.end();
    --         i != end; ++i )
    --    {
    --        if( i->name() == "Mary" )
    --        {
    --            to_sell = i;
    --            break;
    --        }
    --    }
    --
    --    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    --
    --
    --    if( mary->speak() == muuuh )
    --        //
    -+    typedef farm::animal_iterator iterator;
    -+    iterator to_sell;
    -+    for( iterator i   = animal_farm.begin(),
    -+                  end = animal_farm.end();
    -+         i != end; ++i )
    -+    {
    -+        if( i->name() == "Mary" )
    -+        {
    -+            to_sell = i;
    -+            break;
    -+        }
    -+    }
    -+
    -+    farm::animal_transport mary = animal_farm.sell_animal( to_sell );
    -+
    -+
    -+    if( mary->speak() == muuuh )
    -+        //
    -         // Great, Mary is a cow, and she may live longer
    -         //
    --        new_farm.buy_animal( mary.release() );
    --    else
    --        //
    -+        new_farm.buy_animal( mary.release() );
    -+    else
    -+        //
    -         // Then the animal would be destroyed (!)
    -         // when we go out of scope.
    -         //
    --        ;
    -+        ;
    - 
    --    //
    -+    //
    -     // Now we can observe some changes to the two farms...
    -     //
    --    BOOST_ASSERT( animal_farm.size() == 5u );
    --    BOOST_ASSERT( new_farm.size()    == 7u );
    -+    BOOST_ASSERT( animal_farm.size() == 5u );
    -+    BOOST_ASSERT( new_farm.size()    == 7u );
    - 
    --    //
    -+    //
    -     // The new farm has however underestimated how much
    -     // it cost to feed Mary and its owner is forced to sell the farm...
    -     //
    --    animal_farm.buy_farm( new_farm.sell_farm() );
    -+    animal_farm.buy_farm( new_farm.sell_farm() );
    - 
    --    BOOST_ASSERT( new_farm.size()    == 0u );
    --    BOOST_ASSERT( animal_farm.size() == 12u );     
    --}
    -+    BOOST_ASSERT( new_farm.size()    == 0u );
    -+    BOOST_ASSERT( animal_farm.size() == 12u );     
    -+}
    - 
    - - diff --git a/boost-1.78.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch similarity index 51% rename from boost-1.78.0-build-optflags.patch rename to boost-1.81.0-build-optflags.patch index 47578a6..cda74d4 100644 --- a/boost-1.78.0-build-optflags.patch +++ b/boost-1.81.0-build-optflags.patch @@ -1,17 +1,17 @@ -From 739edb2889cb63c281a3597e712988a40bc82829 Mon Sep 17 00:00:00 2001 +From aabd16d1a74a1c2be151e16bda9ff55af4f0beba Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers -Date: Mon, 28 Feb 2022 20:55:14 -0800 -Subject: [PATCH 1/3] Adjust options for Fedora package build +Date: Thu, 12 Jan 2023 11:54:59 -0800 +Subject: [PATCH] Adjust options for Fedora package build --- - src/tools/gcc.jam | 31 ++++++++++++++++--------------- - 1 file changed, 16 insertions(+), 15 deletions(-) + src/tools/gcc.jam | 36 ++++++++++++++++++------------------ + 1 file changed, 18 insertions(+), 18 deletions(-) -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 47a11322..543cfd84 100644 +diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam +index 14be886f5..9dd0ba0a6 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -510,7 +510,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -511,7 +511,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { @@ -20,21 +20,24 @@ index 47a11322..543cfd84 100644 } actions compile.c bind PCH_FILE -@@ -521,6 +521,7 @@ actions compile.c bind PCH_FILE +@@ -521,7 +521,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) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" } actions compile.c.preprocess bind PCH_FILE -@@ -623,20 +624,20 @@ actions compile.c.pch +@@ -624,22 +624,22 @@ 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 minimal : -O1 ; +-toolset.flags gcc.compile OPTIONS debug : -Og ; - -toolset.flags gcc.compile OPTIONS off : -fno-inline ; -toolset.flags gcc.compile OPTIONS on : -Wno-inline ; @@ -46,23 +49,25 @@ index 47a11322..543cfd84 100644 -toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; -toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; -toolset.flags gcc.compile OPTIONS on : -Werror ; -+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 speed : ; ++toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS minimal : ; ++toolset.flags gcc.compile OPTIONS debug : ; + -+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 full : ; + -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS on : ; -+toolset.flags gcc.compile OPTIONS all : ; -+toolset.flags gcc.compile OPTIONS extra : ; -+toolset.flags gcc.compile OPTIONS pedantic : ; -+toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS all : ; ++toolset.flags gcc.compile OPTIONS extra : ; ++toolset.flags gcc.compile OPTIONS pedantic : ; ++toolset.flags gcc.compile OPTIONS on : ; toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.35.1 +2.39.0 diff --git a/boost.spec b/boost.spec index 151e133..6efe8a6 100644 --- a/boost.spec +++ b/boost.spec @@ -41,8 +41,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.78.0 -Release: 11%{?dist} +Version: 1.81.0 +Release: 0%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -54,7 +54,7 @@ License: Boost and MIT and Python %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2 +# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -127,16 +127,8 @@ BuildRequires: libquadmath-devel BuildRequires: bison BuildRequires: libzstd-devel -# https://bugzilla.redhat.com/show_bug.cgi?id=828856 -# https://bugzilla.redhat.com/show_bug.cgi?id=828857 -# https://svn.boost.org/trac/boost/ticket/6701 -Patch15: boost-1.58.0-pool.patch - -# https://svn.boost.org/trac/boost/ticket/9038 -Patch51: boost-1.58.0-pool-test_linking.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch105: boost-1.78.0-build-optflags.patch +Patch111: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 Patch106: boost-1.78.0-no-rpath.patch @@ -144,34 +136,16 @@ Patch106: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch88: boost-1.73.0-cmakedir.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1899888 -# https://github.com/boostorg/locale/issues/52 -Patch94: boost-1.73-locale-empty-vector.patch - # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch107: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 Patch102: boost-1.76.0-random-test.patch -# PR https://github.com/boostorg/multiprecision/pull/421 -# fixes ppc64le issue https://github.com/boostorg/multiprecision/issues/419 -Patch103: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch - # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 -Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch - -# https://github.com/boostorg/ptr_container/pull/27 -Patch108: boost-1.76.0-ptr_cont-xml.patch - -# Fixes missing libboost_fiber.so -# https://github.com/boostorg/boost/issues/632 -Patch109: boost-1.78.0-fix-b2-staging.patch - -# https://github.com/boostorg/python/pull/385 -Patch110: boost-1.76.0-enum_type_object-type-python-3.11.patch +Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch %bcond_with tests %bcond_with docs_generated @@ -451,6 +425,14 @@ Requires: %{name}-system%{?_isa} = %{version}-%{release} The Boost.TypeErasure library provides runtime polymorphism in C++ that is more flexible than that provided by the core language. +%package url +Summary: Runtime component of boost URL library + +%description url + +Run-time support for the Boost.URL library, a Standards conforming +library for parsing Uniform Resource Locators. + %package wave Summary: Run-time component of boost C99/C++ preprocessing library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} @@ -675,19 +657,12 @@ a number of significant features and is now developed independently. %setup -q -n %{toplev_dirname} find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x -%patch15 -p0 -%patch51 -p1 -%patch105 -p1 +%patch111 -p1 %patch106 -p1 %patch107 -p1 %patch88 -p1 -%patch94 -p1 %patch102 -p1 -%patch103 -p2 %patch104 -p2 -%patch108 -p1 -%patch109 -p1 -%patch110 -p1 %build %set_build_flags @@ -896,6 +871,11 @@ install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ echo ============================= install Boost.Build ================== (cd tools/build ./b2 --prefix=$RPM_BUILD_ROOT%{_prefix} install + + # Somewhere along the line the boost-build install directory became b2 + # which seems not so great for our purposes, fix that up + mv $RPM_BUILD_ROOT%{_datadir}/b2 $RPM_BUILD_ROOT%{_datadir}/boost-build + # Fix some permissions chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # Fix shebang using unversioned python @@ -1138,6 +1118,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_type_erasure.so.%{sonamever} +%files url +%license LICENSE_1_0.txt +%{_libdir}/libboost_url.so.%{sonamever} + %files wave %license LICENSE_1_0.txt %{_libdir}/libboost_wave.so.%{sonamever} @@ -1202,6 +1186,7 @@ fi %{_libdir}/libboost_thread.so %{_libdir}/libboost_timer.so %{_libdir}/libboost_type_erasure.so +%{_libdir}/libboost_url.so %{_libdir}/libboost_wave.so %files static @@ -1269,7 +1254,6 @@ fi %files mpich-python3-devel %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so - %endif %files graph-mpich @@ -1293,6 +1277,21 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Feb 20 2023 Thomas Rodgers - 1.81.0-0 +- Rebase to 1.81.0 + See https://fedoraproject.org/wiki/Changes/F38Boost181 +- Drop patches: + deleted: boost-1.58.0-pool.patch + deleted: boost-1.58.0-pool-test_linking.patch + deleted: boost-1.78.0-build-optflags.patch + deleted: boost-1.73-locale-empty-vector.patch + deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch + deleted: boost-1.76.0-ptr_cont-xml.patch + deleted: boost-1.78.0-fix-b2-staging.patch + deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch +- New Boost.URL runtime component +- boost_build directory is now b2 in upstream, renamte to boost_build on install + * Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild @@ -1330,7 +1329,7 @@ fi - Rebase to 1.78.0 See https://fedoraproject.org/wiki/Changes/F37Boost178 - Drop patches: - deleted: boost-1.75.0-build-optflags.patch + deleted: boost-1.75.0-build-optflags.patch deleted: boost-1.75.0-no-rpath.patch deleted: boost-1.76.0-b2-build-flags.patch deleted: boost-1.76.0-fix-include-inside-boost-namespace.patch @@ -2376,7 +2375,7 @@ fi - Drop obsolete Obsoletes: boost-python and boost-doc <= 1.30.2 * Tue Jan 12 2010 Benjamin Kosnik - 1.41.0-1 -- Don't package generated debug libs, even with +- Don't package generated debug libs, even with (-DCMAKE_BUILD_TYPE=RelWithDebInfo | Release). - Update and include boost-cmake-soname.patch. - Uncomment ctest. diff --git a/sources b/sources index 84ff6c3..821b86a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_78_0.tar.bz2) = 9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf +SHA512 (boost_1_81_0.tar.bz2) = a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36 From a496150aecdc67e6b1beb0625e1b7f2b041cf2b2 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 09:36:13 +0000 Subject: [PATCH 161/203] Fix typo in %changelog --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 6efe8a6..8729182 100644 --- a/boost.spec +++ b/boost.spec @@ -1290,7 +1290,7 @@ fi deleted: boost-1.78.0-fix-b2-staging.patch deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch - New Boost.URL runtime component -- boost_build directory is now b2 in upstream, renamte to boost_build on install +- boost_build directory is now b2 in upstream, rename to boost_build on install * Wed Jan 18 2023 Fedora Release Engineering - 1.78.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From 1116a4d288c41261ab4ac14914bceae7d7207273 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 09:36:29 +0000 Subject: [PATCH 162/203] Add patch for Boost.Phoenix bugs (#2178210) --- boost-1.81-phoenix-multiple-defn.patch | 20 ++++++++++++++++++++ boost.spec | 11 ++++++++++- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 boost-1.81-phoenix-multiple-defn.patch diff --git a/boost-1.81-phoenix-multiple-defn.patch b/boost-1.81-phoenix-multiple-defn.patch new file mode 100644 index 0000000..6deaa40 --- /dev/null +++ b/boost-1.81-phoenix-multiple-defn.patch @@ -0,0 +1,20 @@ +--- boost_1_81_0/boost/phoenix/stl/tuple.hpp~ 2023-03-15 09:31:59.327721489 +0000 ++++ boost_1_81_0/boost/phoenix/stl/tuple.hpp 2023-03-15 09:32:02.787722445 +0000 +@@ -106,14 +106,16 @@ + tuple_detail::idx_wrap(), t); + } + ++#ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS + // Make unpacked argument placeholders + namespace placeholders { + #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) + #define BOOST_PP_LOCAL_MACRO(N) \ +- auto uarg##N = \ ++ const auto uarg##N = \ + boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); + #include BOOST_PP_LOCAL_ITERATE() + } ++#endif + }} // namespace boost::phoenix + + #endif // C++ 14 diff --git a/boost.spec b/boost.spec index 8729182..f7dde4f 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 0%{?dist} +Release: 1%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -147,6 +147,11 @@ Patch102: boost-1.76.0-random-test.patch # https://github.com/boostorg/interval/issues/29 Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=2178210 +# https://github.com/boostorg/phoenix/issues/111 +# https://github.com/boostorg/phoenix/issues/115 +Patch112: boost-1.81-phoenix-multiple-defn.patch + %bcond_with tests %bcond_with docs_generated @@ -663,6 +668,7 @@ find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x %patch88 -p1 %patch102 -p1 %patch104 -p2 +%patch112 -p1 %build %set_build_flags @@ -1277,6 +1283,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Mar 15 2023 Jonathan Wakely - 1.81.0-1 +- Add patch for Boost.Phoenix bugs (#2178210) + * Mon Feb 20 2023 Thomas Rodgers - 1.81.0-0 - Rebase to 1.81.0 See https://fedoraproject.org/wiki/Changes/F38Boost181 From 131ff2b1a6029e1aa50aaf4ec17ceff4302780be Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 12:02:09 +0000 Subject: [PATCH 163/203] Fix test plan by removing obsolete beakerlib setting --- plans/ci.fmf | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plans/ci.fmf b/plans/ci.fmf index 1ad2c12..3fd3ab7 100644 --- a/plans/ci.fmf +++ b/plans/ci.fmf @@ -1,6 +1,5 @@ summary: CI Gating Plan discover: how: fmf - directory: tests execute: - how: beakerlib + how: tmt From 6b80e21fd9ba8eef0adbda3d1b0af1625e5884bc Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 15 Mar 2023 18:21:43 +0000 Subject: [PATCH 164/203] Change spec file to use autospec for applying patches Also renumber the patches from 0-7 since any historical significance of the numbers is already gone from the spec file. --- ....0-fix-narrowing-conversions-for-ppc.patch | 4 +-- boost.spec | 29 ++++++++----------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch index 42662dd..ce49540 100644 --- a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +++ b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch @@ -13,8 +13,8 @@ Fixes #29 diff --git a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp index 87fe8ee..99f9986 100644 ---- a/include/boost/numeric/interval/detail/ppc_rounding_control.hpp -+++ b/include/boost/numeric/interval/detail/ppc_rounding_control.hpp +--- boost_1_76_0/boost/numeric/interval/detail/ppc_rounding_control.hpp ++++ boost_1_76_0/boost/numeric/interval/detail/ppc_rounding_control.hpp @@ -28,10 +28,10 @@ typedef union { double dmode; } rounding_mode_struct; diff --git a/boost.spec b/boost.spec index f7dde4f..528fa84 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 1%{?dist} +Release: 2%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -128,29 +128,29 @@ BuildRequires: bison BuildRequires: libzstd-devel # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch111: boost-1.81.0-build-optflags.patch +Patch0: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch106: boost-1.78.0-no-rpath.patch +Patch1: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php -Patch88: boost-1.73.0-cmakedir.patch +Patch2: boost-1.73.0-cmakedir.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch107: boost-1.78.0-b2-build-flags.patch +Patch3: boost-1.78.0-b2-build-flags.patch # https://github.com/boostorg/random/issues/82 -Patch102: boost-1.76.0-random-test.patch +Patch4: boost-1.76.0-random-test.patch # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 -Patch104: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://bugzilla.redhat.com/show_bug.cgi?id=2178210 # https://github.com/boostorg/phoenix/issues/111 # https://github.com/boostorg/phoenix/issues/115 -Patch112: boost-1.81-phoenix-multiple-defn.patch +Patch6: boost-1.81-phoenix-multiple-defn.patch %bcond_with tests %bcond_with docs_generated @@ -659,17 +659,9 @@ Historically, B2 was based on on FTJam and on Perforce Jam but has grown a number of significant features and is now developed independently. %prep -%setup -q -n %{toplev_dirname} +%autosetup -n %{toplev_dirname} -p1 find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x -%patch111 -p1 -%patch106 -p1 -%patch107 -p1 -%patch88 -p1 -%patch102 -p1 -%patch104 -p2 -%patch112 -p1 - %build %set_build_flags # Dump the versions being used into the build logs. @@ -1283,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Mar 15 2023 Jonathan Wakely - 1.81.0-2 +- Change spec file to use autospec for applying patches + * Wed Mar 15 2023 Jonathan Wakely - 1.81.0-1 - Add patch for Boost.Phoenix bugs (#2178210) From 393e648a01774fa7db8b878ce435594c4e56bbc0 Mon Sep 17 00:00:00 2001 From: Nianqing Yao Date: Fri, 5 May 2023 21:07:19 +0800 Subject: [PATCH 165/203] Fix build for riscv64 See https://github.com/fedora-riscv/boost/tree/f38-rv64. --- boost.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 528fa84..9b98ecc 100644 --- a/boost.spec +++ b/boost.spec @@ -24,7 +24,7 @@ %endif %endif -%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x +%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x riscv64 %bcond_with context %else %bcond_without context @@ -1275,6 +1275,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri May 05 2023 Nianqing Yao - 1.81.0-3 +- Fix build for riscv64 + See https://github.com/fedora-riscv/boost/tree/f38-rv64 + * Wed Mar 15 2023 Jonathan Wakely - 1.81.0-2 - Change spec file to use autospec for applying patches From 7d7a237052fc51be1cbfa04378f9f6d1c67344b3 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 13 Jun 2023 22:13:55 +0200 Subject: [PATCH 166/203] Rebuilt for Python 3.12 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 9b98ecc..062159a 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 2%{?dist} +Release: 3%{?dist} License: Boost and MIT and Python # Replace each . with _ in %%{version} @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 13 2023 Python Maint - 1.81.0-3 +- Rebuilt for Python 3.12 + * Fri May 05 2023 Nianqing Yao - 1.81.0-3 - Fix build for riscv64 See https://github.com/fedora-riscv/boost/tree/f38-rv64 From a4fcef001632d1f470f39e1767165f7e5acab485 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 6 Jul 2023 00:05:50 +0100 Subject: [PATCH 167/203] Update License for SPDX migration --- boost.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 062159a..cd40d2c 100644 --- a/boost.spec +++ b/boost.spec @@ -42,8 +42,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 3%{?dist} -License: Boost and MIT and Python +Release: 4%{?dist} +License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} %global version_enc %{lua: @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jul 06 2023 Jonathan Wakely - 1.81.0-4 +- Update License for SPDX migration + * Tue Jun 13 2023 Python Maint - 1.81.0-3 - Rebuilt for Python 3.12 From 61dda027eb47d0e6873d69de3522c3dec54a1b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 11 Jul 2023 16:21:59 +0200 Subject: [PATCH 168/203] Rebuilt for ICU 73.2 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index cd40d2c..eb07abb 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 4%{?dist} +Release: 5%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jul 11 2023 František Zatloukal - 1.81.0-5 +- Rebuilt for ICU 73.2 + * Thu Jul 06 2023 Jonathan Wakely - 1.81.0-4 - Update License for SPDX migration From fd721ad7d34a9ea0713362c0c683313bd96dc147 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 19 Jul 2023 14:50:10 +0000 Subject: [PATCH 169/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index eb07abb..f2c69f6 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 5%{?dist} +Release: 6%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1275,6 +1275,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 19 2023 Fedora Release Engineering - 1.81.0-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Tue Jul 11 2023 František Zatloukal - 1.81.0-5 - Rebuilt for ICU 73.2 From 74826991aa4cb6069e2f449e85982bd260f20d11 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Wed, 2 Aug 2023 12:53:55 -0400 Subject: [PATCH 170/203] add symlink for b2 files --- boost.spec | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index f2c69f6..8e0e329 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 6%{?dist} +Release: 7%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -874,6 +874,11 @@ echo ============================= install Boost.Build ================== # which seems not so great for our purposes, fix that up mv $RPM_BUILD_ROOT%{_datadir}/b2 $RPM_BUILD_ROOT%{_datadir}/boost-build + # but make a symlink so b2 knows where to look + pushd $RPM_BUILD_ROOT%{_datadir}/ + ln -s ./boost-build b2 + popd + # Fix some permissions chmod +x $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxproc.py # Fix shebang using unversioned python @@ -1263,6 +1268,7 @@ fi %files build %license LICENSE_1_0.txt %{_datadir}/%{name}-build/ +%{_datadir}/b2 %files doctools %license LICENSE_1_0.txt @@ -1275,6 +1281,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Aug 2 2023 Tom Callaway - 1.81.0-7 +- add symlink for b2 files + * Wed Jul 19 2023 Fedora Release Engineering - 1.81.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From 33b1e83abc65d61aa8982f5d1cabdcb2df160f7c Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 19 Aug 2023 23:51:57 +0800 Subject: [PATCH 171/203] Add patch for Boost.Accumulators bug This change silences the warning when compiling Boost.accumulators with GCC 13. as some projects using Boost.Accumulators are compiled with -Werror. Without this change, these project would have to disable -Wuninitialized warning or silence it temporarily when including the offending headers. Neither of these two solution is ideal from a developer's perspective. so let's apply the patch when packaging Boost. The patch was included by Boost 1.83. Signed-off-by: Kefu Chai --- ....0-always-initialize-member-variable.patch | 41 +++++++++++++++++++ boost.spec | 9 +++- 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 boost-1.81.0-always-initialize-member-variable.patch diff --git a/boost-1.81.0-always-initialize-member-variable.patch b/boost-1.81.0-always-initialize-member-variable.patch new file mode 100644 index 0000000..14c48ae --- /dev/null +++ b/boost-1.81.0-always-initialize-member-variable.patch @@ -0,0 +1,41 @@ +From ecdc3d41be93d994cf293b6ce08cc33cb9e39e71 Mon Sep 17 00:00:00 2001 +From: Kefu Chai +Date: Thu, 27 Apr 2023 13:09:28 +0800 +Subject: [PATCH] always initialize member variable + +in this change, impl::extended_p_square_quantile_impl::probability is +zero-initialized to silence -Wuninitialized warning from GCC-13. + +despite that this variable is always initialized in +impl::extended_p_square_quantile_impl::result(), it is still referenced +by, for instance the copy constructor, which could be called before +`result()` gets called. and GCC-13 rightly warn us like: + +In copy constructor ‘constexpr boost::accumulators::impl::extended_p_square_quantile_impl::extended_p_square_quantile_impl(const boost::accumulators::impl::extended_p_square_quantile_impl&)’, + inlined from ‘boost::accumulators::detail::accumulator_wrapper::accumulator_wrapper(const boost::accumulators::detail::accumulator_wrapper&) [with Accumulator = boost::accumulators::impl::extended_p_square_quantile_impl; Feature = boost::accumulators::tag::extended_p_square_quantile_quadratic]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:320:69, + inlined from ‘constexpr boost::fusion::cons::cons(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with Car = boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>; Cdr = boost::fusion::cons, boost::accumulators::tag::sum>, boost::fusion::cons, boost::accumulators::tag::mean>, boost::fusion::cons, boost::accumulators::tag::max>, boost::fusion::nil_> > >]’ at /usr/include/boost/fusion/container/list/cons.hpp:66:15, + inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 2> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86, + inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 1> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86: +/usr/include/boost/accumulators/statistics/extended_p_square_quantile.hpp:57:12: error: ‘.boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>::.boost::accumulators::impl::extended_p_square_quantile_impl::probability’ is used uninitialized [-Werror=uninitialized] + 57 | struct extended_p_square_quantile_impl + | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Kefu Chai +--- + boost/accumulators/statistics/extended_p_square_quantile.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/boost/accumulators/statistics/extended_p_square_quantile.hpp b/boost/accumulators/statistics/extended_p_square_quantile.hpp +index f57304c..a4ac3cd 100644 +--- a/boost/accumulators/statistics/extended_p_square_quantile.hpp ++++ b/boost/accumulators/statistics/extended_p_square_quantile.hpp +@@ -76,6 +76,7 @@ namespace impl + boost::begin(args[extended_p_square_probabilities]) + , boost::end(args[extended_p_square_probabilities]) + ) ++ , probability() + { + } + +-- +2.39.2 diff --git a/boost.spec b/boost.spec index 8e0e329..8f69652 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 7%{?dist} +Release: 8%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -152,6 +152,9 @@ Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/phoenix/issues/115 Patch6: boost-1.81-phoenix-multiple-defn.patch +# PR https://github.com/boostorg/accumulators/pull/54 +Patch7: boost-1.81.0-always-initialize-member-variable.patch + %bcond_with tests %bcond_with docs_generated @@ -1281,6 +1284,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Aug 20 2023 Kefu Chai - 1.81.0-8 +- Add patch for Boost.Accumulators bug + See https://github.com/boostorg/accumulators/pull/54 + * Wed Aug 2 2023 Tom Callaway - 1.81.0-7 - add symlink for b2 files From 39785c3bbd768e4f90ee354c260b924e91b8ce40 Mon Sep 17 00:00:00 2001 From: Tom Callaway Date: Tue, 29 Aug 2023 16:21:15 -0400 Subject: [PATCH 172/203] apply upstream fixes for failing random tests --- boost-1.81.0-random-test-fixes.patch | 28 ++++++++++++++++++++++++++++ boost.spec | 9 ++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 boost-1.81.0-random-test-fixes.patch diff --git a/boost-1.81.0-random-test-fixes.patch b/boost-1.81.0-random-test-fixes.patch new file mode 100644 index 0000000..0b493c6 --- /dev/null +++ b/boost-1.81.0-random-test-fixes.patch @@ -0,0 +1,28 @@ +diff -up boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_float_test.cpp +--- boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix 2023-08-29 16:07:40.127905519 -0400 ++++ boost_1_81_0/libs/random/test/multiprecision_float_test.cpp 2023-08-29 16:08:44.114856281 -0400 +@@ -77,7 +77,7 @@ typedef boost::mpl::list < + boost::random::lognormal_distribution, + boost::random::normal_distribution, + #ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +- boost::random::piecewise_constant_distribution, ++ boost::random::piecewise_constant_distribution, + boost::random::piecewise_linear_distribution, + #endif + boost::random::student_t_distribution, +diff -up boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_int_test.cpp +--- boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix 2023-08-29 16:06:58.543287627 -0400 ++++ boost_1_81_0/libs/random/test/multiprecision_int_test.cpp 2023-08-29 16:07:26.788707316 -0400 +@@ -216,7 +216,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_d + ss >> d2; + BOOST_CHECK(d == d2); + +- boost::random::independent_bits_engine::digits, boost::multiprecision::uint1024_t > big_random; ++ // ++ // The number of digits in the independent_bits_engine must be low enough that we don't overflow ++ // when converting to a double (see other_distributions declared above). ++ // ++ boost::random::independent_bits_engine::digits - 2, boost::multiprecision::uint1024_t > big_random; + for(unsigned i = 0; i < 200; ++i) + { + result_type r = d(big_random); diff --git a/boost.spec b/boost.spec index 8f69652..618ea03 100644 --- a/boost.spec +++ b/boost.spec @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 8%{?dist} +Release: 9%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -155,6 +155,10 @@ Patch6: boost-1.81-phoenix-multiple-defn.patch # PR https://github.com/boostorg/accumulators/pull/54 Patch7: boost-1.81.0-always-initialize-member-variable.patch +# https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36 +# https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133 +Patch8: boost-1.81.0-random-test-fixes.patch + %bcond_with tests %bcond_with docs_generated @@ -1284,6 +1288,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Aug 29 2023 Tom Callaway - 1.81.0-9 +- apply upstream fixes for failing random tests + * Sun Aug 20 2023 Kefu Chai - 1.81.0-8 - Add patch for Boost.Accumulators bug See https://github.com/boostorg/accumulators/pull/54 From 10a5ee96ffb0aa55a2064afcca46986f53ec3690 Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Mon, 4 Sep 2023 21:36:31 +0000 Subject: [PATCH 173/203] tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91 --- tests/boost-testsuite-sanity/runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 98e9842..b95ae3c 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -54,7 +54,7 @@ rlJournalStart rlPhaseStartSetup "build boost" rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" - rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp --undefine specpartsdir $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" rlRun "cd $TmpDir/BUILD/boost*" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" From bffabb9a2829dbc8286bd6416aecac4066ff8869 Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Thu, 7 Sep 2023 11:44:26 +0000 Subject: [PATCH 174/203] Revert "tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91" This reverts commit 10a5ee96ffb0aa55a2064afcca46986f53ec3690. --- tests/boost-testsuite-sanity/runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index b95ae3c..98e9842 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -54,7 +54,7 @@ rlJournalStart rlPhaseStartSetup "build boost" rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" - rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp --undefine specpartsdir $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" + rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" rlRun "cd $TmpDir/BUILD/boost*" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" From a9ff19d2d3645a6715cc2f99377b2b7703e0a3aa Mon Sep 17 00:00:00 2001 From: Michal Kolar Date: Thu, 7 Sep 2023 11:54:15 +0000 Subject: [PATCH 175/203] tests/boost-testsuite-sanity: adapt to rpm package > 4.18.91, use the proper rpm macro value to determine the required path --- tests/boost-testsuite-sanity/runtest.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 98e9842..76e3d45 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -54,9 +54,11 @@ rlJournalStart rlPhaseStartSetup "build boost" rlRun "rpm -D \"_topdir $TmpDir\" -U *.src.rpm" rlRun "dnf builddep -y $TmpDir/SPECS/*.spec" + rlRun "sed -i -e 's/^%prep/%prep\n%dump/' $TmpDir/SPECS/*.spec" rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" - rlRun "cd $TmpDir/BUILD/boost*" + rlRun "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`" + rlRun "cd $TmpDir/BUILD/$toplev_dirname" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/bootstrap.log" rlPhaseEnd @@ -64,7 +66,7 @@ rlJournalStart rlPhaseStartTest "run testsuite" while read test_path; do if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then - rlRun "cd $TmpDir/BUILD/boost*/libs/$test_path/test" + rlRun "cd $TmpDir/BUILD/$toplev_dirname/libs/$test_path/test" rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER" rm -fr $TmpDir/test-build else From bab1cef729c56c801e543ed3c4d0bc2ea6055a67 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 12 Sep 2023 13:07:24 +0100 Subject: [PATCH 176/203] Remove dropped patches These were dropped from the spec file but not removed from git. --- ...fix_multiprecision_issue_419-ppc64le.patch | 27 ------- boost-1.78.0-fix-b2-staging.patch | 72 ------------------- 2 files changed, 99 deletions(-) delete mode 100644 boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch delete mode 100644 boost-1.78.0-fix-b2-staging.patch diff --git a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch b/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted file mode 100644 index 5cd6d40..0000000 --- a/boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d1343f28dcbe25b100b082b34775bd92ead4602c Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Tue, 25 Jan 2022 09:27:40 +0000 -Subject: [PATCH] Update gcc Intel intrinsic usage config. Fixes - https://github.com/boostorg/multiprecision/issues/419. - ---- - include/boost/multiprecision/cpp_int/intel_intrinsics.hpp | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp -index eb4624bb4..37717cd51 100644 ---- a/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp -+++ b/include/boost/multiprecision/cpp_int/intel_intrinsics.hpp -@@ -19,7 +19,11 @@ - // If this is GCC/clang, then check that the actual intrinsic exists: - // - #if defined(__has_builtin) && defined(__GNUC__) --#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) -+#if !__has_builtin(__builtin_ia32_addcarryx_u64) && defined(BOOST_MP_HAS_IMMINTRIN_H) \ -+ && !(defined(BOOST_GCC) && (__GNUC__ >= 9) \ -+ && (defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64)\ -+ || defined(i386) || defined(__i386) || defined(__i386__) || defined(_M_AMD64) \ -+ || defined(_M_X64) || defined(__amd64__) || defined(_M_X64))) - #undef BOOST_MP_HAS_IMMINTRIN_H - #endif - #elif defined(BOOST_MP_HAS_IMMINTRIN_H) && defined(__GNUC__) && !(defined(BOOST_GCC) && (__GNUC__ >= 9)) diff --git a/boost-1.78.0-fix-b2-staging.patch b/boost-1.78.0-fix-b2-staging.patch deleted file mode 100644 index fa0e212..0000000 --- a/boost-1.78.0-fix-b2-staging.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 78fd284a42caabe8815cb0870b46e5567872e75b Mon Sep 17 00:00:00 2001 -From: Dmitry -Date: Sat, 11 Dec 2021 16:58:23 +0300 -Subject: [PATCH] Don't skip install targets if there's no in ureqs - (#113) - ---- - src/tools/stage.jam | 4 ++++ - test/install_build_no.py | 26 ++++++++++++++++++++++++++ - test/test_all.py | 1 + - 3 files changed, 31 insertions(+) - create mode 100755 test/install_build_no.py - -diff --git a/tools/build/src/tools/stage.jam b/tools/build/src/tools/stage.jam -index c5f02e3ba4..325129dc81 100644 ---- a/tools/build/src/tools/stage.jam -+++ b/tools/build/src/tools/stage.jam -@@ -478,6 +478,10 @@ class install-target-class : basic-target - return [ sequence.unique $(result2) ] ; - } - -+ rule skip-from-usage-requirements ( ) -+ { -+ } -+ - # Returns true iff 'type' is subtype of some element of 'types-to-include'. - # - local rule include-type ( type : types-to-include * ) -diff --git a/tools/build/test/install_build_no.py b/tools/build/test/install_build_no.py -new file mode 100755 -index 0000000000..0ccf3c5cc6 ---- /dev/null -+++ b/tools/build/test/install_build_no.py -@@ -0,0 +1,26 @@ -+#!/usr/bin/python -+ -+# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com) -+# Distributed under the Boost Software License, Version 1.0. -+# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) -+ -+# Check that no in usage-requirements of dependencies does not affect -+# install rule, i.e. a skipped installed target does not affect insallation of -+# other targets. -+ -+import BoostBuild -+ -+t = BoostBuild.Tester() -+ -+t.write("a.cpp", "int main() {}\n") -+ -+t.write("jamroot.jam", """ -+make x : : maker : no ; -+exe a : a.cpp ; -+install install : x a ; -+""") -+ -+t.run_build_system() -+t.expect_addition("install/a.exe") -+ -+t.cleanup() -diff --git a/tools/build/test/test_all.py b/tools/build/test/test_all.py -index b7ef5ad701..9ed729d017 100644 ---- a/tools/build/test/test_all.py -+++ b/tools/build/test/test_all.py -@@ -250,6 +250,7 @@ def reorder_tests(tests, first_test): - "inherit_toolset", - "inherited_dependency", - "inline", -+ "install_build_no", - "libjpeg", - "liblzma", - "libpng", From d121d4637793486268ffe6464c4afe3c10cd8cea Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 29 Oct 2023 12:09:30 -0600 Subject: [PATCH 177/203] Rebuild for openmpi 5.0.0, drops support for i686 --- boost.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/boost.spec b/boost.spec index 618ea03..9b1a164 100644 --- a/boost.spec +++ b/boost.spec @@ -16,7 +16,7 @@ # All arches have mpich %bcond_without mpich -%ifarch s390 +%if 0%{?fedora} >= 40 && "%{_arch}" == "i686" # No OpenMPI support on these arches %bcond_with openmpi %else @@ -42,7 +42,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.81.0 -Release: 9%{?dist} +Release: 10%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1288,6 +1288,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Oct 29 2023 Orion Poplawski - 1.81.0-10 +- Rebuild for openmpi 5.0.0, drops support for i686 + * Tue Aug 29 2023 Tom Callaway - 1.81.0-9 - apply upstream fixes for failing random tests From 56ec04471d48ed4694e821f4bae37ae0e8bc3a1b Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sun, 29 Oct 2023 12:44:09 -0600 Subject: [PATCH 178/203] Rework conditional --- boost.spec | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index 9b1a164..a6e5f4e 100644 --- a/boost.spec +++ b/boost.spec @@ -16,9 +16,13 @@ # All arches have mpich %bcond_without mpich -%if 0%{?fedora} >= 40 && "%{_arch}" == "i686" - # No OpenMPI support on these arches - %bcond_with openmpi +%if 0%{?fedora} >= 40 +%ifarch %{ix86} + # No OpenMPI support on these arches + %bcond_with openmpi +%else + %bcond_without openmpi +%endif %else %bcond_without openmpi %endif From 2dfe9ef974b84092f4bb6da534df9f9ef0b1354a Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 5 Dec 2023 17:54:28 -0500 Subject: [PATCH 179/203] Disable openmpi on RHEL 10+ RHEL 10 follows Fedora 40 and therefore also dropped the i686 build of openmpi. --- boost.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index a6e5f4e..b9caf1a 100644 --- a/boost.spec +++ b/boost.spec @@ -16,7 +16,7 @@ # All arches have mpich %bcond_without mpich -%if 0%{?fedora} >= 40 +%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 %ifarch %{ix86} # No OpenMPI support on these arches %bcond_with openmpi From 177b2b775d3d6bda5abe217abd6a5a5de2d7064c Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Mon, 4 Dec 2023 09:10:48 -0500 Subject: [PATCH 180/203] Rebase to 1.83.0 See https://fedoraproject.org/wiki/Changes/F40Boost183 Follow-up build fixes to dependent packages include: https://src.fedoraproject.org/fork/ppalka/rpms/aqsis/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/auryn/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/Field3D/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/python-graph-tool/commits/rawhide https://src.fedoraproject.org/fork/ppalka/rpms/scantailor/commits/rawhide --- boost-1.78.0-no-rpath.patch | 28 +++++----- ....0-always-initialize-member-variable.patch | 41 -------------- boost-1.81.0-build-optflags.patch | 53 +++++++++---------- boost-1.83-regex-test-fixes.patch | 37 +++++++++++++ boost.spec | 19 ++++--- sources | 2 +- 6 files changed, 89 insertions(+), 91 deletions(-) delete mode 100644 boost-1.81.0-always-initialize-member-variable.patch create mode 100644 boost-1.83-regex-test-fixes.patch diff --git a/boost-1.78.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch index f5c6c47..6f0f9d1 100644 --- a/boost-1.78.0-no-rpath.patch +++ b/boost-1.78.0-no-rpath.patch @@ -1,31 +1,31 @@ -From 25e4220a4564a3f8ec22607fcdbee90c81f040d6 Mon Sep 17 00:00:00 2001 -From: Thomas W Rodgers -Date: Mon, 28 Feb 2022 21:24:07 -0800 -Subject: [PATCH 2/3] Adjust options to remove RPATH for Fedora package builds +From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Mon, 4 Dec 2023 09:27:13 -0500 +Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds --- - src/tools/gcc.jam | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) + tools/build/src/tools/gcc.jam | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index 543cfd84..fd213ccb 100644 +index c753afc23..e0b627726 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -1045,12 +1045,11 @@ actions link.dll.mingw bind LIBRARIES +@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) actions link bind LIBRARIES { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) --} -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)} +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) + } actions link.dll bind LIBRARIES { -- "$(CONFIG_COMMAND)" -L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) -+ "$(CONFIG_COMMAND)" -L"$(LINKPATH)" "$(.IMPLIB-COMMAND)$(<[1])" -o "$(<[-1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,$(<[-1]:D=) -shared $(START-GROUP) "$(>)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS) +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) } ### -- -2.35.1 +2.43.0 diff --git a/boost-1.81.0-always-initialize-member-variable.patch b/boost-1.81.0-always-initialize-member-variable.patch deleted file mode 100644 index 14c48ae..0000000 --- a/boost-1.81.0-always-initialize-member-variable.patch +++ /dev/null @@ -1,41 +0,0 @@ -From ecdc3d41be93d994cf293b6ce08cc33cb9e39e71 Mon Sep 17 00:00:00 2001 -From: Kefu Chai -Date: Thu, 27 Apr 2023 13:09:28 +0800 -Subject: [PATCH] always initialize member variable - -in this change, impl::extended_p_square_quantile_impl::probability is -zero-initialized to silence -Wuninitialized warning from GCC-13. - -despite that this variable is always initialized in -impl::extended_p_square_quantile_impl::result(), it is still referenced -by, for instance the copy constructor, which could be called before -`result()` gets called. and GCC-13 rightly warn us like: - -In copy constructor ‘constexpr boost::accumulators::impl::extended_p_square_quantile_impl::extended_p_square_quantile_impl(const boost::accumulators::impl::extended_p_square_quantile_impl&)’, - inlined from ‘boost::accumulators::detail::accumulator_wrapper::accumulator_wrapper(const boost::accumulators::detail::accumulator_wrapper&) [with Accumulator = boost::accumulators::impl::extended_p_square_quantile_impl; Feature = boost::accumulators::tag::extended_p_square_quantile_quadratic]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:320:69, - inlined from ‘constexpr boost::fusion::cons::cons(typename boost::fusion::detail::call_param::type, typename boost::fusion::detail::call_param::type) [with Car = boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>; Cdr = boost::fusion::cons, boost::accumulators::tag::sum>, boost::fusion::cons, boost::accumulators::tag::mean>, boost::fusion::cons, boost::accumulators::tag::max>, boost::fusion::nil_> > >]’ at /usr/include/boost/fusion/container/list/cons.hpp:66:15, - inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 2> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86, - inlined from ‘static boost::accumulators::detail::build_acc_list::type boost::accumulators::detail::build_acc_list::call(const Args&, const First&, const Last&) [with Args = boost::parameter::aux::flat_like_arg_list, void> >, std::integral_constant >, boost::parameter::aux::flat_like_arg_tuple, boost::parameter::aux::tagged_argument, std::array >, std::integral_constant > >; First = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 1> >; Last = boost::fusion::mpl_iterator, boost::accumulators::tag::max>, boost::mpl::v_item, boost::accumulators::tag::mean>, boost::mpl::v_item, boost::accumulators::tag::sum>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square_quantile_quadratic>, boost::mpl::v_item, boost::accumulators::tag::extended_p_square>, boost::mpl::v_item, boost::mpl::vector0, 0>, 0>, 0>, 0>, 0>, 0>, 6> >]’ at /usr/include/boost/accumulators/framework/depends_on.hpp:252:86: -/usr/include/boost/accumulators/statistics/extended_p_square_quantile.hpp:57:12: error: ‘.boost::accumulators::detail::accumulator_wrapper, boost::accumulators::tag::extended_p_square_quantile_quadratic>::.boost::accumulators::impl::extended_p_square_quantile_impl::probability’ is used uninitialized [-Werror=uninitialized] - 57 | struct extended_p_square_quantile_impl - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Kefu Chai ---- - boost/accumulators/statistics/extended_p_square_quantile.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/boost/accumulators/statistics/extended_p_square_quantile.hpp b/boost/accumulators/statistics/extended_p_square_quantile.hpp -index f57304c..a4ac3cd 100644 ---- a/boost/accumulators/statistics/extended_p_square_quantile.hpp -+++ b/boost/accumulators/statistics/extended_p_square_quantile.hpp -@@ -76,6 +76,7 @@ namespace impl - boost::begin(args[extended_p_square_probabilities]) - , boost::end(args[extended_p_square_probabilities]) - ) -+ , probability() - { - } - --- -2.39.2 diff --git a/boost-1.81.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch index cda74d4..0f482c8 100644 --- a/boost-1.81.0-build-optflags.patch +++ b/boost-1.81.0-build-optflags.patch @@ -1,35 +1,35 @@ -From aabd16d1a74a1c2be151e16bda9ff55af4f0beba Mon Sep 17 00:00:00 2001 -From: Thomas W Rodgers -Date: Thu, 12 Jan 2023 11:54:59 -0800 +From ebc90bc3e372dc8e5db21f79d2a79e4f5c4d01ee Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Mon, 4 Dec 2023 09:24:20 -0500 Subject: [PATCH] Adjust options for Fedora package build --- - src/tools/gcc.jam | 36 ++++++++++++++++++------------------ - 1 file changed, 18 insertions(+), 18 deletions(-) + tools/build/src/tools/gcc.jam | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) -diff --git a/src/tools/gcc.jam b/src/tools/gcc.jam -index 14be886f5..9dd0ba0a6 100644 +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index 834f5e1bf..c753afc23 100644 --- a/tools/build/src/tools/gcc.jam +++ b/tools/build/src/tools/gcc.jam -@@ -511,7 +511,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -513,7 +513,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)" } actions compile.c bind PCH_FILE -@@ -521,7 +521,7 @@ actions compile.c bind PCH_FILE +@@ -523,7 +523,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) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" $(PCH_FILE:D)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" "$(>:W)" -E >"$(<:W)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" "$(>:T)" -E >"$(<)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" "$(>:T)" -E >"$(<)" } actions compile.c.preprocess bind PCH_FILE -@@ -624,22 +624,22 @@ actions compile.c.pch +@@ -627,22 +627,22 @@ actions compile.c.pch ### # Declare flags and action for compilation. @@ -37,28 +37,25 @@ index 14be886f5..9dd0ba0a6 100644 -toolset.flags gcc.compile OPTIONS speed : -O3 ; -toolset.flags gcc.compile OPTIONS space : -Os ; -toolset.flags gcc.compile OPTIONS minimal : -O1 ; --toolset.flags gcc.compile OPTIONS debug : -Og ; -- ++toolset.flags gcc.compile OPTIONS off : ; ++toolset.flags gcc.compile OPTIONS speed : ; ++toolset.flags gcc.compile OPTIONS space : ; ++toolset.flags gcc.compile OPTIONS minimal : ; + toolset.flags gcc.compile OPTIONS debug : -Og ; + -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 : ; ++toolset.flags gcc.compile OPTIONS on : ; ++toolset.flags gcc.compile OPTIONS full : ; + -toolset.flags gcc.compile OPTIONS off : -w ; -toolset.flags gcc.compile OPTIONS on : -Wall ; -toolset.flags gcc.compile OPTIONS all : -Wall ; -toolset.flags gcc.compile OPTIONS extra : -Wall -Wextra ; -toolset.flags gcc.compile OPTIONS pedantic : -Wall -Wextra -pedantic ; -toolset.flags gcc.compile OPTIONS on : -Werror ; -+toolset.flags gcc.compile OPTIONS off : ; -+toolset.flags gcc.compile OPTIONS speed : ; -+toolset.flags gcc.compile OPTIONS space : ; -+toolset.flags gcc.compile OPTIONS minimal : ; -+toolset.flags gcc.compile OPTIONS debug : ; -+ -+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 : ; @@ -69,5 +66,5 @@ index 14be886f5..9dd0ba0a6 100644 toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.39.0 +2.43.0 diff --git a/boost-1.83-regex-test-fixes.patch b/boost-1.83-regex-test-fixes.patch new file mode 100644 index 0000000..b8745a4 --- /dev/null +++ b/boost-1.83-regex-test-fixes.patch @@ -0,0 +1,37 @@ +From 9c974cf22c53315d90a7c1bef7cea9b4f552d088 Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Wed, 6 Dec 2023 14:21:13 -0500 +Subject: [PATCH] Work around spurious Boost.Regex test failures + +--- + libs/regex/example/timer/regex_timer.cpp | 1 + + libs/regex/test/static_mutex/static_mutex_test.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/libs/regex/example/timer/regex_timer.cpp b/libs/regex/example/timer/regex_timer.cpp +index d121b70f1..bee544908 100644 +--- a/libs/regex/example/timer/regex_timer.cpp ++++ b/libs/regex/example/timer/regex_timer.cpp +@@ -13,6 +13,7 @@ + #pragma warning(disable: 4996 4127) + #endif + ++#define BOOST_TIMER_ENABLE_DEPRECATED + #include + #include + #include +diff --git a/libs/regex/test/static_mutex/static_mutex_test.cpp b/libs/regex/test/static_mutex/static_mutex_test.cpp +index be7500bd3..935e74525 100644 +--- a/libs/regex/test/static_mutex/static_mutex_test.cpp ++++ b/libs/regex/test/static_mutex/static_mutex_test.cpp +@@ -16,6 +16,7 @@ + * DESCRIPTION: test program for boost::static_mutex. + */ + ++#define BOOST_TIMER_ENABLE_DEPRECATED + #include + #include + #include +-- +2.43.0 + diff --git a/boost.spec b/boost.spec index b9caf1a..6e718c2 100644 --- a/boost.spec +++ b/boost.spec @@ -45,8 +45,8 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.81.0 -Release: 10%{?dist} +Version: 1.83.0 +Release: 0%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -58,7 +58,7 @@ License: BSL-1.0 AND MIT AND Python-2.0.1 %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_81_0.tar.bz2 +# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_83_0.tar.bz2 Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 Source1: libboost_thread.so # Add a manual page for b2, based on the online documentation: @@ -156,12 +156,11 @@ Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/phoenix/issues/115 Patch6: boost-1.81-phoenix-multiple-defn.patch -# PR https://github.com/boostorg/accumulators/pull/54 -Patch7: boost-1.81.0-always-initialize-member-variable.patch - # https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36 # https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133 -Patch8: boost-1.81.0-random-test-fixes.patch +Patch7: boost-1.81.0-random-test-fixes.patch + +Patch8: boost-1.83-regex-test-fixes.patch %bcond_with tests %bcond_with docs_generated @@ -1292,6 +1291,12 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Dec 06 2023 Patrick Palka - 1.83.0-0 +- Rebase to 1.83.0 +- See https://fedoraproject.org/wiki/Changes/F40Boost183 +- Drop patch for accumulators library that has since been applied upstream. +- Fix spurious Boost.Regex test failures. + * Sun Oct 29 2023 Orion Poplawski - 1.81.0-10 - Rebuild for openmpi 5.0.0, drops support for i686 diff --git a/sources b/sources index 821b86a..651f8cd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_81_0.tar.bz2) = a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36 +SHA512 (boost_1_83_0.tar.bz2) = d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711 From 73e87aacff5209c3154d9b650bc7dd3b7fcfc747 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 19 Jan 2024 14:36:38 +0000 Subject: [PATCH 181/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 6e718c2..dd8ad69 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 0%{?dist} +Release: 1%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1291,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Jan 19 2024 Fedora Release Engineering - 1.83.0-1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Wed Dec 06 2023 Patrick Palka - 1.83.0-0 - Rebase to 1.83.0 - See https://fedoraproject.org/wiki/Changes/F40Boost183 From fe1d35be50bee32b3e42e0007b630b6519b3f034 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Tue, 23 Jan 2024 00:41:49 +0000 Subject: [PATCH 182/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index dd8ad69..abcd9c9 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1291,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jan 23 2024 Fedora Release Engineering - 1.83.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Fri Jan 19 2024 Fedora Release Engineering - 1.83.0-1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From 932a39a6871cab3dbd09aaaeba02949cbcf7290c Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Wed, 31 Jan 2024 19:14:40 +0000 Subject: [PATCH 183/203] Rebuild for ICU 74 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index abcd9c9..b61d3d9 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1291,6 +1291,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jan 31 2024 Pete Walter - 1.83.0-3 +- Rebuild for ICU 74 + * Tue Jan 23 2024 Fedora Release Engineering - 1.83.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From dce3f3406f4fde3e9896cd2b186b2e2924918ee5 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sun, 5 May 2024 10:30:54 +0800 Subject: [PATCH 184/203] Add patch for addressing a Boost.Multiprecision bug This change addresses the issue of https://github.com/boostorg/multiprecision/issues/553, the fix prevents an application from crash due to an exception thrown in a function marked `noexcept`, when converting a `cpp_int` to a float, if the value of this `cpp_int` cannot be represented with a float. this issue is a regression in Boost 1.79, see more details at https://github.com/boostorg/multiprecision/pull/618 Signed-off-by: Kefu Chai --- ...1.83-multiprecision-convert-noexcept.patch | 78 +++++++++++++++++++ boost.spec | 9 ++- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-multiprecision-convert-noexcept.patch diff --git a/boost-1.83-multiprecision-convert-noexcept.patch b/boost-1.83-multiprecision-convert-noexcept.patch new file mode 100644 index 0000000..cdf5a09 --- /dev/null +++ b/boost-1.83-multiprecision-convert-noexcept.patch @@ -0,0 +1,78 @@ +From ea786494db78efdf178cbe36810f3326156e3347 Mon Sep 17 00:00:00 2001 +From: Kefu Chai +Date: Fri, 3 May 2024 15:08:05 +0800 +Subject: [PATCH] make sure eval_convert_to() do not terminate with super large + number + +this change is a follow-up of d51f2e9dbb. it intends to +address the exception thrown in a noexcept functon. + +a minimal reproducer looks like + +```c++ + +int main() { + std::string s = "32767456456456456456545678943512357658768763546575675"; + boost::multiprecision::cpp_int num(s); + std::cout << num.convert_to() << std::endl; +} +``` + +since boost 1.79, the code above terminates like +``` +Program returned: 139 +Program stderr +terminate called after throwing an instance of 'boost::wrapexcept' + what(): Error in function float_next(float): Argument must be finite, but got inf +Program terminated with signal: SIGSEGV +``` + +because `float_next_imp()` throws 'boost::wrapexcept' +if the number is NAN of INF. and `eval_convert_to()` is marked as +`noexcept(boost::multiprecision::detail::is_arithmetic::value && + std::numeric_limits::has_infinity)`, +but only `overflow_error` is ignored in the policy passed to +`float_next()`. + +so, in this change, `std::domain_error` is ignored as well, so that +``num.convert_to()` returns a NaN in this case. + +Refs #553 + +Signed-off-by: Kefu Chai +--- + include/boost/multiprecision/cpp_int/misc.hpp | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/include/boost/multiprecision/cpp_int/misc.hpp b/include/boost/multiprecision/cpp_int/misc.hpp +index cdae2f75..a8a76400 100644 +--- a/boost/multiprecision/cpp_int/misc.hpp ++++ b/boost/multiprecision/cpp_int/misc.hpp +@@ -184,7 +184,9 @@ eval_convert_to(R* result, const cpp_int_backend + inline BOOST_MP_CXX14_CONSTEXPR typename std::enable_if::value && !is_trivial_cpp_int >::value, void>::type +-eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && std::numeric_limits::has_infinity) ++eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && ++ (std::numeric_limits::has_infinity || ++ std::numeric_limits::has_quiet_NaN)) + { + BOOST_MP_FLOAT128_USING using std::ldexp; + if (eval_is_zero(backend)) +@@ -244,10 +246,11 @@ eval_convert_to(R* result, const cpp_int_backend(bits)) || eval_bit_test(backend, static_cast(bits + 1))) + { + #ifdef BOOST_MP_MATH_AVAILABLE +- BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity) ++ BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity || std::numeric_limits::has_quiet_NaN) + { + // Must NOT throw: +- *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error())); ++ *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error(), ++ boost::math::policies::domain_error())); + } + else + { +-- +2.44.0 + diff --git a/boost.spec b/boost.spec index b61d3d9..87ff47d 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -162,6 +162,9 @@ Patch7: boost-1.81.0-random-test-fixes.patch Patch8: boost-1.83-regex-test-fixes.patch +# https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347 +Patch9: boost-1.83-multiprecision-convert-noexcept.patch + %bcond_with tests %bcond_with docs_generated @@ -1291,6 +1294,10 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun May 05 2024 Kefu Chai - 1.83.0-4 +- Add patch for Boost.Multiprecision bug + See https://github.com/boostorg/multiprecision/pull/618 + * Wed Jan 31 2024 Pete Walter - 1.83.0-3 - Rebuild for ICU 74 From e13a584ab74584d6f5a6c002fb10e11994b91f5b Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Sat, 25 May 2024 12:51:24 +0800 Subject: [PATCH 185/203] Add patch for addressing a Boost.Math bug This change addresses the issue of https://github.com/boostorg/math/issues/1132 the patch addresses the issue where float_next() and float_prior() return a domain error instead +INF or -INF. this issue is a regression in Boost 1.79. Signed-off-by: Kefu Chai --- ...t-float_next-INF-and-float_prior-INF.patch | 118 ++++++++++++++++++ boost.spec | 11 +- 2 files changed, 128 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch diff --git a/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch b/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch new file mode 100644 index 0000000..d804a90 --- /dev/null +++ b/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch @@ -0,0 +1,118 @@ +From f3e0cde514e444c2e25a3522d05a6e244fb2f23a Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Fri, 17 May 2024 19:17:04 +0100 +Subject: [PATCH 1/2] Correct float_next(+INF) and float_prior(-INF) Fixes + https://github.com/boostorg/math/issues/1132 + +--- + include/boost/math/special_functions/next.hpp | 32 ++++++++++++++----- + test/test_next.cpp | 11 +++++-- + 2 files changed, 32 insertions(+), 11 deletions(-) + +diff --git a/include/boost/math/special_functions/next.hpp b/include/boost/math/special_functions/next.hpp +index c696b97b5..02a208e4e 100644 +--- a/boost/math/special_functions/next.hpp ++++ b/boost/math/special_functions/next.hpp +@@ -194,10 +194,14 @@ T float_next_imp(const T& val, const std::true_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val < 0) ++ if (val < 0) + return -tools::max_value(); ++ return val; // +INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +@@ -243,10 +247,14 @@ T float_next_imp(const T& val, const std::false_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val < 0) ++ if (val < 0) + return -tools::max_value(); ++ return val; // +INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +@@ -328,10 +336,14 @@ T float_prior_imp(const T& val, const std::true_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val > 0) ++ if (val > 0) + return tools::max_value(); ++ return val; // -INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +@@ -378,10 +390,14 @@ T float_prior_imp(const T& val, const std::false_type&, const Policy& pol) + + int fpclass = (boost::math::fpclassify)(val); + +- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) ++ if (fpclass == (int)FP_INFINITE) + { +- if(val > 0) ++ if (val > 0) + return tools::max_value(); ++ return val; // -INF ++ } ++ else if (fpclass == (int)FP_NAN) ++ { + return policies::raise_domain_error( + function, + "Argument must be finite, but got %1%", val, pol); +diff --git a/test/test_next.cpp b/test/test_next.cpp +index b4f05b437..8bb5f8d99 100644 +--- a/libs/math/test/test_next.cpp ++++ b/libs/math/test/test_next.cpp +@@ -171,12 +171,12 @@ void test_values(const T& val, const char* name) + BOOST_CHECK_EQUAL(boost::math::float_advance(val, primes[i]), v1); + BOOST_CHECK_EQUAL(boost::math::float_advance(val, -primes[i]), v2); + } +- if(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) ++ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) + { + BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits::infinity()), (std::numeric_limits::max)()); + BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits::infinity()), -(std::numeric_limits::max)()); +- BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits::infinity()), std::domain_error); +- BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits::infinity()), std::domain_error); ++ BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits::infinity()), -std::numeric_limits::infinity()); ++ BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits::infinity()), std::numeric_limits::infinity()); + if(boost::math::policies:: BOOST_MATH_OVERFLOW_ERROR_POLICY == boost::math::policies::throw_on_error) + { + BOOST_MATH_CHECK_THROW(boost::math::float_prior(-(std::numeric_limits::max)()), std::overflow_error); +@@ -188,6 +188,11 @@ void test_values(const T& val, const char* name) + BOOST_CHECK_EQUAL(boost::math::float_next((std::numeric_limits::max)()), std::numeric_limits::infinity()); + } + } ++ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_quiet_NaN)) ++ { ++ BOOST_MATH_CHECK_THROW(boost::math::float_prior((std::numeric_limits::quiet_NaN)()), std::domain_error); ++ BOOST_MATH_CHECK_THROW(boost::math::float_next((std::numeric_limits::quiet_NaN)()), std::domain_error); ++ } + // + // We need to test float_distance over multiple orders of magnitude, + // the only way to get an accurate true result is to count the representations +-- +2.45.1 + diff --git a/boost.spec b/boost.spec index 87ff47d..377b484 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 4%{?dist} +Release: 5%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -165,6 +165,10 @@ Patch8: boost-1.83-regex-test-fixes.patch # https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347 Patch9: boost-1.83-multiprecision-convert-noexcept.patch +# https://github.com/boostorg/math/commit/f3e0cde514e444c2e25a3522d05a6e244fb2f23a +# https://github.com/boostorg/math/issues/1132 +Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch + %bcond_with tests %bcond_with docs_generated @@ -1294,6 +1298,11 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat May 25 2024 Kefu Chai - 1.83.0-5 +- Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF) + returns NaN, but they should return +INF and -INF respectively. + See https://github.com/boostorg/math/issues/1132 and its fix at + * Sun May 05 2024 Kefu Chai - 1.83.0-4 - Add patch for Boost.Multiprecision bug See https://github.com/boostorg/multiprecision/pull/618 From 531b5cfda3b6cfd5964ad80a3f253d77500911ad Mon Sep 17 00:00:00 2001 From: U2FsdGVkX1 Date: Thu, 6 Jun 2024 19:04:31 +0800 Subject: [PATCH 186/203] Backport patch to fix RISC-V functions missing --- ...-ABI-detection-for-empty-os-platform.patch | 37 +++++++++++++++++++ boost.spec | 8 +++- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch diff --git a/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch b/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch new file mode 100644 index 0000000..c450275 --- /dev/null +++ b/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch @@ -0,0 +1,37 @@ +From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001 +From: "Ivan A. Melnikov" +Date: Thu, 17 Aug 2023 14:15:03 +0400 +Subject: [PATCH] Fix ABI detection for empty 'os.platform' + +`in` operator in bjam always returns true if its first +argument has no elements[1]. This means that if `os.platform` +is empty (not detected), the construction introduced +in commit d039c8e4da79dbc76481236249e22892bfdde047 sets +ABI to `aapcs` on all platforms where `os.platform` is +empty, including, e.g. riscv64, and breaks build there. + +This commit refactors the condition to use '=' operator, +to make sure that when `os.platform` is empty we get +the default ABI value, and thus fixes build on riscv64. + +[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control + +Fixes: d039c8e4da79dbc76481236249e22892bfdde047 +--- + build/Jamfile.v2 | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 +index faaf892c..c07847ab 100644 +--- a/libs/context/build/Jamfile.v2 ++++ b/libs/context/build/Jamfile.v2 +@@ -79,7 +79,8 @@ local rule default_abi ( ) + local tmp = sysv ; + if [ os.name ] = "NT" { tmp = ms ; } + else if [ os.name ] = "CYGWIN" { tmp = ms ; } +- else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; } ++ else if [ os.platform ] = "ARM" { tmp = aapcs ; } ++ else if [ os.platform ] = "ARM64" { tmp = aapcs ; } + else if [ os.platform ] = "MIPS32" { tmp = o32 ; } + else if [ os.platform ] = "MIPS64" { tmp = n64 ; } + return $(tmp) ; diff --git a/boost.spec b/boost.spec index 377b484..109e42d 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 5%{?dist} +Release: 6%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -169,6 +169,9 @@ Patch9: boost-1.83-multiprecision-convert-noexcept.patch # https://github.com/boostorg/math/issues/1132 Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch +# https://github.com/boostorg/context/pull/234 +Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch + %bcond_with tests %bcond_with docs_generated @@ -1298,6 +1301,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Jun 02 2024 Songsong Zhang - 1.83.0-6 +- Backport patch to fix RISC-V functions missing + * Sat May 25 2024 Kefu Chai - 1.83.0-5 - Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF) returns NaN, but they should return +INF and -INF respectively. From 74cf822853630eb9170624928fa6a1e0dbe85e2d Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Thu, 6 Jun 2024 14:42:09 +0100 Subject: [PATCH 187/203] Add missing Requires for rpminspect errors --- boost.spec | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/boost.spec b/boost.spec index 109e42d..c470afa 100644 --- a/boost.spec +++ b/boost.spec @@ -236,6 +236,7 @@ provides a sort of cooperative multitasking on a single thread. %package coroutine Summary: Run-time component of boost coroutine library +Requires: %{name}-context%{?_isa} = %{version}-%{release} %description coroutine Run-time support for Boost.Coroutine, a library that provides @@ -255,6 +256,8 @@ on generic programming concepts. %if %{with context} %package fiber Summary: Run-time component of boost fiber library +Requires: %{name}-context%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} %description fiber @@ -264,6 +267,7 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} Requires: %{name}-system%{?_isa} = %{version}-%{release} %description filesystem @@ -292,6 +296,7 @@ stream buffers and i/o filters. %package json Summary: Run-time component of boost json library +Requires: %{name}-container%{?_isa} = %{version}-%{release} %description json @@ -312,6 +317,11 @@ handling tools. %package log Summary: Run-time component of boost logging library +Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} +Requires: %{name}-regex%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description log @@ -444,6 +454,7 @@ with as little as one #include and one additional line of code. Summary: Run-time component of boost type erasure library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-system%{?_isa} = %{version}-%{release} +Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description type_erasure @@ -1301,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jun 06 2024 Jonathan Wakely - 1.83.0-6 +- Add missing Requires for rpminspect errors. + * Sun Jun 02 2024 Songsong Zhang - 1.83.0-6 - Backport patch to fix RISC-V functions missing From 8a9a6c507334fc2cbefc87cd75fa6ee870d9112d Mon Sep 17 00:00:00 2001 From: Python Maint Date: Sat, 8 Jun 2024 08:07:49 +0200 Subject: [PATCH 188/203] Rebuilt for Python 3.13 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index c470afa..0365460 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 6%{?dist} +Release: 7%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1312,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Jun 08 2024 Python Maint - 1.83.0-7 +- Rebuilt for Python 3.13 + * Thu Jun 06 2024 Jonathan Wakely - 1.83.0-6 - Add missing Requires for rpminspect errors. From 750fb0618c574759f416bd1808e667210a29306f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 17 Jul 2024 18:30:44 +0000 Subject: [PATCH 189/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 0365460..641ff06 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 7%{?dist} +Release: 8%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1312,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 17 2024 Fedora Release Engineering - 1.83.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sat Jun 08 2024 Python Maint - 1.83.0-7 - Rebuilt for Python 3.13 From a893d9ada9fc10ebadc9b9e381bf39c1f2b5ca30 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 1 Aug 2024 09:36:55 -0700 Subject: [PATCH 190/203] Handle RPM 4.20 build directory change RPM 4.20 adds another level to the build directory path, see https://github.com/rpm-software-management/rpm/issues/3147 . This tries to handle it. Signed-off-by: Adam Williamson --- tests/boost-testsuite-sanity/runtest.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 76e3d45..2bc6957 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -58,15 +58,22 @@ rlJournalStart rlRun "su -c 'rpmbuild -D \"_topdir $TmpDir\" -bp $TmpDir/SPECS/*.spec &>$TmpDir/rpmbuild.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/rpmbuild.log" rlRun "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`" - rlRun "cd $TmpDir/BUILD/$toplev_dirname" + cd $TmpDir/BUILD/$toplev_dirname + if [ $? -ne 0 ]; then + # handle rpm 4.20 build directory difference + # https://github.com/rpm-software-management/rpm/issues/3147 + rlRun "cd $TmpDir/BUILD/*-build/$toplev_dirname" + fi + # now we know the top-level build dir, keep it for later + rlRun "BuildDir=$(pwd)" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/bootstrap.log" rlPhaseEnd rlPhaseStartTest "run testsuite" while read test_path; do - if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then - rlRun "cd $TmpDir/BUILD/$toplev_dirname/libs/$test_path/test" + if [ -f $BuildDir/libs/$test_path/test/Jamfile* ]; then + rlRun "cd $BuildDir/libs/$test_path/test" rlRun "su -c '/usr/bin/b2 -d1 --build-dir=$TmpDir/test-build &>>$TmpDir/testsuite.log' $BUILD_USER" rm -fr $TmpDir/test-build else From 0d18786666b311b8194ef756883784cea5222933 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Fri, 6 Dec 2024 12:34:24 +0000 Subject: [PATCH 191/203] Rebuild for ICU 76 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 641ff06..3665ded 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 8%{?dist} +Release: 9%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1312,6 +1312,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Dec 06 2024 Pete Walter - 1.83.0-9 +- Rebuild for ICU 76 + * Wed Jul 17 2024 Fedora Release Engineering - 1.83.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 3cc264041a555dea7bab3bcd5b9edfa655c79808 Mon Sep 17 00:00:00 2001 From: Sandro Date: Wed, 25 Dec 2024 09:40:28 +0100 Subject: [PATCH 192/203] Backport patches for NumPy 2.x Fix build error since upgrade to NumPy 2.x. --- boost-1.83-NumPy-2.x-dtype.patch | 51 ++++++++++++++++++++++++++++++++ boost.spec | 9 +++++- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-NumPy-2.x-dtype.patch diff --git a/boost-1.83-NumPy-2.x-dtype.patch b/boost-1.83-NumPy-2.x-dtype.patch new file mode 100644 index 0000000..20fba56 --- /dev/null +++ b/boost-1.83-NumPy-2.x-dtype.patch @@ -0,0 +1,51 @@ +Submodule libs/python 47d5bc76f6..8d15ce0517: +diff --git a/libs/python/src/numpy/dtype.cpp b/libs/python/src/numpy/dtype.cpp +index 88a20a27..1ce8c6ec 100644 +--- a/libs/python/src/numpy/dtype.cpp ++++ b/libs/python/src/numpy/dtype.cpp +@@ -98,37 +98,18 @@ python::detail::new_reference dtype::convert(object const & arg, bool align) + return python::detail::new_reference(reinterpret_cast(obj)); + } + +-int dtype::get_itemsize() const { return reinterpret_cast(ptr())->elsize;} +- +-bool equivalent(dtype const & a, dtype const & b) { +- // On Windows x64, the behaviour described on +- // http://docs.scipy.org/doc/numpy/reference/c-api.array.html for +- // PyArray_EquivTypes unfortunately does not extend as expected: +- // "For example, on 32-bit platforms, NPY_LONG and NPY_INT are equivalent". +- // This should also hold for 64-bit platforms (and does on Linux), but not +- // on Windows. Implement an alternative: +-#ifdef _MSC_VER +- if (sizeof(long) == sizeof(int) && +- // Manually take care of the type equivalence. +- ((a == dtype::get_builtin() || a == dtype::get_builtin()) && +- (b == dtype::get_builtin() || b == dtype::get_builtin()) || +- (a == dtype::get_builtin() || a == dtype::get_builtin()) && +- (b == dtype::get_builtin() || b == dtype::get_builtin()))) { +- return true; +- } else { +- return PyArray_EquivTypes( +- reinterpret_cast(a.ptr()), +- reinterpret_cast(b.ptr()) +- ); +- } ++int dtype::get_itemsize() const { ++#if NPY_ABI_VERSION < 0x02000000 ++ return reinterpret_cast(ptr())->elsize; + #else +- return PyArray_EquivTypes( +- reinterpret_cast(a.ptr()), +- reinterpret_cast(b.ptr()) +- ); ++ return PyDataType_ELSIZE(reinterpret_cast(ptr())); + #endif + } + ++bool equivalent(dtype const & a, dtype const & b) { ++ return a == b; ++} ++ + namespace + { + diff --git a/boost.spec b/boost.spec index 3665ded..51abe6c 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 9%{?dist} +Release: 10%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -172,6 +172,10 @@ Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch # https://github.com/boostorg/context/pull/234 Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch +# https://github.com/boostorg/python/pull/432 +# https://github.com/boostorg/python/pull/443 +Patch12: boost-1.83-NumPy-2.x-dtype.patch + %bcond_with tests %bcond_with docs_generated @@ -1312,6 +1316,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Dec 24 2024 Sandro - 1.83.0-10 +- Backport patches for NumPy 2.x + * Fri Dec 06 2024 Pete Walter - 1.83.0-9 - Rebuild for ICU 76 From 7e04e7d896185a3401be25d98b80fe60a4dd057e Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 16 Jan 2025 12:45:41 +0000 Subject: [PATCH 193/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 51abe6c..5bee3e4 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 10%{?dist} +Release: 11%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1316,6 +1316,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jan 16 2025 Fedora Release Engineering - 1.83.0-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + * Tue Dec 24 2024 Sandro - 1.83.0-10 - Backport patches for NumPy 2.x From bd0476d632fbe90d4bab658555498bc5d0c4f769 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= Date: Sun, 26 Jan 2025 07:12:21 +0100 Subject: [PATCH 194/203] =?UTF-8?q?Fix=20no=20member=20named=20=E2=80=98th?= =?UTF-8?q?at=E2=80=99=20error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add boost-1.83-fix-no-member-named_that_error.patch - Fixes FTBS of Poedit (#2341086) --- ...-1.83-fix-no-member-named_that_error.patch | 24 +++++++++++++++++++ boost.spec | 8 ++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 boost-1.83-fix-no-member-named_that_error.patch diff --git a/boost-1.83-fix-no-member-named_that_error.patch b/boost-1.83-fix-no-member-named_that_error.patch new file mode 100644 index 0000000..e3efd01 --- /dev/null +++ b/boost-1.83-fix-no-member-named_that_error.patch @@ -0,0 +1,24 @@ +From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001 +From: Arvid Norlander +Date: Fri, 8 Nov 2024 16:48:43 +0100 +Subject: [PATCH] Fix build on clang-19 (which checks more things in + uninstantiated templates) + +Fixes issue #402 +--- + include/boost/thread/future.hpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp +index 00f504b9b..d15d7ffa5 100644 +--- a/boost/thread/future.hpp ++++ b/boost/thread/future.hpp +@@ -4668,7 +4668,7 @@ namespace detail + } + run_it& operator=(BOOST_THREAD_RV_REF(run_it) x) BOOST_NOEXCEPT { + if (this != &x) { +- that_=x.that; ++ that_=x.that_; + x.that_.reset(); + } + return *this; diff --git a/boost.spec b/boost.spec index 5bee3e4..bfe9734 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 11%{?dist} +Release: 12%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -176,6 +176,9 @@ Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch # https://github.com/boostorg/python/pull/443 Patch12: boost-1.83-NumPy-2.x-dtype.patch +# https://github.com/boostorg/thread/pull/408 +Patch13: boost-1.83-fix-no-member-named_that_error.patch + %bcond_with tests %bcond_with docs_generated @@ -1316,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sun Jan 26 2025 Wolfgang Stöggl - 1.83.0-12 +- Add boost-1.83-fix-no-member-named_that_error.patch + * Thu Jan 16 2025 Fedora Release Engineering - 1.83.0-11 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 9784bfcbb73eaf9a4dd9f957bd2010132ef1bfae Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 12:29:48 +0200 Subject: [PATCH 195/203] Rebuilt for Python 3.14 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index bfe9734..bedf7fb 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 12%{?dist} +Release: 13%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jun 03 2025 Python Maint - 1.83.0-13 +- Rebuilt for Python 3.14 + * Sun Jan 26 2025 Wolfgang Stöggl - 1.83.0-12 - Add boost-1.83-fix-no-member-named_that_error.patch From bb27bd2d277781963b1beb3b91d97f84d1502126 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Wed, 23 Jul 2025 17:49:38 +0000 Subject: [PATCH 196/203] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index bedf7fb..69e4c16 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 13%{?dist} +Release: 14%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Wed Jul 23 2025 Fedora Release Engineering - 1.83.0-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + * Tue Jun 03 2025 Python Maint - 1.83.0-13 - Rebuilt for Python 3.14 From 2f2bd5aba365ed9654e433cfec56bb5d2061f44c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 5 Aug 2025 19:09:43 +0200 Subject: [PATCH 197/203] Rebuilt for icu 77.1 --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 69e4c16..1450943 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 14%{?dist} +Release: 15%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Aug 05 2025 František Zatloukal - 1.83.0-15 +- Rebuilt for icu 77.1 + * Wed Jul 23 2025 Fedora Release Engineering - 1.83.0-14 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 4a984a62382c623952a7b8af920c968396e5b9fa Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 12:40:18 +0200 Subject: [PATCH 198/203] Rebuilt for Python 3.14.0rc2 bytecode --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 1450943..a0bf4ab 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 15%{?dist} +Release: 16%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Aug 15 2025 Python Maint - 1.83.0-16 +- Rebuilt for Python 3.14.0rc2 bytecode + * Tue Aug 05 2025 František Zatloukal - 1.83.0-15 - Rebuilt for icu 77.1 From 403199971d68ea1dd634043f6cc0eafcf5216bf1 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 12:09:30 +0200 Subject: [PATCH 199/203] Rebuilt for Python 3.14.0rc3 bytecode --- boost.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index a0bf4ab..66aa53d 100644 --- a/boost.spec +++ b/boost.spec @@ -46,7 +46,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.83.0 -Release: 16%{?dist} +Release: 17%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -1319,6 +1319,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Fri Sep 19 2025 Python Maint - 1.83.0-17 +- Rebuilt for Python 3.14.0rc3 bytecode + * Fri Aug 15 2025 Python Maint - 1.83.0-16 - Rebuilt for Python 3.14.0rc2 bytecode From ec7383f6bdb448f5846ef7a8f2f527c4bc3cc965 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 9 Dec 2025 12:24:09 +0000 Subject: [PATCH 200/203] Rebase to 1.90.0 See https://fedoraproject.org/wiki/Changes/F44_Boost_1_90 Drop boost-system subpackage and libboost_thread.so linker script Add new boost-charconv, boost-cobalt, and boost-process subpackages --- ...5.0-remove-deprecated-boost-iterator.patch | 114 ---------- boost-1.76.0-random-test.patch | 34 --- boost-1.78.0-no-rpath.patch | 31 --- boost-1.81-phoenix-multiple-defn.patch | 20 -- boost-1.81.0-random-test-fixes.patch | 28 --- ...-ABI-detection-for-empty-os-platform.patch | 37 --- boost-1.83-NumPy-2.x-dtype.patch | 51 ----- ...-1.83-fix-no-member-named_that_error.patch | 24 -- ...t-float_next-INF-and-float_prior-INF.patch | 118 ---------- ...1.83-multiprecision-convert-noexcept.patch | 78 ------- boost-1.83-regex-test-fixes.patch | 37 --- boost-1.90-system.patch | 42 ++++ boost-1.90.0-no-rpath.patch | 31 +++ boost.spec | 212 +++++++++++------- libboost_thread.so | 21 -- sources | 2 +- 16 files changed, 203 insertions(+), 677 deletions(-) delete mode 100644 boost-1.75.0-remove-deprecated-boost-iterator.patch delete mode 100644 boost-1.76.0-random-test.patch delete mode 100644 boost-1.78.0-no-rpath.patch delete mode 100644 boost-1.81-phoenix-multiple-defn.patch delete mode 100644 boost-1.81.0-random-test-fixes.patch delete mode 100644 boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch delete mode 100644 boost-1.83-NumPy-2.x-dtype.patch delete mode 100644 boost-1.83-fix-no-member-named_that_error.patch delete mode 100644 boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch delete mode 100644 boost-1.83-multiprecision-convert-noexcept.patch delete mode 100644 boost-1.83-regex-test-fixes.patch create mode 100644 boost-1.90-system.patch create mode 100644 boost-1.90.0-no-rpath.patch delete mode 100644 libboost_thread.so diff --git a/boost-1.75.0-remove-deprecated-boost-iterator.patch b/boost-1.75.0-remove-deprecated-boost-iterator.patch deleted file mode 100644 index 6341174..0000000 --- a/boost-1.75.0-remove-deprecated-boost-iterator.patch +++ /dev/null @@ -1,114 +0,0 @@ -From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001 -From: Andrey Semashev -Date: Mon, 11 May 2020 19:59:23 +0300 -Subject: [PATCH] Removed usage of deprecated header boost/detail/iterator.hpp. - -The header was deprecated in favor of . It generates compiler -warnings and will be removed in a future release. ---- - boost/detail/algorithm.hpp | 2 +- - boost/graph/adjacency_iterator.hpp | 6 +++--- - boost/graph/detail/adjacency_list.hpp | 5 +++-- - boost/graph/incremental_components.hpp | 6 +++--- - 4 files changed, 10 insertions(+), 9 deletions(-) - -diff --git a/boost/detail/algorithm.hpp b/boost/detail/algorithm.hpp -index 7793fb357..9b3195cbf 100644 ---- a/boost/detail/algorithm.hpp -+++ b/boost/detail/algorithm.hpp -@@ -30,7 +30,7 @@ - - #ifndef BOOST_ALGORITHM_HPP - #define BOOST_ALGORITHM_HPP --#include -+ - // Algorithms on sequences - // - // The functions in this file have not yet gone through formal -diff --git a/boost/graph/adjacency_iterator.hpp b/boost/graph/adjacency_iterator.hpp -index 5325e7875..4693e3a3a 100644 ---- a/boost/graph/adjacency_iterator.hpp -+++ b/boost/graph/adjacency_iterator.hpp -@@ -10,7 +10,7 @@ - #ifndef BOOST_ADJACENCY_ITERATOR_HPP - #define BOOST_ADJACENCY_ITERATOR_HPP - --#include -+#include - #include - #include - -@@ -45,7 +45,7 @@ template < class Graph, - class adjacency_iterator_generator - { - typedef -- typename boost::detail::iterator_traits< OutEdgeIter >::difference_type -+ typename std::iterator_traits< OutEdgeIter >::difference_type - difference_type; - - public: -@@ -81,7 +81,7 @@ template < class Graph, - class inv_adjacency_iterator_generator - { - typedef -- typename boost::detail::iterator_traits< InEdgeIter >::difference_type -+ typename std::iterator_traits< InEdgeIter >::difference_type - difference_type; - - public: -diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp -index 4b11fa516..c1a2ada23 100644 ---- a/boost/graph/detail/adjacency_list.hpp -+++ b/boost/graph/detail/adjacency_list.hpp -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -2370,7 +2371,7 @@ namespace detail - typedef typename OutEdgeList::size_type degree_size_type; - typedef typename OutEdgeList::iterator OutEdgeIter; - -- typedef boost::detail::iterator_traits< OutEdgeIter > -+ typedef std::iterator_traits< OutEdgeIter > - OutEdgeIterTraits; - typedef - typename OutEdgeIterTraits::iterator_category OutEdgeIterCat; -@@ -2398,7 +2399,7 @@ namespace detail - - // Edge Iterator - -- typedef boost::detail::iterator_traits< EdgeIter > EdgeIterTraits; -+ typedef std::iterator_traits< EdgeIter > EdgeIterTraits; - typedef typename EdgeIterTraits::iterator_category EdgeIterCat; - typedef typename EdgeIterTraits::difference_type EdgeIterDiff; - -diff --git a/boost/graph/incremental_components.hpp b/boost/graph/incremental_components.hpp -index 1ad8c9403..f16882e2a 100644 ---- a/boost/graph/incremental_components.hpp -+++ b/boost/graph/incremental_components.hpp -@@ -13,10 +13,10 @@ - #ifndef BOOST_INCREMENTAL_COMPONENTS_HPP - #define BOOST_INCREMENTAL_COMPONENTS_HPP - --#include -+#include - #include - #include --#include -+#include - #include - #include - -@@ -69,7 +69,7 @@ void compress_components(ParentIterator first, ParentIterator last) - } - - template < class ParentIterator > --typename boost::detail::iterator_traits< ParentIterator >::difference_type -+typename std::iterator_traits< ParentIterator >::difference_type - component_count(ParentIterator first, ParentIterator last) - { - std::ptrdiff_t count = 0; diff --git a/boost-1.76.0-random-test.patch b/boost-1.76.0-random-test.patch deleted file mode 100644 index 5ce7477..0000000 --- a/boost-1.76.0-random-test.patch +++ /dev/null @@ -1,34 +0,0 @@ -From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Tue, 16 Mar 2021 10:47:16 +0000 -Subject: [PATCH] Add missing #includes. - ---- - test/multiprecision_float_test.cpp | 1 + - test/multiprecision_int_test.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp -index 904c59d8f..bc2a9364d 100644 ---- boost_1_76_0/libs/random/test/multiprecision_float_test.cpp -+++ boost_1_76_0/libs/random/test/multiprecision_float_test.cpp -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - #include - - -diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp -index 577e52aff..41ec229b5 100644 ---- boost_1_76_0/libs/random/test/multiprecision_int_test.cpp -+++ boost_1_76_0/libs/random/test/multiprecision_int_test.cpp -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - - typedef boost::mpl::list < diff --git a/boost-1.78.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch deleted file mode 100644 index 6f0f9d1..0000000 --- a/boost-1.78.0-no-rpath.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Mon, 4 Dec 2023 09:27:13 -0500 -Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds - ---- - tools/build/src/tools/gcc.jam | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index c753afc23..e0b627726 100644 ---- a/tools/build/src/tools/gcc.jam -+++ b/tools/build/src/tools/gcc.jam -@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) - - actions link bind LIBRARIES - { -- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) -+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) - } - - actions link.dll bind LIBRARIES - { -- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION:E=-R)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) -+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2])" -o "$(<[1])" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) - } - - ### --- -2.43.0 - diff --git a/boost-1.81-phoenix-multiple-defn.patch b/boost-1.81-phoenix-multiple-defn.patch deleted file mode 100644 index 6deaa40..0000000 --- a/boost-1.81-phoenix-multiple-defn.patch +++ /dev/null @@ -1,20 +0,0 @@ ---- boost_1_81_0/boost/phoenix/stl/tuple.hpp~ 2023-03-15 09:31:59.327721489 +0000 -+++ boost_1_81_0/boost/phoenix/stl/tuple.hpp 2023-03-15 09:32:02.787722445 +0000 -@@ -106,14 +106,16 @@ - tuple_detail::idx_wrap(), t); - } - -+#ifndef BOOST_PHOENIX_NO_PREDEFINED_TERMINALS - // Make unpacked argument placeholders - namespace placeholders { - #define BOOST_PP_LOCAL_LIMITS (1, BOOST_PHOENIX_ARG_LIMIT) - #define BOOST_PP_LOCAL_MACRO(N) \ -- auto uarg##N = \ -+ const auto uarg##N = \ - boost::phoenix::get_<(N)-1>(boost::phoenix::placeholders::arg1); - #include BOOST_PP_LOCAL_ITERATE() - } -+#endif - }} // namespace boost::phoenix - - #endif // C++ 14 diff --git a/boost-1.81.0-random-test-fixes.patch b/boost-1.81.0-random-test-fixes.patch deleted file mode 100644 index 0b493c6..0000000 --- a/boost-1.81.0-random-test-fixes.patch +++ /dev/null @@ -1,28 +0,0 @@ -diff -up boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_float_test.cpp ---- boost_1_81_0/libs/random/test/multiprecision_float_test.cpp.testfix 2023-08-29 16:07:40.127905519 -0400 -+++ boost_1_81_0/libs/random/test/multiprecision_float_test.cpp 2023-08-29 16:08:44.114856281 -0400 -@@ -77,7 +77,7 @@ typedef boost::mpl::list < - boost::random::lognormal_distribution, - boost::random::normal_distribution, - #ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -- boost::random::piecewise_constant_distribution, -+ boost::random::piecewise_constant_distribution, - boost::random::piecewise_linear_distribution, - #endif - boost::random::student_t_distribution, -diff -up boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix boost_1_81_0/libs/random/test/multiprecision_int_test.cpp ---- boost_1_81_0/libs/random/test/multiprecision_int_test.cpp.testfix 2023-08-29 16:06:58.543287627 -0400 -+++ boost_1_81_0/libs/random/test/multiprecision_int_test.cpp 2023-08-29 16:07:26.788707316 -0400 -@@ -216,7 +216,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_d - ss >> d2; - BOOST_CHECK(d == d2); - -- boost::random::independent_bits_engine::digits, boost::multiprecision::uint1024_t > big_random; -+ // -+ // The number of digits in the independent_bits_engine must be low enough that we don't overflow -+ // when converting to a double (see other_distributions declared above). -+ // -+ boost::random::independent_bits_engine::digits - 2, boost::multiprecision::uint1024_t > big_random; - for(unsigned i = 0; i < 200; ++i) - { - result_type r = d(big_random); diff --git a/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch b/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch deleted file mode 100644 index c450275..0000000 --- a/boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001 -From: "Ivan A. Melnikov" -Date: Thu, 17 Aug 2023 14:15:03 +0400 -Subject: [PATCH] Fix ABI detection for empty 'os.platform' - -`in` operator in bjam always returns true if its first -argument has no elements[1]. This means that if `os.platform` -is empty (not detected), the construction introduced -in commit d039c8e4da79dbc76481236249e22892bfdde047 sets -ABI to `aapcs` on all platforms where `os.platform` is -empty, including, e.g. riscv64, and breaks build there. - -This commit refactors the condition to use '=' operator, -to make sure that when `os.platform` is empty we get -the default ABI value, and thus fixes build on riscv64. - -[1] https://www.boost.org/doc/libs/1_83_0/tools/build/doc/html/index.html#jam.language.flow_of_control - -Fixes: d039c8e4da79dbc76481236249e22892bfdde047 ---- - build/Jamfile.v2 | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/build/Jamfile.v2 b/build/Jamfile.v2 -index faaf892c..c07847ab 100644 ---- a/libs/context/build/Jamfile.v2 -+++ b/libs/context/build/Jamfile.v2 -@@ -79,7 +79,8 @@ local rule default_abi ( ) - local tmp = sysv ; - if [ os.name ] = "NT" { tmp = ms ; } - else if [ os.name ] = "CYGWIN" { tmp = ms ; } -- else if [ os.platform ] in ARM ARM64 { tmp = aapcs ; } -+ else if [ os.platform ] = "ARM" { tmp = aapcs ; } -+ else if [ os.platform ] = "ARM64" { tmp = aapcs ; } - else if [ os.platform ] = "MIPS32" { tmp = o32 ; } - else if [ os.platform ] = "MIPS64" { tmp = n64 ; } - return $(tmp) ; diff --git a/boost-1.83-NumPy-2.x-dtype.patch b/boost-1.83-NumPy-2.x-dtype.patch deleted file mode 100644 index 20fba56..0000000 --- a/boost-1.83-NumPy-2.x-dtype.patch +++ /dev/null @@ -1,51 +0,0 @@ -Submodule libs/python 47d5bc76f6..8d15ce0517: -diff --git a/libs/python/src/numpy/dtype.cpp b/libs/python/src/numpy/dtype.cpp -index 88a20a27..1ce8c6ec 100644 ---- a/libs/python/src/numpy/dtype.cpp -+++ b/libs/python/src/numpy/dtype.cpp -@@ -98,37 +98,18 @@ python::detail::new_reference dtype::convert(object const & arg, bool align) - return python::detail::new_reference(reinterpret_cast(obj)); - } - --int dtype::get_itemsize() const { return reinterpret_cast(ptr())->elsize;} -- --bool equivalent(dtype const & a, dtype const & b) { -- // On Windows x64, the behaviour described on -- // http://docs.scipy.org/doc/numpy/reference/c-api.array.html for -- // PyArray_EquivTypes unfortunately does not extend as expected: -- // "For example, on 32-bit platforms, NPY_LONG and NPY_INT are equivalent". -- // This should also hold for 64-bit platforms (and does on Linux), but not -- // on Windows. Implement an alternative: --#ifdef _MSC_VER -- if (sizeof(long) == sizeof(int) && -- // Manually take care of the type equivalence. -- ((a == dtype::get_builtin() || a == dtype::get_builtin()) && -- (b == dtype::get_builtin() || b == dtype::get_builtin()) || -- (a == dtype::get_builtin() || a == dtype::get_builtin()) && -- (b == dtype::get_builtin() || b == dtype::get_builtin()))) { -- return true; -- } else { -- return PyArray_EquivTypes( -- reinterpret_cast(a.ptr()), -- reinterpret_cast(b.ptr()) -- ); -- } -+int dtype::get_itemsize() const { -+#if NPY_ABI_VERSION < 0x02000000 -+ return reinterpret_cast(ptr())->elsize; - #else -- return PyArray_EquivTypes( -- reinterpret_cast(a.ptr()), -- reinterpret_cast(b.ptr()) -- ); -+ return PyDataType_ELSIZE(reinterpret_cast(ptr())); - #endif - } - -+bool equivalent(dtype const & a, dtype const & b) { -+ return a == b; -+} -+ - namespace - { - diff --git a/boost-1.83-fix-no-member-named_that_error.patch b/boost-1.83-fix-no-member-named_that_error.patch deleted file mode 100644 index e3efd01..0000000 --- a/boost-1.83-fix-no-member-named_that_error.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001 -From: Arvid Norlander -Date: Fri, 8 Nov 2024 16:48:43 +0100 -Subject: [PATCH] Fix build on clang-19 (which checks more things in - uninstantiated templates) - -Fixes issue #402 ---- - include/boost/thread/future.hpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/include/boost/thread/future.hpp b/include/boost/thread/future.hpp -index 00f504b9b..d15d7ffa5 100644 ---- a/boost/thread/future.hpp -+++ b/boost/thread/future.hpp -@@ -4668,7 +4668,7 @@ namespace detail - } - run_it& operator=(BOOST_THREAD_RV_REF(run_it) x) BOOST_NOEXCEPT { - if (this != &x) { -- that_=x.that; -+ that_=x.that_; - x.that_.reset(); - } - return *this; diff --git a/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch b/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch deleted file mode 100644 index d804a90..0000000 --- a/boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch +++ /dev/null @@ -1,118 +0,0 @@ -From f3e0cde514e444c2e25a3522d05a6e244fb2f23a Mon Sep 17 00:00:00 2001 -From: jzmaddock -Date: Fri, 17 May 2024 19:17:04 +0100 -Subject: [PATCH 1/2] Correct float_next(+INF) and float_prior(-INF) Fixes - https://github.com/boostorg/math/issues/1132 - ---- - include/boost/math/special_functions/next.hpp | 32 ++++++++++++++----- - test/test_next.cpp | 11 +++++-- - 2 files changed, 32 insertions(+), 11 deletions(-) - -diff --git a/include/boost/math/special_functions/next.hpp b/include/boost/math/special_functions/next.hpp -index c696b97b5..02a208e4e 100644 ---- a/boost/math/special_functions/next.hpp -+++ b/boost/math/special_functions/next.hpp -@@ -194,10 +194,14 @@ T float_next_imp(const T& val, const std::true_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val < 0) -+ if (val < 0) - return -tools::max_value(); -+ return val; // +INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -@@ -243,10 +247,14 @@ T float_next_imp(const T& val, const std::false_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val < 0) -+ if (val < 0) - return -tools::max_value(); -+ return val; // +INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -@@ -328,10 +336,14 @@ T float_prior_imp(const T& val, const std::true_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val > 0) -+ if (val > 0) - return tools::max_value(); -+ return val; // -INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -@@ -378,10 +390,14 @@ T float_prior_imp(const T& val, const std::false_type&, const Policy& pol) - - int fpclass = (boost::math::fpclassify)(val); - -- if((fpclass == (int)FP_NAN) || (fpclass == (int)FP_INFINITE)) -+ if (fpclass == (int)FP_INFINITE) - { -- if(val > 0) -+ if (val > 0) - return tools::max_value(); -+ return val; // -INF -+ } -+ else if (fpclass == (int)FP_NAN) -+ { - return policies::raise_domain_error( - function, - "Argument must be finite, but got %1%", val, pol); -diff --git a/test/test_next.cpp b/test/test_next.cpp -index b4f05b437..8bb5f8d99 100644 ---- a/libs/math/test/test_next.cpp -+++ b/libs/math/test/test_next.cpp -@@ -171,12 +171,12 @@ void test_values(const T& val, const char* name) - BOOST_CHECK_EQUAL(boost::math::float_advance(val, primes[i]), v1); - BOOST_CHECK_EQUAL(boost::math::float_advance(val, -primes[i]), v2); - } -- if(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) -+ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_infinity)) - { - BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits::infinity()), (std::numeric_limits::max)()); - BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits::infinity()), -(std::numeric_limits::max)()); -- BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits::infinity()), std::domain_error); -- BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits::infinity()), std::domain_error); -+ BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits::infinity()), -std::numeric_limits::infinity()); -+ BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits::infinity()), std::numeric_limits::infinity()); - if(boost::math::policies:: BOOST_MATH_OVERFLOW_ERROR_POLICY == boost::math::policies::throw_on_error) - { - BOOST_MATH_CHECK_THROW(boost::math::float_prior(-(std::numeric_limits::max)()), std::overflow_error); -@@ -188,6 +188,11 @@ void test_values(const T& val, const char* name) - BOOST_CHECK_EQUAL(boost::math::float_next((std::numeric_limits::max)()), std::numeric_limits::infinity()); - } - } -+ BOOST_IF_CONSTEXPR(std::numeric_limits::is_specialized && (std::numeric_limits::has_quiet_NaN)) -+ { -+ BOOST_MATH_CHECK_THROW(boost::math::float_prior((std::numeric_limits::quiet_NaN)()), std::domain_error); -+ BOOST_MATH_CHECK_THROW(boost::math::float_next((std::numeric_limits::quiet_NaN)()), std::domain_error); -+ } - // - // We need to test float_distance over multiple orders of magnitude, - // the only way to get an accurate true result is to count the representations --- -2.45.1 - diff --git a/boost-1.83-multiprecision-convert-noexcept.patch b/boost-1.83-multiprecision-convert-noexcept.patch deleted file mode 100644 index cdf5a09..0000000 --- a/boost-1.83-multiprecision-convert-noexcept.patch +++ /dev/null @@ -1,78 +0,0 @@ -From ea786494db78efdf178cbe36810f3326156e3347 Mon Sep 17 00:00:00 2001 -From: Kefu Chai -Date: Fri, 3 May 2024 15:08:05 +0800 -Subject: [PATCH] make sure eval_convert_to() do not terminate with super large - number - -this change is a follow-up of d51f2e9dbb. it intends to -address the exception thrown in a noexcept functon. - -a minimal reproducer looks like - -```c++ - -int main() { - std::string s = "32767456456456456456545678943512357658768763546575675"; - boost::multiprecision::cpp_int num(s); - std::cout << num.convert_to() << std::endl; -} -``` - -since boost 1.79, the code above terminates like -``` -Program returned: 139 -Program stderr -terminate called after throwing an instance of 'boost::wrapexcept' - what(): Error in function float_next(float): Argument must be finite, but got inf -Program terminated with signal: SIGSEGV -``` - -because `float_next_imp()` throws 'boost::wrapexcept' -if the number is NAN of INF. and `eval_convert_to()` is marked as -`noexcept(boost::multiprecision::detail::is_arithmetic::value && - std::numeric_limits::has_infinity)`, -but only `overflow_error` is ignored in the policy passed to -`float_next()`. - -so, in this change, `std::domain_error` is ignored as well, so that -``num.convert_to()` returns a NaN in this case. - -Refs #553 - -Signed-off-by: Kefu Chai ---- - include/boost/multiprecision/cpp_int/misc.hpp | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/include/boost/multiprecision/cpp_int/misc.hpp b/include/boost/multiprecision/cpp_int/misc.hpp -index cdae2f75..a8a76400 100644 ---- a/boost/multiprecision/cpp_int/misc.hpp -+++ b/boost/multiprecision/cpp_int/misc.hpp -@@ -184,7 +184,9 @@ eval_convert_to(R* result, const cpp_int_backend - inline BOOST_MP_CXX14_CONSTEXPR typename std::enable_if::value && !is_trivial_cpp_int >::value, void>::type --eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && std::numeric_limits::has_infinity) -+eval_convert_to(R* result, const cpp_int_backend& backend) noexcept(boost::multiprecision::detail::is_arithmetic::value && -+ (std::numeric_limits::has_infinity || -+ std::numeric_limits::has_quiet_NaN)) - { - BOOST_MP_FLOAT128_USING using std::ldexp; - if (eval_is_zero(backend)) -@@ -244,10 +246,11 @@ eval_convert_to(R* result, const cpp_int_backend(bits)) || eval_bit_test(backend, static_cast(bits + 1))) - { - #ifdef BOOST_MP_MATH_AVAILABLE -- BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity) -+ BOOST_IF_CONSTEXPR(std::numeric_limits::has_infinity || std::numeric_limits::has_quiet_NaN) - { - // Must NOT throw: -- *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error())); -+ *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error(), -+ boost::math::policies::domain_error())); - } - else - { --- -2.44.0 - diff --git a/boost-1.83-regex-test-fixes.patch b/boost-1.83-regex-test-fixes.patch deleted file mode 100644 index b8745a4..0000000 --- a/boost-1.83-regex-test-fixes.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 9c974cf22c53315d90a7c1bef7cea9b4f552d088 Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Wed, 6 Dec 2023 14:21:13 -0500 -Subject: [PATCH] Work around spurious Boost.Regex test failures - ---- - libs/regex/example/timer/regex_timer.cpp | 1 + - libs/regex/test/static_mutex/static_mutex_test.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/libs/regex/example/timer/regex_timer.cpp b/libs/regex/example/timer/regex_timer.cpp -index d121b70f1..bee544908 100644 ---- a/libs/regex/example/timer/regex_timer.cpp -+++ b/libs/regex/example/timer/regex_timer.cpp -@@ -13,6 +13,7 @@ - #pragma warning(disable: 4996 4127) - #endif - -+#define BOOST_TIMER_ENABLE_DEPRECATED - #include - #include - #include -diff --git a/libs/regex/test/static_mutex/static_mutex_test.cpp b/libs/regex/test/static_mutex/static_mutex_test.cpp -index be7500bd3..935e74525 100644 ---- a/libs/regex/test/static_mutex/static_mutex_test.cpp -+++ b/libs/regex/test/static_mutex/static_mutex_test.cpp -@@ -16,6 +16,7 @@ - * DESCRIPTION: test program for boost::static_mutex. - */ - -+#define BOOST_TIMER_ENABLE_DEPRECATED - #include - #include - #include --- -2.43.0 - diff --git a/boost-1.90-system.patch b/boost-1.90-system.patch new file mode 100644 index 0000000..0cadaef --- /dev/null +++ b/boost-1.90-system.patch @@ -0,0 +1,42 @@ +From d9554db26c3dbb00a6a293ee4fd4966e4e278da8 Mon Sep 17 00:00:00 2001 +From: Peter Dimov +Date: Mon, 15 Dec 2025 21:51:45 +0200 +Subject: [PATCH] Install boost_system as header-only + +--- + boost-install.jam | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/boost-install.jam b/boost-install.jam +index b87e308..5e6bfa6 100644 +--- a/tools/boost_install/boost-install.jam ++++ b/tools/boost_install/boost-install.jam +@@ -1015,7 +1015,7 @@ local rule install-cmake-config- ( install-or-stage : version : name : requireme + + local library-type = UNKNOWN ; + +- if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception ++ if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception || $(name) = boost_system + { + library-type = INTERFACE ; + } +From 9529e070ea9e9afd1da17edd48993d560fdc0d7a Mon Sep 17 00:00:00 2001 +From: Peter Dimov +Date: Mon, 15 Dec 2025 21:52:49 +0200 +Subject: [PATCH] Still install boost_system, for the CMake configuration. Refs + #132. + +--- + build.jam | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build.jam b/build.jam +index 65da5aa6..5b6545c8 100644 +--- a/libs/system//build.jam ++++ b/libs/system//build.jam +@@ -21,4 +21,5 @@ explicit + ; + + call-if : boost-library system ++ : install boost_system + ; diff --git a/boost-1.90.0-no-rpath.patch b/boost-1.90.0-no-rpath.patch new file mode 100644 index 0000000..de28890 --- /dev/null +++ b/boost-1.90.0-no-rpath.patch @@ -0,0 +1,31 @@ +From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 +From: Patrick Palka +Date: Mon, 4 Dec 2023 09:27:13 -0500 +Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds + +--- + tools/build/src/tools/gcc.jam | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index c753afc23..e0b627726 100644 +--- a/tools/build/src/tools/gcc.jam ++++ b/tools/build/src/tools/gcc.jam +@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) + + actions link bind LIBRARIES + { +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) + } + + actions link.dll bind LIBRARIES + { +- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) ++ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) + } + + ### +-- +2.43.0 + diff --git a/boost.spec b/boost.spec index 66aa53d..a397c0b 100644 --- a/boost.spec +++ b/boost.spec @@ -42,11 +42,17 @@ %bcond_without quadmath %endif +%ifnarch x86_64 + %bcond_with stacktrace_from_exception +%else + %bcond_without stacktrace_from_exception +%endif + Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.83.0 -Release: 17%{?dist} +Version: 1.90.0 +Release: 1%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -58,12 +64,11 @@ License: BSL-1.0 AND MIT AND Python-2.0.1 %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://boostorg.jfrog.io/artifactory/main/release/1.81.0/source/boost_1_83_0.tar.bz2 -Source0: https://boostorg.jfrog.io/artifactory/main/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 -Source1: libboost_thread.so +# https://archives.boost.io/release/1.90.0/source/boost_1_90_0.tar.bz2 +Source0: https://archives.boost.io/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 # Add a manual page for b2, based on the online documentation: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html -Source2: b2.1 +Source1: b2.1 # Since Fedora 13, the Boost libraries are delivered with sonames # equal to the Boost version (e.g., 1.41.0). @@ -103,12 +108,14 @@ Requires: %{name}-random%{?_isa} = %{version}-%{release} Requires: %{name}-regex%{?_isa} = %{version}-%{release} Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: %{name}-stacktrace%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} +# F44 dropped the boost-system subpackage +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %if %{with python3} Recommends: (boost-numpy3 if python3-numpy) @@ -135,7 +142,7 @@ BuildRequires: libzstd-devel Patch0: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch1: boost-1.78.0-no-rpath.patch +Patch1: boost-1.90.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch2: boost-1.73.0-cmakedir.patch @@ -143,41 +150,14 @@ Patch2: boost-1.73.0-cmakedir.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 Patch3: boost-1.78.0-b2-build-flags.patch -# https://github.com/boostorg/random/issues/82 -Patch4: boost-1.76.0-random-test.patch - # PR https://github.com/boostorg/interval/pull/30 # Fixes narrowing conversions for ppc - # https://github.com/boostorg/interval/issues/29 Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=2178210 -# https://github.com/boostorg/phoenix/issues/111 -# https://github.com/boostorg/phoenix/issues/115 -Patch6: boost-1.81-phoenix-multiple-defn.patch - -# https://github.com/boostorg/random/commit/7561690135c67ecf88c2133bad7680ebd2665c36 -# https://github.com/boostorg/random/commit/4239d93dad32a11e4c3829050f8070d456266133 -Patch7: boost-1.81.0-random-test-fixes.patch - -Patch8: boost-1.83-regex-test-fixes.patch - -# https://github.com/boostorg/multiprecision/commit/ea786494db78efdf178cbe36810f3326156e3347 -Patch9: boost-1.83-multiprecision-convert-noexcept.patch - -# https://github.com/boostorg/math/commit/f3e0cde514e444c2e25a3522d05a6e244fb2f23a -# https://github.com/boostorg/math/issues/1132 -Patch10: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch - -# https://github.com/boostorg/context/pull/234 -Patch11: boost-1.83-Fix-ABI-detection-for-empty-os-platform.patch - -# https://github.com/boostorg/python/pull/432 -# https://github.com/boostorg/python/pull/443 -Patch12: boost-1.83-NumPy-2.x-dtype.patch - -# https://github.com/boostorg/thread/pull/408 -Patch13: boost-1.83-fix-no-member-named_that_error.patch +# Install boost_system for the CMake configuration +# https://github.com/boostorg/system/issues/132 +Patch6: boost-1.90-system.patch %bcond_with tests %bcond_with docs_generated @@ -202,14 +182,33 @@ types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. +%package charconv +Summary: Run-time component of boost charconv library + +%description charconv + +Run-time support for Boost.Charconv, an implementation of +in C++11. + %package chrono Summary: Run-time component of boost chrono library -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description chrono Run-time support for Boost.Chrono, a set of useful time utilities. +%package cobalt +Summary: Run-time component of boost cobalt library + +%description cobalt + +Boost.Cobalt provides a set of easy to use coroutine primitives & utilities +running on top of boost.asio. These will be of interest for applications that +perform a lot of IO that want to not block unnecessarily, yet still want to +have linear & readable code (i..e. avoid callbacks). + %package container Summary: Run-time component of boost container library @@ -218,7 +217,8 @@ Summary: Run-time component of boost container library Boost.Container library implements several well-known containers, including STL containers. The aim of the library is to offer advanced features not present in standard containers or to offer the latest -standard draft features for compilers that comply with C++03. +standard draft features for compilers that don't comply with the +latest C++ standard. %package contract Summary: Run-time component of boost contract library @@ -275,7 +275,8 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library Requires: %{name}-atomic%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description filesystem @@ -314,8 +315,9 @@ simply "JSON" %package locale Summary: Run-time component of boost locale library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description locale @@ -332,17 +334,17 @@ Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description log -Boost.Log library 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. +Run-time support for Boost.Log, a modular and extensible logging +library that supports both narrow-character and wide-character logging. %package math -Summary: Math functions for boost TR1 library +Summary: Run-time component of boost math toolkit %description math -Run-time support for C99 and C++ TR1 C-style Functions from the math -portion of Boost.TR1. +Run-time support for Boost.Math, including floating-point utilities, +specific width floating-point types, mathematical constants, +statistical distributions, special functions, and more. %package nowide Summary: Standard library functions with UTF-8 API on Windows @@ -368,6 +370,14 @@ support for the NumPy extension of the Boost Python Library for Python 3. %endif +%package process +Summary: Run-time component of boost process library + +%description process + +Run-time support of the Boost.Process library, for managing system +processes. + %package program-options Summary: Run-time component of boost program_options library @@ -419,14 +429,6 @@ Summary: Run-time component of boost stacktrace library Run-time component of the Boost stacktrace library. -%package system -Summary: Run-time component of boost system support library - -%description system - -Run-time component of Boost operating system support library, including -the diagnostics support that is part of the C++11 standard library. - %package test Summary: Run-time component of boost test library @@ -437,7 +439,8 @@ program execution monitoring. %package thread Summary: Run-time component of boost thread library -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description thread @@ -449,7 +452,8 @@ data specific to individual threads. %package timer Summary: Run-time component of boost timer library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description timer @@ -460,8 +464,9 @@ with as little as one #include and one additional line of code. %package type_erasure Summary: Run-time component of boost type erasure library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description type_erasure @@ -481,8 +486,9 @@ Summary: Run-time component of boost C99/C++ preprocessing library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} Requires: %{name}-date-time%{?_isa} = %{version}-%{release} Requires: %{name}-filesystem%{?_isa} = %{version}-%{release} -Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} +Obsoletes: boost-system < 1.90.0 +Conflicts: boost-system < 1.90.0 %description wave @@ -732,7 +738,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth EOF %endif -./bootstrap.sh --with-toolset=%{toolchain} --with-icu +./bootstrap.sh --with-toolset=%{toolchain} --with-icu --prefix=$RPM_BUILD_ROOT%{_prefix} # N.B. When we build the following with PCH, parts of boost (math # library in particular) end up being built second time during @@ -749,20 +755,12 @@ echo ============================= build serial ================== variant=release threading=multi debug-symbols=on pch=off \ %if %{with python3} python=%{python3_version} \ +%endif +%if !%{with stacktrace_from_exception} + boost.stacktrace.from_exception=off \ %endif stage -# See libs/thread/build/Jamfile.v2 for where this file comes from. -if [ $(find serial -type f -name has_atomic_flag_lockfree \ - -print -quit | wc -l) -ne 0 ]; then - DEF=D -else - DEF=U -fi - -m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ - %{SOURCE1} > $(basename %{SOURCE1}) - # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} @@ -804,7 +802,7 @@ export PATH=/bin${PATH:+:}$PATH echo ============================= build Boost.Build ================== (cd tools/build - ./bootstrap.sh --with-toolset=%{toolchain}) + ./bootstrap.sh --with-toolset=%{toolchain} --prefix=$RPM_BUILD_ROOT%{_prefix}) %check : @@ -895,14 +893,24 @@ echo ============================= install serial ================== variant=release threading=multi debug-symbols=on pch=off \ %if %{with python3} python=%{python3_version} \ +%endif +%if !%{with stacktrace_from_exception} + boost.stacktrace.from_exception=off \ %endif install -# Override DSO symlink with a linker script. See the linker script -# itself for details of why we need to do this. -[ -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so ] # Must be present -rm -f $RPM_BUILD_ROOT%{_libdir}/libboost_thread.so -install -p -m 644 $(basename %{SOURCE1}) $RPM_BUILD_ROOT%{_libdir}/ +cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT +/* GNU ld linker script */ + +/* +There is no runtime library for Boost.System. +This empty linker script exists to support Fedora packages which use +-lboost_system when linking and so require a library with that name. + +This linker script will be remove in a future Fedora release. +*/ +EOT +chmod 644 $RPM_BUILD_ROOT%{_libdir}/libboost_system.so echo ============================= install Boost.Build ================== (cd tools/build @@ -925,7 +933,7 @@ echo ============================= install Boost.Build ================== rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp # Install the manual page - %{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 + %{__install} -p -m 644 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 ) echo ============================= install Boost.QuickBook ================== @@ -1001,6 +1009,11 @@ rm -f tmp-doc-files-to-be-installed rm -f tmp-doc-directories %{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt +# The predef_check utility doesn't seem useful to package. +(cd $RPM_BUILD_ROOT/%{_datadir} + rm boost_predef/tools/check/* + rm boost_predef/build.jam +) %post doctools CATALOG=%{_sysconfdir}/xml/catalog @@ -1035,10 +1048,19 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_atomic.so.%{sonamever} +%files charconv +%license LICENSE_1_0.txt +%{_libdir}/libboost_charconv.so.%{sonamever} + %files chrono %license LICENSE_1_0.txt %{_libdir}/libboost_chrono.so.%{sonamever} +%files cobalt +%license LICENSE_1_0.txt +%{_libdir}/libboost_cobalt.so.%{sonamever} +%{_libdir}/libboost_cobalt_io.so.%{sonamever} + %files container %license LICENSE_1_0.txt %{_libdir}/libboost_container.so.%{sonamever} @@ -1109,6 +1131,10 @@ fi %{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{sonamever} %endif +%files process +%license LICENSE_1_0.txt +%{_libdir}/libboost_process.so.%{sonamever} + %files test %license LICENSE_1_0.txt %{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} @@ -1142,10 +1168,9 @@ fi %{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} %{_libdir}/libboost_stacktrace_basic.so.%{sonamever} %{_libdir}/libboost_stacktrace_noop.so.%{sonamever} - -%files system -%license LICENSE_1_0.txt -%{_libdir}/libboost_system.so.%{sonamever} +%if %{with stacktrace_from_exception} +%{_libdir}/libboost_stacktrace_from_exception.so.%{sonamever} +%endif %files thread %license LICENSE_1_0.txt @@ -1182,7 +1207,10 @@ fi %{_includedir}/%{name} %{_libdir}/cmake %{_libdir}/libboost_atomic.so +%{_libdir}/libboost_charconv.so %{_libdir}/libboost_chrono.so +%{_libdir}/libboost_cobalt.so +%{_libdir}/libboost_cobalt_io.so %{_libdir}/libboost_container.so %{_libdir}/libboost_contract.so %if %{with context} @@ -1210,6 +1238,7 @@ fi %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so %endif +%{_libdir}/libboost_process.so %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so @@ -1223,6 +1252,9 @@ fi %{_libdir}/libboost_stacktrace_addr2line.so %{_libdir}/libboost_stacktrace_basic.so %{_libdir}/libboost_stacktrace_noop.so +%if %{with stacktrace_from_exception} +%{_libdir}/libboost_stacktrace_from_exception.so +%endif %{_libdir}/libboost_system.so %{_libdir}/libboost_thread.so %{_libdir}/libboost_timer.so @@ -1251,7 +1283,9 @@ fi %license LICENSE_1_0.txt %{_libdir}/openmpi/lib/cmake %{_libdir}/openmpi/lib/libboost_mpi.so +%{_libdir}/openmpi/lib/libboost_graph.so %{_libdir}/openmpi/lib/libboost_graph_parallel.so +%{_libdir}/openmpi/lib/libboost_container.so %if %{with python3} @@ -1268,7 +1302,9 @@ fi %files graph-openmpi %license LICENSE_1_0.txt +%{_libdir}/openmpi/lib/libboost_graph.so.%{sonamever} %{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{sonamever} +%{_libdir}/openmpi/lib/libboost_container.so.%{sonamever} %endif @@ -1283,7 +1319,9 @@ fi %license LICENSE_1_0.txt %{_libdir}/mpich/lib/cmake %{_libdir}/mpich/lib/libboost_mpi.so +%{_libdir}/mpich/lib/libboost_graph.so %{_libdir}/mpich/lib/libboost_graph_parallel.so +%{_libdir}/mpich/lib/libboost_container.so %if %{with python3} @@ -1299,7 +1337,9 @@ fi %files graph-mpich %license LICENSE_1_0.txt +%{_libdir}/mpich/lib/libboost_graph.so.%{sonamever} %{_libdir}/mpich/lib/libboost_graph_parallel.so.%{sonamever} +%{_libdir}/mpich/lib/libboost_container.so.%{sonamever} %endif @@ -1319,6 +1359,12 @@ fi %{_mandir}/man1/b2.1* %changelog +* Sat Jan 10 2026 Jonathan Wakely - 1.90.0-1 +- Rebase to 1.90.0 +- See https://fedoraproject.org/wiki/Changes/F44Boost189 +- Drop boost-system subpackage and libboost_thread.so linker script +- Add new boost-charconv, boost-cobalt, and boost-process subpackages + * Fri Sep 19 2025 Python Maint - 1.83.0-17 - Rebuilt for Python 3.14.0rc3 bytecode diff --git a/libboost_thread.so b/libboost_thread.so deleted file mode 100644 index db50610..0000000 --- a/libboost_thread.so +++ /dev/null @@ -1,21 +0,0 @@ -changequote(`[', `]')dnl -/* GNU ld script - - Boost.Thread header files pull in enough of Boost.System that - symbols from the latter library are referenced by a compiled object - that includes Boost.Thread headers. libboost_system-mt.so is among - libboost_thread-mt.so's DT_NEEDED, but program linker requires that - missing symbols are satisfied by direct dependency, not by a - transitive one. Hence this linker script, which brings in the - Boost.System DSO. */ - -INPUT(libboost_thread.so.VERSION) -INPUT(libboost_system.so.VERSION) -ifdef([HAS_ATOMIC_FLAG_LOCKFREE],[], -[ -/* If the given architecture doesn't have lock-free implementation of - boost::atomic_flag, the dependency on Boost.Atomic may leak from - the header files to client binaries. */ - -INPUT(libboost_atomic.so.VERSION) -])dnl diff --git a/sources b/sources index 651f8cd..17c9198 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_83_0.tar.bz2) = d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711 +SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199 From 5379719078d021900d09cf625370b49cea1412f2 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 12 Jan 2026 12:22:41 +0000 Subject: [PATCH 201/203] Add patch for boost/range/detail/any_iterator_interface.hpp --- boost-1.90.0-range.patch | 22 ++++++++++++++++++++++ boost.spec | 8 +++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 boost-1.90.0-range.patch diff --git a/boost-1.90.0-range.patch b/boost-1.90.0-range.patch new file mode 100644 index 0000000..e4dfef3 --- /dev/null +++ b/boost-1.90.0-range.patch @@ -0,0 +1,22 @@ +From 9ac89e9936b826c13e90611cb9a81a7aa0508d20 Mon Sep 17 00:00:00 2001 +From: Michael Cho +Date: Sun, 30 Mar 2025 21:45:49 -0400 +Subject: [PATCH] Add include for add_const + +Signed-off-by: Michael Cho +--- + include/boost/range/detail/any_iterator_interface.hpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/include/boost/range/detail/any_iterator_interface.hpp b/include/boost/range/detail/any_iterator_interface.hpp +index 1103be6c..79e71dbd 100644 +--- boost_1_90_0/boost/range/detail/any_iterator_interface.hpp ++++ boost_1_90_0/boost/range/detail/any_iterator_interface.hpp +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/boost.spec b/boost.spec index a397c0b..68a318e 100644 --- a/boost.spec +++ b/boost.spec @@ -52,7 +52,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.90.0 -Release: 1%{?dist} +Release: 2%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -159,6 +159,9 @@ Patch5: boost-1.76.0-fix-narrowing-conversions-for-ppc.patch # https://github.com/boostorg/system/issues/132 Patch6: boost-1.90-system.patch +# https://github.com/boostorg/range/pull/157 +Patch7: boost-1.90.0-range.patch + %bcond_with tests %bcond_with docs_generated @@ -1359,6 +1362,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Mon Jan 12 2026 Jonathan Wakely - 1.90.0-2 +- Add patch for boost/range/detail/any_iterator_interface.hpp + * Sat Jan 10 2026 Jonathan Wakely - 1.90.0-1 - Rebase to 1.90.0 - See https://fedoraproject.org/wiki/Changes/F44Boost189 From 4a0779ec8c8fde3efdc05a7dac1caf3a970ff7de Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 13 Jan 2026 15:59:13 +0000 Subject: [PATCH 202/203] Fix libboost_system.so linker script to avoid ldcondig warning --- boost.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/boost.spec b/boost.spec index 68a318e..895eaa4 100644 --- a/boost.spec +++ b/boost.spec @@ -52,7 +52,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.90.0 -Release: 2%{?dist} +Release: 3%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -903,9 +903,8 @@ echo ============================= install serial ================== install cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT -/* GNU ld linker script */ +/* GNU ld script -/* There is no runtime library for Boost.System. This empty linker script exists to support Fedora packages which use -lboost_system when linking and so require a library with that name. @@ -1362,6 +1361,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Tue Jan 13 2026 Jonathan Wakely - 1.90.0-3 +- Fix libboost_system.so linker script to avoid ldcondig warning + * Mon Jan 12 2026 Jonathan Wakely - 1.90.0-2 - Add patch for boost/range/detail/any_iterator_interface.hpp From 50fc2b0fdafde15dc4bd89d0ad03bb173a48d73c Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 14 Jan 2026 20:16:15 -0500 Subject: [PATCH 203/203] Add dependencies on new subpackages to metapackage boost-devel Requires: boost, which itself needs to Requires all library subpackages so that the libboost_*.so symlinks are resolved, and packages can safely link to them. --- boost.spec | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/boost.spec b/boost.spec index 895eaa4..0ee6ede 100644 --- a/boost.spec +++ b/boost.spec @@ -52,7 +52,7 @@ Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries Version: 1.90.0 -Release: 3%{?dist} +Release: 4%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -81,7 +81,9 @@ Source1: b2.1 # The subpackages that don't install shared libraries are also not pulled in # (b2, build, doc, doctools, examples, static). Requires: %{name}-atomic%{?_isa} = %{version}-%{release} +Requires: %{name}-charconv%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} +Requires: %{name}-cobalt%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} Requires: %{name}-contract%{?_isa} = %{version}-%{release} %if %{with context} @@ -100,6 +102,7 @@ Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} Requires: %{name}-nowide%{?_isa} = %{version}-%{release} +Requires: %{name}-process%{?_isa} = %{version}-%{release} Requires: %{name}-program-options%{?_isa} = %{version}-%{release} %if %{with python3} Requires: %{name}-python3%{?_isa} = %{version}-%{release} @@ -112,6 +115,7 @@ Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} +Requires: %{name}-url%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} # F44 dropped the boost-system subpackage Obsoletes: boost-system < 1.90.0 @@ -1361,6 +1365,9 @@ fi %{_mandir}/man1/b2.1* %changelog +* Thu Jan 15 2026 Yaakov Selkowitz - 1.90.0-4 +- Add dependencies on new subpackages to metapackage + * Tue Jan 13 2026 Jonathan Wakely - 1.90.0-3 - Fix libboost_system.so linker script to avoid ldcondig warning