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 001/127] 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 002/127] 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 003/127] 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 004/127] 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 005/127] - 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 006/127] 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 007/127] 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 a8ec7f887b4651655dd2f14a2c09dd3bf9e0eaf3 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 30 Mar 2020 15:22:56 +0100 Subject: [PATCH 008/127] 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 a519689..ba68ae3 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} @@ -152,6 +152,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 @@ -761,6 +764,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. @@ -1483,6 +1487,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon Mar 30 2020 Jonathan Wakely - 1.69.0-10 +- Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) + * Wed Jul 24 2019 Fedora Release Engineering - 1.69.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_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 009/127] 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 010/127] 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 011/127] 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 012/127] 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 013/127] 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 014/127] 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 015/127] 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 6a7b5bf1d55acb35f7be1f137ed6575edad197db Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 11 May 2020 13:03:48 +0100 Subject: [PATCH 016/127] 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 ba68ae3..cdf4ad7 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} @@ -155,6 +155,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 @@ -765,6 +768,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. @@ -1487,6 +1491,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Mon May 11 2020 Jonathan Wakely - 1.69.0-11 +- Add patch for C++20 compatibility in Boost.Test (#1832639) + * Mon Mar 30 2020 Jonathan Wakely - 1.69.0-10 - Patch Boost.Format for C++20 compatibility with GCC 10 (#1818723) From ab7eefd18e4a59c498aa57356117f53cdb80662e Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 12 May 2020 14:39:35 +0300 Subject: [PATCH 017/127] 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 87594c3e0d3e89f2d2f3943502fea7707181083f Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 12 May 2020 14:39:35 +0300 Subject: [PATCH 018/127] 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 cdf4ad7..6fd3229 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} @@ -158,6 +158,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 @@ -769,6 +772,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. @@ -1491,6 +1495,9 @@ fi %{_mandir}/man1/bjam.1* %changelog +* Tue May 12 2020 Avi Kivity - 1.69.0-12 +- Add patch for C++20 compatibility in Boost.Signals2 (#1834764) + * Mon May 11 2020 Jonathan Wakely - 1.69.0-11 - 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 019/127] 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 020/127] 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 021/127] 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 022/127] 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 023/127] 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 024/127] 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 025/127] 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 026/127] 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 027/127] 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 028/127] 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 029/127] 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 030/127] 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 031/127] - 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 032/127] - 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 033/127] 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 034/127] 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 035/127] 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 036/127] 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 037/127] 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 038/127] 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 039/127] 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 040/127] - 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 041/127] 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 042/127] 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 043/127] 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 044/127] 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 045/127] 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 046/127] 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 047/127] 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 048/127] 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 049/127] 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 050/127] - 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 051/127] - 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 052/127] 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 053/127] 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 054/127] 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 055/127] 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 056/127] 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 057/127] 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 058/127] 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 059/127] 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 060/127] 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 061/127] - 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 062/127] 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 063/127] 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 064/127] 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 065/127] 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 066/127] 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 067/127] 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 068/127] 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 069/127] 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 070/127] 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 071/127] 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 072/127] 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 073/127] 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 074/127] 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 075/127] 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 076/127] 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 077/127] 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 078/127] 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 079/127] 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 080/127] 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 081/127] 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 082/127] 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 083/127] 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 084/127] 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 085/127] 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 086/127] 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 087/127] 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 088/127] 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 089/127] 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 090/127] 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 091/127] 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 092/127] 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 093/127] 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 094/127] 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 095/127] 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 096/127] 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 097/127] 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 098/127] 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 099/127] 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 100/127] 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 101/127] 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 102/127] 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 103/127] 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 104/127] 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 105/127] 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 106/127] 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 107/127] 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 108/127] 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 109/127] 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 110/127] 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 111/127] 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 112/127] 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 113/127] 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 114/127] 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 115/127] 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 116/127] 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 117/127] 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 118/127] =?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 119/127] 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 120/127] 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 121/127] 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 122/127] 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 123/127] 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 124/127] 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 125/127] 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 126/127] 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 127/127] 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