From 3420df724444633aee5b0cc5dd9f02add05066b9 Mon Sep 17 00:00:00 2001 From: Thomas W Rodgers Date: Thu, 12 Jan 2023 18:48:17 -0800 Subject: [PATCH 01/47] Rebase to 1.81.0 See https://fedoraproject.org/wiki/Changes/F38Boost181 Drop patches: deleted: boost-1.58.0-pool.patch deleted: boost-1.58.0-pool-test_linking.patch deleted: boost-1.78.0-build-optflags.patch deleted: boost-1.73-locale-empty-vector.patch deleted: boost-1.76.0-fix_multiprecision_issue_419-ppc64le.patch deleted: boost-1.76.0-ptr_cont-xml.patch deleted: boost-1.78.0-fix-b2-staging.patch deleted: boost-1.76.0-enum_type_object-type-python-3.11.patch - New Boost.URL runtime component - boost_build directory is now b2 in upstream, renamte to boost_build on install --- boost-1.58.0-pool-test_linking.patch | 30 - boost-1.58.0-pool.patch | 120 -- boost-1.73-locale-empty-vector.patch | 37 - ....0-enum_type_object-type-python-3.11.patch | 35 - boost-1.76.0-ptr_cont-xml.patch | 1263 ----------------- ...patch => boost-1.81.0-build-optflags.patch | 55 +- boost.spec | 83 +- sources | 2 +- 8 files changed, 72 insertions(+), 1553 deletions(-) delete mode 100644 boost-1.58.0-pool-test_linking.patch delete mode 100644 boost-1.58.0-pool.patch delete mode 100644 boost-1.73-locale-empty-vector.patch delete mode 100644 boost-1.76.0-enum_type_object-type-python-3.11.patch delete mode 100644 boost-1.76.0-ptr_cont-xml.patch rename boost-1.78.0-build-optflags.patch => boost-1.81.0-build-optflags.patch (51%) diff --git a/boost-1.58.0-pool-test_linking.patch b/boost-1.58.0-pool-test_linking.patch deleted file mode 100644 index b57e6d0..0000000 --- a/boost-1.58.0-pool-test_linking.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- boost_1_68_0/libs/pool/test/Jamfile.v2.orig 2018-08-01 20:50:52.000000000 +0000 -+++ boost_1_68_0/libs/pool/test/Jamfile.v2 2018-12-01 17:29:33.322195409 +0000 -@@ -22,18 +22,18 @@ - import testing ; - - test-suite pool : -- [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 ] -- [ run test_pool_alloc.cpp ] -- [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 ] -- [ run test_msvc_mem_leak_detect.cpp ] -- [ run test_bug_3349.cpp ] -- [ run test_bug_4960.cpp ] -+ [ run test_simple_seg_storage.cpp : : : msvc:-wd4267 /boost/system//boost_system ] -+ [ run test_pool_alloc.cpp : : : /boost/system//boost_system ] -+ [ run pool_msvc_compiler_bug_test.cpp : : : msvc:-wd4512 /boost/system//boost_system ] -+ [ run test_msvc_mem_leak_detect.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_3349.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_4960.cpp : : : /boost/system//boost_system ] - [ run test_bug_1252.cpp : : : - clang:-Wno-c++11-long-long - gcc:-Wno-long-long -- pathscale:-Wno-long-long ] -- [ run test_bug_2696.cpp ] -- [ run test_bug_5526.cpp ] -+ pathscale:-Wno-long-long /boost/system//boost_system ] -+ [ run test_bug_2696.cpp : : : /boost/system//boost_system ] -+ [ run test_bug_5526.cpp : : : /boost/system//boost_system ] - [ run test_threading.cpp : : : multi /boost/thread//boost_thread ] - [ compile test_poisoned_macros.cpp ] - ; diff --git a/boost-1.58.0-pool.patch b/boost-1.58.0-pool.patch deleted file mode 100644 index ed8449e..0000000 --- a/boost-1.58.0-pool.patch +++ /dev/null @@ -1,120 +0,0 @@ -Index: boost/pool/pool.hpp -=================================================================== ---- boost/pool/pool.hpp (revision 78317) -+++ boost/pool/pool.hpp (revision 78326) -@@ -27,4 +27,6 @@ - #include - -+// std::numeric_limits -+#include - // boost::integer::static_lcm - #include -@@ -358,4 +360,11 @@ - } - -+ size_type max_chunks() const -+ { //! Calculated maximum number of memory chunks that can be allocated in a single call by this Pool. -+ size_type partition_size = alloc_size(); -+ size_type POD_size = integer::static_lcm::value + sizeof(size_type); -+ return (std::numeric_limits::max() - POD_size) / alloc_size(); -+ } -+ - static void * & nextof(void * const ptr) - { //! \returns Pointer dereferenced. -@@ -377,5 +388,7 @@ - //! the first time that object needs to allocate system memory. - //! The default is 32. This parameter may not be 0. -- //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ //! \param nmax_size is the maximum number of chunks to allocate in one block. -+ set_next_size(nnext_size); -+ set_max_size(nmax_size); - } - -@@ -400,7 +413,7 @@ - } - void set_next_size(const size_type nnext_size) -- { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -- //! \returns nnext_size. -- next_size = start_size = nnext_size; -+ { //! Set number of chunks to request from the system the next time that object needs to allocate system memory. This value should never be set to 0. -+ BOOST_USING_STD_MIN(); -+ next_size = start_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nnext_size, max_chunks()); - } - size_type get_max_size() const -@@ -410,5 +423,6 @@ - void set_max_size(const size_type nmax_size) - { //! Set max_size. -- max_size = nmax_size; -+ BOOST_USING_STD_MIN(); -+ max_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(nmax_size, max_chunks()); - } - size_type get_requested_size() const -@@ -713,7 +727,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -753,7 +767,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // initialize it, -@@ -797,4 +811,6 @@ - //! \returns Address of chunk n if allocated ok. - //! \returns 0 if not enough memory for n chunks. -+ if (n > max_chunks()) -+ return 0; - - const size_type partition_size = alloc_size(); -@@ -845,7 +861,7 @@ - BOOST_USING_STD_MIN(); - if(!max_size) -- next_size <<= 1; -+ set_next_size(next_size << 1); - else if( next_size*partition_size/requested_size < max_size) -- next_size = min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size*requested_size/ partition_size); -+ set_next_size(min BOOST_PREVENT_MACRO_SUBSTITUTION(next_size << 1, max_size * requested_size / partition_size)); - - // insert it into the list, -Index: libs/pool/test/test_bug_6701.cpp -=================================================================== ---- libs/pool/test/test_bug_6701.cpp (revision 78326) -+++ libs/pool/test/test_bug_6701.cpp (revision 78326) -@@ -0,0 +1,27 @@ -+/* Copyright (C) 2012 Étienne Dupuis -+* -+* Use, modification and distribution is subject to the -+* Boost Software License, Version 1.0. (See accompanying -+* file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) -+*/ -+ -+// Test of bug #6701 (https://svn.boost.org/trac/boost/ticket/6701) -+ -+#include -+#include -+ -+int main() -+{ -+ boost::pool<> p(1024, std::numeric_limits::max() / 768); -+ -+ void *x = p.malloc(); -+ BOOST_ASSERT(!x); -+ -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_next_size()); -+ BOOST_ASSERT(std::numeric_limits::max() / 1024 >= p.get_max_size()); -+ -+ void *y = p.ordered_malloc(std::numeric_limits::max() / 768); -+ BOOST_ASSERT(!y); -+ -+ return 0; -+} diff --git a/boost-1.73-locale-empty-vector.patch b/boost-1.73-locale-empty-vector.patch deleted file mode 100644 index f5cc981..0000000 --- a/boost-1.73-locale-empty-vector.patch +++ /dev/null @@ -1,37 +0,0 @@ -From daf4ef50c88c2b9a6bf2c40b537eebc202caad6e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?S=C3=A9bastien=20Gonzalve?= - -Date: Sat, 14 Nov 2020 10:39:47 +0100 -Subject: [PATCH] Do not try to access element when vector is empty - -Trying to access tmp[0] causes a crash on Fedora when assertion on STL -are enabled. - -/usr/include/c++/10/bits/stl_vector.h:1045: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](std::vector<_Tp, _Alloc>::size_type) [with _Tp = unsigned char; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::reference = unsigned char&; std::vector<_Tp, _Alloc>::size_type = long unsigned int]: Assertion '__builtin_expect(__n < this->size(), true)' failed. - -This patch just passes nullptr as pointer to getSortKey() when tmp size -is 0, preventing dereferencing elements in empty vector. - -I guess that &tmp[0] should be optimized as 'no real access' when -disabling assertion, but actually leads to crash when assert are -enabled. ---- - src/icu/collator.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libs/locale/src/icu/collator.cpp b/libs/locale/src/icu/collator.cpp -index 7f1ea6a..dc59e8c 100644 ---- a/libs/locale/src/icu/collator.cpp -+++ b/libs/locale/src/icu/collator.cpp -@@ -93,7 +93,7 @@ namespace boost { - std::vector tmp; - tmp.resize(str.length()); - icu::Collator *collate = get_collator(level); -- int len = collate->getSortKey(str,&tmp[0],tmp.size()); -+ int len = collate->getSortKey(str,tmp.empty()?nullptr:&tmp[0],tmp.size()); - if(len > int(tmp.size())) { - tmp.resize(len); - collate->getSortKey(str,&tmp[0],tmp.size()); --- -2.26.2 - diff --git a/boost-1.76.0-enum_type_object-type-python-3.11.patch b/boost-1.76.0-enum_type_object-type-python-3.11.patch deleted file mode 100644 index 5b77498..0000000 --- a/boost-1.76.0-enum_type_object-type-python-3.11.patch +++ /dev/null @@ -1,35 +0,0 @@ -From ae5da2a7e8f1111757d8a474095486a5b22aa12d Mon Sep 17 00:00:00 2001 -From: Victor Stinner -Date: Mon, 25 Apr 2022 10:51:46 +0200 -Subject: [PATCH] Fix enum_type_object type on Python 3.11 - -The enum_type_object type inherits from PyLong_Type which is not tracked -by the GC. Instances doesn't have to be tracked by the GC: remove the -Py_TPFLAGS_HAVE_GC flag. - -The Python C API documentation says: - - "To create a container type, the tp_flags field of the type object - must include the Py_TPFLAGS_HAVE_GC and provide an implementation of - the tp_traverse handler." - -https://docs.python.org/dev/c-api/gcsupport.html - -The new exception was introduced in Python 3.11 by: -https://github.com/python/cpython/issues/88429 ---- - libs/python/src/object/enum.cpp | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/libs/python/src/object/enum.cpp b/libs/python/src/object/enum.cpp -index 293e705899..5753b32e07 100644 ---- a/libs/python/src/object/enum.cpp -+++ b/libs/python/src/object/enum.cpp -@@ -113,7 +113,6 @@ static PyTypeObject enum_type_object = { - #if PY_VERSION_HEX < 0x03000000 - | Py_TPFLAGS_CHECKTYPES - #endif -- | Py_TPFLAGS_HAVE_GC - | Py_TPFLAGS_BASETYPE, /* tp_flags */ - 0, /* tp_doc */ - 0, /* tp_traverse */ diff --git a/boost-1.76.0-ptr_cont-xml.patch b/boost-1.76.0-ptr_cont-xml.patch deleted file mode 100644 index ed088bf..0000000 --- a/boost-1.76.0-ptr_cont-xml.patch +++ /dev/null @@ -1,1263 +0,0 @@ -From adc94a80adbb7b720bd149c8b805876baa77b815 Mon Sep 17 00:00:00 2001 -From: Jonathan Wakely -Date: Wed, 5 Aug 2020 11:28:26 +0100 -Subject: [PATCH] Fix invalid XHTML markup in docs - -The reStructuredText files insert
HTML elements, which are not -valid in XHTML. - -The doc/tutorial_example.html file contains unquoted attributes and -unclosed and tags (although since that file is included -into another document, it probably shouldn't have , and - elements at all). ---- - doc/associative_ptr_container.html | 2 +- - doc/associative_ptr_container.rst | 2 +- - doc/examples.html | 2 +- - doc/examples.rst | 4 +- - doc/faq.html | 2 +- - doc/faq.rst | 2 +- - doc/guidelines.html | 4 +- - doc/guidelines.rst | 4 +- - doc/headers.html | 2 +- - doc/headers.rst | 2 +- - doc/indirect_fun.html | 2 +- - doc/indirect_fun.rst | 2 +- - doc/ptr_array.html | 2 +- - doc/ptr_array.rst | 2 +- - doc/ptr_container.html | 2 +- - doc/ptr_container.rst | 2 +- - doc/ptr_deque.html | 2 +- - doc/ptr_deque.rst | 2 +- - doc/ptr_inserter.html | 2 +- - doc/ptr_inserter.rst | 2 +- - doc/ptr_list.html | 2 +- - doc/ptr_list.rst | 2 +- - doc/ptr_map.html | 2 +- - doc/ptr_map.rst | 2 +- - doc/ptr_map_adapter.html | 2 +- - doc/ptr_map_adapter.rst | 2 +- - doc/ptr_multimap_adapter.html | 2 +- - doc/ptr_multimap_adapter.rst | 2 +- - doc/ptr_multiset.html | 2 +- - doc/ptr_multiset.rst | 2 +- - doc/ptr_multiset_adapter.html | 2 +- - doc/ptr_multiset_adapter.rst | 2 +- - doc/ptr_sequence_adapter.html | 2 +- - doc/ptr_sequence_adapter.rst | 2 +- - doc/ptr_set.html | 2 +- - doc/ptr_set.rst | 2 +- - doc/ptr_set_adapter.html | 2 +- - doc/ptr_set_adapter.rst | 2 +- - doc/ptr_vector.html | 2 +- - doc/ptr_vector.rst | 2 +- - doc/reference.html | 4 +- - doc/reference.rst | 4 +- - doc/reversible_ptr_container.html | 2 +- - doc/reversible_ptr_container.rst | 2 +- - doc/tutorial.html | 4 +- - doc/tutorial.rst | 4 +- - doc/tutorial_example.html | 384 ++++++++++++++--------------- - 47 files changed, 245 insertions(+), 245 deletions(-) - -diff --git a/doc/associative_ptr_container.html b/doc/associative_ptr_container.html -index ccc4d9fa..9467864f 100644 ---- a/libs/ptr_container/doc/associative_ptr_container.html -+++ b/libs/ptr_container/doc/associative_ptr_container.html -@@ -529,7 +529,7 @@

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

9. A large example

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

    [13] for details.

    --

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

    container< nullable<T> >.

    --

    Navigate:

    -+

    Navigate:

    -
    --

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

    Library headers

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

    Indirected functions

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

    Semantics

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

    References

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

    Semantics

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

    Insert Iterators

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

    Semantics

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

    Class --

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

    Semantics

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

    Semantics: typedefs

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

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

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

    Semantics

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

    Semantics

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

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

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

    Semantics

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

    Semantics

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

    BOOST_NO_EXCEPTIONS is defined, then BOOST_PTR_CONTAINER_NO_EXCEPTIONS - is also defined.

    --

    Navigate:

    -+

    Navigate:

    -
    --

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

    Semantics

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

    Algorithms

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

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

    --

    See also

    -+

    See also

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