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
This commit is contained in:
Jonathan Wakely 2025-12-09 12:24:09 +00:00
commit ec7383f6bd
16 changed files with 203 additions and 677 deletions

View file

@ -1,114 +0,0 @@
From f364ee7be2bb1a44a2724d92f67490deaf19dc5e Mon Sep 17 00:00:00 2001
From: Andrey Semashev <andrey.semashev@gmail.com>
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 <iterator>. 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 <boost/detail/iterator.hpp>
+
// 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 <boost/detail/iterator.hpp>
+#include <iterator>
#include <boost/iterator/iterator_adaptor.hpp>
#include <boost/graph/graph_traits.hpp>
@@ -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 <boost/range/irange.hpp>
#include <boost/graph/graph_traits.hpp>
#include <memory>
+#include <iterator>
#include <algorithm>
#include <boost/limits.hpp>
@@ -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 <boost/detail/iterator.hpp>
+#include <boost/tuple/tuple.hpp>
#include <boost/graph/detail/incremental_components.hpp>
#include <boost/iterator/counting_iterator.hpp>
-#include <boost/make_shared.hpp>
+#include <boost/smart_ptr/make_shared.hpp>
#include <boost/pending/disjoint_sets.hpp>
#include <iterator>
@@ -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;

View file

@ -1,34 +0,0 @@
From c3ada7a1b2b54f4b27585f72308a76984f8489b4 Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
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 <boost/multiprecision/debug_adaptor.hpp>
#include <boost/scoped_ptr.hpp>
#include <boost/random.hpp>
+#include <boost/mpl/list.hpp>
#include <sstream>
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 <boost/random/uniform_int.hpp>
#include <boost/random/uniform_smallint.hpp>
#include <boost/random/discrete_distribution.hpp>
+#include <boost/mpl/list.hpp>
#include <sstream>
typedef boost::mpl::list <

View file

@ -1,31 +0,0 @@
From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001
From: Patrick Palka <ppalka@redhat.com>
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

View file

@ -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<N>(), 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

View file

@ -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<big_float>,
boost::random::normal_distribution<big_float>,
#ifndef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
- boost::random::piecewise_constant_distribution<big_float>,
+ boost::random::piecewise_constant_distribution<big_float, big_float>,
boost::random::piecewise_linear_distribution<big_float>,
#endif
boost::random::student_t_distribution<big_float>,
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<boost::random::mt19937, std::numeric_limits<boost::multiprecision::uint1024_t>::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<boost::random::mt19937, std::numeric_limits<boost::multiprecision::uint1024_t>::digits - 2, boost::multiprecision::uint1024_t > big_random;
for(unsigned i = 0; i < 200; ++i)
{
result_type r = d(big_random);

View file

@ -1,37 +0,0 @@
From 819c2d6423b4e0f55c5f69e334bf81570e82f68f Mon Sep 17 00:00:00 2001
From: "Ivan A. Melnikov" <iv@altlinux.org>
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) ;

View file

