From ec7383f6bdb448f5846ef7a8f2f527c4bc3cc965 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 9 Dec 2025 12:24:09 +0000 Subject: [PATCH] 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