diff --git a/.fmf/version b/.fmf/version deleted file mode 100644 index d00491f..0000000 --- a/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/boost-1.50.0-fix-non-utf8-files.patch b/boost-1.50.0-fix-non-utf8-files.patch new file mode 100644 index 0000000..469b35d --- /dev/null +++ b/boost-1.50.0-fix-non-utf8-files.patch @@ -0,0 +1,22 @@ +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.58.0-pool-test_linking.patch b/boost-1.58.0-pool-test_linking.patch new file mode 100644 index 0000000..b57e6d0 --- /dev/null +++ b/boost-1.58.0-pool-test_linking.patch @@ -0,0 +1,30 @@ +--- 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 new file mode 100644 index 0000000..ed8449e --- /dev/null +++ b/boost-1.58.0-pool.patch @@ -0,0 +1,120 @@ +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.66.0-no-rpath.patch b/boost-1.66.0-no-rpath.patch new file mode 100644 index 0000000..e69e0b4 --- /dev/null +++ b/boost-1.66.0-no-rpath.patch @@ -0,0 +1,20 @@ +--- boost_1_66_0/tools/build/src/tools/gcc.jam~ 2018-01-19 13:23:45.361330881 +0000 ++++ boost_1_66_0/tools/build/src/tools/gcc.jam 2018-01-19 13:23:45.362330880 +0000 +@@ -1191,7 +1191,7 @@ rule link ( targets * : sources * : prop + + actions link bind LIBRARIES + { +- "$(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) + } + + 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) ++ "$(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) + } + + ### 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-1.69.0-test-cxx20.patch b/boost-1.69.0-test-cxx20.patch new file mode 100644 index 0000000..be1b52c --- /dev/null +++ b/boost-1.69.0-test-cxx20.patch @@ -0,0 +1,27 @@ +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 new file mode 100644 index 0000000..0e843b9 --- /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/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-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-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-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.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-1.73.0-build-optflags.patch b/boost-1.73.0-build-optflags.patch new file mode 100644 index 0000000..a2895f6 --- /dev/null +++ b/boost-1.73.0-build-optflags.patch @@ -0,0 +1,55 @@ +--- 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 + { +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" -c -o "$(<:W)" "$(>:W)" + } + + actions compile.c bind PCH_FILE +@@ -581,7 +581,7 @@ + + actions compile.c++.preprocess bind PCH_FILE + { +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -I"$(PCH_FILE:D)" -I"$(INCLUDES)" "$(>:W)" -E >"$(<:W)" + } + + actions compile.c.preprocess bind PCH_FILE +@@ -704,20 +704,20 @@ + ### + + # Declare flags and action for compilation. +-toolset.flags gcc.compile OPTIONS off : -O0 ; +-toolset.flags gcc.compile OPTIONS speed : -O3 ; +-toolset.flags gcc.compile OPTIONS space : -Os ; +- +-toolset.flags gcc.compile OPTIONS off : -fno-inline ; +-toolset.flags gcc.compile OPTIONS on : -Wno-inline ; +-toolset.flags gcc.compile OPTIONS full : -finline-functions -Wno-inline ; +- +-toolset.flags gcc.compile OPTIONS off : -w ; +-toolset.flags gcc.compile OPTIONS on : -Wall ; +-toolset.flags gcc.compile OPTIONS all : -Wall ; +-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 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 on : -g ; + toolset.flags gcc.compile OPTIONS on : -pg ; 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-1.76.0-fix-narrowing-conversions-for-ppc.patch b/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch deleted file mode 100644 index ce49540..0000000 --- a/boost-1.76.0-fix-narrowing-conversions-for-ppc.patch +++ /dev/null @@ -1,32 +0,0 @@ -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 ---- 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; - --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-1.78.0-b2-build-flags.patch b/boost-1.78.0-b2-build-flags.patch deleted file mode 100644 index 512f109..0000000 --- a/boost-1.78.0-b2-build-flags.patch +++ /dev/null @@ -1,25 +0,0 @@ -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.81.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch deleted file mode 100644 index 0f482c8..0000000 --- a/boost-1.81.0-build-optflags.patch +++ /dev/null @@ -1,70 +0,0 @@ -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 - ---- - tools/build/src/tools/gcc.jam | 30 +++++++++++++++--------------- - 1 file changed, 15 insertions(+), 15 deletions(-) - -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 -@@ -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-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 -@@ -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-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 -@@ -627,22 +627,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 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 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.43.0 - diff --git a/boost-1.90-system.patch b/boost-1.90-system.patch deleted file mode 100644 index 0cadaef..0000000 --- a/boost-1.90-system.patch +++ /dev/null @@ -1,42 +0,0 @@ -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 deleted file mode 100644 index de28890..0000000 --- a/boost-1.90.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)$(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-1.90.0-range.patch b/boost-1.90.0-range.patch deleted file mode 100644 index e4dfef3..0000000 --- a/boost-1.90.0-range.patch +++ /dev/null @@ -1,22 +0,0 @@ -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-cmake-soname.patch b/boost-cmake-soname.patch new file mode 100644 index 0000000..8d732eb --- /dev/null +++ b/boost-cmake-soname.patch @@ -0,0 +1,19 @@ +*** 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.rpmlintrc b/boost.rpmlintrc deleted file mode 100644 index c8a2596..0000000 --- a/boost.rpmlintrc +++ /dev/null @@ -1,24 +0,0 @@ -# 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.*") diff --git a/boost.spec b/boost.spec index 0ee6ede..bbcab17 100644 --- a/boost.spec +++ b/boost.spec @@ -16,19 +16,15 @@ # All arches have mpich %bcond_without mpich -%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 -%ifarch %{ix86} - # No OpenMPI support on these arches - %bcond_with openmpi -%else - %bcond_without openmpi -%endif +%ifarch s390 + # No OpenMPI support on these arches + %bcond_with openmpi %else %bcond_without openmpi %endif %endif -%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x riscv64 +%ifnarch %{ix86} x86_64 %{arm} ppc64 ppc64le aarch64 s390x %bcond_with context %else %bcond_without context @@ -42,18 +38,12 @@ %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.90.0 -Release: 4%{?dist} -License: BSL-1.0 AND MIT AND Python-2.0.1 +Version: 1.73.0 +Release: 10%{?dist} +License: Boost and MIT and Python # Replace each . with _ in %%{version} %global version_enc %{lua: @@ -64,11 +54,12 @@ License: BSL-1.0 AND MIT AND Python-2.0.1 %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# 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 +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 -Source1: b2.1 +Source2: b2.1 # Since Fedora 13, the Boost libraries are delivered with sonames # equal to the Boost version (e.g., 1.41.0). @@ -81,9 +72,7 @@ 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} @@ -97,12 +86,10 @@ 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} 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} @@ -111,15 +98,12 @@ 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}-url%{?_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) @@ -140,31 +124,52 @@ BuildRequires: libicu-devel BuildRequires: libquadmath-devel %endif BuildRequires: bison -BuildRequires: libzstd-devel -# https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch0: boost-1.81.0-build-optflags.patch +# 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 +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=1318383 -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 +Patch82: boost-1.66.0-no-rpath.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1541035 -Patch3: boost-1.78.0-b2-build-flags.patch +Patch83: boost-1.73.0-b2-build-flags.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=1818723 +Patch86: boost-1.69-format-allocator.patch -# Install boost_system for the CMake configuration -# https://github.com/boostorg/system/issues/132 -Patch6: boost-1.90-system.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=1832639 +Patch87: boost-1.69.0-test-cxx20.patch -# https://github.com/boostorg/range/pull/157 -Patch7: boost-1.90.0-range.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=1899888 +# https://github.com/boostorg/locale/issues/52 +Patch94: boost-1.73-locale-empty-vector.patch %bcond_with tests %bcond_with docs_generated @@ -189,33 +194,14 @@ 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 -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %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 @@ -224,8 +210,7 @@ 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 don't comply with the -latest C++ standard. +standard draft features for compilers that comply with C++03. %package contract Summary: Run-time component of boost contract library @@ -250,7 +235,6 @@ 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 @@ -270,8 +254,6 @@ 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 @@ -281,9 +263,7 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library -Requires: %{name}-atomic%{?_isa} = %{version}-%{release} -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description filesystem @@ -309,22 +289,11 @@ 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 -Requires: %{name}-container%{?_isa} = %{version}-%{release} - -%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} +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 @@ -333,28 +302,25 @@ 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 -Run-time support for Boost.Log, a modular and extensible logging -library that supports both narrow-character and wide-character logging. +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. %package math -Summary: Run-time component of boost math toolkit +Summary: Math functions for boost TR1 library %description math -Run-time support for Boost.Math, including floating-point utilities, -specific width floating-point types, mathematical constants, -statistical distributions, special functions, and more. +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 @@ -377,14 +343,6 @@ 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 @@ -397,7 +355,6 @@ 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 @@ -436,6 +393,14 @@ 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 @@ -446,8 +411,7 @@ program execution monitoring. %package thread Summary: Run-time component of boost thread library -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description thread @@ -459,8 +423,7 @@ data specific to individual threads. %package timer Summary: Run-time component of boost timer library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description timer @@ -471,31 +434,20 @@ 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}-thread%{?_isa} = %{version}-%{release} -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description type_erasure 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} 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 @@ -513,10 +465,15 @@ 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. +# 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. @@ -703,6 +660,10 @@ 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. @@ -710,11 +671,25 @@ 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 -%autosetup -n %{toplev_dirname} -p1 -find ./boost -name '*.hpp' -perm /111 | xargs --no-run-if-empty chmod a-x +%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 +%patch83 -p1 +%patch86 -p1 +%patch87 -p2 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 +%patch92 -p1 +%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) @@ -733,7 +708,7 @@ import os ; local RPM_OPT_FLAGS = [ os.environ RPM_OPT_FLAGS ] ; local RPM_LD_FLAGS = [ os.environ RPM_LD_FLAGS ] ; -using %{toolchain} : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; +using gcc : : : $(RPM_OPT_FLAGS) $(RPM_LD_FLAGS) ; %if %{with openmpi} || %{with mpich} using mpi ; %endif @@ -745,7 +720,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth EOF %endif -./bootstrap.sh --with-toolset=%{toolchain} --with-icu --prefix=$RPM_BUILD_ROOT%{_prefix} +./bootstrap.sh --with-toolset=gcc --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 @@ -762,12 +737,20 @@ 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} @@ -809,7 +792,7 @@ export PATH=/bin${PATH:+:}$PATH echo ============================= build Boost.Build ================== (cd tools/build - ./bootstrap.sh --with-toolset=%{toolchain} --prefix=$RPM_BUILD_ROOT%{_prefix}) + ./bootstrap.sh --with-toolset=gcc) %check : @@ -844,14 +827,17 @@ 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* + +# 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 @@ -875,14 +861,17 @@ 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* + +# 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 @@ -900,37 +889,26 @@ 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 -cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT -/* GNU ld script +# 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}/ -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. +# Remove cmake files until we know somebody wants them. +rm -r $RPM_BUILD_ROOT/%{_libdir}/cmake -This linker script will be remove in a future Fedora release. -*/ -EOT -chmod 644 $RPM_BUILD_ROOT%{_libdir}/libboost_system.so +# 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 - - # 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 - - # 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 @@ -939,7 +917,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 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 + %{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 ) echo ============================= install Boost.QuickBook ================== @@ -1015,11 +993,6 @@ 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 @@ -1054,19 +1027,10 @@ 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} @@ -1105,10 +1069,6 @@ 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} @@ -1137,10 +1097,6 @@ 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} @@ -1174,9 +1130,10 @@ fi %{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} %{_libdir}/libboost_stacktrace_basic.so.%{sonamever} %{_libdir}/libboost_stacktrace_noop.so.%{sonamever} -%if %{with stacktrace_from_exception} -%{_libdir}/libboost_stacktrace_from_exception.so.%{sonamever} -%endif + +%files system +%license LICENSE_1_0.txt +%{_libdir}/libboost_system.so.%{sonamever} %files thread %license LICENSE_1_0.txt @@ -1190,10 +1147,6 @@ 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} @@ -1211,12 +1164,8 @@ fi %files devel %license LICENSE_1_0.txt %{_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} @@ -1230,7 +1179,6 @@ 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 @@ -1244,7 +1192,6 @@ 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 @@ -1258,14 +1205,10 @@ 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 %{_libdir}/libboost_type_erasure.so -%{_libdir}/libboost_url.so %{_libdir}/libboost_wave.so %files static @@ -1287,11 +1230,8 @@ fi %files openmpi-devel %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} @@ -1308,9 +1248,7 @@ 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 @@ -1323,11 +1261,8 @@ fi %files mpich-devel %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} @@ -1339,20 +1274,18 @@ fi %files mpich-python3-devel %license LICENSE_1_0.txt %{_libdir}/mpich/lib/libboost_mpi_python%{python3_version_nodots}.so + %endif %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 %files build %license LICENSE_1_0.txt %{_datadir}/%{name}-build/ -%{_datadir}/b2 %files doctools %license LICENSE_1_0.txt @@ -1365,270 +1298,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 - -* 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 -- 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 -- 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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) - -* 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, 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* 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 - -* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-12 -- Merged https://src.fedoraproject.org/rpms/boost/pull-request/13 (#204336) - -* Tue Apr 26 2022 Thomas Rodgers - 1.76.0-11 -- 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 - -* 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 -- 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 - -* 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) - -* 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 -- 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 - -* 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 - -* 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) - -* 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) - -* 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 - -* 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 +* Wed Mar 03 2021 Jonathan Wakely - 1.73.0-10 - 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) - * Wed Nov 04 2020 Jonathan Wakely - 1.73.0-9 - Remove incorrect dependency on xz, only the shared lib is needed @@ -2576,7 +2248,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/gating.yaml b/gating.yaml deleted file mode 100644 index 4581d72..0000000 --- a/gating.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- !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} ---- !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/libboost_thread.so b/libboost_thread.so new file mode 100644 index 0000000..db50610 --- /dev/null +++ b/libboost_thread.so @@ -0,0 +1,21 @@ +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/plans/ci.fmf b/plans/ci.fmf deleted file mode 100644 index 3fd3ab7..0000000 --- a/plans/ci.fmf +++ /dev/null @@ -1,5 +0,0 @@ -summary: CI Gating Plan -discover: - how: fmf -execute: - how: tmt diff --git a/sources b/sources index 17c9198..9bda6dc 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199 +SHA512 (boost_1_73_0.tar.bz2) = 86c296511c0766145097625a62bf099c3d155284d250ad6e528e788bc90b2945838498dfe473c6c6c78d1694b6fba8e19f7dee0d064a043841e6231603fff668 diff --git a/tests/boost-testsuite-sanity/Makefile b/tests/boost-testsuite-sanity/Makefile deleted file mode 100644 index e1d5f40..0000000 --- a/tests/boost-testsuite-sanity/Makefile +++ /dev/null @@ -1,63 +0,0 @@ -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# -# 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 deleted file mode 100644 index 695d634..0000000 --- a/tests/boost-testsuite-sanity/PURPOSE +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index e751d7c..0000000 --- a/tests/boost-testsuite-sanity/main.fmf +++ /dev/null @@ -1,16 +0,0 @@ -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 deleted file mode 100755 index 2bc6957..0000000 --- a/tests/boost-testsuite-sanity/runtest.sh +++ /dev/null @@ -1,99 +0,0 @@ -#!/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 "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 "toplev_dirname=`awk '/toplev_dirname/{print $3; exit}' $TmpDir/rpmbuild.log`" - 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 $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 - 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 deleted file mode 100644 index d360dbd..0000000 --- a/tests/boost-testsuite-sanity/tests +++ /dev/null @@ -1,5 +0,0 @@ -integer -random -rational -regex -timer