diff --git a/boost-1.75.0-remove-deprecated-boost-iterator.patch b/boost-1.75.0-remove-deprecated-boost-iterator.patch new file mode 100644 index 0000000..6341174 --- /dev/null +++ b/boost-1.75.0-remove-deprecated-boost-iterator.patch @@ -0,0 +1,114 @@ +From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001 +From: Andrey Semashev +Date: Mon, 11 May 2020 19:59:23 +0300 +Subject: [PATCH] Removed usage of deprecated header boost/detail/iterator.hpp. + +The header was deprecated in favor of . It generates compiler +warnings and will be removed in a future release. +--- + boost/detail/algorithm.hpp | 2 +- + boost/graph/adjacency_iterator.hpp | 6 +++--- + boost/graph/detail/adjacency_list.hpp | 5 +++-- + boost/graph/incremental_components.hpp | 6 +++--- + 4 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/boost/detail/algorithm.hpp b/boost/detail/algorithm.hpp +index 7793fb357..9b3195cbf 100644 +--- a/boost/detail/algorithm.hpp ++++ b/boost/detail/algorithm.hpp +@@ -30,7 +30,7 @@ + + #ifndef BOOST_ALGORITHM_HPP + #define BOOST_ALGORITHM_HPP +-#include ++ + // Algorithms on sequences + // + // The functions in this file have not yet gone through formal +diff --git a/boost/graph/adjacency_iterator.hpp b/boost/graph/adjacency_iterator.hpp +index 5325e7875..4693e3a3a 100644 +--- a/boost/graph/adjacency_iterator.hpp ++++ b/boost/graph/adjacency_iterator.hpp +@@ -10,7 +10,7 @@ + #ifndef BOOST_ADJACENCY_ITERATOR_HPP + #define BOOST_ADJACENCY_ITERATOR_HPP + +-#include ++#include + #include + #include + +@@ -45,7 +45,7 @@ template < class Graph, + class adjacency_iterator_generator + { + typedef +- typename boost::detail::iterator_traits< OutEdgeIter >::difference_type ++ typename std::iterator_traits< OutEdgeIter >::difference_type + difference_type; + + public: +@@ -81,7 +81,7 @@ template < class Graph, + class inv_adjacency_iterator_generator + { + typedef +- typename boost::detail::iterator_traits< InEdgeIter >::difference_type ++ typename std::iterator_traits< InEdgeIter >::difference_type + difference_type; + + public: +diff --git a/boost/graph/detail/adjacency_list.hpp b/boost/graph/detail/adjacency_list.hpp +index 4b11fa516..c1a2ada23 100644 +--- a/boost/graph/detail/adjacency_list.hpp ++++ b/boost/graph/detail/adjacency_list.hpp +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -2370,7 +2371,7 @@ namespace detail + typedef typename OutEdgeList::size_type degree_size_type; + typedef typename OutEdgeList::iterator OutEdgeIter; + +- typedef boost::detail::iterator_traits< OutEdgeIter > ++ typedef std::iterator_traits< OutEdgeIter > + OutEdgeIterTraits; + typedef + typename OutEdgeIterTraits::iterator_category OutEdgeIterCat; +@@ -2398,7 +2399,7 @@ namespace detail + + // Edge Iterator + +- typedef boost::detail::iterator_traits< EdgeIter > EdgeIterTraits; ++ typedef std::iterator_traits< EdgeIter > EdgeIterTraits; + typedef typename EdgeIterTraits::iterator_category EdgeIterCat; + typedef typename EdgeIterTraits::difference_type EdgeIterDiff; + +diff --git a/boost/graph/incremental_components.hpp b/boost/graph/incremental_components.hpp +index 1ad8c9403..f16882e2a 100644 +--- a/boost/graph/incremental_components.hpp ++++ b/boost/graph/incremental_components.hpp +@@ -13,10 +13,10 @@ + #ifndef BOOST_INCREMENTAL_COMPONENTS_HPP + #define BOOST_INCREMENTAL_COMPONENTS_HPP + +-#include ++#include + #include + #include +-#include ++#include + #include + #include + +@@ -69,7 +69,7 @@ void compress_components(ParentIterator first, ParentIterator last) + } + + template < class ParentIterator > +-typename boost::detail::iterator_traits< ParentIterator >::difference_type ++typename std::iterator_traits< ParentIterator >::difference_type + component_count(ParentIterator first, ParentIterator last) + { + std::ptrdiff_t count = 0; diff --git a/boost-1.76.0-random-test.patch b/boost-1.76.0-random-test.patch new file mode 100644 index 0000000..5ce7477 --- /dev/null +++ b/boost-1.76.0-random-test.patch @@ -0,0 +1,34 @@ +From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Tue, 16 Mar 2021 10:47:16 +0000 +Subject: [PATCH] Add missing #includes. + +--- + test/multiprecision_float_test.cpp | 1 + + test/multiprecision_int_test.cpp | 1 + + 2 files changed, 2 insertions(+) + +diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp +index 904c59d8f..bc2a9364d 100644 +--- boost_1_76_0/libs/random/test/multiprecision_float_test.cpp ++++ boost_1_76_0/libs/random/test/multiprecision_float_test.cpp +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + + +diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp +index 577e52aff..41ec229b5 100644 +--- boost_1_76_0/libs/random/test/multiprecision_int_test.cpp ++++ boost_1_76_0/libs/random/test/multiprecision_int_test.cpp +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + + typedef boost::mpl::list < diff --git a/boost-1.78.0-no-rpath.patch b/boost-1.78.0-no-rpath.patch new file mode 100644 index 0000000..f5c6c47 --- /dev/null +++ b/boost-1.78.0-no-rpath.patch @@ -0,0 +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 + +--- + src/tools/gcc.jam | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam +index 543cfd84..fd213ccb 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 + + 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)} + + 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) + } + + ### +-- +2.35.1 + 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-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-1.81.0-build-optflags.patch b/boost-1.81.0-build-optflags.patch index 0f482c8..cda74d4 100644 --- a/boost-1.81.0-build-optflags.patch +++ b/boost-1.81.0-build-optflags.patch @@ -1,35 +1,35 @@ -From ebc90bc3e372dc8e5db21f79d2a79e4f5c4d01ee Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Mon, 4 Dec 2023 09:24:20 -0500 +From aabd16d1a74a1c2be151e16bda9ff55af4f0beba Mon Sep 17 00:00:00 2001 +From: Thomas W Rodgers +Date: Thu, 12 Jan 2023 11:54:59 -0800 Subject: [PATCH] Adjust options for Fedora package build --- - tools/build/src/tools/gcc.jam | 30 +++++++++++++++--------------- - 1 file changed, 15 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 834f5e1bf..c753afc23 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 -@@ -513,7 +513,7 @@ rule compile.fortran ( targets * : sources * : properties * ) +@@ -511,7 +511,7 @@ rule compile.fortran ( targets * : sources * : properties * ) actions compile.c++ bind PCH_FILE { -- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)" -+ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) $(INCLUDE-GCH)$(_)"$(PCH_FILE:S=)" $(INCLUDE-PCH)$(_)"$(PCH_FILE)" -I"$(INCLUDES)" -include$(_)"$(FORCE_INCLUDES)" -c -o "$(<)" "$(>:T)" +- "$(CONFIG_COMMAND)" $(LANG) -ftemplate-depth-$(TEMPLATE_DEPTH) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" ++ "$(CONFIG_COMMAND)" $(LANG) $(OPTIONS) $(USER_OPTIONS) -D$(DEFINES) -include"$(PCH_FILE:S=)" -I"$(INCLUDES)" -include"$(FORCE_INCLUDES)" -c -o "$(<:W)" "$(>:W)" } actions compile.c bind PCH_FILE -@@ -523,7 +523,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-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 >"$(<)" +- "$(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 -@@ -627,22 +627,22 @@ actions compile.c.pch +@@ -624,22 +624,22 @@ actions compile.c.pch ### # Declare flags and action for compilation. @@ -37,25 +37,28 @@ index 834f5e1bf..c753afc23 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 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 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 : ; @@ -66,5 +69,5 @@ index 834f5e1bf..c753afc23 100644 toolset.flags gcc.compile OPTIONS on : -g ; toolset.flags gcc.compile OPTIONS on : -pg ; -- -2.43.0 +2.39.0 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-1.84-random-test-overflow.patch b/boost-1.84-random-test-overflow.patch new file mode 100644 index 0000000..27565c3 --- /dev/null +++ b/boost-1.84-random-test-overflow.patch @@ -0,0 +1,59 @@ +From 4239d93dad32a11e4c3829050f8070d456266133 Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Wed, 1 Jun 2022 19:35:36 +0100 +Subject: [PATCH] Update multiprecision_float_test.cpp to not overflow type + double. Previously the max value for uint1024_t could just squeeze into a + double because truncation occurred during the conversion, now that cpp_int + performs correctly rounded conversions, overflow occurs, and the computation + fails. Changed the problem distribution to use a multiprecision weight type, + rather than double. + +--- + test/multiprecision_float_test.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/test/multiprecision_float_test.cpp b/test/multiprecision_float_test.cpp +index bc2a936..2b53483 100644 +--- a/libs/random/test/multiprecision_float_test.cpp ++++ b/libs/random/test/multiprecision_float_test.cpp +@@ -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, + +From 7561690135c67ecf88c2133bad7680ebd2665c36 Mon Sep 17 00:00:00 2001 +From: jzmaddock +Date: Wed, 1 Jun 2022 19:32:55 +0100 +Subject: [PATCH] Update multiprecision_int_test.cpp to not accidentality + overflow type double. Multiprecision now performs correct rounding when + converting to double - previously the max value for uint1024_t would just fit + in a double if it was truncated. But now that it's correctly rounded it + overflows and breaks the calculation. + +--- + test/multiprecision_int_test.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/test/multiprecision_int_test.cpp b/test/multiprecision_int_test.cpp +index 41ec229b5..a861cca39 100644 +--- a/libs/random/test/multiprecision_int_test.cpp ++++ b/libs/random/test/multiprecision_int_test.cpp +@@ -215,8 +215,11 @@ BOOST_AUTO_TEST_CASE_TEMPLATE(discrete_distributions, distribution_type, other_d + distribution_type d2; + 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.90-system.patch b/boost-1.90-system.patch deleted file mode 100644 index 0cadaef..0000000 --- a/boost-1.90-system.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d9554db26c3dbb00a6a293ee4fd4966e4e278da8 Mon Sep 17 00:00:00 2001 -From: Peter Dimov -Date: Mon, 15 Dec 2025 21:51:45 +0200 -Subject: [PATCH] Install boost_system as header-only - ---- - boost-install.jam | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/boost-install.jam b/boost-install.jam -index b87e308..5e6bfa6 100644 ---- a/tools/boost_install/boost-install.jam -+++ b/tools/boost_install/boost-install.jam -@@ -1015,7 +1015,7 @@ local rule install-cmake-config- ( install-or-stage : version : name : requireme - - local library-type = UNKNOWN ; - -- if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception -+ if $(name) = boost_headers || $(name) = boost_math || $(name) = boost_exception || $(name) = boost_system - { - library-type = INTERFACE ; - } -From 9529e070ea9e9afd1da17edd48993d560fdc0d7a Mon Sep 17 00:00:00 2001 -From: Peter Dimov -Date: Mon, 15 Dec 2025 21:52:49 +0200 -Subject: [PATCH] Still install boost_system, for the CMake configuration. Refs - #132. - ---- - build.jam | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/build.jam b/build.jam -index 65da5aa6..5b6545c8 100644 ---- a/libs/system//build.jam -+++ b/libs/system//build.jam -@@ -21,4 +21,5 @@ explicit - ; - - call-if : boost-library system -+ : install boost_system - ; diff --git a/boost-1.90.0-no-rpath.patch b/boost-1.90.0-no-rpath.patch deleted file mode 100644 index de28890..0000000 --- a/boost-1.90.0-no-rpath.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001 -From: Patrick Palka -Date: Mon, 4 Dec 2023 09:27:13 -0500 -Subject: [PATCH] Adjust options to remove RPATH for Fedora package builds - ---- - tools/build/src/tools/gcc.jam | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tools/build/src/tools/gcc.jam b/tools/build/src/tools/gcc.jam -index c753afc23..e0b627726 100644 ---- a/tools/build/src/tools/gcc.jam -+++ b/tools/build/src/tools/gcc.jam -@@ -1035,12 +1035,12 @@ rule link.dll ( targets * : sources * : properties * ) - - actions link bind LIBRARIES - { -- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,-rpath-link$(SPACE)-Wl,"$(RPATH_LINK)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) -+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -o "$(<:T)" $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) - } - - actions link.dll bind LIBRARIES - { -- "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(RPATH_OPTION)$(SPACE)-Wl,$(RPATH) -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) -+ "$(CONFIG_COMMAND)" @($(<[1]:T).rsp:O=FC:<=@":>=":E=-L"$(LINKPATH)" -Wl,$(IMPLIB_OPTION:E=--out-implib),"$(<[2]:T)" -o "$(<[1]:T)" $(HAVE_SONAME)-Wl,$(SONAME_OPTION)$(SPACE)-Wl,"$(SONAME_PREFIX:E=)$(<[1]:D=)" $(SHARED_OPTION:E=-shared) $(START-GROUP) "$(>:T)" "$(LIBRARIES)" $(FINDLIBS-ST-PFX) -l$(FINDLIBS-ST) $(FINDLIBS-SA-PFX) -l$(FINDLIBS-SA) $(END-GROUP) $(OPTIONS) $(USER_OPTIONS)) - } - - ### --- -2.43.0 - diff --git a/boost-1.90.0-range.patch b/boost-1.90.0-range.patch deleted file mode 100644 index e4dfef3..0000000 --- a/boost-1.90.0-range.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 9ac89e9936b826c13e90611cb9a81a7aa0508d20 Mon Sep 17 00:00:00 2001 -From: Michael Cho -Date: Sun, 30 Mar 2025 21:45:49 -0400 -Subject: [PATCH] Add include for add_const - -Signed-off-by: Michael Cho ---- - include/boost/range/detail/any_iterator_interface.hpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/include/boost/range/detail/any_iterator_interface.hpp b/include/boost/range/detail/any_iterator_interface.hpp -index 1103be6c..79e71dbd 100644 ---- boost_1_90_0/boost/range/detail/any_iterator_interface.hpp -+++ boost_1_90_0/boost/range/detail/any_iterator_interface.hpp -@@ -13,6 +13,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/boost.spec b/boost.spec index 0ee6ede..0f1e6c6 100644 --- a/boost.spec +++ b/boost.spec @@ -16,13 +16,9 @@ # All arches have mpich %bcond_without mpich -%if 0%{?fedora} >= 40 || 0%{?rhel} >= 10 -%ifarch %{ix86} - # No OpenMPI support on these arches - %bcond_with openmpi -%else - %bcond_without openmpi -%endif +%ifarch s390 + # No OpenMPI support on these arches + %bcond_with openmpi %else %bcond_without openmpi %endif @@ -42,17 +38,11 @@ %bcond_without quadmath %endif -%ifnarch x86_64 - %bcond_with stacktrace_from_exception -%else - %bcond_without stacktrace_from_exception -%endif - Name: boost %global real_name boost Summary: The free peer-reviewed portable C++ source libraries -Version: 1.90.0 -Release: 4%{?dist} +Version: 1.81.0 +Release: 11%{?dist} License: BSL-1.0 AND MIT AND Python-2.0.1 # Replace each . with _ in %%{version} @@ -64,11 +54,12 @@ License: BSL-1.0 AND MIT AND Python-2.0.1 %global toplev_dirname %{real_name}_%{version_enc} URL: http://www.boost.org -# https://archives.boost.io/release/1.90.0/source/boost_1_90_0.tar.bz2 -Source0: https://archives.boost.io/release/%{version}/source/%{name}_%{version_enc}.tar.bz2 +# 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: # http://www.boost.org/boost-build2/doc/html/bbv2/overview.html -Source1: b2.1 +Source2: b2.1 # Since Fedora 13, the Boost libraries are delivered with sonames # equal to the Boost version (e.g., 1.41.0). @@ -81,9 +72,7 @@ Source1: b2.1 # The subpackages that don't install shared libraries are also not pulled in # (b2, build, doc, doctools, examples, static). Requires: %{name}-atomic%{?_isa} = %{version}-%{release} -Requires: %{name}-charconv%{?_isa} = %{version}-%{release} Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Requires: %{name}-cobalt%{?_isa} = %{version}-%{release} Requires: %{name}-container%{?_isa} = %{version}-%{release} Requires: %{name}-contract%{?_isa} = %{version}-%{release} %if %{with context} @@ -102,7 +91,6 @@ Requires: %{name}-locale%{?_isa} = %{version}-%{release} Requires: %{name}-log%{?_isa} = %{version}-%{release} Requires: %{name}-math%{?_isa} = %{version}-%{release} Requires: %{name}-nowide%{?_isa} = %{version}-%{release} -Requires: %{name}-process%{?_isa} = %{version}-%{release} Requires: %{name}-program-options%{?_isa} = %{version}-%{release} %if %{with python3} Requires: %{name}-python3%{?_isa} = %{version}-%{release} @@ -111,15 +99,12 @@ Requires: %{name}-random%{?_isa} = %{version}-%{release} Requires: %{name}-regex%{?_isa} = %{version}-%{release} Requires: %{name}-serialization%{?_isa} = %{version}-%{release} Requires: %{name}-stacktrace%{?_isa} = %{version}-%{release} +Requires: %{name}-system%{?_isa} = %{version}-%{release} Requires: %{name}-test%{?_isa} = %{version}-%{release} Requires: %{name}-thread%{?_isa} = %{version}-%{release} Requires: %{name}-timer%{?_isa} = %{version}-%{release} Requires: %{name}-type_erasure%{?_isa} = %{version}-%{release} -Requires: %{name}-url%{?_isa} = %{version}-%{release} Requires: %{name}-wave%{?_isa} = %{version}-%{release} -# F44 dropped the boost-system subpackage -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 %if %{with python3} Recommends: (boost-numpy3 if python3-numpy) @@ -146,7 +131,7 @@ BuildRequires: libzstd-devel Patch0: boost-1.81.0-build-optflags.patch # https://bugzilla.redhat.com/show_bug.cgi?id=1318383 -Patch1: boost-1.90.0-no-rpath.patch +Patch1: boost-1.78.0-no-rpath.patch # https://lists.boost.org/Archives/boost/2020/04/248812.php Patch2: boost-1.73.0-cmakedir.patch @@ -154,17 +139,28 @@ 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 -# Install boost_system for the CMake configuration -# https://github.com/boostorg/system/issues/132 -Patch6: boost-1.90-system.patch +# https://bugzilla.redhat.com/show_bug.cgi?id=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/range/pull/157 -Patch7: boost-1.90.0-range.patch +# PR https://github.com/boostorg/accumulators/pull/54 +Patch7: boost-1.81.0-always-initialize-member-variable.patch + +# https://github.com/boostorg/math/commit/f3e0cde514e444c2e25a3522d05a6e244fb2f23a +# https://github.com/boostorg/math/issues/1132 +Patch8: boost-1.83-math-Correct-float_next-INF-and-float_prior-INF.patch + +# https://github.com/boostorg/random/pull/88 +Patch9: boost-1.84-random-test-overflow.patch %bcond_with tests %bcond_with docs_generated @@ -189,33 +185,14 @@ types and operations on these data types, as well as memory ordering constraints required for coordinating multiple threads through atomic variables. -%package charconv -Summary: Run-time component of boost charconv library - -%description charconv - -Run-time support for Boost.Charconv, an implementation of -in C++11. - %package chrono Summary: Run-time component of boost chrono library -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description chrono Run-time support for Boost.Chrono, a set of useful time utilities. -%package cobalt -Summary: Run-time component of boost cobalt library - -%description cobalt - -Boost.Cobalt provides a set of easy to use coroutine primitives & utilities -running on top of boost.asio. These will be of interest for applications that -perform a lot of IO that want to not block unnecessarily, yet still want to -have linear & readable code (i..e. avoid callbacks). - %package container Summary: Run-time component of boost container library @@ -224,8 +201,7 @@ Summary: Run-time component of boost container library Boost.Container library implements several well-known containers, including STL containers. The aim of the library is to offer advanced features not present in standard containers or to offer the latest -standard draft features for compilers that don't comply with the -latest C++ standard. +standard draft features for compilers that comply with C++03. %package contract Summary: Run-time component of boost contract library @@ -282,8 +258,7 @@ micro-/userland-threads (fibers) scheduled cooperatively. %package filesystem Summary: Run-time component of boost filesystem library Requires: %{name}-atomic%{?_isa} = %{version}-%{release} -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description filesystem @@ -322,9 +297,8 @@ 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 @@ -341,17 +315,17 @@ Requires: %{name}-thread%{?_isa} = %{version}-%{release} %description log -Run-time support for Boost.Log, a modular and extensible logging -library that supports both narrow-character and wide-character logging. +Boost.Log library aims to make logging significantly easier for the +application developer. It provides a wide range of out-of-the-box +tools along with public interfaces for extending the library. %package math -Summary: Run-time component of boost math toolkit +Summary: Math functions for boost TR1 library %description math -Run-time support for Boost.Math, including floating-point utilities, -specific width floating-point types, mathematical constants, -statistical distributions, special functions, and more. +Run-time support for C99 and C++ TR1 C-style Functions from the math +portion of Boost.TR1. %package nowide Summary: Standard library functions with UTF-8 API on Windows @@ -377,14 +351,6 @@ support for the NumPy extension of the Boost Python Library for Python 3. %endif -%package process -Summary: Run-time component of boost process library - -%description process - -Run-time support of the Boost.Process library, for managing system -processes. - %package program-options Summary: Run-time component of boost program_options library @@ -436,6 +402,14 @@ Summary: Run-time component of boost stacktrace library Run-time component of the Boost stacktrace library. +%package system +Summary: Run-time component of boost system support library + +%description system + +Run-time component of Boost operating system support library, including +the diagnostics support that is part of the C++11 standard library. + %package test Summary: Run-time component of boost test library @@ -446,8 +420,7 @@ program execution monitoring. %package thread Summary: Run-time component of boost thread library -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description thread @@ -459,8 +432,7 @@ data specific to individual threads. %package timer Summary: Run-time component of boost timer library Requires: %{name}-chrono%{?_isa} = %{version}-%{release} -Obsoletes: boost-system < 1.90.0 -Conflicts: boost-system < 1.90.0 +Requires: %{name}-system%{?_isa} = %{version}-%{release} %description timer @@ -471,9 +443,8 @@ with as little as one #include and one additional line of code. %package type_erasure Summary: Run-time component of boost type erasure library Requires: %{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 @@ -493,9 +464,8 @@ 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 @@ -745,7 +715,7 @@ using python : %{python3_version} : /usr/bin/python3 : /usr/include/python%{pyth EOF %endif -./bootstrap.sh --with-toolset=%{toolchain} --with-icu --prefix=$RPM_BUILD_ROOT%{_prefix} +./bootstrap.sh --with-toolset=%{toolchain} --with-icu # N.B. When we build the following with PCH, parts of boost (math # library in particular) end up being built second time during @@ -762,12 +732,20 @@ echo ============================= build serial ================== variant=release threading=multi debug-symbols=on pch=off \ %if %{with python3} python=%{python3_version} \ -%endif -%if !%{with stacktrace_from_exception} - boost.stacktrace.from_exception=off \ %endif stage +# See libs/thread/build/Jamfile.v2 for where this file comes from. +if [ $(find serial -type f -name has_atomic_flag_lockfree \ + -print -quit | wc -l) -ne 0 ]; then + DEF=D +else + DEF=U +fi + +m4 -${DEF}HAS_ATOMIC_FLAG_LOCKFREE -DVERSION=%{version} \ + %{SOURCE1} > $(basename %{SOURCE1}) + # Build MPI parts of Boost with OpenMPI support %if %{with openmpi} || %{with mpich} @@ -809,7 +787,7 @@ export PATH=/bin${PATH:+:}$PATH echo ============================= build Boost.Build ================== (cd tools/build - ./bootstrap.sh --with-toolset=%{toolchain} --prefix=$RPM_BUILD_ROOT%{_prefix}) + ./bootstrap.sh --with-toolset=%{toolchain}) %check : @@ -900,23 +878,14 @@ echo ============================= install serial ================== variant=release threading=multi debug-symbols=on pch=off \ %if %{with python3} python=%{python3_version} \ -%endif -%if !%{with stacktrace_from_exception} - boost.stacktrace.from_exception=off \ %endif install -cat > $RPM_BUILD_ROOT%{_libdir}/libboost_system.so << EOT -/* GNU ld script - -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 +# 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}/ echo ============================= install Boost.Build ================== (cd tools/build @@ -939,7 +908,7 @@ echo ============================= install Boost.Build ================== rm $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp rm -f $RPM_BUILD_ROOT%{_datadir}/boost-build/src/tools/doxygen/windows-paths-check.hpp # Install the manual page - %{__install} -p -m 644 %{SOURCE1} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 + %{__install} -p -m 644 %{SOURCE2} -D $RPM_BUILD_ROOT%{_mandir}/man1/b2.1 ) echo ============================= install Boost.QuickBook ================== @@ -1015,11 +984,6 @@ rm -f tmp-doc-files-to-be-installed rm -f tmp-doc-directories %{__install} -p -m 644 -t $EXAMPLESPATH LICENSE_1_0.txt -# The predef_check utility doesn't seem useful to package. -(cd $RPM_BUILD_ROOT/%{_datadir} - rm boost_predef/tools/check/* - rm boost_predef/build.jam -) %post doctools CATALOG=%{_sysconfdir}/xml/catalog @@ -1054,19 +1018,10 @@ fi %license LICENSE_1_0.txt %{_libdir}/libboost_atomic.so.%{sonamever} -%files charconv -%license LICENSE_1_0.txt -%{_libdir}/libboost_charconv.so.%{sonamever} - %files chrono %license LICENSE_1_0.txt %{_libdir}/libboost_chrono.so.%{sonamever} -%files cobalt -%license LICENSE_1_0.txt -%{_libdir}/libboost_cobalt.so.%{sonamever} -%{_libdir}/libboost_cobalt_io.so.%{sonamever} - %files container %license LICENSE_1_0.txt %{_libdir}/libboost_container.so.%{sonamever} @@ -1137,10 +1092,6 @@ fi %{_libdir}/libboost_numpy%{python3_version_nodots}.so.%{sonamever} %endif -%files process -%license LICENSE_1_0.txt -%{_libdir}/libboost_process.so.%{sonamever} - %files test %license LICENSE_1_0.txt %{_libdir}/libboost_prg_exec_monitor.so.%{sonamever} @@ -1174,9 +1125,10 @@ fi %{_libdir}/libboost_stacktrace_addr2line.so.%{sonamever} %{_libdir}/libboost_stacktrace_basic.so.%{sonamever} %{_libdir}/libboost_stacktrace_noop.so.%{sonamever} -%if %{with stacktrace_from_exception} -%{_libdir}/libboost_stacktrace_from_exception.so.%{sonamever} -%endif + +%files system +%license LICENSE_1_0.txt +%{_libdir}/libboost_system.so.%{sonamever} %files thread %license LICENSE_1_0.txt @@ -1213,10 +1165,7 @@ 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} @@ -1244,7 +1193,6 @@ fi %if %{with python3} %{_libdir}/libboost_numpy%{python3_version_nodots}.so %endif -%{_libdir}/libboost_process.so %{_libdir}/libboost_prg_exec_monitor.so %{_libdir}/libboost_unit_test_framework.so %{_libdir}/libboost_program_options.so @@ -1258,9 +1206,6 @@ 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 @@ -1289,9 +1234,7 @@ 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} @@ -1308,9 +1251,7 @@ fi %files graph-openmpi %license LICENSE_1_0.txt -%{_libdir}/openmpi/lib/libboost_graph.so.%{sonamever} %{_libdir}/openmpi/lib/libboost_graph_parallel.so.%{sonamever} -%{_libdir}/openmpi/lib/libboost_container.so.%{sonamever} %endif @@ -1325,9 +1266,7 @@ 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} @@ -1343,9 +1282,7 @@ 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 @@ -1365,89 +1302,19 @@ fi %{_mandir}/man1/b2.1* %changelog -* Thu Jan 15 2026 Yaakov Selkowitz - 1.90.0-4 -- Add dependencies on new subpackages to metapackage +* Fri Jun 07 2024 Jonathan Wakely - 1.81.0-11 +- Add patch to fix another test failure in Boost.Random. -* Tue Jan 13 2026 Jonathan Wakely - 1.90.0-3 -- Fix libboost_system.so linker script to avoid ldcondig warning - -* Mon Jan 12 2026 Jonathan Wakely - 1.90.0-2 -- Add patch for boost/range/detail/any_iterator_interface.hpp - -* Sat Jan 10 2026 Jonathan Wakely - 1.90.0-1 -- Rebase to 1.90.0 -- See https://fedoraproject.org/wiki/Changes/F44Boost189 -- Drop boost-system subpackage and libboost_thread.so linker script -- Add new boost-charconv, boost-cobalt, and boost-process subpackages - -* Fri Sep 19 2025 Python Maint - 1.83.0-17 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 1.83.0-16 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Tue Aug 05 2025 František Zatloukal - 1.83.0-15 -- Rebuilt for icu 77.1 - -* Wed Jul 23 2025 Fedora Release Engineering - 1.83.0-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Tue Jun 03 2025 Python Maint - 1.83.0-13 -- Rebuilt for Python 3.14 - -* Sun Jan 26 2025 Wolfgang Stöggl - 1.83.0-12 -- Add boost-1.83-fix-no-member-named_that_error.patch - -* Thu Jan 16 2025 Fedora Release Engineering - 1.83.0-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Tue Dec 24 2024 Sandro - 1.83.0-10 -- Backport patches for NumPy 2.x - -* Fri Dec 06 2024 Pete Walter - 1.83.0-9 -- Rebuild for ICU 76 - -* Wed Jul 17 2024 Fedora Release Engineering - 1.83.0-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jun 08 2024 Python Maint - 1.83.0-7 -- Rebuilt for Python 3.13 - -* Thu Jun 06 2024 Jonathan Wakely - 1.83.0-6 +* Thu Jun 06 2024 Jonathan Wakely - 1.81.0-10 - Add missing Requires for rpminspect errors. -* Sun Jun 02 2024 Songsong Zhang - 1.83.0-6 -- Backport patch to fix RISC-V functions missing +* Fri Jun 07 2024 Kefu Chai - 1.81.0-10 +- Add patch to fix test failure in Boost.Random. -* Sat May 25 2024 Kefu Chai - 1.83.0-5 +* Sat May 25 2024 Kefu Chai - 1.81.0-9 - Add patch to fix Boost.Math bug where float_next(+INF) and float_prior(-INF) returns NaN, but they should return +INF and -INF respectively. - See https://github.com/boostorg/math/issues/1132 and its fix at - -* Sun May 05 2024 Kefu Chai - 1.83.0-4 -- Add patch for Boost.Multiprecision bug - See https://github.com/boostorg/multiprecision/pull/618 - -* Wed Jan 31 2024 Pete Walter - 1.83.0-3 -- Rebuild for ICU 74 - -* Tue Jan 23 2024 Fedora Release Engineering - 1.83.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 1.83.0-1 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Dec 06 2023 Patrick Palka - 1.83.0-0 -- Rebase to 1.83.0 -- See https://fedoraproject.org/wiki/Changes/F40Boost183 -- Drop patch for accumulators library that has since been applied upstream. -- Fix spurious Boost.Regex test failures. - -* Sun Oct 29 2023 Orion Poplawski - 1.81.0-10 -- Rebuild for openmpi 5.0.0, drops support for i686 - -* Tue Aug 29 2023 Tom Callaway - 1.81.0-9 -- apply upstream fixes for failing random tests + See https://github.com/boostorg/math/issues/1132 * Sun Aug 20 2023 Kefu Chai - 1.81.0-8 - Add patch for Boost.Accumulators bug diff --git a/libboost_thread.so b/libboost_thread.so new file mode 100644 index 0000000..db50610 --- /dev/null +++ b/libboost_thread.so @@ -0,0 +1,21 @@ +changequote(`[', `]')dnl +/* GNU ld script + + Boost.Thread header files pull in enough of Boost.System that + symbols from the latter library are referenced by a compiled object + that includes Boost.Thread headers. libboost_system-mt.so is among + libboost_thread-mt.so's DT_NEEDED, but program linker requires that + missing symbols are satisfied by direct dependency, not by a + transitive one. Hence this linker script, which brings in the + Boost.System DSO. */ + +INPUT(libboost_thread.so.VERSION) +INPUT(libboost_system.so.VERSION) +ifdef([HAS_ATOMIC_FLAG_LOCKFREE],[], +[ +/* If the given architecture doesn't have lock-free implementation of + boost::atomic_flag, the dependency on Boost.Atomic may leak from + the header files to client binaries. */ + +INPUT(libboost_atomic.so.VERSION) +])dnl diff --git a/sources b/sources index 17c9198..821b86a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199 +SHA512 (boost_1_81_0.tar.bz2) = a04201e73da59f68fa02761b333c864a96ebaf268247b6b10cb19ed3d70ee9ad3da4c53123f2a7a4a9b9e1408793b51e1adbcc6fd09f60fecef3ca9522bb6b36 diff --git a/tests/boost-testsuite-sanity/runtest.sh b/tests/boost-testsuite-sanity/runtest.sh index 2bc6957..76e3d45 100755 --- a/tests/boost-testsuite-sanity/runtest.sh +++ b/tests/boost-testsuite-sanity/runtest.sh @@ -58,22 +58,15 @@ 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`" - 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 "cd $TmpDir/BUILD/$toplev_dirname" rlRun "su -c './bootstrap.sh &>$TmpDir/bootstrap.log' $BUILD_USER" rlRun "rlFileSubmit $TmpDir/bootstrap.log" rlPhaseEnd rlPhaseStartTest "run testsuite" while read test_path; do - if [ -f $BuildDir/libs/$test_path/test/Jamfile* ]; then - rlRun "cd $BuildDir/libs/$test_path/test" + if [ -f $TmpDir/BUILD/boost*/libs/$test_path/test/Jamfile* ]; then + 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