@ -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<PyObject*>(obj));
}
-int dtype::get_itemsize() const { return reinterpret_cast<PyArray_Descr*>(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<long>() || a == dtype::get_builtin<int>()) &&
- (b == dtype::get_builtin<long>() || b == dtype::get_builtin<int>()) ||
- (a == dtype::get_builtin<unsigned int>() || a == dtype::get_builtin<unsigned long>()) &&
- (b == dtype::get_builtin<unsigned int>() || b == dtype::get_builtin<unsigned long>()))) {
- return true;
- } else {
- return PyArray_EquivTypes(
- reinterpret_cast<PyArray_Descr*>(a.ptr()),
- reinterpret_cast<PyArray_Descr*>(b.ptr())
- );
- }
+int dtype::get_itemsize() const {
+#if NPY_ABI_VERSION < 0x02000000
+ return reinterpret_cast<PyArray_Descr*>(ptr())->elsize;
#else
- return PyArray_EquivTypes(
- reinterpret_cast<PyArray_Descr*>(a.ptr()),
- reinterpret_cast<PyArray_Descr*>(b.ptr())
- );
+ return PyDataType_ELSIZE(reinterpret_cast<PyArray_Descr*>(ptr()));
#endif
}
+bool equivalent(dtype const & a, dtype const & b) {
+ return a == b;
+}
+
namespace
{

View file

@ -1,24 +0,0 @@
From 49ccf9c30a0ca556873dbf64b12b0d741d1b3e66 Mon Sep 17 00:00:00 2001
From: Arvid Norlander <arvid-norlander@users.noreply.github.com>
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;

View file

@ -1,118 +0,0 @@
From f3e0cde514e444c2e25a3522d05a6e244fb2f23a Mon Sep 17 00:00:00 2001
From: jzmaddock <john@johnmaddock.co.uk>
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<T>();
+ return val; // +INF
+ }
+ else if (fpclass == (int)FP_NAN)
+ {
return policies::raise_domain_error<T>(
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<T>();
+ return val; // +INF
+ }
+ else if (fpclass == (int)FP_NAN)
+ {
return policies::raise_domain_error<T>(
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<T>();
+ return val; // -INF
+ }
+ else if (fpclass == (int)FP_NAN)
+ {
return policies::raise_domain_error<T>(
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<T>();
+ return val; // -INF
+ }
+ else if (fpclass == (int)FP_NAN)
+ {
return policies::raise_domain_error<T>(
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<T>::is_specialized && (std::numeric_limits<T>::has_infinity))
+ BOOST_IF_CONSTEXPR(std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_infinity))
{
BOOST_CHECK_EQUAL(boost::math::float_prior(std::numeric_limits<T>::infinity()), (std::numeric_limits<T>::max)());
BOOST_CHECK_EQUAL(boost::math::float_next(-std::numeric_limits<T>::infinity()), -(std::numeric_limits<T>::max)());
- BOOST_MATH_CHECK_THROW(boost::math::float_prior(-std::numeric_limits<T>::infinity()), std::domain_error);
- BOOST_MATH_CHECK_THROW(boost::math::float_next(std::numeric_limits<T>::infinity()), std::domain_error);
+ BOOST_CHECK_EQUAL(boost::math::float_prior(-std::numeric_limits<T>::infinity()), -std::numeric_limits<T>::infinity());
+ BOOST_CHECK_EQUAL(boost::math::float_next(std::numeric_limits<T>::infinity()), std::numeric_limits<T>::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<T>::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<T>::max)()), std::numeric_limits<T>::infinity());
}
}
+ BOOST_IF_CONSTEXPR(std::numeric_limits<T>::is_specialized && (std::numeric_limits<T>::has_quiet_NaN))
+ {
+ BOOST_MATH_CHECK_THROW(boost::math::float_prior((std::numeric_limits<T>::quiet_NaN)()), std::domain_error);
+ BOOST_MATH_CHECK_THROW(boost::math::float_next((std::numeric_limits<T>::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

View file

@ -1,78 +0,0 @@
From ea786494db78efdf178cbe36810f3326156e3347 Mon Sep 17 00:00:00 2001
From: Kefu Chai <tchaikov@gmail.com>
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<float>() << 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<std::domain_error>'
what(): Error in function float_next<float>(float): Argument must be finite, but got inf
Program terminated with signal: SIGSEGV
```
because `float_next_imp()` throws 'boost::wrapexcept<std::domain_error>'
if the number is NAN of INF. and `eval_convert_to()` is marked as
`noexcept(boost::multiprecision::detail::is_arithmetic<R>::value &&
std::numeric_limits<R>::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<float>()` returns a NaN in this case.
Refs #553
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
---
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<MinBits1, MaxBits1, SignType1,
template <class R, std::size_t MinBits1, std::size_t MaxBits1, cpp_integer_type SignType1, cpp_int_check_type Checked1, class Allocator1>
inline BOOST_MP_CXX14_CONSTEXPR typename std::enable_if<std::is_floating_point<R>::value && !is_trivial_cpp_int<cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1> >::value, void>::type
-eval_convert_to(R* result, const cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>& backend) noexcept(boost::multiprecision::detail::is_arithmetic<R>::value && std::numeric_limits<R>::has_infinity)
+eval_convert_to(R* result, const cpp_int_backend<MinBits1, MaxBits1, SignType1, Checked1, Allocator1>& backend) noexcept(boost::multiprecision::detail::is_arithmetic<R>::value &&
+ (std::numeric_limits<R>::has_infinity ||
+ std::numeric_limits<R>::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<MinBits1, MaxBits1, SignType1,
if ((eval_lsb_imp(backend) < static_cast<std::size_t>(bits)) || eval_bit_test(backend, static_cast<std::size_t>(bits + 1)))
{
#ifdef BOOST_MP_MATH_AVAILABLE
- BOOST_IF_CONSTEXPR(std::numeric_limits<R>::has_infinity)
+ BOOST_IF_CONSTEXPR(std::numeric_limits<R>::has_infinity || std::numeric_limits<R>::has_quiet_NaN)
{
// Must NOT throw:
- *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error<boost::math::policies::ignore_error>()));
+ *result = boost::math::float_next(*result, boost::math::policies::make_policy(boost::math::policies::overflow_error<boost::math::policies::ignore_error>(),
+ boost::math::policies::domain_error<boost::math::policies::ignore_error>()));
}
else
{
--
2.44.0

View file

@ -1,37 +0,0 @@
From 9c974cf22c53315d90a7c1bef7cea9b4f552d088 Mon Sep 17 00:00:00 2001
From: Patrick Palka <ppalka@redhat.com>
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 <boost/config.hpp>
#include <boost/regex.hpp>
#include <boost/cregex.hpp>
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 <boost/regex/pending/static_mutex.hpp>
#include <boost/thread/thread.hpp>
#include <boost/timer.hpp>
--
2.43.0

42
boost-1.90-system.patch Normal file
View file

@ -0,0 +1,42 @@
From d9554db26c3dbb00a6a293ee4fd4966e4e278da8 Mon Sep 17 00:00:00 2001
From: Peter Dimov <pdimov@gmail.com>
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 <pdimov@gmail.com>
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
;

View file

@ -0,0 +1,31 @@
From 6a8ff06728b64a1121a6179d891ab0baf3b9290b Mon Sep 17 00:00:00 2001
From: Patrick Palka <ppalka@redhat.com>
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

View file

@ -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 <charconv>
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 <jwakely@fedoraproject.org> - 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 <python-maint@redhat.com> - 1.83.0-17
- Rebuilt for Python 3.14.0rc3 bytecode

View file

@ -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

View file

@ -1 +1 @@
SHA512 (boost_1_83_0.tar.bz2) = d133b521bd754dc35a9bd30d8032bd2fd866026d90af2179e43bfd7bd816841f7f3b84303f52c0e54aebc373f4e4edd601a8f5a5e0c47500e0e852e04198a711
SHA512 (boost_1_90_0.tar.bz2) = 1c81b60f63367d7249f277f0a569c181926dcf5a725e30433dd336205f1782880489dd00df6a1a74fd107765d3ca2cd49f806788cabb7d5700a8a55927a9a199